switchboard-router 0.9.12 → 0.9.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/static/chunks/1321-acabf6ddf6e9f084.js +1 -0
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +14 -14
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +14 -14
- package/app/.next-cli-build/server/chunks/3423.js +1 -1
- package/app/.next-cli-build/server/chunks/3446.js +1 -1
- package/app/.next-cli-build/server/chunks/519.js +1 -1
- package/app/.next-cli-build/server/chunks/7454.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8976.js +1 -1
- package/app/.next-cli-build/server/chunks/8998.js +1 -1
- package/app/.next-cli-build/server/chunks/9261.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +3 -3
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/1321-acabf6ddf6e9f084.js +1 -0
- package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
- package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/static/chunks/1321-12722927fb282386.js +0 -1
- package/app/.next-cli-build/static/chunks/1321-12722927fb282386.js +0 -1
- /package/app/.next/static/{mZ_nLY7IJxJleGpxUZmv_ → K7-_JX-a_Cep7hiREptOo}/_buildManifest.js +0 -0
- /package/app/.next/static/{mZ_nLY7IJxJleGpxUZmv_ → K7-_JX-a_Cep7hiREptOo}/_ssgManifest.js +0 -0
- /package/app/.next-cli-build/static/{mZ_nLY7IJxJleGpxUZmv_ → K7-_JX-a_Cep7hiREptOo}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{mZ_nLY7IJxJleGpxUZmv_ → K7-_JX-a_Cep7hiREptOo}/_ssgManifest.js +0 -0
|
@@ -11,7 +11,7 @@ exports.id=8998,exports.ids=[8998],exports.modules={794:(a,b,c)=>{"use strict";l
|
|
|
11
11
|
`;await e(d)}}catch(a){E(`Failed to clean hosts: ${a.message}`)}}else await o(a);w?d("launchctl unsetenv NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[launchctl] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[launchctl] NODE_EXTRA_CA_CERTS unset")}):v&&d("reg delete HKCU\\Environment /F /V NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[reg] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[reg] NODE_EXTRA_CA_CERTS unset")});try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}return await ac(!1,null),O=!1,{running:!1,pid:null}}async function ar(a,b){if(!(await am()).running)throw Error("MITM server is not running. Start the server first.");let c=b||V()||await ae();return await m(a,c),await af(a,!0),{success:!0}}a.exports={pollMitmHealth:al,getMitmStatus:am,startServer:ap,stopServer:aq,enableToolDNS:ar,disableToolDNS:async function a(a,b){let c=b||V()||await ae();return await n(a,c),await af(a,!1),{success:!0}},trustCert:async function a(a){let b=g.join(C,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(94442);if(!v&&!w&&!s())return void D(`🔐 Cert: system trust unavailable (no sudo). Use file: ${b}`);let e=a||V()||await ae();if(!e&&t())throw Error("Sudo password required to trust certificate");await d(e,b),e&&W(e)},startMitm:ap,stopMitm:aq,getCachedPassword:V,setCachedPassword:W,loadEncryptedPassword:ae,clearEncryptedPassword:ad,isSudoPasswordRequired:t,initDbHooks:function(a,b){aa=a,ab=b},restoreToolDNS:ah,hasDnsPrivilege:ai,removeAllDNSEntriesSync:p}},4554:(a,b,c)=>{var d=c(45654);c(1277),c(33889);var e=a.exports=d.sha1=d.sha1||{};d.md.sha1=d.md.algorithms.sha1=e,e.create=function(){g||(f=String.fromCharCode(128)+d.util.fillString("\0",64),g=!0);var a=null,b=d.util.createBuffer(),c=Array(80),e={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return e.start=function(){e.messageLength=0,e.fullMessageLength=e.messageLength64=[];for(var c=e.messageLengthSize/4,f=0;f<c;++f)e.fullMessageLength.push(0);return b=d.util.createBuffer(),a={h0:0x67452301,h1:0xefcdab89,h2:0x98badcfe,h3:0x10325476,h4:0xc3d2e1f0},e},e.start(),e.update=function(f,g){"utf8"===g&&(f=d.util.encodeUtf8(f));var i=f.length;e.messageLength+=i,i=[i/0x100000000>>>0,i>>>0];for(var j=e.fullMessageLength.length-1;j>=0;--j)e.fullMessageLength[j]+=i[1],i[1]=i[0]+(e.fullMessageLength[j]/0x100000000>>>0),e.fullMessageLength[j]=e.fullMessageLength[j]>>>0,i[0]=i[1]/0x100000000>>>0;return b.putBytes(f),h(a,c,b),(b.read>2048||0===b.length())&&b.compact(),e},e.digest=function(){var g,i=d.util.createBuffer();i.putBytes(b.bytes());var j=e.fullMessageLength[e.fullMessageLength.length-1]+e.messageLengthSize&e.blockLength-1;i.putBytes(f.substr(0,e.blockLength-j));for(var k=8*e.fullMessageLength[0],l=0;l<e.fullMessageLength.length-1;++l)k+=(g=8*e.fullMessageLength[l+1])/0x100000000>>>0,i.putInt32(k>>>0),k=g>>>0;i.putInt32(k);var m={h0:a.h0,h1:a.h1,h2:a.h2,h3:a.h3,h4:a.h4};h(m,c,i);var n=d.util.createBuffer();return n.putInt32(m.h0),n.putInt32(m.h1),n.putInt32(m.h2),n.putInt32(m.h3),n.putInt32(m.h4),n},e};var f=null,g=!1;function h(a,b,c){for(var d,e,f,g,h,i,j,k,l=c.length();l>=64;){for(e=a.h0,f=a.h1,g=a.h2,h=a.h3,i=a.h4,k=0;k<16;++k)d=c.getInt32(),b[k]=d,d=(e<<5|e>>>27)+(h^f&(g^h))+i+0x5a827999+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<20;++k)d=(d=b[k-3]^b[k-8]^b[k-14]^b[k-16])<<1|d>>>31,b[k]=d,d=(e<<5|e>>>27)+(h^f&(g^h))+i+0x5a827999+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<32;++k)d=(d=b[k-3]^b[k-8]^b[k-14]^b[k-16])<<1|d>>>31,b[k]=d,d=(e<<5|e>>>27)+(f^g^h)+i+0x6ed9eba1+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<40;++k)d=(d=b[k-6]^b[k-16]^b[k-28]^b[k-32])<<2|d>>>30,b[k]=d,d=(e<<5|e>>>27)+(f^g^h)+i+0x6ed9eba1+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<60;++k)d=(d=b[k-6]^b[k-16]^b[k-28]^b[k-32])<<2|d>>>30,b[k]=d,d=(e<<5|e>>>27)+(f&g|h&(f^g))+i+0x8f1bbcdc+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<80;++k)d=(d=b[k-6]^b[k-16]^b[k-28]^b[k-32])<<2|d>>>30,b[k]=d,d=(e<<5|e>>>27)+(f^g^h)+i+0xca62c1d6+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;a.h0=a.h0+e|0,a.h1=a.h1+f|0,a.h2=a.h2+g|0,a.h3=a.h3+h|0,a.h4=a.h4+i|0,l-=64}}},4620:(a,b,c)=>{"use strict";c.d(b,{x:()=>p});var d=c(67671),e=c(38421),f=c(10793),g=c(82689),h=c(89666),i=c(2670),j=c(87350),k=c(18101),l=c(50969),m=c(29137),n=c(19016),o=c(55511);class p extends d.Hv{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","x-request-id":o.randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};if(a.response_format&&a.model?.includes("claude")){let b=a.response_format,c="";if("json_schema"===b.type&&b.json_schema?.schema?c="CRITICAL: You must ONLY output raw JSON. Never use markdown code blocks. Never use backticks. Never wrap JSON in triple backticks. Output ONLY the raw JSON object.":"json_object"===b.type&&(c="CRITICAL: You must ONLY output raw JSON. Never use markdown code blocks. Never use backticks."),c){let b=a.messages.findIndex(a=>"system"===a.role);b>=0?a.messages[b].content=c+"\n\n"+a.messages[b].content:a.messages.unshift({role:"system",content:c});let d=a.messages.map((a,b)=>"user"===a.role?b:-1).filter(a=>a>=0).pop();if(d>=0){let b=a.messages[d],c="string"==typeof b.content?b.content:JSON.stringify(b.content);b.content="Respond with ONLY raw JSON (no markdown, no backticks, no code blocks): "+c}}}return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){super.transformRequest(a,b,c,d);let e=b&&"object"==typeof b?b:{...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,(0,m.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async executeWithResponsesEndpoint({model:a,body:b,stream:d,credentials:e,signal:f,log:g,proxyOptions:m=null}){let o=this.config.responsesUrl,p=this.buildHeaders(e,d),q=(0,h.h)(a,b,d,e);g?.debug("GITHUB","Sending translated request to /responses");let r=await (0,l.Fm)(o,{method:"POST",headers:p,body:JSON.stringify(q),signal:f,identity:this.config?.identity,provider:this.provider,format:this.config?.format,stream:d},m);if(!r.ok)return{response:r,url:o,headers:p,transformedBody:q};if(!d&&r.body)try{let{convertResponsesStreamToJson:b}=await Promise.resolve().then(c.bind(c,82703)),d=await b(r.body),e=function(a,b){let c=Array.isArray(a?.output)?a.output:[],d="",e=[];for(let a of c){if(a?.type==="message"&&Array.isArray(a.content))for(let b of a.content)b?.type==="output_text"&&"string"==typeof b.text?d+=b.text:"string"==typeof b?.text&&(d+=b.text);a?.type==="function_call"&&e.push({id:a.call_id||`call_${a.name}_${e.length}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})}let f={role:"assistant",content:d||(e.length?null:"")};e.length&&(f.tool_calls=e);let g=a?.usage||{};return{id:a?.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||b,choices:[{index:0,message:f,finish_reason:e.length?"tool_calls":"stop"}],usage:{prompt_tokens:g.input_tokens||0,completion_tokens:g.output_tokens||0,total_tokens:(g.input_tokens||0)+(g.output_tokens||0)}}}(d,a);return{response:new Response(JSON.stringify(e),{status:200,headers:{"Content-Type":"application/json"}}),url:o,headers:p,transformedBody:q}}catch(a){g?.warn?.("GITHUB",`non-stream responses aggregate failed: ${a.message}`)}let s=(0,j.Ws)("openai-responses");s.model=a;let t=new TextDecoder,u="",v=new TransformStream({async transform(a,b){let c=(u+=t.decode(a,{stream:!0})).split("\n");for(let a of(u=c.pop()||"",c)){let c=a.trim();if(!c)continue;let e=(0,k.tV)(c);if(!e)continue;if(e.done&&!0===d){b.enqueue(new TextEncoder().encode(n.$U));continue}let f=(0,i.v)(e,s);if(f){let a=(0,k.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(u.trim()){let b=(0,k.tV)(u.trim());if(b&&!b.done){let c=(0,i.v)(b,s);c&&a.enqueue(new TextEncoder().encode((0,k.v8)(c,"openai")))}}}});return r.body?{response:new Response(r.body.pipeThrough(v),{status:r.status,statusText:r.statusText,headers:r.headers}),url:o,headers:p,transformedBody:q}:{response:new Response("",{status:r.status,headers:r.headers}),url:o,headers:p,transformedBody:q}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,l.Fm)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,Accept:"application/json"},identity:this.config?.identity,provider:this.provider,format:this.config?.format},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,l.Fm)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d),identity:this.config?.identity,provider:this.provider,format:this.config?.format},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),!Number.isFinite(b)||b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},4654:(a,b,c)=>{"use strict";let{uid:d,states:e,sentCloseFrameState:f,emptyBuffer:g,opcodes:h}=c(62026),{parseExtensions:i,isClosed:j,isClosing:k,isEstablished:l,isConnecting:m,validateCloseCodeAndReason:n}=c(94050),{makeRequest:o}=c(12600),{fetching:p}=c(76403),{Headers:q,getHeadersList:r}=c(28665),{getDecodeSplit:s}=c(42425),{WebsocketFrameSend:t}=c(45221),u=c(34589),{runtimeFeatures:v}=c(56758),w=v.has("crypto")?c(77598):null,x=!1;function y(a,b,c,d=!1){if(b??=null,c??="",d&&n(b,c),j(a.readyState)||k(a.readyState));else if(l(a.readyState))if(a.closeState.has(f.SENT)||a.closeState.has(f.RECEIVED))a.readyState=e.CLOSING;else{let d=new t;0!==c.length&&null===b&&(b=1e3),u(null===b||Number.isInteger(b)),null===b&&0===c.length?d.frameData=g:null!==b&&null===c?(d.frameData=Buffer.allocUnsafe(2),d.frameData.writeUInt16BE(b,0)):null!==b&&null!==c?(d.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(c)),d.frameData.writeUInt16BE(b,0),d.frameData.write(c,2,"utf-8")):d.frameData=g,a.socket.write(d.createFrame(h.CLOSE)),a.closeState.add(f.SENT),a.readyState=e.CLOSING}else z(a),a.readyState=e.CLOSING}function z(a,b,c,d){l(a.readyState)&&y(a,b,c,!1),a.controller.abort(),m(a.readyState)?a.onSocketClose():a.socket?.destroyed===!1&&a.socket.destroy()}a.exports={establishWebSocketConnection:function(a,b,c,e,f){a.protocol="ws:"===a.protocol?"http:":"https:";let g=o({urlList:[a],client:c,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error",useURLCredentials:!0});f.headers&&(g.headersList=r(new q(f.headers)));let h=w.randomBytes(16).toString("base64");for(let a of(g.headersList.append("sec-websocket-key",h,!0),g.headersList.append("sec-websocket-version","13",!0),b))g.headersList.append("sec-websocket-protocol",a,!0);return g.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits",!0),p({request:g,useParallelQueue:!0,dispatcher:f.dispatcher,processResponse(a){let c;if("error"===a.type||101!==a.status){if(a.socket?.session==null)return void z(e,1002,"Received network error or non-101 status code.",a.error);if(200!==a.status)return void z(e,1002,"Received network error or non-200 status code.",a.error)}if(!1===x&&a.socket?.session!=null&&(process.emitWarning("WebSocket over HTTP2 is experimental, and subject to change.","ExperimentalWarning"),x=!0),0!==b.length&&!a.headersList.get("Sec-WebSocket-Protocol"))return void z(e,1002,"Server did not respond with sent protocols.");if(null==a.socket.session&&a.headersList.get("Upgrade")?.toLowerCase()!=="websocket")return void z(e,1002,'Server did not set Upgrade header to "websocket".');if(null==a.socket.session&&a.headersList.get("Connection")?.toLowerCase()!=="upgrade")return void z(e,1002,'Server did not set Connection header to "upgrade".');if(a.headersList.get("Sec-WebSocket-Accept")!==w.hash("sha1",h+d,"base64"))return void z(e,1002,"Incorrect hash received in Sec-WebSocket-Accept header.");let f=a.headersList.get("Sec-WebSocket-Extensions");if(null!==f&&!(c=i(f)).has("permessage-deflate"))return void z(e,1002,"Sec-WebSocket-Extensions header does not match.");let j=a.headersList.get("Sec-WebSocket-Protocol");null===j||s("sec-websocket-protocol",g.headersList).includes(j)?(a.socket.on("data",e.onSocketData),a.socket.on("close",e.onSocketClose),a.socket.on("error",e.onSocketError),e.wasEverConnected=!0,e.onConnectionEstablished(a,c)):z(e,1002,"Protocol was not set in the opening handshake.")}})},failWebsocketConnection:z,closeWebSocketConnection:y}},4879:(a,b,c)=>{"use strict";c(82340);let d="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",e='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',f="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",g="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",h="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",i="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",j='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',k='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.';["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",e,d,f,g,h,i,j,k].join(" "),["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",e,d,f,g,h,i,j,k].join(" "),["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",e,d,f,g,h,i,j,k].join(" "),["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",e,d,f,g,h,i,j,k].join(" "),["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",e,d,f,g,h,i,j,k].join(" "),["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",e,d,f,g,h,i,j,k].join(" ")},4890:(a,b,c)=>{var d=c(45654);c(33889);var e=null;!d.util.isNodejs||d.options.usePureJavaScript||process.versions["node-webkit"]||(e=c(55511)),(a.exports=d.prng=d.prng||{}).create=function(a){for(var b={plugin:a,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},c=a.md,f=Array(32),g=0;g<32;++g)f[g]=c.create();function h(){b.reseeds=0xffffffff===b.reseeds?0:b.reseeds+1;var a=b.plugin.md.create();a.update(b.keyBytes);for(var c=1,d=0;d<32;++d)b.reseeds%c==0&&(a.update(b.pools[d].digest().getBytes()),b.pools[d].start()),c<<=1;b.keyBytes=a.digest().getBytes(),a.start(),a.update(b.keyBytes);var e=a.digest().getBytes();b.key=b.plugin.formatKey(b.keyBytes),b.seed=b.plugin.formatSeed(e),b.generated=0}function i(a){var b=null,c=d.util.globalScope,e=c.crypto||c.msCrypto;e&&e.getRandomValues&&(b=function(a){return e.getRandomValues(a)});var f=d.util.createBuffer();if(b)for(;f.length()<a;){var g=new Uint32Array(Math.floor(Math.max(1,Math.min(a-f.length(),65536)/4)));try{b(g);for(var h=0;h<g.length;++h)f.putInt32(g[h])}catch(a){if(!("u">typeof QuotaExceededError&&a instanceof QuotaExceededError))throw a}}if(f.length()<a)for(var i,j,k,l=Math.floor(65536*Math.random());f.length()<a;){l=0|(j=(0x7fffffff&(j=16807*(65535&l)+(((32767&(i=16807*(l>>16)))<<16)+(i>>15))))+(j>>31));for(var h=0;h<3;++h)k=l>>>(h<<3)^Math.floor(256*Math.random()),f.putByte(255&k)}return f.getBytes(a)}return b.pools=f,b.pool=0,b.generate=function(a,c){if(!c)return b.generateSync(a);var e=b.plugin.cipher,f=b.plugin.increment,g=b.plugin.formatKey,i=b.plugin.formatSeed,j=d.util.createBuffer();b.key=null,function k(l){if(l)return c(l);if(j.length()>=a)return c(null,j.getBytes(a));if(b.generated>1048575&&(b.key=null),null===b.key)return d.util.nextTick(function(){!function(a){if(b.pools[0].messageLength>=32)return h(),a();var c=32-b.pools[0].messageLength<<5;b.seedFile(c,function(c,d){if(c)return a(c);b.collect(d),h(),a()})}(k)});var m=e(b.key,b.seed);b.generated+=m.length,j.putBytes(m),b.key=g(e(b.key,f(b.seed))),b.seed=i(e(b.key,b.seed)),d.util.setImmediate(k)}()},b.generateSync=function(a){var c=b.plugin.cipher,e=b.plugin.increment,f=b.plugin.formatKey,g=b.plugin.formatSeed;b.key=null;for(var i=d.util.createBuffer();i.length()<a;){b.generated>1048575&&(b.key=null),null===b.key&&function(){if(b.pools[0].messageLength>=32)return h();var a=32-b.pools[0].messageLength<<5;b.collect(b.seedFileSync(a)),h()}();var j=c(b.key,b.seed);b.generated+=j.length,i.putBytes(j),b.key=f(c(b.key,e(b.seed))),b.seed=g(c(b.key,b.seed))}return i.getBytes(a)},e?(b.seedFile=function(a,b){e.randomBytes(a,function(a,c){if(a)return b(a);b(null,c.toString())})},b.seedFileSync=function(a){return e.randomBytes(a).toString()}):(b.seedFile=function(a,b){try{b(null,i(a))}catch(a){b(a)}},b.seedFileSync=i),b.collect=function(a){for(var c=a.length,d=0;d<c;++d)b.pools[b.pool].update(a.substr(d,1)),b.pool=31===b.pool?0:b.pool+1},b.collectInt=function(a,c){for(var d="",e=0;e<c;e+=8)d+=String.fromCharCode(a>>e&255);b.collect(d)},b.registerWorker=function(a){a===self?b.seedFile=function(a,b){self.addEventListener("message",function a(c){var d=c.data;d.forge&&d.forge.prng&&(self.removeEventListener("message",a),b(d.forge.prng.err,d.forge.prng.bytes))}),self.postMessage({forge:{prng:{needed:a}}})}:a.addEventListener("message",function(c){var d=c.data;d.forge&&d.forge.prng&&b.seedFile(d.forge.prng.needed,function(b,c){a.postMessage({forge:{prng:{err:b,bytes:c}}})})})},b}},5019:(a,b,c)=>{a.exports=c(45654),c(45518),c(39804),c(63070),c(66568),c(88819),c(22164),c(76632),c(33206),c(31881),c(69445),c(41702),c(70710),c(49345),c(24985),c(15873),c(76103),c(94463),c(36902),c(4890),c(87981),c(29984),c(67382),c(28169),c(27080),c(33889)},5318:(a,b,c)=>{"use strict";let d=c(7344),{ClientDestroyedError:e,ClientClosedError:f,InvalidArgumentError:g}=c(61448),{kDestroy:h,kClose:i,kClosed:j,kDestroyed:k,kDispatch:l}=c(49176),m=Symbol("onDestroyed"),n=Symbol("onClosed"),o=Symbol("webSocketOptions");class p extends d{[k]=!1;[m]=null;[j]=!1;[n]=null;constructor(a){super(),this[o]=a?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[o].maxFragments??131072,maxPayloadSize:this[o].maxPayloadSize??0x8000000}}get destroyed(){return this[k]}get closed(){return this[j]}close(a){if(void 0===a)return new Promise((a,b)=>{this.close((c,d)=>c?b(c):a(d))});if("function"!=typeof a)throw new g("invalid callback");if(this[k]){let b=new e;queueMicrotask(()=>a(b,null));return}if(this[j])return void(this[n]?this[n].push(a):queueMicrotask(()=>a(null,null)));this[j]=!0,this[n]??=[],this[n].push(a);let b=()=>{let a=this[n];this[n]=null;for(let b=0;b<a.length;b++)a[b](null,null)};this[i]().then(()=>this.destroy()).then(()=>queueMicrotask(b))}destroy(a,b){if("function"==typeof a&&(b=a,a=null),void 0===b)return new Promise((b,c)=>{this.destroy(a,(a,d)=>a?c(a):b(d))});if("function"!=typeof b)throw new g("invalid callback");if(this[k])return void(this[m]?this[m].push(b):queueMicrotask(()=>b(null,null)));a||(a=new e),this[k]=!0,this[m]??=[],this[m].push(b);let c=()=>{let a=this[m];this[m]=null;for(let b=0;b<a.length;b++)a[b](null,null)};this[h](a).then(()=>queueMicrotask(c))}dispatch(a,b){if(!b||"object"!=typeof b)throw new g("handler must be an object");try{if(!a||"object"!=typeof a)throw new g("opts must be an object.");if(a.dispatcher)throw new g("opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.");if(this[k]||this[m])throw new e;if(this[j])throw new f;return this[l](a,b)}catch(a){if("function"!=typeof b.onResponseError)throw a;return b.onResponseError(null,a),!1}}}a.exports=p},5831:(a,b,c)=>{"use strict";let{collectASequenceOfCodePointsFast:d}=c(70745),{maxNameValuePairSize:e,maxAttributeValueSize:f}=c(29653),{isCTLExcludingHtab:g}=c(84698),h=c(34589);function i(a,b={}){if(0===a.length)return b;h(";"===a[0]);let c="";(a=a.slice(1)).includes(";")?(c=d(";",a,{position:0}),a=a.slice(c.length)):(c=a,a="");let e="",g="";if(c.includes("=")){let a={position:0};e=d("=",c,a),g=c.slice(a.position+1)}else e=c;if(e=e.trim(),(g=g.trim()).length>f)return i(a,b);let j=e.toLowerCase();if("expires"===j){let a=new Date(g);Number.isNaN(a.getTime())||(b.expires=a)}else if("max-age"===j){let c=g.charCodeAt(0);if((c<48||c>57)&&"-"!==g[0]||!/^\d+$/.test(g))return i(a,b);b.maxAge=Number(g)}else if("domain"===j){let a=g;"."===a[0]&&(a=a.slice(1)),b.domain=a=a.toLowerCase()}else if("path"===j)b.path=0===g.length||"/"!==g[0]?"/":g;else if("secure"===j)b.secure=!0;else if("httponly"===j)b.httpOnly=!0;else if("samesite"===j){let a=g.toLowerCase();"none"===a?b.sameSite="None":"strict"===a?b.sameSite="Strict":"lax"===a&&(b.sameSite="Lax")}else b.unparsed??=[],b.unparsed.push(`${e}=${g}`);return i(a,b)}a.exports={parseSetCookie:function(a){if(g(a))return null;let b="",c="",f="",h="";if(a.includes(";")){let e={position:0};b=d(";",a,e),c=a.slice(e.position)}else b=a;if(b.includes("=")){let a={position:0};f=d("=",b,a),h=b.slice(a.position+1)}else h=b;return(f=f.trim(),h=h.trim(),f.length+h.length>e)?null:{name:f,value:h,...i(c)}},parseUnparsedAttributes:i}},6125:(a,b,c)=>{"use strict";c(10793),"u">typeof process&&process.versions?.node,"u">typeof process&&process.env?.ENABLE_REQUEST_LOGS},6680:(a,b,c)=>{var d=c(45654);c(1277),c(33889);var e=a.exports=d.sha256=d.sha256||{};d.md.sha256=d.md.algorithms.sha256=e,e.create=function(){g||(f=String.fromCharCode(128)+d.util.fillString("\0",64),h=[0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2],g=!0);var a=null,b=d.util.createBuffer(),c=Array(64),e={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return e.start=function(){e.messageLength=0,e.fullMessageLength=e.messageLength64=[];for(var c=e.messageLengthSize/4,f=0;f<c;++f)e.fullMessageLength.push(0);return b=d.util.createBuffer(),a={h0:0x6a09e667,h1:0xbb67ae85,h2:0x3c6ef372,h3:0xa54ff53a,h4:0x510e527f,h5:0x9b05688c,h6:0x1f83d9ab,h7:0x5be0cd19},e},e.start(),e.update=function(f,g){"utf8"===g&&(f=d.util.encodeUtf8(f));var h=f.length;e.messageLength+=h,h=[h/0x100000000>>>0,h>>>0];for(var j=e.fullMessageLength.length-1;j>=0;--j)e.fullMessageLength[j]+=h[1],h[1]=h[0]+(e.fullMessageLength[j]/0x100000000>>>0),e.fullMessageLength[j]=e.fullMessageLength[j]>>>0,h[0]=h[1]/0x100000000>>>0;return b.putBytes(f),i(a,c,b),(b.read>2048||0===b.length())&&b.compact(),e},e.digest=function(){var g,h=d.util.createBuffer();h.putBytes(b.bytes());var j=e.fullMessageLength[e.fullMessageLength.length-1]+e.messageLengthSize&e.blockLength-1;h.putBytes(f.substr(0,e.blockLength-j));for(var k=8*e.fullMessageLength[0],l=0;l<e.fullMessageLength.length-1;++l)k+=(g=8*e.fullMessageLength[l+1])/0x100000000>>>0,h.putInt32(k>>>0),k=g>>>0;h.putInt32(k);var m={h0:a.h0,h1:a.h1,h2:a.h2,h3:a.h3,h4:a.h4,h5:a.h5,h6:a.h6,h7:a.h7};i(m,c,h);var n=d.util.createBuffer();return n.putInt32(m.h0),n.putInt32(m.h1),n.putInt32(m.h2),n.putInt32(m.h3),n.putInt32(m.h4),n.putInt32(m.h5),n.putInt32(m.h6),n.putInt32(m.h7),n},e};var f=null,g=!1,h=null;function i(a,b,c){for(var d,e,f,g,i,j,k,l,m,n,o,p,q,r,s,t=c.length();t>=64;){for(k=0;k<16;++k)b[k]=c.getInt32();for(;k<64;++k)d=((d=b[k-2])>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,e=((e=b[k-15])>>>7|e<<25)^(e>>>18|e<<14)^e>>>3,b[k]=d+b[k-7]+e+b[k-16]|0;for(l=a.h0,m=a.h1,n=a.h2,o=a.h3,p=a.h4,q=a.h5,r=a.h6,s=a.h7,k=0;k<64;++k)g=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),i=r^p&(q^r),f=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),j=l&m|n&(l^m),d=s+g+i+h[k]+b[k],e=f+j,s=r,r=q,q=p,p=o+d>>>0,o=n,n=m,m=l,l=d+e>>>0;a.h0=a.h0+l|0,a.h1=a.h1+m|0,a.h2=a.h2+n|0,a.h3=a.h3+o|0,a.h4=a.h4+p|0,a.h5=a.h5+q|0,a.h6=a.h6+r|0,a.h7=a.h7+s|0,t-=64}}},6951:(a,b,c)=>{"use strict";c.d(b,{v:()=>j});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(53859);let i=g().join(h.nJ,"mitm","aliases.json");async function j(){try{var a;let b,d,{getMitmAlias:f}=await Promise.resolve().then(c.bind(c,37703));a=await f()||{},b=g().dirname(i),e().mkdirSync(b,{recursive:!0}),d=`${i}.tmp`,e().writeFileSync(d,JSON.stringify(a,null,2),"utf8"),e().renameSync(d,i)}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}},7044:(a,b,c)=>{"use strict";c.r(b),c.d(b,{createProviderNode:()=>l,deleteProviderNode:()=>n,getProviderNodeById:()=>k,getProviderNodes:()=>j,updateProviderNode:()=>m});var d=c(27137),e=c(24081),f=c(50743),g=c(15738);function h(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function i(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
|
|
12
12
|
VALUES(?, ?, ?, ?, ?, ?)
|
|
13
13
|
ON CONFLICT(id) DO UPDATE SET
|
|
14
|
-
type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function j(a={}){let b=await (0,e.c)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(h)}async function k(a){return h((await (0,e.c)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function l(a){let b=await (0,e.c)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return i(b,f),f}async function m(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...h(e),...b,updatedAt:new Date().toISOString()};i(c,f),d=f}),d}async function n(a){let b=await (0,e.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=h(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]),(0,g.uQ)(b,a))}),c}},7344:(a,b,c)=>{"use strict";let d=c(78474);class e extends d{dispatch(){throw Error("not implemented")}close(){throw Error("not implemented")}destroy(){throw Error("not implemented")}compose(...a){let b=Array.isArray(a[0])?a[0]:a,c=this.dispatch.bind(this);for(let a of b)if(null!=a){if("function"!=typeof a)throw TypeError(`invalid interceptor, expected function received ${typeof a}`);if(null==(c=a(c))||"function"!=typeof c||2!==c.length)throw TypeError("invalid interceptor")}return new Proxy(this,{get:(a,b)=>"dispatch"===b?c:a[b]})}}a.exports=e},7878:(a,b,c)=>{"use strict";c(22884),c(87350),c(68531),c(82689),c(18762)},7893:(a,b,c)=>{"use strict";c.d(b,{A:()=>n});var d=c(74570);let e={id:"deepseek",priority:110,alias:"deepseek",aliases:["ds"],uiAlias:"ds",display:{name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.deepseek.com/chat/completions",validateUrl:"https://api.deepseek.com/models",reasoningInject:{scope:"all"}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://api.deepseek.com/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://api.deepseek.com/anthropic/v1/messages",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro Max",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-pro-none",name:"DeepSeek V4 Pro No Thinking",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],features:{usage:!0,usageApikey:!0}},f={id:"glm",priority:140,alias:"glm",display:{name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{identity:"claude-cli",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}};var g=c(45431);let h={id:"kimi-coding",hidden:!0,priority:120,alias:"kmc",display:{name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.moonshot.cn",notice:{signupUrl:"https://kimi.moonshot.cn"}},category:"oauth",transport:{identity:"kimi",baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},transports:[{identity:"kimi",format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{identity:"kimi",format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}}],models:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],oauth:{deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshLeadMs:3e5},features:{usage:!0}},i={id:"kimi",priority:170,alias:"kimi",display:{name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys"}},category:"apikey",transport:{identity:"kimi",baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}},transports:[{identity:"kimi",format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"kimi",format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],serviceKinds:["llm","webSearch"],features:{usage:!0,usageApikey:!0},searchViaChat:{defaultModel:"kimi-k2.5",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},j={id:"minimax-cn",priority:190,alias:"minimax-cn",display:{name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},quirks:{dropOutputConfig:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]}},transports:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","tts"],ttsConfig:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},k={id:"minimax",priority:90,alias:"minimax",display:{name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{identity:"claude-cli",baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},quirks:{dropOutputConfig:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"]}},transports:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",params:["n","size","response_format"],kind:"image"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","image","imageToText","webSearch","tts"],ttsConfig:{identity:"claude-cli",baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/v1/images/generations"},searchViaChat:{defaultModel:"MiniMax-M2.7",endpoint:"https://api.minimaxi.com/v1/text/chatcompletion_v2",pricingUrl:"https://www.minimaxi.com/document/price"},features:{usage:!0,usageApikey:!0}},l={id:"xiaomi-mimo",priority:290,alias:"xiaomi-mimo",aliases:["mimo"],uiAlias:"mimo",display:{name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://xiaomimimo.com"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-flash",name:"MiMo V2 Flash"}]},m={id:"xiaomi-tokenplan",priority:300,alias:"xiaomi-tokenplan",aliases:["xmtp"],uiAlias:"xmtp",display:{name:"Xiaomi MiMo (Token Plan)",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://mimo.xiaomi.com",notice:{text:"Xiaomi MiMo Token Plan subscription (API key starts with tp-). Token Plan keys are cluster-specific — select the region matching your subscription.",apiKeyUrl:"https://mimo.xiaomi.com"}},category:"apikey",hasProviderSpecificData:!0,regions:[{id:"sgp",label:"Singapore (新加坡)"},{id:"cn",label:"China (中国大陆)"},{id:"ams",label:"Amsterdam (阿姆斯特丹)"}],defaultRegion:"sgp",transport:{identity:"openai-node",baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1/chat/completions",regions:{sgp:"https://token-plan-sgp.xiaomimimo.com/v1",cn:"https://token-plan-cn.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"},defaultRegion:"sgp"},transports:[{identity:"openai-node",format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5-pro-claude",name:"MiMo V2.5 Pro (Claude Native)",targetFormat:"claude",upstreamModelId:"mimo-v2.5-pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-pro",name:"MiMo V2 Pro"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-tts",name:"MiMo V2 TTS"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS"},{id:"mimo-v2.5-tts-voiceclone",name:"MiMo V2.5 TTS Voice Clone"},{id:"mimo-v2.5-tts-voicedesign",name:"MiMo V2.5 TTS Voice Design"}]},n=[{id:"alicode-intl",priority:10,alias:"alicode-intl",display:{name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alicode",priority:20,alias:"alicode",display:{name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"anthropic",priority:30,alias:"anthropic",display:{name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"}},category:"apikey",transport:{identity:"claude-cli",baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{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"}],serviceKinds:["llm","imageToText"]},{id:"antigravity",priority:20,alias:"ag",uiAlias:"ag",display:{name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",serviceKinds:["llm","image"],transport:{identity:"antigravity",baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3-flash-agent",name:"Gemini 3.5 Flash (High)"},{id:"gemini-3.5-flash-low",name:"Gemini 3.5 Flash (Medium)"},{id:"gemini-3.5-flash-extra-low",name:"Gemini 3.5 Flash (Low)"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",refreshLeadMs:3e5},features:{usage:!0}},{id:"assemblyai",priority:30,alias:"assemblyai",aliases:["aai"],uiAlias:"aai",display:{name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",validateUrl:"https://api.assemblyai.com/v1/account"},models:[{id:"universal-3-pro",name:"Universal 3 Pro",params:["language"],kind:"stt"},{id:"universal-2",name:"Universal 2",params:["language"],kind:"stt"},{id:"best",name:"Best (Nano + Universal)",kind:"stt"},{id:"nano",name:"Nano (Fast)",kind:"stt"}],serviceKinds:["stt"],sttConfig:{identity:"openai-node",baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{id:"aws-polly",alias:"polly",display:{name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{identity:"openai-node",id:"neural",name:"Neural"},{identity:"openai-node",id:"long-form",name:"Long-form"},{identity:"openai-node",id:"generative",name:"Generative"}]},hasProviderSpecificData:!0},{id:"azure",priority:40,alias:"azure",display:{name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"}},category:"apikey",hasProviderSpecificData:!0,transport:{identity:"openai-node",baseUrl:"",headers:{}}},{id:"black-forest-labs",priority:50,alias:"black-forest-labs",aliases:["bfl"],uiAlias:"bfl",display:{name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",params:["n","size"],kind:"image"},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",params:["size"],kind:"image"},{id:"flux-pro",name:"FLUX Pro",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",params:["size"],capabilities:["edit"],kind:"image"},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",params:["size"],capabilities:["edit"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.bfl.ai/v1"}},{id:"blackbox",priority:50,alias:"blackbox",aliases:["bb"],uiAlias:"bb",display:{name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"}},category:"apikey",serviceKinds:["llm"],thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},transport:{identity:"openai-node",baseUrl:"https://api.blackbox.ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"claude-fable-5",name:"Claude Fable 5",upstreamModelId:"blackboxai/anthropic/claude-fable-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",upstreamModelId:"blackboxai/anthropic/claude-opus-4.8"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",upstreamModelId:"blackboxai/anthropic/claude-sonnet-4.6"},{id:"gpt-5.5",name:"GPT-5.5",upstreamModelId:"blackboxai/openai/gpt-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",upstreamModelId:"blackboxai/openai/gpt-5.4-pro"},{id:"gpt-5.4",name:"GPT-5.4",upstreamModelId:"blackboxai/openai/gpt-5.4"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"blackboxai/openai/gpt-5.3-codex"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",upstreamModelId:"blackboxai/openai/gpt-5.4-nano"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"blackboxai/deepseek/deepseek-v4-flash"},{id:"grok-4.3",name:"Grok 4.3",upstreamModelId:"blackboxai/x-ai/grok-4.3"}]},{id:"brave-search",alias:"brave",display:{name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"byteplus",priority:70,alias:"byteplus",aliases:["bpm"],uiAlias:"bpm",display:{name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"}},category:"freeTier",transport:{identity:"openai-node",baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],serviceKinds:["llm"]},{id:"cartesia",alias:"cartesia",display:{name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{identity:"openai-node",id:"sonic-3",name:"Sonic 3"}]},hidden:!0},{id:"cerebras",priority:60,alias:"cerebras",display:{name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.cerebras.ai/v1/chat/completions",validateUrl:"https://api.cerebras.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},{id:"chutes",priority:70,alias:"chutes",aliases:["ch"],uiAlias:"ch",display:{name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://llm.chutes.ai/v1/chat/completions",validateUrl:"https://llm.chutes.ai/v1/models"}},{id:"claude",priority:10,alias:"cc",uiAlias:"cc",display:{name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{identity:"claude-cli",baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Dangerous-Direct-Browser-Access":"true"},quirks:{cloakToolsOnOAuth:!0},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}},usage:{oauthUrl:"https://api.anthropic.com/api/oauth/usage",orgUrl:"https://api.anthropic.com/v1/organizations/{org_id}/usage",settingsUrl:"https://api.anthropic.com/v1/settings"}},models:[{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],oauth:{clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256",refreshLeadMs:144e5,refresh:{encoding:"json"}},features:{usage:!0}},{id:"cline",priority:80,alias:"cl",uiAlias:"cl",display:{name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}},category:"oauth",transport:{identity:"cline",baseUrl:"https://api.cline.bot/api/v1/chat/completions",tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"}},{id:"clinepass",priority:85,alias:"clinepass",aliases:["cline-pass"],uiAlias:"clinepass",display:{name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"cline",baseUrl:"https://api.cline.bot/api/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"cline-pass/glm-5.2",name:"GLM-5.2 (ClinePass)"},{id:"cline-pass/kimi-k2.7-code",name:"Kimi K2.7 Code (ClinePass)"},{id:"cline-pass/kimi-k2.6",name:"Kimi K2.6 (ClinePass)"},{id:"cline-pass/deepseek-v4-pro",name:"DeepSeek V4 Pro (ClinePass)"},{id:"cline-pass/deepseek-v4-flash",name:"DeepSeek V4 Flash (ClinePass)"},{id:"cline-pass/mimo-v2.5",name:"MiMo-V2.5 (ClinePass)"},{id:"cline-pass/mimo-v2.5-pro",name:"MiMo-V2.5-Pro (ClinePass)"},{id:"cline-pass/minimax-m3",name:"MiniMax M3 (ClinePass)"},{id:"cline-pass/qwen3.7-max",name:"Qwen3.7 Max (ClinePass)"},{id:"cline-pass/qwen3.7-plus",name:"Qwen3.7 Plus (ClinePass)"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},thinkingConfig:{options:["auto","on","off"],defaultMode:"auto"}},{id:"cloudflare-ai",priority:60,hasFree:!0,alias:"cloudflare-ai",aliases:["cf"],uiAlias:"cf",display:{name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"}},category:"freeTier",hasProviderSpecificData:!0,transport:{identity:"openai-node",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"},{id:"@cf/black-forest-labs/flux-2-klein-9b",name:"FLUX.2 Klein 9B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-klein-4b",name:"FLUX.2 Klein 4B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-dev",name:"FLUX.2 Dev",params:["size"],kind:"image"},{id:"@cf/leonardo/lucid-origin",name:"Lucid Origin",params:["size"],kind:"image"},{id:"@cf/leonardo/phoenix-1.0",name:"Phoenix 1.0",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-1-schnell",name:"FLUX.1 Schnell",params:["size"],kind:"image"},{id:"@cf/bytedance/stable-diffusion-xl-lightning",name:"SDXL Lightning",params:["size"],kind:"image"},{id:"@cf/lykon/dreamshaper-8-lcm",name:"DreamShaper 8 LCM",params:["size"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-img2img",name:"Stable Diffusion v1.5 Img2Img",params:["size"],capabilities:["edit"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-inpainting",name:"Stable Diffusion v1.5 Inpainting",params:["size"],capabilities:["edit","mask"],kind:"image"},{id:"@cf/stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:["size"],kind:"image"}],serviceKinds:["llm","image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.cloudflare.com/client/v4/accounts"}},{id:"codebuddy-cn",alias:"cbcn",uiAlias:"cbcn",hidden:!1,priority:90,display:{name:"CodeBuddy CN",icon:"smart_toy",color:"#006EFF",website:"https://copilot.tencent.com",notice:{signupUrl:"https://copilot.tencent.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"openai-node",baseUrl:"https://copilot.tencent.com/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"CLI/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"CLI","X-IDE-Name":"CLI","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://copilot.tencent.com/v2/billing/meter/get-user-resource"}},models:[{id:"glm-5.2",name:"GLM-5.2"},{id:"glm-5.1",name:"GLM-5.1"},{id:"glm-5.0",name:"GLM-5.0"},{id:"glm-5.0-turbo",name:"GLM-5.0-Turbo"},{id:"glm-5v-turbo",name:"GLM-5v-Turbo"},{id:"glm-4.7",name:"GLM-4.7"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"kimi-k2.7",name:"Kimi-K2.7-Code"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"hy3-preview",name:"Hy3 Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4-flash",name:"DeepSeek-V4-Flash"},{id:"deepseek-v3-2-volc",name:"DeepSeek-V3.2"}],oauth:{baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},{id:"codex",priority:30,alias:"cx",uiAlias:"cx",display:{name:"OpenAI Codex",icon:"code",color:"#3B82F6",website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"},deprecated:!0,deprecationNotice:"RISK_NOTICE",kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."}},category:"oauth",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{identity:"codex-cli",baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,usage:{url:"https://chatgpt.com/backend-api/wham/usage",resetCreditsUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits",resetCreditsConsumeUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits/consume"}},models:[{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.5-review",name:"GPT 5.5 Review",upstreamModelId:"gpt-5.5",quotaFamily:"review"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.4-review",name:"GPT 5.4 Review",upstreamModelId:"gpt-5.4",quotaFamily:"review"},{id:"gpt-5.4-mini",name:"GPT 5.4 Mini"},{id:"gpt-5.4-mini-review",name:"GPT 5.4 Mini Review",upstreamModelId:"gpt-5.4-mini",quotaFamily:"review"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-review",name:"GPT 5.3 Codex Review",upstreamModelId:"gpt-5.3-codex",quotaFamily:"review"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-xhigh-review",name:"GPT 5.3 Codex (xHigh) Review",upstreamModelId:"gpt-5.3-codex-xhigh",quotaFamily:"review"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-high-review",name:"GPT 5.3 Codex (High) Review",upstreamModelId:"gpt-5.3-codex-high",quotaFamily:"review"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-low-review",name:"GPT 5.3 Codex (Low) Review",upstreamModelId:"gpt-5.3-codex-low",quotaFamily:"review"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-none-review",name:"GPT 5.3 Codex (None) Review",upstreamModelId:"gpt-5.3-codex-none",quotaFamily:"review"},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.3-codex-spark-review",name:"GPT 5.3 Codex Spark Review",upstreamModelId:"gpt-5.3-codex-spark",quotaFamily:"review"},{id:"gpt-5.5-image",name:"GPT 5.5 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.4-image",name:"GPT 5.4 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.3-image",name:"GPT 5.3 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"}],serviceKinds:["llm","image"],oauth:{clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",fixedPort:1455,callbackPath:"/auth/callback",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"},refreshLeadMs:432e6,maxRefreshAgeMs:6912e5,trackRefreshAt:!0,acceptsRawAccessToken:!0,rawAccessTokenIssuers:["https://auth.openai.com","https://auth0.openai.com"]},features:{usage:!0}},{id:"cohere",priority:90,alias:"cohere",display:{name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.cohere.ai/v1/chat/completions",validateUrl:"https://api.cohere.ai/v1/models"},models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},{id:"comfyui",priority:120,alias:"comfyui",display:{name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},category:"apikey",transport:null,models:[{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"sdxl",name:"SDXL",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"http://localhost:8188"}},{id:"commandcode",priority:100,alias:"commandcode",aliases:["cmc"],uiAlias:"cmc",display:{name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",forceStream:!0,headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},modelsFetcher:{url:"https://api.commandcode.ai/provider/v1/models",method:"GET",type:"openai",requiresAuth:!0},models:[{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.7-Code-Highspeed",name:"Kimi K2.7 Code HighSpeed"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-5.2",name:"GLM 5.2"},{id:"zai-org/GLM-5.2-Fast",name:"GLM 5.2 Fast"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"xiaomi/mimo-v2.5",name:"MiMo V2.5"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"Qwen/Qwen3.7-Max",name:"Qwen 3.7 Max"},{id:"Qwen/Qwen3.7-Plus",name:"Qwen 3.7 Plus"},{id:"stepfun/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"},{id:"tencent/Hy3",name:"Tencent Hy3"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"}]},{id:"coqui",alias:"coqui",display:{name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},hidden:!0},{id:"cursor",priority:50,alias:"cu",uiAlias:"cu",display:{name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},category:"oauth",transport:{identity:"openai-node",baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"composer-2.5",name:"Composer 2.5"},{id:"composer-2.5-fast",name:"Composer 2.5 Fast"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetUsableModels",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}}},{id:"deepgram",priority:20,alias:"deepgram",aliases:["dg"],uiAlias:"dg",display:{name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.deepgram.com/v1/listen"},models:[{id:"nova-3",name:"Nova 3",params:["language"],kind:"stt"},{id:"nova-2",name:"Nova 2",params:["language"],kind:"stt"},{id:"whisper-large",name:"Whisper Large",params:["language"],kind:"stt"},{id:"nova",name:"Nova",kind:"stt"}],serviceKinds:["stt"],sttConfig:{identity:"openai-node",baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram"}},e,{id:"edge-tts",alias:"edge-tts",display:{name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},{id:"elevenlabs",alias:"el",display:{name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{identity:"openai-node",id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},{id:"exa",alias:"exa",display:{name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{identity:"openai-node",baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},{id:"fal-ai",priority:90,hasFree:!0,alias:"fal-ai",aliases:["fal"],uiAlias:"fal",display:{name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",params:["n","size"],kind:"image"},{id:"fal-ai/flux/dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",params:["n","size"],kind:"image"},{id:"fal-ai/recraft-v3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",params:["n","size","style"],kind:"image"},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://queue.fal.run"}},{id:"firecrawl",alias:"firecrawl",display:{name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{identity:"openai-node",baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},{id:"fireworks",priority:50,alias:"fireworks",display:{name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",validateUrl:"https://api.fireworks.ai/inference/v1/models"},models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},{id:"gemini-cli",priority:20,hasFree:!0,alias:"gc",uiAlias:"gc",display:{name:"Gemini CLI",icon:"terminal",color:"#4285F4",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{identity:"gemini-cli",baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",usage:{quotaUrl:"https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",loadCodeAssistUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"},clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite 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"}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"],refresh:{encoding:"form"}},features:{usage:!0}},{id:"gemini",priority:50,hasFree:!0,alias:"gemini",display:{name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"}},category:"freeTier",mediaPriority:1,transport:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",auth:{apiKey:{header:"x-goog-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash 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"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",kind:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",kind:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",kind:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",kind:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",params:[],kind:"image"},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",params:[],kind:"image"},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",params:[],kind:"image"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",kind:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",kind:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",kind:"tts"},{id:"embedding-001",name:"Embedding 001",dimensions:768,kind:"embedding"}],serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],ttsConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models"},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."}},{id:"github",priority:40,alias:"gh",uiAlias:"gh",display:{name:"GitHub Copilot",icon:"code",color:"#333333",website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{identity:"copilot",baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"copilot",baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer"},oauth:{clientId:"Iv1.b507a08c87ecfe98",authorizeUrl:"https://github.com/login/oauth/authorize",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token"},features:{usage:!0}},{id:"gitlab",hidden:!0,priority:100,display:{name:"GitLab Duo",icon:"code",color:"#FC6D26",textIcon:"GL",website:"https://gitlab.com",notice:{signupUrl:"https://gitlab.com"}},category:"oauth",transport:{identity:"openai-node",baseUrl:"https://gitlab.com/api/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"}},{id:"glm-cn",priority:130,alias:"glm-cn",display:{name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",headers:{},usage:{url:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"}},models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],features:{usage:!0,usageApikey:!0}},f,{id:"google-pse",alias:"gpse",display:{name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"google-tts",alias:"google-tts",display:{name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},g.A,{id:"grok-web",priority:150,alias:"grok-web",aliases:["gw"],uiAlias:"gw",display:{name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com"},category:"webCookie",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",transport:{identity:"chrome",baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},models:[{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],passthroughModels:!0},{id:"groq",priority:60,hasFree:!0,alias:"groq",display:{name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models"},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["llm","imageToText","stt"],sttConfig:{identity:"openai-node",baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"huggingface",priority:70,hasFree:!0,alias:"huggingface",aliases:["hf"],uiAlias:"hf",display:{name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:["language"],kind:"stt"},{id:"openai/whisper-small",name:"Whisper Small (HF)",params:["language"],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{identity:"openai-node",baseUrl:"https://api-inference.huggingface.co/models"}},{id:"hyperbolic",priority:160,alias:"hyperbolic",aliases:["hyp"],uiAlias:"hyp",display:{name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",validateUrl:"https://api.hyperbolic.xyz/v1/models"},models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},{id:"iflow",hidden:!0,priority:110,alias:"if",display:{name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},category:"oauth",transport:{identity:"openai-node",baseUrl:"https://apis.iflow.cn/v1/chat/completions",thinkingFormat:"openai",headers:{"User-Agent":"iFlow-Cli"}},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],oauth:{clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"},refreshLeadMs:864e5}},{id:"inworld",alias:"inworld",display:{name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{identity:"openai-node",id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},{id:"jina-ai",alias:"jina",display:{name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{identity:"openai-node",id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{identity:"openai-node",id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},{id:"jina-reader",alias:"jina-reader",display:{name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{identity:"openai-node",baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{id:"kilocode",priority:70,alias:"kc",uiAlias:"kc",display:{name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},category:"oauth",transport:{identity:"openai-node",baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",headers:{},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kilocodeOrg"]}},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],modelsFetcher:{url:"https://api.kilo.ai/api/gateway/models",type:"openrouter-free"},passthroughModels:!0,oauth:{apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"}},{id:"kimchi",priority:95,alias:"kimchi",uiAlias:"kimchi",display:{name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,transport:{identity:"openai-node",baseUrl:"https://llm.kimchi.dev/openai/v1/chat/completions",format:"openai",headers:{"User-Agent":"kimchi/0.1.50"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"minimax-m3",name:"MiniMax-M3"},{id:"kimi-k2.7",name:"Kimi-K2.7"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"nemotron-3-ultra-fp4",name:"Nemotron 3 Ultra FP4"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"}],serviceKinds:["llm","imageToText"],oauth:{webAppUrl:"https://app.kimchi.dev",validationUrl:"https://api.cast.ai/v1/llm/openai/supported-providers",userInfoUrl:"https://app.kimchi.dev/api/v1/me",modelsUrl:"https://llm.kimchi.dev/v1/models/metadata?include_in_cli=true"},passthroughModels:!0},h,i,{id:"kiro",priority:10,alias:"kr",uiAlias:"kr",display:{name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{identity:"openai-node",baseUrl:"https://runtime.us-east-1.kiro.dev/generateAssistantResponse",baseUrls:["https://runtime.us-east-1.kiro.dev/generateAssistantResponse","https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse","https://q.us-east-1.amazonaws.com/generateAssistantResponse"],format:"kiro",retry:{429:0},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev",usage:{cwHost:"https://codewhisperer.us-east-1.amazonaws.com",qHost:"https://q.us-east-1.amazonaws.com",limitsPath:"/getUsageLimits"}},models:[{id:"claude-opus-4.8",name:"Claude Opus 4.8"},{id:"claude-opus-4.8-thinking",name:"Claude Opus 4.8 (Thinking)"},{id:"claude-opus-4.8-agentic",name:"Claude Opus 4.8 (Agentic)"},{id:"claude-opus-4.8-thinking-agentic",name:"Claude Opus 4.8 (Thinking + Agentic)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"claude-opus-4.7-thinking",name:"Claude Opus 4.7 (Thinking)"},{id:"claude-opus-4.7-agentic",name:"Claude Opus 4.7 (Agentic)"},{id:"claude-opus-4.7-thinking-agentic",name:"Claude Opus 4.7 (Thinking + Agentic)"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 (Thinking)"},{id:"claude-opus-4.5-agentic",name:"Claude Opus 4.5 (Agentic)"},{id:"claude-opus-4.5-thinking-agentic",name:"Claude Opus 4.5 (Thinking + Agentic)"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"claude-sonnet-5-thinking",name:"Claude Sonnet 5 (Thinking)"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 (Thinking)"},{id:"claude-haiku-4.5-thinking",name:"Claude Haiku 4.5 (Thinking)"},{id:"claude-sonnet-5-agentic",name:"Claude Sonnet 5 (Agentic)"},{id:"claude-sonnet-4.5-agentic",name:"Claude Sonnet 4.5 (Agentic)"},{id:"claude-haiku-4.5-agentic",name:"Claude Haiku 4.5 (Agentic)"},{id:"claude-sonnet-5-thinking-agentic",name:"Claude Sonnet 5 (Thinking + Agentic)"},{id:"claude-sonnet-4.5-thinking-agentic",name:"Claude Sonnet 4.5 (Thinking + Agentic)"},{id:"claude-haiku-4.5-thinking-agentic",name:"Claude Haiku 4.5 (Thinking + Agentic)"}],oauth:{ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},features:{usage:!0,usageApikey:!0}},{id:"linkup",alias:"linkup",display:{name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"local-device",alias:"local-device",display:{name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"mimo-free",priority:50,hasFree:!0,alias:"mmf",uiAlias:"mmf",display:{name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF"},category:"free",noAuth:!0,transport:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}],modelsFetcher:{url:"https://models.dev/api.json",type:"mimo-free"},passthroughModels:!0},j,k,{id:"mistral",priority:80,alias:"mistral",display:{name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.mistral.ai/v1/chat/completions",validateUrl:"https://api.mistral.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",kind:"embedding"}],serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"mmf",hidden:!0,priority:200,display:{name:"MMF",icon:"hub",color:"#6366F1",textIcon:"MF"},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}]},{id:"nanobanana",priority:80,hasFree:!0,alias:"nanobanana",aliases:["nb"],uiAlias:"nb",display:{name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",validateUrl:"https://api.nanobananaapi.ai/v1/models"},models:[{id:"nanobanana-flash",name:"NanoBanana Flash",params:["n","size"],kind:"image"},{id:"nanobanana-pro",name:"NanoBanana Pro",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",pollUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info"}},{id:"nebius",priority:70,alias:"nebius",display:{name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",validateUrl:"https://api.studio.nebius.ai/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},{id:"nvidia",priority:20,hasFree:!0,alias:"nvidia",display:{name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},category:"freeTier",transport:{identity:"openai-node",baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",validateUrl:"https://integrate.api.nvidia.com/v1/models"},models:[{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7"},{id:"minimaxai/minimax-m3",name:"MiniMax M3"},{id:"z-ai/glm-5.2",name:"GLM 5.2"},{id:"deepseek-ai/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",kind:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",params:["language"],kind:"stt"},{id:"fastpitch",name:"FastPitch",kind:"tts"},{id:"tacotron2",name:"Tacotron2",kind:"tts"}],serviceKinds:["llm","tts","embedding"],ttsConfig:{identity:"openai-node",baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{identity:"openai-node",baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"ollama-local",priority:50,hasFree:!0,alias:"ollama-local",display:{name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},category:"apikey",transport:{identity:"openai-node",baseUrl:"http://localhost:11434/api/chat",format:"ollama"},serviceKinds:["llm"]},{id:"ollama",priority:30,hasFree:!0,alias:"ollama",display:{name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"freeTier",transport:{identity:"openai-node",baseUrl:"https://ollama.com/api/chat",validateUrl:"https://ollama.com/api/tags",format:"ollama"},models:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"},{id:"minimax-m3",name:"MiniMax M3"}],serviceKinds:["llm"],features:{usage:!0,usageApikey:!0}},{id:"openai",priority:30,alias:"openai",display:{name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"}},category:"apikey",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",kind:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",kind:"embedding"},{id:"tts-1",name:"TTS-1",kind:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"whisper-1",name:"Whisper 1",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-image-1",name:"GPT Image 1",params:["n","size","quality","response_format"],kind:"image"},{id:"dall-e-3",name:"DALL-E 3",params:["size","quality","style","response_format"],kind:"image"},{id:"dall-e-2",name:"DALL-E 2",params:["n","size","response_format"],kind:"image"}],serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/images/generations"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"}},{id:"opencode-go",priority:210,alias:"opencode-go",aliases:["ocg"],uiAlias:"ocg",display:{name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then 0/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://opencode.ai/zen/go/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{identity:"openai-node",format:"openai-responses",baseUrl:"https://opencode.ai/zen/go/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"mimo-v2.5",name:"MiMo V2.5",supportedFormats:["openai"]},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]}]},{id:"opencode",priority:40,hasFree:!0,alias:"oc",uiAlias:"oc",display:{name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC"},category:"free",noAuth:!0,transport:{identity:"openai-node",baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"desktop"},noAuth:!0},models:[],modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0},{id:"openrouter",priority:10,hasFree:!0,alias:"openrouter",display:{name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After 0 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"}},category:"freeTier",transport:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",thinkingFormat:"openai",identity:"openai-node"},models:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",kind:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",kind:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",kind:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",kind:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",kind:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"openai/tts-1",name:"TTS-1",kind:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",params:["size","quality","style","response_format"],kind:"image"},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",params:["n","size","quality","response_format"],kind:"image"},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",params:["n","size"],kind:"image"},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",params:["n","size"],kind:"image"}],serviceKinds:["llm","embedding","tts","imageToText"],ttsConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts"},embeddingConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/images/generations"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0},{id:"perplexity-web",priority:220,alias:"perplexity-web",aliases:["pw"],uiAlias:"pw",display:{name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai"},category:"webCookie",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",transport:{identity:"chrome",baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},models:[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}]},{id:"perplexity",priority:180,alias:"perplexity",aliases:["pplx"],uiAlias:"pplx",display:{name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.perplexity.ai/chat/completions",validateUrl:"https://api.perplexity.ai/models"},models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"sonar",endpoint:"https://api.perplexity.ai/chat/completions",pricingUrl:"https://docs.perplexity.ai/guides/pricing"}},{id:"playht",alias:"playht",display:{name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{identity:"openai-node",id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"qoder",priority:30,alias:"qd",uiAlias:"qd",display:{name:"Qoder",icon:"water_drop",color:"#EC4899",website:"https://qoder.com",notice:{signupUrl:"https://qoder.com"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{identity:"openai-node",baseUrl:"https://api3.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.sh/api/v2/quota/usage"}},models:[{id:"qmodel_latest",name:"Qoder Qwen 3.7 Max"}],oauth:{openApiBaseUrl:"https://openapi.qoder.sh",centerBaseUrl:"https://center.qoder.sh",chatBaseUrl:"https://api3.qoder.sh",deviceTokenUrl:"https://openapi.qoder.sh/api/v1/deviceToken/poll",refreshUrl:"https://center.qoder.sh/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.sh/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.sh/api/v2/quota/usage",loginUrl:"https://qoder.com/device/selectAccounts"},features:{usage:!0}},{id:"qwen",priority:130,alias:"qw",display:{name:"Qwen Code",icon:"psychology",color:"#10B981",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai"}},category:"oauth",transport:{identity:"qwen",baseUrl:"https://portal.qwen.ai/v1/chat/completions"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.6 Coder Model"}],oauth:{clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256",refreshLeadMs:12e5}},{id:"recraft",priority:70,alias:"recraft",display:{name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"recraftv3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"recraftv2",name:"Recraft V2",params:["n","size","style"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://external.api.recraft.ai/v1/images/generations"}},{id:"runwayml",priority:80,alias:"runwayml",aliases:["runway"],uiAlias:"runway",display:{name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"gen4_image",name:"Gen-4 Image",params:["size"],kind:"image"},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",params:["size"],kind:"image"},{id:"gen4_turbo",name:"Gen-4 Turbo",params:[],kind:"video"},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",params:[],kind:"video"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.dev.runwayml.com/v1"}},{id:"sdwebui",priority:110,alias:"sdwebui",display:{name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"http://localhost:7860/sdapi/v1/txt2img"}},{id:"searchapi",alias:"searchapi",display:{name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"searxng",alias:"searxng",display:{name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org"},category:"freeTier",authType:"none",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{identity:"openai-node",baseUrl:"http://localhost:8888/search",method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},{id:"selfhosted-embedding",priority:50,alias:"selfhosted-embedding",display:{name:"Self-hosted Embedding",icon:"data_array",color:"#14B8A6",textIcon:"SE",website:"https://github.com/ggml-org/llama.cpp"},category:"apikey",authType:"apikey",models:[{id:"embedding",name:"Self-hosted embedding model",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai"}},{id:"selfhosted-stt",priority:50,alias:"selfhosted-stt",display:{name:"Self-hosted STT",icon:"mic",color:"#14B8A6",textIcon:"ST",website:"https://github.com/ggml-org/whisper.cpp"},category:"apikey",authType:"apikey",models:[{id:"whisper-1",name:"Whisper (self-hosted)",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["stt"],sttConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai"}},{id:"selfhosted-tts",priority:50,alias:"selfhosted-tts",display:{name:"Self-hosted TTS",icon:"record_voice_over",color:"#14B8A6",textIcon:"TT",website:"https://github.com/remsky/Kokoro-FastAPI"},category:"apikey",authType:"apikey",models:[{id:"kokoro",name:"Kokoro (self-hosted)",params:["voice","response_format","speed"],kind:"tts"}],serviceKinds:["tts"],ttsConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai",defaultModel:"kokoro",defaultVoice:"af_heart"}},{id:"serper",alias:"serper",display:{name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"siliconflow",priority:250,alias:"siliconflow",display:{name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.siliconflow.com/v1/chat/completions",validateUrl:"https://api.siliconflow.com/v1/models",thinkingFormat:"openai"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.2-Exp",name:"DeepSeek V3.2 Exp"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen 3.5 397B A17B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen 3.5 122B A10B"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"inclusionAI/Ling-flash-2.0",name:"Ling Flash 2.0"}]},{id:"stability-ai",priority:60,alias:"stability-ai",aliases:["stability"],uiAlias:"stability",display:{name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"stable-image-ultra",name:"Stable Image Ultra",params:["size"],kind:"image"},{id:"stable-image-core",name:"Stable Image Core",params:["size","style"],kind:"image"},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",params:["size"],kind:"image"},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:["size"],kind:"image"},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",params:["size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{id:"tavily",alias:"tavily",display:{name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{identity:"openai-node",baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{id:"together",priority:60,alias:"together",display:{name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.together.xyz/v1/chat/completions",validateUrl:"https://api.together.xyz/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",kind:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.together.xyz/v1/embeddings"}},{id:"topaz",alias:"topaz",display:{name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"}},category:"apikey",authType:"apikey",serviceKinds:["image"]},{id:"tortoise",alias:"tortoise",display:{name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{id:"venice",priority:115,alias:"venice",aliases:["vn"],uiAlias:"venice",display:{name:"Venice AI",icon:"shield",color:"#DC2626",textIcon:"VE",website:"https://venice.ai",notice:{text:"OpenAI-compatible. Private inference + uncensored models (Venice Uncensored, GLM, Qwen, DeepSeek, Llama).",apiKeyUrl:"https://venice.ai/settings/api"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.venice.ai/api/v1/chat/completions",validateUrl:"https://api.venice.ai/api/v1/models",thinkingFormat:"openai"},models:[{id:"venice-uncensored-1-2",name:"Venice Uncensored 1.2"},{id:"zai-org-glm-5",name:"GLM-5"},{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-coder-480b-a35b-instruct-turbo",name:"Qwen3 Coder 480B A35B Turbo"},{id:"qwen3-vl-235b-a22b",name:"Qwen3 VL 235B A22B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"hermes-3-llama-3.1-405b",name:"Hermes 3 Llama 3.1 405B"},{id:"mistral-small-3-2-24b-instruct",name:"Mistral Small 3.2 24B"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",kind:"embedding"},{id:"text-embedding-qwen3-8b",name:"Qwen3 8B Embedding",kind:"embedding"},{id:"venice-sd35",name:"Venice SD3.5",params:["n","size"],kind:"image"},{id:"flux-2-pro",name:"FLUX.2 Pro",params:["n","size"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2 (via Venice)",params:["n","size","quality"],kind:"image"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",baseUrl:"https://api.venice.ai/api/v1/images/generations"},modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},passthroughModels:!0},{id:"vercel-ai-gateway",priority:160,alias:"vercel-ai-gateway",aliases:["vercel"],uiAlias:"vercel",display:{name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",thinkingFormat:"openai",retry:{429:2},usage:{url:"https://ai-gateway.vercel.sh/v1/credits"}},serviceKinds:["llm","embedding","image","imageToText","webSearch"],embeddingConfig:{identity:"openai-node",baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{identity:"openai-node",baseUrl:"https://ai-gateway.vercel.sh/v1/images/generations"},searchViaChat:{defaultModel:"openai/gpt-4o-mini",pricingUrl:"https://vercel.com/docs/ai-gateway/pricing"},modelsFetcher:{url:"https://ai-gateway.vercel.sh/v1/models",type:"openai"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"vertex-partner",priority:260,alias:"vertex-partner",aliases:["vxp"],uiAlias:"vxp",display:{name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://aiplatform.googleapis.com"},models:[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},{id:"vertex",priority:40,alias:"vertex",aliases:["vx"],uiAlias:"vx",display:{name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"freeTier",transport:{identity:"openai-node",baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],serviceKinds:["llm","imageToText"]},{id:"volcengine-ark",priority:270,alias:"volcengine-ark",aliases:["ark"],uiAlias:"ark",display:{name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"DeepSeek-V4-Flash",name:"DeepSeek-V4-Flash"},{id:"DeepSeek-V4-Pro",name:"DeepSeek-V4-Pro"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"}]},{id:"voyage-ai",priority:40,alias:"voyage-ai",uiAlias:"voyage",display:{name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"voyage-3-large",name:"Voyage 3 Large",kind:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",kind:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",kind:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",kind:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",kind:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",kind:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.voyageai.com/v1/embeddings"}},{id:"xai",priority:280,alias:"xai",display:{name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"grok-cli",baseUrl:"https://api.x.ai/v1/chat/completions",validateUrl:"https://api.x.ai/v1/models",responsesUrl:"https://api.x.ai/v1/responses",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token"},models:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"},{id:"grok-2-image-1212",name:"Grok 2 Image",params:["n","response_format"],kind:"image"},{id:"grok-imagine-video",name:"Grok Imagine Video",params:["duration","aspect_ratio","resolution"],kind:"video"}],serviceKinds:["llm","imageToText","webSearch","image","video"],imageConfig:{identity:"grok-cli",baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},videoConfig:{identity:"grok-cli",baseUrl:"https://api.x.ai/v1/videos"},searchViaChat:{defaultModel:"grok-4.20-reasoning",endpoint:"https://api.x.ai/v1/responses",pricingUrl:"https://x.ai/api#pricing"}},l,m,{id:"youcom",alias:"youcom",display:{name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}}]},9960:(a,b,c)=>{"use strict";var d=c(99887),e=c(68531),f=c(11897),g=c(18184),h=c(90694),i=c(96684);(0,d.kz)(e.h.OLLAMA,e.h.OPENAI,null,function(a,b){if(!a){if(b.ollamaFinished||!b.ollamaSawContent)return null;b.ollamaFinished=!0;let{id:a,created:c,model:d}=b.ollama||{},e=(0,g.k)({id:a||`chatcmpl-${Date.now()}`,created:c||Math.floor(Date.now()/1e3),model:d||"ollama"},{},b.hadToolCalls?f.bC.TOOL_CALLS:f.bC.STOP);return b.ollamaUsage&&(e.usage=b.ollamaUsage),e}if("string"==typeof a){let b=a.trim();if(!b||"[DONE]"===b)return null;try{a=JSON.parse(b.startsWith("data:")?b.slice(5).trim():b)}catch{return null}}if(!a||"object"!=typeof a)return null;b.ollama||(b.ollama={id:`chatcmpl-${Date.now()}`,created:Math.floor(Date.now()/1e3),model:a.model||b.model},b.toolCallIndex=0,b.ollamaStreamTs=Date.now()),"number"!=typeof b.toolCallIndex&&(b.toolCallIndex=0);let{id:c,created:d,model:e}=b.ollama;if(a.done){var j;let k=(j=a,(0,h.B)(j,"ollama"));b.ollamaUsage=k,b.ollamaFinished=!0;let l=(0,i.F)(a.done_reason,"ollama");(a.done_reason===f.bC.TOOL_CALLS||b.hadToolCalls)&&(l=f.bC.TOOL_CALLS);let m=(0,g.k)({id:c,created:d,model:e},{},l);return m.usage=k,m}let k=a.message;if(!k)return null;let l="string"==typeof k.content?k.content:"",m="string"==typeof k.thinking?k.thinking:"",n=Array.isArray(k.tool_calls)?k.tool_calls:null;if(!l&&!m&&!n)return null;l&&(b.accumulatedContent=(b.accumulatedContent||"")+l),m&&(b.accumulatedThinking=(b.accumulatedThinking||"")+m);let o={};if(l&&(o.content=l,b.ollamaSawContent=!0),m&&(o.reasoning_content=m,b.ollamaSawContent=!0),n){b.hadToolCalls=!0,b.ollamaSawContent=!0;let a=b.toolCallIndex;o.tool_calls=function(a,b=0,c=Date.now()){return a.map((a,d)=>({index:a.function?.index??b+d,id:a.id||`call_${b+d}_${c}`,type:f.x4.FUNCTION,function:{name:a.function?.name||"",arguments:"string"==typeof a.function?.arguments?a.function.arguments:JSON.stringify(a.function?.arguments||{})}}))}(n,a,b.ollamaStreamTs),b.toolCallIndex=a+n.length}return(0,g.k)({id:c,created:d,model:e},o,null)})},10342:(a,b,c)=>{"use strict";c.d(b,{m:()=>e});var d=c(11897);function e(a){if("string"==typeof a){let b=""===a.trim()?"...":a;return[{type:d.Du.MESSAGE,role:d.z7.USER,content:[{type:d.Du.INPUT_TEXT,text:b}]}]}return Array.isArray(a)?0===a.length?[{type:d.Du.MESSAGE,role:d.z7.USER,content:[{type:d.Du.INPUT_TEXT,text:"..."}]}]:a:null}},10401:(a,b,c)=>{var d=c(45654);if(c(63070),c(32e3),c(36105),c(24985),c(36902),c(29984),c(33889),void 0===e)var e=d.jsbn.BigInteger;var f=d.util.isNodejs?c(55511):null,g=d.asn1,h=d.util;d.pki=d.pki||{},a.exports=d.pki.rsa=d.rsa=d.rsa||{};var i=d.pki,j=[6,4,2,4,2,4,6,2],k={name:"PrivateKeyInfo",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:g.Class.UNIVERSAL,type:g.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:g.Class.UNIVERSAL,type:g.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},l={name:"RSAPrivateKey",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},m={name:"RSAPublicKey",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},n=d.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:g.Class.UNIVERSAL,type:g.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:g.Class.UNIVERSAL,type:g.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},o={name:"DigestInfo",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:g.Class.UNIVERSAL,type:g.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:g.Class.UNIVERSAL,type:g.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:g.Class.UNIVERSAL,type:g.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},p=function(a){if(a.algorithm in i.oids)b=i.oids[a.algorithm];else{var b,c=Error("Unknown message digest algorithm.");throw c.algorithm=a.algorithm,c}var d=g.oidToDer(b).getBytes(),e=g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[]),f=g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[]);f.value.push(g.create(g.Class.UNIVERSAL,g.Type.OID,!1,d)),f.value.push(g.create(g.Class.UNIVERSAL,g.Type.NULL,!1,""));var h=g.create(g.Class.UNIVERSAL,g.Type.OCTETSTRING,!1,a.digest().getBytes());return e.value.push(f),e.value.push(h),g.toDer(e).getBytes()},q=function(a,b,c){if(c)return a.modPow(b.e,b.n);if(!b.p||!b.q)return a.modPow(b.d,b.n);b.dP||(b.dP=b.d.mod(b.p.subtract(e.ONE))),b.dQ||(b.dQ=b.d.mod(b.q.subtract(e.ONE))),b.qInv||(b.qInv=b.q.modInverse(b.p));do f=new e(d.util.bytesToHex(d.random.getBytes(b.n.bitLength()/8)),16);while(f.compareTo(b.n)>=0||!f.gcd(b.n).equals(e.ONE));for(var f,g=(a=a.multiply(f.modPow(b.e,b.n)).mod(b.n)).mod(b.p).modPow(b.dP,b.p),h=a.mod(b.q).modPow(b.dQ,b.q);0>g.compareTo(h);)g=g.add(b.p);var i=g.subtract(h).multiply(b.qInv).mod(b.p).multiply(b.q).add(h);return i.multiply(f.modInverse(b.n)).mod(b.n)};function r(a,b,c){var e,f=d.util.createBuffer(),g=Math.ceil(b.n.bitLength()/8);if(a.length>g-11){var h=Error("Message is too long for PKCS#1 v1.5 padding.");throw h.length=a.length,h.max=g-11,h}f.putByte(0),f.putByte(c);var i=g-3-a.length;if(0===c||1===c){e=255*(0!==c);for(var j=0;j<i;++j)f.putByte(e)}else for(;i>0;){for(var k=0,l=d.random.getBytes(i),j=0;j<i;++j)0===(e=l.charCodeAt(j))?++k:f.putByte(e);i=k}return f.putByte(0),f.putBytes(a),f}function s(a,b,c,e,f){var g=Math.ceil(b.n.bitLength()/8),h=d.util.createBuffer(a),i=h.getByte(),j=h.getByte();if(0!==i||c&&0!==j&&1!==j||!c&&2!==j||c&&0===j&&void 0===e)throw Error("Encryption block is invalid.");var k=0;if(0===j){k=g-3-e;for(var l=0;l<k;++l)if(0!==h.getByte())throw Error("Encryption block is invalid.")}else if(1===j){for(k=0;h.length()>1;){if(255!==h.getByte()){--h.read;break}++k}if(k<8&&!(f&&f._skipPaddingChecks))throw Error("Encryption block is invalid.")}else if(2===j){for(k=0;h.length()>1;){if(0===h.getByte()){--h.read;break}++k}if(k<8&&!(f&&f._skipPaddingChecks))throw Error("Encryption block is invalid.")}if(0!==h.getByte()||k!==g-3-h.length())throw Error("Encryption block is invalid.");return h.getBytes()}function t(a){var b=a.toString(16);b[0]>="8"&&(b="00"+b);var c=d.util.hexToBytes(b);return c.length>1&&(0===c.charCodeAt(0)&&(128&c.charCodeAt(1))==0||255===c.charCodeAt(0)&&(128&c.charCodeAt(1))==128)?c.substr(1):c}function u(a){return d.util.isNodejs&&"function"==typeof f[a]}function v(a){return void 0!==h.globalScope&&"object"==typeof h.globalScope.crypto&&"object"==typeof h.globalScope.crypto.subtle&&"function"==typeof h.globalScope.crypto.subtle[a]}function w(a){return void 0!==h.globalScope&&"object"==typeof h.globalScope.msCrypto&&"object"==typeof h.globalScope.msCrypto.subtle&&"function"==typeof h.globalScope.msCrypto.subtle[a]}function x(a){for(var b=d.util.hexToBytes(a.toString(16)),c=new Uint8Array(b.length),e=0;e<b.length;++e)c[e]=b.charCodeAt(e);return c}i.rsa.encrypt=function(a,b,c){var f,g=c,h=Math.ceil(b.n.bitLength()/8);!1!==c&&!0!==c?(g=2===c,f=r(a,b,c)):(f=d.util.createBuffer()).putBytes(a);for(var i=q(new e(f.toHex(),16),b,g).toString(16),j=d.util.createBuffer(),k=h-Math.ceil(i.length/2);k>0;)j.putByte(0),--k;return j.putBytes(d.util.hexToBytes(i)),j.getBytes()},i.rsa.decrypt=function(a,b,c,f){var g=Math.ceil(b.n.bitLength()/8);if(a.length!==g){var h=Error("Encrypted message length is invalid.");throw h.length=a.length,h.expected=g,h}var i=new e(d.util.createBuffer(a).toHex(),16);if(i.compareTo(b.n)>=0)throw Error("Encrypted message is invalid.");for(var j=q(i,b,c).toString(16),k=d.util.createBuffer(),l=g-Math.ceil(j.length/2);l>0;)k.putByte(0),--l;return(k.putBytes(d.util.hexToBytes(j)),!1!==f)?s(k.getBytes(),b,c):k.getBytes()},i.rsa.createKeyPairGenerationState=function(a,b,c){"string"==typeof a&&(a=parseInt(a,10)),a=a||2048;var f,g=(c=c||{}).prng||d.random,h=c.algorithm||"PRIMEINC";if("PRIMEINC"===h)(f={algorithm:h,state:0,bits:a,rng:{nextBytes:function(a){for(var b=g.getBytesSync(a.length),c=0;c<a.length;++c)a[c]=b.charCodeAt(c)}},eInt:b||65537,e:new e(null),p:null,q:null,qBits:a>>1,pBits:a-(a>>1),pqState:0,num:null,keys:null}).e.fromInt(f.eInt);else throw Error("Invalid key generation algorithm: "+h);return f},i.rsa.stepKeyPairGenerationState=function(a,b){"algorithm"in a||(a.algorithm="PRIMEINC");var c,d=new e(null);d.fromInt(30);for(var f=0,g=function(a,b){return a|b},h=+new Date,k=0;null===a.keys&&(b<=0||k<b);){if(0===a.state){var l,m=null===a.p?a.pBits:a.qBits,n=m-1;0===a.pqState?(a.num=new e(m,a.rng),a.num.testBit(n)||a.num.bitwiseTo(e.ONE.shiftLeft(n),g,a.num),a.num.dAddOffset(31-a.num.mod(d).byteValue(),0),f=0,++a.pqState):1===a.pqState?a.num.bitLength()>m?a.pqState=0:a.num.isProbablePrime((l=a.num.bitLength())<=100?27:l<=150?18:l<=200?15:l<=250?12:l<=300?9:l<=350?8:l<=400?7:l<=500?6:l<=600?5:l<=800?4:l<=1250?3:2)?++a.pqState:a.num.dAddOffset(j[f++%8],0):2===a.pqState?a.pqState=3*(0===a.num.subtract(e.ONE).gcd(a.e).compareTo(e.ONE)):3===a.pqState&&(a.pqState=0,null===a.p?a.p=a.num:a.q=a.num,null!==a.p&&null!==a.q&&++a.state,a.num=null)}else if(1===a.state)0>a.p.compareTo(a.q)&&(a.num=a.p,a.p=a.q,a.q=a.num),++a.state;else if(2===a.state)a.p1=a.p.subtract(e.ONE),a.q1=a.q.subtract(e.ONE),a.phi=a.p1.multiply(a.q1),++a.state;else if(3===a.state)0===a.phi.gcd(a.e).compareTo(e.ONE)?++a.state:(a.p=null,a.q=null,a.state=0);else if(4===a.state)a.n=a.p.multiply(a.q),a.n.bitLength()===a.bits?++a.state:(a.q=null,a.state=0);else if(5===a.state){var o=a.e.modInverse(a.phi);a.keys={privateKey:i.rsa.setPrivateKey(a.n,a.e,o,a.p,a.q,o.mod(a.p1),o.mod(a.q1),a.q.modInverse(a.p)),publicKey:i.rsa.setPublicKey(a.n,a.e)}}k+=(c=+new Date)-h,h=c}return null!==a.keys},i.rsa.generateKeyPair=function(a,b,c,j){if(1==arguments.length?"object"==typeof a?(c=a,a=void 0):"function"==typeof a&&(j=a,a=void 0):2==arguments.length?"number"==typeof a?"function"==typeof b?(j=b,b=void 0):"number"!=typeof b&&(c=b,b=void 0):(c=a,j=b,a=void 0,b=void 0):3==arguments.length&&("number"==typeof b?"function"==typeof c&&(j=c,c=void 0):(j=c,c=b,b=void 0)),c=c||{},void 0===a&&(a=c.bits||2048),void 0===b&&(b=c.e||65537),!d.options.usePureJavaScript&&!c.prng&&a>=256&&a<=16384&&(65537===b||3===b)){if(j){if(u("generateKeyPair"))return f.generateKeyPair("rsa",{modulusLength:a,publicExponent:b,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,b,c){if(a)return j(a);j(null,{privateKey:i.privateKeyFromPem(c),publicKey:i.publicKeyFromPem(b)})});if(v("generateKey")&&v("exportKey"))return h.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:a,publicExponent:x(b),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return h.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){j(a)}).then(function(a){if(a){var b=i.privateKeyFromAsn1(g.fromDer(d.util.createBuffer(a)));j(null,{privateKey:b,publicKey:i.setRsaPublicKey(b.n,b.e)})}});if(w("generateKey")&&w("exportKey")){var k=h.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:a,publicExponent:x(b),hash:{name:"SHA-256"}},!0,["sign","verify"]);k.oncomplete=function(a){var b=a.target.result,c=h.globalScope.msCrypto.subtle.exportKey("pkcs8",b.privateKey);c.oncomplete=function(a){var b=a.target.result,c=i.privateKeyFromAsn1(g.fromDer(d.util.createBuffer(b)));j(null,{privateKey:c,publicKey:i.setRsaPublicKey(c.n,c.e)})},c.onerror=function(a){j(a)}},k.onerror=function(a){j(a)};return}}else if(u("generateKeyPairSync")){var l=f.generateKeyPairSync("rsa",{modulusLength:a,publicExponent:b,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:i.privateKeyFromPem(l.privateKey),publicKey:i.publicKeyFromPem(l.publicKey)}}}var m=i.rsa.createKeyPairGenerationState(a,b,c);if(!j)return i.rsa.stepKeyPairGenerationState(m,0),m.keys;var n=m,o=c,p=j;"function"==typeof o&&(p=o,o={});var q={algorithm:{name:(o=o||{}).algorithm||"PRIMEINC",options:{workers:o.workers||2,workLoad:o.workLoad||100,workerScript:o.workerScript}}};function r(){s(n.pBits,function(a,b){return a?p(a):(n.p=b,null!==n.q)?t(a,n.q):void s(n.qBits,t)})}function s(a,b){d.prime.generateProbablePrime(a,q,b)}function t(a,b){if(a)return p(a);if(n.q=b,0>n.p.compareTo(n.q)){var c=n.p;n.p=n.q,n.q=c}if(0!==n.p.subtract(e.ONE).gcd(n.e).compareTo(e.ONE)){n.p=null,r();return}if(0!==n.q.subtract(e.ONE).gcd(n.e).compareTo(e.ONE)){n.q=null,s(n.qBits,t);return}if(n.p1=n.p.subtract(e.ONE),n.q1=n.q.subtract(e.ONE),n.phi=n.p1.multiply(n.q1),0!==n.phi.gcd(n.e).compareTo(e.ONE)){n.p=n.q=null,r();return}if(n.n=n.p.multiply(n.q),n.n.bitLength()!==n.bits){n.q=null,s(n.qBits,t);return}var d=n.e.modInverse(n.phi);n.keys={privateKey:i.rsa.setPrivateKey(n.n,n.e,d,n.p,n.q,d.mod(n.p1),d.mod(n.q1),n.q.modInverse(n.p)),publicKey:i.rsa.setPublicKey(n.n,n.e)},p(null,n.keys)}"prng"in o&&(q.prng=o.prng),r()},i.setRsaPublicKey=i.rsa.setPublicKey=function(a,b){var c={n:a,e:b};return c.encrypt=function(a,b,e){if("string"==typeof b?b=b.toUpperCase():void 0===b&&(b="RSAES-PKCS1-V1_5"),"RSAES-PKCS1-V1_5"===b)b={encode:function(a,b,c){return r(a,b,2).getBytes()}};else if("RSA-OAEP"===b||"RSAES-OAEP"===b)b={encode:function(a,b){return d.pkcs1.encode_rsa_oaep(b,a,e)}};else if(-1!==["RAW","NONE","NULL",null].indexOf(b))b={encode:function(a){return a}};else if("string"==typeof b)throw Error('Unsupported encryption scheme: "'+b+'".');var f=b.encode(a,c,!0);return i.rsa.encrypt(f,c,!0)},c.verify=function(a,b,e,f){"string"==typeof e?e=e.toUpperCase():void 0===e&&(e="RSASSA-PKCS1-V1_5"),void 0===f&&(f={_parseAllDigestBytes:!0,_skipPaddingChecks:!1}),"_parseAllDigestBytes"in f||(f._parseAllDigestBytes=!0),"_skipPaddingChecks"in f||(f._skipPaddingChecks=!1),"RSASSA-PKCS1-V1_5"===e?e={verify:function(a,b){b=s(b,c,!0,void 0,f);var e=g.fromDer(b,{parseAllBytes:f._parseAllDigestBytes}),h={},i=[];if(!g.validate(e,o,h,i)||2!==e.value.length){var j=Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw j.errors=i,j}var k=g.derToOid(h.algorithmIdentifier);if(k!==d.oids.md2&&k!==d.oids.md5&&k!==d.oids.sha1&&k!==d.oids.sha224&&k!==d.oids.sha256&&k!==d.oids.sha384&&k!==d.oids.sha512&&k!==d.oids["sha512-224"]&&k!==d.oids["sha512-256"]){var j=Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw j.oid=k,j}if((k===d.oids.md2||k===d.oids.md5)&&!("parameters"in h))throw Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifier NULL parameters.");return a===h.digest}}:("NONE"===e||"NULL"===e||null===e)&&(e={verify:function(a,b){return a===(b=s(b,c,!0,void 0,f))}});var h=i.rsa.decrypt(b,c,!0,!1);return e.verify(a,h,c.n.bitLength())},c},i.setRsaPrivateKey=i.rsa.setPrivateKey=function(a,b,c,e,f,g,h,j){var k={n:a,e:b,d:c,p:e,q:f,dP:g,dQ:h,qInv:j};return k.decrypt=function(a,b,c){"string"==typeof b?b=b.toUpperCase():void 0===b&&(b="RSAES-PKCS1-V1_5");var e=i.rsa.decrypt(a,k,!1,!1);if("RSAES-PKCS1-V1_5"===b)b={decode:s};else if("RSA-OAEP"===b||"RSAES-OAEP"===b)b={decode:function(a,b){return d.pkcs1.decode_rsa_oaep(b,a,c)}};else if(-1!==["RAW","NONE","NULL",null].indexOf(b))b={decode:function(a){return a}};else throw Error('Unsupported encryption scheme: "'+b+'".');return b.decode(e,k,!1)},k.sign=function(a,b){var c=!1;"string"==typeof b&&(b=b.toUpperCase()),void 0===b||"RSASSA-PKCS1-V1_5"===b?(b={encode:p},c=1):("NONE"===b||"NULL"===b||null===b)&&(b={encode:function(){return a}},c=1);var d=b.encode(a,k.n.bitLength());return i.rsa.encrypt(d,k,c)},k},i.wrapRsaPrivateKey=function(a){return g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,g.integerToDer(0).getBytes()),g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.OID,!1,g.oidToDer(i.oids.rsaEncryption).getBytes()),g.create(g.Class.UNIVERSAL,g.Type.NULL,!1,"")]),g.create(g.Class.UNIVERSAL,g.Type.OCTETSTRING,!1,g.toDer(a).getBytes())])},i.privateKeyFromAsn1=function(a){var b,c,f,h,j,m,n,o,p={},q=[];if(g.validate(a,k,p,q)&&(a=g.fromDer(d.util.createBuffer(p.privateKey))),p={},q=[],!g.validate(a,l,p,q)){var r=Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw r.errors=q,r}return b=d.util.createBuffer(p.privateKeyModulus).toHex(),c=d.util.createBuffer(p.privateKeyPublicExponent).toHex(),f=d.util.createBuffer(p.privateKeyPrivateExponent).toHex(),h=d.util.createBuffer(p.privateKeyPrime1).toHex(),j=d.util.createBuffer(p.privateKeyPrime2).toHex(),m=d.util.createBuffer(p.privateKeyExponent1).toHex(),n=d.util.createBuffer(p.privateKeyExponent2).toHex(),o=d.util.createBuffer(p.privateKeyCoefficient).toHex(),i.setRsaPrivateKey(new e(b,16),new e(c,16),new e(f,16),new e(h,16),new e(j,16),new e(m,16),new e(n,16),new e(o,16))},i.privateKeyToAsn1=i.privateKeyToRSAPrivateKey=function(a){return g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,g.integerToDer(0).getBytes()),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.n)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.e)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.d)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.p)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.q)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.dP)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.dQ)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.qInv))])},i.publicKeyFromAsn1=function(a){var b={},c=[];if(g.validate(a,n,b,c)){var f=g.derToOid(b.publicKeyOid);if(f!==i.oids.rsaEncryption){var h=Error("Cannot read public key. Unknown OID.");throw h.oid=f,h}a=b.rsaPublicKey}if(c=[],!g.validate(a,m,b,c)){var h=Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw h.errors=c,h}var j=d.util.createBuffer(b.publicKeyModulus).toHex(),k=d.util.createBuffer(b.publicKeyExponent).toHex();return i.setRsaPublicKey(new e(j,16),new e(k,16))},i.publicKeyToAsn1=i.publicKeyToSubjectPublicKeyInfo=function(a){return g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.OID,!1,g.oidToDer(i.oids.rsaEncryption).getBytes()),g.create(g.Class.UNIVERSAL,g.Type.NULL,!1,"")]),g.create(g.Class.UNIVERSAL,g.Type.BITSTRING,!1,[i.publicKeyToRSAPublicKey(a)])])},i.publicKeyToRSAPublicKey=function(a){return g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.n)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.e))])}},10793:(a,b,c)=>{"use strict";c.d(b,{$V:()=>s,Cn:()=>l,Co:()=>r,Ic:()=>p,J5:()=>n,NA:()=>u,QH:()=>m,VK:()=>v,Wu:()=>t,go:()=>i,nZ:()=>o,sX:()=>j,zv:()=>q});var d=c(21820),e=c(38421),f=c(70625);function g(){try{return(0,f.zi)("gemini-cli")||null}catch{return null}}let h=e.xq["gemini-cli"]?.cliVersion||g()?.version||"0.56.0",i=e.xq["gemini-cli"]?.apiClient||g()?.apiClient||"google-genai-sdk/1.41.0 gl-node/v22.19.0";function j(a="unknown"){let b,c=g()?.version||h;return`GeminiCLI/${c}/${a||"unknown"} (${(0,d.platform)()}; ${"ia32"===(b=(0,d.arch)())?"x86":b}; terminal)`}function k(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let l={ideType:9,platform:k(),pluginType:2};Object.freeze(["authorization","x-api-key","x-goog-api-key","x-switchboard-key","cookie","token","set-cookie","session-id","session_id","x-session-id","x-amp-thread-id","x-client-request-id"]),Object.freeze(["authorization","x-switchboard-key","x-api-key","x-goog-api-key","session-id","session_id","x-session-id","x-amp-thread-id","x-client-request-id"]);let m="_ide",n=new Set(["browser_subagent","command_status","find_by_name","generate_image","grep_search","list_dir","list_resources","multi_replace_file_content","notify_user","read_resource","read_terminal","read_url_content","replace_file_content","run_command","search_web","send_command_input","task_boundary","view_content_chunk","view_file","write_to_file"]),o={loadCodeAssist:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUser:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser"},p={"Content-Type":"application/json","User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"google-cloud-sdk vscode_cloudshelleditor/0.1","Client-Metadata":JSON.stringify({ideType:9,platform:k(),pluginType:2})},q={ideType:9,platform:k(),pluginType:2},r="You are Claude Code, Anthropic's official CLI for Claude.",s="You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**",t=Object.fromEntries(Object.entries(e.sr).filter(([,a])=>a.refreshLeadMs).map(([a,b])=>[a,b.refreshLeadMs])),u={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:e.sr.codex?.tokenUrl,auth:e.sr.codex?.authorizeUrl},anthropic:{token:e.sr.claude?.tokenUrl,auth:"https://api.anthropic.com/v1/oauth/authorize"},qwen:{token:e.sr.qwen?.tokenUrl,auth:e.sr.qwen?.deviceCodeUrl},iflow:{token:e.sr.iflow?.tokenUrl,auth:e.sr.iflow?.authorizeUrl},github:{token:e.sr.github?.tokenUrl,auth:e.sr.github?.authorizeUrl,deviceCode:e.sr.github?.deviceCodeUrl}};function v(a){let b="string"==typeof a&&a.trim()?a.trim():`kimi-${Date.now()}`;return{"X-Msh-Platform":"switchboard","X-Msh-Version":"2.1.2","X-Msh-Device-Model":"u">typeof process?`${process.platform} ${process.arch}`:"unknown","X-Msh-Device-Id":b}}},10962:(a,b,c)=>{"use strict";c.d(b,{M:()=>e});var d=c(82689);function e(a,b=d.Uc){let c=a.max_tokens||a.max_completion_tokens||a.max_output_tokens||d.Uc;return a.tools&&Array.isArray(a.tools)&&a.tools.length>0&&c<d.eo&&(c=d.eo),a.thinking?.budget_tokens&&c<=a.thinking.budget_tokens&&(c=a.thinking.budget_tokens+1024),c>b&&(c=b),c}},11380:(a,b,c)=>{"use strict";let{exec:d,execSync:e}=c(79646),f="win32"===process.platform;function g(){if(f)try{return e("net session >nul 2>&1",{windowsHide:!0,stdio:"ignore"}),!0}catch{return!1}return"function"==typeof process.getuid&&0===process.getuid()}function h(a){return`'${String(a).replace(/'/g,"''")}'`}a.exports={isAdmin:g,runElevatedPowerShell:function(a){if(!f)return Promise.reject(Error("Windows-only"));let b=Buffer.from(a,"utf16le").toString("base64");if(g())return new Promise((a,c)=>{d(`powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand ${b}`,{windowsHide:!0},(b,d,e)=>{b?c(Error(e||b.message)):a(d)})});let c=`
|
|
14
|
+
type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function j(a={}){let b=await (0,e.c)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(h)}async function k(a){return h((await (0,e.c)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function l(a){let b=await (0,e.c)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return i(b,f),f}async function m(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...h(e),...b,updatedAt:new Date().toISOString()};i(c,f),d=f}),d}async function n(a){let b=await (0,e.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=h(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]),(0,g.uQ)(b,a))}),c}},7344:(a,b,c)=>{"use strict";let d=c(78474);class e extends d{dispatch(){throw Error("not implemented")}close(){throw Error("not implemented")}destroy(){throw Error("not implemented")}compose(...a){let b=Array.isArray(a[0])?a[0]:a,c=this.dispatch.bind(this);for(let a of b)if(null!=a){if("function"!=typeof a)throw TypeError(`invalid interceptor, expected function received ${typeof a}`);if(null==(c=a(c))||"function"!=typeof c||2!==c.length)throw TypeError("invalid interceptor")}return new Proxy(this,{get:(a,b)=>"dispatch"===b?c:a[b]})}}a.exports=e},7878:(a,b,c)=>{"use strict";c(22884),c(87350),c(68531),c(82689),c(18762)},7893:(a,b,c)=>{"use strict";c.d(b,{A:()=>n});var d=c(74570);let e={id:"deepseek",priority:110,alias:"deepseek",aliases:["ds"],uiAlias:"ds",display:{name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.deepseek.com/chat/completions",validateUrl:"https://api.deepseek.com/models",reasoningInject:{scope:"all"}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://api.deepseek.com/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://api.deepseek.com/anthropic/v1/messages",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro Max",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-pro-none",name:"DeepSeek V4 Pro No Thinking",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],features:{usage:!0,usageApikey:!0}},f={id:"glm",priority:140,alias:"glm",display:{name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{identity:"claude-cli",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}};var g=c(45431);let h={id:"kimi-coding",hidden:!0,priority:120,alias:"kmc",display:{name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.moonshot.cn",notice:{signupUrl:"https://kimi.moonshot.cn"}},category:"oauth",transport:{identity:"kimi",baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},transports:[{identity:"kimi",format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{identity:"kimi",format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}}],models:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],oauth:{deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshLeadMs:3e5},features:{usage:!0}},i={id:"kimi",priority:170,alias:"kimi",display:{name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys"}},category:"apikey",transport:{identity:"kimi",baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}},transports:[{identity:"kimi",format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"kimi",format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],serviceKinds:["llm","webSearch"],features:{usage:!0,usageApikey:!0},searchViaChat:{defaultModel:"kimi-k2.5",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},j={id:"minimax-cn",priority:190,alias:"minimax-cn",display:{name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},quirks:{dropOutputConfig:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]}},transports:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","tts"],ttsConfig:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},k={id:"minimax",priority:90,alias:"minimax",display:{name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{identity:"claude-cli",baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},quirks:{dropOutputConfig:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"]}},transports:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",params:["n","size","response_format"],kind:"image"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","image","imageToText","webSearch","tts"],ttsConfig:{identity:"claude-cli",baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/v1/images/generations"},searchViaChat:{defaultModel:"MiniMax-M2.7",endpoint:"https://api.minimaxi.com/v1/text/chatcompletion_v2",pricingUrl:"https://www.minimaxi.com/document/price"},features:{usage:!0,usageApikey:!0}},l={id:"xiaomi-mimo",priority:290,alias:"xiaomi-mimo",aliases:["mimo"],uiAlias:"mimo",display:{name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://xiaomimimo.com"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-flash",name:"MiMo V2 Flash"}]},m={id:"xiaomi-tokenplan",priority:300,alias:"xiaomi-tokenplan",aliases:["xmtp"],uiAlias:"xmtp",display:{name:"Xiaomi MiMo (Token Plan)",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://mimo.xiaomi.com",notice:{text:"Xiaomi MiMo Token Plan subscription (API key starts with tp-). Token Plan keys are cluster-specific — select the region matching your subscription.",apiKeyUrl:"https://mimo.xiaomi.com"}},category:"apikey",hasProviderSpecificData:!0,regions:[{id:"sgp",label:"Singapore (新加坡)"},{id:"cn",label:"China (中国大陆)"},{id:"ams",label:"Amsterdam (阿姆斯特丹)"}],defaultRegion:"sgp",transport:{identity:"openai-node",baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1/chat/completions",regions:{sgp:"https://token-plan-sgp.xiaomimimo.com/v1",cn:"https://token-plan-cn.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"},defaultRegion:"sgp"},transports:[{identity:"openai-node",format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5-pro-claude",name:"MiMo V2.5 Pro (Claude Native)",targetFormat:"claude",upstreamModelId:"mimo-v2.5-pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-pro",name:"MiMo V2 Pro"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-tts",name:"MiMo V2 TTS"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS"},{id:"mimo-v2.5-tts-voiceclone",name:"MiMo V2.5 TTS Voice Clone"},{id:"mimo-v2.5-tts-voicedesign",name:"MiMo V2.5 TTS Voice Design"}]},n=[{id:"alicode-intl",priority:10,alias:"alicode-intl",display:{name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alicode",priority:20,alias:"alicode",display:{name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"anthropic",priority:30,alias:"anthropic",display:{name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"}},category:"apikey",transport:{identity:"claude-cli",baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{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"}],serviceKinds:["llm","imageToText"]},{id:"antigravity",priority:20,alias:"ag",uiAlias:"ag",display:{name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",serviceKinds:["llm","image"],modelsFetcher:{url:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",method:"POST",type:"google-available-models",headers:{"X-Client-Name":"antigravity"}},transport:{identity:"antigravity",baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3-flash-agent",name:"Gemini 3.5 Flash (High)"},{id:"gemini-3.5-flash-low",name:"Gemini 3.5 Flash (Medium)"},{id:"gemini-3.5-flash-extra-low",name:"Gemini 3.5 Flash (Low)"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",refreshLeadMs:3e5},features:{usage:!0}},{id:"assemblyai",priority:30,alias:"assemblyai",aliases:["aai"],uiAlias:"aai",display:{name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",validateUrl:"https://api.assemblyai.com/v1/account"},models:[{id:"universal-3-pro",name:"Universal 3 Pro",params:["language"],kind:"stt"},{id:"universal-2",name:"Universal 2",params:["language"],kind:"stt"},{id:"best",name:"Best (Nano + Universal)",kind:"stt"},{id:"nano",name:"Nano (Fast)",kind:"stt"}],serviceKinds:["stt"],sttConfig:{identity:"openai-node",baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{id:"aws-polly",alias:"polly",display:{name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{identity:"openai-node",id:"neural",name:"Neural"},{identity:"openai-node",id:"long-form",name:"Long-form"},{identity:"openai-node",id:"generative",name:"Generative"}]},hasProviderSpecificData:!0},{id:"azure",priority:40,alias:"azure",display:{name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"}},category:"apikey",hasProviderSpecificData:!0,transport:{identity:"openai-node",baseUrl:"",headers:{}}},{id:"black-forest-labs",priority:50,alias:"black-forest-labs",aliases:["bfl"],uiAlias:"bfl",display:{name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",params:["n","size"],kind:"image"},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",params:["size"],kind:"image"},{id:"flux-pro",name:"FLUX Pro",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",params:["size"],capabilities:["edit"],kind:"image"},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",params:["size"],capabilities:["edit"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.bfl.ai/v1"}},{id:"blackbox",priority:50,alias:"blackbox",aliases:["bb"],uiAlias:"bb",display:{name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"}},category:"apikey",serviceKinds:["llm"],thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},transport:{identity:"openai-node",baseUrl:"https://api.blackbox.ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"claude-fable-5",name:"Claude Fable 5",upstreamModelId:"blackboxai/anthropic/claude-fable-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",upstreamModelId:"blackboxai/anthropic/claude-opus-4.8"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",upstreamModelId:"blackboxai/anthropic/claude-sonnet-4.6"},{id:"gpt-5.5",name:"GPT-5.5",upstreamModelId:"blackboxai/openai/gpt-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",upstreamModelId:"blackboxai/openai/gpt-5.4-pro"},{id:"gpt-5.4",name:"GPT-5.4",upstreamModelId:"blackboxai/openai/gpt-5.4"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"blackboxai/openai/gpt-5.3-codex"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",upstreamModelId:"blackboxai/openai/gpt-5.4-nano"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"blackboxai/deepseek/deepseek-v4-flash"},{id:"grok-4.3",name:"Grok 4.3",upstreamModelId:"blackboxai/x-ai/grok-4.3"}]},{id:"brave-search",alias:"brave",display:{name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"byteplus",priority:70,alias:"byteplus",aliases:["bpm"],uiAlias:"bpm",display:{name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"}},category:"freeTier",transport:{identity:"openai-node",baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],serviceKinds:["llm"]},{id:"cartesia",alias:"cartesia",display:{name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{identity:"openai-node",id:"sonic-3",name:"Sonic 3"}]},hidden:!0},{id:"cerebras",priority:60,alias:"cerebras",display:{name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.cerebras.ai/v1/chat/completions",validateUrl:"https://api.cerebras.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},{id:"chutes",priority:70,alias:"chutes",aliases:["ch"],uiAlias:"ch",display:{name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://llm.chutes.ai/v1/chat/completions",validateUrl:"https://llm.chutes.ai/v1/models"}},{id:"claude",priority:10,alias:"cc",uiAlias:"cc",display:{name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{identity:"claude-cli",baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Dangerous-Direct-Browser-Access":"true"},quirks:{cloakToolsOnOAuth:!0},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}},usage:{oauthUrl:"https://api.anthropic.com/api/oauth/usage",orgUrl:"https://api.anthropic.com/v1/organizations/{org_id}/usage",settingsUrl:"https://api.anthropic.com/v1/settings"}},models:[{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],oauth:{clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256",refreshLeadMs:144e5,refresh:{encoding:"json"}},features:{usage:!0}},{id:"cline",priority:80,alias:"cl",uiAlias:"cl",display:{name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}},category:"oauth",transport:{identity:"cline",baseUrl:"https://api.cline.bot/api/v1/chat/completions",tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"}},{id:"clinepass",priority:85,alias:"clinepass",aliases:["cline-pass"],uiAlias:"clinepass",display:{name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"cline",baseUrl:"https://api.cline.bot/api/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"cline-pass/glm-5.2",name:"GLM-5.2 (ClinePass)"},{id:"cline-pass/kimi-k2.7-code",name:"Kimi K2.7 Code (ClinePass)"},{id:"cline-pass/kimi-k2.6",name:"Kimi K2.6 (ClinePass)"},{id:"cline-pass/deepseek-v4-pro",name:"DeepSeek V4 Pro (ClinePass)"},{id:"cline-pass/deepseek-v4-flash",name:"DeepSeek V4 Flash (ClinePass)"},{id:"cline-pass/mimo-v2.5",name:"MiMo-V2.5 (ClinePass)"},{id:"cline-pass/mimo-v2.5-pro",name:"MiMo-V2.5-Pro (ClinePass)"},{id:"cline-pass/minimax-m3",name:"MiniMax M3 (ClinePass)"},{id:"cline-pass/qwen3.7-max",name:"Qwen3.7 Max (ClinePass)"},{id:"cline-pass/qwen3.7-plus",name:"Qwen3.7 Plus (ClinePass)"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},thinkingConfig:{options:["auto","on","off"],defaultMode:"auto"}},{id:"cloudflare-ai",priority:60,hasFree:!0,alias:"cloudflare-ai",aliases:["cf"],uiAlias:"cf",display:{name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"}},category:"freeTier",hasProviderSpecificData:!0,transport:{identity:"openai-node",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"},{id:"@cf/black-forest-labs/flux-2-klein-9b",name:"FLUX.2 Klein 9B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-klein-4b",name:"FLUX.2 Klein 4B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-dev",name:"FLUX.2 Dev",params:["size"],kind:"image"},{id:"@cf/leonardo/lucid-origin",name:"Lucid Origin",params:["size"],kind:"image"},{id:"@cf/leonardo/phoenix-1.0",name:"Phoenix 1.0",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-1-schnell",name:"FLUX.1 Schnell",params:["size"],kind:"image"},{id:"@cf/bytedance/stable-diffusion-xl-lightning",name:"SDXL Lightning",params:["size"],kind:"image"},{id:"@cf/lykon/dreamshaper-8-lcm",name:"DreamShaper 8 LCM",params:["size"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-img2img",name:"Stable Diffusion v1.5 Img2Img",params:["size"],capabilities:["edit"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-inpainting",name:"Stable Diffusion v1.5 Inpainting",params:["size"],capabilities:["edit","mask"],kind:"image"},{id:"@cf/stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:["size"],kind:"image"}],serviceKinds:["llm","image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.cloudflare.com/client/v4/accounts"}},{id:"codebuddy-cn",alias:"cbcn",uiAlias:"cbcn",hidden:!1,priority:90,display:{name:"CodeBuddy CN",icon:"smart_toy",color:"#006EFF",website:"https://copilot.tencent.com",notice:{signupUrl:"https://copilot.tencent.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"openai-node",baseUrl:"https://copilot.tencent.com/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"CLI/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"CLI","X-IDE-Name":"CLI","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://copilot.tencent.com/v2/billing/meter/get-user-resource"}},models:[{id:"glm-5.2",name:"GLM-5.2"},{id:"glm-5.1",name:"GLM-5.1"},{id:"glm-5.0",name:"GLM-5.0"},{id:"glm-5.0-turbo",name:"GLM-5.0-Turbo"},{id:"glm-5v-turbo",name:"GLM-5v-Turbo"},{id:"glm-4.7",name:"GLM-4.7"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"kimi-k2.7",name:"Kimi-K2.7-Code"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"hy3-preview",name:"Hy3 Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4-flash",name:"DeepSeek-V4-Flash"},{id:"deepseek-v3-2-volc",name:"DeepSeek-V3.2"}],oauth:{baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},{id:"codex",priority:30,alias:"cx",uiAlias:"cx",display:{name:"OpenAI Codex",icon:"code",color:"#3B82F6",website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"},deprecated:!0,deprecationNotice:"RISK_NOTICE",kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."}},category:"oauth",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{identity:"codex-cli",baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,usage:{url:"https://chatgpt.com/backend-api/wham/usage",resetCreditsUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits",resetCreditsConsumeUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits/consume"}},models:[{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.5-review",name:"GPT 5.5 Review",upstreamModelId:"gpt-5.5",quotaFamily:"review"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.4-review",name:"GPT 5.4 Review",upstreamModelId:"gpt-5.4",quotaFamily:"review"},{id:"gpt-5.4-mini",name:"GPT 5.4 Mini"},{id:"gpt-5.4-mini-review",name:"GPT 5.4 Mini Review",upstreamModelId:"gpt-5.4-mini",quotaFamily:"review"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-review",name:"GPT 5.3 Codex Review",upstreamModelId:"gpt-5.3-codex",quotaFamily:"review"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-xhigh-review",name:"GPT 5.3 Codex (xHigh) Review",upstreamModelId:"gpt-5.3-codex-xhigh",quotaFamily:"review"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-high-review",name:"GPT 5.3 Codex (High) Review",upstreamModelId:"gpt-5.3-codex-high",quotaFamily:"review"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-low-review",name:"GPT 5.3 Codex (Low) Review",upstreamModelId:"gpt-5.3-codex-low",quotaFamily:"review"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-none-review",name:"GPT 5.3 Codex (None) Review",upstreamModelId:"gpt-5.3-codex-none",quotaFamily:"review"},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.3-codex-spark-review",name:"GPT 5.3 Codex Spark Review",upstreamModelId:"gpt-5.3-codex-spark",quotaFamily:"review"},{id:"gpt-5.5-image",name:"GPT 5.5 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.4-image",name:"GPT 5.4 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.3-image",name:"GPT 5.3 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"}],serviceKinds:["llm","image"],oauth:{clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",fixedPort:1455,callbackPath:"/auth/callback",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"},refreshLeadMs:432e6,maxRefreshAgeMs:6912e5,trackRefreshAt:!0,acceptsRawAccessToken:!0,rawAccessTokenIssuers:["https://auth.openai.com","https://auth0.openai.com"]},features:{usage:!0}},{id:"cohere",priority:90,alias:"cohere",display:{name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.cohere.ai/v1/chat/completions",validateUrl:"https://api.cohere.ai/v1/models"},models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},{id:"comfyui",priority:120,alias:"comfyui",display:{name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},category:"apikey",transport:null,models:[{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"sdxl",name:"SDXL",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"http://localhost:8188"}},{id:"commandcode",priority:100,alias:"commandcode",aliases:["cmc"],uiAlias:"cmc",display:{name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",forceStream:!0,headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},modelsFetcher:{url:"https://api.commandcode.ai/provider/v1/models",method:"GET",type:"openai",requiresAuth:!0},models:[{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.7-Code-Highspeed",name:"Kimi K2.7 Code HighSpeed"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-5.2",name:"GLM 5.2"},{id:"zai-org/GLM-5.2-Fast",name:"GLM 5.2 Fast"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"xiaomi/mimo-v2.5",name:"MiMo V2.5"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"Qwen/Qwen3.7-Max",name:"Qwen 3.7 Max"},{id:"Qwen/Qwen3.7-Plus",name:"Qwen 3.7 Plus"},{id:"stepfun/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"},{id:"tencent/Hy3",name:"Tencent Hy3"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"}]},{id:"coqui",alias:"coqui",display:{name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},hidden:!0},{id:"cursor",priority:50,alias:"cu",uiAlias:"cu",display:{name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},category:"oauth",transport:{identity:"openai-node",baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"composer-2.5",name:"Composer 2.5"},{id:"composer-2.5-fast",name:"Composer 2.5 Fast"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetUsableModels",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}}},{id:"deepgram",priority:20,alias:"deepgram",aliases:["dg"],uiAlias:"dg",display:{name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.deepgram.com/v1/listen"},models:[{id:"nova-3",name:"Nova 3",params:["language"],kind:"stt"},{id:"nova-2",name:"Nova 2",params:["language"],kind:"stt"},{id:"whisper-large",name:"Whisper Large",params:["language"],kind:"stt"},{id:"nova",name:"Nova",kind:"stt"}],serviceKinds:["stt"],sttConfig:{identity:"openai-node",baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram"}},e,{id:"edge-tts",alias:"edge-tts",display:{name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},{id:"elevenlabs",alias:"el",display:{name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{identity:"openai-node",id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},{id:"exa",alias:"exa",display:{name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{identity:"openai-node",baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},{id:"fal-ai",priority:90,hasFree:!0,alias:"fal-ai",aliases:["fal"],uiAlias:"fal",display:{name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",params:["n","size"],kind:"image"},{id:"fal-ai/flux/dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",params:["n","size"],kind:"image"},{id:"fal-ai/recraft-v3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",params:["n","size","style"],kind:"image"},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://queue.fal.run"}},{id:"firecrawl",alias:"firecrawl",display:{name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{identity:"openai-node",baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},{id:"fireworks",priority:50,alias:"fireworks",display:{name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",validateUrl:"https://api.fireworks.ai/inference/v1/models"},models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},{id:"gemini-cli",priority:20,hasFree:!0,alias:"gc",uiAlias:"gc",display:{name:"Gemini CLI",icon:"terminal",color:"#4285F4",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{identity:"gemini-cli",baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",usage:{quotaUrl:"https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",loadCodeAssistUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"},clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite 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"}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"],refresh:{encoding:"form"}},features:{usage:!0}},{id:"gemini",priority:50,hasFree:!0,alias:"gemini",display:{name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"}},category:"freeTier",mediaPriority:1,transport:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",auth:{apiKey:{header:"x-goog-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash 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"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",kind:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",kind:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",kind:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",kind:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",params:[],kind:"image"},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",params:[],kind:"image"},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",params:[],kind:"image"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",kind:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",kind:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",kind:"tts"},{id:"embedding-001",name:"Embedding 001",dimensions:768,kind:"embedding"}],serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],ttsConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models"},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."}},{id:"github",priority:40,alias:"gh",uiAlias:"gh",display:{name:"GitHub Copilot",icon:"code",color:"#333333",website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{identity:"copilot",baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"copilot",baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer"},oauth:{clientId:"Iv1.b507a08c87ecfe98",authorizeUrl:"https://github.com/login/oauth/authorize",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token"},features:{usage:!0}},{id:"gitlab",hidden:!0,priority:100,display:{name:"GitLab Duo",icon:"code",color:"#FC6D26",textIcon:"GL",website:"https://gitlab.com",notice:{signupUrl:"https://gitlab.com"}},category:"oauth",transport:{identity:"openai-node",baseUrl:"https://gitlab.com/api/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"}},{id:"glm-cn",priority:130,alias:"glm-cn",display:{name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",headers:{},usage:{url:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"}},models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],features:{usage:!0,usageApikey:!0}},f,{id:"google-pse",alias:"gpse",display:{name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"google-tts",alias:"google-tts",display:{name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},g.A,{id:"grok-web",priority:150,alias:"grok-web",aliases:["gw"],uiAlias:"gw",display:{name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com"},category:"webCookie",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",transport:{identity:"chrome",baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},models:[{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],passthroughModels:!0},{id:"groq",priority:60,hasFree:!0,alias:"groq",display:{name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models"},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["llm","imageToText","stt"],sttConfig:{identity:"openai-node",baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"huggingface",priority:70,hasFree:!0,alias:"huggingface",aliases:["hf"],uiAlias:"hf",display:{name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:["language"],kind:"stt"},{id:"openai/whisper-small",name:"Whisper Small (HF)",params:["language"],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{identity:"openai-node",baseUrl:"https://api-inference.huggingface.co/models"}},{id:"hyperbolic",priority:160,alias:"hyperbolic",aliases:["hyp"],uiAlias:"hyp",display:{name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",validateUrl:"https://api.hyperbolic.xyz/v1/models"},models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},{id:"iflow",hidden:!0,priority:110,alias:"if",display:{name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},category:"oauth",transport:{identity:"openai-node",baseUrl:"https://apis.iflow.cn/v1/chat/completions",thinkingFormat:"openai",headers:{"User-Agent":"iFlow-Cli"}},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],oauth:{clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"},refreshLeadMs:864e5}},{id:"inworld",alias:"inworld",display:{name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{identity:"openai-node",id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},{id:"jina-ai",alias:"jina",display:{name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{identity:"openai-node",id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{identity:"openai-node",id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},{id:"jina-reader",alias:"jina-reader",display:{name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{identity:"openai-node",baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{id:"kilocode",priority:70,alias:"kc",uiAlias:"kc",display:{name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},category:"oauth",transport:{identity:"openai-node",baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",headers:{},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kilocodeOrg"]}},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],modelsFetcher:{url:"https://api.kilo.ai/api/gateway/models",type:"openrouter-free"},passthroughModels:!0,oauth:{apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"}},{id:"kimchi",priority:95,alias:"kimchi",uiAlias:"kimchi",display:{name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,transport:{identity:"openai-node",baseUrl:"https://llm.kimchi.dev/openai/v1/chat/completions",format:"openai",headers:{"User-Agent":"kimchi/0.1.50"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"minimax-m3",name:"MiniMax-M3"},{id:"kimi-k2.7",name:"Kimi-K2.7"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"nemotron-3-ultra-fp4",name:"Nemotron 3 Ultra FP4"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"}],serviceKinds:["llm","imageToText"],oauth:{webAppUrl:"https://app.kimchi.dev",validationUrl:"https://api.cast.ai/v1/llm/openai/supported-providers",userInfoUrl:"https://app.kimchi.dev/api/v1/me",modelsUrl:"https://llm.kimchi.dev/v1/models/metadata?include_in_cli=true"},passthroughModels:!0},h,i,{id:"kiro",priority:10,alias:"kr",uiAlias:"kr",display:{name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{identity:"openai-node",baseUrl:"https://runtime.us-east-1.kiro.dev/generateAssistantResponse",baseUrls:["https://runtime.us-east-1.kiro.dev/generateAssistantResponse","https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse","https://q.us-east-1.amazonaws.com/generateAssistantResponse"],format:"kiro",retry:{429:0},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev",usage:{cwHost:"https://codewhisperer.us-east-1.amazonaws.com",qHost:"https://q.us-east-1.amazonaws.com",limitsPath:"/getUsageLimits"}},models:[{id:"claude-opus-4.8",name:"Claude Opus 4.8"},{id:"claude-opus-4.8-thinking",name:"Claude Opus 4.8 (Thinking)"},{id:"claude-opus-4.8-agentic",name:"Claude Opus 4.8 (Agentic)"},{id:"claude-opus-4.8-thinking-agentic",name:"Claude Opus 4.8 (Thinking + Agentic)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"claude-opus-4.7-thinking",name:"Claude Opus 4.7 (Thinking)"},{id:"claude-opus-4.7-agentic",name:"Claude Opus 4.7 (Agentic)"},{id:"claude-opus-4.7-thinking-agentic",name:"Claude Opus 4.7 (Thinking + Agentic)"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 (Thinking)"},{id:"claude-opus-4.5-agentic",name:"Claude Opus 4.5 (Agentic)"},{id:"claude-opus-4.5-thinking-agentic",name:"Claude Opus 4.5 (Thinking + Agentic)"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"claude-sonnet-5-thinking",name:"Claude Sonnet 5 (Thinking)"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 (Thinking)"},{id:"claude-haiku-4.5-thinking",name:"Claude Haiku 4.5 (Thinking)"},{id:"claude-sonnet-5-agentic",name:"Claude Sonnet 5 (Agentic)"},{id:"claude-sonnet-4.5-agentic",name:"Claude Sonnet 4.5 (Agentic)"},{id:"claude-haiku-4.5-agentic",name:"Claude Haiku 4.5 (Agentic)"},{id:"claude-sonnet-5-thinking-agentic",name:"Claude Sonnet 5 (Thinking + Agentic)"},{id:"claude-sonnet-4.5-thinking-agentic",name:"Claude Sonnet 4.5 (Thinking + Agentic)"},{id:"claude-haiku-4.5-thinking-agentic",name:"Claude Haiku 4.5 (Thinking + Agentic)"}],oauth:{ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},features:{usage:!0,usageApikey:!0}},{id:"linkup",alias:"linkup",display:{name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"local-device",alias:"local-device",display:{name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"mimo-free",priority:50,hasFree:!0,alias:"mmf",uiAlias:"mmf",display:{name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF"},category:"free",noAuth:!0,transport:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}],modelsFetcher:{url:"https://models.dev/api.json",type:"mimo-free"},passthroughModels:!0},j,k,{id:"mistral",priority:80,alias:"mistral",display:{name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.mistral.ai/v1/chat/completions",validateUrl:"https://api.mistral.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",kind:"embedding"}],serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"mmf",hidden:!0,priority:200,display:{name:"MMF",icon:"hub",color:"#6366F1",textIcon:"MF"},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}]},{id:"nanobanana",priority:80,hasFree:!0,alias:"nanobanana",aliases:["nb"],uiAlias:"nb",display:{name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",validateUrl:"https://api.nanobananaapi.ai/v1/models"},models:[{id:"nanobanana-flash",name:"NanoBanana Flash",params:["n","size"],kind:"image"},{id:"nanobanana-pro",name:"NanoBanana Pro",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",pollUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info"}},{id:"nebius",priority:70,alias:"nebius",display:{name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",validateUrl:"https://api.studio.nebius.ai/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},{id:"nvidia",priority:20,hasFree:!0,alias:"nvidia",display:{name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},category:"freeTier",transport:{identity:"openai-node",baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",validateUrl:"https://integrate.api.nvidia.com/v1/models"},models:[{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7"},{id:"minimaxai/minimax-m3",name:"MiniMax M3"},{id:"z-ai/glm-5.2",name:"GLM 5.2"},{id:"deepseek-ai/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",kind:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",params:["language"],kind:"stt"},{id:"fastpitch",name:"FastPitch",kind:"tts"},{id:"tacotron2",name:"Tacotron2",kind:"tts"}],serviceKinds:["llm","tts","embedding"],ttsConfig:{identity:"openai-node",baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{identity:"openai-node",baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"ollama-local",priority:50,hasFree:!0,alias:"ollama-local",display:{name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},category:"apikey",transport:{identity:"openai-node",baseUrl:"http://localhost:11434/api/chat",format:"ollama"},serviceKinds:["llm"]},{id:"ollama",priority:30,hasFree:!0,alias:"ollama",display:{name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"freeTier",transport:{identity:"openai-node",baseUrl:"https://ollama.com/api/chat",validateUrl:"https://ollama.com/api/tags",format:"ollama"},models:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"},{id:"minimax-m3",name:"MiniMax M3"}],serviceKinds:["llm"],features:{usage:!0,usageApikey:!0}},{id:"openai",priority:30,alias:"openai",display:{name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"}},category:"apikey",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",kind:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",kind:"embedding"},{id:"tts-1",name:"TTS-1",kind:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"whisper-1",name:"Whisper 1",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-image-1",name:"GPT Image 1",params:["n","size","quality","response_format"],kind:"image"},{id:"dall-e-3",name:"DALL-E 3",params:["size","quality","style","response_format"],kind:"image"},{id:"dall-e-2",name:"DALL-E 2",params:["n","size","response_format"],kind:"image"}],serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/images/generations"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"}},{id:"opencode-go",priority:210,alias:"opencode-go",aliases:["ocg"],uiAlias:"ocg",display:{name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then 0/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://opencode.ai/zen/go/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{identity:"openai-node",format:"openai-responses",baseUrl:"https://opencode.ai/zen/go/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"mimo-v2.5",name:"MiMo V2.5",supportedFormats:["openai"]},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]}]},{id:"opencode",priority:40,hasFree:!0,alias:"oc",uiAlias:"oc",display:{name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC"},category:"free",noAuth:!0,transport:{identity:"openai-node",baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"desktop"},noAuth:!0},models:[],modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0},{id:"openrouter",priority:10,hasFree:!0,alias:"openrouter",display:{name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After 0 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"}},category:"freeTier",transport:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",thinkingFormat:"openai",identity:"openai-node"},models:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",kind:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",kind:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",kind:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",kind:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",kind:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"openai/tts-1",name:"TTS-1",kind:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",params:["size","quality","style","response_format"],kind:"image"},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",params:["n","size","quality","response_format"],kind:"image"},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",params:["n","size"],kind:"image"},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",params:["n","size"],kind:"image"}],serviceKinds:["llm","embedding","tts","imageToText"],ttsConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts"},embeddingConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/images/generations"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0},{id:"perplexity-web",priority:220,alias:"perplexity-web",aliases:["pw"],uiAlias:"pw",display:{name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai"},category:"webCookie",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",transport:{identity:"chrome",baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},models:[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}]},{id:"perplexity",priority:180,alias:"perplexity",aliases:["pplx"],uiAlias:"pplx",display:{name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.perplexity.ai/chat/completions",validateUrl:"https://api.perplexity.ai/models"},models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"sonar",endpoint:"https://api.perplexity.ai/chat/completions",pricingUrl:"https://docs.perplexity.ai/guides/pricing"}},{id:"playht",alias:"playht",display:{name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{identity:"openai-node",baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{identity:"openai-node",id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"qoder",priority:30,alias:"qd",uiAlias:"qd",display:{name:"Qoder",icon:"water_drop",color:"#EC4899",website:"https://qoder.com",notice:{signupUrl:"https://qoder.com"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{identity:"openai-node",baseUrl:"https://api3.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.sh/api/v2/quota/usage"}},models:[{id:"qmodel_latest",name:"Qoder Qwen 3.7 Max"}],oauth:{openApiBaseUrl:"https://openapi.qoder.sh",centerBaseUrl:"https://center.qoder.sh",chatBaseUrl:"https://api3.qoder.sh",deviceTokenUrl:"https://openapi.qoder.sh/api/v1/deviceToken/poll",refreshUrl:"https://center.qoder.sh/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.sh/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.sh/api/v2/quota/usage",loginUrl:"https://qoder.com/device/selectAccounts"},features:{usage:!0}},{id:"qwen",priority:130,alias:"qw",display:{name:"Qwen Code",icon:"psychology",color:"#10B981",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai"}},category:"oauth",transport:{identity:"qwen",baseUrl:"https://portal.qwen.ai/v1/chat/completions"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.6 Coder Model"}],oauth:{clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256",refreshLeadMs:12e5}},{id:"recraft",priority:70,alias:"recraft",display:{name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"recraftv3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"recraftv2",name:"Recraft V2",params:["n","size","style"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://external.api.recraft.ai/v1/images/generations"}},{id:"runwayml",priority:80,alias:"runwayml",aliases:["runway"],uiAlias:"runway",display:{name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"gen4_image",name:"Gen-4 Image",params:["size"],kind:"image"},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",params:["size"],kind:"image"},{id:"gen4_turbo",name:"Gen-4 Turbo",params:[],kind:"video"},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",params:[],kind:"video"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.dev.runwayml.com/v1"}},{id:"sdwebui",priority:110,alias:"sdwebui",display:{name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"http://localhost:7860/sdapi/v1/txt2img"}},{id:"searchapi",alias:"searchapi",display:{name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"searxng",alias:"searxng",display:{name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org"},category:"freeTier",authType:"none",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{identity:"openai-node",baseUrl:"http://localhost:8888/search",method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},{id:"selfhosted-embedding",priority:50,alias:"selfhosted-embedding",display:{name:"Self-hosted Embedding",icon:"data_array",color:"#14B8A6",textIcon:"SE",website:"https://github.com/ggml-org/llama.cpp"},category:"apikey",authType:"apikey",models:[{id:"embedding",name:"Self-hosted embedding model",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai"}},{id:"selfhosted-stt",priority:50,alias:"selfhosted-stt",display:{name:"Self-hosted STT",icon:"mic",color:"#14B8A6",textIcon:"ST",website:"https://github.com/ggml-org/whisper.cpp"},category:"apikey",authType:"apikey",models:[{id:"whisper-1",name:"Whisper (self-hosted)",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["stt"],sttConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai"}},{id:"selfhosted-tts",priority:50,alias:"selfhosted-tts",display:{name:"Self-hosted TTS",icon:"record_voice_over",color:"#14B8A6",textIcon:"TT",website:"https://github.com/remsky/Kokoro-FastAPI"},category:"apikey",authType:"apikey",models:[{id:"kokoro",name:"Kokoro (self-hosted)",params:["voice","response_format","speed"],kind:"tts"}],serviceKinds:["tts"],ttsConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai",defaultModel:"kokoro",defaultVoice:"af_heart"}},{id:"serper",alias:"serper",display:{name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"siliconflow",priority:250,alias:"siliconflow",display:{name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.siliconflow.com/v1/chat/completions",validateUrl:"https://api.siliconflow.com/v1/models",thinkingFormat:"openai"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.2-Exp",name:"DeepSeek V3.2 Exp"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen 3.5 397B A17B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen 3.5 122B A10B"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"inclusionAI/Ling-flash-2.0",name:"Ling Flash 2.0"}]},{id:"stability-ai",priority:60,alias:"stability-ai",aliases:["stability"],uiAlias:"stability",display:{name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"stable-image-ultra",name:"Stable Image Ultra",params:["size"],kind:"image"},{id:"stable-image-core",name:"Stable Image Core",params:["size","style"],kind:"image"},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",params:["size"],kind:"image"},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:["size"],kind:"image"},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",params:["size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{id:"tavily",alias:"tavily",display:{name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{identity:"openai-node",baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{id:"together",priority:60,alias:"together",display:{name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.together.xyz/v1/chat/completions",validateUrl:"https://api.together.xyz/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",kind:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.together.xyz/v1/embeddings"}},{id:"topaz",alias:"topaz",display:{name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"}},category:"apikey",authType:"apikey",serviceKinds:["image"]},{id:"tortoise",alias:"tortoise",display:{name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{identity:"openai-node",baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{id:"venice",priority:115,alias:"venice",aliases:["vn"],uiAlias:"venice",display:{name:"Venice AI",icon:"shield",color:"#DC2626",textIcon:"VE",website:"https://venice.ai",notice:{text:"OpenAI-compatible. Private inference + uncensored models (Venice Uncensored, GLM, Qwen, DeepSeek, Llama).",apiKeyUrl:"https://venice.ai/settings/api"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.venice.ai/api/v1/chat/completions",validateUrl:"https://api.venice.ai/api/v1/models",thinkingFormat:"openai"},models:[{id:"venice-uncensored-1-2",name:"Venice Uncensored 1.2"},{id:"zai-org-glm-5",name:"GLM-5"},{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-coder-480b-a35b-instruct-turbo",name:"Qwen3 Coder 480B A35B Turbo"},{id:"qwen3-vl-235b-a22b",name:"Qwen3 VL 235B A22B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"hermes-3-llama-3.1-405b",name:"Hermes 3 Llama 3.1 405B"},{id:"mistral-small-3-2-24b-instruct",name:"Mistral Small 3.2 24B"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",kind:"embedding"},{id:"text-embedding-qwen3-8b",name:"Qwen3 8B Embedding",kind:"embedding"},{id:"venice-sd35",name:"Venice SD3.5",params:["n","size"],kind:"image"},{id:"flux-2-pro",name:"FLUX.2 Pro",params:["n","size"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2 (via Venice)",params:["n","size","quality"],kind:"image"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",baseUrl:"https://api.venice.ai/api/v1/images/generations"},modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},passthroughModels:!0},{id:"vercel-ai-gateway",priority:160,alias:"vercel-ai-gateway",aliases:["vercel"],uiAlias:"vercel",display:{name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",thinkingFormat:"openai",retry:{429:2},usage:{url:"https://ai-gateway.vercel.sh/v1/credits"}},serviceKinds:["llm","embedding","image","imageToText","webSearch"],embeddingConfig:{identity:"openai-node",baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{identity:"openai-node",baseUrl:"https://ai-gateway.vercel.sh/v1/images/generations"},searchViaChat:{defaultModel:"openai/gpt-4o-mini",pricingUrl:"https://vercel.com/docs/ai-gateway/pricing"},modelsFetcher:{url:"https://ai-gateway.vercel.sh/v1/models",type:"openai"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"vertex-partner",priority:260,alias:"vertex-partner",aliases:["vxp"],uiAlias:"vxp",display:{name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://aiplatform.googleapis.com"},models:[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},{id:"vertex",priority:40,alias:"vertex",aliases:["vx"],uiAlias:"vx",display:{name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"freeTier",transport:{identity:"openai-node",baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],serviceKinds:["llm","imageToText"]},{id:"volcengine-ark",priority:270,alias:"volcengine-ark",aliases:["ark"],uiAlias:"ark",display:{name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"DeepSeek-V4-Flash",name:"DeepSeek-V4-Flash"},{id:"DeepSeek-V4-Pro",name:"DeepSeek-V4-Pro"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"}]},{id:"voyage-ai",priority:40,alias:"voyage-ai",uiAlias:"voyage",display:{name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"voyage-3-large",name:"Voyage 3 Large",kind:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",kind:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",kind:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",kind:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",kind:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",kind:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.voyageai.com/v1/embeddings"}},{id:"xai",priority:280,alias:"xai",display:{name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"grok-cli",baseUrl:"https://api.x.ai/v1/chat/completions",validateUrl:"https://api.x.ai/v1/models",responsesUrl:"https://api.x.ai/v1/responses",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token"},models:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"},{id:"grok-2-image-1212",name:"Grok 2 Image",params:["n","response_format"],kind:"image"},{id:"grok-imagine-video",name:"Grok Imagine Video",params:["duration","aspect_ratio","resolution"],kind:"video"}],serviceKinds:["llm","imageToText","webSearch","image","video"],imageConfig:{identity:"grok-cli",baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},videoConfig:{identity:"grok-cli",baseUrl:"https://api.x.ai/v1/videos"},searchViaChat:{defaultModel:"grok-4.20-reasoning",endpoint:"https://api.x.ai/v1/responses",pricingUrl:"https://x.ai/api#pricing"}},l,m,{id:"youcom",alias:"youcom",display:{name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}}]},9960:(a,b,c)=>{"use strict";var d=c(99887),e=c(68531),f=c(11897),g=c(18184),h=c(90694),i=c(96684);(0,d.kz)(e.h.OLLAMA,e.h.OPENAI,null,function(a,b){if(!a){if(b.ollamaFinished||!b.ollamaSawContent)return null;b.ollamaFinished=!0;let{id:a,created:c,model:d}=b.ollama||{},e=(0,g.k)({id:a||`chatcmpl-${Date.now()}`,created:c||Math.floor(Date.now()/1e3),model:d||"ollama"},{},b.hadToolCalls?f.bC.TOOL_CALLS:f.bC.STOP);return b.ollamaUsage&&(e.usage=b.ollamaUsage),e}if("string"==typeof a){let b=a.trim();if(!b||"[DONE]"===b)return null;try{a=JSON.parse(b.startsWith("data:")?b.slice(5).trim():b)}catch{return null}}if(!a||"object"!=typeof a)return null;b.ollama||(b.ollama={id:`chatcmpl-${Date.now()}`,created:Math.floor(Date.now()/1e3),model:a.model||b.model},b.toolCallIndex=0,b.ollamaStreamTs=Date.now()),"number"!=typeof b.toolCallIndex&&(b.toolCallIndex=0);let{id:c,created:d,model:e}=b.ollama;if(a.done){var j;let k=(j=a,(0,h.B)(j,"ollama"));b.ollamaUsage=k,b.ollamaFinished=!0;let l=(0,i.F)(a.done_reason,"ollama");(a.done_reason===f.bC.TOOL_CALLS||b.hadToolCalls)&&(l=f.bC.TOOL_CALLS);let m=(0,g.k)({id:c,created:d,model:e},{},l);return m.usage=k,m}let k=a.message;if(!k)return null;let l="string"==typeof k.content?k.content:"",m="string"==typeof k.thinking?k.thinking:"",n=Array.isArray(k.tool_calls)?k.tool_calls:null;if(!l&&!m&&!n)return null;l&&(b.accumulatedContent=(b.accumulatedContent||"")+l),m&&(b.accumulatedThinking=(b.accumulatedThinking||"")+m);let o={};if(l&&(o.content=l,b.ollamaSawContent=!0),m&&(o.reasoning_content=m,b.ollamaSawContent=!0),n){b.hadToolCalls=!0,b.ollamaSawContent=!0;let a=b.toolCallIndex;o.tool_calls=function(a,b=0,c=Date.now()){return a.map((a,d)=>({index:a.function?.index??b+d,id:a.id||`call_${b+d}_${c}`,type:f.x4.FUNCTION,function:{name:a.function?.name||"",arguments:"string"==typeof a.function?.arguments?a.function.arguments:JSON.stringify(a.function?.arguments||{})}}))}(n,a,b.ollamaStreamTs),b.toolCallIndex=a+n.length}return(0,g.k)({id:c,created:d,model:e},o,null)})},10342:(a,b,c)=>{"use strict";c.d(b,{m:()=>e});var d=c(11897);function e(a){if("string"==typeof a){let b=""===a.trim()?"...":a;return[{type:d.Du.MESSAGE,role:d.z7.USER,content:[{type:d.Du.INPUT_TEXT,text:b}]}]}return Array.isArray(a)?0===a.length?[{type:d.Du.MESSAGE,role:d.z7.USER,content:[{type:d.Du.INPUT_TEXT,text:"..."}]}]:a:null}},10401:(a,b,c)=>{var d=c(45654);if(c(63070),c(32e3),c(36105),c(24985),c(36902),c(29984),c(33889),void 0===e)var e=d.jsbn.BigInteger;var f=d.util.isNodejs?c(55511):null,g=d.asn1,h=d.util;d.pki=d.pki||{},a.exports=d.pki.rsa=d.rsa=d.rsa||{};var i=d.pki,j=[6,4,2,4,2,4,6,2],k={name:"PrivateKeyInfo",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:g.Class.UNIVERSAL,type:g.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:g.Class.UNIVERSAL,type:g.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},l={name:"RSAPrivateKey",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},m={name:"RSAPublicKey",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:g.Class.UNIVERSAL,type:g.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},n=d.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:g.Class.UNIVERSAL,type:g.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:g.Class.UNIVERSAL,type:g.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},o={name:"DigestInfo",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:g.Class.UNIVERSAL,type:g.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:g.Class.UNIVERSAL,type:g.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:g.Class.UNIVERSAL,type:g.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:g.Class.UNIVERSAL,type:g.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},p=function(a){if(a.algorithm in i.oids)b=i.oids[a.algorithm];else{var b,c=Error("Unknown message digest algorithm.");throw c.algorithm=a.algorithm,c}var d=g.oidToDer(b).getBytes(),e=g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[]),f=g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[]);f.value.push(g.create(g.Class.UNIVERSAL,g.Type.OID,!1,d)),f.value.push(g.create(g.Class.UNIVERSAL,g.Type.NULL,!1,""));var h=g.create(g.Class.UNIVERSAL,g.Type.OCTETSTRING,!1,a.digest().getBytes());return e.value.push(f),e.value.push(h),g.toDer(e).getBytes()},q=function(a,b,c){if(c)return a.modPow(b.e,b.n);if(!b.p||!b.q)return a.modPow(b.d,b.n);b.dP||(b.dP=b.d.mod(b.p.subtract(e.ONE))),b.dQ||(b.dQ=b.d.mod(b.q.subtract(e.ONE))),b.qInv||(b.qInv=b.q.modInverse(b.p));do f=new e(d.util.bytesToHex(d.random.getBytes(b.n.bitLength()/8)),16);while(f.compareTo(b.n)>=0||!f.gcd(b.n).equals(e.ONE));for(var f,g=(a=a.multiply(f.modPow(b.e,b.n)).mod(b.n)).mod(b.p).modPow(b.dP,b.p),h=a.mod(b.q).modPow(b.dQ,b.q);0>g.compareTo(h);)g=g.add(b.p);var i=g.subtract(h).multiply(b.qInv).mod(b.p).multiply(b.q).add(h);return i.multiply(f.modInverse(b.n)).mod(b.n)};function r(a,b,c){var e,f=d.util.createBuffer(),g=Math.ceil(b.n.bitLength()/8);if(a.length>g-11){var h=Error("Message is too long for PKCS#1 v1.5 padding.");throw h.length=a.length,h.max=g-11,h}f.putByte(0),f.putByte(c);var i=g-3-a.length;if(0===c||1===c){e=255*(0!==c);for(var j=0;j<i;++j)f.putByte(e)}else for(;i>0;){for(var k=0,l=d.random.getBytes(i),j=0;j<i;++j)0===(e=l.charCodeAt(j))?++k:f.putByte(e);i=k}return f.putByte(0),f.putBytes(a),f}function s(a,b,c,e,f){var g=Math.ceil(b.n.bitLength()/8),h=d.util.createBuffer(a),i=h.getByte(),j=h.getByte();if(0!==i||c&&0!==j&&1!==j||!c&&2!==j||c&&0===j&&void 0===e)throw Error("Encryption block is invalid.");var k=0;if(0===j){k=g-3-e;for(var l=0;l<k;++l)if(0!==h.getByte())throw Error("Encryption block is invalid.")}else if(1===j){for(k=0;h.length()>1;){if(255!==h.getByte()){--h.read;break}++k}if(k<8&&!(f&&f._skipPaddingChecks))throw Error("Encryption block is invalid.")}else if(2===j){for(k=0;h.length()>1;){if(0===h.getByte()){--h.read;break}++k}if(k<8&&!(f&&f._skipPaddingChecks))throw Error("Encryption block is invalid.")}if(0!==h.getByte()||k!==g-3-h.length())throw Error("Encryption block is invalid.");return h.getBytes()}function t(a){var b=a.toString(16);b[0]>="8"&&(b="00"+b);var c=d.util.hexToBytes(b);return c.length>1&&(0===c.charCodeAt(0)&&(128&c.charCodeAt(1))==0||255===c.charCodeAt(0)&&(128&c.charCodeAt(1))==128)?c.substr(1):c}function u(a){return d.util.isNodejs&&"function"==typeof f[a]}function v(a){return void 0!==h.globalScope&&"object"==typeof h.globalScope.crypto&&"object"==typeof h.globalScope.crypto.subtle&&"function"==typeof h.globalScope.crypto.subtle[a]}function w(a){return void 0!==h.globalScope&&"object"==typeof h.globalScope.msCrypto&&"object"==typeof h.globalScope.msCrypto.subtle&&"function"==typeof h.globalScope.msCrypto.subtle[a]}function x(a){for(var b=d.util.hexToBytes(a.toString(16)),c=new Uint8Array(b.length),e=0;e<b.length;++e)c[e]=b.charCodeAt(e);return c}i.rsa.encrypt=function(a,b,c){var f,g=c,h=Math.ceil(b.n.bitLength()/8);!1!==c&&!0!==c?(g=2===c,f=r(a,b,c)):(f=d.util.createBuffer()).putBytes(a);for(var i=q(new e(f.toHex(),16),b,g).toString(16),j=d.util.createBuffer(),k=h-Math.ceil(i.length/2);k>0;)j.putByte(0),--k;return j.putBytes(d.util.hexToBytes(i)),j.getBytes()},i.rsa.decrypt=function(a,b,c,f){var g=Math.ceil(b.n.bitLength()/8);if(a.length!==g){var h=Error("Encrypted message length is invalid.");throw h.length=a.length,h.expected=g,h}var i=new e(d.util.createBuffer(a).toHex(),16);if(i.compareTo(b.n)>=0)throw Error("Encrypted message is invalid.");for(var j=q(i,b,c).toString(16),k=d.util.createBuffer(),l=g-Math.ceil(j.length/2);l>0;)k.putByte(0),--l;return(k.putBytes(d.util.hexToBytes(j)),!1!==f)?s(k.getBytes(),b,c):k.getBytes()},i.rsa.createKeyPairGenerationState=function(a,b,c){"string"==typeof a&&(a=parseInt(a,10)),a=a||2048;var f,g=(c=c||{}).prng||d.random,h=c.algorithm||"PRIMEINC";if("PRIMEINC"===h)(f={algorithm:h,state:0,bits:a,rng:{nextBytes:function(a){for(var b=g.getBytesSync(a.length),c=0;c<a.length;++c)a[c]=b.charCodeAt(c)}},eInt:b||65537,e:new e(null),p:null,q:null,qBits:a>>1,pBits:a-(a>>1),pqState:0,num:null,keys:null}).e.fromInt(f.eInt);else throw Error("Invalid key generation algorithm: "+h);return f},i.rsa.stepKeyPairGenerationState=function(a,b){"algorithm"in a||(a.algorithm="PRIMEINC");var c,d=new e(null);d.fromInt(30);for(var f=0,g=function(a,b){return a|b},h=+new Date,k=0;null===a.keys&&(b<=0||k<b);){if(0===a.state){var l,m=null===a.p?a.pBits:a.qBits,n=m-1;0===a.pqState?(a.num=new e(m,a.rng),a.num.testBit(n)||a.num.bitwiseTo(e.ONE.shiftLeft(n),g,a.num),a.num.dAddOffset(31-a.num.mod(d).byteValue(),0),f=0,++a.pqState):1===a.pqState?a.num.bitLength()>m?a.pqState=0:a.num.isProbablePrime((l=a.num.bitLength())<=100?27:l<=150?18:l<=200?15:l<=250?12:l<=300?9:l<=350?8:l<=400?7:l<=500?6:l<=600?5:l<=800?4:l<=1250?3:2)?++a.pqState:a.num.dAddOffset(j[f++%8],0):2===a.pqState?a.pqState=3*(0===a.num.subtract(e.ONE).gcd(a.e).compareTo(e.ONE)):3===a.pqState&&(a.pqState=0,null===a.p?a.p=a.num:a.q=a.num,null!==a.p&&null!==a.q&&++a.state,a.num=null)}else if(1===a.state)0>a.p.compareTo(a.q)&&(a.num=a.p,a.p=a.q,a.q=a.num),++a.state;else if(2===a.state)a.p1=a.p.subtract(e.ONE),a.q1=a.q.subtract(e.ONE),a.phi=a.p1.multiply(a.q1),++a.state;else if(3===a.state)0===a.phi.gcd(a.e).compareTo(e.ONE)?++a.state:(a.p=null,a.q=null,a.state=0);else if(4===a.state)a.n=a.p.multiply(a.q),a.n.bitLength()===a.bits?++a.state:(a.q=null,a.state=0);else if(5===a.state){var o=a.e.modInverse(a.phi);a.keys={privateKey:i.rsa.setPrivateKey(a.n,a.e,o,a.p,a.q,o.mod(a.p1),o.mod(a.q1),a.q.modInverse(a.p)),publicKey:i.rsa.setPublicKey(a.n,a.e)}}k+=(c=+new Date)-h,h=c}return null!==a.keys},i.rsa.generateKeyPair=function(a,b,c,j){if(1==arguments.length?"object"==typeof a?(c=a,a=void 0):"function"==typeof a&&(j=a,a=void 0):2==arguments.length?"number"==typeof a?"function"==typeof b?(j=b,b=void 0):"number"!=typeof b&&(c=b,b=void 0):(c=a,j=b,a=void 0,b=void 0):3==arguments.length&&("number"==typeof b?"function"==typeof c&&(j=c,c=void 0):(j=c,c=b,b=void 0)),c=c||{},void 0===a&&(a=c.bits||2048),void 0===b&&(b=c.e||65537),!d.options.usePureJavaScript&&!c.prng&&a>=256&&a<=16384&&(65537===b||3===b)){if(j){if(u("generateKeyPair"))return f.generateKeyPair("rsa",{modulusLength:a,publicExponent:b,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,b,c){if(a)return j(a);j(null,{privateKey:i.privateKeyFromPem(c),publicKey:i.publicKeyFromPem(b)})});if(v("generateKey")&&v("exportKey"))return h.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:a,publicExponent:x(b),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return h.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){j(a)}).then(function(a){if(a){var b=i.privateKeyFromAsn1(g.fromDer(d.util.createBuffer(a)));j(null,{privateKey:b,publicKey:i.setRsaPublicKey(b.n,b.e)})}});if(w("generateKey")&&w("exportKey")){var k=h.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:a,publicExponent:x(b),hash:{name:"SHA-256"}},!0,["sign","verify"]);k.oncomplete=function(a){var b=a.target.result,c=h.globalScope.msCrypto.subtle.exportKey("pkcs8",b.privateKey);c.oncomplete=function(a){var b=a.target.result,c=i.privateKeyFromAsn1(g.fromDer(d.util.createBuffer(b)));j(null,{privateKey:c,publicKey:i.setRsaPublicKey(c.n,c.e)})},c.onerror=function(a){j(a)}},k.onerror=function(a){j(a)};return}}else if(u("generateKeyPairSync")){var l=f.generateKeyPairSync("rsa",{modulusLength:a,publicExponent:b,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:i.privateKeyFromPem(l.privateKey),publicKey:i.publicKeyFromPem(l.publicKey)}}}var m=i.rsa.createKeyPairGenerationState(a,b,c);if(!j)return i.rsa.stepKeyPairGenerationState(m,0),m.keys;var n=m,o=c,p=j;"function"==typeof o&&(p=o,o={});var q={algorithm:{name:(o=o||{}).algorithm||"PRIMEINC",options:{workers:o.workers||2,workLoad:o.workLoad||100,workerScript:o.workerScript}}};function r(){s(n.pBits,function(a,b){return a?p(a):(n.p=b,null!==n.q)?t(a,n.q):void s(n.qBits,t)})}function s(a,b){d.prime.generateProbablePrime(a,q,b)}function t(a,b){if(a)return p(a);if(n.q=b,0>n.p.compareTo(n.q)){var c=n.p;n.p=n.q,n.q=c}if(0!==n.p.subtract(e.ONE).gcd(n.e).compareTo(e.ONE)){n.p=null,r();return}if(0!==n.q.subtract(e.ONE).gcd(n.e).compareTo(e.ONE)){n.q=null,s(n.qBits,t);return}if(n.p1=n.p.subtract(e.ONE),n.q1=n.q.subtract(e.ONE),n.phi=n.p1.multiply(n.q1),0!==n.phi.gcd(n.e).compareTo(e.ONE)){n.p=n.q=null,r();return}if(n.n=n.p.multiply(n.q),n.n.bitLength()!==n.bits){n.q=null,s(n.qBits,t);return}var d=n.e.modInverse(n.phi);n.keys={privateKey:i.rsa.setPrivateKey(n.n,n.e,d,n.p,n.q,d.mod(n.p1),d.mod(n.q1),n.q.modInverse(n.p)),publicKey:i.rsa.setPublicKey(n.n,n.e)},p(null,n.keys)}"prng"in o&&(q.prng=o.prng),r()},i.setRsaPublicKey=i.rsa.setPublicKey=function(a,b){var c={n:a,e:b};return c.encrypt=function(a,b,e){if("string"==typeof b?b=b.toUpperCase():void 0===b&&(b="RSAES-PKCS1-V1_5"),"RSAES-PKCS1-V1_5"===b)b={encode:function(a,b,c){return r(a,b,2).getBytes()}};else if("RSA-OAEP"===b||"RSAES-OAEP"===b)b={encode:function(a,b){return d.pkcs1.encode_rsa_oaep(b,a,e)}};else if(-1!==["RAW","NONE","NULL",null].indexOf(b))b={encode:function(a){return a}};else if("string"==typeof b)throw Error('Unsupported encryption scheme: "'+b+'".');var f=b.encode(a,c,!0);return i.rsa.encrypt(f,c,!0)},c.verify=function(a,b,e,f){"string"==typeof e?e=e.toUpperCase():void 0===e&&(e="RSASSA-PKCS1-V1_5"),void 0===f&&(f={_parseAllDigestBytes:!0,_skipPaddingChecks:!1}),"_parseAllDigestBytes"in f||(f._parseAllDigestBytes=!0),"_skipPaddingChecks"in f||(f._skipPaddingChecks=!1),"RSASSA-PKCS1-V1_5"===e?e={verify:function(a,b){b=s(b,c,!0,void 0,f);var e=g.fromDer(b,{parseAllBytes:f._parseAllDigestBytes}),h={},i=[];if(!g.validate(e,o,h,i)||2!==e.value.length){var j=Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw j.errors=i,j}var k=g.derToOid(h.algorithmIdentifier);if(k!==d.oids.md2&&k!==d.oids.md5&&k!==d.oids.sha1&&k!==d.oids.sha224&&k!==d.oids.sha256&&k!==d.oids.sha384&&k!==d.oids.sha512&&k!==d.oids["sha512-224"]&&k!==d.oids["sha512-256"]){var j=Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw j.oid=k,j}if((k===d.oids.md2||k===d.oids.md5)&&!("parameters"in h))throw Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifier NULL parameters.");return a===h.digest}}:("NONE"===e||"NULL"===e||null===e)&&(e={verify:function(a,b){return a===(b=s(b,c,!0,void 0,f))}});var h=i.rsa.decrypt(b,c,!0,!1);return e.verify(a,h,c.n.bitLength())},c},i.setRsaPrivateKey=i.rsa.setPrivateKey=function(a,b,c,e,f,g,h,j){var k={n:a,e:b,d:c,p:e,q:f,dP:g,dQ:h,qInv:j};return k.decrypt=function(a,b,c){"string"==typeof b?b=b.toUpperCase():void 0===b&&(b="RSAES-PKCS1-V1_5");var e=i.rsa.decrypt(a,k,!1,!1);if("RSAES-PKCS1-V1_5"===b)b={decode:s};else if("RSA-OAEP"===b||"RSAES-OAEP"===b)b={decode:function(a,b){return d.pkcs1.decode_rsa_oaep(b,a,c)}};else if(-1!==["RAW","NONE","NULL",null].indexOf(b))b={decode:function(a){return a}};else throw Error('Unsupported encryption scheme: "'+b+'".');return b.decode(e,k,!1)},k.sign=function(a,b){var c=!1;"string"==typeof b&&(b=b.toUpperCase()),void 0===b||"RSASSA-PKCS1-V1_5"===b?(b={encode:p},c=1):("NONE"===b||"NULL"===b||null===b)&&(b={encode:function(){return a}},c=1);var d=b.encode(a,k.n.bitLength());return i.rsa.encrypt(d,k,c)},k},i.wrapRsaPrivateKey=function(a){return g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,g.integerToDer(0).getBytes()),g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.OID,!1,g.oidToDer(i.oids.rsaEncryption).getBytes()),g.create(g.Class.UNIVERSAL,g.Type.NULL,!1,"")]),g.create(g.Class.UNIVERSAL,g.Type.OCTETSTRING,!1,g.toDer(a).getBytes())])},i.privateKeyFromAsn1=function(a){var b,c,f,h,j,m,n,o,p={},q=[];if(g.validate(a,k,p,q)&&(a=g.fromDer(d.util.createBuffer(p.privateKey))),p={},q=[],!g.validate(a,l,p,q)){var r=Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw r.errors=q,r}return b=d.util.createBuffer(p.privateKeyModulus).toHex(),c=d.util.createBuffer(p.privateKeyPublicExponent).toHex(),f=d.util.createBuffer(p.privateKeyPrivateExponent).toHex(),h=d.util.createBuffer(p.privateKeyPrime1).toHex(),j=d.util.createBuffer(p.privateKeyPrime2).toHex(),m=d.util.createBuffer(p.privateKeyExponent1).toHex(),n=d.util.createBuffer(p.privateKeyExponent2).toHex(),o=d.util.createBuffer(p.privateKeyCoefficient).toHex(),i.setRsaPrivateKey(new e(b,16),new e(c,16),new e(f,16),new e(h,16),new e(j,16),new e(m,16),new e(n,16),new e(o,16))},i.privateKeyToAsn1=i.privateKeyToRSAPrivateKey=function(a){return g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,g.integerToDer(0).getBytes()),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.n)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.e)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.d)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.p)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.q)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.dP)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.dQ)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.qInv))])},i.publicKeyFromAsn1=function(a){var b={},c=[];if(g.validate(a,n,b,c)){var f=g.derToOid(b.publicKeyOid);if(f!==i.oids.rsaEncryption){var h=Error("Cannot read public key. Unknown OID.");throw h.oid=f,h}a=b.rsaPublicKey}if(c=[],!g.validate(a,m,b,c)){var h=Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw h.errors=c,h}var j=d.util.createBuffer(b.publicKeyModulus).toHex(),k=d.util.createBuffer(b.publicKeyExponent).toHex();return i.setRsaPublicKey(new e(j,16),new e(k,16))},i.publicKeyToAsn1=i.publicKeyToSubjectPublicKeyInfo=function(a){return g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.OID,!1,g.oidToDer(i.oids.rsaEncryption).getBytes()),g.create(g.Class.UNIVERSAL,g.Type.NULL,!1,"")]),g.create(g.Class.UNIVERSAL,g.Type.BITSTRING,!1,[i.publicKeyToRSAPublicKey(a)])])},i.publicKeyToRSAPublicKey=function(a){return g.create(g.Class.UNIVERSAL,g.Type.SEQUENCE,!0,[g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.n)),g.create(g.Class.UNIVERSAL,g.Type.INTEGER,!1,t(a.e))])}},10793:(a,b,c)=>{"use strict";c.d(b,{$V:()=>s,Cn:()=>l,Co:()=>r,Ic:()=>p,J5:()=>n,NA:()=>u,QH:()=>m,VK:()=>v,Wu:()=>t,go:()=>i,nZ:()=>o,sX:()=>j,zv:()=>q});var d=c(21820),e=c(38421),f=c(70625);function g(){try{return(0,f.zi)("gemini-cli")||null}catch{return null}}let h=e.xq["gemini-cli"]?.cliVersion||g()?.version||"0.56.0",i=e.xq["gemini-cli"]?.apiClient||g()?.apiClient||"google-genai-sdk/1.41.0 gl-node/v22.19.0";function j(a="unknown"){let b,c=g()?.version||h;return`GeminiCLI/${c}/${a||"unknown"} (${(0,d.platform)()}; ${"ia32"===(b=(0,d.arch)())?"x86":b}; terminal)`}function k(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let l={ideType:9,platform:k(),pluginType:2};Object.freeze(["authorization","x-api-key","x-goog-api-key","x-switchboard-key","cookie","token","set-cookie","session-id","session_id","x-session-id","x-amp-thread-id","x-client-request-id"]),Object.freeze(["authorization","x-switchboard-key","x-api-key","x-goog-api-key","session-id","session_id","x-session-id","x-amp-thread-id","x-client-request-id"]);let m="_ide",n=new Set(["browser_subagent","command_status","find_by_name","generate_image","grep_search","list_dir","list_resources","multi_replace_file_content","notify_user","read_resource","read_terminal","read_url_content","replace_file_content","run_command","search_web","send_command_input","task_boundary","view_content_chunk","view_file","write_to_file"]),o={loadCodeAssist:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUser:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser"},p={"Content-Type":"application/json","User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"google-cloud-sdk vscode_cloudshelleditor/0.1","Client-Metadata":JSON.stringify({ideType:9,platform:k(),pluginType:2})},q={ideType:9,platform:k(),pluginType:2},r="You are Claude Code, Anthropic's official CLI for Claude.",s="You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**",t=Object.fromEntries(Object.entries(e.sr).filter(([,a])=>a.refreshLeadMs).map(([a,b])=>[a,b.refreshLeadMs])),u={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:e.sr.codex?.tokenUrl,auth:e.sr.codex?.authorizeUrl},anthropic:{token:e.sr.claude?.tokenUrl,auth:"https://api.anthropic.com/v1/oauth/authorize"},qwen:{token:e.sr.qwen?.tokenUrl,auth:e.sr.qwen?.deviceCodeUrl},iflow:{token:e.sr.iflow?.tokenUrl,auth:e.sr.iflow?.authorizeUrl},github:{token:e.sr.github?.tokenUrl,auth:e.sr.github?.authorizeUrl,deviceCode:e.sr.github?.deviceCodeUrl}};function v(a){let b="string"==typeof a&&a.trim()?a.trim():`kimi-${Date.now()}`;return{"X-Msh-Platform":"switchboard","X-Msh-Version":"2.1.2","X-Msh-Device-Model":"u">typeof process?`${process.platform} ${process.arch}`:"unknown","X-Msh-Device-Id":b}}},10962:(a,b,c)=>{"use strict";c.d(b,{M:()=>e});var d=c(82689);function e(a,b=d.Uc){let c=a.max_tokens||a.max_completion_tokens||a.max_output_tokens||d.Uc;return a.tools&&Array.isArray(a.tools)&&a.tools.length>0&&c<d.eo&&(c=d.eo),a.thinking?.budget_tokens&&c<=a.thinking.budget_tokens&&(c=a.thinking.budget_tokens+1024),c>b&&(c=b),c}},11380:(a,b,c)=>{"use strict";let{exec:d,execSync:e}=c(79646),f="win32"===process.platform;function g(){if(f)try{return e("net session >nul 2>&1",{windowsHide:!0,stdio:"ignore"}),!0}catch{return!1}return"function"==typeof process.getuid&&0===process.getuid()}function h(a){return`'${String(a).replace(/'/g,"''")}'`}a.exports={isAdmin:g,runElevatedPowerShell:function(a){if(!f)return Promise.reject(Error("Windows-only"));let b=Buffer.from(a,"utf16le").toString("base64");if(g())return new Promise((a,c)=>{d(`powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand ${b}`,{windowsHide:!0},(b,d,e)=>{b?c(Error(e||b.message)):a(d)})});let c=`
|
|
15
15
|
$proc = Start-Process powershell -ArgumentList @(
|
|
16
16
|
'-NoProfile','-NonInteractive','-ExecutionPolicy','Bypass',
|
|
17
17
|
'-WindowStyle','Hidden','-EncodedCommand','${b}'
|