9router 0.2.16 → 0.2.17
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/LICENSE +4 -0
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-build-manifest.json +136 -136
- package/app/.next/app-path-routes-manifest.json +19 -19
- package/app/.next/build-manifest.json +5 -5
- package/app/.next/prerender-manifest.json +34 -34
- package/app/.next/react-loadable-manifest.json +13 -0
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +5 -5
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +2 -2
- 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/cloud/auth/route.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.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.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.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.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.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.js +1 -1
- package/app/.next/server/app/api/init/route.js.nft.json +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.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.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route.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/route.js +1 -1
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.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/providers/[id]/models/route.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.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.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/client/route.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.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route.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/sync/cloud/route.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
- package/app/.next/server/app/api/sync/initialize/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/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/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.js.nft.json +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.js.nft.json +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/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.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/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.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page.js +1 -1
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +4 -4
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +4 -4
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +4 -4
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +4 -4
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +4 -4
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +4 -4
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +2 -2
- package/app/.next/server/app/landing/page.js +1 -1
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +2 -2
- package/app/.next/server/app/page.js +1 -1
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +19 -19
- package/app/.next/server/chunks/1354.js +3 -3
- package/app/.next/server/chunks/3103.js +1 -1
- package/app/.next/server/chunks/5170.js +1 -1
- package/app/.next/server/chunks/533.js +1 -0
- package/app/.next/server/chunks/{6689.js → 5451.js} +2 -2
- package/app/.next/server/chunks/5977.js +1 -1
- package/app/.next/server/chunks/9858.js +1 -0
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/webpack-runtime.js +1 -1
- package/app/.next/static/chunks/1393-74e0710828062f40.js +1 -0
- package/app/.next/static/chunks/2819-00dd2839ed1323e4.js +1 -0
- package/app/.next/static/chunks/3431.b7e68d807c631773.js +1 -0
- package/app/.next/static/chunks/9220.745ac8c97d067b9a.js +1 -0
- package/app/.next/static/chunks/9955-cba200dfd971f126.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1ef1ec29086061fd.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-f18c8b5778e91a72.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-636932605724d0ce.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-81c3e3fb971037c1.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-327e2f8b73368cc2.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-800270dff34413c0.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-9e075d79ef785c9b.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-eea1c0bf95c10035.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/{layout-239cdcb35472d644.js → layout-65f98ae0eccfc7b8.js} +1 -1
- package/app/.next/static/chunks/webpack-5865472aea7b6340.js +1 -0
- package/app/package.json +2 -0
- package/cli.js +11 -38
- package/package.json +1 -1
- package/app/.next/server/chunks/1582.js +0 -1
- package/app/.next/server/chunks/3576.js +0 -1
- package/app/.next/static/chunks/1393-c0bf788a0bc19102.js +0 -1
- package/app/.next/static/chunks/4244-0a98cf2e73799efe.js +0 -1
- package/app/.next/static/chunks/9955-a027f64b1a9bf4e5.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-9009a2a4fdcd878c.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-95da854765deba41.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-98e477f1e2603f2b.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-1dce481cbcf036bc.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-c3dd45dfdb0b9dec.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-60e73b7047f9e428.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-1f016f32f42ef1f9.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-407c2ce547816028.js +0 -1
- package/app/.next/static/chunks/webpack-e009a29a8139b7cb.js +0 -1
- /package/app/.next/static/{CjtizKLK3s08esa00wWI0 → jTOq4rGDmshmQFiyCGWaU}/_buildManifest.js +0 -0
- /package/app/.next/static/{CjtizKLK3s08esa00wWI0 → jTOq4rGDmshmQFiyCGWaU}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=3103,exports.ids=[3103],exports.modules={3605:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(21124);c(38301);var e=c(48118);function f({children:a}){let{initTheme:b}=(0,e.A)();return(0,d.jsx)(d.Fragment,{children:a})}},18586:(a,b,c)=>{"use strict";c(59376)},19858:(a,b,c)=>{"use strict";var d=c(81582);let e=!1;(async function(){if(!e)try{await (0,d.A)(),e=!0}catch(a){console.error("[ServerInit] Error initializing cloud sync:",a)}return e})().catch(console.log)},32588:(a,b,c)=>{"use strict";c.d(b,{MA:()=>g,Q2:()=>f,fg:()=>e,wG:()=>h,zN:()=>d});let d={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"}},e={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#6366F1",textIcon:"OR",passthroughModels:!0},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL"},kimi:{id:"kimi",alias:"kimi",name:"Kimi Coding",icon:"psychology",color:"#1E3A8A",textIcon:"KM"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE"}},f={...d,...e},g={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}};function h(a){let b=f[a];return b?.alias||a}Object.values(f).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(f).reduce((a,b)=>(a[b.id]=b.alias,a),{})},44975:(a,b,c)=>{"use strict";c.d(b,{refreshCopilotToken:()=>f,refreshGitHubToken:()=>e});var d=c(59376);async function e(a,b){let c=await fetch(d.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.github.clientId,client_secret:d.xq.github.clientSecret})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh GitHub token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed GitHub token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function f(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`Bearer ${a}`,"User-Agent":"GitHub-Copilot/1.0",Accept:"*/*"}});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:c.status,error:a}),null}let d=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!d.token,expiresAt:d.expires_at}),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}}},48118:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(11453),e=c(33699),f=c(88762);let g=(0,d.v)((0,e.Zr)((a,b)=>({theme:f.B2.defaultTheme,setTheme:b=>{a({theme:b})},toggleTheme:()=>{let c="dark"===b().theme?"light":"dark";a({theme:c})},initTheme:()=>{b().theme}}),{name:f.B2.storageKey}))},54359:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js","ThemeProvider")},59376:(a,b,c)=>{"use strict";c.d(b,{Co:()=>e,NA:()=>f,Uc:()=>g,eo:()=>h,xq:()=>d});let d={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/1.0.83 (external, cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.3.0","X-Stainless-Package-Version":"0.55.1","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"60"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://console.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"codex",headers:{Version:"0.21.0","Openai-Beta":"responses=experimental","User-Agent":"codex_cli_rs/0.50.0 (Mac OS 26.0.1; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecret:"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",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},antigravity:{baseUrls:["https://daily-cloudcode-pa.sandbox.googleapis.com","https://cloudcode-pa.googleapis.com"],format:"antigravity",headers:{"User-Agent":"antigravity/1.11.5 windows/amd64"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},kimi:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"}}},e="You are Claude Code, Anthropic's official CLI for Claude.",f={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},g=64e3,h=32e3},61135:()=>{},62029:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},64921:(a,b,c)=>{"use strict";c.d(b,{h:()=>d});let d={OPENAI:"openai",OPENAI_RESPONSES:"openai-responses",OPENAI_RESPONSE:"openai-response",CLAUDE:"claude",GEMINI:"gemini",GEMINI_CLI:"gemini-cli",CODEX:"codex",ANTIGRAVITY:"antigravity"}},70440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+""}]},72513:(a,b,c)=>{"use strict";c.d(b,{kz:()=>f}),c(64921),c(18586);let d=new Map,e=new Map;function f(a,b,c,f){let g=`${a}:${b}`;c&&d.set(g,c),f&&e.set(g,f)}},77538:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>e,vq:()=>d,KC:()=>f}),c(59376);let d={cc:[{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3.2-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-v3.2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"minimax-m2",name:"MiniMax M2"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.7",name:"GLM 4.7"}],ag:[{id:"gemini-3-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 "},{id:"claude-sonnet-4-5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-opus-4-5-thinking",name:"Claude Opus 4.5"}],gh:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"gemini-3-pro",name:"Gemini 3 Pro"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"}],openai:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],openrouter:[{id:"auto",name:"Auto (Best Available)"}],glm:[{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],kimi:[{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},e={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax"};function f(a){return d[e[a]||a]||[]}c(64921),c(72513),c(18586),c(44975),"undefined"!=typeof process&&process.versions?.node,"undefined"!=typeof process&&process.env?.ENABLE_REQUEST_LOGS,Object.entries(c(32588).Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(d).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},80589:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},85440:(a,b,c)=>{Promise.resolve().then(c.bind(c,3605))},88762:(a,b,c)=>{"use strict";c.d(b,{B2:()=>f,MA:()=>d.MA,Q2:()=>d.Q2,fg:()=>d.fg,vQ:()=>e,zN:()=>d.zN});var d=c(32588);c(77538);let e={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"1.0.0"},f={storageKey:"theme",defaultTheme:"system"}},97634:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(75338),e=c(4563),f=c.n(e);c(61135);var g=c(54359);c(19858);let h={title:"9Router - AI Infrastructure Management",description:"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."};function i({children:a}){return(0,d.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap",rel:"stylesheet"}),(0,d.jsx)("link",{rel:"icon",href:"/favicon.svg",type:"image/svg+xml"})]}),(0,d.jsx)("body",{className:`${f().variable} font-sans antialiased`,children:(0,d.jsx)(g.ThemeProvider,{children:a})})]})}},98592:(a,b,c)=>{Promise.resolve().then(c.bind(c,54359))}};
|
|
1
|
+
exports.id=3103,exports.ids=[3103],exports.modules={3605:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{ThemeProvider:()=>h});var e=c(21124);c(38301);var f=c(48118),g=a([f]);function h({children:a}){let{initTheme:b}=(0,f.A)();return(0,e.jsx)(e.Fragment,{children:a})}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},16298:(a,b,c)=>{},18586:(a,b,c)=>{"use strict";c(59376)},21018:(a,b,c)=>{},26554:(a,b,c)=>{"use strict";c(59376)},32588:(a,b,c)=>{"use strict";c.d(b,{MA:()=>g,Q2:()=>f,fg:()=>e,wG:()=>h,zN:()=>d});let d={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"}},e={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#6366F1",textIcon:"OR",passthroughModels:!0},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL"},kimi:{id:"kimi",alias:"kimi",name:"Kimi Coding",icon:"psychology",color:"#1E3A8A",textIcon:"KM"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE"}},f={...d,...e},g={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}};function h(a){let b=f[a];return b?.alias||a}Object.values(f).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(f).reduce((a,b)=>(a[b.id]=b.alias,a),{})},33198:(a,b,c)=>{"use strict";c(72513),c(64921)},40830:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{KC:()=>e.KC,Xg:()=>e.Xg,vq:()=>e.vq}),c(59376);var e=c(92866);c(64921),c(72513),c(18586),c(21018),c(26554),c(44975);var f=c(63197);c(16298),c(33198);var g=a([f]);f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},44975:(a,b,c)=>{"use strict";c.d(b,{refreshCopilotToken:()=>f,refreshGitHubToken:()=>e});var d=c(59376);async function e(a,b){let c=await fetch(d.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.github.clientId,client_secret:d.xq.github.clientSecret})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh GitHub token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed GitHub token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function f(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`Bearer ${a}`,"User-Agent":"GitHub-Copilot/1.0",Accept:"*/*"}});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:c.status,error:a}),null}let d=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!d.token,expiresAt:d.expires_at}),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}}},48118:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>i});var e=c(11453),f=c(33699),g=c(88762),h=a([g]);g=(h.then?(await h)():h)[0];let i=(0,e.v)((0,f.Zr)((a,b)=>({theme:g.B2.defaultTheme,setTheme:b=>{a({theme:b})},toggleTheme:()=>{let c=b().theme,d="dark"===c?"light":"dark";a({theme:d})},initTheme:()=>{b().theme}}),{name:g.B2.storageKey}));d()}catch(a){d(a)}})},54359:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js","ThemeProvider")},59376:(a,b,c)=>{"use strict";c.d(b,{Co:()=>e,NA:()=>f,Uc:()=>g,eo:()=>h,xq:()=>d});let d={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/1.0.83 (external, cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.3.0","X-Stainless-Package-Version":"0.55.1","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"60"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://console.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"codex",headers:{Version:"0.21.0","Openai-Beta":"responses=experimental","User-Agent":"codex_cli_rs/0.50.0 (Mac OS 26.0.1; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecret:"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",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},antigravity:{baseUrls:["https://daily-cloudcode-pa.sandbox.googleapis.com","https://cloudcode-pa.googleapis.com"],format:"antigravity",headers:{"User-Agent":"antigravity/1.11.5 windows/amd64"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},kimi:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"}}},e="You are Claude Code, Anthropic's official CLI for Claude.",f={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},g=64e3,h=32e3},61135:()=>{},62029:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},63197:(a,b,c)=>{"use strict";c.a(a,async(a,b)=>{try{c(18586),c(72513),c(64921),c(33198),c(44975),c(64277),c(92866),c(16298),c(64420);try{let a=await Promise.resolve().then(c.t.bind(c,81630,23)),b=await Promise.resolve().then(c.t.bind(c,55591,23));new a.Agent({keepAlive:!0,family:0,hints:0}),new b.Agent({keepAlive:!0,family:0,hints:0})}catch(a){}b()}catch(a){b(a)}},1)},64277:(a,b,c)=>{"use strict";"undefined"!=typeof process&&process.versions?.node,"undefined"!=typeof process&&process.env?.ENABLE_REQUEST_LOGS},64420:(a,b,c)=>{"use strict";c(18586),c(72513),c(64921),c(59376),c(33198)},64921:(a,b,c)=>{"use strict";c.d(b,{h:()=>d});let d={OPENAI:"openai",OPENAI_RESPONSES:"openai-responses",OPENAI_RESPONSE:"openai-response",CLAUDE:"claude",GEMINI:"gemini",GEMINI_CLI:"gemini-cli",CODEX:"codex",ANTIGRAVITY:"antigravity"}},70440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+""}]},72513:(a,b,c)=>{"use strict";c.d(b,{kz:()=>f}),c(64921),c(18586);let d=new Map,e=new Map;function f(a,b,c,f){let g=`${a}:${b}`;c&&d.set(g,c),f&&e.set(g,f)}},80589:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},85440:(a,b,c)=>{Promise.resolve().then(c.bind(c,3605))},88762:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{B2:()=>i,MA:()=>e.MA,Q2:()=>e.Q2,fg:()=>e.fg,vQ:()=>h,zN:()=>e.zN});var e=c(32588),f=c(91666),g=a([f]);f=(g.then?(await g)():g)[0];let h={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"1.0.0"},i={storageKey:"theme",defaultTheme:"system"};d()}catch(a){d(a)}})},91666:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{KC:()=>e.KC,Xg:()=>e.Xg,vq:()=>e.vq});var e=c(40830),f=c(32588),g=a([e]);e=(g.then?(await g)():g)[0],Object.entries(f.Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(e.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),d()}catch(a){d(a)}})},92866:(a,b,c)=>{"use strict";c.d(b,{KC:()=>f,Xg:()=>e,vq:()=>d});let d={cc:[{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3.2-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-v3.2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"minimax-m2",name:"MiniMax M2"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.7",name:"GLM 4.7"}],ag:[{id:"gemini-3-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 "},{id:"claude-sonnet-4-5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-opus-4-5-thinking",name:"Claude Opus 4.5"}],gh:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"gemini-3-pro",name:"Gemini 3 Pro"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"}],openai:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],openrouter:[{id:"auto",name:"Auto (Best Available)"}],glm:[{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],kimi:[{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},e={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax"};function f(a){return d[e[a]||a]||[]}},97634:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(75338),e=c(4563),f=c.n(e);c(61135);var g=c(54359);c(19858);let h={title:"9Router - AI Infrastructure Management",description:"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."};function i({children:a}){return(0,d.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap",rel:"stylesheet"}),(0,d.jsx)("link",{rel:"icon",href:"/favicon.svg",type:"image/svg+xml"})]}),(0,d.jsx)("body",{className:`${f().variable} font-sans antialiased`,children:(0,d.jsx)(g.ThemeProvider,{children:a})})]})}},98592:(a,b,c)=>{Promise.resolve().then(c.bind(c,54359))}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=5170,exports.ids=[5170],exports.modules={31852:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(1124);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},34443:(a,b,c)=>{"use strict";c.d(b,{CG:()=>
|
|
1
|
+
exports.id=5170,exports.ids=[5170],exports.modules={31852:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(1124);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},34443:(a,b,c)=>{"use strict";c.d(b,{CG:()=>E,Dj:()=>B,Iq:()=>G,L:()=>A,Lh:()=>H,Mc:()=>s,Nx:()=>M,OM:()=>w,P:()=>r,PX:()=>F,Uv:()=>z,Xx:()=>L,bI:()=>J,ek:()=>I,fK:()=>v,fv:()=>y,iE:()=>t,jd:()=>C,mt:()=>K,o5:()=>x,oG:()=>D,rj:()=>u});var d=c(16373),e=c(56963),f=c(14701),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(29021),l=c.n(k);let m=function(){let a=process.platform,b=j().homedir(),c="9router";return"win32"===a?h().join(process.env.APPDATA||h().join(b,"AppData","Roaming"),c):h().join(b,`.${c}`)}(),n=h().join(m,"db.json");l().existsSync(m)||l().mkdirSync(m,{recursive:!0});let o={providerConnections:[],modelAliases:{},combos:[],apiKeys:[],settings:{cloudEnabled:!1}},p=null;async function q(){if(!p){let a=new e.Pv(n);p=new d.t(a,o);try{await p.read()}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt JSON detected, resetting to defaults..."),p.data=o,await p.write();else throw a}p.data||(p.data=o,await p.write())}return p}async function r(a={}){let b=(await q()).data.providerConnections||[];return a.provider&&(b=b.filter(b=>b.provider===a.provider)),void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),b.sort((a,b)=>(a.priority||999)-(b.priority||999)),b}async function s(a){return(await q()).data.providerConnections.find(b=>b.id===a)||null}async function t(a){let b=await q(),c=new Date().toISOString(),d=-1;if("oauth"===a.authType&&a.email?d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"oauth"===b.authType&&b.email===a.email):"apikey"===a.authType&&a.name&&(d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"apikey"===b.authType&&b.name===a.name)),-1!==d)return b.data.providerConnections[d]={...b.data.providerConnections[d],...a,updatedAt:c},await b.write(),b.data.providerConnections[d];let e=a.name||null;if(!e&&"oauth"===a.authType)if(a.email)e=a.email;else{let c=b.data.providerConnections.filter(b=>b.provider===a.provider).length;e=`Account ${c+1}`}let g=a.priority;g||(g=b.data.providerConnections.filter(b=>b.provider===a.provider).reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let h={id:(0,f.A)(),provider:a.provider,authType:a.authType||"oauth",name:e,priority:g,isActive:void 0===a.isActive||a.isActive,createdAt:c,updatedAt:c};for(let b of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode"])void 0!==a[b]&&null!==a[b]&&(h[b]=a[b]);return a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(h.providerSpecificData=a.providerSpecificData),b.data.providerConnections.push(h),await b.write(),h}async function u(a,b){let c=await q(),d=c.data.providerConnections.findIndex(b=>b.id===a);return -1===d?null:(c.data.providerConnections[d]={...c.data.providerConnections[d],...b,updatedAt:new Date().toISOString()},await c.write(),c.data.providerConnections[d])}async function v(a){let b=await q(),c=b.data.providerConnections.findIndex(b=>b.id===a);return -1!==c&&(b.data.providerConnections.splice(c,1),await b.write(),!0)}async function w(){return(await q()).data.modelAliases||{}}async function x(a,b){let c=await q();c.data.modelAliases[a]=b,await c.write()}async function y(a){let b=await q();delete b.data.modelAliases[a],await b.write()}async function z(){return(await q()).data.combos||[]}async function A(a){return((await q()).data.combos||[]).find(b=>b.id===a)||null}async function B(a){return((await q()).data.combos||[]).find(b=>b.name===a)||null}async function C(a){let b=await q();b.data.combos||(b.data.combos=[]);let c=new Date().toISOString(),d={id:(0,f.A)(),name:a.name,models:a.models||[],createdAt:c,updatedAt:c};return b.data.combos.push(d),await b.write(),d}async function D(a,b){let c=await q();c.data.combos||(c.data.combos=[]);let d=c.data.combos.findIndex(b=>b.id===a);return -1===d?null:(c.data.combos[d]={...c.data.combos[d],...b,updatedAt:new Date().toISOString()},await c.write(),c.data.combos[d])}async function E(a){let b=await q();if(!b.data.combos)return!1;let c=b.data.combos.findIndex(b=>b.id===a);return -1!==c&&(b.data.combos.splice(c,1),await b.write(),!0)}async function F(){return(await q()).data.apiKeys||[]}async function G(a,b){if(!b)throw Error("machineId is required");let d=await q(),e=new Date().toISOString(),{generateApiKeyWithMachine:g}=await c.e(9285).then(c.bind(c,39285)),h=g(b),i={id:(0,f.A)(),name:a,key:h.key,machineId:b,createdAt:e};return d.data.apiKeys.push(i),await d.write(),i}async function H(a){let b=await q(),c=b.data.apiKeys.findIndex(b=>b.id===a);return -1!==c&&(b.data.apiKeys.splice(c,1),await b.write(),!0)}async function I(a){return(await q()).data.apiKeys.some(b=>b.key===a)}async function J(){let a=await q(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn"],c=0;for(let d of a.data.providerConnections){for(let a of b)(null===d[a]||void 0===d[a])&&(delete d[a],c++);d.providerSpecificData&&0===Object.keys(d.providerSpecificData).length&&(delete d.providerSpecificData,c++)}return c>0&&await a.write(),c}async function K(){return(await q()).data.settings||{cloudEnabled:!1}}async function L(a){let b=await q();return b.data.settings={...b.data.settings,...a},await b.write(),b.data.settings}async function M(){return!0===(await K()).cloudEnabled}},78335:()=>{},96487:()=>{},97318:(a,b,c)=>{"use strict";c.r(b),c.d(b,{POST:()=>n,syncToCloud:()=>o});var d=c(10641),e=c(34443),f=c(31852),g=c(79748),h=c.n(g),i=c(33873),j=c.n(i),k=c(21820),l=c.n(k);let m="https://9router.com";async function n(a){try{let{action:b}=await a.json(),c=await (0,f.Xj)();switch(b){case"enable":await (0,e.Xx)({cloudEnabled:!0});let g=await (0,e.PX)(),h=null;return 0===g.length&&(h=await (0,e.Iq)("Default Key",c)),p(c,h?.key,g);case"sync":{let a=await o(c);if(a.error)return d.NextResponse.json(a,{status:502});return d.NextResponse.json(a)}case"disable":return await (0,e.Xx)({cloudEnabled:!1}),q(c,a);default:return d.NextResponse.json({error:"Invalid action"},{status:400})}}catch(a){return console.log("Cloud sync error:",a),d.NextResponse.json({error:a.message},{status:500})}}async function o(a,b=null){let c=await (0,e.P)(),f=await (0,e.OM)(),g=await (0,e.Uv)(),h=await (0,e.PX)(),i=await fetch(`${m}/sync/${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providers:c,modelAliases:f,combos:g,apiKeys:h})});if(!i.ok)return console.log("Cloud sync failed:",await i.text()),d.NextResponse.json({error:"Cloud sync failed"},{status:502});let j=await i.json();j.data&&j.data.providers&&await s(j.data.providers);let k={success:!0,message:"Synced successfully",changes:j.changes};return b&&(k.createdKey=b),k}async function p(a,b,c){let e=await o(a,b);if(e.error)return d.NextResponse.json(e,{status:502});let f=b||c[0]?.key;if(!f)return d.NextResponse.json({...e,verified:!1,verifyError:"No API key available"});try{let b=await fetch(`${m}/${a}/v1/verify`,{method:"GET",headers:{Authorization:`Bearer ${f}`,"Content-Type":"application/json"}});if(b.ok)return d.NextResponse.json({...e,verified:!0});return d.NextResponse.json({...e,verified:!1,verifyError:`Ping failed: ${b.status}`})}catch(a){return d.NextResponse.json({...e,verified:!1,verifyError:a.message})}}async function q(a,b){let c=await fetch(`${m}/sync/${a}`,{method:"DELETE"});if(!c.ok)return console.log("Cloud disable failed:",await c.text()),d.NextResponse.json({error:"Failed to disable cloud"},{status:502});let e=b.headers.get("host")||"localhost:3000";return await r(a,e),d.NextResponse.json({success:!0,message:"Cloud disabled"})}async function r(a,b){try{let c,d=j().join(l().homedir(),".claude","settings.json"),e=`${m}/${a}`,f=`http://${b}`;try{let a=await h().readFile(d,"utf-8");c=JSON.parse(a)}catch(a){if("ENOENT"===a.code)return;throw a}let g=c.env?.ANTHROPIC_BASE_URL;if(!g||g!==e)return;c.env.ANTHROPIC_BASE_URL=f,await h().writeFile(d,JSON.stringify(c,null,2)),console.log(`Updated Claude CLI settings: ${e} → ${f}`)}catch(a){console.log("Failed to update Claude CLI settings:",a.message)}}async function s(a){for(let b of(await (0,e.P)())){let c=a[b.id];if(c){if(new Date(c.updatedAt||0).getTime()>new Date(b.updatedAt||0).getTime()){let a={accessToken:c.accessToken,refreshToken:c.refreshToken,expiresAt:c.expiresAt,expiresIn:c.expiresIn,providerSpecificData:c.providerSpecificData||b.providerSpecificData,testStatus:c.status||"active",lastError:c.lastError,lastErrorAt:c.lastErrorAt,errorCode:c.errorCode,rateLimitedUntil:c.rateLimitedUntil,updatedAt:c.updatedAt};await (0,e.rj)(b.id,a)}}}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=533,exports.ids=[533],exports.modules={824:(a,b,c)=>{"use strict";c.d(b,{d_:()=>g,mA:()=>f});var d=c(34443),e=c(44836);async function f(a){return(0,e.js)(a,d.OM)}async function g(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},6671:(a,b,c)=>{"use strict";c.d(b,{Pt:()=>i,c1:()=>g,vk:()=>h});var d=c(34443),e=c(71544),f=c(15016);async function g(a,b=null){let c=await (0,d.P)({provider:a,isActive:!0});if(0===c.length)return f.warn("AUTH",`No credentials for ${a}`),null;let h=c.filter(a=>!(b&&a.id===b||(0,e.AO)(a.rateLimitedUntil)));if(0===h.length)return f.warn("AUTH",`All ${c.length} accounts for ${a} unavailable`),null;let i=h[0];return{apiKey:i.apiKey,accessToken:i.accessToken,refreshToken:i.refreshToken,projectId:i.projectId,copilotToken:i.providerSpecificData?.copilotToken,providerSpecificData:i.providerSpecificData,connectionId:i.id,testStatus:i.testStatus,lastError:i.lastError,rateLimitedUntil:i.rateLimitedUntil}}async function h(a,b,c="Provider error",f=null,g=null){let i=(0,e.vp)(b);await (0,d.rj)(a,{rateLimitedUntil:i,testStatus:"unavailable",lastError:c,errorCode:f,lastErrorAt:new Date().toISOString()}),g&&f&&c&&console.error(`❌ ${g} [${f}]: ${c}`)}async function i(a,b){("unavailable"===b.testStatus||b.lastError||b.rateLimitedUntil)&&(await (0,d.rj)(a,{testStatus:"active",lastError:null,lastErrorAt:null,rateLimitedUntil:null}),f.info("AUTH",`Account ${a.slice(0,8)} error cleared`))}},15016:(a,b,c)=>{"use strict";c.r(b),c.d(b,{debug:()=>h,error:()=>k,info:()=>i,maskKey:()=>o,request:()=>l,response:()=>m,stream:()=>n,warn:()=>j});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d.DEBUG;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}function g(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function h(a,b,c){if(e<=d.DEBUG){let d=c?` ${g(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function i(a,b,c){if(e<=d.INFO){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function j(a,b,c){e<=d.WARN&&c&&g(c)}function k(a,b,c){if(e<=d.ERROR){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function l(a,b,c){let d=c?` ${g(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function m(a,b,c){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function n(a,b){let c=b?` ${g(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function o(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},34443:(a,b,c)=>{"use strict";c.d(b,{CG:()=>E,Dj:()=>B,Iq:()=>G,L:()=>A,Lh:()=>H,Mc:()=>s,Nx:()=>M,OM:()=>w,P:()=>r,PX:()=>F,Uv:()=>z,Xx:()=>L,bI:()=>J,ek:()=>I,fK:()=>v,fv:()=>y,iE:()=>t,jd:()=>C,mt:()=>K,o5:()=>x,oG:()=>D,rj:()=>u});var d=c(16373),e=c(56963),f=c(14701),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(29021),l=c.n(k);let m=function(){let a=process.platform,b=j().homedir(),c="9router";return"win32"===a?h().join(process.env.APPDATA||h().join(b,"AppData","Roaming"),c):h().join(b,`.${c}`)}(),n=h().join(m,"db.json");l().existsSync(m)||l().mkdirSync(m,{recursive:!0});let o={providerConnections:[],modelAliases:{},combos:[],apiKeys:[],settings:{cloudEnabled:!1}},p=null;async function q(){if(!p){let a=new e.Pv(n);p=new d.t(a,o);try{await p.read()}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt JSON detected, resetting to defaults..."),p.data=o,await p.write();else throw a}p.data||(p.data=o,await p.write())}return p}async function r(a={}){let b=(await q()).data.providerConnections||[];return a.provider&&(b=b.filter(b=>b.provider===a.provider)),void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),b.sort((a,b)=>(a.priority||999)-(b.priority||999)),b}async function s(a){return(await q()).data.providerConnections.find(b=>b.id===a)||null}async function t(a){let b=await q(),c=new Date().toISOString(),d=-1;if("oauth"===a.authType&&a.email?d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"oauth"===b.authType&&b.email===a.email):"apikey"===a.authType&&a.name&&(d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"apikey"===b.authType&&b.name===a.name)),-1!==d)return b.data.providerConnections[d]={...b.data.providerConnections[d],...a,updatedAt:c},await b.write(),b.data.providerConnections[d];let e=a.name||null;if(!e&&"oauth"===a.authType)if(a.email)e=a.email;else{let c=b.data.providerConnections.filter(b=>b.provider===a.provider).length;e=`Account ${c+1}`}let g=a.priority;g||(g=b.data.providerConnections.filter(b=>b.provider===a.provider).reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let h={id:(0,f.A)(),provider:a.provider,authType:a.authType||"oauth",name:e,priority:g,isActive:void 0===a.isActive||a.isActive,createdAt:c,updatedAt:c};for(let b of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode"])void 0!==a[b]&&null!==a[b]&&(h[b]=a[b]);return a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(h.providerSpecificData=a.providerSpecificData),b.data.providerConnections.push(h),await b.write(),h}async function u(a,b){let c=await q(),d=c.data.providerConnections.findIndex(b=>b.id===a);return -1===d?null:(c.data.providerConnections[d]={...c.data.providerConnections[d],...b,updatedAt:new Date().toISOString()},await c.write(),c.data.providerConnections[d])}async function v(a){let b=await q(),c=b.data.providerConnections.findIndex(b=>b.id===a);return -1!==c&&(b.data.providerConnections.splice(c,1),await b.write(),!0)}async function w(){return(await q()).data.modelAliases||{}}async function x(a,b){let c=await q();c.data.modelAliases[a]=b,await c.write()}async function y(a){let b=await q();delete b.data.modelAliases[a],await b.write()}async function z(){return(await q()).data.combos||[]}async function A(a){return((await q()).data.combos||[]).find(b=>b.id===a)||null}async function B(a){return((await q()).data.combos||[]).find(b=>b.name===a)||null}async function C(a){let b=await q();b.data.combos||(b.data.combos=[]);let c=new Date().toISOString(),d={id:(0,f.A)(),name:a.name,models:a.models||[],createdAt:c,updatedAt:c};return b.data.combos.push(d),await b.write(),d}async function D(a,b){let c=await q();c.data.combos||(c.data.combos=[]);let d=c.data.combos.findIndex(b=>b.id===a);return -1===d?null:(c.data.combos[d]={...c.data.combos[d],...b,updatedAt:new Date().toISOString()},await c.write(),c.data.combos[d])}async function E(a){let b=await q();if(!b.data.combos)return!1;let c=b.data.combos.findIndex(b=>b.id===a);return -1!==c&&(b.data.combos.splice(c,1),await b.write(),!0)}async function F(){return(await q()).data.apiKeys||[]}async function G(a,b){if(!b)throw Error("machineId is required");let d=await q(),e=new Date().toISOString(),{generateApiKeyWithMachine:g}=await c.e(9285).then(c.bind(c,39285)),h=g(b),i={id:(0,f.A)(),name:a,key:h.key,machineId:b,createdAt:e};return d.data.apiKeys.push(i),await d.write(),i}async function H(a){let b=await q(),c=b.data.apiKeys.findIndex(b=>b.id===a);return -1!==c&&(b.data.apiKeys.splice(c,1),await b.write(),!0)}async function I(a){return(await q()).data.apiKeys.some(b=>b.key===a)}async function J(){let a=await q(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn"],c=0;for(let d of a.data.providerConnections){for(let a of b)(null===d[a]||void 0===d[a])&&(delete d[a],c++);d.providerSpecificData&&0===Object.keys(d.providerSpecificData).length&&(delete d.providerSpecificData,c++)}return c>0&&await a.write(),c}async function K(){return(await q()).data.settings||{cloudEnabled:!1}}async function L(a){let b=await q();return b.data.settings={...b.data.settings,...a},await b.write(),b.data.settings}async function M(){return!0===(await K()).cloudEnabled}},47969:(a,b,c)=>{"use strict";c.d(b,{eU:()=>i,vN:()=>h});var d=c(15016),e=c(34443),f=c(71125);let g=f.oD;async function h(a,b){try{let c={};b.accessToken&&(c.accessToken=b.accessToken),b.refreshToken&&(c.refreshToken=b.refreshToken),b.expiresIn&&(c.expiresAt=new Date(Date.now()+1e3*b.expiresIn).toISOString(),c.expiresIn=b.expiresIn),b.providerSpecificData&&(c.providerSpecificData=b.providerSpecificData);let f=await (0,e.rj)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function i(a,b){let c={...b};if(c.expiresAt){let b=new Date(c.expiresAt).getTime(),e=Date.now();if(b-e<g){let g;d.info("TOKEN_REFRESH","Token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round((b-e)/1e3)});let i=await (g=c,(0,f.iD)(a,g,d));i&&i.accessToken&&(await h(c.connectionId,i),c={...c,accessToken:i.accessToken,refreshToken:i.refreshToken||c.refreshToken,expiresAt:i.expiresIn?new Date(Date.now()+1e3*i.expiresIn).toISOString():c.expiresAt})}}if("github"===a&&c.providerSpecificData?.copilotTokenExpiresAt){let b=1e3*c.providerSpecificData.copilotTokenExpiresAt,e=Date.now();if(b-e<g){let g;d.info("TOKEN_REFRESH","Copilot token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round((b-e)/1e3)});let i=await (g=c.accessToken,(0,f.refreshCopilotToken)(g,d));i&&(await h(c.connectionId,{providerSpecificData:{...c.providerSpecificData,copilotToken:i.token,copilotTokenExpiresAt:i.expiresAt}}),c.providerSpecificData={...c.providerSpecificData,copilotToken:i.token,copilotTokenExpiresAt:i.expiresAt})}}return c}},55360:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{P:()=>n});var e=c(6671),f=c(824),g=c(84607),h=c(33508),i=c(71544),j=c(60575),k=c(15016),l=c(47969),m=a([g]);async function n(a,b=null){let c;try{c=await a.json()}catch{return k.warn("CHAT","Invalid JSON body"),(0,h.yj)(400,"Invalid JSON body")}b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())});let d=new URL(a.url),e=c.model,g=c.messages?.length||c.input?.length||0,i=c.tools?.length||0;k.request("POST",`${d.pathname} | ${e} | ${g} msgs${i?` | ${i} tools`:""}`);let l=a.headers.get("Authorization");if(l){let a=k.maskKey(l.replace("Bearer ",""));k.debug("AUTH",`API Key: ${a}`)}else k.debug("AUTH","No API key provided (local mode)");if(!e)return k.warn("CHAT","Missing model"),(0,h.yj)(400,"Missing model");let m=await (0,f.d_)(e);return m?(k.info("CHAT",`Combo "${e}" with ${m.length} models`),(0,j.P)({body:c,models:m,handleSingleModel:(a,c)=>o(a,c,b),log:k})):o(c,e,b)}async function o(a,b,c=null){let d=await (0,f.mA)(b);if(!d.provider)return k.warn("CHAT","Invalid model format",{model:b}),(0,h.yj)(400,"Invalid model format");let{provider:j,model:m}=d;b!==`${j}/${m}`?k.info("ROUTING",`${b} → ${j}/${m}`):k.info("ROUTING",`Provider: ${j}, Model: ${m}`);let n=null,p=null;for(;;){let b=await (0,e.c1)(j,n);if(!b){if(!n)return k.error("AUTH",`No credentials for provider: ${j}`),(0,h.yj)(400,`No credentials for provider: ${j}`);return k.warn("CHAT","No more accounts available",{provider:j}),new Response(JSON.stringify({error:p||"All accounts unavailable"}),{status:503,headers:{"Content-Type":"application/json"}})}let d=b.connectionId.slice(0,8);k.info("AUTH",`Using ${j} account: ${d}...`);let f=await (0,l.eU)(j,b),o=await (0,g.w)({body:{...a,model:`${j}/${m}`},modelInfo:{provider:j,model:m},credentials:f,log:k,clientRawRequest:c,onCredentialsRefreshed:async a=>{await (0,l.vN)(b.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(b.connectionId,b)}});if(o.success)return o.response;let{shouldFallback:q,cooldownMs:r}=(0,i.hk)(o.status,o.error);if(q){let a=b.connectionId.slice(0,8);k.warn("AUTH",`Account ${a}... unavailable (status: ${o.status}), trying fallback`),await (0,e.vk)(b.connectionId,r,o.error?.slice(0,100),o.status,j),n=b.connectionId,p=o.error;continue}return o.response}}g=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},60575:(a,b,c)=>{"use strict";async function d({body:a,models:b,handleSingleModel:c,log:d}){let e=null;for(let f=0;f<b.length;f++){let g=b[f];d.info("COMBO",`Trying model ${f+1}/${b.length}: ${g}`);let h=await c(a,g);if(h.ok||401===h.status)return h;e=`${g}: ${h.statusText||h.status}`,d.warn("COMBO","Model failed, trying next",{model:g,status:h.status})}return d.warn("COMBO","All models failed"),new Response(JSON.stringify({error:e||"All combo models unavailable"}),{status:503,headers:{"Content-Type":"application/json"}})}c.d(b,{P:()=>d})},78335:()=>{},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=
|
|
1
|
+
"use strict";exports.id=5451,exports.ids=[5451],exports.modules={2671:(a,b,c)=>{c.d(b,{q7:()=>m});let d="undefined"!=typeof process&&process.versions?.node&&!0,e="undefined"!=typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",f=null,g=null,h=null;async function i(){if(d&&e&&!f)try{f=await Promise.resolve().then(c.t.bind(c,29021,23)),h=(g=await Promise.resolve().then(c.t.bind(c,33873,23))).join("undefined"!=typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function j(a,b,c){if(await i(),!f||!h)return null;try{f.existsSync(h)||f.mkdirSync(h,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}${d}${e}_${f}${g}${h}`}(),e=c.replace(/[/:]/g,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return f.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function k(a,b,c){if(f&&a)try{let d=g.join(a,b);f.writeFileSync(d,JSON.stringify(c,null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}function l(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=b[a];c&&c.length>20&&(b[a]=c.slice(0,10)+"..."+c.slice(-5))}}return b}async function m(a,b,c){if(!e)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logFormatInfo(){},logConvertedRequest(){},logRawResponse(){},logConvertedResponse(){},logStreamChunk(){},logStreamComplete(){},logError(){}};let d=await j(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){k(d,"0_client_raw_request.json",{timestamp:new Date().toISOString(),endpoint:a,headers:l(c),body:b})},logRawRequest(a,b={}){k(d,"1_raw_request.json",{timestamp:new Date().toISOString(),headers:l(b),body:a})},logFormatInfo(a){k(d,"1a_format_info.json",{timestamp:new Date().toISOString(),...a})},logConvertedRequest(a,b,c){k(d,"2_converted_request.json",{timestamp:new Date().toISOString(),url:a,headers:l(b),body:c})},logProviderResponse(a,b,c,e){k(d,"3_provider_response.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:c?"function"==typeof c.entries?Object.fromEntries(c.entries()):c:{},body:e})},appendProviderChunk(a){if(f&&d)try{let b=g.join(d,"3_provider_response.txt");f.appendFileSync(b,a)}catch(a){}},logConvertedResponse(a){k(d,"4_converted_response.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(f&&d)try{let b=g.join(d,"4_converted_response.txt");f.appendFileSync(b,a)}catch(a){}},logError(a,b=null){k(d,"5_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},5348:(a,b,c)=>{c.d(b,{i5:()=>m,l2:()=>n,lm:()=>g});var d=c(88284),e=c(38343);function f(a){return"message_delta"===a.type&&a.usage?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usage?.prompt_tokens!==void 0?{prompt_tokens:a.usage.prompt_tokens,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount}:null}let g={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"};function h(a,b){if(!b)return;let c=a?.toUpperCase()||"UNKNOWN",d=b.prompt_tokens||0,e=b.completion_tokens||0,f=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 [USAGE] ${c} | in=${d} | out=${e}`;b.cache_creation_input_tokens&&(f+=` | cache_write=${b.cache_creation_input_tokens}`),b.cache_read_input_tokens&&(f+=` | cache_read=${b.cache_read_input_tokens}`),b.cached_tokens&&(f+=` | cached=${b.cached_tokens}`),b.reasoning_tokens&&(f+=` | reasoning=${b.reasoning_tokens}`),console.log(`${g.green}${f}${g.reset}`)}function i(a){if(!a||!a.startsWith("data:"))return null;let b=a.slice(5).trim();if("[DONE]"===b)return{done:!0};try{return JSON.parse(b)}catch(a){return b.length>0&&b.length<1e3&&console.log(`[WARN] Failed to parse SSE line (${b.length} chars): ${b.substring(0,100)}...`),null}}function j(a,b){return a.done?"data: [DONE]\n\n":a.event&&a.data?`event: ${a.event}
|
|
2
2
|
data: ${JSON.stringify(a.data)}
|
|
3
3
|
|
|
4
4
|
`:b===e.h.CLAUDE&&a.type?`event: ${a.type}
|
|
@@ -6,4 +6,4 @@ data: ${JSON.stringify(a)}
|
|
|
6
6
|
|
|
7
7
|
`:`data: ${JSON.stringify(a)}
|
|
8
8
|
|
|
9
|
-
`}let k={TRANSLATE:"translate",PASSTHROUGH:"passthrough"};function l(a={}){let{mode:b=k.TRANSLATE,targetFormat:c,sourceFormat:e,provider:g=null,reqLogger:m=null}=a,n=new TextDecoder,o=new TextEncoder,p="",q=null,r=b===k.TRANSLATE?{...(0,d.Ws)(e),provider:g}:null;return new TransformStream({transform(a,g){let h=n.decode(a,{stream:!0});p+=h,m?.appendProviderChunk?.(h);let l=p.split("\n");for(let a of(p=l.pop()||"",l)){let h=a.trim();if(b===k.PASSTHROUGH){let b;if(h.startsWith("data:")&&"[DONE]"!==h.slice(5).trim())try{let a=JSON.parse(h.slice(5).trim()),b=f(a);b&&(q=b)}catch{}b=a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5)+"\n":a+"\n",m?.appendConvertedChunk?.(b),g.enqueue(o.encode(b));continue}if(!h)continue;let l=i(h);if(!l)continue;if(l.done){let a="data: [DONE]\n\n";m?.appendConvertedChunk?.(a),g.enqueue(o.encode(a));continue}let n=f(l);n&&(r.usage=n);let p=(0,d.Y8)(c,e,l,r);if(p?.length>0)for(let a of p){let b=j(a,e);m?.appendConvertedChunk?.(b),g.enqueue(o.encode(b))}}},flush(a){try{let f=n.decode();if(f&&(p+=f),b===k.PASSTHROUGH){if(p){let b=p;p.startsWith("data:")&&!p.startsWith("data: ")&&(b="data: "+p.slice(5)),m?.appendConvertedChunk?.(b),a.enqueue(o.encode(b))}q&&h(g,q);return}if(p.trim()){let b=i(p.trim());if(b&&!b.done){let f=(0,d.Y8)(c,e,b,r);if(f?.length>0)for(let b of f){let c=j(b,e);m?.appendConvertedChunk?.(c),a.enqueue(o.encode(c))}}}let l=(0,d.Y8)(c,e,null,r);if(l?.length>0)for(let b of l){let c=j(b,e);m?.appendConvertedChunk?.(c),a.enqueue(o.encode(c))}let s="data: [DONE]\n\n";m?.appendConvertedChunk?.(s),a.enqueue(o.encode(s)),r?.usage&&h(r.provider||c,r.usage)}catch(a){console.log("Error in flush:",a)}}})}function m(a,b,c=null,d=null){return l({mode:k.TRANSLATE,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d})}function n(a=null,b=null){return l({mode:k.PASSTHROUGH,provider:a,reqLogger:b})}},13348:(a,b,c)=>{c.d(b,{Xg:()=>f,ux:()=>e,vq:()=>d});let d={cc:[{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3.2-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-v3.2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"minimax-m2",name:"MiniMax M2"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.7",name:"GLM 4.7"}],ag:[{id:"gemini-3-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 "},{id:"claude-sonnet-4-5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-opus-4-5-thinking",name:"Claude Opus 4.5"}],gh:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"gemini-3-pro",name:"Gemini 3 Pro"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"}],openai:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],openrouter:[{id:"auto",name:"Auto (Best Available)"}],glm:[{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],kimi:[{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]};function e(a,b){let c=d[a];if(!c)return null;let e=c.find(a=>a.id===b);return e?.targetFormat||null}let f={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax"}},18150:(a,b,c)=>{c.d(b,{xr:()=>d,yV:()=>e});let d="EpwGCkYIChgCKkCzVUuRrg7CcglSUWEef4rH6o35g9UYS8ZPe0/VomQTBsFx6sttYNj5l8GqgW6ejuHyYqpFToxIbZl0bw17l5dJEgzCnqDO0Z8fRlMrNgsaDLS1cnCjC53KBqE0CCIwAADQdo1eO+7qPAmo8J4WR3JPmr92S97kmvr5K1iPMiOpkZNj8mEXW8uzBoOJs/9ZKoMFiqHJ3UObwaJDqFOW70E9oCwDoc6jesaWVAEdN5vWfKMpIkjFJjECdjIdkxyJNJ8Ib8yXVal3qwE7uThoPRqSZDdHB5mmwPEjWE/90cSYCbtX2YsJki1265CabBb8/QEkODXg4kgRrL+c8e8rRXz/dr1RswvaPuzEdGKHRNi9UooNUeOK4/ebx1KkP9YZttyohN9GWqlts36kOoW0Cfie/ABDgF9g534BPth/sstxDM6d79QlRmh6NxizyTF74DXJI34u0M4tTRchqE5pAq85SgdJaa+dix1yJPMji8m6nZkwJbscJb9rdc2MKyKWjz8QL2+rTSSuZ2F1k1qSsW0xNcI7qLcI12Vncfn/VqY6YOIZy/saZBR0ezXvN6g+UYbuIdyVg7AyIFZt3nbrO7/kmOEb2VKzygwklHGEIJHfFgMpH3JSrAzbZIowVHOF7VaJ+KXRFDCFin7hHTOiOsdg+1ij1mML9Z/x/9CP4b7OUcaQm1llDZPSHc6rZMNL3DdB+fW5YfmNgKU35S+7AMtA10nVILzDAk1UV4T2K9Do09JlI6rjOs9UuULlIN2Z0eE8YTlANR6uQcw7lMcdfqYE8tke4rDKc2dDiaS5vVe45VewICNpdXGN11yw8QqH7p27CR1HtN30e0tHXOR3bIwWk/Yb6O5fTaKG6Ri8e5ZCPvdD9HqepVi188nM0iTjJqL58F3ni04ECIhcbyaQWnuTes1Kw4CMwiZDLQkk8Hgz7HkUOf1btQTF/0nhD7ry0n0hAEg2PaDM3V6TjOjf4hEldRmeqERcQF1PfgKb6ZM12rlIIfUqKACczWJSzTV158+47HX36o0cgux6nFlv/DE+sEiRVxgB",e="EuwGCukGAXLI2nxwZIq54WWSoL/YN0P3TsDZ7zRnLi8g0S4aVr2HUGxvaHKySuY6HAVzcE0GPGjXrytLIldxthSvfxgUlJh6Qa9Z+Oj5QZBlYdg6HaJ6yuY5R7waE6rdwBsRf7Ft2j3DJ9rMi9qhWFqApewYtPhls3VHtuvND3l8Rm09+lbAXQs6KKWEWrxNLKTBkfpMgXhRERc/TQRMZu1twAablm6/Zk1tsYRvfWKLsNbeKF+CCojJdXJKvnR/8Ouuoa+Y2Ti20hcW7aZIIjZDFYPU//k6Ybmhg69J/imbFai2ckhfLaisqdDkdoIiBJScTOUvYqP6AE9d4MsydSC+UlhIMk4hoP76R8vUSCZRMkjOaDXstf/QoVZKbt94wyRZgAJ1G0BqI8L5ow86kLpA4wJEtxsRGymOE4bKUvApveBakYDNM9APkf+LbtbzWSseGjoZcSlycF9iN8Q2XNYKRrHbv3Lr5Y8JjdH/5y/6SHkNehTEZugaeGnSPSyCTWto1kQgHpxdWmhkLfJGNUGLmue7Mesj4TSms4J33mRpYVhNB/J333FCqIP0hr/E7BkkjEn7yZ4X7SQlh+xKPurapsnHRwiKmtsilmEFrnTE9iQr+pMr6M29qqFNv1tr5yumbaJw8JW9sB15tNsRv+dW6BjNanbsKz7HCgKUBc8tGy+7YuhXzAfViyRefcjK7eZW0Fbyt7AbybJTKz78W8NH7ye6LAwzOebXpeZ4D43fNIt8bKh26qgduSQv/7o+pAflkuqHZ99YWgHQ8h8OkZFi3eOiSYjsjhdZ/czWOdoPI/OnqIldzMPF5YlrKBLFX8VhRKVmqgsmWf5PHGulHhMkVlS+XG2UIseGy69ARa93D78Gsa+1n1kJr7EEB7Rh+27vUMxVYLdz1yMSvE5nalTAlg/ZeG8+XQ0cHuAI3KbQpHW2Q++RdXfm5JzD5WdJZUU+Zn8t8UUn85BH4RxZLeE0qJikgSsKoYVBc6YhiMjhPgkR95ReimY4Z0xCJdRo1gjexOFeODZMpQF6Yxnoic7IrdgsFA3iePTbFnPp3IAM1fAThWhXJUn3QInUOTd5o1qmTmn6REbL15g/JQNl+dqUoPkhleeb2V3kjqp1okmO3wMZbPknR3S1LZNmlS72/iBQUm+n2b/RCn4PjmM2"},33508:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>h,yj:()=>e,zL:()=>f});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}};function e(a,b){return new Response(JSON.stringify(function(a,b){let c=d[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""});return{error:{message:b||({400:"Bad request",401:"Invalid API key provided",403:"You exceeded your current quota",404:"Model not found",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"})[a]||"An error occurred",type:c.type,code:c.code}}}(a,b)),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a){let b="";try{let c=await a.text();try{let a=JSON.parse(c);b=a.error?.message||a.message||a.error||c}catch{b=c}}catch{b=`Upstream error: ${a.status}`}return{statusCode:a.status,message:"string"==typeof b?b:JSON.stringify(b)}}function g(a,b){return{success:!1,status:a,error:b,response:e(a,b)}}function h(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error";return`[${e}]: ${f}`}},38343:(a,b,c)=>{c.d(b,{h:()=>d});let d={OPENAI:"openai",OPENAI_RESPONSES:"openai-responses",OPENAI_RESPONSE:"openai-response",CLAUDE:"claude",GEMINI:"gemini",GEMINI_CLI:"gemini-cli",CODEX:"codex",ANTIGRAVITY:"antigravity"}},44836:(a,b,c)=>{c.d(b,{js:()=>e});let d={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter"};async function e(a,b){let c=function(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),e=a.slice(b+1);return{provider:d[c]||c,model:e,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let e="function"==typeof b?await b():b,f=function(a,b){var c,e;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:d[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:d[e=f.provider]||e,model:f.model}:null}(c.model,e);return f||{provider:"openai",model:c.model}}},57684:(a,b,c)=>{c.d(b,{SZ:()=>j,Tz:()=>e,e2:()=>h,jJ:()=>i,vA:()=>g});var d=c(74830);function e(a){if(a.input&&Array.isArray(a.input))return"openai-responses";if(a.contents&&Array.isArray(a.contents))return"gemini";if(a.stream_options||a.response_format||void 0!==a.logprobs||void 0!==a.top_logprobs||void 0!==a.n||void 0!==a.presence_penalty||void 0!==a.frequency_penalty||a.logit_bias||a.user)return"openai";if(a.messages&&Array.isArray(a.messages)){let b=a.messages[0];if(b?.content&&Array.isArray(b.content)){let c=b.content[0];if(c?.type==="text"&&!a.model?.includes("/")){if(a.system||a.anthropic_version)return"claude";let c=b.content.some(a=>"image"===a.type&&a.source?.type==="base64"),d=b.content.some(a=>"image_url"===a.type&&a.image_url?.url);if(c)return"claude";if(d)return"openai";if(b.content.some(a=>"tool_use"===a.type||"tool_result"===a.type))return"claude"}}if(void 0!==a.system||a.anthropic_version)return"claude"}return"openai"}function f(a){return d.xq[a]||d.xq.openai}function g(a,b,c=!0){let d=f(a);switch(a){case"claude":case"glm":case"kimi":case"minimax":return`${d.baseUrl}?beta=true`;case"gemini":return`${d.baseUrl}/${b}:${c?"streamGenerateContent?alt=sse":"generateContent"}`;case"gemini-cli":return`${d.baseUrl}:${c?"streamGenerateContent?alt=sse":"generateContent"}`;case"antigravity":{let a=d.baseUrls[0];return`${a}${c?"/v1internal:streamGenerateContent?alt=sse":"/v1internal:generateContent"}`}default:return d.baseUrl}}function h(a,b,c=!0,d=null){let e={"Content-Type":"application/json",...f(a).headers};switch(a){case"gemini":b.apiKey?e["x-goog-api-key"]=b.apiKey:b.accessToken&&(e.Authorization=`Bearer ${b.accessToken}`);break;case"antigravity":case"gemini-cli":e.Authorization=`Bearer ${b.accessToken}`;break;case"claude":b.apiKey?e["x-api-key"]=b.apiKey:b.accessToken&&(e.Authorization=`Bearer ${b.accessToken}`);break;case"github":let g=b.copilotToken||b.accessToken;e.Authorization=`Bearer ${g}`,e["Content-Type"]="application/json",e["copilot-integration-id"]="vscode-chat",e["editor-version"]="vscode/1.107.1",e["editor-plugin-version"]="copilot-chat/0.26.7",e["user-agent"]="GitHubCopilotChat/0.26.7",e["openai-intent"]="conversation-panel",e["x-github-api-version"]="2025-04-01",e["x-request-id"]=crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)}),e["x-vscode-user-agent-library-version"]="electron-fetch",e["X-Initiator"]="user",e.Accept="application/json";break;case"codex":case"qwen":case"openai":case"openrouter":default:e.Authorization=`Bearer ${b.apiKey||b.accessToken}`;break;case"glm":case"kimi":case"minimax":e["x-api-key"]=b.apiKey}return c&&(e.Accept="text/event-stream"),e}function i(a){return f(a).format||"openai"}function j(a){return!function(a){let b=a.messages||a.contents;if(!b?.length)return!0;let c=b[b.length-1];return c?.role==="user"}(a)&&(delete a.reasoning_effort,delete a.thinking),a}},71125:(a,b,c)=>{c.d(b,{$B:()=>o,iD:()=>n,oD:()=>e,qZ:()=>p,refreshCopilotToken:()=>m,refreshGitHubToken:()=>l});var d=c(74830);let e=3e5;async function f(a,b,c,e){let f=d.xq[a];if(!f||!f.refreshUrl)return e?.warn?.("TOKEN_REFRESH",`No refresh URL configured for provider: ${a}`),null;if(!b)return e?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;try{let c=await fetch(f.refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:b,client_id:f.clientId,client_secret:f.clientSecret})});if(!c.ok){let b=await c.text();return e?.error?.("TOKEN_REFRESH",`Failed to refresh token for ${a}`,{status:c.status,error:b}),null}let d=await c.json();return e?.info?.("TOKEN_REFRESH",`Successfully refreshed token for ${a}`,{hasNewAccessToken:!!d.access_token,hasNewRefreshToken:!!d.refresh_token,expiresIn:d.expires_in}),{accessToken:d.access_token,refreshToken:d.refresh_token||b,expiresIn:d.expires_in}}catch(b){return e?.error?.("TOKEN_REFRESH",`Error refreshing token for ${a}`,{error:b.message}),null}}async function g(a,b){let c=await fetch(d.NA.anthropic.token,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.claude.clientId})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Claude OAuth token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Claude OAuth token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function h(a,b,c,e){let f=await fetch(d.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:b,client_secret:c})});if(!f.ok){let a=await f.text();return e?.error?.("TOKEN_REFRESH","Failed to refresh Google token",{status:f.status,error:a}),null}let g=await f.json();return e?.info?.("TOKEN_REFRESH","Successfully refreshed Google token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async function i(a,b){let c=d.NA.qwen.token;try{let e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.qwen.clientId})});if(200===e.status){let c=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Qwen token",{hasNewAccessToken:!!c.access_token,hasNewRefreshToken:!!c.refresh_token,expiresIn:c.expires_in}),{accessToken:c.access_token,refreshToken:c.refresh_token||a,expiresIn:c.expires_in}}{let a=await e.text().catch(()=>"");b?.warn?.("TOKEN_REFRESH","Error with Qwen endpoint",{status:e.status,error:a})}}catch(a){b?.warn?.("TOKEN_REFRESH","Network error trying Qwen endpoint",{error:a.message})}return b?.error?.("TOKEN_REFRESH","Failed to refresh Qwen token"),null}async function j(a,b){let c=await fetch(d.NA.openai.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.codex.clientId,scope:"openid profile email offline_access"})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Codex token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Codex token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function k(a,b){let c=btoa(`${d.xq.iflow.clientId}:${d.xq.iflow.clientSecret}`),e=await fetch(d.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.iflow.clientId,client_secret:d.xq.iflow.clientSecret})});if(!e.ok){let a=await e.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh iFlow token",{status:e.status,error:a}),null}let f=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed iFlow token",{hasNewAccessToken:!!f.access_token,hasNewRefreshToken:!!f.refresh_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}async function l(a,b){let c=await fetch(d.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.github.clientId,client_secret:d.xq.github.clientSecret})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh GitHub token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed GitHub token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function m(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`Bearer ${a}`,"User-Agent":"GitHub-Copilot/1.0",Accept:"*/*"}});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:c.status,error:a}),null}let d=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!d.token,expiresAt:d.expires_at}),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}}async function n(a,b,c){if(!b||!b.refreshToken)return c?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;switch(a){case"gemini":case"gemini-cli":case"antigravity":return await h(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return await g(b.refreshToken,c);case"codex":return await j(b.refreshToken,c);case"qwen":return await i(b.refreshToken,c);case"iflow":return await k(b.refreshToken,c);case"github":return await l(b.refreshToken,c);default:return c?.warn?.("TOKEN_REFRESH",`Unsupported provider for token refresh: ${a}`),null}}async function o(a,b,c){if(!b.refreshToken)return null;switch(a){case"gemini-cli":case"antigravity":return h(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return g(b.refreshToken,c);case"codex":return j(b.refreshToken,c);case"qwen":return i(b.refreshToken,c);case"iflow":return k(b.refreshToken,c);case"github":return l(b.refreshToken,c);default:return f(a,b.refreshToken,b,c)}}async function p(a,b=3,c=null){for(let d=0;d<b;d++){if(d>0){let a=1e3*d;c?.debug?.("TOKEN_REFRESH",`Retry ${d}/${b} after ${a}ms`),await new Promise(b=>setTimeout(b,a))}try{let b=await a();if(b)return b}catch(a){c?.warn?.("TOKEN_REFRESH",`Attempt ${d+1}/${b} failed: ${a.message}`)}}return c?.error?.("TOKEN_REFRESH",`All ${b} retry attempts failed`),null}},71544:(a,b,c)=>{c.d(b,{AO:()=>g,hk:()=>f,vp:()=>h});var d=c(74830);function e(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function f(a,b,c=0){if(b){let a=b.toLowerCase();if(a.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed};if(a.includes("rate limit")||a.includes("too many requests")||a.includes("quota exceeded")||a.includes("capacity")||a.includes("overloaded")){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:e(c),newBackoffLevel:a}}}if(401===a)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized};if(402===a||403===a)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired};if(404===a)return{shouldFallback:!0,cooldownMs:d.Bm.notFound};if(429===a){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:e(c),newBackoffLevel:a}}return 408===a||500===a||502===a||503===a||504===a?{shouldFallback:!0,cooldownMs:d.Bm.transient}:{shouldFallback:!1,cooldownMs:0}}function g(a){return!!a&&new Date(a).getTime()>Date.now()}function h(a){return new Date(Date.now()+a).toISOString()}},74830:(a,b,c)=>{c.d(b,{Bm:()=>j,C8:()=>k,Co:()=>e,EQ:()=>i,NA:()=>f,Uc:()=>g,eo:()=>h,xq:()=>d});let d={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/1.0.83 (external, cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.3.0","X-Stainless-Package-Version":"0.55.1","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"60"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://console.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"codex",headers:{Version:"0.21.0","Openai-Beta":"responses=experimental","User-Agent":"codex_cli_rs/0.50.0 (Mac OS 26.0.1; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecret:"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",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},antigravity:{baseUrls:["https://daily-cloudcode-pa.sandbox.googleapis.com","https://cloudcode-pa.googleapis.com"],format:"antigravity",headers:{"User-Agent":"antigravity/1.11.5 windows/amd64"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},kimi:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"}}},e="You are Claude Code, Anthropic's official CLI for Claude.",f={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},g=64e3,h=32e3,i={base:1e3,max:18e5,maxLevel:15},j={unauthorized:18e5,paymentRequired:18e5,notFound:432e5,transient:3e4,requestNotAllowed:5e3,rateLimit:9e5,serviceUnavailable:6e4,authExpired:18e5},k=["Please write a 5-10 word title for the following conversation:"]},85809:(a,b,c)=>{c.d(b,{w:()=>x});var d=c(57684),e=c(88284),f=c(38343),g=c(5348),h=c(71125);let i="undefined"!=typeof process&&process.versions?.node&&!0,j="undefined"!=typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",k=null,l=null,m=null;async function n(){if(i&&j&&!k)try{k=await Promise.resolve().then(c.t.bind(c,29021,23)),m=(l=await Promise.resolve().then(c.t.bind(c,33873,23))).join("undefined"!=typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function o(a,b,c){if(await n(),!k||!m)return null;try{k.existsSync(m)||k.mkdirSync(m,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}${d}${e}_${f}${g}${h}`}(),e=c.replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,g=l.join(m,f);return k.mkdirSync(g,{recursive:!0}),g}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function p(a,b,c){if(k&&a)try{let d=l.join(a,b);k.writeFileSync(d,JSON.stringify(c,null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}function q(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=b[a];c&&c.length>20&&(b[a]=c.slice(0,10)+"..."+c.slice(-5))}}return b}async function r(a,b,c){if(!j)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logFormatInfo(){},logConvertedRequest(){},logRawResponse(){},logConvertedResponse(){},logStreamChunk(){},logStreamComplete(){},logError(){}};let d=await o(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){p(d,"0_client_raw_request.json",{timestamp:new Date().toISOString(),endpoint:a,headers:q(c),body:b})},logRawRequest(a,b={}){p(d,"1_raw_request.json",{timestamp:new Date().toISOString(),headers:q(b),body:a})},logFormatInfo(a){p(d,"1a_format_info.json",{timestamp:new Date().toISOString(),...a})},logConvertedRequest(a,b,c){p(d,"2_converted_request.json",{timestamp:new Date().toISOString(),url:a,headers:q(b),body:c})},logProviderResponse(a,b,c,e){p(d,"3_provider_response.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:c?"function"==typeof c.entries?Object.fromEntries(c.entries()):c:{},body:e})},appendProviderChunk(a){if(k&&d)try{let b=l.join(d,"3_provider_response.txt");k.appendFileSync(b,a)}catch(a){}},logConvertedResponse(a){p(d,"4_converted_response.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(k&&d)try{let b=l.join(d,"4_converted_response.txt");k.appendFileSync(b,a)}catch(a){}},logError(a,b=null){p(d,"5_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}var s=c(13348),t=c(33508),u=c(74830);function v(a){let b=`chatcmpl-${Date.now()}`;return{id:b,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:"CLI Command Execution: Clear Terminal"},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function w(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}async function x({body:a,modelInfo:b,credentials:i,log:j,onCredentialsRefreshed:k,onRequestSuccess:l,onDisconnect:m,clientRawRequest:n}){let o,{provider:p,model:q}=b,x=(0,d.Tz)(a),y=function(a,b){let c=a.messages;if(!c?.length)return null;let h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",i=!1,j=h(c[0]?.content);if("Warmup"===j&&(i=!0),i||1!==c.length||c[0]?.role!=="user"||"count"!==j||(i=!0),!i&&u.C8?.length){let a=c.map(a=>h(a.content)).join(" ");i=u.C8.some(b=>a.includes(b))}if(!i)return null;let k=(0,d.Tz)(a);return!1!==a.stream?function(a,b){let c=v(b),d=(0,e.Ws)(a);d.model=b;let h=w(c),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,d);if(c?.length>0)for(let b of c)i.push((0,g.v8)(b,a))}let j=(0,e.Y8)(f.h.OPENAI,a,null,d);if(j?.length>0)for(let b of j)i.push((0,g.v8)(b,a));return i.push("data: [DONE]\n\n"),{success:!0,response:new Response(i.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}(k,b):function(a,b){let c=v(b);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let d=(0,e.Ws)(a);d.model=b;let g=w(c),h=[];for(let b of g){let c=(0,e.Y8)(f.h.OPENAI,a,b,d);c?.length>0&&h.push(...c)}let i=(0,e.Y8)(f.h.OPENAI,a,null,d);return i?.length>0&&h.push(...i),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return v("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);d?.message&&(c=d.message,b?.usage&&(c.usage=b.usage))}return c}(h,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}(k,b)}(a,q);if(y)return y;let z=s.Xg[p]||p,A=(0,s.ux)(z,q)||(0,d.jJ)(p),B=!1!==a.stream,C=await r(x,A,q);n&&C.logClientRawRequest(n.endpoint,n.body,n.headers),C.logRawRequest(a),C.logFormatInfo({sourceFormat:x,targetFormat:A,provider:p,model:q,stream:B}),j?.debug?.("FORMAT",`${x} → ${A} | stream=${B}`);let D=a;(D=(0,e.GH)(x,A,q,a,B,i,p)).model=q;let E=(0,d.vA)(p,q,B),F=(0,d.e2)(p,i,B,D);C.logConvertedRequest(E,F,D);let G=D.messages?.length||D.contents?.length||D.request?.contents?.length||0;j?.debug?.("REQUEST",`${p.toUpperCase()} | ${q} | ${G} msgs`);let H={};for(let[a,b]of Object.entries(F))a.toLowerCase().includes("auth")||a.toLowerCase().includes("key")||a.toLowerCase().includes("token")?H[a]=b?`${b.slice(0,10)}...`:"":H[a]=b;j?.debug?.("HEADERS",JSON.stringify(H));let I=function({onDisconnect:a,log:b,provider:c,model:d}={}){let e=new AbortController,f=Date.now(),g=!1,h=null,i=a=>{let b=Date.now()-f,e=c?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 🌊 [STREAM] ${e} | ${d||"unknown"} | ${b}ms | ${a}`)};return{signal:e.signal,startTime:f,isConnected:()=>!g,handleDisconnect:(b="client_closed")=>{g||(g=!0,i(`disconnect: ${b}`),h=setTimeout(()=>{e.abort()},500),a?.({reason:b,duration:Date.now()-f}))},handleComplete:()=>{!g&&(g=!0,i("complete"),h&&(clearTimeout(h),h=null))},handleError:a=>{if(h&&(clearTimeout(h),h=null),"AbortError"===a.name)return void i("aborted");i(`error: ${a.message}`)},abort:()=>e.abort()}}({onDisconnect:m,log:j,provider:p,model:q});try{o=await fetch(E,{method:"POST",headers:F,body:JSON.stringify(D),signal:I.signal})}catch(b){if("AbortError"===b.name)return I.handleError(b),(0,t.A1)(499,"Request aborted");let a=(0,t.lR)(b,p,q,502);return console.log(`${g.lm.red}[ERROR] ${a}${g.lm.reset}`),(0,t.A1)(502,a)}if(401===o.status||403===o.status){let a=null;if("github"===p){let{refreshCopilotToken:b,refreshGitHubToken:d}=await Promise.resolve().then(c.bind(c,71125)),e=await b(i.accessToken,j);if(!e&&i.refreshToken){let a=await d(i.refreshToken,j);a?.accessToken&&(i.accessToken=a.accessToken,a.refreshToken&&(i.refreshToken=a.refreshToken),e=await b(a.accessToken,j))}e?.token&&(i.copilotToken=e.token,a={accessToken:i.accessToken,refreshToken:i.refreshToken,providerSpecificData:{...i.providerSpecificData,copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt}},j?.info?.("TOKEN",`${p.toUpperCase()} | copilotToken refreshed`))}else a=await (0,h.qZ)(()=>(0,h.$B)(p,i,j),3,j);if(a?.accessToken||"github"===p&&i.copilotToken){a?.accessToken&&(j?.info?.("TOKEN",`${p.toUpperCase()} | refreshed`),i.accessToken=a.accessToken),a?.refreshToken&&(i.refreshToken=a.refreshToken),a?.providerSpecificData&&(i.providerSpecificData={...i.providerSpecificData,...a.providerSpecificData}),k&&a&&await k(a);let b=(0,d.e2)(p,i,B,D),c=await fetch(E,{method:"POST",headers:b,body:JSON.stringify(D),signal:I.signal});c.ok&&(o=c)}else j?.warn?.("TOKEN",`${p.toUpperCase()} | refresh failed`)}if(!o.ok){let{statusCode:a,message:b}=await (0,t.zL)(o),c=(0,t.lR)(Error(b),p,q,a);return console.log(`${g.lm.red}[ERROR] ${c}${g.lm.reset}`),C.logError(Error(b),D),(0,t.A1)(a,c)}if(!B){let a=await o.json();return l&&await l(),{success:!0,response:new Response(JSON.stringify(a),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}return l&&await l(),{success:!0,response:new Response(function(a,b,c){var d={readable:a.body.pipeThrough(b),writable:{getWriter:()=>({abort:()=>{}})}};let e=d.readable.getReader(),f=d.writable.getWriter();return new ReadableStream({async pull(a){if(!c.isConnected())return void a.close();try{let{done:b,value:d}=await e.read();if(b){c.handleComplete(),a.close();return}a.enqueue(d)}catch(b){c.handleError(b),a.error(b)}},cancel(a){c.handleDisconnect(a||"cancelled"),e.cancel(),f.abort()}})}(o,(0,e.nZ)(A,x)?(0,g.i5)(A,x,p,C):(0,g.l2)(p,C),I),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}},88284:(a,b,c)=>{c.d(b,{Ws:()=>n,Ai:()=>o,nZ:()=>m,kz:()=>j,GH:()=>k,Y8:()=>l});var d=c(38343),e=c(18150);let f=["text","image_url","image"];var g=c(57684);let h=new Map,i=new Map;function j(a,b,c,d){let e=`${a}:${b}`;c&&h.set(e,c),d&&i.set(e,d)}function k(a,b,c,i,j=!0,l=null,m=null){let n=i;if((0,g.SZ)(n),!function(a){if(a.messages&&Array.isArray(a.messages)){for(let b of a.messages)if("assistant"===b.role&&b.tool_calls&&Array.isArray(b.tool_calls))for(let a of b.tool_calls)a.id||(a.id=`call_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`),a.type||(a.type="function"),a.function?.arguments&&"string"!=typeof a.function.arguments&&(a.function.arguments=JSON.stringify(a.function.arguments))}}(n),!function(a){if(!a.messages||!Array.isArray(a.messages))return;let b=[];for(let c=0;c<a.messages.length;c++){let d=a.messages[c],e=a.messages[c+1];b.push(d);let f=function(a){if("assistant"!==a.role)return[];let b=[];if(a.tool_calls&&Array.isArray(a.tool_calls))for(let c of a.tool_calls)c.id&&b.push(c.id);if(Array.isArray(a.content))for(let c of a.content)"tool_use"===c.type&&c.id&&b.push(c.id);return b}(d);if(0!==f.length&&e&&!function(a,b){if(!a||!b.length)return!1;if("tool"===a.role&&a.tool_call_id)return b.includes(a.tool_call_id);if("user"===a.role&&Array.isArray(a.content)){for(let c of a.content)if("tool_result"===c.type&&b.includes(c.tool_use_id))return!0}return!1}(e,f))for(let a of f)b.push({role:"tool",tool_call_id:a,content:""})}a.messages=b}(n),a!==b){var o;if(a!==d.h.OPENAI){let b=h.get(`${a}:${d.h.OPENAI}`);b&&(n=b(c,n,j,l))}if(b===d.h.OPENAI&&((o=n).messages&&Array.isArray(o.messages)&&(o.messages=o.messages.map(a=>{if("tool"===a.role||"assistant"===a.role&&a.tool_calls||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=[];for(let c of a.content)if("thinking"!==c.type&&"redacted_thinking"!==c.type){if(f.includes(c.type)){let{signature:a,cache_control:d,...e}=c;b.push(e)}else if("tool_use"===c.type)continue;else if("tool_result"===c.type){let{signature:a,cache_control:d,...e}=c;b.push(e)}}return 0===b.length&&b.push({type:"text",text:""}),{...a,content:b}}return a}),o.messages=o.messages.filter(a=>"tool"===a.role||"assistant"===a.role&&!!a.tool_calls||("string"==typeof a.content?""!==a.content.trim():!Array.isArray(a.content)||a.content.some(a=>"text"===a.type&&a.text?.trim()||"text"!==a.type))),o.tools&&Array.isArray(o.tools)&&0===o.tools.length&&delete o.tools),n=o),b!==d.h.OPENAI){let a=h.get(`${d.h.OPENAI}:${b}`);a&&(n=a(c,n,j,l))}}return b===d.h.CLAUDE&&(n=function(a,b=null){if(a.system&&Array.isArray(a.system)&&(a.system=a.system.map((b,c)=>{let{cache_control:d,...e}=b;return c===a.system.length-1?{...e,cache_control:{type:"ephemeral",ttl:"1h"}}:e})),a.messages&&Array.isArray(a.messages)){let c=a.messages.length,d=[];for(let b=0;b<c;b++){let e=a.messages[b];if(Array.isArray(e.content))for(let a of e.content)delete a.cache_control;(b===c-1&&"assistant"===e.role||"string"==typeof e.content&&e.content.trim()||Array.isArray(e.content)&&e.content.some(a=>"text"===a.type&&a.text?.trim()||"tool_use"===a.type||"tool_result"===a.type))&&d.push(e)}a.messages=d=function(a){if(a.length<=1)return a;for(let b of a)if("assistant"===b.role&&Array.isArray(b.content)&&b.content.some(a=>"tool_use"===a.type)){let a=[],c=!1;for(let d of b.content)"tool_use"===d.type?(c=!0,a.push(d)):"thinking"===d.type||"redacted_thinking"===d.type?a.push(d):c||a.push(d);b.content=a}let b=[];for(let c of a){let a=b[b.length-1];if(a&&a.role===c.role){let b=Array.isArray(a.content)?a.content:[{type:"text",text:a.content}],d=Array.isArray(c.content)?c.content:[{type:"text",text:c.content}];a.content=[...b.filter(a=>"tool_result"===a.type),...d.filter(a=>"tool_result"===a.type),...b.filter(a=>"tool_result"!==a.type),...d.filter(a=>"tool_result"!==a.type)]}else{let a=Array.isArray(c.content)?c.content:[{type:"text",text:c.content}];b.push({role:c.role,content:[...a]})}}return b}(d);let f=d[d.length-1],g=f?.role==="user",h=a.thinking?.type==="enabled"&&g,i=!1;for(let a=d.length-1;a>=0;a--){let c=d[a];if("assistant"===c.role&&Array.isArray(c.content)&&(!i&&c.content.length>0&&(c.content[c.content.length-1].cache_control={type:"ephemeral"},i=!0),"claude"===b)){let a=!1,b=!1;for(let d of c.content)("thinking"===d.type||"redacted_thinking"===d.type)&&(d.signature=e.xr,b=!0),"tool_use"===d.type&&(a=!0);h&&!b&&a&&c.content.unshift({type:"thinking",thinking:".",signature:e.xr})}}}return a.tools&&Array.isArray(a.tools)&&(a.tools=a.tools.map((b,c)=>{let{cache_control:d,...e}=b;return c===a.tools.length-1?{...e,cache_control:{type:"ephemeral",ttl:"1h"}}:e})),a}(n,m)),n}function l(a,b,c,e){if(b===a)return[c];let f=[c];if(a!==d.h.OPENAI){let b=i.get(`${a}:${d.h.OPENAI}`);if(b){f=[];let a=b(c,e);a&&(f=Array.isArray(a)?a:[a])}}if(b!==d.h.OPENAI){let a=i.get(`${d.h.OPENAI}:${b}`);if(a){let b=[];for(let c of f){let d=a(c,e);d&&b.push(...Array.isArray(d)?d:[d])}f=b}}return f}function m(a,b){return a!==b}function n(a){let b={messageId:null,model:null,textBlockStarted:!1,thinkingBlockStarted:!1,inThinkingBlock:!1,currentBlockIndex:null,toolCalls:new Map,finishReason:null,finishReasonSent:!1,usage:null,contentBlockIndex:-1};return a===d.h.OPENAI_RESPONSES?{...b,seq:0,responseId:`resp_${Date.now()}`,created:Math.floor(Date.now()/1e3),started:!1,msgTextBuf:{},msgItemAdded:{},msgContentAdded:{},msgItemDone:{},reasoningId:"",reasoningIndex:-1,reasoningBuf:"",reasoningPartAdded:!1,reasoningDone:!1,inThinking:!1,funcArgsBuf:{},funcNames:{},funcCallIds:{},funcArgsDone:{},funcItemDone:{},completedSent:!1}:b}async function o(){await c.e(7374).then(c.bind(c,87374)),await c.e(6367).then(c.bind(c,46367)),await c.e(6814).then(c.bind(c,66814)),await c.e(3563).then(c.bind(c,53563)),await c.e(5587).then(c.bind(c,35587)),await c.e(8611).then(c.bind(c,10992)),await c.e(1178).then(c.bind(c,81178))}}};
|
|
9
|
+
`}let k={TRANSLATE:"translate",PASSTHROUGH:"passthrough"};function l(a={}){let{mode:b=k.TRANSLATE,targetFormat:c,sourceFormat:e,provider:g=null,reqLogger:m=null}=a,n=new TextDecoder,o=new TextEncoder,p="",q=null,r=b===k.TRANSLATE?{...(0,d.Ws)(e),provider:g}:null;return new TransformStream({transform(a,g){let h=n.decode(a,{stream:!0});p+=h,m?.appendProviderChunk?.(h);let l=p.split("\n");for(let a of(p=l.pop()||"",l)){let h=a.trim();if(b===k.PASSTHROUGH){let b;if(h.startsWith("data:")&&"[DONE]"!==h.slice(5).trim())try{let a=JSON.parse(h.slice(5).trim()),b=f(a);b&&(q=b)}catch{}b=a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5)+"\n":a+"\n",m?.appendConvertedChunk?.(b),g.enqueue(o.encode(b));continue}if(!h)continue;let l=i(h);if(!l)continue;if(l.done){let a="data: [DONE]\n\n";m?.appendConvertedChunk?.(a),g.enqueue(o.encode(a));continue}let n=f(l);n&&(r.usage=n);let p=(0,d.Y8)(c,e,l,r);if(p?.length>0)for(let a of p){let b=j(a,e);m?.appendConvertedChunk?.(b),g.enqueue(o.encode(b))}}},flush(a){try{let f=n.decode();if(f&&(p+=f),b===k.PASSTHROUGH){if(p){let b=p;p.startsWith("data:")&&!p.startsWith("data: ")&&(b="data: "+p.slice(5)),m?.appendConvertedChunk?.(b),a.enqueue(o.encode(b))}q&&h(g,q);return}if(p.trim()){let b=i(p.trim());if(b&&!b.done){let f=(0,d.Y8)(c,e,b,r);if(f?.length>0)for(let b of f){let c=j(b,e);m?.appendConvertedChunk?.(c),a.enqueue(o.encode(c))}}}let l=(0,d.Y8)(c,e,null,r);if(l?.length>0)for(let b of l){let c=j(b,e);m?.appendConvertedChunk?.(c),a.enqueue(o.encode(c))}let s="data: [DONE]\n\n";m?.appendConvertedChunk?.(s),a.enqueue(o.encode(s)),r?.usage&&h(r.provider||c,r.usage)}catch(a){console.log("Error in flush:",a)}}})}function m(a,b,c=null,d=null){return l({mode:k.TRANSLATE,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d})}function n(a=null,b=null){return l({mode:k.PASSTHROUGH,provider:a,reqLogger:b})}},13348:(a,b,c)=>{c.d(b,{Xg:()=>f,ux:()=>e,vq:()=>d});let d={cc:[{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3.2-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-v3.2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"minimax-m2",name:"MiniMax M2"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.7",name:"GLM 4.7"}],ag:[{id:"gemini-3-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 "},{id:"claude-sonnet-4-5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-opus-4-5-thinking",name:"Claude Opus 4.5"}],gh:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"gemini-3-pro",name:"Gemini 3 Pro"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"}],openai:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],openrouter:[{id:"auto",name:"Auto (Best Available)"}],glm:[{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],kimi:[{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]};function e(a,b){let c=d[a];if(!c)return null;let e=c.find(a=>a.id===b);return e?.targetFormat||null}let f={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax"}},18150:(a,b,c)=>{c.d(b,{xr:()=>d,yV:()=>e});let d="EpwGCkYIChgCKkCzVUuRrg7CcglSUWEef4rH6o35g9UYS8ZPe0/VomQTBsFx6sttYNj5l8GqgW6ejuHyYqpFToxIbZl0bw17l5dJEgzCnqDO0Z8fRlMrNgsaDLS1cnCjC53KBqE0CCIwAADQdo1eO+7qPAmo8J4WR3JPmr92S97kmvr5K1iPMiOpkZNj8mEXW8uzBoOJs/9ZKoMFiqHJ3UObwaJDqFOW70E9oCwDoc6jesaWVAEdN5vWfKMpIkjFJjECdjIdkxyJNJ8Ib8yXVal3qwE7uThoPRqSZDdHB5mmwPEjWE/90cSYCbtX2YsJki1265CabBb8/QEkODXg4kgRrL+c8e8rRXz/dr1RswvaPuzEdGKHRNi9UooNUeOK4/ebx1KkP9YZttyohN9GWqlts36kOoW0Cfie/ABDgF9g534BPth/sstxDM6d79QlRmh6NxizyTF74DXJI34u0M4tTRchqE5pAq85SgdJaa+dix1yJPMji8m6nZkwJbscJb9rdc2MKyKWjz8QL2+rTSSuZ2F1k1qSsW0xNcI7qLcI12Vncfn/VqY6YOIZy/saZBR0ezXvN6g+UYbuIdyVg7AyIFZt3nbrO7/kmOEb2VKzygwklHGEIJHfFgMpH3JSrAzbZIowVHOF7VaJ+KXRFDCFin7hHTOiOsdg+1ij1mML9Z/x/9CP4b7OUcaQm1llDZPSHc6rZMNL3DdB+fW5YfmNgKU35S+7AMtA10nVILzDAk1UV4T2K9Do09JlI6rjOs9UuULlIN2Z0eE8YTlANR6uQcw7lMcdfqYE8tke4rDKc2dDiaS5vVe45VewICNpdXGN11yw8QqH7p27CR1HtN30e0tHXOR3bIwWk/Yb6O5fTaKG6Ri8e5ZCPvdD9HqepVi188nM0iTjJqL58F3ni04ECIhcbyaQWnuTes1Kw4CMwiZDLQkk8Hgz7HkUOf1btQTF/0nhD7ry0n0hAEg2PaDM3V6TjOjf4hEldRmeqERcQF1PfgKb6ZM12rlIIfUqKACczWJSzTV158+47HX36o0cgux6nFlv/DE+sEiRVxgB",e="EuwGCukGAXLI2nxwZIq54WWSoL/YN0P3TsDZ7zRnLi8g0S4aVr2HUGxvaHKySuY6HAVzcE0GPGjXrytLIldxthSvfxgUlJh6Qa9Z+Oj5QZBlYdg6HaJ6yuY5R7waE6rdwBsRf7Ft2j3DJ9rMi9qhWFqApewYtPhls3VHtuvND3l8Rm09+lbAXQs6KKWEWrxNLKTBkfpMgXhRERc/TQRMZu1twAablm6/Zk1tsYRvfWKLsNbeKF+CCojJdXJKvnR/8Ouuoa+Y2Ti20hcW7aZIIjZDFYPU//k6Ybmhg69J/imbFai2ckhfLaisqdDkdoIiBJScTOUvYqP6AE9d4MsydSC+UlhIMk4hoP76R8vUSCZRMkjOaDXstf/QoVZKbt94wyRZgAJ1G0BqI8L5ow86kLpA4wJEtxsRGymOE4bKUvApveBakYDNM9APkf+LbtbzWSseGjoZcSlycF9iN8Q2XNYKRrHbv3Lr5Y8JjdH/5y/6SHkNehTEZugaeGnSPSyCTWto1kQgHpxdWmhkLfJGNUGLmue7Mesj4TSms4J33mRpYVhNB/J333FCqIP0hr/E7BkkjEn7yZ4X7SQlh+xKPurapsnHRwiKmtsilmEFrnTE9iQr+pMr6M29qqFNv1tr5yumbaJw8JW9sB15tNsRv+dW6BjNanbsKz7HCgKUBc8tGy+7YuhXzAfViyRefcjK7eZW0Fbyt7AbybJTKz78W8NH7ye6LAwzOebXpeZ4D43fNIt8bKh26qgduSQv/7o+pAflkuqHZ99YWgHQ8h8OkZFi3eOiSYjsjhdZ/czWOdoPI/OnqIldzMPF5YlrKBLFX8VhRKVmqgsmWf5PHGulHhMkVlS+XG2UIseGy69ARa93D78Gsa+1n1kJr7EEB7Rh+27vUMxVYLdz1yMSvE5nalTAlg/ZeG8+XQ0cHuAI3KbQpHW2Q++RdXfm5JzD5WdJZUU+Zn8t8UUn85BH4RxZLeE0qJikgSsKoYVBc6YhiMjhPgkR95ReimY4Z0xCJdRo1gjexOFeODZMpQF6Yxnoic7IrdgsFA3iePTbFnPp3IAM1fAThWhXJUn3QInUOTd5o1qmTmn6REbL15g/JQNl+dqUoPkhleeb2V3kjqp1okmO3wMZbPknR3S1LZNmlS72/iBQUm+n2b/RCn4PjmM2"},33508:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>h,yj:()=>e,zL:()=>f});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}};function e(a,b){return new Response(JSON.stringify(function(a,b){let c=d[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""});return{error:{message:b||({400:"Bad request",401:"Invalid API key provided",403:"You exceeded your current quota",404:"Model not found",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"})[a]||"An error occurred",type:c.type,code:c.code}}}(a,b)),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a){let b="";try{let c=await a.text();try{let a=JSON.parse(c);b=a.error?.message||a.message||a.error||c}catch{b=c}}catch{b=`Upstream error: ${a.status}`}return{statusCode:a.status,message:"string"==typeof b?b:JSON.stringify(b)}}function g(a,b){return{success:!1,status:a,error:b,response:e(a,b)}}function h(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error";return`[${e}]: ${f}`}},38343:(a,b,c)=>{c.d(b,{h:()=>d});let d={OPENAI:"openai",OPENAI_RESPONSES:"openai-responses",OPENAI_RESPONSE:"openai-response",CLAUDE:"claude",GEMINI:"gemini",GEMINI_CLI:"gemini-cli",CODEX:"codex",ANTIGRAVITY:"antigravity"}},44836:(a,b,c)=>{c.d(b,{js:()=>e});let d={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter"};async function e(a,b){let c=function(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),e=a.slice(b+1);return{provider:d[c]||c,model:e,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let e="function"==typeof b?await b():b,f=function(a,b){var c,e;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:d[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:d[e=f.provider]||e,model:f.model}:null}(c.model,e);return f||{provider:"openai",model:c.model}}},57684:(a,b,c)=>{c.d(b,{SZ:()=>j,Tz:()=>e,e2:()=>h,jJ:()=>i,vA:()=>g});var d=c(74830);function e(a){if(a.input&&Array.isArray(a.input))return"openai-responses";if(a.contents&&Array.isArray(a.contents))return"gemini";if(a.stream_options||a.response_format||void 0!==a.logprobs||void 0!==a.top_logprobs||void 0!==a.n||void 0!==a.presence_penalty||void 0!==a.frequency_penalty||a.logit_bias||a.user)return"openai";if(a.messages&&Array.isArray(a.messages)){let b=a.messages[0];if(b?.content&&Array.isArray(b.content)){let c=b.content[0];if(c?.type==="text"&&!a.model?.includes("/")){if(a.system||a.anthropic_version)return"claude";let c=b.content.some(a=>"image"===a.type&&a.source?.type==="base64"),d=b.content.some(a=>"image_url"===a.type&&a.image_url?.url);if(c)return"claude";if(d)return"openai";if(b.content.some(a=>"tool_use"===a.type||"tool_result"===a.type))return"claude"}}if(void 0!==a.system||a.anthropic_version)return"claude"}return"openai"}function f(a){return d.xq[a]||d.xq.openai}function g(a,b,c=!0){let d=f(a);switch(a){case"claude":case"glm":case"kimi":case"minimax":return`${d.baseUrl}?beta=true`;case"gemini":return`${d.baseUrl}/${b}:${c?"streamGenerateContent?alt=sse":"generateContent"}`;case"gemini-cli":return`${d.baseUrl}:${c?"streamGenerateContent?alt=sse":"generateContent"}`;case"antigravity":{let a=d.baseUrls[0];return`${a}${c?"/v1internal:streamGenerateContent?alt=sse":"/v1internal:generateContent"}`}default:return d.baseUrl}}function h(a,b,c=!0,d=null){let e={"Content-Type":"application/json",...f(a).headers};switch(a){case"gemini":b.apiKey?e["x-goog-api-key"]=b.apiKey:b.accessToken&&(e.Authorization=`Bearer ${b.accessToken}`);break;case"antigravity":case"gemini-cli":e.Authorization=`Bearer ${b.accessToken}`;break;case"claude":b.apiKey?e["x-api-key"]=b.apiKey:b.accessToken&&(e.Authorization=`Bearer ${b.accessToken}`);break;case"github":let g=b.copilotToken||b.accessToken;e.Authorization=`Bearer ${g}`,e["Content-Type"]="application/json",e["copilot-integration-id"]="vscode-chat",e["editor-version"]="vscode/1.107.1",e["editor-plugin-version"]="copilot-chat/0.26.7",e["user-agent"]="GitHubCopilotChat/0.26.7",e["openai-intent"]="conversation-panel",e["x-github-api-version"]="2025-04-01",e["x-request-id"]=crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)}),e["x-vscode-user-agent-library-version"]="electron-fetch",e["X-Initiator"]="user",e.Accept="application/json";break;case"codex":case"qwen":case"openai":case"openrouter":default:e.Authorization=`Bearer ${b.apiKey||b.accessToken}`;break;case"glm":case"kimi":case"minimax":e["x-api-key"]=b.apiKey}return c&&(e.Accept="text/event-stream"),e}function i(a){return f(a).format||"openai"}function j(a){return!function(a){let b=a.messages||a.contents;if(!b?.length)return!0;let c=b[b.length-1];return c?.role==="user"}(a)&&(delete a.reasoning_effort,delete a.thinking),a}},71125:(a,b,c)=>{c.d(b,{$B:()=>o,iD:()=>n,oD:()=>e,qZ:()=>p,refreshCopilotToken:()=>m,refreshGitHubToken:()=>l});var d=c(74830);let e=3e5;async function f(a,b,c,e){let f=d.xq[a];if(!f||!f.refreshUrl)return e?.warn?.("TOKEN_REFRESH",`No refresh URL configured for provider: ${a}`),null;if(!b)return e?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;try{let c=await fetch(f.refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:b,client_id:f.clientId,client_secret:f.clientSecret})});if(!c.ok){let b=await c.text();return e?.error?.("TOKEN_REFRESH",`Failed to refresh token for ${a}`,{status:c.status,error:b}),null}let d=await c.json();return e?.info?.("TOKEN_REFRESH",`Successfully refreshed token for ${a}`,{hasNewAccessToken:!!d.access_token,hasNewRefreshToken:!!d.refresh_token,expiresIn:d.expires_in}),{accessToken:d.access_token,refreshToken:d.refresh_token||b,expiresIn:d.expires_in}}catch(b){return e?.error?.("TOKEN_REFRESH",`Error refreshing token for ${a}`,{error:b.message}),null}}async function g(a,b){let c=await fetch(d.NA.anthropic.token,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.claude.clientId})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Claude OAuth token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Claude OAuth token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function h(a,b,c,e){let f=await fetch(d.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:b,client_secret:c})});if(!f.ok){let a=await f.text();return e?.error?.("TOKEN_REFRESH","Failed to refresh Google token",{status:f.status,error:a}),null}let g=await f.json();return e?.info?.("TOKEN_REFRESH","Successfully refreshed Google token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async function i(a,b){let c=d.NA.qwen.token;try{let e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.qwen.clientId})});if(200===e.status){let c=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Qwen token",{hasNewAccessToken:!!c.access_token,hasNewRefreshToken:!!c.refresh_token,expiresIn:c.expires_in}),{accessToken:c.access_token,refreshToken:c.refresh_token||a,expiresIn:c.expires_in}}{let a=await e.text().catch(()=>"");b?.warn?.("TOKEN_REFRESH","Error with Qwen endpoint",{status:e.status,error:a})}}catch(a){b?.warn?.("TOKEN_REFRESH","Network error trying Qwen endpoint",{error:a.message})}return b?.error?.("TOKEN_REFRESH","Failed to refresh Qwen token"),null}async function j(a,b){let c=await fetch(d.NA.openai.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.codex.clientId,scope:"openid profile email offline_access"})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Codex token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Codex token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function k(a,b){let c=btoa(`${d.xq.iflow.clientId}:${d.xq.iflow.clientSecret}`),e=await fetch(d.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.iflow.clientId,client_secret:d.xq.iflow.clientSecret})});if(!e.ok){let a=await e.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh iFlow token",{status:e.status,error:a}),null}let f=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed iFlow token",{hasNewAccessToken:!!f.access_token,hasNewRefreshToken:!!f.refresh_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}async function l(a,b){let c=await fetch(d.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.github.clientId,client_secret:d.xq.github.clientSecret})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh GitHub token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed GitHub token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function m(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`Bearer ${a}`,"User-Agent":"GitHub-Copilot/1.0",Accept:"*/*"}});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:c.status,error:a}),null}let d=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!d.token,expiresAt:d.expires_at}),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}}async function n(a,b,c){if(!b||!b.refreshToken)return c?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;switch(a){case"gemini":case"gemini-cli":case"antigravity":return await h(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return await g(b.refreshToken,c);case"codex":return await j(b.refreshToken,c);case"qwen":return await i(b.refreshToken,c);case"iflow":return await k(b.refreshToken,c);case"github":return await l(b.refreshToken,c);default:return c?.warn?.("TOKEN_REFRESH",`Unsupported provider for token refresh: ${a}`),null}}async function o(a,b,c){if(!b.refreshToken)return null;switch(a){case"gemini-cli":case"antigravity":return h(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return g(b.refreshToken,c);case"codex":return j(b.refreshToken,c);case"qwen":return i(b.refreshToken,c);case"iflow":return k(b.refreshToken,c);case"github":return l(b.refreshToken,c);default:return f(a,b.refreshToken,b,c)}}async function p(a,b=3,c=null){for(let d=0;d<b;d++){if(d>0){let a=1e3*d;c?.debug?.("TOKEN_REFRESH",`Retry ${d}/${b} after ${a}ms`),await new Promise(b=>setTimeout(b,a))}try{let b=await a();if(b)return b}catch(a){c?.warn?.("TOKEN_REFRESH",`Attempt ${d+1}/${b} failed: ${a.message}`)}}return c?.error?.("TOKEN_REFRESH",`All ${b} retry attempts failed`),null}},71544:(a,b,c)=>{c.d(b,{AO:()=>g,hk:()=>f,vp:()=>h});var d=c(74830);function e(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function f(a,b,c=0){if(b){let a=b.toLowerCase();if(a.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed};if(a.includes("rate limit")||a.includes("too many requests")||a.includes("quota exceeded")||a.includes("capacity")||a.includes("overloaded")){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:e(c),newBackoffLevel:a}}}if(401===a)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized};if(402===a||403===a)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired};if(404===a)return{shouldFallback:!0,cooldownMs:d.Bm.notFound};if(429===a){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:e(c),newBackoffLevel:a}}return 408===a||500===a||502===a||503===a||504===a?{shouldFallback:!0,cooldownMs:d.Bm.transient}:{shouldFallback:!1,cooldownMs:0}}function g(a){return!!a&&new Date(a).getTime()>Date.now()}function h(a){return new Date(Date.now()+a).toISOString()}},74830:(a,b,c)=>{c.d(b,{Bm:()=>j,Co:()=>e,EQ:()=>i,NA:()=>f,Uc:()=>g,eo:()=>h,xq:()=>d});let d={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/1.0.83 (external, cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.3.0","X-Stainless-Package-Version":"0.55.1","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"60"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://console.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"codex",headers:{Version:"0.21.0","Openai-Beta":"responses=experimental","User-Agent":"codex_cli_rs/0.50.0 (Mac OS 26.0.1; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecret:"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",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},antigravity:{baseUrls:["https://daily-cloudcode-pa.sandbox.googleapis.com","https://cloudcode-pa.googleapis.com"],format:"antigravity",headers:{"User-Agent":"antigravity/1.11.5 windows/amd64"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},kimi:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"}}},e="You are Claude Code, Anthropic's official CLI for Claude.",f={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},g=64e3,h=32e3,i={base:1e3,max:18e5,maxLevel:15},j={unauthorized:18e5,paymentRequired:18e5,notFound:432e5,transient:3e4,requestNotAllowed:5e3,rateLimit:9e5,serviceUnavailable:6e4,authExpired:18e5}},75166:(a,b,c)=>{function d({onDisconnect:a,log:b,provider:c,model:e}={}){let f=new AbortController,g=Date.now(),h=!1,i=null,j=a=>{let b=Date.now()-g,d=c?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${d} | ${e||"unknown"} | ${b}ms | ${a}`)};return{signal:f.signal,startTime:g,isConnected:()=>!h,handleDisconnect:(b="client_closed")=>{h||(h=!0,j(`disconnect: ${b}`),i=setTimeout(()=>{f.abort()},500),a?.({reason:b,duration:Date.now()-g}))},handleComplete:()=>{!h&&(h=!0,j("complete"),i&&(clearTimeout(i),i=null))},handleError:a=>{if(i&&(clearTimeout(i),i=null),"AbortError"===a.name)return void j("aborted");j(`error: ${a.message}`)},abort:()=>f.abort()}}function e(a,b,c){var d={readable:a.body.pipeThrough(b),writable:{getWriter:()=>({abort:()=>{}})}};let e=d.readable.getReader(),f=d.writable.getWriter();return new ReadableStream({async pull(a){if(!c.isConnected())return void a.close();try{let{done:b,value:d}=await e.read();if(b){c.handleComplete(),a.close();return}a.enqueue(d)}catch(b){c.handleError(b),a.error(b)}},cancel(a){c.handleDisconnect(a||"cancelled"),e.cancel(),f.abort()}})}c.d(b,{Jb:()=>e,jd:()=>d})},84607:(a,b,c)=>{c.a(a,async(a,d)=>{try{let a,n;c.d(b,{w:()=>m});var e=c(57684),f=c(88284);c(38343);var g=c(5348),h=c(75166),i=c(71125),j=c(2671),k=c(13348),l=c(33508);c(84858);try{let b=await Promise.resolve().then(c.t.bind(c,81630,23)),d=await Promise.resolve().then(c.t.bind(c,55591,23));a=new b.Agent({keepAlive:!0,family:0,hints:0}),n=new d.Agent({keepAlive:!0,family:0,hints:0})}catch(b){a=null,n=null}async function m({body:b,modelInfo:d,credentials:m,log:o,onCredentialsRefreshed:p,onRequestSuccess:q,onDisconnect:r,clientRawRequest:s}){let t,u,{provider:v,model:w}=d,x=(0,e.Tz)(b),y=k.Xg[v]||v,z=(0,k.ux)(y,w)||(0,e.jJ)(v),A=!1!==b.stream,B=await (0,j.q7)(x,z,w);s&&B.logClientRawRequest(s.endpoint,s.body,s.headers),B.logRawRequest(b),B.logFormatInfo({sourceFormat:x,targetFormat:z,provider:v,model:w,stream:A}),o?.debug?.("FORMAT",`${x} → ${z} | stream=${A}`);let C=b;(C=(0,f.GH)(x,z,w,b,A,m,v)).model=w;let D=(0,e.vA)(v,w,A),E=(0,e.e2)(v,m,A,C);B.logConvertedRequest(D,E,C);let F=C.messages?.length||C.contents?.length||C.request?.contents?.length||0;o?.debug?.("REQUEST",`${v.toUpperCase()} | ${w} | ${F} msgs`);let G=(0,h.jd)({onDisconnect:r,log:o,provider:v,model:w});try{let b={method:"POST",headers:E,body:JSON.stringify(C),signal:G.signal};n&&D.startsWith("https://")?b.agent=n:a&&D.startsWith("http://")&&(b.agent=a),t=await fetch(D,b)}catch(b){if("AbortError"===b.name)return G.handleError(b),(0,l.A1)(499,"Request aborted");let a=(0,l.lR)(b,v,w,502);return console.log(`${g.lm.red}[ERROR] ${a}${g.lm.reset}`),(0,l.A1)(502,a)}if(401===t.status||403===t.status){let b=null;if("github"===v){let{refreshCopilotToken:a,refreshGitHubToken:d}=await Promise.resolve().then(c.bind(c,71125)),e=await a(m.accessToken,o);if(!e&&m.refreshToken){let b=await d(m.refreshToken,o);b?.accessToken&&(m.accessToken=b.accessToken,b.refreshToken&&(m.refreshToken=b.refreshToken),e=await a(b.accessToken,o))}e?.token&&(m.copilotToken=e.token,b={accessToken:m.accessToken,refreshToken:m.refreshToken,providerSpecificData:{...m.providerSpecificData,copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt}},o?.info?.("TOKEN",`${v.toUpperCase()} | copilotToken refreshed`))}else b=await (0,i.qZ)(()=>(0,i.$B)(v,m,o),3,o);if(b?.accessToken||"github"===v&&m.copilotToken){b?.accessToken&&(o?.info?.("TOKEN",`${v.toUpperCase()} | refreshed`),m.accessToken=b.accessToken),b?.refreshToken&&(m.refreshToken=b.refreshToken),b?.providerSpecificData&&(m.providerSpecificData={...m.providerSpecificData,...b.providerSpecificData}),p&&b&&await p(b);let c=(0,e.e2)(v,m,A,C),d={method:"POST",headers:c,body:JSON.stringify(C),signal:G.signal};n&&D.startsWith("https://")?d.agent=n:a&&D.startsWith("http://")&&(d.agent=a);let f=await fetch(D,d);f.ok&&(t=f)}else o?.warn?.("TOKEN",`${v.toUpperCase()} | refresh failed`)}if(!t.ok){let{statusCode:a,message:b}=await (0,l.zL)(t),c=(0,l.lR)(Error(b),v,w,a);return console.log(`${g.lm.red}[ERROR] ${c}${g.lm.reset}`),B.logError(Error(b),C),(0,l.A1)(a,c)}if(!A){let a=await t.json();return q&&await q(),{success:!0,response:new Response(JSON.stringify(a),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}q&&await q(),u=(0,f.nZ)(z,x)?(0,g.i5)(z,x,v,B):(0,g.l2)(v,B);let H=(0,h.Jb)(t,u,G);return{success:!0,response:new Response(H,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}d()}catch(a){d(a)}},1)},84858:(a,b,c)=>{c(57684),c(88284),c(38343),c(74830),c(5348)},88284:(a,b,c)=>{c.d(b,{Ws:()=>n,Ai:()=>o,nZ:()=>m,kz:()=>j,GH:()=>k,Y8:()=>l});var d=c(38343),e=c(18150);let f=["text","image_url","image"];var g=c(57684);let h=new Map,i=new Map;function j(a,b,c,d){let e=`${a}:${b}`;c&&h.set(e,c),d&&i.set(e,d)}function k(a,b,c,i,j=!0,l=null,m=null){let n=i;if((0,g.SZ)(n),!function(a){if(a.messages&&Array.isArray(a.messages)){for(let b of a.messages)if("assistant"===b.role&&b.tool_calls&&Array.isArray(b.tool_calls))for(let a of b.tool_calls)a.id||(a.id=`call_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`),a.type||(a.type="function"),a.function?.arguments&&"string"!=typeof a.function.arguments&&(a.function.arguments=JSON.stringify(a.function.arguments))}}(n),!function(a){if(!a.messages||!Array.isArray(a.messages))return;let b=[];for(let c=0;c<a.messages.length;c++){let d=a.messages[c],e=a.messages[c+1];b.push(d);let f=function(a){if("assistant"!==a.role)return[];let b=[];if(a.tool_calls&&Array.isArray(a.tool_calls))for(let c of a.tool_calls)c.id&&b.push(c.id);if(Array.isArray(a.content))for(let c of a.content)"tool_use"===c.type&&c.id&&b.push(c.id);return b}(d);if(0!==f.length&&e&&!function(a,b){if(!a||!b.length)return!1;if("tool"===a.role&&a.tool_call_id)return b.includes(a.tool_call_id);if("user"===a.role&&Array.isArray(a.content)){for(let c of a.content)if("tool_result"===c.type&&b.includes(c.tool_use_id))return!0}return!1}(e,f))for(let a of f)b.push({role:"tool",tool_call_id:a,content:""})}a.messages=b}(n),a!==b){var o;if(a!==d.h.OPENAI){let b=h.get(`${a}:${d.h.OPENAI}`);b&&(n=b(c,n,j,l))}if(b===d.h.OPENAI&&((o=n).messages&&Array.isArray(o.messages)&&(o.messages=o.messages.map(a=>{if("tool"===a.role||"assistant"===a.role&&a.tool_calls||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=[];for(let c of a.content)if("thinking"!==c.type&&"redacted_thinking"!==c.type){if(f.includes(c.type)){let{signature:a,cache_control:d,...e}=c;b.push(e)}else if("tool_use"===c.type)continue;else if("tool_result"===c.type){let{signature:a,cache_control:d,...e}=c;b.push(e)}}return 0===b.length&&b.push({type:"text",text:""}),{...a,content:b}}return a}),o.messages=o.messages.filter(a=>"tool"===a.role||"assistant"===a.role&&!!a.tool_calls||("string"==typeof a.content?""!==a.content.trim():!Array.isArray(a.content)||a.content.some(a=>"text"===a.type&&a.text?.trim()||"text"!==a.type))),o.tools&&Array.isArray(o.tools)&&0===o.tools.length&&delete o.tools),n=o),b!==d.h.OPENAI){let a=h.get(`${d.h.OPENAI}:${b}`);a&&(n=a(c,n,j,l))}}return b===d.h.CLAUDE&&(n=function(a,b=null){if(a.system&&Array.isArray(a.system)&&(a.system=a.system.map((b,c)=>{let{cache_control:d,...e}=b;return c===a.system.length-1?{...e,cache_control:{type:"ephemeral",ttl:"1h"}}:e})),a.messages&&Array.isArray(a.messages)){let c=a.messages.length,d=[];for(let b=0;b<c;b++){let e=a.messages[b];if(Array.isArray(e.content))for(let a of e.content)delete a.cache_control;(b===c-1&&"assistant"===e.role||"string"==typeof e.content&&e.content.trim()||Array.isArray(e.content)&&e.content.some(a=>"text"===a.type&&a.text?.trim()||"tool_use"===a.type||"tool_result"===a.type))&&d.push(e)}a.messages=d=function(a){if(a.length<=1)return a;for(let b of a)if("assistant"===b.role&&Array.isArray(b.content)&&b.content.some(a=>"tool_use"===a.type)){let a=[],c=!1;for(let d of b.content)"tool_use"===d.type?(c=!0,a.push(d)):"thinking"===d.type||"redacted_thinking"===d.type?a.push(d):c||a.push(d);b.content=a}let b=[];for(let c of a){let a=b[b.length-1];if(a&&a.role===c.role){let b=Array.isArray(a.content)?a.content:[{type:"text",text:a.content}],d=Array.isArray(c.content)?c.content:[{type:"text",text:c.content}];a.content=[...b.filter(a=>"tool_result"===a.type),...d.filter(a=>"tool_result"===a.type),...b.filter(a=>"tool_result"!==a.type),...d.filter(a=>"tool_result"!==a.type)]}else{let a=Array.isArray(c.content)?c.content:[{type:"text",text:c.content}];b.push({role:c.role,content:[...a]})}}return b}(d);let f=d[d.length-1],g=f?.role==="user",h=a.thinking?.type==="enabled"&&g,i=!1;for(let a=d.length-1;a>=0;a--){let c=d[a];if("assistant"===c.role&&Array.isArray(c.content)&&(!i&&c.content.length>0&&(c.content[c.content.length-1].cache_control={type:"ephemeral"},i=!0),"claude"===b)){let a=!1,b=!1;for(let d of c.content)("thinking"===d.type||"redacted_thinking"===d.type)&&(d.signature=e.xr,b=!0),"tool_use"===d.type&&(a=!0);h&&!b&&a&&c.content.unshift({type:"thinking",thinking:".",signature:e.xr})}}}return a.tools&&Array.isArray(a.tools)&&(a.tools=a.tools.map((b,c)=>{let{cache_control:d,...e}=b;return c===a.tools.length-1?{...e,cache_control:{type:"ephemeral",ttl:"1h"}}:e})),a}(n,m)),n}function l(a,b,c,e){if(b===a)return[c];let f=[c];if(a!==d.h.OPENAI){let b=i.get(`${a}:${d.h.OPENAI}`);if(b){f=[];let a=b(c,e);a&&(f=Array.isArray(a)?a:[a])}}if(b!==d.h.OPENAI){let a=i.get(`${d.h.OPENAI}:${b}`);if(a){let b=[];for(let c of f){let d=a(c,e);d&&b.push(...Array.isArray(d)?d:[d])}f=b}}return f}function m(a,b){return a!==b}function n(a){let b={messageId:null,model:null,textBlockStarted:!1,thinkingBlockStarted:!1,inThinkingBlock:!1,currentBlockIndex:null,toolCalls:new Map,finishReason:null,finishReasonSent:!1,usage:null,contentBlockIndex:-1};return a===d.h.OPENAI_RESPONSES?{...b,seq:0,responseId:`resp_${Date.now()}`,created:Math.floor(Date.now()/1e3),started:!1,msgTextBuf:{},msgItemAdded:{},msgContentAdded:{},msgItemDone:{},reasoningId:"",reasoningIndex:-1,reasoningBuf:"",reasoningPartAdded:!1,reasoningDone:!1,inThinking:!1,funcArgsBuf:{},funcNames:{},funcCallIds:{},funcArgsDone:{},funcItemDone:{},completedSent:!1}:b}async function o(){await c.e(7374).then(c.bind(c,87374)),await c.e(6367).then(c.bind(c,46367)),await c.e(6814).then(c.bind(c,66814)),await c.e(3563).then(c.bind(c,53563)),await c.e(5587).then(c.bind(c,35587)),await c.e(8611).then(c.bind(c,10992)),await c.e(1178).then(c.bind(c,81178))}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=5977,exports.ids=[5977],exports.modules={1404:(a,b,c)=>{"use strict";c.d(b,{default:()=>h});var d=c(21124),e=c(38301),f=c(89178),g=c(9840);function h({machineId:a}){let[b,c]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(""),{copied:B,copy:C}=(0,g.C)(),D=async()=>{try{let a=await fetch("/api/keys"),b=await a.json();a.ok&&c(b.keys||[])}catch(a){console.log("Error fetching data:",a)}finally{i(!1)}},E=a=>{a?s(!0):u(!0)},F=async()=>{w(!0),A("syncing");try{let a=await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"enable"})}),b=await a.json();a.ok?(A("verifying"),b.verified?(q(!0),y({type:"success",message:"Cloud Proxy connected and verified!"})):(q(!0),y({type:"warning",message:b.verifyError||"Connected but verification failed"})),s(!1),b.createdKey&&await D()):y({type:"error",message:b.error||"Failed to enable cloud"})}catch(a){y({type:"error",message:a.message})}finally{w(!1),A("")}},G=async()=>{w(!0),A("syncing");try{await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"sync"})}),A("disabling"),(await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"disable"})})).ok&&(q(!1),y({type:"success",message:"Cloud disabled"}),u(!1))}catch(a){console.log("Error disabling cloud:",a),y({type:"error",message:"Failed to disable cloud"})}finally{w(!1),A("")}},H=async()=>{if(l.trim())try{let a=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:l})}),b=await a.json();a.ok&&(o(b.key),await D(),m(""),k(!1))}catch(a){console.log("Error creating key:",a)}},I=async a=>{if(confirm("Delete this API key?"))try{(await fetch(`/api/keys/${a}`,{method:"DELETE"})).ok&&c(b.filter(b=>b.id!==a))}catch(a){console.log("Error deleting key:",a)}};if(h)return(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsx)(f.Qv,{}),(0,d.jsx)(f.Qv,{})]});let J=p?"https://9router.com/v1":"/v1";return(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsxs)(f.Zp,{className:"",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"API Endpoint"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:p?"Using Cloud Proxy":"Using Local Server"})]}),(0,d.jsx)("div",{className:"flex items-center gap-2",children:p?(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"cloud_off",onClick:()=>E(!1),disabled:v,className:"!bg-red-500/10 !text-red-500 hover:!bg-red-500/20 !border-red-500/30",children:"Disable Cloud"}):(0,d.jsx)(f.$n,{variant:"primary",icon:"cloud_upload",onClick:()=>E(!0),disabled:v,className:"bg-gradient-to-r from-primary to-blue-500 hover:from-primary-hover hover:to-blue-600",children:"Enable Cloud"})})]}),(0,d.jsxs)("div",{className:"flex gap-2 mb-3",children:[(0,d.jsx)(f.pd,{value:J,readOnly:!0,className:`flex-1 font-mono text-sm ${p?"animate-border-glow":""}`}),(0,d.jsx)(f.$n,{variant:"secondary",icon:"endpoint_url"===B?"check":"content_copy",onClick:()=>C(J,"endpoint_url"),children:"endpoint_url"===B?"Copied!":"Copy"})]})]}),(0,d.jsxs)(f.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"API Keys"}),(0,d.jsx)(f.$n,{icon:"add",onClick:()=>k(!0),children:"Create Key"})]}),0===b.length?(0,d.jsxs)("div",{className:"text-center py-8",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-4xl text-text-muted mb-2",children:"vpn_key"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"No API keys yet"})]}):(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsxs)("table",{className:"w-full",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border",children:[(0,d.jsx)("th",{className:"text-left p-3 font-medium",children:"Name"}),(0,d.jsx)("th",{className:"text-left p-3 font-medium",children:"Key"}),(0,d.jsx)("th",{className:"text-left p-3 font-medium",children:"Created"}),(0,d.jsx)("th",{className:"text-left p-3 font-medium",children:"Actions"})]})}),(0,d.jsx)("tbody",{children:b.map(a=>(0,d.jsxs)("tr",{className:"border-b border-border hover:bg-sidebar/30",children:[(0,d.jsx)("td",{className:"p-3 text-sm",children:a.name}),(0,d.jsx)("td",{className:"p-3",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono text-xs text-text-muted",children:a.key}),(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",icon:B===a.id?"check":"content_copy",onClick:()=>C(a.key,a.id)})]})}),(0,d.jsx)("td",{className:"p-3 text-sm text-text-muted",children:new Date(a.createdAt).toLocaleDateString()}),(0,d.jsx)("td",{className:"p-3",children:(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",icon:"delete",className:"text-red-500",onClick:()=>I(a.id),children:"Delete"})})]},a.id))})]})})]}),!1,(0,d.jsx)(f.aF,{isOpen:r,title:"Enable Cloud Proxy",onClose:()=>s(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:[(0,d.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200 font-medium mb-2",children:"What you will get"}),(0,d.jsxs)("ul",{className:"text-sm text-blue-700 dark:text-blue-300 space-y-1",children:[(0,d.jsx)("li",{children:"• Access your API from anywhere in the world"}),(0,d.jsx)("li",{children:"• Share endpoint with your team easily"}),(0,d.jsx)("li",{children:"• No need to open ports or configure firewall"}),(0,d.jsx)("li",{children:"• Fast global edge network"})]})]}),(0,d.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,d.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 font-medium mb-1",children:"Note"}),(0,d.jsxs)("ul",{className:"text-sm text-yellow-700 dark:text-yellow-300 space-y-1",children:[(0,d.jsx)("li",{children:"• Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted."}),(0,d.jsx)("li",{children:"• Cloud is currently unstable with Claude Code OAuth in some cases."})]})]}),v&&(0,d.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===z&&"Syncing data to cloud...","verifying"===z&&"Verifying connection..."]})})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(f.$n,{onClick:F,fullWidth:!0,disabled:v,children:v?(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===z?"Syncing...":"Verifying..."]}):"Enable Cloud"}),(0,d.jsx)(f.$n,{onClick:()=>s(!1),variant:"ghost",fullWidth:!0,disabled:v,children:"Cancel"})]})]})}),(0,d.jsx)(f.aF,{isOpen:j,title:"Create API Key",onClose:()=>{k(!1),m("")},children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(f.pd,{label:"Key Name",value:l,onChange:a=>m(a.target.value),placeholder:"Production Key"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(f.$n,{onClick:H,fullWidth:!0,disabled:!l.trim(),children:"Create"}),(0,d.jsx)(f.$n,{onClick:()=>{k(!1),m("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(f.aF,{isOpen:!!n,title:"API Key Created",onClose:()=>o(null),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,d.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,d.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(f.pd,{value:n||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)(f.$n,{variant:"secondary",icon:"created_key"===B?"check":"content_copy",onClick:()=>C(n,"created_key"),children:"created_key"===B?"Copied!":"Copy"})]}),(0,d.jsx)(f.$n,{onClick:()=>o(null),fullWidth:!0,children:"Done"})]})}),(0,d.jsx)(f.aF,{isOpen:t,title:"Disable Cloud Proxy",onClose:()=>!v&&u(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-red-600 dark:text-red-400",children:"warning"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm text-red-800 dark:text-red-200 font-medium mb-1",children:"Warning"}),(0,d.jsx)("p",{className:"text-sm text-red-700 dark:text-red-300",children:"All auth sessions will be deleted from cloud."})]})]})}),v&&(0,d.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===z&&"Syncing latest data...","disabling"===z&&"Disabling cloud..."]})})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Are you sure you want to disable cloud proxy?"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(f.$n,{onClick:G,fullWidth:!0,disabled:v,className:"!bg-red-500 hover:!bg-red-600 !text-white",children:v?(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===z?"Syncing...":"Disabling..."]}):"Disable Cloud"}),(0,d.jsx)(f.$n,{onClick:()=>u(!1),variant:"ghost",fullWidth:!0,disabled:v,children:"Cancel"})]})]})})]})}},14807:(a,b,c)=>{Promise.resolve().then(c.bind(c,1404))},62789:(a,b,c)=>{"use strict";c.d(b,{D1:()=>e});var d=c(31852);async function e(){return await (0,d.Xj)()}},77855:(a,b,c)=>{Promise.resolve().then(c.bind(c,94178))},94178:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js","default")}};
|
|
1
|
+
exports.id=5977,exports.ids=[5977],exports.modules={1404:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{default:()=>j});var e=c(21124),f=c(38301),g=c(56865),h=c(9840),i=a([g]);function j({machineId:a}){let[b,c]=(0,f.useState)([]),[d,i]=(0,f.useState)(!0),[j,k]=(0,f.useState)(!1),[l,m]=(0,f.useState)(""),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)(!1),[r,s]=(0,f.useState)(!1),[t,u]=(0,f.useState)(!1),[v,w]=(0,f.useState)(!1),[x,y]=(0,f.useState)(null),[z,A]=(0,f.useState)(""),{copied:B,copy:C}=(0,h.C)(),D=async()=>{try{let a=await fetch("/api/keys"),b=await a.json();a.ok&&c(b.keys||[])}catch(a){console.log("Error fetching data:",a)}finally{i(!1)}},E=a=>{a?s(!0):u(!0)},F=async()=>{w(!0),A("syncing");try{let a=await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"enable"})}),b=await a.json();a.ok?(A("verifying"),b.verified?(q(!0),y({type:"success",message:"Cloud Proxy connected and verified!"})):(q(!0),y({type:"warning",message:b.verifyError||"Connected but verification failed"})),s(!1),b.createdKey&&await D()):y({type:"error",message:b.error||"Failed to enable cloud"})}catch(a){y({type:"error",message:a.message})}finally{w(!1),A("")}},G=async()=>{w(!0),A("syncing");try{await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"sync"})}),A("disabling"),(await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"disable"})})).ok&&(q(!1),y({type:"success",message:"Cloud disabled"}),u(!1))}catch(a){console.log("Error disabling cloud:",a),y({type:"error",message:"Failed to disable cloud"})}finally{w(!1),A("")}},H=async()=>{if(l.trim())try{let a=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:l})}),b=await a.json();a.ok&&(o(b.key),await D(),m(""),k(!1))}catch(a){console.log("Error creating key:",a)}},I=async a=>{if(confirm("Delete this API key?"))try{(await fetch(`/api/keys/${a}`,{method:"DELETE"})).ok&&c(b.filter(b=>b.id!==a))}catch(a){console.log("Error deleting key:",a)}};if(d)return(0,e.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,e.jsx)(g.Qv,{}),(0,e.jsx)(g.Qv,{})]});let J=p?"https://9router.com/v1":"/v1";return(0,e.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,e.jsxs)(g.Zp,{className:"",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("h2",{className:"text-lg font-semibold",children:"API Endpoint"}),(0,e.jsx)("p",{className:"text-sm text-text-muted",children:p?"Using Cloud Proxy":"Using Local Server"})]}),(0,e.jsx)("div",{className:"flex items-center gap-2",children:p?(0,e.jsx)(g.$n,{size:"sm",variant:"secondary",icon:"cloud_off",onClick:()=>E(!1),disabled:v,className:"!bg-red-500/10 !text-red-500 hover:!bg-red-500/20 !border-red-500/30",children:"Disable Cloud"}):(0,e.jsx)(g.$n,{variant:"primary",icon:"cloud_upload",onClick:()=>E(!0),disabled:v,className:"bg-gradient-to-r from-primary to-blue-500 hover:from-primary-hover hover:to-blue-600",children:"Enable Cloud"})})]}),(0,e.jsxs)("div",{className:"flex gap-2 mb-3",children:[(0,e.jsx)(g.pd,{value:J,readOnly:!0,className:`flex-1 font-mono text-sm ${p?"animate-border-glow":""}`}),(0,e.jsx)(g.$n,{variant:"secondary",icon:"endpoint_url"===B?"check":"content_copy",onClick:()=>C(J,"endpoint_url"),children:"endpoint_url"===B?"Copied!":"Copy"})]})]}),(0,e.jsxs)(g.Zp,{children:[(0,e.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,e.jsx)("h2",{className:"text-lg font-semibold",children:"API Keys"}),(0,e.jsx)(g.$n,{icon:"add",onClick:()=>k(!0),children:"Create Key"})]}),0===b.length?(0,e.jsxs)("div",{className:"text-center py-8",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-4xl text-text-muted mb-2",children:"vpn_key"}),(0,e.jsx)("p",{className:"text-sm text-text-muted",children:"No API keys yet"})]}):(0,e.jsx)("div",{className:"overflow-x-auto",children:(0,e.jsxs)("table",{className:"w-full",children:[(0,e.jsx)("thead",{children:(0,e.jsxs)("tr",{className:"border-b border-border",children:[(0,e.jsx)("th",{className:"text-left p-3 font-medium",children:"Name"}),(0,e.jsx)("th",{className:"text-left p-3 font-medium",children:"Key"}),(0,e.jsx)("th",{className:"text-left p-3 font-medium",children:"Created"}),(0,e.jsx)("th",{className:"text-left p-3 font-medium",children:"Actions"})]})}),(0,e.jsx)("tbody",{children:b.map(a=>(0,e.jsxs)("tr",{className:"border-b border-border hover:bg-sidebar/30",children:[(0,e.jsx)("td",{className:"p-3 text-sm",children:a.name}),(0,e.jsx)("td",{className:"p-3",children:(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{className:"font-mono text-xs text-text-muted",children:a.key}),(0,e.jsx)(g.$n,{size:"sm",variant:"ghost",icon:B===a.id?"check":"content_copy",onClick:()=>C(a.key,a.id)})]})}),(0,e.jsx)("td",{className:"p-3 text-sm text-text-muted",children:new Date(a.createdAt).toLocaleDateString()}),(0,e.jsx)("td",{className:"p-3",children:(0,e.jsx)(g.$n,{size:"sm",variant:"ghost",icon:"delete",className:"text-red-500",onClick:()=>I(a.id),children:"Delete"})})]},a.id))})]})})]}),!1,(0,e.jsx)(g.aF,{isOpen:r,title:"Enable Cloud Proxy",onClose:()=>s(!1),children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,e.jsxs)("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:[(0,e.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200 font-medium mb-2",children:"What you will get"}),(0,e.jsxs)("ul",{className:"text-sm text-blue-700 dark:text-blue-300 space-y-1",children:[(0,e.jsx)("li",{children:"• Access your API from anywhere in the world"}),(0,e.jsx)("li",{children:"• Share endpoint with your team easily"}),(0,e.jsx)("li",{children:"• No need to open ports or configure firewall"}),(0,e.jsx)("li",{children:"• Fast global edge network"})]})]}),(0,e.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,e.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 font-medium mb-1",children:"Note"}),(0,e.jsxs)("ul",{className:"text-sm text-yellow-700 dark:text-yellow-300 space-y-1",children:[(0,e.jsx)("li",{children:"• Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted."}),(0,e.jsx)("li",{children:"• Cloud is currently unstable with Claude Code OAuth in some cases."})]})]}),v&&(0,e.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,e.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,e.jsx)("div",{className:"flex-1",children:(0,e.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===z&&"Syncing data to cloud...","verifying"===z&&"Verifying connection..."]})})]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(g.$n,{onClick:F,fullWidth:!0,disabled:v,children:v?(0,e.jsxs)("span",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===z?"Syncing...":"Verifying..."]}):"Enable Cloud"}),(0,e.jsx)(g.$n,{onClick:()=>s(!1),variant:"ghost",fullWidth:!0,disabled:v,children:"Cancel"})]})]})}),(0,e.jsx)(g.aF,{isOpen:j,title:"Create API Key",onClose:()=>{k(!1),m("")},children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,e.jsx)(g.pd,{label:"Key Name",value:l,onChange:a=>m(a.target.value),placeholder:"Production Key"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(g.$n,{onClick:H,fullWidth:!0,disabled:!l.trim(),children:"Create"}),(0,e.jsx)(g.$n,{onClick:()=>{k(!1),m("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,e.jsx)(g.aF,{isOpen:!!n,title:"API Key Created",onClose:()=>o(null),children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,e.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,e.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,e.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(g.pd,{value:n||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,e.jsx)(g.$n,{variant:"secondary",icon:"created_key"===B?"check":"content_copy",onClick:()=>C(n,"created_key"),children:"created_key"===B?"Copied!":"Copy"})]}),(0,e.jsx)(g.$n,{onClick:()=>o(null),fullWidth:!0,children:"Done"})]})}),(0,e.jsx)(g.aF,{isOpen:t,title:"Disable Cloud Proxy",onClose:()=>!v&&u(!1),children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4",children:(0,e.jsxs)("div",{className:"flex items-start gap-3",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-red-600 dark:text-red-400",children:"warning"}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm text-red-800 dark:text-red-200 font-medium mb-1",children:"Warning"}),(0,e.jsx)("p",{className:"text-sm text-red-700 dark:text-red-300",children:"All auth sessions will be deleted from cloud."})]})]})}),v&&(0,e.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,e.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,e.jsx)("div",{className:"flex-1",children:(0,e.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===z&&"Syncing latest data...","disabling"===z&&"Disabling cloud..."]})})]}),(0,e.jsx)("p",{className:"text-sm text-text-muted",children:"Are you sure you want to disable cloud proxy?"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(g.$n,{onClick:G,fullWidth:!0,disabled:v,className:"!bg-red-500 hover:!bg-red-600 !text-white",children:v?(0,e.jsxs)("span",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===z?"Syncing...":"Disabling..."]}):"Disable Cloud"}),(0,e.jsx)(g.$n,{onClick:()=>u(!1),variant:"ghost",fullWidth:!0,disabled:v,children:"Cancel"})]})]})})]})}g=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},14807:(a,b,c)=>{Promise.resolve().then(c.bind(c,1404))},62789:(a,b,c)=>{"use strict";c.d(b,{D1:()=>e});var d=c(31852);async function e(){return await (0,d.Xj)()}},77855:(a,b,c)=>{Promise.resolve().then(c.bind(c,94178))},94178:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js","default")}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=9858,exports.ids=[9858],exports.modules={19858:(a,b,c)=>{var d=c(81582);let e=!1;(async function(){if(!e)try{await (0,d.A)(),e=!0}catch(a){console.error("[ServerInit] Error initializing cloud sync:",a)}return e})().catch(console.log)},31852:(a,b,c)=>{c.d(b,{Xj:()=>e});var d=c(1124);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},34443:(a,b,c)=>{c.d(b,{CG:()=>E,Dj:()=>B,Iq:()=>G,L:()=>A,Lh:()=>H,Mc:()=>s,Nx:()=>M,OM:()=>w,P:()=>r,PX:()=>F,Uv:()=>z,Xx:()=>L,bI:()=>J,ek:()=>I,fK:()=>v,fv:()=>y,iE:()=>t,jd:()=>C,mt:()=>K,o5:()=>x,oG:()=>D,rj:()=>u});var d=c(16373),e=c(56963),f=c(14701),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(29021),l=c.n(k);let m=function(){let a=process.platform,b=j().homedir(),c="9router";return"win32"===a?h().join(process.env.APPDATA||h().join(b,"AppData","Roaming"),c):h().join(b,`.${c}`)}(),n=h().join(m,"db.json");l().existsSync(m)||l().mkdirSync(m,{recursive:!0});let o={providerConnections:[],modelAliases:{},combos:[],apiKeys:[],settings:{cloudEnabled:!1}},p=null;async function q(){if(!p){let a=new e.Pv(n);p=new d.t(a,o);try{await p.read()}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt JSON detected, resetting to defaults..."),p.data=o,await p.write();else throw a}p.data||(p.data=o,await p.write())}return p}async function r(a={}){let b=(await q()).data.providerConnections||[];return a.provider&&(b=b.filter(b=>b.provider===a.provider)),void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),b.sort((a,b)=>(a.priority||999)-(b.priority||999)),b}async function s(a){return(await q()).data.providerConnections.find(b=>b.id===a)||null}async function t(a){let b=await q(),c=new Date().toISOString(),d=-1;if("oauth"===a.authType&&a.email?d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"oauth"===b.authType&&b.email===a.email):"apikey"===a.authType&&a.name&&(d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"apikey"===b.authType&&b.name===a.name)),-1!==d)return b.data.providerConnections[d]={...b.data.providerConnections[d],...a,updatedAt:c},await b.write(),b.data.providerConnections[d];let e=a.name||null;if(!e&&"oauth"===a.authType)if(a.email)e=a.email;else{let c=b.data.providerConnections.filter(b=>b.provider===a.provider).length;e=`Account ${c+1}`}let g=a.priority;g||(g=b.data.providerConnections.filter(b=>b.provider===a.provider).reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let h={id:(0,f.A)(),provider:a.provider,authType:a.authType||"oauth",name:e,priority:g,isActive:void 0===a.isActive||a.isActive,createdAt:c,updatedAt:c};for(let b of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode"])void 0!==a[b]&&null!==a[b]&&(h[b]=a[b]);return a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(h.providerSpecificData=a.providerSpecificData),b.data.providerConnections.push(h),await b.write(),h}async function u(a,b){let c=await q(),d=c.data.providerConnections.findIndex(b=>b.id===a);return -1===d?null:(c.data.providerConnections[d]={...c.data.providerConnections[d],...b,updatedAt:new Date().toISOString()},await c.write(),c.data.providerConnections[d])}async function v(a){let b=await q(),c=b.data.providerConnections.findIndex(b=>b.id===a);return -1!==c&&(b.data.providerConnections.splice(c,1),await b.write(),!0)}async function w(){return(await q()).data.modelAliases||{}}async function x(a,b){let c=await q();c.data.modelAliases[a]=b,await c.write()}async function y(a){let b=await q();delete b.data.modelAliases[a],await b.write()}async function z(){return(await q()).data.combos||[]}async function A(a){return((await q()).data.combos||[]).find(b=>b.id===a)||null}async function B(a){return((await q()).data.combos||[]).find(b=>b.name===a)||null}async function C(a){let b=await q();b.data.combos||(b.data.combos=[]);let c=new Date().toISOString(),d={id:(0,f.A)(),name:a.name,models:a.models||[],createdAt:c,updatedAt:c};return b.data.combos.push(d),await b.write(),d}async function D(a,b){let c=await q();c.data.combos||(c.data.combos=[]);let d=c.data.combos.findIndex(b=>b.id===a);return -1===d?null:(c.data.combos[d]={...c.data.combos[d],...b,updatedAt:new Date().toISOString()},await c.write(),c.data.combos[d])}async function E(a){let b=await q();if(!b.data.combos)return!1;let c=b.data.combos.findIndex(b=>b.id===a);return -1!==c&&(b.data.combos.splice(c,1),await b.write(),!0)}async function F(){return(await q()).data.apiKeys||[]}async function G(a,b){if(!b)throw Error("machineId is required");let d=await q(),e=new Date().toISOString(),{generateApiKeyWithMachine:g}=await c.e(9285).then(c.bind(c,39285)),h=g(b),i={id:(0,f.A)(),name:a,key:h.key,machineId:b,createdAt:e};return d.data.apiKeys.push(i),await d.write(),i}async function H(a){let b=await q(),c=b.data.apiKeys.findIndex(b=>b.id===a);return -1!==c&&(b.data.apiKeys.splice(c,1),await b.write(),!0)}async function I(a){return(await q()).data.apiKeys.some(b=>b.key===a)}async function J(){let a=await q(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn"],c=0;for(let d of a.data.providerConnections){for(let a of b)(null===d[a]||void 0===d[a])&&(delete d[a],c++);d.providerSpecificData&&0===Object.keys(d.providerSpecificData).length&&(delete d.providerSpecificData,c++)}return c>0&&await a.write(),c}async function K(){return(await q()).data.settings||{cloudEnabled:!1}}async function L(a){let b=await q();return b.data.settings={...b.data.settings,...a},await b.write(),b.data.settings}async function M(){return!0===(await K()).cloudEnabled}},81582:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(31852),e=c(34443);class f{constructor(a=null,b=15){this.machineId=a,this.intervalMinutes=b,this.intervalId=null}async initializeMachineId(){this.machineId||(this.machineId=await (0,d.Xj)())}async start(){this.intervalId||(await this.initializeMachineId(),setTimeout(()=>{this.syncWithRetry().catch(()=>{})},3e4),this.intervalId=setInterval(()=>{this.syncWithRetry().catch(()=>{})},60*this.intervalMinutes*1e3))}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null)}async syncWithRetry(a=1){for(let b=1;b<=a;b++)try{return await this.sync()}catch(d){if(b===a)return null;let c=Math.min(1e3*Math.pow(2,b),1e4);await new Promise(a=>setTimeout(a,c))}}async sync(){if(!await (0,e.Nx)())return null;await this.initializeMachineId();let a=await fetch(`${process.env.NEXT_PUBLIC_BASE_URL||"http://localhost:3000"}/api/sync/cloud`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machineId:this.machineId,action:"sync"})});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Sync failed");return await a.json()}isRunning(){return null!==this.intervalId}}let g=null;async function h(a=null,b=15){return g||(g=new f(a,b)),g}async function i(){try{await (0,e.bI)();let a=await h(null,15);return await a.start(),a}catch(a){throw console.error("[CloudSync] Error initializing scheduler:",a),a}}a=c.hmd(a),c.c[c.s]===a&&i().catch(console.log);let j=i}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-5865472aea7b6340.js","static/chunks/4bd1b696-f785427dddbba9fb.js","static/chunks/1255-9494d7e861e97d68.js","static/chunks/main-app-1a9105a16c026010.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-5865472aea7b6340.js","static/chunks/framework-90fc9b0f7c4706c1.js","static/chunks/main-b718c5aeb6d6e180.js","static/chunks/pages/_app-6c8c2371b16a04b8.js"],"/_error":["static/chunks/webpack-5865472aea7b6340.js","static/chunks/framework-90fc9b0f7c4706c1.js","static/chunks/main-b718c5aeb6d6e180.js","static/chunks/pages/_error-94812ad32cad7365.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__REACT_LOADABLE_MANIFEST='{"../open-sse/handlers/chatCore.js -> ../services/tokenRefresh.js":{"id":3971,"files":[]},"../open-sse/translator/index.js -> ./from-openai/claude.js":{"id":1441,"files":["static/chunks/1441.7b9fc2e539f71e56.js"]},"../open-sse/translator/index.js -> ./from-openai/gemini.js":{"id":1055,"files":["static/chunks/1055.0f91ab6513ec317b.js"]},"../open-sse/translator/index.js -> ./from-openai/openai-responses.js":{"id":8456,"files":["static/chunks/8456.50ee5fc36ad7054f.js"]},"../open-sse/translator/index.js -> ./to-openai/claude.js":{"id":5812,"files":["static/chunks/5812.5dc8861d62b394fe.js"]},"../open-sse/translator/index.js -> ./to-openai/gemini.js":{"id":197,"files":["static/chunks/197.83743acbae435446.js"]},"../open-sse/translator/index.js -> ./to-openai/openai-responses.js":{"id":3433,"files":["static/chunks/3433.dfc71de88505c41d.js"]},"../open-sse/translator/index.js -> ./to-openai/openai.js":{"id":3592,"files":["static/chunks/3592.2bc2e6e506f250e3.js"]},"../open-sse/utils/requestLogger.js -> fs":{"id":6899,"files":["static/chunks/6899.44ddb324d06f2b00.js"]},"../open-sse/utils/requestLogger.js -> path":{"id":7712,"files":["static/chunks/7712.6576b07aa7d6f955.js"]}}';
|
|
1
|
+
self.__REACT_LOADABLE_MANIFEST='{"../open-sse/handlers/chatCore.js -> ../services/tokenRefresh.js":{"id":3971,"files":[]},"../open-sse/handlers/chatCore.js -> http":{"id":3431,"files":["static/chunks/3431.b7e68d807c631773.js"]},"../open-sse/handlers/chatCore.js -> https":{"id":9220,"files":["static/chunks/3431.b7e68d807c631773.js","static/chunks/9220.745ac8c97d067b9a.js"]},"../open-sse/translator/index.js -> ./from-openai/claude.js":{"id":1441,"files":["static/chunks/1441.7b9fc2e539f71e56.js"]},"../open-sse/translator/index.js -> ./from-openai/gemini.js":{"id":1055,"files":["static/chunks/1055.0f91ab6513ec317b.js"]},"../open-sse/translator/index.js -> ./from-openai/openai-responses.js":{"id":8456,"files":["static/chunks/8456.50ee5fc36ad7054f.js"]},"../open-sse/translator/index.js -> ./to-openai/claude.js":{"id":5812,"files":["static/chunks/5812.5dc8861d62b394fe.js"]},"../open-sse/translator/index.js -> ./to-openai/gemini.js":{"id":197,"files":["static/chunks/197.83743acbae435446.js"]},"../open-sse/translator/index.js -> ./to-openai/openai-responses.js":{"id":3433,"files":["static/chunks/3433.dfc71de88505c41d.js"]},"../open-sse/translator/index.js -> ./to-openai/openai.js":{"id":3592,"files":["static/chunks/3592.2bc2e6e506f250e3.js"]},"../open-sse/utils/requestLogger.js -> fs":{"id":6899,"files":["static/chunks/6899.44ddb324d06f2b00.js"]},"../open-sse/utils/requestLogger.js -> path":{"id":7712,"files":["static/chunks/7712.6576b07aa7d6f955.js"]}}';
|