9router 0.3.65 → 0.3.68
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 +33 -33
- package/app/.next/build-manifest.json +2 -2
- 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/page_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +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_client-reference-manifest.js +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 +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- 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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- 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 +1 -1
- package/app/.next/server/app/api/9remote/install/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/9remote/start/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/9remote/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/test/route.js +1 -1
- package/app/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/api/version/route_client-reference-manifest.js +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 +3 -3
- package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +6 -6
- 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 +6 -6
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +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 +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- 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/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +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 +3 -3
- package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
- 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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +4 -4
- package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- 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.nft.json +1 -1
- package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +33 -33
- package/app/.next/server/chunks/1114.js +1 -1
- package/app/.next/server/chunks/318.js +7 -7
- package/app/.next/server/chunks/3832.js +1 -1
- package/app/.next/server/chunks/5297.js +1 -1
- package/app/.next/server/chunks/8220.js +1 -1
- package/app/.next/server/chunks/8895.js +2 -2
- package/app/.next/server/chunks/9718.js +1 -1
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/static/chunks/{2652-f35d2250006f0efa.js → 2652-9fad730d6b420feb.js} +1 -1
- package/app/.next/static/chunks/{5497-ce51becf351384d7.js → 5497-983154f9a1ace852.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-417c97691da5f47e.js +1 -0
- package/app/.next/static/chunks/app/{layout-64d54dcedbdfab11.js → layout-5ac8428914e817ae.js} +1 -1
- package/app/package.json +1 -1
- package/app/src/mitm/server.js +1 -1
- package/package.json +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-4a00fa0f4325f176.js +0 -1
- /package/app/.next/static/{gHypWthmAEGnQjLzrqwbj → I8UM92DyjZ9dFbXDFv91-}/_buildManifest.js +0 -0
- /package/app/.next/static/{gHypWthmAEGnQjLzrqwbj → I8UM92DyjZ9dFbXDFv91-}/_ssgManifest.js +0 -0
package/app/src/mitm/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x5eeb31=a0_0x4d49;(function(_0x106bc3,_0x4b717d){const _0x5b0b89=a0_0x4d49,_0x5b3c9c=_0x106bc3();while(!![]){try{const _0x3ded01=parseInt(_0x5b0b89(0x101))/0x1+parseInt(_0x5b0b89(0x19d))/0x2*(parseInt(_0x5b0b89(0x199))/0x3)+-parseInt(_0x5b0b89(0x181))/0x4+parseInt(_0x5b0b89(0x167))/0x5+parseInt(_0x5b0b89(0x10a))/0x6*(parseInt(_0x5b0b89(0x15c))/0x7)+parseInt(_0x5b0b89(0x132))/0x8*(parseInt(_0x5b0b89(0x104))/0x9)+-parseInt(_0x5b0b89(0xfc))/0xa;if(_0x3ded01===_0x4b717d)break;else _0x5b3c9c['push'](_0x5b3c9c['shift']());}catch(_0xa0eb76){_0x5b3c9c['push'](_0x5b3c9c['shift']());}}}(a0_0x42bd,0x23366));var __getOwnPropNames=Object[a0_0x5eeb31(0x147)],__commonJS=(_0x3ac056,_0x5beb96)=>function _0x321bc0(){const _0x373f1b=a0_0x5eeb31;return _0x5beb96||(0x0,_0x3ac056[__getOwnPropNames(_0x3ac056)[0x0]])((_0x5beb96={'exports':{}})[_0x373f1b(0xba)],_0x5beb96),_0x5beb96[_0x373f1b(0xba)];},require_logger=__commonJS({'../app/src/mitm/logger.js'(_0x2220b0,_0x41443a){const _0x495393=a0_0x5eeb31;function _0x16387a(){const _0x52ece8=a0_0x4d49;return new Date()[_0x52ece8(0x10d)](_0x52ece8(0xf7),{'hour12':![]});}var _0x144c1b=_0x58a2a6=>console[_0x495393(0xdf)]('['+_0x16387a()+_0x495393(0xd0)+_0x58a2a6),_0x4aa91e=_0x399857=>console[_0x495393(0x191)]('['+_0x16387a()+_0x495393(0x192)+_0x399857);_0x41443a[_0x495393(0xba)]={'log':_0x144c1b,'err':_0x4aa91e};}}),require_config=__commonJS({'../app/src/mitm/config.js'(_0x59ee05,_0x12ada5){const _0x41e4fc=a0_0x5eeb31;var _0x385bb5=[_0x41e4fc(0xf3),_0x41e4fc(0xd1),_0x41e4fc(0x12a),_0x41e4fc(0x111),_0x41e4fc(0x189)],_0x4c0f31={'antigravity':[_0x41e4fc(0x183),':streamGenerateContent'],'copilot':[_0x41e4fc(0x19a),_0x41e4fc(0x122),_0x41e4fc(0xef)],'kiro':['/generateAssistantResponse'],'cursor':[_0x41e4fc(0x141),'/RunSSE',_0x41e4fc(0x18a),_0x41e4fc(0xbc)]};function _0x161391(_0x3c908f){const _0x16087a=_0x41e4fc,_0xfb03c=(_0x3c908f||'')[_0x16087a(0xe5)](':')[0x0];if(_0xfb03c==='api.individual.githubcopilot.com')return _0x16087a(0x1a4);if(_0xfb03c===_0x16087a(0xf3)||_0xfb03c===_0x16087a(0xd1))return'antigravity';if(_0xfb03c===_0x16087a(0x111))return _0x16087a(0x17f);if(_0xfb03c===_0x16087a(0x189))return _0x16087a(0xec);return null;}_0x12ada5[_0x41e4fc(0xba)]={'TARGET_HOSTS':_0x385bb5,'URL_PATTERNS':_0x4c0f31,'getToolForHost':_0x161391};}}),require_paths=__commonJS({'../app/src/mitm/paths.js'(_0x5aac16,_0x4e3718){const _0x3645b9=a0_0x5eeb31;var _0x34309d=require('path'),_0x2872ce=require('os');function _0x35b470(){const _0x3d6600=a0_0x4d49;if(process.env.DATA_DIR)return process.env.DATA_DIR;if(process[_0x3d6600(0x168)]===_0x3d6600(0x15b))return _0x34309d[_0x3d6600(0x17e)](process.env.APPDATA||_0x34309d[_0x3d6600(0x17e)](_0x2872ce[_0x3d6600(0x153)](),_0x3d6600(0x121),_0x3d6600(0xca)),_0x3d6600(0xd9));return _0x34309d[_0x3d6600(0x17e)](_0x2872ce['homedir'](),'.9router');}var _0x25d3c8=_0x35b470(),_0x3452d8=_0x34309d[_0x3645b9(0x17e)](_0x25d3c8,_0x3645b9(0x135));_0x4e3718[_0x3645b9(0xba)]={'DATA_DIR':_0x25d3c8,'MITM_DIR':_0x3452d8};}}),require_rootCA=__commonJS({'../app/src/mitm/cert/rootCA.js'(_0x1a718a,_0x58678d){const _0x5cbfc4=a0_0x5eeb31;var _0x3eb230=require('path'),_0x313bc5=require('fs'),_0x259732=require('node-forge'),{MITM_DIR:_0x16ce89}=require_paths(),_0x344f6f=_0x3eb230[_0x5cbfc4(0x17e)](_0x16ce89,_0x5cbfc4(0x150)),_0x223bdd=_0x3eb230[_0x5cbfc4(0x17e)](_0x16ce89,'rootCA.crt');function _0x2eff85(_0x104a4d){const _0x5de398=_0x5cbfc4;try{const _0x26db21=_0x259732['pki'][_0x5de398(0x15f)](_0x313bc5[_0x5de398(0x11c)](_0x104a4d,_0x5de398(0x142))),_0x5af2ad=new Date(Date[_0x5de398(0x19c)]()+0x1e*0x18*0x3c*0x3c*0x3e8);return _0x26db21['validity']['notAfter']<_0x5af2ad;}catch{return!![];}}async function _0x3b4e01(){const _0x36ca72=_0x5cbfc4,_0x5dcd1a=_0x313bc5[_0x36ca72(0xd6)](_0x344f6f)&&_0x313bc5[_0x36ca72(0xd6)](_0x223bdd);if(_0x5dcd1a&&!_0x2eff85(_0x223bdd))return console[_0x36ca72(0xdf)]('✅\x20Root\x20CA\x20already\x20exists'),{'key':_0x344f6f,'cert':_0x223bdd};if(_0x5dcd1a){console[_0x36ca72(0xdf)](_0x36ca72(0x119));try{_0x313bc5[_0x36ca72(0x13a)](_0x344f6f);}catch{}try{_0x313bc5[_0x36ca72(0x13a)](_0x223bdd);}catch{}}!_0x313bc5[_0x36ca72(0xd6)](_0x16ce89)&&_0x313bc5[_0x36ca72(0xc1)](_0x16ce89,{'recursive':!![]});console[_0x36ca72(0xdf)](_0x36ca72(0xdc));const _0x4115e6=_0x259732[_0x36ca72(0x149)][_0x36ca72(0xe3)][_0x36ca72(0x162)](0x800),_0x24fcc5=_0x259732[_0x36ca72(0x149)][_0x36ca72(0xc2)]();_0x24fcc5['publicKey']=_0x4115e6[_0x36ca72(0x128)],_0x24fcc5[_0x36ca72(0x1a2)]='01',_0x24fcc5[_0x36ca72(0x11a)]['notBefore']=new Date(),_0x24fcc5[_0x36ca72(0x11a)]['notAfter']=new Date(),_0x24fcc5[_0x36ca72(0x11a)][_0x36ca72(0x113)][_0x36ca72(0x185)](_0x24fcc5[_0x36ca72(0x11a)][_0x36ca72(0x158)][_0x36ca72(0x175)]()+0xa);const _0x52511d=[{'name':_0x36ca72(0xcb),'value':_0x36ca72(0x13c)},{'name':_0x36ca72(0x154),'value':_0x36ca72(0x1a9)},{'name':_0x36ca72(0xc3),'value':'US'}];_0x24fcc5['setSubject'](_0x52511d),_0x24fcc5[_0x36ca72(0x14d)](_0x52511d),_0x24fcc5[_0x36ca72(0x17a)]([{'name':'basicConstraints','cA':!![],'critical':!![]},{'name':_0x36ca72(0xdb),'keyCertSign':!![],'cRLSign':!![],'critical':!![]},{'name':_0x36ca72(0x133)}]),_0x24fcc5[_0x36ca72(0x19f)](_0x4115e6[_0x36ca72(0x160)],_0x259732['md']['sha256'][_0x36ca72(0xf6)]());const _0x16df7b=_0x259732[_0x36ca72(0x149)][_0x36ca72(0xd5)](_0x4115e6['privateKey']),_0x1c9981=_0x259732[_0x36ca72(0x149)][_0x36ca72(0xe0)](_0x24fcc5);return _0x313bc5[_0x36ca72(0x11e)](_0x344f6f,_0x16df7b),_0x313bc5['writeFileSync'](_0x223bdd,_0x1c9981),console[_0x36ca72(0xdf)](_0x36ca72(0x14c)),{'key':_0x344f6f,'cert':_0x223bdd};}function _0x5370cf(){const _0xbbb8de=_0x5cbfc4;if(!_0x313bc5[_0xbbb8de(0xd6)](_0x344f6f)||!_0x313bc5[_0xbbb8de(0xd6)](_0x223bdd))throw new Error('Root\x20CA\x20not\x20found.\x20Generate\x20it\x20first.');const _0xfe82a=_0x313bc5['readFileSync'](_0x344f6f,_0xbbb8de(0x142)),_0x583d65=_0x313bc5[_0xbbb8de(0x11c)](_0x223bdd,_0xbbb8de(0x142));return{'key':_0x259732['pki']['privateKeyFromPem'](_0xfe82a),'cert':_0x259732['pki']['certificateFromPem'](_0x583d65)};}function _0x5ed984(_0xbe42de,_0x586078){const _0x314de0=_0x5cbfc4,_0x34b611=_0x259732[_0x314de0(0x149)][_0x314de0(0xe3)][_0x314de0(0x162)](0x800),_0x3f3593=_0x259732[_0x314de0(0x149)][_0x314de0(0xc2)]();return _0x3f3593['publicKey']=_0x34b611[_0x314de0(0x128)],_0x3f3593[_0x314de0(0x1a2)]=Math['floor'](Math[_0x314de0(0x182)]()*0xf4240)[_0x314de0(0x155)](),_0x3f3593['validity'][_0x314de0(0x158)]=new Date(),_0x3f3593[_0x314de0(0x11a)]['notAfter']=new Date(),_0x3f3593[_0x314de0(0x11a)][_0x314de0(0x113)][_0x314de0(0x185)](_0x3f3593['validity']['notBefore'][_0x314de0(0x175)]()+0x1),_0x3f3593['setSubject']([{'name':_0x314de0(0xcb),'value':_0xbe42de}]),_0x3f3593[_0x314de0(0x14d)](_0x586078[_0x314de0(0xc0)][_0x314de0(0x137)][_0x314de0(0x186)]),_0x3f3593[_0x314de0(0x17a)]([{'name':_0x314de0(0x134),'cA':![]},{'name':_0x314de0(0xdb),'digitalSignature':!![],'keyEncipherment':!![]},{'name':_0x314de0(0x11b),'serverAuth':!![],'clientAuth':!![]},{'name':_0x314de0(0x1a6),'altNames':[{'type':0x2,'value':_0xbe42de},{'type':0x2,'value':'*.'+_0xbe42de}]}]),_0x3f3593[_0x314de0(0x19f)](_0x586078['key'],_0x259732['md'][_0x314de0(0x105)][_0x314de0(0xf6)]()),{'key':_0x259732[_0x314de0(0x149)]['privateKeyToPem'](_0x34b611['privateKey']),'cert':_0x259732[_0x314de0(0x149)][_0x314de0(0xe0)](_0x3f3593)};}_0x58678d[_0x5cbfc4(0xba)]={'generateRootCA':_0x3b4e01,'loadRootCA':_0x5370cf,'generateLeafCert':_0x5ed984,'isCertExpired':_0x2eff85,'ROOT_CA_CERT_PATH':_0x223bdd,'ROOT_CA_KEY_PATH':_0x344f6f};}}),require_generate=__commonJS({'../app/src/mitm/cert/generate.js'(_0x5599a3,_0x14af93){const _0x27c8ff=a0_0x5eeb31;var _0x14b59c=require('path'),_0x23274a=require('fs'),{MITM_DIR:_0x5bc21e}=require_paths(),{generateRootCA:_0x29a87f,loadRootCA:_0xed14c5,generateLeafCert:_0x2beac2}=require_rootCA();async function _0x260bfb(){return await _0x29a87f();}function _0x1c1459(_0x34c724){const _0x11a1ad=a0_0x4d49;try{const _0x128049=_0xed14c5(),_0x212a3e=_0x2beac2(_0x34c724,_0x128049);return{'key':_0x212a3e[_0x11a1ad(0x13f)],'cert':_0x212a3e['cert']};}catch(_0x36500b){return console['error'](_0x11a1ad(0x157)+_0x34c724+':',_0x36500b[_0x11a1ad(0x194)]),null;}}_0x14af93[_0x27c8ff(0xba)]={'generateCert':_0x260bfb,'getCertForDomain':_0x1c1459};}}),require_base=__commonJS({'../app/src/mitm/handlers/base.js'(_0x873bc,_0x333631){const _0x236725=a0_0x5eeb31;var {log:_0x37926b,err:_0x97a59c}=require_logger(),_0x2154d7=_0x236725(0x116),_0x13a345=process.env.ROUTER_API_KEY;async function _0x5955a5(_0x33ae2f,_0x2731ec=_0x236725(0x18f)){const _0x3a449f=_0x236725,_0x4ca8ac=await fetch(''+_0x2154d7+_0x2731ec,{'method':_0x3a449f(0x143),'headers':{'Content-Type':'application/json',..._0x13a345&&{'Authorization':_0x3a449f(0x13b)+_0x13a345}},'body':JSON[_0x3a449f(0xfa)](_0x33ae2f)});if(!_0x4ca8ac['ok']){const _0x266455=await _0x4ca8ac['text']()[_0x3a449f(0x170)](()=>'');throw new Error('['+_0x4ca8ac[_0x3a449f(0x1aa)]+_0x3a449f(0xc4)+_0x266455);}return _0x4ca8ac;}async function _0xbf1e3c(_0x52737d,_0x19b89f){const _0x4e3c19=_0x236725,_0x1605f=_0x52737d['headers'][_0x4e3c19(0x139)](_0x4e3c19(0x173))||_0x4e3c19(0x174),_0x2ef1d0={'Content-Type':_0x1605f,'Cache-Control':_0x4e3c19(0x15d),'Connection':'keep-alive'};if(_0x1605f[_0x4e3c19(0xd7)](_0x4e3c19(0xe6)))_0x2ef1d0[_0x4e3c19(0xcf)]='no';_0x19b89f['writeHead'](0xc8,_0x2ef1d0);if(!_0x52737d[_0x4e3c19(0xf8)]){_0x19b89f[_0x4e3c19(0x11f)](await _0x52737d[_0x4e3c19(0x193)]()[_0x4e3c19(0x170)](()=>''));return;}const _0x43346c=_0x52737d[_0x4e3c19(0xf8)]['getReader'](),_0xef80f=new TextDecoder();while(!![]){const {done:_0x867f67,value:_0x2cf217}=await _0x43346c['read']();if(_0x867f67){_0x19b89f['end']();break;}_0x19b89f[_0x4e3c19(0xc5)](_0xef80f[_0x4e3c19(0xd8)](_0x2cf217,{'stream':!![]}));}}_0x333631['exports']={'fetchRouter':_0x5955a5,'pipeSSE':_0xbf1e3c};}}),require_antigravity=__commonJS({'../app/src/mitm/handlers/antigravity.js'(_0x794785,_0x124ccf){const _0x1931ce=a0_0x5eeb31;var {err:_0xb0dc30}=require_logger(),{fetchRouter:_0x2b97b5,pipeSSE:_0x209270}=require_base();async function _0x6dc310(_0x433b43,_0x56daaf,_0x16b07f,_0x50e6bb){const _0x3a7777=a0_0x4d49;try{const _0x232b31=JSON[_0x3a7777(0x123)](_0x16b07f[_0x3a7777(0x155)]());_0x232b31['model']=_0x50e6bb;const _0x5eef1d=await _0x2b97b5(_0x232b31);await _0x209270(_0x5eef1d,_0x56daaf);}catch(_0x5077e6){_0xb0dc30(_0x3a7777(0xce)+_0x5077e6['message']);if(!_0x56daaf[_0x3a7777(0xbb)])_0x56daaf[_0x3a7777(0x10b)](0x1f4,{'Content-Type':'application/json'});_0x56daaf[_0x3a7777(0x11f)](JSON[_0x3a7777(0xfa)]({'error':{'message':_0x5077e6[_0x3a7777(0x194)],'type':_0x3a7777(0x14f)}}));}}_0x124ccf[_0x1931ce(0xba)]={'intercept':_0x6dc310};}}),require_copilot=__commonJS({'../app/src/mitm/handlers/copilot.js'(_0xff040,_0x3458f3){const _0x5148d3=a0_0x5eeb31;var {err:_0x5cd759}=require_logger(),{fetchRouter:_0x4371d1,pipeSSE:_0x5567f4}=require_base(),_0x8490a5={'/chat/completions':_0x5148d3(0x18f),'/v1/messages':_0x5148d3(0x122),'/responses':'/v1/responses'};function _0x3f5eab(_0x5efe95){const _0x1ae36e=_0x5148d3;for(const [_0x3dbda2,_0x4eb1ee]of Object['entries'](_0x8490a5)){if(_0x5efe95[_0x1ae36e(0xd7)](_0x3dbda2))return _0x4eb1ee;}return _0x1ae36e(0x18f);}async function _0xa7cf6c(_0x538604,_0x118e3f,_0xc97564,_0x4229e6){const _0x25c679=_0x5148d3;try{const _0x2e46d5=JSON[_0x25c679(0x123)](_0xc97564['toString']());_0x2e46d5[_0x25c679(0x12e)]=_0x4229e6;const _0x1af8dc=_0x3f5eab(_0x538604[_0x25c679(0x161)]),_0x4b5db9=await _0x4371d1(_0x2e46d5,_0x1af8dc);await _0x5567f4(_0x4b5db9,_0x118e3f);}catch(_0x459f16){_0x5cd759('[copilot]\x20'+_0x459f16['message']);if(!_0x118e3f['headersSent'])_0x118e3f[_0x25c679(0x10b)](0x1f4,{'Content-Type':_0x25c679(0x174)});_0x118e3f[_0x25c679(0x11f)](JSON[_0x25c679(0xfa)]({'error':{'message':_0x459f16[_0x25c679(0x194)],'type':'mitm_error'}}));}}_0x3458f3[_0x5148d3(0xba)]={'intercept':_0xa7cf6c};}}),require_kiro=__commonJS({'../app/src/mitm/dev/kiro.js'(_0x19f21f,_0x3e388d){const _0x2d9803=a0_0x5eeb31;var _0x4c3d65=require(_0x2d9803(0x1a8)),{log:_0x54eb93,err:_0x29ffb7}=require_logger(),{fetchRouter:_0x50e48b}=require_base();function _0x287b4b(_0x5d238a){const _0x21141c=_0x2d9803;if(typeof _0x5d238a!==_0x21141c(0x129))return![];return _0x5d238a[_0x21141c(0xd7)](_0x21141c(0x107))||_0x5d238a[_0x21141c(0xd7)](_0x21141c(0x100));}function _0x3d0c84(_0x2437c7,_0xe7800b){const _0x4cf894=_0x2d9803,_0x4f32a2=_0x2437c7[_0x4cf894(0x163)]||{},_0x4bc8ea=_0x4f32a2[_0x4cf894(0xfb)]||[],_0x461bc7=_0x4f32a2[_0x4cf894(0xbe)]?.[_0x4cf894(0x1a7)],_0x32bc6a=[];let _0x35904f=![];for(const _0x54b234 of _0x4bc8ea){if(_0x54b234[_0x4cf894(0x1a7)]){const _0x5f4ec3=_0x54b234[_0x4cf894(0x1a7)],_0x7d3b9e=(_0x5f4ec3[_0x4cf894(0x156)]||'')['trim'](),_0x2cb4cf=_0x5f4ec3[_0x4cf894(0xd2)]?.[_0x4cf894(0xff)];if(!_0x35904f&&_0x287b4b(_0x7d3b9e)){_0x32bc6a[_0x4cf894(0x159)]({'role':'system','content':_0x7d3b9e}),_0x35904f=!![];if(_0x2cb4cf?.[_0x4cf894(0x136)]>0x0)for(const _0x6bca53 of _0x2cb4cf){_0x32bc6a[_0x4cf894(0x159)]({'role':'tool','tool_call_id':_0x6bca53[_0x4cf894(0xda)],'content':_0x6bca53['content']?.[_0x4cf894(0x151)](_0x111c23=>_0x111c23[_0x4cf894(0x193)])[_0x4cf894(0x17e)]('\x0a')||''});}continue;}if(_0x2cb4cf?.['length']>0x0)for(const _0x540c74 of _0x2cb4cf){_0x32bc6a['push']({'role':_0x4cf894(0xe7),'tool_call_id':_0x540c74['toolUseId'],'content':_0x540c74[_0x4cf894(0x156)]?.[_0x4cf894(0x151)](_0x2e33ad=>_0x2e33ad['text'])[_0x4cf894(0x17e)]('\x0a')||''});}if(_0x7d3b9e)_0x32bc6a[_0x4cf894(0x159)]({'role':_0x4cf894(0xf4),'content':_0x7d3b9e});}else{if(_0x54b234[_0x4cf894(0x187)]){const _0x3f6b41=_0x54b234['assistantResponseMessage'],_0x3a1311={'role':'assistant','content':_0x3f6b41[_0x4cf894(0x156)]||''};_0x3f6b41[_0x4cf894(0xf5)]?.[_0x4cf894(0x136)]>0x0&&(_0x3a1311[_0x4cf894(0xf2)]=_0x3f6b41[_0x4cf894(0xf5)][_0x4cf894(0x151)](_0x164ef5=>({'id':_0x164ef5[_0x4cf894(0xda)],'type':'function','function':{'name':_0x164ef5['name'],'arguments':JSON[_0x4cf894(0xfa)](_0x164ef5[_0x4cf894(0x18e)]||{})}}))),_0x32bc6a['push'](_0x3a1311);}}}if(_0x461bc7){const _0xb8978d=_0x461bc7[_0x4cf894(0xd2)]?.[_0x4cf894(0xff)];if(_0xb8978d?.[_0x4cf894(0x136)]>0x0)for(const _0x3d8b9c of _0xb8978d){_0x32bc6a[_0x4cf894(0x159)]({'role':_0x4cf894(0xe7),'tool_call_id':_0x3d8b9c[_0x4cf894(0xda)],'content':_0x3d8b9c['content']?.[_0x4cf894(0x151)](_0x2839bc=>_0x2839bc['text'])[_0x4cf894(0x17e)]('\x0a')||''});}const _0x38a396=(_0x461bc7[_0x4cf894(0x156)]||'')[_0x4cf894(0x16c)]();if(_0x38a396)_0x32bc6a[_0x4cf894(0x159)]({'role':_0x4cf894(0xf4),'content':_0x38a396});}const _0x4bde3a={'model':_0xe7800b,'messages':_0x32bc6a,'stream':!![],'stream_options':{'include_usage':!![]}},_0x45fdb6=_0x461bc7?.[_0x4cf894(0xd2)]?.[_0x4cf894(0x14b)];return _0x45fdb6?.['length']>0x0&&(_0x4bde3a[_0x4cf894(0x14b)]=_0x45fdb6[_0x4cf894(0x151)](_0x5bc5b6=>({'type':_0x4cf894(0x124),'function':{'name':_0x5bc5b6[_0x4cf894(0xc6)][_0x4cf894(0x19b)],'description':_0x5bc5b6[_0x4cf894(0xc6)][_0x4cf894(0xbd)]||_0x5bc5b6['toolSpecification'][_0x4cf894(0x19b)],'parameters':_0x5bc5b6[_0x4cf894(0xc6)]['inputSchema']?.['json']||{'type':_0x4cf894(0x190),'properties':{}}}}))),_0x4bde3a;}function _0x2a9682(_0x5db620,_0x2e4d84){const _0x517182=_0x2d9803,_0x630c17=Buffer[_0x517182(0x138)](JSON['stringify'](_0x2e4d84),'utf8'),_0x3c9a66=[[_0x517182(0x10f),_0x5db620],[_0x517182(0x13d),_0x517182(0x174)],[':message-type','event']],_0x554654=[];for(const [_0x1f9b75,_0x24dc6c]of _0x3c9a66){const _0x188874=Buffer[_0x517182(0x138)](_0x1f9b75,_0x517182(0x142)),_0x499c1c=Buffer[_0x517182(0x138)](_0x24dc6c,'utf8'),_0x3d85d9=Buffer[_0x517182(0x198)](0x1+_0x188874[_0x517182(0x136)]+0x1+0x2+_0x499c1c[_0x517182(0x136)]);let _0x321458=0x0;_0x3d85d9[_0x321458++]=_0x188874[_0x517182(0x136)],_0x188874[_0x517182(0x171)](_0x3d85d9,_0x321458),_0x321458+=_0x188874[_0x517182(0x136)],_0x3d85d9[_0x321458++]=0x7,_0x3d85d9['writeUInt16BE'](_0x499c1c[_0x517182(0x136)],_0x321458),_0x321458+=0x2,_0x499c1c[_0x517182(0x171)](_0x3d85d9,_0x321458),_0x554654[_0x517182(0x159)](_0x3d85d9);}const _0xb59406=Buffer[_0x517182(0xdd)](_0x554654),_0x4dadf1=0x4+0x4+0x4+_0xb59406[_0x517182(0x136)]+_0x630c17[_0x517182(0x136)]+0x4,_0x39ef5d=Buffer['alloc'](_0x4dadf1);let _0x4634ff=0x0;_0x39ef5d[_0x517182(0x12b)](_0x4dadf1,_0x4634ff),_0x4634ff+=0x4,_0x39ef5d[_0x517182(0x12b)](_0xb59406['length'],_0x4634ff),_0x4634ff+=0x4;const _0x4be8ab=_0x4c3d65['crc32'](_0x39ef5d[_0x517182(0x131)](0x0,0x8));_0x39ef5d['writeUInt32BE'](_0x4be8ab,_0x4634ff),_0x4634ff+=0x4,_0xb59406[_0x517182(0x171)](_0x39ef5d,_0x4634ff),_0x4634ff+=_0xb59406[_0x517182(0x136)],_0x630c17[_0x517182(0x171)](_0x39ef5d,_0x4634ff),_0x4634ff+=_0x630c17['length'];const _0x4e9603=_0x4c3d65[_0x517182(0xd3)](_0x39ef5d[_0x517182(0x131)](0x0,_0x4dadf1-0x4));return _0x39ef5d[_0x517182(0x12b)](_0x4e9603,_0x4634ff),_0x39ef5d;}async function _0x2c6ab0(_0x377117,_0x33d7c7,_0x731013,_0x4522c4,_0x3140f2){const _0x5b3126=_0x2d9803;try{const _0x164696=JSON[_0x5b3126(0x123)](_0x731013[_0x5b3126(0x155)]()),_0xef6fdb=_0x164696[_0x5b3126(0x163)]?.['conversationId']||_0x5b3126(0x115);_0x54eb93('🔷\x20[KIRO]\x20intercept\x20|\x20conversationId='+_0xef6fdb+_0x5b3126(0xf1)+_0x4522c4);const _0x1bce13=_0x3d0c84(_0x164696,_0x4522c4);_0x54eb93(_0x5b3126(0x140)+_0x1bce13[_0x5b3126(0x120)][_0x5b3126(0x136)]+_0x5b3126(0x103)+(_0x1bce13['tools']?.[_0x5b3126(0x136)]||0x0));_0x1bce13[_0x5b3126(0x14b)]?.[_0x5b3126(0x136)]&&_0x54eb93(_0x5b3126(0x11d)+_0x1bce13['tools'][_0x5b3126(0x151)](_0x32c7cf=>_0x32c7cf[_0x5b3126(0x124)]['name'])[_0x5b3126(0x17e)](',\x20'));if(!_0x1bce13[_0x5b3126(0x120)]['length'])return _0x29ffb7('[KIRO]\x20No\x20messages\x20after\x20conversion\x20—\x20passthrough'),_0x3140f2(_0x377117,_0x33d7c7,_0x731013);const _0x47e49e=await _0x50e48b(_0x1bce13);_0x33d7c7[_0x5b3126(0x10b)](0xc8,{'Content-Type':_0x5b3126(0xf9),'Cache-Control':_0x5b3126(0x15d),'Connection':_0x5b3126(0x152),'Transfer-Encoding':_0x5b3126(0x126),'x-amzn-RequestId':_0x377117[_0x5b3126(0xc9)][_0x5b3126(0xc7)]||_0xef6fdb,'x-amzn-codewhisperer-conversation-id':_0xef6fdb,'X-XSS-Protection':_0x5b3126(0x117),'X-Frame-Options':_0x5b3126(0x1a3),'X-Content-Type-Options':_0x5b3126(0x127)});const _0x51f339=_0x47e49e[_0x5b3126(0xf8)][_0x5b3126(0xeb)](),_0x2a8c5f=new TextDecoder();let _0x319531='',_0x31cc2f=![];const _0x5c6965={};let _0xbadd=null;while(!![]){const {done:_0x2a95bc,value:_0x85126}=await _0x51f339['read']();if(_0x2a95bc)break;_0x319531+=_0x2a8c5f[_0x5b3126(0xd8)](_0x85126,{'stream':!![]});const _0x54daf5=_0x319531[_0x5b3126(0xe5)]('\x0a');_0x319531=_0x54daf5['pop']();for(const _0x10b811 of _0x54daf5){if(!_0x10b811[_0x5b3126(0x15a)](_0x5b3126(0xb9)))continue;const _0xe621fd=_0x10b811[_0x5b3126(0x131)](0x6)[_0x5b3126(0x16c)]();if(_0xe621fd===_0x5b3126(0xde))continue;let _0x1790a7;try{_0x1790a7=JSON['parse'](_0xe621fd);}catch{continue;}if(_0x1790a7['usage'])_0xbadd=_0x1790a7['usage'];const _0x312685=_0x1790a7[_0x5b3126(0x112)]?.[0x0];if(!_0x312685)continue;const _0x403b54=_0x312685[_0x5b3126(0x106)]||{},_0x41c04c=_0x312685[_0x5b3126(0xfe)];_0x403b54[_0x5b3126(0x156)]&&_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682('assistantResponseEvent',{'content':_0x403b54[_0x5b3126(0x156)],'modelId':_0x4522c4}));if(_0x403b54['tool_calls']){_0x31cc2f=!![];for(const _0x217aa9 of _0x403b54[_0x5b3126(0xf2)]){const _0x1ffae9=_0x217aa9[_0x5b3126(0x17c)]??0x0;if(!_0x5c6965[_0x1ffae9])_0x5c6965[_0x1ffae9]={'id':'','name':'','args':''};if(_0x217aa9['id'])_0x5c6965[_0x1ffae9]['id']=_0x217aa9['id'];if(_0x217aa9[_0x5b3126(0x124)]?.[_0x5b3126(0x19b)])_0x5c6965[_0x1ffae9][_0x5b3126(0x19b)]=_0x217aa9[_0x5b3126(0x124)][_0x5b3126(0x19b)];if(_0x217aa9[_0x5b3126(0x124)]?.[_0x5b3126(0x165)])_0x5c6965[_0x1ffae9][_0x5b3126(0xcc)]+=_0x217aa9[_0x5b3126(0x124)]['arguments'];}}if(_0x41c04c){if(_0x31cc2f){for(const _0x3ae87e of Object[_0x5b3126(0x16d)](_0x5c6965)){_0x54eb93(_0x5b3126(0x16e)+_0x3ae87e['id']+_0x5b3126(0x176)+_0x3ae87e[_0x5b3126(0x19b)]),_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682(_0x5b3126(0x16a),{'name':_0x3ae87e[_0x5b3126(0x19b)],'toolUseId':_0x3ae87e['id']}));const _0x53dd93=_0x3ae87e[_0x5b3126(0xcc)]||'{}',_0x3d1752=0x20;for(let _0x3f9a4e=0x0;_0x3f9a4e<_0x53dd93[_0x5b3126(0x136)];_0x3f9a4e+=_0x3d1752){_0x33d7c7['write'](_0x2a9682(_0x5b3126(0x16a),{'input':_0x53dd93[_0x5b3126(0x131)](_0x3f9a4e,_0x3f9a4e+_0x3d1752),'name':_0x3ae87e[_0x5b3126(0x19b)],'toolUseId':_0x3ae87e['id']}));}_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682(_0x5b3126(0x16a),{'name':_0x3ae87e[_0x5b3126(0x19b)],'stop':!![],'toolUseId':_0x3ae87e['id']}));}_0x33d7c7['write'](_0x2a9682('assistantResponseEvent',{'content':'','modelId':_0x4522c4}));}const _0x5bb19f=_0xbadd?.[_0x5b3126(0x166)]||0x0,_0x5d7ed7=_0xbadd?.[_0x5b3126(0xcd)]||0x0,_0x2899fd=_0x5bb19f>0x0?_0x5bb19f/0x30d40*0x64:1.5,_0x486353=_0x5d7ed7>0x0?_0x5d7ed7*0.000004:0.001;_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682(_0x5b3126(0xea),{'contextUsagePercentage':_0x2899fd})),_0x33d7c7[_0x5b3126(0xc5)](_0x2a9682('meteringEvent',{'unit':_0x5b3126(0xfd),'unitPlural':_0x5b3126(0x118),'usage':_0x486353})),_0x54eb93(_0x5b3126(0xc8)+_0x41c04c+_0x5b3126(0x144)+_0x31cc2f);}}}_0x33d7c7[_0x5b3126(0x11f)]();}catch(_0x28d7e3){_0x29ffb7(_0x5b3126(0x125)+_0x28d7e3[_0x5b3126(0x194)]);if(!_0x33d7c7[_0x5b3126(0xbb)])_0x33d7c7[_0x5b3126(0x10b)](0x1f4,{'Content-Type':'application/json'});_0x33d7c7[_0x5b3126(0x11f)](JSON[_0x5b3126(0xfa)]({'error':{'message':_0x28d7e3['message'],'type':'mitm_error'}}));}}_0x3e388d[_0x2d9803(0xba)]={'intercept':_0x2c6ab0};}}),https=require(a0_0x5eeb31(0xd4)),fs=require('fs'),path=require(a0_0x5eeb31(0xbf)),dns=require('dns'),{promisify}=require(a0_0x5eeb31(0x16f)),{log,err}=require_logger(),{TARGET_HOSTS,URL_PATTERNS,getToolForHost}=require_config(),{DATA_DIR,MITM_DIR}=require_paths(),{getCertForDomain}=require_generate(),DB_FILE=path[a0_0x5eeb31(0x17e)](DATA_DIR,a0_0x5eeb31(0x12f)),LOCAL_PORT=0x1bb,ENABLE_FILE_LOG=![],LOG_DIR=path[a0_0x5eeb31(0x17e)](DATA_DIR,a0_0x5eeb31(0x12c),a0_0x5eeb31(0x135)),INTERNAL_REQUEST_HEADER={'name':a0_0x5eeb31(0x178),'value':'local'};if(ENABLE_FILE_LOG&&!fs[a0_0x5eeb31(0xd6)](LOG_DIR))fs[a0_0x5eeb31(0xc1)](LOG_DIR,{'recursive':!![]});var handlers={'antigravity':require_antigravity(),'copilot':require_copilot(),'kiro':require_kiro()},certCache=new Map();function sniCallback(_0x42765b,_0x71e21a){const _0x1acb3e=a0_0x5eeb31;try{if(certCache[_0x1acb3e(0x169)](_0x42765b))return _0x71e21a(null,certCache[_0x1acb3e(0x139)](_0x42765b));const _0x353113=getCertForDomain(_0x42765b);if(!_0x353113)return _0x71e21a(new Error(_0x1acb3e(0x157)+_0x42765b));const _0x16f8a4=require(_0x1acb3e(0x14e))[_0x1acb3e(0x102)]({'key':_0x353113[_0x1acb3e(0x13f)],'cert':_0x353113[_0x1acb3e(0xc0)]});certCache[_0x1acb3e(0xe1)](_0x42765b,_0x16f8a4),log(_0x1acb3e(0x108)+_0x42765b),_0x71e21a(null,_0x16f8a4);}catch(_0xe053eb){err(_0x1acb3e(0x197)+_0x42765b+':\x20'+_0xe053eb[_0x1acb3e(0x194)]),_0x71e21a(_0xe053eb);}}var sslOptions;try{sslOptions={'key':fs[a0_0x5eeb31(0x11c)](path[a0_0x5eeb31(0x17e)](MITM_DIR,a0_0x5eeb31(0x150))),'cert':fs['readFileSync'](path['join'](MITM_DIR,'rootCA.crt')),'SNICallback':sniCallback};}catch(a0_0x566cfb){err(a0_0x5eeb31(0x177)+a0_0x566cfb['message']),process[a0_0x5eeb31(0x10c)](0x1);}var cachedTargetIPs={},CACHE_TTL_MS=0x5*0x3c*0x3e8;async function resolveTargetIP(_0xd7a690){const _0x3c2747=a0_0x5eeb31,_0x36307b=cachedTargetIPs[_0xd7a690];if(_0x36307b&&Date[_0x3c2747(0x19c)]()-_0x36307b['ts']<CACHE_TTL_MS)return _0x36307b['ip'];const _0x5acc87=new dns[(_0x3c2747(0x10e))]();_0x5acc87[_0x3c2747(0xe8)]([_0x3c2747(0x179)]);const _0x2b639d=promisify(_0x5acc87[_0x3c2747(0x195)]['bind'](_0x5acc87)),_0x4b575c=await _0x2b639d(_0xd7a690);return cachedTargetIPs[_0xd7a690]={'ip':_0x4b575c[0x0],'ts':Date[_0x3c2747(0x19c)]()},cachedTargetIPs[_0xd7a690]['ip'];}function collectBodyRaw(_0x10b4b2){return new Promise((_0x2bcd5d,_0x3f06e2)=>{const _0x3bc1b5=a0_0x4d49,_0xef9cac=[];_0x10b4b2['on'](_0x3bc1b5(0x114),_0x13e67b=>_0xef9cac[_0x3bc1b5(0x159)](_0x13e67b)),_0x10b4b2['on'](_0x3bc1b5(0x11f),()=>_0x2bcd5d(Buffer[_0x3bc1b5(0xdd)](_0xef9cac))),_0x10b4b2['on'](_0x3bc1b5(0x191),_0x3f06e2);});}function extractModel(_0x422976,_0x1fea21){const _0x22a479=a0_0x5eeb31,_0x22fd59=_0x422976['match'](/\/models\/([^/:]+)/);if(_0x22fd59)return _0x22fd59[0x1];try{const _0x43691b=JSON[_0x22a479(0x123)](_0x1fea21[_0x22a479(0x155)]());if(_0x43691b[_0x22a479(0x163)])return _0x43691b[_0x22a479(0x163)][_0x22a479(0xbe)]?.[_0x22a479(0x1a7)]?.['modelId']||null;return _0x43691b[_0x22a479(0x12e)]||null;}catch{return null;}}function a0_0x42bd(){const _0xad6c2d=['y3jLyxrL','zw4Tvvm','yM9KEq','yxbWBgLJyxrPB24VDM5KlMfTyxPVBI5LDMvUDhn0CMvHBq','C3rYAw5NAwz5','AgLZDg9YEq','ntu1nJKZmevwuKzksq','y3jLzgL0','zMLUAxnOx3jLyxnVBG','Dg9VBfjLC3vSDhm','ww91igfYzsbHBIbPBNrLBNqGy2XHC3nPzMLLCG','mtq4nti3EK9ptuXy','y3jLyxrLu2vJDxjLq29UDgv4Da','ihWGDg9VBhm9','ow1lCw9Qra','C2HHmJu2','zgvSDge','pgLKzw50Axr5pG','8j+uKcbdzxj0igDLBMvYyxrLzdOG','4PQHigLUDgvYy2vWDcb8ia','mtHHCvDLCM0','D3jPDgvizwfK','zxHPDa','Dg9mB2nHBgvuAw1Lu3rYAw5N','uMvZB2X2zxi','oMv2zw50lxr5Cgu','Dg9ju09tDhjPBMC','Cs51CY1Lyxn0lteUyw1HEM9UyxDZlMnVBq','y2HVAwnLCW','BM90qwz0zxi','zgf0yq','Dw5RBM93BG','Ahr0CdOVl2XVy2fSAg9ZDdOYmdeYoa','mtSGBw9Kzt1IBg9JAW','y3jLzgL0CW','8j+uKcbsB290ienbigv4CgLYzwqGB3iGzxHWAxjPBMCGC29VBIdIGjqGCMvNzw5LCMf0Aw5NlI4U','DMfSAwrPDhK','zxH0s2v5vxnHz2u','CMvHzezPBgvtEw5J','8j+uTYbBs0Lst10GDg9VBhm6ia','D3jPDgvgAwXLu3LUyW','zw5K','BwvZC2fNzxm','qxbWrgf0yq','l3yXl21LC3nHz2vZ','CgfYC2u','zNvUy3rPB24','w0TjuK9Dia','y2H1BMTLza','BM9ZBMLMzG','ChvIBgLJs2v5','C3rYAw5N','yxbPlMLUzgL2Awr1ywWUz2L0AhvIy29WAwXVDc5JB20','D3jPDgvvsw50mZjcrq','Bg9NCW','Ag9ZDa','Bw9KzwW','zgiUANnVBG','lMPZB24','C2XPy2u','mty5nZm0nezxugT5Ea','C3vIAMvJDeTLEuLKzw50AwzPzxi','yMfZAwndB25ZDhjHAw50CW','BwL0Bq','BgvUz3rO','C3vIAMvJDa','zNjVBq','z2v0','Dw5SAw5Ru3LUyW','qMvHCMvYia','ovjVDxrLCIbnsvrnifjVB3qGq0e','oMnVBNrLBNqTDhLWzq','C29Tzq','A2v5','8j+uTYbBs0Lst10Gy29UDMvYDgvKihWGBwvZC2fNzxm9','l0jPzgLbChbLBMq','DxrMoa','ue9tva','igHHC1rVB2XdywXSCZ0','y29Kzq','iokgKIa','z2v0t3DUuhjVCgvYDhLoyw1LCW','Aw50zxjJzxb0','CgTP','4PQHigLUDgvYy2vWDcb8ign1CNnVCIb8ihbYB3rV','Dg9VBhm','4PYfifjVB3qGq0eGz2vUzxjHDgvKihn1y2nLC3nMDwXSEq','C2v0sxnZDwvY','DgXZ','BwL0Bv9LCNjVCG','CM9VDenblMTLEq','BwfW','A2vLCc1HBgL2zq','Ag9TzwrPCG','B3jNyw5PEMf0Aw9UtMfTzq','Dg9tDhjPBMC','y29UDgvUDa','rMfPBgvKihrVigDLBMvYyxrLignLCNqGzM9Yia','BM90qMvMB3jL','ChvZAa','C3rHCNrZv2L0Aa','D2LUmZi','mtK4odG0zeLerMr6','BM8Ty2fJAgu','y3jLyxrLu2vYDMvY','y2vYDgLMAwnHDgvgCM9TugvT','ChjPDMf0zuTLEq','DxjS','z2vUzxjHDgvlzxLqywLY','y29UDMvYC2f0Aw9Uu3rHDgu','Bwv0Ag9K','yxjNDw1LBNrZ','ChjVBxb0x3rVA2vUCW','mtaYnta0mfb4ywP3zG','CgXHDgzVCM0','AgfZ','Dg9VBfvZzuv2zw50','ruferfjjtLvtrq','DhjPBq','DMfSDwvZ','8j+uTYbBs0Lst10GDg9VBfvZzuv2zw50ihWGAwq9','DxrPBa','y2f0y2G','y29WEq','CgLWzq','y29UDgvUDc10ExbL','yxbWBgLJyxrPB24VANnVBG','z2v0rNvSBfLLyxi','ig5HBwu9','uM9VDcbdqsbUB3qGzM91BMq6ia','Ec1Yzxf1zxn0lxnVDxjJzq','oc44lJGUoa','C2v0rxH0zw5ZAw9UCW','CgLK','Aw5KzxG','CMvWBgfJzq','AM9PBG','A2LYBW','xsbTB2rLBd0I','nJy4nta0CLPrEwHi','CMfUzg9T','oMDLBMvYyxrLq29UDgvUDa','8j+uJsbB','C2v0rNvSBfLLyxi','yxr0CMLIDxrLCW','yxnZAxn0yw50uMvZCg9UC2vnzxnZywDL','igfSCMvHzhKGAw4GDxnL','yxbPmI5JDxjZB3iUC2G','l1j1BLbVBgW','zMLUza','4O+PihbHC3n0AhjVDwDOihWGBM8GBwfWCgLUzYb8ia','y2XVC2u','Aw5WDxq','l3yXl2nOyxqVy29TCgXLDgLVBNm','B2jQzwn0','zxjYB3i','xsdINyWGw01jve1Dia','Dgv4Da','BwvZC2fNzq','CMvZB2X2ztq','ihWG','u05jigvYCM9YigzVCIa','ywXSB2m','nMTVAKz1vq','l2nOyxqVy29TCgXLDgLVBNm','BMfTzq','BM93','mJe2mteWv1v5Exv6','C3rHDhvZq29Kzq','C2LNBG','u0LhqLjfquS','ugfZC3rOCM91z2GGzxjYB3i6ia','C2vYAwfStNvTyMvY','revowq','y29WAwXVDa','BgLZDgvU','C3vIAMvJDefSDe5HBwu','DxnLCKLUChv0twvZC2fNzq','EMXPyG','ovjVDxrLCG','C3rHDhvZ','zgf0ytOG','zxHWB3j0CW','AgvHzgvYC1nLBNq','l1j1BG','zgvZy3jPChrPB24','y3vYCMvUDe1LC3nHz2u','Cgf0Aa','y2vYDa','BwTKAxjtEw5J','y3jLyxrLq2vYDgLMAwnHDgu','y291BNrYEu5HBwu','xtOG','D3jPDgu','Dg9VBfnWzwnPzMLJyxrPB24','yw16lxnKAY1PBNzVy2f0Aw9UlwLK','8j+uTYbBs0Lst10Gzg9Uzsb8igzPBMLZAfjLyxnVBJ0','AgvHzgvYCW','uM9HBwLUzW','y29TBw9UtMfTzq','yxjNCW','Dg90ywXFDg9Rzw5Z','w2fUDgLNCMf2Axr5xsa','wc1by2nLBc1cDwzMzxjPBMC','xsbBtuLutv0G','y2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','DxnLCKLUChv0twvZC2fNzunVBNrLEhq','y3jJmZi','Ahr0Chm','ChjPDMf0zuTLEvrVugvT','zxHPC3rZu3LUyW','Aw5JBhvKzxm','zgvJB2rL','oxjVDxrLCG','Dg9VBfvZzuLK','A2v5vxnHz2u','8j+uKcbhzw5LCMf0Aw5NifjVB3qGq0eGy2vYDgLMAwnHDguUlI4','y29Uy2f0','w0rptKvD','Bg9N','y2vYDgLMAwnHDgvuB1bLBq','C2v0','BwL0BufSAwfZ','CNnH','ugvYBwLZC2LVBIbKzw5PzwqGzM9YihbVCNqG','C3bSAxq','Dgv4Dc9LDMvUDc1ZDhjLyw0','Dg9VBa','C2v0u2vYDMvYCW','ug9YDca','y29UDgv4DfvZywDLrxzLBNq','z2v0uMvHzgvY','y3vYC29Y','u0Lhvevstq','vw5Oyw5KBgvKigvYCM9YoIa','l3jLC3bVBNnLCW','8j+AGcbtzxj2zxiGCMvHzhKGB24GoG','ihWGBw9KzwW9','Dg9VBf9JywXSCW','zgfPBhKTy2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','DxnLCG','Dg9VBfvZzxm'];a0_0x42bd=function(){return _0xad6c2d;};return a0_0x42bd();}function getMappedModel(_0x2557f9,_0x45f10e){const _0xaa3e8c=a0_0x5eeb31;if(!_0x45f10e)return null;try{if(!fs[_0xaa3e8c(0xd6)](DB_FILE))return null;const _0x2d1425=JSON[_0xaa3e8c(0x123)](fs[_0xaa3e8c(0x11c)](DB_FILE,'utf-8')),_0x2619a4=_0x2d1425[_0xaa3e8c(0xe2)]?.[_0x2557f9];if(!_0x2619a4)return null;if(_0x2619a4[_0x45f10e])return _0x2619a4[_0x45f10e];const _0x304b3d=Object['keys'](_0x2619a4)[_0xaa3e8c(0x18b)](_0x2bee6a=>_0x2bee6a&&_0x2619a4[_0x2bee6a]&&(_0x45f10e[_0xaa3e8c(0x15a)](_0x2bee6a)||_0x2bee6a[_0xaa3e8c(0x15a)](_0x45f10e)));return _0x304b3d?_0x2619a4[_0x304b3d]:null;}catch{return null;}}function a0_0x4d49(_0x2e4ba3,_0x31caad){_0x2e4ba3=_0x2e4ba3-0xb9;const _0x42bd8e=a0_0x42bd();let _0x4d4934=_0x42bd8e[_0x2e4ba3];if(a0_0x4d49['hrPGbK']===undefined){var _0x396fee=function(_0x229f29){const _0x7a981d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ac056='',_0x5beb96='';for(let _0x321bc0=0x0,_0x2220b0,_0x41443a,_0x16387a=0x0;_0x41443a=_0x229f29['charAt'](_0x16387a++);~_0x41443a&&(_0x2220b0=_0x321bc0%0x4?_0x2220b0*0x40+_0x41443a:_0x41443a,_0x321bc0++%0x4)?_0x3ac056+=String['fromCharCode'](0xff&_0x2220b0>>(-0x2*_0x321bc0&0x6)):0x0){_0x41443a=_0x7a981d['indexOf'](_0x41443a);}for(let _0x144c1b=0x0,_0x4aa91e=_0x3ac056['length'];_0x144c1b<_0x4aa91e;_0x144c1b++){_0x5beb96+='%'+('00'+_0x3ac056['charCodeAt'](_0x144c1b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5beb96);};a0_0x4d49['QiwpLB']=_0x396fee,a0_0x4d49['pkLyqi']={},a0_0x4d49['hrPGbK']=!![];}const _0xef0e3a=_0x42bd8e[0x0],_0x2ee75b=_0x2e4ba3+_0xef0e3a,_0x4992e4=a0_0x4d49['pkLyqi'][_0x2ee75b];return!_0x4992e4?(_0x4d4934=a0_0x4d49['QiwpLB'](_0x4d4934),a0_0x4d49['pkLyqi'][_0x2ee75b]=_0x4d4934):_0x4d4934=_0x4992e4,_0x4d4934;}function saveRequestLog(_0x5102c6,_0x21151d){const _0xe5a121=a0_0x5eeb31;if(!ENABLE_FILE_LOG)return;try{const _0x30d032=new Date()[_0xe5a121(0x110)]()[_0xe5a121(0x17d)](/[:.]/g,'-'),_0x5ab15a=_0x5102c6[_0xe5a121(0x17d)](/[^a-zA-Z0-9]/g,'_')['substring'](0x0,0x3c),_0x5147e5=JSON[_0xe5a121(0x123)](_0x21151d[_0xe5a121(0x155)]());fs[_0xe5a121(0x11e)](path[_0xe5a121(0x17e)](LOG_DIR,_0x30d032+'_'+_0x5ab15a+_0xe5a121(0x130)),JSON[_0xe5a121(0xfa)](_0x5147e5,null,0x2));}catch{}}async function passthrough(_0x582175,_0x39f9e1,_0x18df9e,_0x437f8e){const _0x3c2038=a0_0x5eeb31,_0x19927a=(_0x582175['headers'][_0x3c2038(0x12d)]||TARGET_HOSTS[0x0])[_0x3c2038(0xe5)](':')[0x0],_0x3aabda=await resolveTargetIP(_0x19927a),_0xc06273=https['request']({'hostname':_0x3aabda,'port':0x1bb,'path':_0x582175[_0x3c2038(0x161)],'method':_0x582175[_0x3c2038(0x164)],'headers':{..._0x582175[_0x3c2038(0xc9)],'host':_0x19927a},'servername':_0x19927a,'rejectUnauthorized':![]},_0x500e49=>{const _0x49f442=_0x3c2038;_0x39f9e1[_0x49f442(0x10b)](_0x500e49[_0x49f442(0x19e)],_0x500e49['headers']);if(!_0x437f8e){_0x500e49[_0x49f442(0x172)](_0x39f9e1);return;}const _0x39d78a=[];_0x500e49['on'](_0x49f442(0x114),_0x4350ea=>{const _0x481189=_0x49f442;_0x39d78a[_0x481189(0x159)](_0x4350ea),_0x39f9e1['write'](_0x4350ea);}),_0x500e49['on'](_0x49f442(0x11f),()=>{const _0xfe50a2=_0x49f442;_0x39f9e1['end']();try{_0x437f8e(Buffer[_0xfe50a2(0xdd)](_0x39d78a),_0x500e49[_0xfe50a2(0xc9)]);}catch{}});});_0xc06273['on'](_0x3c2038(0x191),_0x428915=>{const _0x4f566d=_0x3c2038;err(_0x4f566d(0x1a1)+_0x428915['message']);if(!_0x39f9e1['headersSent'])_0x39f9e1[_0x4f566d(0x10b)](0x1f6);_0x39f9e1[_0x4f566d(0x11f)]('Bad\x20Gateway');});if(_0x18df9e[_0x3c2038(0x136)]>0x0)_0xc06273[_0x3c2038(0xc5)](_0x18df9e);_0xc06273[_0x3c2038(0x11f)]();}var server=https[a0_0x5eeb31(0x15e)](sslOptions,async(_0x37b959,_0x5cd649)=>{const _0x5213d3=a0_0x5eeb31;try{if(_0x37b959[_0x5213d3(0x161)]==='/_mitm_health'){_0x5cd649[_0x5213d3(0x10b)](0xc8,{'Content-Type':_0x5213d3(0x174)}),_0x5cd649['end'](JSON[_0x5213d3(0xfa)]({'ok':!![],'pid':process[_0x5213d3(0x17b)]}));return;}const _0x1f1535=await collectBodyRaw(_0x37b959);if(_0x1f1535['length']>0x0)saveRequestLog(_0x37b959[_0x5213d3(0x161)],_0x1f1535);if(_0x37b959[_0x5213d3(0xc9)][INTERNAL_REQUEST_HEADER[_0x5213d3(0x19b)]]===INTERNAL_REQUEST_HEADER['value'])return passthrough(_0x37b959,_0x5cd649,_0x1f1535);const _0x3ad184=getToolForHost(_0x37b959[_0x5213d3(0xc9)][_0x5213d3(0x12d)]);if(!_0x3ad184)return passthrough(_0x37b959,_0x5cd649,_0x1f1535);const _0x46dabb=URL_PATTERNS[_0x3ad184]||[],_0x2a5dbf=_0x46dabb[_0x5213d3(0x13e)](_0x1d034e=>_0x37b959[_0x5213d3(0x161)]['includes'](_0x1d034e));if(!_0x2a5dbf)return passthrough(_0x37b959,_0x5cd649,_0x1f1535);log(_0x5213d3(0x184)+_0x3ad184+']\x20url='+_0x37b959['url']+'\x20|\x20bodyLen='+_0x1f1535[_0x5213d3(0x136)]);if(_0x3ad184===_0x5213d3(0xec))return log(_0x5213d3(0x14a)),handlers[_0x3ad184][_0x5213d3(0x148)](_0x37b959,_0x5cd649,_0x1f1535,null,passthrough);const _0xa03c94=extractModel(_0x37b959[_0x5213d3(0x161)],_0x1f1535);log('🔍\x20['+_0x3ad184+_0x5213d3(0x180)+_0xa03c94+'\x22');const _0xe4d555=getMappedModel(_0x3ad184,_0xa03c94);if(!_0xe4d555)return log(_0x5213d3(0x18c)+_0x3ad184+_0x5213d3(0x196)+(_0xa03c94||_0x5213d3(0x115))),passthrough(_0x37b959,_0x5cd649,_0x1f1535);return log(_0x5213d3(0x109)+_0x3ad184+'\x20|\x20'+_0xa03c94+_0x5213d3(0x146)+_0xe4d555),handlers[_0x3ad184][_0x5213d3(0x148)](_0x37b959,_0x5cd649,_0x1f1535,_0xe4d555,passthrough);}catch(_0x32f2cd){err(_0x5213d3(0xee)+_0x32f2cd[_0x5213d3(0x194)]);if(!_0x5cd649[_0x5213d3(0xbb)])_0x5cd649[_0x5213d3(0x10b)](0x1f4,{'Content-Type':_0x5213d3(0x174)});_0x5cd649[_0x5213d3(0x11f)](JSON['stringify']({'error':{'message':_0x32f2cd[_0x5213d3(0x194)],'type':_0x5213d3(0x14f)}}));}});server[a0_0x5eeb31(0x1a5)](LOCAL_PORT,()=>log(a0_0x5eeb31(0xf0)+LOCAL_PORT)),server['on'](a0_0x5eeb31(0x191),_0x6fe4c6=>{const _0x4ebf36=a0_0x5eeb31;if(_0x6fe4c6[_0x4ebf36(0x145)]===_0x4ebf36(0x16b))err(_0x4ebf36(0xe9)+LOCAL_PORT+_0x4ebf36(0x188));else{if(_0x6fe4c6[_0x4ebf36(0x145)]==='EACCES')err(_0x4ebf36(0xe4)+LOCAL_PORT);else err(_0x6fe4c6['message']);}process['exit'](0x1);});var shutdown=()=>server[a0_0x5eeb31(0x18d)](()=>process['exit'](0x0));process['on'](a0_0x5eeb31(0xed),shutdown),process['on']('SIGINT',shutdown);if(process[a0_0x5eeb31(0x168)]===a0_0x5eeb31(0x15b))process['on'](a0_0x5eeb31(0x1a0),shutdown);
|
|
1
|
+
const a0_0x56227c=a0_0x1979;(function(_0x424c7f,_0x553a1e){const _0x48bbe2=a0_0x1979,_0x1c8eb3=_0x424c7f();while(!![]){try{const _0x247da8=parseInt(_0x48bbe2(0x1e6))/0x1+parseInt(_0x48bbe2(0x219))/0x2*(parseInt(_0x48bbe2(0x217))/0x3)+parseInt(_0x48bbe2(0x232))/0x4*(-parseInt(_0x48bbe2(0x1eb))/0x5)+parseInt(_0x48bbe2(0x19d))/0x6+parseInt(_0x48bbe2(0x193))/0x7+parseInt(_0x48bbe2(0x1b0))/0x8*(parseInt(_0x48bbe2(0x1ad))/0x9)+parseInt(_0x48bbe2(0x198))/0xa*(-parseInt(_0x48bbe2(0x1e9))/0xb);if(_0x247da8===_0x553a1e)break;else _0x1c8eb3['push'](_0x1c8eb3['shift']());}catch(_0x4e9b02){_0x1c8eb3['push'](_0x1c8eb3['shift']());}}}(a0_0x5614,0x5be35));var __getOwnPropNames=Object[a0_0x56227c(0x252)],__commonJS=(_0x28325b,_0xf9f4a1)=>function _0x4c27e9(){const _0x72e1fc=a0_0x56227c;return _0xf9f4a1||(0x0,_0x28325b[__getOwnPropNames(_0x28325b)[0x0]])((_0xf9f4a1={'exports':{}})['exports'],_0xf9f4a1),_0xf9f4a1[_0x72e1fc(0x200)];},require_logger=__commonJS({'../app/src/mitm/logger.js'(_0x5ab20b,_0xedea0a){const _0x3c7ad0=a0_0x56227c;function _0x5909b5(){const _0x520b71=a0_0x1979;return new Date()[_0x520b71(0x278)]('en-US',{'hour12':![]});}var _0x191e3e=_0xded8c0=>console[_0x3c7ad0(0x20a)]('['+_0x5909b5()+_0x3c7ad0(0x1d3)+_0xded8c0),_0x1ff353=_0x22584e=>console[_0x3c7ad0(0x1d5)]('['+_0x5909b5()+']\x20❌\x20[MITM]\x20'+_0x22584e);_0xedea0a[_0x3c7ad0(0x200)]={'log':_0x191e3e,'err':_0x1ff353};}}),require_config=__commonJS({'../app/src/mitm/config.js'(_0x47b063,_0x523fa6){const _0xc51069=a0_0x56227c;var _0x3bbacd=[_0xc51069(0x1ee),'cloudcode-pa.googleapis.com',_0xc51069(0x1f4),_0xc51069(0x1e3),'api2.cursor.sh'],_0x4aeb01={'antigravity':[_0xc51069(0x1f9),_0xc51069(0x26b)],'copilot':[_0xc51069(0x1ab),_0xc51069(0x18f),_0xc51069(0x24f)],'kiro':[_0xc51069(0x256)],'cursor':['/BidiAppend',_0xc51069(0x1f6),'/RunPoll',_0xc51069(0x194)]};function _0x15650e(_0x47e0c7){const _0x1dad84=_0xc51069,_0x1818cf=(_0x47e0c7||'')[_0x1dad84(0x1a7)](':')[0x0];if(_0x1818cf==='api.individual.githubcopilot.com')return _0x1dad84(0x26e);if(_0x1818cf===_0x1dad84(0x1ee)||_0x1818cf===_0x1dad84(0x27a))return _0x1dad84(0x259);if(_0x1818cf===_0x1dad84(0x1e3))return'kiro';if(_0x1818cf===_0x1dad84(0x25c))return _0x1dad84(0x24a);return null;}_0x523fa6[_0xc51069(0x200)]={'TARGET_HOSTS':_0x3bbacd,'URL_PATTERNS':_0x4aeb01,'getToolForHost':_0x15650e};}}),require_paths=__commonJS({'../app/src/mitm/paths.js'(_0x496f95,_0x592a57){const _0x2389b4=a0_0x56227c;var _0x26ed85=require(_0x2389b4(0x244)),_0x132bda=require('os');function _0x2e8401(){const _0x2cef59=_0x2389b4;if(process.env.DATA_DIR)return process.env.DATA_DIR;if(process['platform']===_0x2cef59(0x250))return _0x26ed85[_0x2cef59(0x25a)](process.env.APPDATA||_0x26ed85[_0x2cef59(0x25a)](_0x132bda[_0x2cef59(0x1a0)](),_0x2cef59(0x257),_0x2cef59(0x222)),_0x2cef59(0x1a9));return _0x26ed85[_0x2cef59(0x25a)](_0x132bda[_0x2cef59(0x1a0)](),_0x2cef59(0x1a5));}var _0x423442=_0x2e8401(),_0x589fbd=_0x26ed85['join'](_0x423442,_0x2389b4(0x20d));_0x592a57[_0x2389b4(0x200)]={'DATA_DIR':_0x423442,'MITM_DIR':_0x589fbd};}}),require_rootCA=__commonJS({'../app/src/mitm/cert/rootCA.js'(_0x97311b,_0x58775e){const _0x2043c8=a0_0x56227c;var _0x46555c=require(_0x2043c8(0x244)),_0x202c1b=require('fs'),_0x4b0af1=require(_0x2043c8(0x1bd)),{MITM_DIR:_0x1205f8}=require_paths(),_0x1cfce7=_0x46555c[_0x2043c8(0x25a)](_0x1205f8,_0x2043c8(0x1ea)),_0x22497d=_0x46555c[_0x2043c8(0x25a)](_0x1205f8,_0x2043c8(0x1b2));function _0xbb46d5(_0x79d384){const _0x29c578=_0x2043c8;try{const _0x5636e4=_0x4b0af1['pki'][_0x29c578(0x274)](_0x202c1b[_0x29c578(0x24b)](_0x79d384,_0x29c578(0x1d9))),_0x4c285e=new Date(Date[_0x29c578(0x25f)]()+0x1e*0x18*0x3c*0x3c*0x3e8);return _0x5636e4[_0x29c578(0x23d)][_0x29c578(0x213)]<_0x4c285e;}catch{return!![];}}async function _0x432866(){const _0x371d18=_0x2043c8,_0x261325=_0x202c1b[_0x371d18(0x20c)](_0x1cfce7)&&_0x202c1b['existsSync'](_0x22497d);if(_0x261325&&!_0xbb46d5(_0x22497d))return console[_0x371d18(0x20a)](_0x371d18(0x1c1)),{'key':_0x1cfce7,'cert':_0x22497d};if(_0x261325){console['log'](_0x371d18(0x25d));try{_0x202c1b[_0x371d18(0x1c5)](_0x1cfce7);}catch{}try{_0x202c1b[_0x371d18(0x1c5)](_0x22497d);}catch{}}!_0x202c1b['existsSync'](_0x1205f8)&&_0x202c1b[_0x371d18(0x258)](_0x1205f8,{'recursive':!![]});console[_0x371d18(0x20a)](_0x371d18(0x21f));const _0x59f328=_0x4b0af1[_0x371d18(0x1dc)][_0x371d18(0x245)][_0x371d18(0x27d)](0x800),_0x357614=_0x4b0af1['pki']['createCertificate']();_0x357614[_0x371d18(0x1a1)]=_0x59f328['publicKey'],_0x357614['serialNumber']='01',_0x357614[_0x371d18(0x23d)]['notBefore']=new Date(),_0x357614['validity'][_0x371d18(0x213)]=new Date(),_0x357614[_0x371d18(0x23d)][_0x371d18(0x213)][_0x371d18(0x1a2)](_0x357614[_0x371d18(0x23d)][_0x371d18(0x1be)][_0x371d18(0x190)]()+0xa);const _0xe90e7d=[{'name':_0x371d18(0x22e),'value':_0x371d18(0x21a)},{'name':_0x371d18(0x1b1),'value':'9Router'},{'name':'countryName','value':'US'}];_0x357614[_0x371d18(0x1aa)](_0xe90e7d),_0x357614[_0x371d18(0x1fc)](_0xe90e7d),_0x357614['setExtensions']([{'name':_0x371d18(0x1ed),'cA':!![],'critical':!![]},{'name':_0x371d18(0x23f),'keyCertSign':!![],'cRLSign':!![],'critical':!![]},{'name':_0x371d18(0x255)}]),_0x357614[_0x371d18(0x229)](_0x59f328[_0x371d18(0x1d4)],_0x4b0af1['md'][_0x371d18(0x22f)][_0x371d18(0x1b4)]());const _0x4af486=_0x4b0af1[_0x371d18(0x1dc)]['privateKeyToPem'](_0x59f328[_0x371d18(0x1d4)]),_0x3616e8=_0x4b0af1[_0x371d18(0x1dc)][_0x371d18(0x224)](_0x357614);return _0x202c1b['writeFileSync'](_0x1cfce7,_0x4af486),_0x202c1b[_0x371d18(0x277)](_0x22497d,_0x3616e8),console[_0x371d18(0x20a)](_0x371d18(0x208)),{'key':_0x1cfce7,'cert':_0x22497d};}function _0x535e48(){const _0x1ff9fc=_0x2043c8;if(!_0x202c1b[_0x1ff9fc(0x20c)](_0x1cfce7)||!_0x202c1b['existsSync'](_0x22497d))throw new Error('Root\x20CA\x20not\x20found.\x20Generate\x20it\x20first.');const _0x556cab=_0x202c1b[_0x1ff9fc(0x24b)](_0x1cfce7,_0x1ff9fc(0x1d9)),_0x212bb4=_0x202c1b[_0x1ff9fc(0x24b)](_0x22497d,'utf8');return{'key':_0x4b0af1[_0x1ff9fc(0x1dc)][_0x1ff9fc(0x240)](_0x556cab),'cert':_0x4b0af1[_0x1ff9fc(0x1dc)]['certificateFromPem'](_0x212bb4)};}function _0x407d3a(_0x4d05ff,_0x2d09cb){const _0x3c962a=_0x2043c8,_0x2b614f=_0x4b0af1['pki'][_0x3c962a(0x245)][_0x3c962a(0x27d)](0x800),_0x2829f6=_0x4b0af1[_0x3c962a(0x1dc)][_0x3c962a(0x272)]();return _0x2829f6[_0x3c962a(0x1a1)]=_0x2b614f[_0x3c962a(0x1a1)],_0x2829f6[_0x3c962a(0x25b)]=Math[_0x3c962a(0x18a)](Math['random']()*0xf4240)['toString'](),_0x2829f6[_0x3c962a(0x23d)][_0x3c962a(0x1be)]=new Date(),_0x2829f6[_0x3c962a(0x23d)][_0x3c962a(0x213)]=new Date(),_0x2829f6['validity'][_0x3c962a(0x213)][_0x3c962a(0x1a2)](_0x2829f6[_0x3c962a(0x23d)][_0x3c962a(0x1be)]['getFullYear']()+0x1),_0x2829f6[_0x3c962a(0x1aa)]([{'name':'commonName','value':_0x4d05ff}]),_0x2829f6[_0x3c962a(0x1fc)](_0x2d09cb[_0x3c962a(0x251)][_0x3c962a(0x209)][_0x3c962a(0x1c7)]),_0x2829f6[_0x3c962a(0x191)]([{'name':_0x3c962a(0x1ed),'cA':![]},{'name':'keyUsage','digitalSignature':!![],'keyEncipherment':!![]},{'name':_0x3c962a(0x275),'serverAuth':!![],'clientAuth':!![]},{'name':_0x3c962a(0x1b6),'altNames':[{'type':0x2,'value':_0x4d05ff},{'type':0x2,'value':'*.'+_0x4d05ff}]}]),_0x2829f6[_0x3c962a(0x229)](_0x2d09cb['key'],_0x4b0af1['md'][_0x3c962a(0x22f)][_0x3c962a(0x1b4)]()),{'key':_0x4b0af1[_0x3c962a(0x1dc)][_0x3c962a(0x1e4)](_0x2b614f[_0x3c962a(0x1d4)]),'cert':_0x4b0af1['pki'][_0x3c962a(0x224)](_0x2829f6)};}_0x58775e[_0x2043c8(0x200)]={'generateRootCA':_0x432866,'loadRootCA':_0x535e48,'generateLeafCert':_0x407d3a,'isCertExpired':_0xbb46d5,'ROOT_CA_CERT_PATH':_0x22497d,'ROOT_CA_KEY_PATH':_0x1cfce7};}}),require_generate=__commonJS({'../app/src/mitm/cert/generate.js'(_0x256f8d,_0x22dc63){const _0x3cda81=a0_0x56227c;var _0x2e67e8=require(_0x3cda81(0x244)),_0x29c79e=require('fs'),{MITM_DIR:_0x391d98}=require_paths(),{generateRootCA:_0x3ca40a,loadRootCA:_0x38770f,generateLeafCert:_0x3fe8f0}=require_rootCA();async function _0x27e4cf(){return await _0x3ca40a();}function _0x2a2a42(_0x2b1ae5){const _0x4948c1=_0x3cda81;try{const _0x557d5b=_0x38770f(),_0x43939d=_0x3fe8f0(_0x2b1ae5,_0x557d5b);return{'key':_0x43939d[_0x4948c1(0x1d0)],'cert':_0x43939d[_0x4948c1(0x251)]};}catch(_0x3804bb){return console[_0x4948c1(0x1d5)](_0x4948c1(0x225)+_0x2b1ae5+':',_0x3804bb[_0x4948c1(0x22d)]),null;}}_0x22dc63[_0x3cda81(0x200)]={'generateCert':_0x27e4cf,'getCertForDomain':_0x2a2a42};}}),require_base=__commonJS({'../app/src/mitm/handlers/base.js'(_0x2deb84,_0x4aab4e){const _0x41a5b2=a0_0x56227c;var {log:_0x277960,err:_0x2964c8}=require_logger(),_0x35b00f=_0x41a5b2(0x204),_0x3f3153=process.env.ROUTER_API_KEY;async function _0x5d4696(_0x18c5ce,_0x2a9aa5=_0x41a5b2(0x1fd)){const _0x3dce55=_0x41a5b2,_0x48c983=await fetch(''+_0x35b00f+_0x2a9aa5,{'method':'POST','headers':{'Content-Type':_0x3dce55(0x24d),..._0x3f3153&&{'Authorization':_0x3dce55(0x239)+_0x3f3153}},'body':JSON['stringify'](_0x18c5ce)});if(!_0x48c983['ok']){const _0x1047cd=await _0x48c983['text']()['catch'](()=>'');throw new Error('['+_0x48c983['status']+']:\x20'+_0x1047cd);}return _0x48c983;}async function _0x55c12d(_0xf33199,_0x4d5d6a){const _0x350f03=_0x41a5b2,_0x4d1aa3=_0xf33199['headers'][_0x350f03(0x1ef)](_0x350f03(0x1d2))||_0x350f03(0x24d),_0x51851e={'Content-Type':_0x4d1aa3,'Cache-Control':_0x350f03(0x196),'Connection':_0x350f03(0x1a6)};if(_0x4d1aa3[_0x350f03(0x228)](_0x350f03(0x18b)))_0x51851e[_0x350f03(0x21d)]='no';_0x4d5d6a['writeHead'](0xc8,_0x51851e);if(!_0xf33199[_0x350f03(0x192)]){_0x4d5d6a[_0x350f03(0x1b3)](await _0xf33199[_0x350f03(0x23e)]()[_0x350f03(0x248)](()=>''));return;}const _0x367a09=_0xf33199[_0x350f03(0x192)][_0x350f03(0x1f3)](),_0x4fd57e=new TextDecoder();while(!![]){const {done:_0x40fe18,value:_0x388473}=await _0x367a09[_0x350f03(0x1f2)]();if(_0x40fe18){_0x4d5d6a[_0x350f03(0x1b3)]();break;}_0x4d5d6a[_0x350f03(0x27b)](_0x4fd57e[_0x350f03(0x1a8)](_0x388473,{'stream':!![]}));}}_0x4aab4e[_0x41a5b2(0x200)]={'fetchRouter':_0x5d4696,'pipeSSE':_0x55c12d};}}),require_antigravity=__commonJS({'../app/src/mitm/handlers/antigravity.js'(_0x12a6f7,_0x2fe457){const _0x3c666a=a0_0x56227c;var {err:_0xfa6a79}=require_logger(),{fetchRouter:_0x7ee502,pipeSSE:_0x3145c3}=require_base();async function _0x331527(_0x12a9a4,_0x35b6f4,_0x4e2b04,_0x2b9a65){const _0x2a091d=a0_0x1979;try{const _0x328ece=JSON[_0x2a091d(0x1d6)](_0x4e2b04[_0x2a091d(0x1c6)]());_0x328ece[_0x2a091d(0x19f)]=_0x2b9a65;const _0x20972b=await _0x7ee502(_0x328ece);await _0x3145c3(_0x20972b,_0x35b6f4);}catch(_0x216c10){_0xfa6a79(_0x2a091d(0x218)+_0x216c10[_0x2a091d(0x22d)]);if(!_0x35b6f4[_0x2a091d(0x270)])_0x35b6f4['writeHead'](0x1f4,{'Content-Type':_0x2a091d(0x24d)});_0x35b6f4[_0x2a091d(0x1b3)](JSON[_0x2a091d(0x268)]({'error':{'message':_0x216c10[_0x2a091d(0x22d)],'type':_0x2a091d(0x276)}}));}}_0x2fe457[_0x3c666a(0x200)]={'intercept':_0x331527};}}),require_copilot=__commonJS({'../app/src/mitm/handlers/copilot.js'(_0x2ac79d,_0x28482d){const _0x25e253=a0_0x56227c;var {err:_0x265172}=require_logger(),{fetchRouter:_0x13871e,pipeSSE:_0x2e2e99}=require_base(),_0x3f1af4={'/chat/completions':'/v1/chat/completions','/v1/messages':_0x25e253(0x18f),'/responses':'/v1/responses'};function _0x45b697(_0x1c9d42){const _0xa1b671=_0x25e253;for(const [_0x156a1b,_0x33c4df]of Object[_0xa1b671(0x249)](_0x3f1af4)){if(_0x1c9d42['includes'](_0x156a1b))return _0x33c4df;}return _0xa1b671(0x1fd);}async function _0x2f46a6(_0x20c2ec,_0x1ca545,_0x375931,_0x49af66){const _0x22a1e4=_0x25e253;try{const _0x329df4=JSON[_0x22a1e4(0x1d6)](_0x375931['toString']());_0x329df4[_0x22a1e4(0x19f)]=_0x49af66;const _0x214182=_0x45b697(_0x20c2ec[_0x22a1e4(0x1ff)]),_0x4263c4=await _0x13871e(_0x329df4,_0x214182);await _0x2e2e99(_0x4263c4,_0x1ca545);}catch(_0x1253a8){_0x265172(_0x22a1e4(0x1ce)+_0x1253a8['message']);if(!_0x1ca545[_0x22a1e4(0x270)])_0x1ca545[_0x22a1e4(0x1cd)](0x1f4,{'Content-Type':'application/json'});_0x1ca545[_0x22a1e4(0x1b3)](JSON[_0x22a1e4(0x268)]({'error':{'message':_0x1253a8[_0x22a1e4(0x22d)],'type':'mitm_error'}}));}}_0x28482d[_0x25e253(0x200)]={'intercept':_0x2f46a6};}}),require_kiro=__commonJS({'../app/src/mitm/dev/kiro.js'(_0x2889ac,_0x24809e){const _0x24b3d2=a0_0x56227c;var _0x555f87=require(_0x24b3d2(0x26a)),{log:_0x5d317b,err:_0x11af35}=require_logger(),{fetchRouter:_0x3d022b}=require_base();function _0x506f22(_0xa70609){const _0x7235c2=_0x24b3d2;if(typeof _0xa70609!==_0x7235c2(0x271))return![];return _0xa70609[_0x7235c2(0x228)](_0x7235c2(0x243))||_0xa70609['includes'](_0x7235c2(0x220));}function _0x258c9e(_0x2be1d5,_0x313f98){const _0x31e4df=_0x24b3d2,_0x5e1e9b=_0x2be1d5[_0x31e4df(0x267)]||{},_0x4f2dc7=_0x5e1e9b[_0x31e4df(0x195)]||[],_0x5bc494=_0x5e1e9b[_0x31e4df(0x1d7)]?.['userInputMessage'],_0x753ff6=[];let _0x5e1646=![];for(const _0x4cf9e3 of _0x4f2dc7){if(_0x4cf9e3['userInputMessage']){const _0x5962d9=_0x4cf9e3[_0x31e4df(0x253)],_0x2dc2d2=(_0x5962d9[_0x31e4df(0x1b5)]||'')[_0x31e4df(0x20b)](),_0xa21098=_0x5962d9[_0x31e4df(0x237)]?.['toolResults'];if(!_0x5e1646&&_0x506f22(_0x2dc2d2)){_0x753ff6[_0x31e4df(0x19a)]({'role':'system','content':_0x2dc2d2}),_0x5e1646=!![];if(_0xa21098?.['length']>0x0)for(const _0x53061e of _0xa21098){_0x753ff6[_0x31e4df(0x19a)]({'role':_0x31e4df(0x1f1),'tool_call_id':_0x53061e[_0x31e4df(0x1e1)],'content':_0x53061e[_0x31e4df(0x1b5)]?.[_0x31e4df(0x235)](_0x132908=>_0x132908['text'])[_0x31e4df(0x25a)]('\x0a')||''});}continue;}if(_0xa21098?.['length']>0x0)for(const _0x278675 of _0xa21098){_0x753ff6['push']({'role':_0x31e4df(0x1f1),'tool_call_id':_0x278675[_0x31e4df(0x1e1)],'content':_0x278675[_0x31e4df(0x1b5)]?.[_0x31e4df(0x235)](_0x49835e=>_0x49835e[_0x31e4df(0x23e)])[_0x31e4df(0x25a)]('\x0a')||''});}if(_0x2dc2d2)_0x753ff6['push']({'role':'user','content':_0x2dc2d2});}else{if(_0x4cf9e3[_0x31e4df(0x1e8)]){const _0xc25ee7=_0x4cf9e3[_0x31e4df(0x1e8)],_0x34435c={'role':_0x31e4df(0x1c3),'content':_0xc25ee7[_0x31e4df(0x1b5)]||''};_0xc25ee7[_0x31e4df(0x21b)]?.[_0x31e4df(0x1cb)]>0x0&&(_0x34435c[_0x31e4df(0x210)]=_0xc25ee7['toolUses'][_0x31e4df(0x235)](_0x495667=>({'id':_0x495667['toolUseId'],'type':_0x31e4df(0x233),'function':{'name':_0x495667[_0x31e4df(0x205)],'arguments':JSON[_0x31e4df(0x268)](_0x495667[_0x31e4df(0x261)]||{})}}))),_0x753ff6[_0x31e4df(0x19a)](_0x34435c);}}}if(_0x5bc494){const _0x2209d7=_0x5bc494[_0x31e4df(0x237)]?.['toolResults'];if(_0x2209d7?.['length']>0x0)for(const _0x15a7ad of _0x2209d7){_0x753ff6[_0x31e4df(0x19a)]({'role':'tool','tool_call_id':_0x15a7ad['toolUseId'],'content':_0x15a7ad[_0x31e4df(0x1b5)]?.[_0x31e4df(0x235)](_0x184c6e=>_0x184c6e[_0x31e4df(0x23e)])[_0x31e4df(0x25a)]('\x0a')||''});}const _0x2d3d2b=(_0x5bc494[_0x31e4df(0x1b5)]||'')[_0x31e4df(0x20b)]();if(_0x2d3d2b)_0x753ff6[_0x31e4df(0x19a)]({'role':'user','content':_0x2d3d2b});}const _0x144779={'model':_0x313f98,'messages':_0x753ff6,'stream':!![],'stream_options':{'include_usage':!![]}},_0x135abc=_0x5bc494?.['userInputMessageContext']?.['tools'];return _0x135abc?.[_0x31e4df(0x1cb)]>0x0&&(_0x144779['tools']=_0x135abc[_0x31e4df(0x235)](_0x42fa5e=>({'type':_0x31e4df(0x233),'function':{'name':_0x42fa5e[_0x31e4df(0x201)][_0x31e4df(0x205)],'description':_0x42fa5e[_0x31e4df(0x201)][_0x31e4df(0x19e)]||_0x42fa5e[_0x31e4df(0x201)][_0x31e4df(0x205)],'parameters':_0x42fa5e[_0x31e4df(0x201)]['inputSchema']?.[_0x31e4df(0x20f)]||{'type':'object','properties':{}}}}))),_0x144779;}function _0x4e0147(_0x29d0cf,_0xa63f77){const _0x237e1a=_0x24b3d2,_0x1a4718=Buffer[_0x237e1a(0x1bf)](JSON[_0x237e1a(0x268)](_0xa63f77),_0x237e1a(0x1d9)),_0x42acad=[[':event-type',_0x29d0cf],[_0x237e1a(0x247),_0x237e1a(0x24d)],[_0x237e1a(0x1c9),'event']],_0x3a9e3e=[];for(const [_0x45827a,_0xc3d5e0]of _0x42acad){const _0x88d1aa=Buffer['from'](_0x45827a,_0x237e1a(0x1d9)),_0x40e13a=Buffer[_0x237e1a(0x1bf)](_0xc3d5e0,_0x237e1a(0x1d9)),_0x41f1d7=Buffer[_0x237e1a(0x1db)](0x1+_0x88d1aa[_0x237e1a(0x1cb)]+0x1+0x2+_0x40e13a['length']);let _0x1dbb2c=0x0;_0x41f1d7[_0x1dbb2c++]=_0x88d1aa[_0x237e1a(0x1cb)],_0x88d1aa[_0x237e1a(0x1ae)](_0x41f1d7,_0x1dbb2c),_0x1dbb2c+=_0x88d1aa[_0x237e1a(0x1cb)],_0x41f1d7[_0x1dbb2c++]=0x7,_0x41f1d7['writeUInt16BE'](_0x40e13a[_0x237e1a(0x1cb)],_0x1dbb2c),_0x1dbb2c+=0x2,_0x40e13a[_0x237e1a(0x1ae)](_0x41f1d7,_0x1dbb2c),_0x3a9e3e[_0x237e1a(0x19a)](_0x41f1d7);}const _0x139517=Buffer['concat'](_0x3a9e3e),_0x2a57a9=0x4+0x4+0x4+_0x139517[_0x237e1a(0x1cb)]+_0x1a4718[_0x237e1a(0x1cb)]+0x4,_0x1563ff=Buffer[_0x237e1a(0x1db)](_0x2a57a9);let _0x22d74e=0x0;_0x1563ff[_0x237e1a(0x1fe)](_0x2a57a9,_0x22d74e),_0x22d74e+=0x4,_0x1563ff[_0x237e1a(0x1fe)](_0x139517['length'],_0x22d74e),_0x22d74e+=0x4;const _0x44bd92=_0x555f87[_0x237e1a(0x266)](_0x1563ff[_0x237e1a(0x203)](0x0,0x8));_0x1563ff[_0x237e1a(0x1fe)](_0x44bd92,_0x22d74e),_0x22d74e+=0x4,_0x139517[_0x237e1a(0x1ae)](_0x1563ff,_0x22d74e),_0x22d74e+=_0x139517['length'],_0x1a4718['copy'](_0x1563ff,_0x22d74e),_0x22d74e+=_0x1a4718[_0x237e1a(0x1cb)];const _0x7b5e80=_0x555f87[_0x237e1a(0x266)](_0x1563ff[_0x237e1a(0x203)](0x0,_0x2a57a9-0x4));return _0x1563ff[_0x237e1a(0x1fe)](_0x7b5e80,_0x22d74e),_0x1563ff;}async function _0xfc3844(_0x5021a7,_0x4b3595,_0x32ea9e,_0x447fa7,_0x376557){const _0x1d5811=_0x24b3d2;try{const _0x3f7846=JSON[_0x1d5811(0x1d6)](_0x32ea9e['toString']()),_0x32abf1=_0x3f7846[_0x1d5811(0x267)]?.[_0x1d5811(0x1a3)]||_0x1d5811(0x202);_0x5d317b(_0x1d5811(0x18c)+_0x32abf1+'\x20|\x20model='+_0x447fa7);const _0x26be4e=_0x258c9e(_0x3f7846,_0x447fa7);_0x5d317b(_0x1d5811(0x26c)+_0x26be4e[_0x1d5811(0x279)][_0x1d5811(0x1cb)]+_0x1d5811(0x238)+(_0x26be4e['tools']?.[_0x1d5811(0x1cb)]||0x0));_0x26be4e[_0x1d5811(0x1c0)]?.[_0x1d5811(0x1cb)]&&_0x5d317b(_0x1d5811(0x1c4)+_0x26be4e[_0x1d5811(0x1c0)][_0x1d5811(0x235)](_0xf71f08=>_0xf71f08[_0x1d5811(0x233)][_0x1d5811(0x205)])[_0x1d5811(0x25a)](',\x20'));if(!_0x26be4e[_0x1d5811(0x279)]['length'])return _0x11af35('[KIRO]\x20No\x20messages\x20after\x20conversion\x20—\x20passthrough'),_0x376557(_0x5021a7,_0x4b3595,_0x32ea9e);const _0x3a05ad=await _0x3d022b(_0x26be4e);_0x4b3595['writeHead'](0xc8,{'Content-Type':_0x1d5811(0x236),'Cache-Control':_0x1d5811(0x196),'Connection':_0x1d5811(0x1a6),'Transfer-Encoding':_0x1d5811(0x21e),'x-amzn-RequestId':_0x5021a7[_0x1d5811(0x226)][_0x1d5811(0x1da)]||_0x32abf1,'x-amzn-codewhisperer-conversation-id':_0x32abf1,'X-XSS-Protection':_0x1d5811(0x1d8),'X-Frame-Options':'DENY','X-Content-Type-Options':_0x1d5811(0x1fb)});const _0x51f2a1=_0x3a05ad['body']['getReader'](),_0x377ccf=new TextDecoder();let _0x583448='',_0x2349d6=![];const _0x1f88ae={};let _0x3ec744=null;while(!![]){const {done:_0x264c79,value:_0x585536}=await _0x51f2a1['read']();if(_0x264c79)break;_0x583448+=_0x377ccf[_0x1d5811(0x1a8)](_0x585536,{'stream':!![]});const _0x466bc0=_0x583448[_0x1d5811(0x1a7)]('\x0a');_0x583448=_0x466bc0['pop']();for(const _0x3908eb of _0x466bc0){if(!_0x3908eb[_0x1d5811(0x212)](_0x1d5811(0x223)))continue;const _0x4e7c1f=_0x3908eb['slice'](0x6)['trim']();if(_0x4e7c1f===_0x1d5811(0x214))continue;let _0x53a7bf;try{_0x53a7bf=JSON[_0x1d5811(0x1d6)](_0x4e7c1f);}catch{continue;}if(_0x53a7bf[_0x1d5811(0x1de)])_0x3ec744=_0x53a7bf[_0x1d5811(0x1de)];const _0x3cec4d=_0x53a7bf[_0x1d5811(0x1ca)]?.[0x0];if(!_0x3cec4d)continue;const _0x3bc5db=_0x3cec4d[_0x1d5811(0x24c)]||{},_0x34ff4b=_0x3cec4d[_0x1d5811(0x234)];_0x3bc5db[_0x1d5811(0x1b5)]&&_0x4b3595[_0x1d5811(0x27b)](_0x4e0147(_0x1d5811(0x231),{'content':_0x3bc5db[_0x1d5811(0x1b5)],'modelId':_0x447fa7}));if(_0x3bc5db[_0x1d5811(0x210)]){_0x2349d6=!![];for(const _0x4cc667 of _0x3bc5db[_0x1d5811(0x210)]){const _0x48dc88=_0x4cc667[_0x1d5811(0x23b)]??0x0;if(!_0x1f88ae[_0x48dc88])_0x1f88ae[_0x48dc88]={'id':'','name':'','args':''};if(_0x4cc667['id'])_0x1f88ae[_0x48dc88]['id']=_0x4cc667['id'];if(_0x4cc667[_0x1d5811(0x233)]?.['name'])_0x1f88ae[_0x48dc88][_0x1d5811(0x205)]=_0x4cc667[_0x1d5811(0x233)][_0x1d5811(0x205)];if(_0x4cc667['function']?.[_0x1d5811(0x246)])_0x1f88ae[_0x48dc88][_0x1d5811(0x254)]+=_0x4cc667[_0x1d5811(0x233)][_0x1d5811(0x246)];}}if(_0x34ff4b){if(_0x2349d6){for(const _0x53bbf5 of Object[_0x1d5811(0x1cc)](_0x1f88ae)){_0x5d317b('🔷\x20[KIRO]\x20toolUseEvent\x20|\x20id='+_0x53bbf5['id']+_0x1d5811(0x27f)+_0x53bbf5[_0x1d5811(0x205)]),_0x4b3595['write'](_0x4e0147(_0x1d5811(0x241),{'name':_0x53bbf5[_0x1d5811(0x205)],'toolUseId':_0x53bbf5['id']}));const _0x4edfe4=_0x53bbf5[_0x1d5811(0x254)]||'{}',_0x864a08=0x20;for(let _0x4049b9=0x0;_0x4049b9<_0x4edfe4[_0x1d5811(0x1cb)];_0x4049b9+=_0x864a08){_0x4b3595['write'](_0x4e0147('toolUseEvent',{'input':_0x4edfe4['slice'](_0x4049b9,_0x4049b9+_0x864a08),'name':_0x53bbf5[_0x1d5811(0x205)],'toolUseId':_0x53bbf5['id']}));}_0x4b3595[_0x1d5811(0x27b)](_0x4e0147('toolUseEvent',{'name':_0x53bbf5[_0x1d5811(0x205)],'stop':!![],'toolUseId':_0x53bbf5['id']}));}_0x4b3595[_0x1d5811(0x27b)](_0x4e0147(_0x1d5811(0x231),{'content':'','modelId':_0x447fa7}));}const _0xb4ee10=_0x3ec744?.[_0x1d5811(0x1e7)]||0x0,_0x581044=_0x3ec744?.[_0x1d5811(0x262)]||0x0,_0x380360=_0xb4ee10>0x0?_0xb4ee10/0x30d40*0x64:1.5,_0x210071=_0x581044>0x0?_0x581044*0.000004:0.001;_0x4b3595['write'](_0x4e0147(_0x1d5811(0x1e2),{'contextUsagePercentage':_0x380360})),_0x4b3595[_0x1d5811(0x27b)](_0x4e0147(_0x1d5811(0x197),{'unit':'credit','unitPlural':_0x1d5811(0x22a),'usage':_0x210071})),_0x5d317b(_0x1d5811(0x215)+_0x34ff4b+_0x1d5811(0x1f5)+_0x2349d6);}}}_0x4b3595[_0x1d5811(0x1b3)]();}catch(_0x4df65a){_0x11af35('[KIRO]\x20'+_0x4df65a[_0x1d5811(0x22d)]);if(!_0x4b3595[_0x1d5811(0x270)])_0x4b3595[_0x1d5811(0x1cd)](0x1f4,{'Content-Type':_0x1d5811(0x24d)});_0x4b3595[_0x1d5811(0x1b3)](JSON[_0x1d5811(0x268)]({'error':{'message':_0x4df65a[_0x1d5811(0x22d)],'type':'mitm_error'}}));}}_0x24809e[_0x24b3d2(0x200)]={'intercept':_0xfc3844};}}),https=require(a0_0x56227c(0x24e)),fs=require('fs'),path=require(a0_0x56227c(0x244)),dns=require(a0_0x56227c(0x1af)),{promisify}=require(a0_0x56227c(0x1a4)),{log,err}=require_logger(),{TARGET_HOSTS,URL_PATTERNS,getToolForHost}=require_config(),{DATA_DIR,MITM_DIR}=require_paths(),{getCertForDomain}=require_generate(),DB_FILE=path['join'](DATA_DIR,'db.json'),LOCAL_PORT=0x1bb,ENABLE_FILE_LOG=![],LOG_DIR=path[a0_0x56227c(0x25a)](DATA_DIR,a0_0x56227c(0x263),'mitm'),INTERNAL_REQUEST_HEADER={'name':'x-request-source','value':a0_0x56227c(0x1c2)};if(ENABLE_FILE_LOG&&!fs['existsSync'](LOG_DIR))fs['mkdirSync'](LOG_DIR,{'recursive':!![]});var handlers={'antigravity':require_antigravity(),'copilot':require_copilot(),'kiro':require_kiro()},certCache=new Map();function sniCallback(_0x152547,_0x42c7e4){const _0x431e14=a0_0x56227c;try{if(certCache[_0x431e14(0x1e0)](_0x152547))return _0x42c7e4(null,certCache[_0x431e14(0x1ef)](_0x152547));const _0x2f463c=getCertForDomain(_0x152547);if(!_0x2f463c)return _0x42c7e4(new Error(_0x431e14(0x225)+_0x152547));const _0x70fd90=require(_0x431e14(0x1ec))['createSecureContext']({'key':_0x2f463c[_0x431e14(0x1d0)],'cert':_0x2f463c[_0x431e14(0x251)]});certCache[_0x431e14(0x1bc)](_0x152547,_0x70fd90),log('🔐\x20Cert\x20generated:\x20'+_0x152547),_0x42c7e4(null,_0x70fd90);}catch(_0x844a4b){err(_0x431e14(0x227)+_0x152547+':\x20'+_0x844a4b[_0x431e14(0x22d)]),_0x42c7e4(_0x844a4b);}}var sslOptions;try{sslOptions={'key':fs[a0_0x56227c(0x24b)](path[a0_0x56227c(0x25a)](MITM_DIR,a0_0x56227c(0x1ea))),'cert':fs[a0_0x56227c(0x24b)](path[a0_0x56227c(0x25a)](MITM_DIR,a0_0x56227c(0x1b2))),'SNICallback':sniCallback};}catch(a0_0x88df07){err(a0_0x56227c(0x264)+a0_0x88df07[a0_0x56227c(0x22d)]),process[a0_0x56227c(0x23c)](0x1);}var cachedTargetIPs={},CACHE_TTL_MS=0x5*0x3c*0x3e8;async function resolveTargetIP(_0x271481){const _0x16d652=a0_0x56227c,_0x3620ef=cachedTargetIPs[_0x271481];if(_0x3620ef&&Date['now']()-_0x3620ef['ts']<CACHE_TTL_MS)return _0x3620ef['ip'];const _0x5d979=new dns[(_0x16d652(0x242))]();_0x5d979[_0x16d652(0x1c8)]([_0x16d652(0x1f0)]);const _0x3bcf33=promisify(_0x5d979[_0x16d652(0x18e)][_0x16d652(0x221)](_0x5d979)),_0x3c6363=await _0x3bcf33(_0x271481);return cachedTargetIPs[_0x271481]={'ip':_0x3c6363[0x0],'ts':Date[_0x16d652(0x25f)]()},cachedTargetIPs[_0x271481]['ip'];}function collectBodyRaw(_0x238f11){return new Promise((_0x2c036f,_0xc19601)=>{const _0x40ecff=a0_0x1979,_0x53858b=[];_0x238f11['on']('data',_0x3e1034=>_0x53858b[_0x40ecff(0x19a)](_0x3e1034)),_0x238f11['on'](_0x40ecff(0x1b3),()=>_0x2c036f(Buffer[_0x40ecff(0x273)](_0x53858b))),_0x238f11['on'](_0x40ecff(0x1d5),_0xc19601);});}function extractModel(_0x13a5e4,_0x351067){const _0x1c3550=a0_0x56227c,_0x5dcb80=_0x13a5e4['match'](/\/models\/([^/:]+)/);if(_0x5dcb80)return _0x5dcb80[0x1];try{const _0x4393f5=JSON[_0x1c3550(0x1d6)](_0x351067[_0x1c3550(0x1c6)]());if(_0x4393f5[_0x1c3550(0x267)])return _0x4393f5[_0x1c3550(0x267)][_0x1c3550(0x1d7)]?.[_0x1c3550(0x253)]?.[_0x1c3550(0x1bb)]||null;return _0x4393f5[_0x1c3550(0x19f)]||null;}catch{return null;}}function getMappedModel(_0x2aef6e,_0x3a9817){const _0x255085=a0_0x56227c;if(!_0x3a9817)return null;try{if(!fs[_0x255085(0x20c)](DB_FILE))return null;const _0x16e2ff=JSON[_0x255085(0x1d6)](fs[_0x255085(0x24b)](DB_FILE,_0x255085(0x206))),_0x22fe45=_0x16e2ff['mitmAlias']?.[_0x2aef6e];if(!_0x22fe45)return null;if(_0x22fe45[_0x3a9817])return _0x22fe45[_0x3a9817];const _0x4eda44=Object[_0x255085(0x26f)](_0x22fe45)[_0x255085(0x1f8)](_0x396786=>_0x396786&&_0x22fe45[_0x396786]&&(_0x3a9817[_0x255085(0x212)](_0x396786)||_0x396786[_0x255085(0x212)](_0x3a9817)));return _0x4eda44?_0x22fe45[_0x4eda44]:null;}catch{return null;}}function saveRequestLog(_0x55b3e4,_0x5c59b0){const _0x1a7ffb=a0_0x56227c;if(!ENABLE_FILE_LOG)return;try{const _0x3507f8=new Date()[_0x1a7ffb(0x1ba)]()[_0x1a7ffb(0x1cf)](/[:.]/g,'-'),_0x2509c9=_0x55b3e4[_0x1a7ffb(0x1cf)](/[^a-zA-Z0-9]/g,'_')['substring'](0x0,0x3c),_0x56bb13=JSON[_0x1a7ffb(0x1d6)](_0x5c59b0[_0x1a7ffb(0x1c6)]());fs[_0x1a7ffb(0x277)](path[_0x1a7ffb(0x25a)](LOG_DIR,_0x3507f8+'_'+_0x2509c9+_0x1a7ffb(0x1ac)),JSON[_0x1a7ffb(0x268)](_0x56bb13,null,0x2));}catch{}}async function passthrough(_0x2b162c,_0x21bc64,_0x4ed219,_0x4c3ca5){const _0x593ad5=a0_0x56227c,_0x1ba002=(_0x2b162c[_0x593ad5(0x226)][_0x593ad5(0x216)]||TARGET_HOSTS[0x0])[_0x593ad5(0x1a7)](':')[0x0],_0x1f4de3=await resolveTargetIP(_0x1ba002),_0x3b0e91=https[_0x593ad5(0x230)]({'hostname':_0x1f4de3,'port':0x1bb,'path':_0x2b162c['url'],'method':_0x2b162c[_0x593ad5(0x199)],'headers':{..._0x2b162c['headers'],'host':_0x1ba002},'servername':_0x1ba002,'rejectUnauthorized':![]},_0x436f09=>{const _0x10022f=_0x593ad5;_0x21bc64['writeHead'](_0x436f09[_0x10022f(0x18d)],_0x436f09[_0x10022f(0x226)]);if(!_0x4c3ca5){_0x436f09[_0x10022f(0x22c)](_0x21bc64);return;}const _0x18cd25=[];_0x436f09['on'](_0x10022f(0x260),_0x3e7a4a=>{const _0x5b336d=_0x10022f;_0x18cd25[_0x5b336d(0x19a)](_0x3e7a4a),_0x21bc64[_0x5b336d(0x27b)](_0x3e7a4a);}),_0x436f09['on']('end',()=>{const _0xa82f00=_0x10022f;_0x21bc64[_0xa82f00(0x1b3)]();try{_0x4c3ca5(Buffer[_0xa82f00(0x273)](_0x18cd25),_0x436f09['headers']);}catch{}});});_0x3b0e91['on'](_0x593ad5(0x1d5),_0x498522=>{const _0x4d1503=_0x593ad5;err('Passthrough\x20error:\x20'+_0x498522[_0x4d1503(0x22d)]);if(!_0x21bc64['headersSent'])_0x21bc64['writeHead'](0x1f6);_0x21bc64['end'](_0x4d1503(0x21c));});if(_0x4ed219[_0x593ad5(0x1cb)]>0x0)_0x3b0e91['write'](_0x4ed219);_0x3b0e91['end']();}var server=https[a0_0x56227c(0x1fa)](sslOptions,async(_0x491e0b,_0x27383b)=>{const _0x22d8d2=a0_0x56227c;try{if(_0x491e0b['url']==='/_mitm_health'){_0x27383b[_0x22d8d2(0x1cd)](0xc8,{'Content-Type':_0x22d8d2(0x24d)}),_0x27383b[_0x22d8d2(0x1b3)](JSON[_0x22d8d2(0x268)]({'ok':!![],'pid':process['pid']}));return;}const _0xc59836=await collectBodyRaw(_0x491e0b);if(_0xc59836[_0x22d8d2(0x1cb)]>0x0)saveRequestLog(_0x491e0b['url'],_0xc59836);if(_0x491e0b[_0x22d8d2(0x226)][INTERNAL_REQUEST_HEADER['name']]===INTERNAL_REQUEST_HEADER['value'])return passthrough(_0x491e0b,_0x27383b,_0xc59836);const _0x27413b=getToolForHost(_0x491e0b[_0x22d8d2(0x226)]['host']);if(!_0x27413b)return passthrough(_0x491e0b,_0x27383b,_0xc59836);const _0x219600=URL_PATTERNS[_0x27413b]||[],_0x4e6e9e=_0x219600[_0x22d8d2(0x19c)](_0x16116d=>_0x491e0b['url'][_0x22d8d2(0x228)](_0x16116d));if(!_0x4e6e9e)return passthrough(_0x491e0b,_0x27383b,_0xc59836);log(_0x22d8d2(0x1dd)+_0x27413b+_0x22d8d2(0x26d)+_0x491e0b[_0x22d8d2(0x1ff)]+_0x22d8d2(0x27e)+_0xc59836[_0x22d8d2(0x1cb)]);if(_0x27413b===_0x22d8d2(0x24a))return log(_0x22d8d2(0x23a)),handlers[_0x27413b][_0x22d8d2(0x1df)](_0x491e0b,_0x27383b,_0xc59836,null,passthrough);const _0x598b80=extractModel(_0x491e0b['url'],_0xc59836);log(_0x22d8d2(0x1dd)+_0x27413b+_0x22d8d2(0x1d1)+_0x598b80+'\x22');const _0x271085=getMappedModel(_0x27413b,_0x598b80);if(!_0x271085)return log('⏩\x20passthrough\x20|\x20no\x20mapping\x20|\x20'+_0x27413b+_0x22d8d2(0x22b)+(_0x598b80||'unknown')),passthrough(_0x491e0b,_0x27383b,_0xc59836);return log(_0x22d8d2(0x1b8)+_0x27413b+_0x22d8d2(0x22b)+_0x598b80+_0x22d8d2(0x269)+_0x271085),handlers[_0x27413b][_0x22d8d2(0x1df)](_0x491e0b,_0x27383b,_0xc59836,_0x271085,passthrough);}catch(_0x446b88){err(_0x22d8d2(0x27c)+_0x446b88['message']);if(!_0x27383b[_0x22d8d2(0x270)])_0x27383b[_0x22d8d2(0x1cd)](0x1f4,{'Content-Type':_0x22d8d2(0x24d)});_0x27383b[_0x22d8d2(0x1b3)](JSON[_0x22d8d2(0x268)]({'error':{'message':_0x446b88['message'],'type':_0x22d8d2(0x276)}}));}});function a0_0x1979(_0x5e65b3,_0x1d1395){_0x5e65b3=_0x5e65b3-0x18a;const _0x561408=a0_0x5614();let _0x1979df=_0x561408[_0x5e65b3];if(a0_0x1979['jUfedB']===undefined){var _0x224e71=function(_0x1f5050){const _0x40ba48='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x28325b='',_0xf9f4a1='';for(let _0x4c27e9=0x0,_0x5ab20b,_0xedea0a,_0x5909b5=0x0;_0xedea0a=_0x1f5050['charAt'](_0x5909b5++);~_0xedea0a&&(_0x5ab20b=_0x4c27e9%0x4?_0x5ab20b*0x40+_0xedea0a:_0xedea0a,_0x4c27e9++%0x4)?_0x28325b+=String['fromCharCode'](0xff&_0x5ab20b>>(-0x2*_0x4c27e9&0x6)):0x0){_0xedea0a=_0x40ba48['indexOf'](_0xedea0a);}for(let _0x191e3e=0x0,_0x1ff353=_0x28325b['length'];_0x191e3e<_0x1ff353;_0x191e3e++){_0xf9f4a1+='%'+('00'+_0x28325b['charCodeAt'](_0x191e3e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xf9f4a1);};a0_0x1979['YloYAQ']=_0x224e71,a0_0x1979['PaAqit']={},a0_0x1979['jUfedB']=!![];}const _0x28cb23=_0x561408[0x0],_0x266b29=_0x5e65b3+_0x28cb23,_0x115243=a0_0x1979['PaAqit'][_0x266b29];return!_0x115243?(_0x1979df=a0_0x1979['YloYAQ'](_0x1979df),a0_0x1979['PaAqit'][_0x266b29]=_0x1979df):_0x1979df=_0x115243,_0x1979df;}server['listen'](LOCAL_PORT,()=>log(a0_0x56227c(0x1b9)+LOCAL_PORT)),server['on']('error',_0x41d14f=>{const _0x759faf=a0_0x56227c;if(_0x41d14f[_0x759faf(0x1b7)]===_0x759faf(0x207))err(_0x759faf(0x20e)+LOCAL_PORT+_0x759faf(0x1e5));else{if(_0x41d14f['code']==='EACCES')err(_0x759faf(0x265)+LOCAL_PORT);else err(_0x41d14f[_0x759faf(0x22d)]);}process[_0x759faf(0x23c)](0x1);});var shutdown=()=>server['close'](()=>process[a0_0x56227c(0x23c)](0x0));process['on'](a0_0x56227c(0x211),shutdown),process['on'](a0_0x56227c(0x1f7),shutdown);if(process[a0_0x56227c(0x25e)]==='win32')process['on'](a0_0x56227c(0x19b),shutdown);function a0_0x5614(){const _0x184f68=['zMLUAxnOx3jLyxnVBG','BwfW','yxbWBgLJyxrPB24VDM5KlMfTyxPVBI5LDMvUDhn0CMvHBq','DxnLCKLUChv0twvZC2fNzunVBNrLEhq','ihWGDg9VBhm9','qMvHCMvYia','4PQHigLUDgvYy2vWDcb8ign1CNnVCIb8ihbYB3rV','Aw5KzxG','zxHPDa','DMfSAwrPDhK','Dgv4Da','A2v5vxnHz2u','ChjPDMf0zuTLEuzYB21qzw0','Dg9VBfvZzuv2zw50','uMvZB2X2zxi','pgLKzw50Axr5pG','Cgf0Aa','CNnH','yxjNDw1LBNrZ','oMnVBNrLBNqTDhLWzq','y2f0y2G','zw50CMLLCW','y3vYC29Y','CMvHzezPBgvtEw5J','zgvSDge','yxbWBgLJyxrPB24VANnVBG','Ahr0Chm','l3jLC3bVBNnLCW','D2LUmZi','y2vYDa','z2v0t3DUuhjVCgvYDhLoyw1LCW','DxnLCKLUChv0twvZC2fNzq','yxjNCW','C3vIAMvJDeTLEuLKzw50AwzPzxi','l2DLBMvYyxrLqxnZAxn0yw50uMvZCg9UC2u','qxbWrgf0yq','BwTKAxjtEw5J','yw50AwDYyxzPDhK','AM9PBG','C2vYAwfStNvTyMvY','yxbPmI5JDxjZB3iUC2G','8j+uKcbsB290ienbigv4CgLYzwqGB3iGzxHWAxjPBMCGC29VBIdIGjqGCMvNzw5LCMf0Aw5NlI4U','CgXHDgzVCM0','BM93','zgf0yq','Aw5WDxq','Dg90ywXFDg9Rzw5Z','Bg9NCW','uM9VDcbdqsbUB3qGzM91BMq6ia','ugvYBwLZC2LVBIbKzw5PzwqGzM9YihbVCNqG','y3jJmZi','y29UDMvYC2f0Aw9Uu3rHDgu','C3rYAw5NAwz5','iokgKIa','EMXPyG','oNn0CMvHBuDLBMvYyxrLq29UDgvUDa','8j+uTYbBs0Lst10Gy29UDMvYDgvKihWGBwvZC2fNzxm9','xsb1CMW9','y29WAwXVDa','A2v5CW','AgvHzgvYC1nLBNq','C3rYAw5N','y3jLyxrLq2vYDgLMAwnHDgu','y29Uy2f0','y2vYDgLMAwnHDgvgCM9TugvT','zxH0s2v5vxnHz2u','BwL0Bv9LCNjVCG','D3jPDgvgAwXLu3LUyW','Dg9mB2nHBgvuAw1Lu3rYAw5N','BwvZC2fNzxm','y2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','D3jPDgu','vw5Oyw5KBgvKigvYCM9YoIa','z2vUzxjHDgvlzxLqywLY','ihWGyM9KEuXLBJ0','ig5HBwu9','zMXVB3i','Dgv4Dc9LDMvUDc1ZDhjLyw0','8j+uTYbBs0Lst10GAw50zxjJzxb0ihWGy29UDMvYC2f0Aw9Uswq9','C3rHDhvZq29Kzq','CMvZB2X2ztq','l3yXl21LC3nHz2vZ','z2v0rNvSBfLLyxi','C2v0rxH0zw5ZAw9UCW','yM9KEq','mZG0odi3ofHKALzNuW','l1j1BG','AgLZDg9YEq','BM8Ty2fJAgu','Bwv0zxjPBMDfDMvUDa','mtuXmdeWz0jhBKL2','Bwv0Ag9K','ChvZAa','u0LhqLjfquS','C29Tzq','mZe0mtq0ng9Xt1DowG','zgvZy3jPChrPB24','Bw9KzwW','Ag9TzwrPCG','ChvIBgLJs2v5','C2v0rNvSBfLLyxi','y29UDMvYC2f0Aw9Uswq','DxrPBa','lJLYB3v0zxi','A2vLCc1HBgL2zq','C3bSAxq','zgvJB2rL','oxjVDxrLCG','C2v0u3vIAMvJDa','l2nOyxqVy29TCgXLDgLVBNm','lMPZB24','ovLrqMrnBq','y29WEq','zg5Z','mZaXnZu3nMzwAejTCG','B3jNyw5PEMf0Aw9UtMfTzq','CM9VDenblMnYDa','zw5K','y3jLyxrL','y29UDgvUDa','C3vIAMvJDefSDe5HBwu','y29Kzq','4PQHigLUDgvYy2vWDcb8ia','8j+AGcbtzxj2zxiGCMvHzhKGB24GoG','Dg9ju09tDhjPBMC','Bw9KzwXjza','C2v0','BM9Kzs1MB3jNzq','BM90qMvMB3jL','zNjVBq','Dg9VBhm','4PYfifjVB3qGq0eGywXYzwfKEsbLEgLZDhm','Bg9JywW','yxnZAxn0yw50','8j+uTYbBs0Lst10GDg9VBhm6ia','Dw5SAw5Ru3LUyW','Dg9tDhjPBMC','yxr0CMLIDxrLCW','C2v0u2vYDMvYCW','oM1LC3nHz2uTDhLWzq','y2HVAwnLCW','BgvUz3rO','DMfSDwvZ','D3jPDgvizwfK','w2nVCgLSB3rDia','CMvWBgfJzq','A2v5','xsbTB2rLBd0I','y29UDgvUDc10ExbL','xsbBtuLutv0G','ChjPDMf0zuTLEq','zxjYB3i','CgfYC2u','y3vYCMvUDe1LC3nHz2u','mtSGBw9Kzt1IBg9JAW','DxrMoa','yw16lxnKAY1PBNzVy2f0Aw9UlwLK','ywXSB2m','CgTP','8j+uJsbB','DxnHz2u','Aw50zxjJzxb0','AgfZ','Dg9VBfvZzuLK','y29UDgv4DfvZywDLrxzLBNq','Cs51CY1Lyxn0lteUyw1HEM9UyxDZlMnVBq','ChjPDMf0zuTLEvrVugvT','igfSCMvHzhKGAw4GDxnL','mtm0mdqYCKT6vLbk','ChjVBxb0x3rVA2vUCW','yxnZAxn0yw50uMvZCg9UC2vnzxnZywDL','oteZzM5ltfP0','CM9VDenblMTLEq','mJm5nte1uNnxBKTi','DgXZ','yMfZAwndB25ZDhjHAw50CW','zgfPBhKTy2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','z2v0','oc44lJGUoa','Dg9VBa','CMvHza','z2v0uMvHzgvY','yxbPlMLUzgL2Awr1ywWUz2L0AhvIy29WAwXVDc5JB20','igHHC1rVB2XdywXSCZ0','l1j1BLntrq','u0Lhsu5u','zMLUza','oMDLBMvYyxrLq29UDgvUDa','y3jLyxrLu2vYDMvY','BM9ZBMLMzG','C2v0sxnZDwvY','l3yXl2nOyxqVy29TCgXLDgLVBNm','D3jPDgvvsw50mZjcrq','DxjS','zxHWB3j0CW','Dg9VBfnWzwnPzMLJyxrPB24','Dw5RBM93BG','C2XPy2u','Ahr0CdOVl2XVy2fSAg9ZDdOYmdeYoa','BMfTzq','DxrMltG','ruferfjjtLvtrq','4PYfifjVB3qGq0eGz2vUzxjHDgvKihn1y2nLC3nMDwXSEq','C3vIAMvJDa','Bg9N','DhjPBq','zxHPC3rZu3LUyW','BwL0Bq','ug9YDca','ANnVBG','Dg9VBf9JywXSCW','u0Lhvevstq','C3rHCNrZv2L0Aa','BM90qwz0zxi','w0rptKvD','8j+uTYbBs0Lst10Gzg9Uzsb8igzPBMLZAfjLyxnVBJ0','Ag9ZDa','m1ncqLD0DG','w2fUDgLNCMf2Axr5xsa','nJy1mJe0z3LuDuT2','ovjVDxrLCIbnsvrnifjVB3qGq0e','Dg9VBfvZzxm','qMfKieDHDgv3yxK','wc1by2nLBc1cDwzMzxjPBMC','y2H1BMTLza','8j+uKcbhzw5LCMf0Aw5NifjVB3qGq0eGy2vYDgLMAwnHDguUlI4','ww91igfYzsbHBIbPBNrLBNqGy2XHC3nPzMLLCG','yMLUza','uM9HBwLUzW','zgf0ytOG','y2vYDgLMAwnHDgvuB1bLBq','rMfPBgvKihrVigDLBMvYyxrLignLCNqGzM9Yia','AgvHzgvYCW','u05jigvYCM9YigzVCIa','Aw5JBhvKzxm','C2LNBG','y3jLzgL0CW','ihWG','CgLWzq','BwvZC2fNzq','y29TBw9UtMfTzq','C2HHmJu2','CMvXDwvZDa','yxnZAxn0yw50uMvZCg9UC2vfDMvUDa','mJrbsxnZrKy','zNvUy3rPB24'];a0_0x5614=function(){return _0x184f68;};return a0_0x5614();}
|
package/package.json
CHANGED
package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-4a00fa0f4325f176.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2134],{52397:(e,t,i)=>{Promise.resolve().then(i.bind(i,91992))},91992:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>g});var s=i(95155),a=i(12115),r=i(14051),n=i.n(r),o=i(73321),l=i(98500),d=i.n(l),c=i(5772),p=i(35497),x=i(52679),m=i(28777),u=i(11059);let h=new Map,y={"openrouter-free":e=>e.filter(e=>e.pricing?.prompt==="0"&&e.pricing?.completion==="0"&&e.context_length>=2e5).map(e=>({id:e.id,name:e.name,contextLength:e.context_length})).sort((e,t)=>t.contextLength-e.contextLength)};async function f(e){if(!e?.url||!e?.type)return[];let t=h.get(e.url);if(t&&Date.now()<t.expiresAt)return t.data;try{let t=await fetch(e.url);if(!t.ok)return[];let i=await t.json(),s=i.data??i.models??i,a=y[e.type],r=a?a(Array.isArray(s)?s:[]):[];return h.set(e.url,{data:r,expiresAt:Date.now()+6e5}),r}catch{return[]}}function g(){let e=(0,o.useParams)(),t=(0,o.useRouter)(),i=e.id,[r,n]=(0,a.useState)([]),[l,h]=(0,a.useState)(!0),[y,g]=(0,a.useState)(null),[v,N]=(0,a.useState)([]),[$,P]=(0,a.useState)(!1),[T,O]=(0,a.useState)(!1),[E,R]=(0,a.useState)(!1),[_,I]=(0,a.useState)(!1),[D,q]=(0,a.useState)(!1),[U,K]=(0,a.useState)(!1),[M,L]=(0,a.useState)(null),[J,z]=(0,a.useState)({}),[F,W]=(0,a.useState)(!1),[V,B]=(0,a.useState)({}),[G,Z]=(0,a.useState)(""),[Q,H]=(0,a.useState)(null),[X,Y]=(0,a.useState)(!1),[ee,et]=(0,a.useState)([]),[ei,es]=(0,a.useState)("__none__"),[ea,er]=(0,a.useState)(!1),[en,eo]=(0,a.useState)(null),[el,ed]=(0,a.useState)(""),[ec,ep]=(0,a.useState)([]),{copied:ex,copy:em}=(0,u.C)(),eu=y?{id:y.id,name:y.name||("anthropic-compatible"===y.type?"Anthropic Compatible":"OpenAI Compatible"),color:"anthropic-compatible"===y.type?"#D97757":"#10A37F",textIcon:"anthropic-compatible"===y.type?"AC":"OC",apiType:y.apiType,baseUrl:y.baseUrl,type:y.type}:x.zN[i]||x.fg[i]||x.IS[i]||x.nJ[i],eh=!!x.zN[i]||!!x.IS[i],ey=(0,m.KC)(i),ef=(0,x.wG)(i),eg=(0,x.mq)(i),eb=(0,x.gb)(i),ev=eg||eb,ej=ev?i:ef,eN=ev?y?.prefix||i:ef,ek=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&z(t.aliases||{})}catch(e){console.log("Error fetching aliases:",e)}},[]),ew=(0,a.useCallback)(async()=>{try{let[e,t,s,a]=await Promise.all([fetch("/api/providers",{cache:"no-store"}),fetch("/api/provider-nodes",{cache:"no-store"}),fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"})]),r=await e.json(),o=await t.json(),l=await s.json(),d=a.ok?await a.json():{};if(e.ok){let e=(r.connections||[]).filter(e=>e.provider===i);n(e)}s.ok&&N(l.proxyPools||[]);let c=(d.providerStrategies||{})[i]||{};if(eo(c.fallbackStrategy||null),ed(null!=c.stickyRoundRobinLimit?String(c.stickyRoundRobinLimit):"1"),t.ok){let e=(o.nodes||[]).find(e=>e.id===i)||null;if(!e&&ev)for(let t=0;t<3;t+=1){await new Promise(e=>setTimeout(e,150));let t=await fetch("/api/provider-nodes",{cache:"no-store"});if(t.ok&&(e=((await t.json()).nodes||[]).find(e=>e.id===i)||null))break}g(e)}}catch(e){console.log("Error fetching connections:",e)}finally{h(!1)}},[i,ev]),eC=async e=>{try{let t=await fetch(`/api/provider-nodes/${i}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),s=await t.json();t.ok&&(g(s.node),await ew(),q(!1))}catch(e){console.log("Error updating provider node:",e)}},eS=async(e,t)=>{try{let s=await fetch("/api/settings",{cache:"no-store"}),a=(s.ok?await s.json():{}).providerStrategies||{},r={};e&&(r.fallbackStrategy=e),"round-robin"===e&&""!==t&&(r.stickyRoundRobinLimit=Number(t)||3);let n={...a};0===Object.keys(r).length?delete n[i]:n[i]=r,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:n})})}catch(e){console.log("Error saving provider strategy:",e)}};(0,a.useEffect)(()=>{ew(),ek()},[ew,ek]),(0,a.useEffect)(()=>{let e=(x.zN[i]||x.fg[i]||x.IS[i]||x.nJ[i])?.modelsFetcher;e&&f(e).then(ep)},[i]);let eA=async(e,t,i=ef)=>{let s=`${i}/${e}`;try{let e=await fetch("/api/models/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:s,alias:t})});if(e.ok)await ek();else{let t=await e.json();alert(t.error||"Failed to set alias")}}catch(e){console.log("Error setting alias:",e)}},e$=async e=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(e)}`,{method:"DELETE"})).ok&&await ek()}catch(e){console.log("Error deleting alias:",e)}},eP=async e=>{if(confirm("Delete this connection?"))try{(await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok&&n(r.filter(t=>t.id!==e))}catch(e){console.log("Error deleting connection:",e)}},eT=()=>{ew(),P(!1)},eO=async e=>{try{(await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:i,...e})})).ok&&(await ew(),R(!1))}catch(e){console.log("Error saving connection:",e)}},eE=async e=>{try{(await fetch(`/api/providers/${M.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await ew(),I(!1))}catch(e){console.log("Error updating connection:",e)}},eR=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&n(i=>i.map(i=>i.id===e?{...i,isActive:t}:i))}catch(e){console.log("Error updating connection status:",e)}},e_=async(e,t)=>{let i=[...r];[i[e],i[t]]=[i[t],i[e]],n(i);try{await Promise.all([fetch(`/api/providers/${i[e].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:e})}),fetch(`/api/providers/${i[t].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:t})})])}catch(e){console.log("Error swapping priority:",e),await ew()}},eI=r.filter(e=>ee.includes(e.id));r.length>0&&(ee.length,r.length),(0,a.useEffect)(()=>{et(e=>e.filter(e=>r.some(t=>t.id===e)))},[r]);let eD=(()=>{if(0===eI.length)return"";let e=new Set(eI.map(e=>e.providerSpecificData?.proxyPoolId||"__none__"));if(1===e.size){let t=[...e][0];if("__none__"===t)return"All selected currently unbound";let i=v.find(e=>e.id===t);return`All selected currently bound to ${i?.name||t}`}return"Selected connections have mixed proxy bindings"})(),eq=()=>{ea||K(!1)},eU=async()=>{if(0===ee.length)return;let e="__none__"===ei?null:ei;er(!0);try{let t=[];for(let i of ee)try{let s=await fetch(`/api/providers/${i}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:e})});t.push(s.ok)}catch(e){console.log("Error applying bulk proxy pool for",i,e),t.push(!1)}let i=t.filter(e=>!e).length;i>0&&alert(`Updated with ${i} failed request(s).`),await ew(),et([]),es("__none__"),K(!1)}catch(e){console.log("Error applying bulk proxy pool:",e)}finally{er(!1)}},eK=(0,s.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:r.map((e,t)=>(0,s.jsx)("div",{className:"flex items-stretch",children:(0,s.jsx)("div",{className:"flex-1 min-w-0",children:(0,s.jsx)(k,{connection:e,proxyPools:v,isOAuth:eh,isFirst:0===t,isLast:t===r.length-1,onMoveUp:()=>e_(t,t-1),onMoveDown:()=>e_(t,t+1),onToggleActive:t=>eR(e.id,t),onUpdateProxy:async t=>{try{(await fetch(`/api/providers/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:t||null})})).ok&&n(i=>i.map(i=>i.id===e.id?{...i,providerSpecificData:{...i.providerSpecificData,proxyPoolId:t||null}}:i))}catch(e){console.log("Error updating proxy:",e)}},onEdit:()=>{L(e),I(!0)},onDelete:()=>eP(e.id)})})},e.id))}),eM=[{value:"__none__",label:"None"},...v.map(e=>({value:e.id,label:e.name}))],eL=0===ee.length?"Select one or more connections, then click Proxy Action.":eD,eJ=ee.length>0&&!ea,ez=(0,s.jsx)(p.aF,{isOpen:U,onClose:eq,title:`Proxy Action (${ee.length} selected)`,children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)(p.l6,{label:"Proxy Pool",value:ei,onChange:e=>es(e.target.value),options:eM,placeholder:"None"}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:eL}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Selecting None will unbind selected connections from proxy pool."}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.$n,{onClick:eU,fullWidth:!0,disabled:!eJ,children:ea?"Applying...":"Apply"}),(0,s.jsx)(p.$n,{onClick:eq,variant:"ghost",fullWidth:!0,disabled:ea,children:"Cancel"})]})]})}),eF=async e=>{if(!Q){H(e);try{let t=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${ej}/${e}`})}),i=await t.json();B(t=>({...t,[e]:i.ok?"ok":"error"})),Z(i.ok?"":i.error||"Model not reachable")}catch{B(t=>({...t,[e]:"error"})),Z("Network error")}finally{H(null)}}};return l?(0,s.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,s.jsx)(p.Qv,{}),(0,s.jsx)(p.Qv,{})]}):eu?(0,s.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)(d(),{href:"/dashboard/providers",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),"Back to Providers"]}),(0,s.jsxs)("div",{className:"flex items-center gap-4",children:[(0,s.jsx)("div",{className:"rounded-lg flex items-center justify-center",style:{backgroundColor:`${eu.color}15`},children:F?(0,s.jsx)("span",{className:"text-sm font-bold",style:{color:eu.color},children:eu.textIcon||eu.id.slice(0,2).toUpperCase()}):(0,s.jsx)(c.default,{src:eg&&eu.apiType?"responses"===eu.apiType?"/providers/oai-r.png":"/providers/oai-cc.png":eb?"/providers/anthropic-m.png":`/providers/${eu.id}.png`,alt:eu.name,width:48,height:48,className:"object-contain rounded-lg max-w-[48px] max-h-[48px]",sizes:"48px",onError:()=>W(!0)})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:eu.name}),(0,s.jsxs)("p",{className:"text-text-muted",children:[r.length," connection",1===r.length?"":"s"]})]})]})]}),eu.deprecated&&(0,s.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 rounded-lg bg-black/[0.02] dark:bg-white/[0.02] border border-black/[0.05] dark:border-white/[0.05]",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted mt-0.5 shrink-0",children:"info"}),(0,s.jsx)("p",{className:"text-xs text-text-muted leading-relaxed",children:eu.deprecationNotice})]}),eu.notice&&!eu.deprecated&&(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-black/[0.02] dark:bg-white/[0.02] border border-black/[0.05] dark:border-white/[0.05]",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted shrink-0",children:"info"}),(0,s.jsx)("p",{className:"text-xs text-text-muted leading-relaxed flex-1",children:eu.notice.text}),eu.notice.apiKeyUrl&&(0,s.jsx)("a",{href:eu.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline shrink-0",children:"Get API Key →"})]}),ev&&y&&(0,s.jsxs)(p.Zp,{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold",children:eb?"Anthropic Compatible Details":"OpenAI Compatible Details"}),(0,s.jsxs)("p",{className:"text-sm text-text-muted",children:[eb?"Messages API":"responses"===y.apiType?"Responses API":"Chat Completions"," \xb7 ",(y.baseUrl||"").replace(/\/$/,""),"/",eb?"messages":"responses"===y.apiType?"responses":"chat/completions"]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(p.$n,{size:"sm",icon:"add",onClick:()=>R(!0),disabled:r.length>0,children:"Add"}),(0,s.jsx)(p.$n,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>q(!0),children:"Edit"}),(0,s.jsx)(p.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:async()=>{if(confirm(`Delete this ${eb?"Anthropic":"OpenAI"} Compatible node?`))try{(await fetch(`/api/provider-nodes/${i}`,{method:"DELETE"})).ok&&t.push("/dashboard/providers")}catch(e){console.log("Error deleting provider node:",e)}},children:"Delete"})]})]}),r.length>0&&(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"Only one connection is allowed per compatible node. Add another node if you need more connections."})]}),(0,s.jsxs)(p.Zp,{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,s.jsx)("h2",{className:"text-lg font-semibold",children:"Connections"}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,s.jsx)(p.lM,{checked:"round-robin"===en,onChange:e=>{let t=e?"round-robin":null,i=e?el||"1":el;e&&!el&&ed("1"),eo(t),eS(t,i)}}),"round-robin"===en&&(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:"text-xs text-text-muted",children:"Sticky:"}),(0,s.jsx)("input",{type:"number",min:1,value:el,onChange:e=>{var t;ed(t=e.target.value),eS("round-robin",t)},placeholder:"1",className:"w-14 px-2 py-1 text-xs border border-border rounded-md bg-background focus:outline-none focus:border-primary"})]})]})]}),0===r.length?(0,s.jsxs)("div",{className:"text-center py-12",children:[(0,s.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:eh?"lock":"key"})}),(0,s.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No connections yet"}),(0,s.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Add your first connection to get started"}),!ev&&(0,s.jsxs)("div",{className:"flex gap-2 justify-center",children:["iflow"===i&&(0,s.jsx)(p.$n,{icon:"cookie",variant:"secondary",onClick:()=>O(!0),children:"Cookie Auth"}),(0,s.jsx)(p.$n,{icon:"add",onClick:()=>eh?P(!0):R(!0),children:"iflow"===i?"OAuth":"Add Connection"})]})]}):(0,s.jsxs)(s.Fragment,{children:[eK,!ev&&(0,s.jsxs)("div",{className:"flex gap-2 mt-4",children:["iflow"===i&&(0,s.jsx)(p.$n,{size:"sm",icon:"cookie",variant:"secondary",onClick:()=>O(!0),title:"Add connection using browser cookie",children:"Cookie"}),(0,s.jsx)(p.$n,{size:"sm",icon:"add",onClick:()=>eh?P(!0):R(!0),children:"Add"})]})]})]}),(0,s.jsxs)(p.Zp,{children:[(0,s.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,s.jsx)("h2",{className:"text-lg font-semibold",children:"Available Models"})}),!!G&&(0,s.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:G}),(()=>{let e,t;if(ev)return(0,s.jsx)(j,{providerStorageAlias:ej,providerDisplayAlias:eN,modelAliases:J,copied:ex,onCopy:em,onSetAlias:eA,onDeleteAlias:e$,connections:r,isAnthropic:eb});let a=Object.entries(J).filter(([e,t])=>{let i=`${ej}/`;if(!t.startsWith(i))return!1;let s=t.slice(i.length);return eu.passthroughModels?!ey.some(e=>e.id===s):!ey.some(e=>e.id===s)&&e===s}).map(([e,t])=>({id:t.slice(`${ej}/`.length),alias:e,fullModel:t}));return(0,s.jsxs)("div",{className:"flex flex-wrap gap-3",children:[ey.map(e=>{let t=`${ej}/${e.id}`,a=`${i}/${e.id}`,n=Object.entries(J).find(([,e])=>e===t||e===a)?.[0];return(0,s.jsx)(b,{model:e,fullModel:`${eN}/${e.id}`,alias:n,copied:ex,onCopy:em,onSetAlias:t=>eA(e.id,t,ej),onDeleteAlias:()=>e$(n),testStatus:V[e.id],onTest:r.length>0?()=>eF(e.id):void 0,isTesting:Q===e.id},e.id)}),a.map(e=>(0,s.jsx)(b,{model:{id:e.id},fullModel:`${eN}/${e.id}`,alias:e.alias,copied:ex,onCopy:em,onSetAlias:()=>{},onDeleteAlias:()=>e$(e.alias),testStatus:V[e.id],onTest:r.length>0?()=>eF(e.id):void 0,isTesting:Q===e.id,isCustom:!0},e.id)),(0,s.jsxs)("button",{onClick:()=>Y(!0),className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-dashed border-black/15 dark:border-white/15 text-xs text-text-muted hover:text-primary hover:border-primary/40 transition-colors",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"add"}),"Add Model"]}),ec.length>0&&(e=new Set(Object.values(J)),0===(t=ec.filter(t=>!e.has(`${ej}/${t.id}`))).length?null:(0,s.jsxs)("div",{className:"w-full mt-2",children:[(0,s.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"Suggested free models (≥200k context):"}),(0,s.jsx)("div",{className:"flex flex-wrap gap-2",children:t.map(e=>(0,s.jsxs)("button",{onClick:async()=>{let t=e.id.split("/").pop();await eA(e.id,t,ej)},className:"flex items-center gap-1 px-2.5 py-1.5 rounded-lg border border-black/10 dark:border-white/10 text-xs text-text-muted hover:text-primary hover:border-primary/40 hover:bg-primary/5 transition-colors",title:`${e.name} \xb7 ${(e.contextLength/1e3).toFixed(0)}k ctx`,children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"add"}),e.id.split("/").pop()]},e.id))})]}))]})})()]}),ez,"kiro"===i?(0,s.jsx)(p.Mh,{isOpen:$,providerInfo:eu,onSuccess:eT,onClose:()=>P(!1)}):"cursor"===i?(0,s.jsx)(p.G9,{isOpen:$,onSuccess:eT,onClose:()=>P(!1)}):"gitlab"===i?(0,s.jsx)(p.vj,{isOpen:$,providerInfo:eu,onSuccess:eT,onClose:()=>P(!1)}):(0,s.jsx)(p.LF,{isOpen:$,provider:i,providerInfo:eu,onSuccess:eT,onClose:()=>P(!1)}),"iflow"===i&&(0,s.jsx)(p.vE,{isOpen:T,onSuccess:()=>{ew(),O(!1)},onClose:()=>O(!1)}),(0,s.jsx)(w,{isOpen:E,provider:i,providerName:eu.name,isCompatible:ev,isAnthropic:eb,proxyPools:v,onSave:eO,onClose:()=>R(!1)}),(0,s.jsx)(C,{isOpen:_,connection:M,proxyPools:v,onSave:eE,onClose:()=>I(!1)}),ev&&(0,s.jsx)(S,{isOpen:D,node:y,onSave:eC,onClose:()=>q(!1),isAnthropic:eb}),!ev&&(0,s.jsx)(A,{isOpen:X,providerAlias:ej,providerDisplayAlias:eN,onSave:async e=>{let t=eu?.passthroughModels?e.split("/").pop():e;await eA(e,t,ej),Y(!1)},onClose:()=>Y(!1)})]}):(0,s.jsxs)("div",{className:"text-center py-20",children:[(0,s.jsx)("p",{className:"text-text-muted",children:"Provider not found"}),(0,s.jsx)(d(),{href:"/dashboard/providers",className:"text-primary mt-4 inline-block",children:"Back to Providers"})]})}function b({model:e,fullModel:t,alias:i,copied:a,onCopy:r,testStatus:n,isCustom:o,onDeleteAlias:l,onTest:d,isTesting:c}){let p="ok"===n?"#22c55e":"error"===n?"#ef4444":void 0;return(0,s.jsx)("div",{className:`group px-3 py-2 rounded-lg border ${"ok"===n?"border-green-500/40":"error"===n?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-base",style:p?{color:p}:void 0,children:"ok"===n?"check_circle":"error"===n?"cancel":"smart_toy"}),(0,s.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),d&&(0,s.jsxs)("div",{className:"relative group/btn",children:[(0,s.jsx)("button",{onClick:d,disabled:c,className:`p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-opacity ${c?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",style:c?{animation:"spin 1s linear infinite"}:void 0,children:c?"progress_activity":"science"})}),(0,s.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:c?"Testing...":"Test"})]}),(0,s.jsxs)("div",{className:"relative group/btn",children:[(0,s.jsx)("button",{onClick:()=>r(t,`model-${e.id}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:a===`model-${e.id}`?"check":"content_copy"})}),(0,s.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:a===`model-${e.id}`?"Copied!":"Copy"})]}),o&&(0,s.jsx)("button",{onClick:l,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 opacity-0 group-hover:opacity-100 transition-opacity ml-auto",title:"Remove custom model",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})})]})})}function v({modelId:e,fullModel:t,copied:i,onCopy:a,onDeleteAlias:r,onTest:n,testStatus:o,isTesting:l}){let d="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,s.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg border ${"ok"===o?"border-green-500/40":"error"===o?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",style:d?{color:d}:void 0,children:"ok"===o?"check_circle":"error"===o?"cancel":"smart_toy"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium truncate",children:e}),(0,s.jsxs)("div",{className:"flex items-center gap-1 mt-1",children:[(0,s.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),(0,s.jsxs)("div",{className:"relative group/btn",children:[(0,s.jsx)("button",{onClick:()=>a(t,`model-${e}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:i===`model-${e}`?"check":"content_copy"})}),(0,s.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:i===`model-${e}`?"Copied!":"Copy"})]}),n&&(0,s.jsxs)("div",{className:"relative group/btn",children:[(0,s.jsx)("button",{onClick:n,disabled:l,className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-colors",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",style:l?{animation:"spin 1s linear infinite"}:void 0,children:l?"progress_activity":"science"})}),(0,s.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:l?"Testing...":"Test"})]})]})]}),(0,s.jsx)("button",{onClick:r,className:"p-1 hover:bg-red-50 rounded text-red-500",title:"Remove model",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"delete"})})]})}function j({providerStorageAlias:e,providerDisplayAlias:t,modelAliases:i,copied:r,onCopy:n,onSetAlias:o,onDeleteAlias:l,connections:d,isAnthropic:c}){let[x,m]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1),[y,f]=(0,a.useState)(!1),[g,b]=(0,a.useState)(null),[j,N]=(0,a.useState)({}),k=async t=>{if(!g){b(t);try{let i=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${e}/${t}`})}),s=await i.json();N(e=>({...e,[t]:s.ok?"ok":"error"}))}catch{N(e=>({...e,[t]:"error"}))}finally{b(null)}}},w=Object.entries(i).filter(([,t])=>t.startsWith(`${e}/`)).map(([t,i])=>({modelId:i.replace(`${e}/`,""),fullModel:i,alias:t})),C=s=>{let a,r=`${e}/${s}`;if(Object.values(i).includes(r))return null;let n=(a=s.split("/"))[a.length-1];if(!i[n])return n;let o=`${t}-${n}`;return i[o]?null:o},S=async()=>{if(!x.trim()||u)return;let t=x.trim(),i=C(t);if(!i)return void alert("All suggested aliases already exist. Please choose a different model or remove conflicting aliases.");h(!0);try{await o(t,i,e),m("")}catch(e){console.log("Error adding model:",e)}finally{h(!1)}},A=async()=>{if(y)return;let t=d.find(e=>!1!==e.isActive);if(t){f(!0);try{let i=await fetch(`/api/providers/${t.id}/models`),s=await i.json();if(!i.ok)return void alert(s.error||"Failed to import models");let a=s.models||[];if(0===a.length)return void alert("No models returned from /models.");let r=0;for(let t of a){let i=t.id||t.name||t.model;if(!i)continue;let s=C(i);s&&(await o(i,s,e),r+=1)}0===r&&alert("No new models were added.")}catch(e){console.log("Error importing models:",e)}finally{f(!1)}}},$=d.some(e=>!1!==e.isActive);return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("p",{className:"text-sm text-text-muted",children:["Add ",c?"Anthropic":"OpenAI","-compatible models manually or import them from the /models endpoint."]}),(0,s.jsxs)("div",{className:"flex items-end gap-2 flex-wrap",children:[(0,s.jsxs)("div",{className:"flex-1 min-w-[240px]",children:[(0,s.jsx)("label",{htmlFor:"new-compatible-model-input",className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,s.jsx)("input",{id:"new-compatible-model-input",type:"text",value:x,onChange:e=>m(e.target.value),onKeyDown:e=>"Enter"===e.key&&S(),placeholder:c?"claude-3-opus-20240229":"gpt-4o",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})]}),(0,s.jsx)(p.$n,{size:"sm",icon:"add",onClick:S,disabled:!x.trim()||u,children:u?"Adding...":"Add"}),(0,s.jsx)(p.$n,{size:"sm",variant:"secondary",icon:"download",onClick:A,disabled:!$||y,children:y?"Importing...":"Import from /models"})]}),!$&&(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Add a connection to enable importing models."}),w.length>0&&(0,s.jsx)("div",{className:"flex flex-col gap-3",children:w.map(({modelId:e,fullModel:i,alias:a})=>(0,s.jsx)(v,{modelId:e,fullModel:`${t}/${e}`,copied:r,onCopy:n,onDeleteAlias:()=>l(a),onTest:d.length>0?()=>k(e):void 0,testStatus:j[e],isTesting:g===e},i))})]})}function N({until:e}){let[t,i]=(0,a.useState)("");return((0,a.useEffect)(()=>{let t=()=>{let t=new Date(e).getTime()-Date.now();if(t<=0)return void i("");let s=Math.floor(t/1e3);if(s<60)i(`${s}s`);else if(s<3600)i(`${Math.floor(s/60)}m ${s%60}s`);else{let e=Math.floor(s/3600),t=Math.floor(s%3600/60);i(`${e}h ${t}m`)}};t();let s=setInterval(t,1e3);return()=>clearInterval(s)},[e]),t)?(0,s.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",t]}):null}function k({connection:e,proxyPools:t,isOAuth:i,isFirst:r,isLast:n,onMoveUp:o,onMoveDown:l,onToggleActive:d,onUpdateProxy:c,onEdit:x,onDelete:m}){let[u,h]=(0,a.useState)(!1),[y,f]=(0,a.useState)(!1),g=(0,a.useRef)(null),b=new Map((t||[]).map(e=>[e.id,e])),v=e.providerSpecificData?.proxyPoolId||null,j=v?b.get(v):null,k=e.providerSpecificData?.connectionProxyEnabled===!0&&!!e.providerSpecificData?.connectionProxyUrl,w=!!v||k,C=j?`Pool: ${j.name}`:v?`Pool: ${v} (inactive/missing)`:k?`Legacy: ${e.providerSpecificData?.connectionProxyUrl}`:"",S="";if(j?.proxyUrl||e.providerSpecificData?.connectionProxyUrl){let t=j?.proxyUrl||e.providerSpecificData?.connectionProxyUrl;try{let e=new URL(t);S=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}`}catch{S=t}}let A=j?.noProxy||e.providerSpecificData?.connectionNoProxy||"",$="default";j?.isActive===!0?$="success":(v||k)&&($="error"),(0,a.useEffect)(()=>{if(!u)return;let e=e=>{g.current&&!g.current.contains(e.target)&&h(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[u]);let P=async e=>{f(!0);try{await c("__none__"===e?null:e)}finally{f(!1),h(!1)}},T=i?e.name||e.email||e.displayName||"OAuth Account":e.name,[O,E]=(0,a.useState)(!1),R=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>!!e).sort()[0]||null;(0,a.useEffect)(()=>{let t=()=>{E(!!Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>e&&new Date(e).getTime()>Date.now()).sort()[0])};t();let i=R?setInterval(t,1e3):null;return()=>{i&&clearInterval(i)}},[R]);let _="unavailable"!==e.testStatus||O?e.testStatus:"active";return(0,s.jsxs)("div",{className:`group flex items-center justify-between p-3 rounded-lg hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors ${!1===e.isActive?"opacity-60":""}`,children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsx)("button",{onClick:o,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,s.jsx)("button",{onClick:l,disabled:n,className:`p-0.5 rounded ${n?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,s.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",children:i?"lock":"key"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium truncate",children:T}),(0,s.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,s.jsx)(p.Ex,{variant:!1===e.isActive?"default":"active"===_||"success"===_?"success":"error"===_||"expired"===_||"unavailable"===_?"error":"default",size:"sm",dot:!0,children:!1===e.isActive?"disabled":_||"Unknown"}),w&&(0,s.jsx)(p.Ex,{variant:$,size:"sm",children:"Proxy"}),O&&!1!==e.isActive&&(0,s.jsx)(N,{until:R}),e.lastError&&!1!==e.isActive&&(0,s.jsx)("span",{className:"text-xs text-red-500 truncate max-w-[300px]",title:e.lastError,children:e.lastError}),(0,s.jsxs)("span",{className:"text-xs text-text-muted",children:["#",e.priority]}),e.globalPriority&&(0,s.jsxs)("span",{className:"text-xs text-text-muted",children:["Auto: ",e.globalPriority]})]}),w&&(0,s.jsxs)("div",{className:"mt-1 flex items-center gap-2 flex-wrap",children:[(0,s.jsx)("span",{className:"text-[11px] text-text-muted truncate max-w-[420px]",title:C,children:C}),S&&(0,s.jsx)("code",{className:"text-[10px] font-mono bg-black/5 dark:bg-white/5 px-1 py-0.5 rounded text-text-muted",children:S}),A&&(0,s.jsxs)("span",{className:"text-[11px] text-text-muted truncate max-w-[320px]",title:A,children:["no_proxy: ",A]})]})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("div",{className:"flex gap-1",children:[(t||[]).length>0&&(0,s.jsxs)("div",{className:"relative",ref:g,children:[(0,s.jsxs)("button",{onClick:()=>h(e=>!e),className:`flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 transition-colors ${w?"text-primary":"text-text-muted hover:text-primary"}`,disabled:y,children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:y?"progress_activity":"lan"}),(0,s.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),u&&(0,s.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 bg-bg border border-border rounded-lg shadow-lg py-1 min-w-[160px]",children:[(0,s.jsx)("button",{onClick:()=>P("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!v?"text-primary font-medium":"text-text-main"}`,children:"None"}),(t||[]).map(e=>(0,s.jsx)("button",{onClick:()=>P(e.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${v===e.id?"text-primary font-medium":"text-text-main"}`,children:e.name},e.id))]})]}),(0,s.jsxs)("button",{onClick:x,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,s.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,s.jsxs)("button",{onClick:m,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-red-500/10 text-red-500",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,s.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,s.jsx)(p.lM,{size:"sm",checked:e.isActive??!0,onChange:d,title:e.isActive??!0?"Disable connection":"Enable connection"})]})]})}function w({isOpen:e,provider:t,providerName:i,isCompatible:r,isAnthropic:n,proxyPools:o,onSave:l,onClose:d}){let c="__none__",[x,m]=(0,a.useState)({name:"",apiKey:"",priority:1,proxyPoolId:c}),[u,h]=(0,a.useState)(!1),[y,f]=(0,a.useState)(null),[g,b]=(0,a.useState)(!1),v=async()=>{h(!0);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:x.apiKey})}),i=await e.json();f(i.valid?"success":"failed")}catch{f("failed")}finally{h(!1)}},j=async()=>{if(t&&x.apiKey){b(!0);try{let e=!1;try{h(!0),f(null);let i=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:x.apiKey})});e=!!(await i.json()).valid,f(e?"success":"failed")}catch{f("failed")}finally{h(!1)}await l({name:x.name,apiKey:x.apiKey,priority:x.priority,proxyPoolId:x.proxyPoolId===c?null:x.proxyPoolId,testStatus:e?"active":"unknown",providerSpecificData:void 0})}finally{b(!1)}}};return t?(0,s.jsx)(p.aF,{isOpen:e,title:`Add ${i||t} API Key`,onClose:d,children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)(p.pd,{label:"Name",value:x.name,onChange:e=>m({...x,name:e.target.value}),placeholder:"Production Key"}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.pd,{label:"API Key",type:"password",value:x.apiKey,onChange:e=>m({...x,apiKey:e.target.value}),className:"flex-1"}),(0,s.jsx)("div",{className:"pt-6",children:(0,s.jsx)(p.$n,{onClick:v,disabled:!x.apiKey||u||g,variant:"secondary",children:u?"Checking...":"Check"})})]}),y&&(0,s.jsx)(p.Ex,{variant:"success"===y?"success":"error",children:"success"===y?"Valid":"Invalid"}),r&&(0,s.jsx)("p",{className:"text-xs text-text-muted",children:n?`Validation checks ${i||"Anthropic Compatible"} by verifying the API key.`:`Validation checks ${i||"OpenAI Compatible"} via /models on your base URL.`}),(0,s.jsx)(p.pd,{label:"Priority",type:"number",value:x.priority,onChange:e=>m({...x,priority:Number.parseInt(e.target.value)||1})}),(0,s.jsx)(p.l6,{label:"Proxy Pool",value:x.proxyPoolId,onChange:e=>m({...x,proxyPoolId:e.target.value}),options:[{value:c,label:"None"},...(o||[]).map(e=>({value:e.id,label:e.name}))],placeholder:"None"}),0===(o||[]).length&&(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"No active proxy pools available. Create one in Proxy Pools page first."}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Legacy manual proxy fields are still accepted by API for backward compatibility."}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.$n,{onClick:j,fullWidth:!0,disabled:!x.name||!x.apiKey||g,children:g?"Saving...":"Save"}),(0,s.jsx)(p.$n,{onClick:d,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function C({isOpen:e,connection:t,proxyPools:i,onSave:r,onClose:n}){let[o,l]=(0,a.useState)({name:"",priority:1,apiKey:""}),[d,c]=(0,a.useState)(!1),[m,u]=(0,a.useState)(null),[h,y]=(0,a.useState)(!1),[f,g]=(0,a.useState)(null),[b,v]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t&&(l({name:t.name||"",priority:t.priority||1,apiKey:""}),u(null),g(null))},[t]);let j=async()=>{if(t?.provider){c(!0),u(null);try{let e=await fetch(`/api/providers/${t.id}/test`,{method:"POST"}),i=await e.json();u(i.valid?"success":"failed")}catch{u("failed")}finally{c(!1)}}},N=async()=>{if(t?.provider&&o.apiKey){y(!0),g(null);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t.provider,apiKey:o.apiKey})}),i=await e.json();g(i.valid?"success":"failed")}catch{g("failed")}finally{y(!1)}}},k=async()=>{v(!0);try{let e={name:o.name,priority:o.priority};if(!w&&o.apiKey){e.apiKey=o.apiKey;let i="success"===f;if(!i)try{y(!0),g(null);let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t.provider,apiKey:o.apiKey})});i=!!(await e.json()).valid,g(i?"success":"failed")}catch{g("failed")}finally{y(!1)}i&&(e.testStatus="active",e.lastError=null,e.lastErrorAt=null)}await r(e)}finally{v(!1)}};if(!t)return null;let w="oauth"===t.authType,C=(0,x.mq)(t.provider)||(0,x.gb)(t.provider);return(0,s.jsx)(p.aF,{isOpen:e,title:"Edit Connection",onClose:n,children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)(p.pd,{label:"Name",value:o.name,onChange:e=>l({...o,name:e.target.value}),placeholder:w?"Account name":"Production Key"}),w&&t.email&&(0,s.jsxs)("div",{className:"bg-sidebar/50 p-3 rounded-lg",children:[(0,s.jsx)("p",{className:"text-sm text-text-muted mb-1",children:"Email"}),(0,s.jsx)("p",{className:"font-medium",children:t.email})]}),(0,s.jsx)(p.pd,{label:"Priority",type:"number",value:o.priority,onChange:e=>l({...o,priority:Number.parseInt(e.target.value)||1})}),!w&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.pd,{label:"API Key",type:"password",value:o.apiKey,onChange:e=>l({...o,apiKey:e.target.value}),placeholder:"Enter new API key",hint:"Leave blank to keep the current API key.",className:"flex-1"}),(0,s.jsx)("div",{className:"pt-6",children:(0,s.jsx)(p.$n,{onClick:N,disabled:!o.apiKey||h||b,variant:"secondary",children:h?"Checking...":"Check"})})]}),f&&(0,s.jsx)(p.Ex,{variant:"success"===f?"success":"error",children:"success"===f?"Valid":"Invalid"})]}),!C&&(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(p.$n,{onClick:j,variant:"secondary",disabled:d,children:d?"Testing...":"Test Connection"}),m&&(0,s.jsx)(p.Ex,{variant:"success"===m?"success":"error",children:"success"===m?"Valid":"Failed"})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.$n,{onClick:k,fullWidth:!0,disabled:b,children:b?"Saving...":"Save"}),(0,s.jsx)(p.$n,{onClick:n,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function S({isOpen:e,node:t,onSave:i,onClose:r,isAnthropic:n}){let[o,l]=(0,a.useState)({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),[d,c]=(0,a.useState)(!1),[x,m]=(0,a.useState)(""),[u,h]=(0,a.useState)(""),[y,f]=(0,a.useState)(!1),[g,b]=(0,a.useState)(null);(0,a.useEffect)(()=>{t&&l({name:t.name||"",prefix:t.prefix||"",apiType:t.apiType||"chat",baseUrl:t.baseUrl||(n?"https://api.anthropic.com/v1":"https://api.openai.com/v1")})},[t,n]);let v=async()=>{if(o.name.trim()&&o.prefix.trim()&&o.baseUrl.trim()){c(!0);try{let e={name:o.name,prefix:o.prefix,baseUrl:o.baseUrl};n||(e.apiType=o.apiType),await i(e)}finally{c(!1)}}},j=async()=>{f(!0);try{let e=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:o.baseUrl,apiKey:x,type:n?"anthropic-compatible":"openai-compatible",modelId:u.trim()||void 0})}),t=await e.json();b(t.valid?"success":"failed")}catch{b("failed")}finally{f(!1)}};return t?(0,s.jsx)(p.aF,{isOpen:e,title:`Edit ${n?"Anthropic":"OpenAI"} Compatible`,onClose:r,children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)(p.pd,{label:"Name",value:o.name,onChange:e=>l({...o,name:e.target.value}),placeholder:`${n?"Anthropic":"OpenAI"} Compatible (Prod)`,hint:"Required. A friendly label for this node."}),(0,s.jsx)(p.pd,{label:"Prefix",value:o.prefix,onChange:e=>l({...o,prefix:e.target.value}),placeholder:n?"ac-prod":"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),!n&&(0,s.jsx)(p.l6,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:o.apiType,onChange:e=>l({...o,apiType:e.target.value})}),(0,s.jsx)(p.pd,{label:"Base URL",value:o.baseUrl,onChange:e=>l({...o,baseUrl:e.target.value}),placeholder:n?"https://api.anthropic.com/v1":"https://api.openai.com/v1",hint:`Use the base URL (ending in /v1) for your ${n?"Anthropic":"OpenAI"}-compatible API.`}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.pd,{label:"API Key (for Check)",type:"password",value:x,onChange:e=>m(e.target.value),className:"flex-1"}),(0,s.jsx)("div",{className:"pt-6",children:(0,s.jsx)(p.$n,{onClick:j,disabled:!x||y||!o.baseUrl.trim(),variant:"secondary",children:y?"Checking...":"Check"})})]}),(0,s.jsx)(p.pd,{label:"Model ID (optional)",value:u,onChange:e=>h(e.target.value),placeholder:"e.g. my-model-id",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),g&&(0,s.jsx)(p.Ex,{variant:"success"===g?"success":"error",children:"success"===g?"Valid":"Invalid"}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.$n,{onClick:v,fullWidth:!0,disabled:!o.name.trim()||!o.prefix.trim()||!o.baseUrl.trim()||d,children:d?"Saving...":"Save"}),(0,s.jsx)(p.$n,{onClick:r,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function A({isOpen:e,providerAlias:t,providerDisplayAlias:i,onSave:r,onClose:n}){let[o,l]=(0,a.useState)(""),[d,c]=(0,a.useState)(null),[x,m]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1);(0,a.useEffect)(()=>{e&&(l(""),c(null),m(""))},[e]);let y=async()=>{if(o.trim()){c("testing"),m("");try{let e=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${t}/${o.trim()}`})}),i=await e.json();c(i.ok?"ok":"error"),m(i.error||"")}catch(e){c("error"),m(e.message)}}},f=async()=>{if(o.trim()&&!u){h(!0);try{await r(o.trim())}finally{h(!1)}}};return(0,s.jsx)(p.aF,{isOpen:e,onClose:n,title:"Add Custom Model",children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Model ID"}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{type:"text",value:o,onChange:e=>{l(e.target.value),c(null),m("")},onKeyDown:e=>{"Enter"===e.key&&y()},placeholder:"e.g. claude-opus-4-5",className:"flex-1 px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",autoFocus:!0}),(0,s.jsx)(p.$n,{variant:"secondary",icon:"science",loading:"testing"===d,onClick:y,disabled:!o.trim()||"testing"===d,children:"testing"===d?"Testing...":"Test"})]}),(0,s.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Sent to provider as: ",(0,s.jsx)("code",{className:"font-mono bg-sidebar px-1 rounded",children:o.trim()||"model-id"})]})]}),"ok"===d&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-base",children:"check_circle"}),"Model is reachable"]}),"error"===d&&(0,s.jsxs)("div",{className:"flex items-start gap-2 text-sm text-red-500",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-base shrink-0",children:"cancel"}),(0,s.jsx)("span",{children:x||"Model not reachable"})]}),(0,s.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,s.jsx)(p.$n,{onClick:n,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,s.jsx)(p.$n,{onClick:f,fullWidth:!0,size:"sm",disabled:!o.trim()||u,children:u?"Adding...":"Add Model"})]})]})})}b.propTypes={model:n().shape({id:n().string.isRequired}).isRequired,fullModel:n().string.isRequired,alias:n().string,copied:n().string,onCopy:n().func.isRequired,testStatus:n().oneOf(["ok","error"]),isCustom:n().bool,onDeleteAlias:n().func,onTest:n().func,isTesting:n().bool},n().string.isRequired,n().object.isRequired,n().string,n().func.isRequired,n().func.isRequired,n().func.isRequired,v.propTypes={modelId:n().string.isRequired,fullModel:n().string.isRequired,copied:n().string,onCopy:n().func.isRequired,onDeleteAlias:n().func.isRequired,onTest:n().func,testStatus:n().oneOf(["ok","error"]),isTesting:n().bool},j.propTypes={providerStorageAlias:n().string.isRequired,providerDisplayAlias:n().string.isRequired,modelAliases:n().object.isRequired,copied:n().string,onCopy:n().func.isRequired,onSetAlias:n().func.isRequired,onDeleteAlias:n().func.isRequired,connections:n().arrayOf(n().shape({id:n().string,isActive:n().bool})).isRequired,isAnthropic:n().bool},N.propTypes={until:n().string.isRequired},k.propTypes={connection:n().shape({id:n().string,name:n().string,email:n().string,displayName:n().string,modelLockUntil:n().string,testStatus:n().string,isActive:n().bool,lastError:n().string,priority:n().number,globalPriority:n().number}).isRequired,proxyPools:n().arrayOf(n().shape({id:n().string,name:n().string,proxyUrl:n().string,noProxy:n().string,isActive:n().bool})),isOAuth:n().bool.isRequired,isFirst:n().bool.isRequired,isLast:n().bool.isRequired,onMoveUp:n().func.isRequired,onMoveDown:n().func.isRequired,onToggleActive:n().func.isRequired,onUpdateProxy:n().func,onEdit:n().func.isRequired,onDelete:n().func.isRequired},w.propTypes={isOpen:n().bool.isRequired,provider:n().string,providerName:n().string,isCompatible:n().bool,isAnthropic:n().bool,proxyPools:n().arrayOf(n().shape({id:n().string,name:n().string})),onSave:n().func.isRequired,onClose:n().func.isRequired},C.propTypes={isOpen:n().bool.isRequired,connection:n().shape({id:n().string,name:n().string,email:n().string,priority:n().number,authType:n().string,provider:n().string,providerSpecificData:n().object}),proxyPools:n().arrayOf(n().shape({id:n().string,name:n().string})),onSave:n().func.isRequired,onClose:n().func.isRequired},S.propTypes={isOpen:n().bool.isRequired,node:n().shape({id:n().string,name:n().string,prefix:n().string,apiType:n().string,baseUrl:n().string}),onSave:n().func.isRequired,onClose:n().func.isRequired,isAnthropic:n().bool},A.propTypes={isOpen:n().bool.isRequired,providerAlias:n().string.isRequired,providerDisplayAlias:n().string.isRequired,onSave:n().func.isRequired,onClose:n().func.isRequired}}},e=>{e.O(0,[5370,4335,619,5772,2652,5497,8441,3794,7358],()=>e(e.s=52397)),_N_E=e.O()}]);
|
|
File without changes
|
|
File without changes
|