switchboard-router 0.9.49 → 0.9.51
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-cli-build/static/chunks/1321-431751fe9225bf53.js → .next/static/chunks/1321-ae845620fe1b18ca.js} +1 -1
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +12 -12
- 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 +1 -1
- 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 +1 -1
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
- 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 +2 -2
- 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 +1 -1
- 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/pxpipe/health/route.js +2 -2
- 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 +4 -4
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- 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 +4 -4
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +12 -12
- package/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/app/.next-cli-build/server/chunks/1792.js +2 -2
- package/app/.next-cli-build/server/chunks/2847.js +1 -1
- package/app/.next-cli-build/server/chunks/7201.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8998.js +2 -2
- package/app/.next-cli-build/server/chunks/9264.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- 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/static/chunks/1321-431751fe9225bf53.js → .next-cli-build/static/chunks/1321-ae845620fe1b18ca.js} +1 -1
- 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/{6k9a5hXyI2Plbuq2Hfh-a → FtX4Q6ZzlXhcFEumeUUVJ}/_buildManifest.js +0 -0
- /package/app/.next/static/{6k9a5hXyI2Plbuq2Hfh-a → FtX4Q6ZzlXhcFEumeUUVJ}/_ssgManifest.js +0 -0
- /package/app/.next-cli-build/static/{6k9a5hXyI2Plbuq2Hfh-a → FtX4Q6ZzlXhcFEumeUUVJ}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{6k9a5hXyI2Plbuq2Hfh-a → FtX4Q6ZzlXhcFEumeUUVJ}/_ssgManifest.js +0 -0
|
@@ -2,4 +2,4 @@ exports.id=7201,exports.ids=[7201],exports.modules={4630:(a,b,c)=>{"use strict";
|
|
|
2
2
|
${e}${n(t)}
|
|
3
3
|
`}function s(a){let b=o(a,e);if(!b)return a;let c=(0,d.Tp)(p(a,e));if(c.errors.length)throw Error(`Invalid Aider YAML: ${c.errors[0].message}`);for(let a of["openai-api-base","openai-api-key","model","alias"])b[a]?.exists?c.setIn([a],b[a].value):c.deleteIn([a]);return c.toString()}function t(a,{baseUrl:b,models:c,defaultModel:e}){let g=o(a,f)?u(a):a,h=(0,d.Tp)(g||"");if(h.errors.length)throw Error(`Invalid Hermes YAML: ${h.errors[0].message}`);let k=i(c),l=j(e,k),m=q(h.getIn(["custom_providers"])),p=Array.isArray(m)?m:[],r=p.find(a=>a?.name==="switchboard"),s=q(h.getIn(["model"])),v=p.filter(a=>a?.name!=="switchboard"),w=Object.fromEntries(k.map(a=>[a,{}]));return v.push({name:"switchboard",base_url:b,key_env:"SWITCHBOARD_API_KEY",api_mode:"chat_completions",models:w}),h.setIn(["custom_providers"],v),h.setIn(["model"],{...s&&"object"==typeof s?s:{},default:l,provider:"custom:switchboard"}),`${h.toString().trimEnd()}
|
|
4
4
|
${f}${n({previousProvider:r??null,previousModel:s??null})}
|
|
5
|
-
`}function u(a){let b=o(a,f),c=(0,d.Tp)(p(a,f));if(c.errors.length)throw Error(`Invalid Hermes YAML: ${c.errors[0].message}`);let e=q(c.getIn(["custom_providers"]));if(Array.isArray(e)){let a=e.filter(a=>a?.name!=="switchboard");b?.previousProvider&&a.push(b.previousProvider),a.length?c.setIn(["custom_providers"],a):c.deleteIn(["custom_providers"])}return"custom:switchboard"===q(c.getIn(["model","provider"]))&&(b?.previousModel?c.setIn(["model"],b.previousModel):c.deleteIn(["model"])),c.toString()}function v(a,{baseUrl:b,apiKey:c,models:d,defaultModel:e}){let f=i(d),g=j(e,f);return{...a,model:`switchboard/${g}`,provider:{...a.provider||{},switchboard:{npm:"@ai-sdk/openai-compatible",name:"Switchboard",options:{apiKey:c,baseURL:b},models:Object.fromEntries(f.map(a=>[a,{name:k(a)}]))}}}}function w(a,{baseUrl:b,apiKey:c,models:d,defaultModel:e}){let f=i(d),g=j(e,f),h=a.providers||{},l=a.models||{};return{providers:{...h,providers:{...h.providers||{},switchboard:{type:"openai-compatible",name:"Switchboard",baseUrl:b,apiKey:c,defaultModelId:g}}},models:{...l,providers:{...l.providers||{},switchboard:{provider:{name:"Switchboard",baseUrl:b,defaultModelId:g},models:Object.fromEntries(f.map(a=>[a,{id:a,name:k(a)}]))}}}}}function x(a,{models:b,defaultModel:c}){let d=i(b),e=j(c,d),f=Object.fromEntries(Object.entries(a?.modelConfigs?.modelDefinitions&&"object"==typeof a.modelConfigs.modelDefinitions?a.modelConfigs.modelDefinitions:{}).filter(([,a])=>a?.family!=="switchboard"));return{...a,model:{...a.model||{},name:e},experimental:{...a.experimental||{},dynamicModelConfiguration:!0},modelConfigs:{...a.modelConfigs||{},modelDefinitions:{...f,...Object.fromEntries(d.map(a=>[a,{displayName:`Switchboard \xb7 ${k(a)}`,family:"switchboard",tier:"custom",isPreview:!1,isVisible:!0,features:{thinking:!0,multimodalToolUse:!0}}]))}}}}},47293:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},57781:(a,b,c)=>{"use strict";c.d(b,{R:()=>h});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f);async function h(a,b,c="utf-8"){let d=g().dirname(a);await e().mkdir(d,{recursive:!0});let f=g().join(d,`.${g().basename(a)}.sb-tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`);try{await e().writeFile(f,b,c);try{let a=await e().open(f,"r+");try{await a.sync()}finally{await a.close()}}catch{}await e().rename(f,a)}catch(a){try{await e().unlink(f)}catch{}throw a}}},68393:(a,b,c)=>{"use strict";c.d(b,{AD:()=>x,El:()=>v,JF:()=>r,LU:()=>u,Ng:()=>o,OU:()=>t,Ro:()=>h,_1:()=>s,ao:()=>l,at:()=>B,i6:()=>A,iO:()=>w,s8:()=>z,wN:()=>y});let d=Object.freeze({PASS_THROUGH:"pass-through",PROXY:"proxy",FULL_CATALOG:"full-catalog"}),e="x-switchboard-claude-mode",f="x-switchboard-claude-models",g="x-switchboard-claude-labels",h="x-switchboard-key",i="claude-switchboard-v1/",j=/^(?:claude|anthropic)-[a-z0-9][a-z0-9._-]*$/i,k=Object.freeze(["ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL_NAME","ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL_NAME","ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_FABLE_MODEL","ANTHROPIC_DEFAULT_FABLE_MODEL_NAME","ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_HAIKU_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME","ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION"]);function l(a){let b=String(a||"");if(!b)return"";let c=0x811c9dc5;for(let a=0;a<b.length;a+=1)c^=b.charCodeAt(a),c=Math.imul(c,0x1000193);return(c>>>0).toString(16).padStart(8,"0")}let m=a=>a.replace(/(^|-)([a-z])/g,(a,b,c)=>`${b}${c.toUpperCase()}`);function n(a,b){if("string"!=typeof a)return"";for(let c of a.split(/\r?\n/)){let a=c.indexOf(":");if(!(a<0)&&c.slice(0,a).trim().toLowerCase()===b)return c.slice(a+1).trim()}return""}function o(a){return"string"==typeof a&&j.test(a)}function p(a){if(!Array.isArray(a))throw TypeError("Claude catalog models must be an array.");let b=[],c=new Set;for(let d of a){if("string"!=typeof d)throw TypeError("Each Claude catalog model must be a string.");let a=d.trim();if(a){if(/\r|\n/.test(a))throw TypeError("Claude catalog model IDs cannot contain newlines.");c.has(a)||(c.add(a),b.push(a))}}return b}function q(a){if("string"!=typeof a||!a.trim())return[];try{return p(JSON.parse(decodeURIComponent(a)))}catch{return[]}}function r(a){return q(n(a,f))}function s(a){return q(a?.get(f))}function t(a,b){if(!a||"object"!=typeof a||Array.isArray(a))return{};let c=new Set(p(b)),d={};for(let[b,e]of Object.entries(a)){if(!c.has(b))continue;let a=String(e||"").trim().replace(/[·•—–]/g," | ").replace(/[\r\n]+/g," ").replace(/\s+/g," ");a&&(d[b]=a.slice(0,48))}return d}function u(a){var b=a?.get(g);if("string"!=typeof b||!b.trim())return{};try{let a=JSON.parse(decodeURIComponent(b));return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}catch{return{}}}function v(a){let b=String(a||"").trim();if(!b)throw TypeError("A Switchboard model ID is required.");let c=b.split("/").map(encodeURIComponent).join("/");return`${i}${c}`}function w(a){if("string"!=typeof a||!a.startsWith(i))return null;let b=a.slice(i.length);if(!b)return null;try{let c=b.split("/").map(decodeURIComponent).join("/");return v(c)===a?c:null}catch{return null}}function x({baseUrl:a,gatewayKey:b,models:c=[],pickerLabels:h={}}){let i=String(a||"").trim().replace(/\/+$/,""),j=String(b||"").trim();if(!i)throw TypeError("A Switchboard endpoint is required.");if(!j)throw TypeError("A Switchboard API key is required.");let l=p(c),n=t(h,l),o=function(a=[],b={}){let c=p(a),h=[`${m(e)}: ${d.FULL_CATALOG}`,`${m(f)}: ${encodeURIComponent(JSON.stringify(p(c)))}`],i=function(a,b={}){let c=t(b,a);return 0===Object.keys(c).length?"":encodeURIComponent(JSON.stringify(c))}(c,b);return i&&h.push(`${m(g)}: ${i}`),h.join("\n")}(l,n);if(new TextEncoder().encode(o).byteLength>7168)throw TypeError("This catalog is too large for Claude Code request headers. Remove models or shorten picker labels.");let q={ANTHROPIC_API_KEY:"",ANTHROPIC_AUTH_TOKEN:j,ANTHROPIC_BASE_URL:i.endsWith("/v1")?i:`${i}/v1`,ANTHROPIC_CUSTOM_HEADERS:o,ANTHROPIC_CUSTOM_MODEL_OPTION:"",CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY:"1"};for(let a of k)q[a]="";return{env:q,pickerLabels:n}}function y(a){return n(a,e).toLowerCase()===d.PASS_THROUGH}function z(a){let b=n(a,e).toLowerCase();return b===d.FULL_CATALOG||b===d.PROXY}function A(a){return a?.get(e)?.trim().toLowerCase()===d.PASS_THROUGH}function B(a){let b=a?.get(e)?.trim().toLowerCase();return b===d.FULL_CATALOG||b===d.PROXY}},78335:()=>{},85432:(a,b,c)=>{"use strict";c.d(b,{Kt:()=>m,MH:()=>l,vA:()=>k});var d=c(15717),e=c(19978),f=c(94454),g=c(29696);let h="compatible-reasoning:snapshot";async function i(){let a="function"==typeof d.Fh?(0,d.Fh)({type:"openai-compatible"}):Promise.resolve([]),b="function"==typeof d.uv?(0,d.uv)():Promise.resolve([]),[c,e]=await Promise.all([Promise.resolve(a).catch(()=>[]),Promise.resolve(b).catch(()=>[])]),f=new Map,h=new Map;for(let a of c){if(!a?.id||!a?.prefix)continue;let b={id:a.id,apiType:"responses"===a.apiType?"responses":"chat",staticFormat:(0,g.ml)(a.baseUrl)};f.set(a.id,b),h.set(a.prefix,b)}let i=new Map;for(let a of e){if(!a?.providerAlias||!a?.id||"llm"!==(a.type||"llm"))continue;let b=h.get(a.providerAlias);b&&(0,g.K5)(a.reasoning)&&i.set(`${b.id}|${a.id}`,a.reasoning)}return{nodesById:f,prefixToNode:h,byModel:i}}let j={nodesById:new Map,prefixToNode:new Map,byModel:new Map};async function k(a=15e3){try{let b=await (0,e.PO)(h,i,a);b&&(j=b)}catch{}}function l(){(0,e.Y3)(h)}function m(a,b){let c=j.prefixToNode.get(a);if(!c)return null;let d=j.byModel.get(`${c.id}|${b}`);return d||("none"===c.staticFormat?{supported:!1,effort:null}:c.staticFormat?{supported:!0,effort:"qwen"===c.staticFormat?null:c.staticFormat}:null)}(0,f.xl)(function(a,b){var c,d,e,f;if(!a||!a.startsWith("openai-compatible-"))return null;let g=j.nodesById.get(a),h=j.byModel.get(`${a}|${b}`);return h?(c=h,d=g?.apiType||"chat",c.supported?"responses"===d?"openai-responses":"nested"===c.effort?"openai-nested":"openai":"none"):g?.staticFormat?(e=g.staticFormat,f=g.apiType,"none"===e?"none":"qwen"===e?"qwen":"responses"===f?"openai-responses":"nested"===e?"openai-nested":"openai"):null})},92770:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>V,GET:()=>R,POST:()=>T});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(63294),o=c(23628),p=c(95510),q=c(68393),r=c(15717),s=c(43904),t=c(85432),u=c(24424);let v=(0,g.promisify)(f.exec),w="switchboard",x=Promise.resolve(),y=a=>{let b=x.then(a,a);return x=b.catch(()=>{}),b},z=()=>k().join(m().homedir(),".pi","agent"),A=()=>k().join(z(),"models.json"),B=()=>k().join(z(),"settings.json"),C=()=>k().join(z(),"switchboard-backup.json"),D=()=>k().join(z(),"models.yml"),E=async()=>{try{let a="win32"===m().platform();return await v(a?"where pi":"which pi",{windowsHide:!0}),!0}catch{try{return await i().access(z()),!0}catch{return!1}}},F=async(a,b)=>{try{let b=await i().readFile(a,"utf-8"),c=JSON.parse(b);if(!c||"object"!=typeof c||Array.isArray(c))throw TypeError(`${a} must contain a JSON object`);return c}catch(a){if("ENOENT"===a.code)return b;throw a}},G=()=>F(A(),{providers:{}}),H=()=>F(B(),{}),I=async(a,b)=>{try{let b=await i().readFile(a,"utf-8"),c=""===b.trim()?{}:(0,n.qg)(b);if(!c||"object"!=typeof c||Array.isArray(c))throw TypeError(`${a} must contain a YAML object`);return c}catch(a){if("ENOENT"===a.code)return b;throw a}},J=()=>I(D(),{providers:{}}),K=a=>Array.isArray(a)?a.map(K):a&&"object"==typeof a?Object.fromEntries(Object.keys(a).sort().map(b=>[b,K(a[b])])):a,L=(a,b)=>JSON.stringify(K(a))===JSON.stringify(K(b)),M=a=>a&&"object"==typeof a&&"boolean"==typeof a.exists,N=a=>{if(null==a)return null;if(1===a.version&&"restored"===a.state)return a;if(1!==a.version||!M(a.provider)||!["defaultProvider","defaultModel","enabledModels"].every(b=>M(a.settings?.[b]))||!a.managedProvider||!a.managedSettings)throw Error("Unsupported or invalid Pi Switchboard backup file");return a},O=async(a,b,c,d)=>{await i().mkdir(z(),{recursive:!0}),await (0,p.M_)([{filePath:C(),content:d?JSON.stringify(d,null,2):null,secret:!0},{filePath:D(),content:(0,n.As)(a),secret:!0},{filePath:A(),content:JSON.stringify(b,null,2),secret:!0},{filePath:B(),content:JSON.stringify(c,null,2),secret:!0}])},P=(a,b,c)=>{("defaultProvider"!==c&&"defaultModel"!==c||a.defaultProvider===w)&&L(a[c],b?.managedSettings?.[c])&&(0,p.S3)(a,{[c]:b.settings?.[c]})};async function Q(){try{if(!await E())return e.NextResponse.json({installed:!1,settings:null,message:"Pi is not installed"});let[a,b,c]=await Promise.all([J(),G(),H()]),d=a?.providers?.[w]||null,f=d||b?.providers?.[w]||null,g=Array.isArray(d?.models)?d.models:Array.isArray(b?.providers?.[w]?.models)?b.providers[w].models:[],h=g.map(a=>a?.id).filter(Boolean),i=Object.fromEntries(g.filter(a=>a?.id&&a?.name).map(a=>[a.id,a.name])),j=(c.defaultProvider===w&&h.includes(c.defaultModel)?c.defaultModel:null)||h[0]||null,k=f?.baseUrl||null,l=!!(f&&(a=>{try{let b=new URL(String(a||"")).hostname.toLowerCase();return"localhost"===b||"0.0.0.0"===b||/^127(?:\.\d{1,3}){3}$/.test(b)}catch{return!1}})(k)),m=l&&h.length>0;return e.NextResponse.json({installed:!0,hasSwitchboard:l,settings:{baseUrl:k,model:j,defaultModel:j,models:h,pickerLabels:i,apiKeySet:!!f?.apiKey,provider:w,scopeConfigured:m},configPath:D(),settingsPath:B()})}catch(a){return console.log("Error checking pi settings:",a),e.NextResponse.json({error:"Failed to check pi settings"},{status:500})}}async function R(){return y(Q)}async function S(a){try{let b,c;try{b=await a.json()}catch{return e.NextResponse.json({error:"Invalid JSON body"},{status:400})}let{baseUrl:d,apiKey:f,model:g,models:h,defaultModel:i,pickerLabels:j}=b||{},[k,l,m,n]=await Promise.all([J(),G(),H(),F(C(),null)]),u=N(n),v=u?.state==="restored"?null:u,x=Array.isArray(k?.providers?.[w]?.models)?k.providers[w].models:Array.isArray(l?.providers?.[w]?.models)?l.providers[w].models:[],y=void 0===h?[g,...x.map(a=>a?.id)]:h,z=(0,o.rP)(y),A=void 0===j||j&&"object"==typeof j&&!Array.isArray(j)&&Object.values(j).every(a=>"string"==typeof a);if(!(0,o.uI)(d)||!(0,o.iU)(f)||0===z.length||!A)return e.NextResponse.json({error:"baseUrl, models, API key, or picker labels are invalid"},{status:400});let E=(c=String(d||"").replace(/\/+$/,"")).endsWith("/v1")?c:`${c}/v1`,I=f||"sk_switchboard",K=(0,o.F2)(i||g,z),L=(0,q.OU)(j,z);await (0,t.vA)().catch(()=>{});let M="function"==typeof r.Uv?await Promise.resolve((0,r.Uv)()).catch(()=>[]):[],P=new Map(M.map(a=>[a.name,a])),Q=(a,b=new Set)=>{try{let c=String(a||""),d=c.indexOf("/");if(d<=0){if(b.has(c))return null;b.add(c);let a=P.get(c);if(!a||!Array.isArray(a.models)||0===a.models.length)return null;let d=null;for(let c of a.models){let a=Q(String(c),b);if(a?.reasoning)return a;a&&!d&&(d=a)}return d}let e=c.slice(0,d),f=c.slice(d+1),g=(0,t.Kt)(e,f);if(g){let a=(0,s.nl)(e,f);return{reasoning:!0===g.supported,contextWindow:a.contextWindow||null}}let h=(0,s.nl)(e,f);return{reasoning:!0===h.reasoning,contextWindow:h.contextWindow||null}}catch{return null}},R=a=>{(!a.providers||"object"!=typeof a.providers||Array.isArray(a.providers))&&(a.providers={})};R(k),R(l);let S={baseUrl:E,api:"openai-completions",apiKey:I,authHeader:!0,compat:{supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0},models:(0,o.L6)(z,x,L,Q)},T={...S,discovery:{type:"openai-models-list"}},U=v?.version===1?v:{version:1,state:"active",provider:(0,p.EA)(k.providers,[w])[w],legacyProvider:(0,p.EA)(l.providers,[w])[w],settings:(0,p.EA)(m,["defaultProvider","defaultModel","enabledModels"])};k.providers[w]=T,l.providers[w]=S,m.defaultProvider=w,m.defaultModel=K;let V=((a,b)=>{if(!Array.isArray(a)||0===a.length)return;let c=a.filter(a=>"string"!=typeof a||!a.startsWith(`${w}/`));if(0!==c.length)return[...c,...b]})(m.enabledModels,z.map(a=>`${w}/${a}`));return V?m.enabledModels=V:delete m.enabledModels,U.managedProvider=T,U.managedLegacyProvider=S,U.managedSettings={defaultProvider:w,defaultModel:K,enabledModels:m.enabledModels},await O(k,l,m,U),e.NextResponse.json({success:!0,message:`Pi configured with ${z.length} model${1===z.length?"":"s"}. ${K} is the default; use /model to switch.`,pickerLabels:Object.fromEntries(S.models.map(a=>[a.id,a.name])),configPath:D(),settingsPath:B()})}catch(a){return console.log("Error updating pi settings:",a),e.NextResponse.json({error:"Failed to update pi settings"},{status:500})}}async function T(a){return y(()=>S(a))}async function U(){try{let[a,b,c,d]=await Promise.all([J(),G(),H(),F(C(),null)]),f=N(d);if(f?.state==="restored")return e.NextResponse.json({success:!0,message:"No Switchboard Pi settings to reset"});let g=a?.providers?.[w],h=b?.providers?.[w],i=!!(g||h),j=c.defaultProvider===w||Array.isArray(c.enabledModels)&&c.enabledModels.some(a=>"string"==typeof a&&a.startsWith(`${w}/`));if(!f&&!i&&!j)return e.NextResponse.json({success:!0,message:"No Switchboard Pi settings to reset"});return g&&(!f?.managedProvider||L(g,f.managedProvider))&&(f?.version===1?(0,p.S3)(a.providers,{[w]:f.provider}):delete a.providers[w]),h&&(!f?.managedLegacyProvider||L(h,f.managedLegacyProvider))&&(f?.version===1?(0,p.S3)(b.providers,{[w]:f.legacyProvider??f.provider}):delete b.providers[w]),f?.version===1?(P(c,f,"defaultModel"),P(c,f,"defaultProvider"),P(c,f,"enabledModels")):c.defaultProvider===w&&(delete c.defaultProvider,delete c.defaultModel),!f&&Array.isArray(c.enabledModels)&&(c.enabledModels=c.enabledModels.filter(a=>"string"!=typeof a||!a.startsWith(`${w}/`)),0===c.enabledModels.length&&delete c.enabledModels),await O(a,b,c,{version:1,state:"restored"}),e.NextResponse.json({success:!0,message:"Switchboard provider removed and previous Pi model settings restored"})}catch(a){return console.log("Error resetting pi settings:",a),e.NextResponse.json({error:"Failed to reset pi settings"},{status:500})}}async function V(){return y(U)}(0,u.D)([R,T,V]),(0,d.A)(R,"0000291a9044cbb3819c333cefaa60f7f8effe9329",null),(0,d.A)(T,"40b6bc1c951859a39bbd150ae30f990c7b8e43cda5",null),(0,d.A)(V,"00fb56b6c22e52df0f0030cd69e93f42a049b75ab6",null)},95510:(a,b,c)=>{"use strict";c.d(b,{EA:()=>i,M_:()=>h,S3:()=>j,Yb:()=>g});var d=c(51455),e=c.n(d),f=c(57781);async function g(a,b,{secret:c=!1}={}){if(await (0,f.R)(a,b,c?{encoding:"utf-8",mode:384}:"utf-8"),c)try{await e().chmod(a,384)}catch{}}async function h(a){let b=await Promise.all(a.map(async({filePath:a})=>{try{return{exists:!0,value:await e().readFile(a)}}catch(a){if(a?.code==="ENOENT")return{exists:!1,value:null};throw a}})),c=async({filePath:a,content:b,secret:c=!1})=>{if(null!==b)return void await g(a,b,{secret:c});try{await e().unlink(a)}catch(a){if(a?.code!=="ENOENT")throw a}};try{for(let b of a)await c(b)}catch(e){let d=(await Promise.allSettled(a.map(({filePath:a,secret:d=!1},e)=>c({filePath:a,content:b[e].exists?b[e].value:null,secret:d})))).filter(a=>"rejected"===a.status);if(d.length>0)throw AggregateError([e,...d.map(a=>a.reason)],"Failed to replace CLI files and roll them back cleanly");throw e}}function i(a,b){return Object.fromEntries(b.map(b=>[b,{exists:Object.hasOwn(a,b),value:a[b]}]))}function j(a,b){for(let[c,d]of Object.entries(b||{}))d?.exists?a[c]=d.value:delete a[c]}},96487:()=>{}};
|
|
5
|
+
`}function u(a){let b=o(a,f),c=(0,d.Tp)(p(a,f));if(c.errors.length)throw Error(`Invalid Hermes YAML: ${c.errors[0].message}`);let e=q(c.getIn(["custom_providers"]));if(Array.isArray(e)){let a=e.filter(a=>a?.name!=="switchboard");b?.previousProvider&&a.push(b.previousProvider),a.length?c.setIn(["custom_providers"],a):c.deleteIn(["custom_providers"])}return"custom:switchboard"===q(c.getIn(["model","provider"]))&&(b?.previousModel?c.setIn(["model"],b.previousModel):c.deleteIn(["model"])),c.toString()}function v(a,{baseUrl:b,apiKey:c,models:d,defaultModel:e}){let f=i(d),g=j(e,f);return{...a,model:`switchboard/${g}`,provider:{...a.provider||{},switchboard:{npm:"@ai-sdk/openai-compatible",name:"Switchboard",options:{apiKey:c,baseURL:b},models:Object.fromEntries(f.map(a=>[a,{name:k(a)}]))}}}}function w(a,{baseUrl:b,apiKey:c,models:d,defaultModel:e}){let f=i(d),g=j(e,f),h=a.providers||{},l=a.models||{};return{providers:{...h,providers:{...h.providers||{},switchboard:{type:"openai-compatible",name:"Switchboard",baseUrl:b,apiKey:c,defaultModelId:g}}},models:{...l,providers:{...l.providers||{},switchboard:{provider:{name:"Switchboard",baseUrl:b,defaultModelId:g},models:Object.fromEntries(f.map(a=>[a,{id:a,name:k(a)}]))}}}}}function x(a,{models:b,defaultModel:c}){let d=i(b),e=j(c,d),f=Object.fromEntries(Object.entries(a?.modelConfigs?.modelDefinitions&&"object"==typeof a.modelConfigs.modelDefinitions?a.modelConfigs.modelDefinitions:{}).filter(([,a])=>a?.family!=="switchboard"));return{...a,model:{...a.model||{},name:e},experimental:{...a.experimental||{},dynamicModelConfiguration:!0},modelConfigs:{...a.modelConfigs||{},modelDefinitions:{...f,...Object.fromEntries(d.map(a=>[a,{displayName:`Switchboard \xb7 ${k(a)}`,family:"switchboard",tier:"custom",isPreview:!1,isVisible:!0,features:{thinking:!0,multimodalToolUse:!0}}]))}}}}},47293:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},57781:(a,b,c)=>{"use strict";c.d(b,{R:()=>h});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f);async function h(a,b,c="utf-8"){let d=g().dirname(a);await e().mkdir(d,{recursive:!0});let f=g().join(d,`.${g().basename(a)}.sb-tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`);try{await e().writeFile(f,b,c);try{let a=await e().open(f,"r+");try{await a.sync()}finally{await a.close()}}catch{}await e().rename(f,a)}catch(a){try{await e().unlink(f)}catch{}throw a}}},68393:(a,b,c)=>{"use strict";c.d(b,{AD:()=>x,El:()=>v,JF:()=>r,LU:()=>u,Ng:()=>o,OU:()=>t,Ro:()=>h,_1:()=>s,ao:()=>l,at:()=>B,i6:()=>A,iO:()=>w,s8:()=>z,wN:()=>y});let d=Object.freeze({PASS_THROUGH:"pass-through",PROXY:"proxy",FULL_CATALOG:"full-catalog"}),e="x-switchboard-claude-mode",f="x-switchboard-claude-models",g="x-switchboard-claude-labels",h="x-switchboard-key",i="claude-switchboard-v1/",j=/^(?:claude|anthropic)-[a-z0-9][a-z0-9._-]*$/i,k=Object.freeze(["ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL_NAME","ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL_NAME","ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_FABLE_MODEL","ANTHROPIC_DEFAULT_FABLE_MODEL_NAME","ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_HAIKU_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME","ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION"]);function l(a){let b=String(a||"");if(!b)return"";let c=0x811c9dc5;for(let a=0;a<b.length;a+=1)c^=b.charCodeAt(a),c=Math.imul(c,0x1000193);return(c>>>0).toString(16).padStart(8,"0")}let m=a=>a.replace(/(^|-)([a-z])/g,(a,b,c)=>`${b}${c.toUpperCase()}`);function n(a,b){if("string"!=typeof a)return"";for(let c of a.split(/\r?\n/)){let a=c.indexOf(":");if(!(a<0)&&c.slice(0,a).trim().toLowerCase()===b)return c.slice(a+1).trim()}return""}function o(a){return"string"==typeof a&&j.test(a)}function p(a){if(!Array.isArray(a))throw TypeError("Claude catalog models must be an array.");let b=[],c=new Set;for(let d of a){if("string"!=typeof d)throw TypeError("Each Claude catalog model must be a string.");let a=d.trim();if(a){if(/\r|\n/.test(a))throw TypeError("Claude catalog model IDs cannot contain newlines.");c.has(a)||(c.add(a),b.push(a))}}return b}function q(a){if("string"!=typeof a||!a.trim())return[];try{return p(JSON.parse(decodeURIComponent(a)))}catch{return[]}}function r(a){return q(n(a,f))}function s(a){return q(a?.get(f))}function t(a,b){if(!a||"object"!=typeof a||Array.isArray(a))return{};let c=new Set(p(b)),d={};for(let[b,e]of Object.entries(a)){if(!c.has(b))continue;let a=String(e||"").trim().replace(/[·•—–]/g," | ").replace(/[\r\n]+/g," ").replace(/\s+/g," ");a&&(d[b]=a.slice(0,48))}return d}function u(a){var b=a?.get(g);if("string"!=typeof b||!b.trim())return{};try{let a=JSON.parse(decodeURIComponent(b));return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}catch{return{}}}function v(a){let b=String(a||"").trim();if(!b)throw TypeError("A Switchboard model ID is required.");let c=b.split("/").map(encodeURIComponent).join("/");return`${i}${c}`}function w(a){if("string"!=typeof a||!a.startsWith(i))return null;let b=a.slice(i.length);if(!b)return null;try{let c=b.split("/").map(decodeURIComponent).join("/");return v(c)===a?c:null}catch{return null}}function x({baseUrl:a,gatewayKey:b,models:c=[],pickerLabels:h={}}){let i=String(a||"").trim().replace(/\/+$/,""),j=String(b||"").trim();if(!i)throw TypeError("A Switchboard endpoint is required.");if(!j)throw TypeError("A Switchboard API key is required.");let l=p(c),n=t(h,l),o=function(a=[],b={}){let c=p(a),h=[`${m(e)}: ${d.FULL_CATALOG}`,`${m(f)}: ${encodeURIComponent(JSON.stringify(p(c)))}`],i=function(a,b={}){let c=t(b,a);return 0===Object.keys(c).length?"":encodeURIComponent(JSON.stringify(c))}(c,b);return i&&h.push(`${m(g)}: ${i}`),h.join("\n")}(l,n);if(new TextEncoder().encode(o).byteLength>7168)throw TypeError("This catalog is too large for Claude Code request headers. Remove models or shorten picker labels.");let q={ANTHROPIC_API_KEY:"",ANTHROPIC_AUTH_TOKEN:j,ANTHROPIC_BASE_URL:i.endsWith("/v1")?i:`${i}/v1`,ANTHROPIC_CUSTOM_HEADERS:o,ANTHROPIC_CUSTOM_MODEL_OPTION:"",CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY:"1"};for(let a of k)q[a]="";return{env:q,pickerLabels:n}}function y(a){return n(a,e).toLowerCase()===d.PASS_THROUGH}function z(a){let b=n(a,e).toLowerCase();return b===d.FULL_CATALOG||b===d.PROXY}function A(a){return a?.get(e)?.trim().toLowerCase()===d.PASS_THROUGH}function B(a){let b=a?.get(e)?.trim().toLowerCase();return b===d.FULL_CATALOG||b===d.PROXY}},78335:()=>{},85432:(a,b,c)=>{"use strict";c.d(b,{Kt:()=>m,MH:()=>l,vA:()=>k});var d=c(15717),e=c(19978),f=c(94454),g=c(29696);let h="compatible-reasoning:snapshot";async function i(){let a="function"==typeof d.Fh?(0,d.Fh)({type:"openai-compatible"}):Promise.resolve([]),b="function"==typeof d.uv?(0,d.uv)():Promise.resolve([]),[c,e]=await Promise.all([Promise.resolve(a).catch(()=>[]),Promise.resolve(b).catch(()=>[])]),f=new Map,h=new Map;for(let a of c){if(!a?.id||!a?.prefix)continue;let b={id:a.id,apiType:"responses"===a.apiType?"responses":"chat",staticFormat:(0,g.ml)(a.baseUrl)};f.set(a.id,b),h.set(a.prefix,b)}let i=new Map;for(let a of e){if(!a?.providerAlias||!a?.id||"llm"!==(a.type||"llm"))continue;let b=h.get(a.providerAlias);b&&(0,g.K5)(a.reasoning)&&i.set(`${b.id}|${a.id}`,a.reasoning)}return{nodesById:f,prefixToNode:h,byModel:i}}let j={nodesById:new Map,prefixToNode:new Map,byModel:new Map};async function k(a=15e3){try{let b=await (0,e.PO)(h,i,a);b&&(j=b)}catch{}}function l(){(0,e.Y3)(h)}function m(a,b){let c=j.prefixToNode.get(a);if(!c)return null;let d=j.byModel.get(`${c.id}|${b}`);return d||("none"===c.staticFormat?{supported:!1,effort:null}:c.staticFormat?{supported:!0,effort:"qwen"===c.staticFormat?null:c.staticFormat}:null)}(0,f.xl)(function(a,b){var c,d,e,f;if(!a||!a.startsWith("openai-compatible-"))return null;let g=j.nodesById.get(a),h=j.byModel.get(`${a}|${b}`);return h?(c=h,d=g?.apiType||"chat",c.supported?"responses"===d?"openai-responses":"nested"===c.effort?"openai-nested":"openai":"none"):g?.staticFormat?(e=g.staticFormat,f=g.apiType,"none"===e?"none":"qwen"===e?"qwen":"responses"===f?"openai-responses":"nested"===e?"openai-nested":"openai"):null})},92770:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>V,GET:()=>R,POST:()=>T});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(63294),o=c(23628),p=c(95510),q=c(68393),r=c(15717),s=c(43904),t=c(85432),u=c(24424);let v=(0,g.promisify)(f.exec),w="switchboard",x=Promise.resolve(),y=a=>{let b=x.then(a,a);return x=b.catch(()=>{}),b},z=()=>k().join(m().homedir(),".pi","agent"),A=()=>k().join(z(),"models.json"),B=()=>k().join(z(),"settings.json"),C=()=>k().join(z(),"switchboard-backup.json"),D=()=>k().join(z(),"models.yml"),E=async()=>{try{let a="win32"===m().platform();return await v(a?"where pi":"which pi",{windowsHide:!0}),!0}catch{try{return await i().access(z()),!0}catch{return!1}}},F=async(a,b)=>{try{let b=await i().readFile(a,"utf-8"),c=JSON.parse(b);if(!c||"object"!=typeof c||Array.isArray(c))throw TypeError(`${a} must contain a JSON object`);return c}catch(a){if("ENOENT"===a.code)return b;throw a}},G=()=>F(A(),{providers:{}}),H=()=>F(B(),{}),I=async(a,b)=>{try{let b=await i().readFile(a,"utf-8"),c=""===b.trim()?{}:(0,n.qg)(b);if(!c||"object"!=typeof c||Array.isArray(c))throw TypeError(`${a} must contain a YAML object`);return c}catch(a){if("ENOENT"===a.code)return b;throw a}},J=()=>I(D(),{providers:{}}),K=a=>Array.isArray(a)?a.map(K):a&&"object"==typeof a?Object.fromEntries(Object.keys(a).sort().map(b=>[b,K(a[b])])):a,L=(a,b)=>JSON.stringify(K(a))===JSON.stringify(K(b)),M=a=>a&&"object"==typeof a&&"boolean"==typeof a.exists,N=a=>{if(null==a)return null;if(1===a.version&&"restored"===a.state)return a;if(1!==a.version||!M(a.provider)||!["defaultProvider","defaultModel","enabledModels"].every(b=>M(a.settings?.[b]))||!a.managedProvider||!a.managedSettings)throw Error("Unsupported or invalid Pi Switchboard backup file");return a},O=async(a,b,c,d)=>{await i().mkdir(z(),{recursive:!0}),await (0,p.M_)([{filePath:C(),content:d?JSON.stringify(d,null,2):null,secret:!0},{filePath:D(),content:(0,n.As)(a),secret:!0},{filePath:A(),content:JSON.stringify(b,null,2),secret:!0},{filePath:B(),content:JSON.stringify(c,null,2),secret:!0}])},P=(a,b,c)=>{("defaultProvider"!==c&&"defaultModel"!==c||a.defaultProvider===w)&&L(a[c],b?.managedSettings?.[c])&&(0,p.S3)(a,{[c]:b.settings?.[c]})};async function Q(){try{if(!await E())return e.NextResponse.json({installed:!1,settings:null,message:"Pi is not installed"});let[a,b,c]=await Promise.all([J(),G(),H()]),d=a?.providers?.[w]||null,f=d||b?.providers?.[w]||null,g=Array.isArray(d?.models)?d.models:Array.isArray(b?.providers?.[w]?.models)?b.providers[w].models:[],h=g.map(a=>a?.id).filter(Boolean),i=Object.fromEntries(g.filter(a=>a?.id&&a?.name).map(a=>[a.id,a.name])),j=(c.defaultProvider===w&&h.includes(c.defaultModel)?c.defaultModel:null)||h[0]||null,k=f?.baseUrl||null,l=!!(f&&(a=>{try{let b=new URL(String(a||"")).hostname.toLowerCase();return"localhost"===b||"0.0.0.0"===b||/^127(?:\.\d{1,3}){3}$/.test(b)}catch{return!1}})(k)),m=l&&h.length>0;return e.NextResponse.json({installed:!0,hasSwitchboard:l,settings:{baseUrl:k,model:j,defaultModel:j,models:h,pickerLabels:i,apiKeySet:!!f?.apiKey,provider:w,scopeConfigured:m},configPath:D(),settingsPath:B()})}catch(a){return console.log("Error checking pi settings:",a),e.NextResponse.json({error:"Failed to check pi settings"},{status:500})}}async function R(){return y(Q)}async function S(a){try{let b,c;try{b=await a.json()}catch{return e.NextResponse.json({error:"Invalid JSON body"},{status:400})}let{baseUrl:d,apiKey:f,model:g,models:h,defaultModel:i,pickerLabels:j}=b||{},[k,l,m,n]=await Promise.all([J(),G(),H(),F(C(),null)]),u=N(n),v=u?.state==="restored"?null:u,x=Array.isArray(k?.providers?.[w]?.models)?k.providers[w].models:Array.isArray(l?.providers?.[w]?.models)?l.providers[w].models:[],y=void 0===h?[g,...x.map(a=>a?.id)]:h,z=(0,o.rP)(y),A=void 0===j||j&&"object"==typeof j&&!Array.isArray(j)&&Object.values(j).every(a=>"string"==typeof a);if(!(0,o.uI)(d)||!(0,o.iU)(f)||0===z.length||!A)return e.NextResponse.json({error:"baseUrl, models, API key, or picker labels are invalid"},{status:400});let E=(c=String(d||"").replace(/\/+$/,"")).endsWith("/v1")?c:`${c}/v1`,I=f||"sk_switchboard",K=(0,o.F2)(i||g,z),L=(0,q.OU)(j,z);await (0,t.vA)().catch(()=>{});let M="function"==typeof r.Uv?await Promise.resolve((0,r.Uv)()).catch(()=>[]):[],P=new Map(M.map(a=>[a.name,a])),Q=(a,b=new Set)=>{try{let c=String(a||""),d=c.indexOf("/");if(d<=0){if(b.has(c))return null;b.add(c);let a=P.get(c);if(!a||!Array.isArray(a.models)||0===a.models.length)return null;let d=null;for(let c of a.models){let a=Q(String(c),b);if(a?.reasoning)return a;a&&!d&&(d=a)}return d}let e=c.slice(0,d),f=c.slice(d+1),g=(0,t.Kt)(e,f);if(g){let a=(0,s.nl)(e,f);return{reasoning:!0===g.supported,contextWindow:a.contextWindow||null}}let h=(0,s.nl)(e,f);return{reasoning:!0===h.reasoning,contextWindow:h.contextWindow||null}}catch{return null}},R=a=>{(!a.providers||"object"!=typeof a.providers||Array.isArray(a.providers))&&(a.providers={})};R(k),R(l);let S={baseUrl:E,api:"openai-completions",apiKey:I,authHeader:!0,compat:{supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0},models:(0,o.L6)(z,x,L,Q)},T={...S,discovery:{type:"openai-models-list"}},U=v?.version===1?v:{version:1,state:"active",provider:(0,p.EA)(k.providers,[w])[w],legacyProvider:(0,p.EA)(l.providers,[w])[w],settings:(0,p.EA)(m,["defaultProvider","defaultModel","enabledModels"])};k.providers[w]=T,l.providers[w]=S,m.defaultProvider=w,m.defaultModel=K;let V=((a,b)=>{if(!Array.isArray(a)||0===a.length)return;let c=a.filter(a=>"string"!=typeof a||!a.startsWith(`${w}/`));if(0!==c.length)return[...c,...b]})(m.enabledModels,z.map(a=>`${w}/${a}`));return V?m.enabledModels=V:delete m.enabledModels,U.managedProvider=T,U.managedLegacyProvider=S,U.managedSettings={defaultProvider:w,defaultModel:K,enabledModels:m.enabledModels},await O(k,l,m,U),e.NextResponse.json({success:!0,message:`Pi configured with ${z.length} model${1===z.length?"":"s"}. ${K} is the default; use /model to switch.`,pickerLabels:Object.fromEntries(S.models.map(a=>[a.id,a.name])),configPath:D(),settingsPath:B()})}catch(a){return console.log("Error updating pi settings:",a),e.NextResponse.json({error:"Failed to update pi settings"},{status:500})}}async function T(a){return y(()=>S(a))}async function U(){try{let[a,b,c,d]=await Promise.all([J(),G(),H(),F(C(),null)]),f=N(d);if(f?.state==="restored")return e.NextResponse.json({success:!0,message:"No Switchboard Pi settings to reset"});let g=a?.providers?.[w],h=b?.providers?.[w],i=!!(g||h),j=c.defaultProvider===w||Array.isArray(c.enabledModels)&&c.enabledModels.some(a=>"string"==typeof a&&a.startsWith(`${w}/`));if(!f&&!i&&!j)return e.NextResponse.json({success:!0,message:"No Switchboard Pi settings to reset"});return g&&(!f?.managedProvider||L(g,f.managedProvider))&&(f?.version===1?(0,p.S3)(a.providers,{[w]:f.provider}):delete a.providers[w]),h&&(!f?.managedLegacyProvider||L(h,f.managedLegacyProvider))&&(f?.version===1?(0,p.S3)(b.providers,{[w]:f.legacyProvider??f.provider}):delete b.providers[w]),f?.version===1?(P(c,f,"defaultModel"),P(c,f,"defaultProvider"),P(c,f,"enabledModels")):c.defaultProvider===w&&(delete c.defaultProvider,delete c.defaultModel),!f&&Array.isArray(c.enabledModels)&&(c.enabledModels=c.enabledModels.filter(a=>"string"!=typeof a||!a.startsWith(`${w}/`)),0===c.enabledModels.length&&delete c.enabledModels),await O(a,b,c,{version:1,state:"restored"}),e.NextResponse.json({success:!0,message:"Switchboard provider removed and previous Pi model settings restored"})}catch(a){return console.log("Error resetting pi settings:",a),e.NextResponse.json({error:"Failed to reset pi settings"},{status:500})}}async function V(){return y(U)}(0,u.D)([R,T,V]),(0,d.A)(R,"002f861f1ed2f422d545452b8a5fb6c40a06996030",null),(0,d.A)(T,"40194b7b80fa879bc68c1e3858e2deab511a24813b",null),(0,d.A)(V,"00401ef488d05e89c8a5dad6166bc9b19806a82570",null)},95510:(a,b,c)=>{"use strict";c.d(b,{EA:()=>i,M_:()=>h,S3:()=>j,Yb:()=>g});var d=c(51455),e=c.n(d),f=c(57781);async function g(a,b,{secret:c=!1}={}){if(await (0,f.R)(a,b,c?{encoding:"utf-8",mode:384}:"utf-8"),c)try{await e().chmod(a,384)}catch{}}async function h(a){let b=await Promise.all(a.map(async({filePath:a})=>{try{return{exists:!0,value:await e().readFile(a)}}catch(a){if(a?.code==="ENOENT")return{exists:!1,value:null};throw a}})),c=async({filePath:a,content:b,secret:c=!1})=>{if(null!==b)return void await g(a,b,{secret:c});try{await e().unlink(a)}catch(a){if(a?.code!=="ENOENT")throw a}};try{for(let b of a)await c(b)}catch(e){let d=(await Promise.allSettled(a.map(({filePath:a,secret:d=!1},e)=>c({filePath:a,content:b[e].exists?b[e].value:null,secret:d})))).filter(a=>"rejected"===a.status);if(d.length>0)throw AggregateError([e,...d.map(a=>a.reason)],"Failed to replace CLI files and roll them back cleanly");throw e}}function i(a,b){return Object.fromEntries(b.map(b=>[b,{exists:Object.hasOwn(a,b),value:a[b]}]))}function j(a,b){for(let[c,d]of Object.entries(b||{}))d?.exists?a[c]=d.value:delete a[c]}},96487:()=>{}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=869,exports.ids=[869],exports.modules={4489:(a,b,c)=>{c.d(b,{ki:()=>f}),c(29696);let d=new Set(["chat","text","language","model"]),e=new Map(["imageToText","webSearch","webFetch"].map(a=>[a.toLowerCase(),a]));function f(a){if("string"!=typeof a||!a)return a;let b=a.toLowerCase();return d.has(b)?"llm":e.get(b)||b}},27335:(a,b,c)=>{c.d(b,{Xg:()=>r,vq:()=>f.vq,fZ:()=>j,cY:()=>t,ez:()=>n,ux:()=>m,OA:()=>o,kt:()=>p,KC:()=>s,SM:()=>i});var d=c(4630),e=c(39698),f=c(45350),g=c(6595);let h="-review";function i(a){return f.vq[a]||[]}function j(a){let b=f.vq[a];return b?.[0]?.id||null}let k=new Set(["kr","kiro"]);function l(a,b,c){if(!a)return;let d=a.find(a=>a.id===b);if(d)return d;if(!k.has(c))return;let e=(0,g.Kq)(b);if(e!==b)return a.find(a=>a.id===e)}function m(a,b){let c=f.vq[a];return c?(0,g.gr)(l(c,b,a)):null}function n(a,b){let c=f.vq[a];return c?(0,g.ec)(l(c,b,a)):null}function o(a,b){let c=f.vq[a];if(!c)return null;let d=l(c,b,a);return d?.kind||d?.type||null}function p(a,b){let c="string"==typeof b?b.match(/\([^()]+\)\s*$/):null,d=c?c[0]:"",e=d?b.slice(0,c.index).trim():b,g=l(f.vq[a],e,a);return g?.upstreamModelId?g.upstreamModelId+d:g?.id?g.id+d:"cx"===a&&"string"==typeof e&&e.endsWith(h)?e.slice(0,-h.length)+d:e+d}let q=Object.fromEntries(e.A.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),r=Object.fromEntries(Object.keys(d.xq).map(a=>[a,q[a]||a]));function s(a){let b=r[a]||a;return f.vq[b]||[]}function t(a,b){return(0,g.g5)(l(f.vq[a],b,a))}},29696:(a,b,c)=>{function d(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"boolean"==typeof a.supported&&(null==a.effort||"flat"===a.effort||"nested"===a.effort)}c.d(b,{K5:()=>d,ml:()=>f});let e=[{suffix:"aliyuncs.com",format:"qwen"},{suffix:"opencode.ai",format:"flat"},{suffix:"api.surplusintelligence.ai",format:"flat"},{suffix:"inference-api.nousresearch.com",format:"none"}];function f(a){let b="";try{b=new URL(String(a||"")).hostname.toLowerCase()}catch{return null}if(!b)return null;for(let a of e)if(b===a.suffix||b.endsWith(`.${a.suffix}`))return a.format;return null}},30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"switchboard-router",installCmd:"npm i -g switchboard-router",installCmdLatest:"npm i -g switchboard-router@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:2200,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,statusStartupTimeoutMs:2e3,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},39006:a=>{a.exports=JSON.parse('{"UU":"switchboard-app","rE":"0.9.
|
|
1
|
+
"use strict";exports.id=869,exports.ids=[869],exports.modules={4489:(a,b,c)=>{c.d(b,{ki:()=>f}),c(29696);let d=new Set(["chat","text","language","model"]),e=new Map(["imageToText","webSearch","webFetch"].map(a=>[a.toLowerCase(),a]));function f(a){if("string"!=typeof a||!a)return a;let b=a.toLowerCase();return d.has(b)?"llm":e.get(b)||b}},27335:(a,b,c)=>{c.d(b,{Xg:()=>r,vq:()=>f.vq,fZ:()=>j,cY:()=>t,ez:()=>n,ux:()=>m,OA:()=>o,kt:()=>p,KC:()=>s,SM:()=>i});var d=c(4630),e=c(39698),f=c(45350),g=c(6595);let h="-review";function i(a){return f.vq[a]||[]}function j(a){let b=f.vq[a];return b?.[0]?.id||null}let k=new Set(["kr","kiro"]);function l(a,b,c){if(!a)return;let d=a.find(a=>a.id===b);if(d)return d;if(!k.has(c))return;let e=(0,g.Kq)(b);if(e!==b)return a.find(a=>a.id===e)}function m(a,b){let c=f.vq[a];return c?(0,g.gr)(l(c,b,a)):null}function n(a,b){let c=f.vq[a];return c?(0,g.ec)(l(c,b,a)):null}function o(a,b){let c=f.vq[a];if(!c)return null;let d=l(c,b,a);return d?.kind||d?.type||null}function p(a,b){let c="string"==typeof b?b.match(/\([^()]+\)\s*$/):null,d=c?c[0]:"",e=d?b.slice(0,c.index).trim():b,g=l(f.vq[a],e,a);return g?.upstreamModelId?g.upstreamModelId+d:g?.id?g.id+d:"cx"===a&&"string"==typeof e&&e.endsWith(h)?e.slice(0,-h.length)+d:e+d}let q=Object.fromEntries(e.A.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),r=Object.fromEntries(Object.keys(d.xq).map(a=>[a,q[a]||a]));function s(a){let b=r[a]||a;return f.vq[b]||[]}function t(a,b){return(0,g.g5)(l(f.vq[a],b,a))}},29696:(a,b,c)=>{function d(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"boolean"==typeof a.supported&&(null==a.effort||"flat"===a.effort||"nested"===a.effort)}c.d(b,{K5:()=>d,ml:()=>f});let e=[{suffix:"aliyuncs.com",format:"qwen"},{suffix:"opencode.ai",format:"flat"},{suffix:"api.surplusintelligence.ai",format:"flat"},{suffix:"inference-api.nousresearch.com",format:"none"}];function f(a){let b="";try{b=new URL(String(a||"")).hostname.toLowerCase()}catch{return null}if(!b)return null;for(let a of e)if(b===a.suffix||b.endsWith(`.${a.suffix}`))return a.format;return null}},30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"switchboard-router",installCmd:"npm i -g switchboard-router",installCmdLatest:"npm i -g switchboard-router@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:2200,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,statusStartupTimeoutMs:2e3,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},39006:a=>{a.exports=JSON.parse('{"UU":"switchboard-app","rE":"0.9.51"}')},40615:(a,b,c)=>{c.d(b,{Q2:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(39698);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.aliases?.length?{aliases:a.aliases}:{},...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a||b.aliases?.includes(a))return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.A.filter(a=>a.features?.usage).map(a=>a.id),y=d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},81329:(a,b,c)=>{c.d(b,{CP:()=>h,PROVIDER_MODELS:()=>d.vq,Xg:()=>d.Xg,eh:()=>g});var d=c(27335),e=c(40615),f=c(4489);Object.entries(e.Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a);let g=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),h=(a,b=null)=>{let c=a?.kind||a?.type||b;return c?(0,f.ki)(c):c}}};
|
|
@@ -348,7 +348,7 @@ WRONG: Generating massive code blocks without chunking -> TIMEOUT
|
|
|
348
348
|
|
|
349
349
|
REMEMBER: When in doubt, write LESS per operation. Multiple small operations > one large operation.
|
|
350
350
|
`.trim();function j(a,b,c){let f=(0,d.sS)(a);if(f)return"none"===f.mode?null:"budget"===f.mode?f.budget:"level"===f.mode?(0,e.nE)(f.level)??16e3:16e3;if(b){let a=function(a,b){if(!a)return;if("function"==typeof a.get)return a.get(b);let c=b.toLowerCase();for(let b of Object.keys(a))if(b.toLowerCase()===c)return a[b]}(b,"anthropic-beta");if("string"==typeof a&&a.toLowerCase().includes("interleaved-thinking"))return 16e3}if(function(a){for(let b of Array.isArray(a?.messages)?a.messages:[]){if(!b||"system"!==b.role&&"user"!==b.role)continue;let a=b.content;if("string"==typeof a){if(o(a))return!0}else if(Array.isArray(a))for(let b of a){let a=b?.text;if("string"==typeof a&&o(a))return!0}}return!!("string"==typeof a?.system&&o(a.system))}(a))return 16e3;if("string"==typeof c&&c){let a=c.toLowerCase();if(a.includes("thinking")||a.includes("-reason"))return 16e3}return null}function k(a){return"string"==typeof a&&a.endsWith(f)}function l(a){return"string"==typeof a&&a.endsWith(g)}function m(a){var b,c;let d=a,e=!1,h=!1;return k(d)&&(e=!0,d=k(b=d)?b.slice(0,-f.length):b),l(d)&&(h=!0,d=l(c=d)?c.slice(0,-g.length):c),{upstream:d,agentic:e,thinking:h}}function n(a=16e3){let b=Math.max(1,Math.min(32e3,Number(a)||16e3));return`<thinking_mode>enabled</thinking_mode>
|
|
351
|
-
<max_thinking_length>${b}</max_thinking_length>`}function o(a){return!!a&&!!a.includes("<thinking_mode>")&&(a.includes("<thinking_mode>enabled</thinking_mode>")||a.includes("<thinking_mode>interleaved</thinking_mode>"))}},44140:(a,b,c)=>{"use strict";c.d(b,{AU:()=>
|
|
351
|
+
<max_thinking_length>${b}</max_thinking_length>`}function o(a){return!!a&&!!a.includes("<thinking_mode>")&&(a.includes("<thinking_mode>enabled</thinking_mode>")||a.includes("<thinking_mode>interleaved</thinking_mode>"))}},44140:(a,b,c)=>{"use strict";c.d(b,{AU:()=>p,Aw:()=>q,fX:()=>s});let d=/switchboard/i,e=/Switchboard\//i,f="https://github.com/Vijay-Duke/switchboard-router",g=new Set(["authorization","x-api-key","api-key","cookie"]);function h(a){return g.has(String(a).toLowerCase())}function i(a){let b={};for(let[c,g]of a?a instanceof Headers?[...a.entries()]:Object.entries(a):[])null!=g&&!function(a,b){let c=String(a),g=null==b?"":String(b),i=c.toLowerCase();return!!(i.startsWith("x-switchboard-")||"x-client-type"===i&&/^switchboard$/i.test(g.trim())||"x-msh-platform"===i&&/^switchboard$/i.test(g.trim())||"user-agent"===i&&e.test(g)||d.test(c)&&!h(c)||d.test(g)&&!h(c)||g.includes(f))}(c,g)&&(b[c]=String(g));return b}Object.freeze({SWITCHBOARD_RE:d,SWITCHBOARD_UA_RE:e,SWITCHBOARD_GITHUB:f});var j=c(59882),k=c(70625),l=c(3507);let m="oauth-2025-04-20",n="claude-code-20250219",o="extended-cache-ttl-2025-04-11";function p(a){let b=[],c=new Set;for(let d of String(a||"").split(",")){let a=d.trim();a&&!c.has(a)&&(b.push(a),c.add(a))}if(!c.has(m)){let a=+(b[0]===n);b.splice(a,0,m)}return c.has(o)||b.push(o),b.join(",")}function q(a){return String(a||"").split(",").map(a=>a.trim()).filter(a=>a&&a!==n).join(",")}function r(a){return Object.keys(a).find(a=>"user-agent"===a.toLowerCase())}function s(a,b={}){let c=i(a),d=(0,j.ti)(b.identity,{format:b.format,provider:b.provider}),e=b.snapshot||(0,k.zi)(d),f="claude-cli"===d?(0,k.Iq)(b.credentialId):null,g=(0,j.$3)(c,d,{snapshot:f?{...e,os:f.os,arch:f.arch}:e,overlay:b.overlay,stream:b.stream,retryCount:b.retryCount,preserveUserAgent:!b.identity}),h=(0,j.E$)(d),m=i(g);if("claude-cli"===d&&b.requestPath?.startsWith("/v1/messages/count_tokens")){for(let a of Object.keys(m))"x-stainless-timeout"===a.toLowerCase()&&delete m[a];m=(0,j.Dm)(m,j.$R)}if(!r(m)){let a=e?.userAgent||function(a,b){let c=b?.version,d=(0,l.ol)()||"linux",e="ia32"===(0,l.LY)()?"x86":(0,l.LY)()||"x64";switch(a){case"claude-cli":return`claude-cli/${c||"2.1.289"} (external, cli)`;case"codex-cli":return`codex_cli_rs/${c||"0.149.0"}`;case"gemini-cli":return`GeminiCLI/${c||"0.56.0"}/unknown (${d}; ${e}; terminal)`;case"cline":return`Cline/${c||"3.0.0"}`;case"antigravity":return`antigravity/${c||"2.9.1"} ${d}/${e}`;case"copilot":return`GitHubCopilotChat/${c||"0.38.0"}`;case"qwen":return`QwenCode/${c||"0.12.3"} (${d}; ${e})`;case"grok-cli":return`grok-cli/${c||"1.0.0"}`;case"grok-build":return`grok-shell/${c||"0.2.99"} (${d}; ${e})`;case"chrome":return"Mozilla/5.0";default:return`OpenAI/NodeJS/${"u">typeof process&&process.version?process.version.replace(/^v/,""):"unknown"}`}}(d,e);m["User-Agent"]=a}return"claude-cli"===d&&function(a,b){let c=(0,k.Kn)(b),d=r(a),e=String(d?a[d]:"").match(/claude-(?:cli|code)\/(\d+\.\d+\.\d+)/i)?.[1]||null;if(!c.version||c.billingVersion!==c.version||c.tlsVersion!==c.version||c.userAgentVersion!==c.version||e!==c.version)throw Error(`Claude identity mismatch: ua=${e||c.userAgentVersion} version=${c.version} billing=${c.billingVersion} tls=${c.tlsVersion}`)}(m,e),{headers:i(m),profileId:d,tls:h?.tls||"node",alpn:h?.alpn||["h2","http/1.1"],tlsSpecRev:e?.tlsSpecRev}}},45221:(a,b,c)=>{"use strict";let{runtimeFeatures:d}=c(56758),{maxUnsigned16Bit:e,opcodes:f}=c(62026),g=null,h=8192,i=d.has("crypto")?c(77598).randomFillSync:null;function j(){return 8192===h&&(h=0,i(g??=Buffer.allocUnsafeSlow(8192),0,8192)),[g[h++],g[h++],g[h++],g[h++]]}class k{constructor(a){this.frameData=a}createFrame(a){let b=this.frameData,c=j(),d=b?.byteLength??0,f=d,g=6;d>e?(g+=8,f=127):d>125&&(g+=2,f=126);let h=Buffer.allocUnsafe(d+g);h[0]=h[1]=0,h[0]|=128,h[0]=(240&h[0])+a,h[g-4]=c[0],h[g-3]=c[1],h[g-2]=c[2],h[g-1]=c[3],h[1]=f,126===f?h.writeUInt16BE(d,2):127===f&&(h[2]=h[3]=0,h.writeUIntBE(d,4,6)),h[1]|=128;for(let a=0;a<d;++a)h[g+a]=b[a]^c[3&a];return h}static createFastTextFrame(a){let b=j(),c=a.length;for(let d=0;d<c;++d)a[d]^=b[3&d];let d=c,g=6;c>e?(g+=8,d=127):c>125&&(g+=2,d=126);let h=Buffer.allocUnsafeSlow(g);return h[0]=128|f.TEXT,h[1]=128|d,h[g-4]=b[0],h[g-3]=b[1],h[g-2]=b[2],h[g-1]=b[3],126===d?h.writeUInt16BE(c,2):127===d&&(h[2]=h[3]=0,h.writeUIntBE(c,4,6)),[h,a]}}a.exports={WebsocketFrameSend:k,generateMask:j}},45431:(a,b,c)=>{"use strict";c.d(b,{A:()=>e});var d=c(83382);let e={id:"grok-cli",priority:275,alias:"gcli",aliases:["grok-build","gb"],uiAlias:"gcli",display:{name:"Grok CLI (Grok Build)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GC",website:"https://x.ai",notice:{text:"Sign in with your xAI account via device code. Uses Grok Build subscription credits.",signupUrl:"https://grok.com/supergrok"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,thinkingConfig:{options:["low","medium","high","xhigh"],defaultMode:"high"},transport:{identity:d.s2,baseUrl:`${d.Nr}/responses`,format:"openai-responses",forceStream:!0,modelsUrl:`${d.Nr}/models`,userUrl:`${d.Nr}/user`,tokenAuth:"xai-grok-cli",clientIdentifier:d.rK,clientVersion:d.uG,usage:{url:`${d.Nr}/billing?format=credits`,userUrl:`${d.Nr}/user?include=subscription`},retry:{429:{attempts:2,delayMs:2e3},502:{attempts:2,delayMs:1500},503:{attempts:2,delayMs:1500}}},models:[{id:d.to,name:"Grok Build",contextLength:5e5,maxOutputTokens:64e3},{id:"grok-4.5",name:"Grok 4.5",contextLength:5e5,maxOutputTokens:64e3},{id:"grok-4.5-high",name:"Grok 4.5 (High)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-medium",name:"Grok 4.5 (Medium)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-low",name:"Grok 4.5 (Low)",upstreamModelId:"grok-4.5"}],serviceKinds:["llm"],oauth:{clientId:"b1a00492-073a-47ea-816f-4c329264a828",deviceCodeUrl:"https://auth.x.ai/oauth2/device/code",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token",scope:"openid profile email offline_access grok-cli:access api:access conversations:read conversations:write",referrer:"grok-build",refreshLeadMs:3e5},features:{usage:!0}}},45504:(a,b,c)=>{"use strict";c.d(b,{t:()=>l});var d=c(99887),e=c(68531),f=c(10962),g=c(26408),h=c(11897),i=c(90242),j=c(30816);function k(a){return"string"!=typeof a?"":a.replace(/^x-anthropic-billing-header:[^\n]*(?:\r?\n)?/i,"")}function l(a,b,c,d=null,e=!1){let n={model:a,messages:[],stream:c};if(b.max_tokens&&(n.max_tokens=(0,f.M)(b)),void 0!==b.temperature&&(n.temperature=b.temperature),void 0!==b.stop_sequences?n.stop=b.stop_sequences:void 0!==b.stop&&(n.stop=b.stop),void 0!==b.top_p&&(n.top_p=b.top_p),void 0!==b.top_k&&(n.top_k=b.top_k),b.system){let a=Array.isArray(b.system)?b.system.map(a=>k(a.text||"")).filter(Boolean).join("\n"):k(b.system);a&&n.messages.push({role:h.z7.SYSTEM,content:a})}if(b.messages&&Array.isArray(b.messages))for(let a=0;a<b.messages.length;a++){let c=function(a,b=!1){if(a.role===h.z7.SYSTEM){var c;let b,d=(b=(Array.isArray(c=a.content)?c.filter(a=>a?.type===h.R4.TEXT).map(a=>a.text||""):["string"==typeof c?c:""]).filter(Boolean).join("\n")).trim()?`<instructions>
|
|
352
352
|
${b}
|
|
353
353
|
</instructions>`:"";return d?{role:h.z7.USER,content:d}:null}let d=a.role===h.z7.USER||a.role===h.z7.TOOL?h.z7.USER:h.z7.ASSISTANT;if("string"==typeof a.content)return{role:d,content:a.content};if(Array.isArray(a.content)){let c=[],e=[],f=[],j="",k=null;for(let d of a.content)switch(d.type){case h.R4.TEXT:c.push({type:h.x4.TEXT,text:d.text});break;case h.R4.THINKING:d.thinking&&(j=j?`${j}
|
|
354
354
|
${d.thinking}`:d.thinking),d.signature&&!k&&(k=d.signature);break;case h.R4.REDACTED_THINKING:d.signature&&!k&&(k=d.signature);break;case h.R4.DOCUMENT:c.push(m(d));break;case h.R4.IMAGE:d.source?.type==="base64"?c.push({type:h.x4.IMAGE_URL,image_url:{url:(0,g.$q)(d.source.media_type,d.source.data)}}):d.source?.type==="url"&&d.source.url&&c.push({type:h.x4.IMAGE_URL,image_url:{url:d.source.url}});break;case h.R4.TOOL_USE:e.push({id:d.id,type:h.x4.FUNCTION,function:{name:d.name,arguments:"string"==typeof d.input?d.input:JSON.stringify(d.input||{})}});break;case h.R4.TOOL_RESULT:let a="";if("string"==typeof d.content)a=d.content;else if(Array.isArray(d.content)){let c=[],e=[];for(let a of d.content)a&&"object"==typeof a&&(a.type===h.R4.TEXT&&"string"==typeof a.text?c.push(a.text):a.type===h.R4.IMAGE?a.source?.type==="base64"&&a.source?.data?e.push({type:h.x4.IMAGE_URL,image_url:{url:(0,g.$q)(a.source.media_type,a.source.data)}}):a.source?.type==="url"&&a.source.url&&e.push({type:h.x4.IMAGE_URL,image_url:{url:a.source.url}}):a.type===h.R4.DOCUMENT&&e.push(m(a,b)));if(e.length>0){let b=[];c.length>0&&b.push({type:h.x4.TEXT,text:c.join("\n")}),b.push(...e),a=b}else a=c.length>0?c.join("\n"):JSON.stringify(d.content)}else d.content&&(a=JSON.stringify(d.content));let i={role:h.z7.TOOL,tool_call_id:d.tool_use_id,content:a};void 0!==d.is_error&&(i.is_error=!!d.is_error),f.push(i)}if(f.length>0)return c.length>0?[{role:h.z7.USER,content:(0,i.z)(c)},...f]:f;if(e.length>0){let a={role:h.z7.ASSISTANT};return c.length>0&&(a.content=(0,i.z)(c)),j&&(a.reasoning_content=j),k&&(a.reasoning_signature=k),a.tool_calls=e,a}if(c.length>0||j){let a={role:d};return c.length>0&&(a.content=(0,i.z)(c)),j&&(a.reasoning_content=j),k&&(a.reasoning_signature=k),a}if(0===a.content.length)return{role:d,content:""}}return null}(b.messages[a],e);c&&(Array.isArray(c)?n.messages.push(...c):n.messages.push(c))}return function(a){for(let b=0;b<a.length;b++){let c=a[b];if(c.role===h.z7.ASSISTANT&&c.tool_calls&&c.tool_calls.length>0){let d=c.tool_calls.map(a=>a.id),e=new Set,f=b+1;for(let c=b+1;c<a.length;c++){let b=a[c];if(b.role===h.z7.TOOL&&b.tool_call_id)e.add(b.tool_call_id),f=c+1;else break}let g=d.filter(a=>!e.has(a));if(g.length>0){let c=g.map(a=>({role:h.z7.TOOL,tool_call_id:a,content:""}));a.splice(f,0,...c),b=f+c.length-1}}}}(n.messages),b.tools&&Array.isArray(b.tools)&&(n.tools=b.tools.map(a=>({type:h.x4.FUNCTION,function:{name:a.name,description:"string"==typeof a.description?a.description:String(a.description||""),parameters:(0,j.M)(a.input_schema||{type:"object",properties:{}})}}))),b.tool_choice&&(n.tool_choice=function(a){if(!a)return"auto";if("string"==typeof a)return"none"===a||"auto"===a||"required"===a?a:"auto";switch(a.type){case"auto":default:return"auto";case"none":return"none";case"any":return"required";case"tool":return{type:h.x4.FUNCTION,function:{name:a.name}}}}(b.tool_choice)),void 0!==b.reasoning_effort?n.reasoning_effort=b.reasoning_effort:b.reasoning?.effort!==void 0&&(n.reasoning_effort=b.reasoning.effort),void 0!==b.reasoning&&(n.reasoning=b.reasoning),n}function m(a,b=!1){let c=a.source||{};return"base64"===c.type&&c.data?{type:h.x4.FILE,file:{file_data:(0,g.$q)(c.media_type||"application/pdf",c.data),...a.name?{filename:a.name}:{}}}:"url"===c.type&&c.url?b?{type:h.x4.FILE,file:{file_url:c.url}}:{type:h.x4.TEXT,text:`[Document: ${c.url}]`}:"text"===c.type&&"string"==typeof c.data?{type:h.x4.TEXT,text:c.data}:{type:h.x4.TEXT,text:`[Document: ${a.name||"omitted"}]`}}(0,d.kz)(e.h.CLAUDE,e.h.OPENAI,l,null)},45518:(a,b,c)=>{var d,e,f,g,h,i=c(45654);function j(a,b){i.cipher.registerAlgorithm(a,function(){return new i.aes.Algorithm(a,b)})}c(66568),c(19396),c(33889),a.exports=i.aes=i.aes||{},i.aes.startEncrypting=function(a,b,c,d){var e=o({key:a,output:c,decrypt:!1,mode:d});return e.start(b),e},i.aes.createEncryptionCipher=function(a,b){return o({key:a,output:null,decrypt:!1,mode:b})},i.aes.startDecrypting=function(a,b,c,d){var e=o({key:a,output:c,decrypt:!0,mode:d});return e.start(b),e},i.aes.createDecryptionCipher=function(a,b){return o({key:a,output:null,decrypt:!0,mode:b})},i.aes.Algorithm=function(a,b){k||l();var c=this;c.name=a,c.mode=new b({blockSize:16,cipher:{encrypt:function(a,b){return n(c._w,a,b,!1)},decrypt:function(a,b){return n(c._w,a,b,!0)}}}),c._init=!1},i.aes.Algorithm.prototype.initialize=function(a){if(!this._init){var b,c=a.key;if("string"==typeof c&&(16===c.length||24===c.length||32===c.length))c=i.util.createBuffer(c);else if(i.util.isArray(c)&&(16===c.length||24===c.length||32===c.length)){b=c,c=i.util.createBuffer();for(var d=0;d<b.length;++d)c.putByte(b[d])}if(!i.util.isArray(c)){b=c,c=[];var e=b.length();if(16===e||24===e||32===e){e>>>=2;for(var d=0;d<e;++d)c.push(b.getInt32())}}if(!i.util.isArray(c)||4!==c.length&&6!==c.length&&8!==c.length)throw Error("Invalid key parameter.");var f=-1!==["CFB","OFB","CTR","GCM"].indexOf(this.mode.name);this._w=m(c,a.decrypt&&!f),this._init=!0}},i.aes._expandKey=function(a,b){return k||l(),m(a,b)},i.aes._updateBlock=n,j("AES-ECB",i.cipher.modes.ecb),j("AES-CBC",i.cipher.modes.cbc),j("AES-CFB",i.cipher.modes.cfb),j("AES-OFB",i.cipher.modes.ofb),j("AES-CTR",i.cipher.modes.ctr),j("AES-GCM",i.cipher.modes.gcm);var k=!1;function l(){k=!0,f=[0,1,2,4,8,16,32,64,128,27,54];for(var a=Array(256),b=0;b<128;++b)a[b]=b<<1,a[b+128]=b+128<<1^283;d=Array(256),e=Array(256),g=[,,,,],h=[,,,,];for(var b=0;b<4;++b)g[b]=Array(256),h[b]=Array(256);for(var c,i,j,l,m,n,o,p=0,q=0,b=0;b<256;++b){l=(l=q^q<<1^q<<2^q<<3^q<<4)>>8^255&l^99,d[p]=l,e[l]=p,m=a[l],c=a[p],i=a[c],j=a[i],n=m<<24^l<<16^l<<8^(l^m),o=(c^i^j)<<24^(p^j)<<16^(p^i^j)<<8^(p^c^j);for(var r=0;r<4;++r)g[r][p]=n,h[r][l]=o,n=n<<24|n>>>8,o=o<<24|o>>>8;0===p?p=q=1:(p=c^a[a[a[c^j]]],q^=a[a[q]])}}function m(a,b){for(var c,e=a.slice(0),g=1,i=e.length,j=4*(i+6+1),k=i;k<j;++k)c=e[k-1],k%i==0?(c=d[c>>>16&255]<<24^d[c>>>8&255]<<16^d[255&c]<<8^d[c>>>24]^f[g]<<24,g++):i>6&&k%i==4&&(c=d[c>>>24]<<24^d[c>>>16&255]<<16^d[c>>>8&255]<<8^d[255&c]),e[k]=e[k-i]^c;if(b){var l,m=h[0],n=h[1],o=h[2],p=h[3],q=e.slice(0);j=e.length;for(var k=0,r=j-4;k<j;k+=4,r-=4)if(0===k||k===j-4)q[k]=e[r],q[k+1]=e[r+3],q[k+2]=e[r+2],q[k+3]=e[r+1];else for(var s=0;s<4;++s)l=e[r+s],q[k+(3&-s)]=m[d[l>>>24]]^n[d[l>>>16&255]]^o[d[l>>>8&255]]^p[d[255&l]];e=q}return e}function n(a,b,c,f){var i,j,k,l,m,n,o,p,q,r,s,t,u=a.length/4-1;f?(i=h[0],j=h[1],k=h[2],l=h[3],m=e):(i=g[0],j=g[1],k=g[2],l=g[3],m=d),n=b[0]^a[0],o=b[f?3:1]^a[1],p=b[2]^a[2],q=b[f?1:3]^a[3];for(var v=3,w=1;w<u;++w)r=i[n>>>24]^j[o>>>16&255]^k[p>>>8&255]^l[255&q]^a[++v],s=i[o>>>24]^j[p>>>16&255]^k[q>>>8&255]^l[255&n]^a[++v],t=i[p>>>24]^j[q>>>16&255]^k[n>>>8&255]^l[255&o]^a[++v],q=i[q>>>24]^j[n>>>16&255]^k[o>>>8&255]^l[255&p]^a[++v],n=r,o=s,p=t;c[0]=m[n>>>24]<<24^m[o>>>16&255]<<16^m[p>>>8&255]<<8^m[255&q]^a[++v],c[f?3:1]=m[o>>>24]<<24^m[p>>>16&255]<<16^m[q>>>8&255]<<8^m[255&n]^a[++v],c[2]=m[p>>>24]<<24^m[q>>>16&255]<<16^m[n>>>8&255]<<8^m[255&o]^a[++v],c[f?1:3]=m[q>>>24]<<24^m[n>>>16&255]<<16^m[o>>>8&255]<<8^m[255&p]^a[++v]}function o(a){var b,c="AES-"+((a=a||{}).mode||"CBC").toUpperCase(),d=(b=a.decrypt?i.cipher.createDecipher(c,a.key):i.cipher.createCipher(c,a.key)).start;return b.start=function(a,c){var e=null;c instanceof i.util.ByteBuffer&&(e=c,c={}),(c=c||{}).output=e,c.iv=a,d.call(b,c)},b}},45654:a=>{a.exports={options:{usePureJavaScript:!1}}},45874:(a,b,c)=>{"use strict";c.d(b,{Xx:()=>k,exportSettings:()=>l,getSettings:()=>j});var d=c(24081),e=c(50743);let f={stickyRoundRobinLimit:3,providerStrategies:{},providerSchedules:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},enableObservability:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3,requireApiKey:!0,ssrfAllowHosts:[],capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}}};async function g(){let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}let h={value:null,at:0};function i(a){let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);let c=function(){let a=process.env.REQUIRE_API_KEY;if(null==a||""===a)return null;let b=String(a).trim().toLowerCase();return"1"===b||"true"===b||"yes"===b||"0"!==b&&"false"!==b&&"no"!==b&&null}();return null!==c&&(b.requireApiKey=c),b}async function j(){return h.value&&Date.now()-h.at<2e3?{...h.value}:{...(h={value:i(await g()),at:Date.now()}).value}}async function k(a){let b,c=await (0,d.c)();return c.transaction(()=>{let d=c.get("SELECT data FROM settings WHERE id = 1");b={...d?(0,e.q)(d.data,{}):{},...a},c.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(b)])}),h.at=0,i(b)}async function l(){return h.at=0,await g()}},46036:(a,b,c)=>{"use strict";c(68531)},46248:(a,b,c)=>{"use strict";c.d(b,{L:()=>t});var d=c(22256),e=c(38421),f=c(74570),g=c(22884),h=c(10793),i=c(44140),j=c(50969),k=c(77321),l=c(29137),m=c(49623);let n={combined:!0,header:"Authorization",scheme:"bearer"},o={combined:!0,header:"x-api-key",scheme:"raw"},p=Object.fromEntries(Object.entries(e.xq).filter(([,a])=>a.auth).map(([a,b])=>[a,b.auth]));function q(a,b,c){a[b.header]="bearer"===b.scheme?`Bearer ${c}`:c}let r={kimiHeaders:(a,b)=>Object.assign(a,(0,h.VK)(b?.providerSpecificData?.deviceId)),clineHeaders:(a,b)=>Object.assign(a,function(a,b={}){let c,d=(c=function(a){if("string"!=typeof a)return"";let b=a.trim();return b?b.startsWith("workos:")?b:`workos:${b}`:""}(a))?`Bearer ${c}`:"",{headers:e}=(0,i.fX)({...d?{Authorization:d}:{},...b},{identity:"cline"});return e}(b.apiKey||b.accessToken)),kilocodeOrg:(a,b)=>{b.providerSpecificData?.orgId&&(a["X-Kilocode-OrganizationID"]=b.providerSpecificData.orgId)}},s=Object.fromEntries(Object.entries(e.sr).filter(([,a])=>a.refresh).map(([a,b])=>{let c=b.tokenUrl,d=b.refresh.encoding,e=b.refresh.scope?{scope:b.refresh.scope}:{};return[a,{encoding:d,url:()=>c,params:c=>"gemini"===a?{client_id:c.config.clientId,client_secret:c.config.clientSecret,...e}:{client_id:b.clientId,...e}}]}));class t extends d.Hv{constructor(a){super(a,e.xq[a]||e.xq.openai)}transformRequest(a,b,c,e){super.transformRequest(a,b,c,e);let f=this.applyJsonSchemaFallback(b);if(f&&"object"==typeof f){this.config.quirks?.dropClientMetadata&&delete f.client_metadata,(0,l.c)(this.provider,a,f);let b=(0,g.jJ)(this.provider,e);c&&("openai"===b||"ollama"===b)&&Array.isArray(f.messages)&&!f.stream_options&&(f.stream_options={include_usage:!0}),(0,d._2)(this.config)?delete f.stream:c&&!0!==f.stream&&(f.stream=!0)}return(0,k.Z)({provider:this.provider,model:a,body:f})}applyJsonSchemaFallback(a){if(!this.provider?.startsWith?.("openai-compatible-"))return a;let b=a?.response_format;if(b?.type!=="json_schema"||!b.json_schema?.schema)return a;let c=JSON.stringify(b.json_schema.schema,null,2),d=`You must respond with valid JSON that strictly follows this JSON schema:
|
|
@@ -360,7 +360,7 @@ Respond ONLY with the JSON object, no other text.`,e=Array.isArray(a.messages)?a
|
|
|
360
360
|
${d}`:Array.isArray(f.content)&&f.content.push({type:"text",text:`
|
|
361
361
|
|
|
362
362
|
${d}`}):e.unshift({role:"system",content:d}),{...a,messages:e,response_format:{type:"json_object"}}}buildUrl(a,b,c=0,d=null){let e=d?.runtimeTransport;if(e?.baseUrl)return e.urlSuffix?`${e.baseUrl}${e.urlSuffix}`:e.baseUrl;if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||f.Es).replace(/\/$/,""),b="responses"===(0,g.jD)(this.provider,d)?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||f.ky).replace(/\/$/,"");return`${a}/messages`}if("gemini"===this.config.format)return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;if(this.config.urlSuffix)return`${this.config.baseUrl}${this.config.urlSuffix}`;let h=this.config.baseUrl;if(h?.includes("{accountId}")){let a=d?.providerSpecificData?.accountId;if(!a)throw Error(`${this.provider} requires accountId in providerSpecificData`);return h.replace("{accountId}",a)}return h}resolveAuthDescriptor(){return this.provider?.startsWith?.("anthropic-compatible-")?{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"},anthropicVersion:!0}:this.config?.format==="claude"?{...o,anthropicVersion:!0}:n}buildHeaders(a,b=!0,c,d){let e=a?.runtimeTransport,g={"Content-Type":"application/json",...e?e.headers:this.config.headers},h=e?.auth||p[this.provider]||this.resolveAuthDescriptor();for(let b of h.hooks||[])r[b]?.(g,a);if(!function(a,b,c){if(b.combined){q(a,b,c.apiKey||c.accessToken),b.anthropicVersion&&!a["anthropic-version"]&&(a["anthropic-version"]=f.b8);return}c.apiKey?q(a,b.apiKey,c.apiKey):c.accessToken&&q(a,b.oauth,c.accessToken),b.anthropicVersion&&!a["anthropic-version"]&&(a["anthropic-version"]=f.b8)}(g,h,a),"claude"===this.provider&&d&&(g["Anthropic-Beta"]=(0,f.d)(d)),this.provider?.startsWith?.("anthropic-compatible-")){let b=a?.providerSpecificData?.baseUrl||"";if(!(""===b||b.includes("api.anthropic.com"))){for(let b of(a.apiKey&&!g.Authorization&&(g.Authorization=`Bearer ${a.apiKey}`),delete g["anthropic-dangerous-direct-browser-access"],delete g["Anthropic-Dangerous-Direct-Browser-Access"],delete g["x-app"],delete g["X-App"],["anthropic-beta","Anthropic-Beta"]))if(g[b]){let a=g[b].split(",").map(a=>a.trim()).filter(a=>a&&"claude-code-20250219"!==a).join(",");a?g[b]=a:delete g[b]}}}if(c&&!g["x-opencode-session"])try{"opencode.ai"===new URL(c).hostname&&(g["x-opencode-session"]=(0,m.oV)({headers:a?.rawHeaders,connectionId:a?.connectionId,scope:"opencode"}))}catch{}return b&&(g.Accept="text/event-stream"),g}refreshFromGrant(a,b){let c=s[this.provider],d={grant_type:"refresh_token",refresh_token:a.refreshToken,...c.params(this)};return"json"===c.encoding?this.refreshWithJSON(c.url(),d,b,this.provider):this.refreshWithForm(c.url(),d,b,this.provider)}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;let d={claude:()=>this.refreshFromGrant(a,c),codex:()=>this.refreshFromGrant(a,c),qwen:()=>this.refreshWithForm(h.NA.qwen.token,{grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:e.xq.qwen.clientId},c,"qwen"),iflow:()=>this.refreshIflow(a.refreshToken,c),gemini:()=>this.refreshFromGrant(a,c),kiro:()=>this.refreshKiro(a.refreshToken,c),cline:()=>this.refreshCline(a.refreshToken,c),clinepass:()=>this.refreshCline(a.refreshToken,c),"kimi-coding":()=>this.refreshKimiCoding(a,c),kilocode:()=>this.refreshKilocode(a.refreshToken,c)}[this.provider];if(!d)return null;try{let a=await d();return a&&b?.info?.("TOKEN",`${this.provider} refreshed`),a}catch(a){return b?.error?.("TOKEN",`${this.provider} refresh error: ${a.message}`),null}}async refreshWithJSON(a,b,c=null,d=this.provider){let f=await (0,j.Fm)(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(b),identity:e.xq[d]?.identity,provider:d,format:e.xq[d]?.format},c);if(!f.ok)return null;let g=await f.json();return{accessToken:g.access_token,refreshToken:g.refresh_token||b.refresh_token,expiresIn:g.expires_in}}async refreshWithForm(a,b,c=null,d=this.provider){let f=await (0,j.Fm)(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(b),identity:e.xq[d]?.identity,provider:d,format:e.xq[d]?.format},c);if(!f.ok)return null;let g=await f.json();return{accessToken:g.access_token,refreshToken:g.refresh_token||b.refresh_token,expiresIn:g.expires_in}}async refreshIflow(a,b=null){let c=btoa(`${e.xq.iflow.clientId}:${e.xq.iflow.clientSecret}`),d=await (0,j.Fm)(h.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:e.xq.iflow.clientId,client_secret:e.xq.iflow.clientSecret}),identity:e.xq.iflow?.identity,provider:"iflow",format:e.xq.iflow?.format},b);if(!d.ok)return null;let f=await d.json();return{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}async refreshKiro(a,b=null){let c=await (0,j.Fm)(e.xq.kiro.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:a}),identity:e.xq.kiro?.identity,provider:"kiro",format:e.xq.kiro?.format},b);if(!c.ok)return null;let d=await c.json();return{accessToken:d.accessToken,refreshToken:d.refreshToken||a,expiresIn:d.expiresIn}}async refreshCline(a,b=null){let c=await (0,j.Fm)(e.xq.cline.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:a,grantType:"refresh_token",clientType:"extension"}),identity:e.xq.cline?.identity,provider:"cline",format:e.xq.cline?.format},b);if(!c.ok)return null;let d=await c.json(),f=d?.data||d,g=f?.expiresAt,h=g?Math.max(1,Math.floor((new Date(g).getTime()-Date.now())/1e3)):void 0,i=f?.accessToken;return i&&!i.startsWith("workos:")&&(i=`workos:${i}`),{accessToken:i,refreshToken:f?.refreshToken||a,expiresIn:h}}async refreshKimiCoding(a,b=null){let c=a?.providerSpecificData?.deviceId,d=(0,h.VK)(c),f=await (0,j.Fm)(e.xq["kimi-coding"].refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",...d},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:e.xq["kimi-coding"].clientId}),identity:e.xq["kimi-coding"]?.identity,provider:"kimi-coding",format:e.xq["kimi-coding"]?.format},b);if(!f.ok)return null;let g=await f.json();return{accessToken:g.access_token,refreshToken:g.refresh_token||a.refreshToken,expiresIn:g.expires_in,...c?{providerSpecificData:{...a.providerSpecificData,deviceId:c}}:{}}}async refreshKilocode(a,b=null){return null}}},47335:(a,b,c)=>{"use strict";let d=c(60823),{ResponseError:e}=c(61448);class f extends d{#M;#a4;#a5;#e;#a6;constructor(a,{handler:b}){super(b)}#a7(a){return 0===(this.#a4??"").indexOf(a)}onRequestStart(a,b){return this.#M=0,this.#a4=null,this.#a5=null,this.#e=null,this.#a6="",super.onRequestStart(a,b)}onResponseStart(a,b,c,d){if(this.#M=b,this.#e=c,this.#a4=c["content-type"],this.#M<400)return super.onResponseStart(a,b,c,d);(this.#a7("application/json")||this.#a7("text/plain"))&&(this.#a5=new TextDecoder("utf-8"))}onResponseData(a,b){if(this.#M<400)return super.onResponseData(a,b);this.#a6+=this.#a5?.decode(b,{stream:!0})??""}onResponseEnd(a,b){if(this.#M>=400){let b;if(this.#a6+=this.#a5?.decode(void 0,{stream:!1})??"",this.#a7("application/json"))try{this.#a6=JSON.parse(this.#a6)}catch{}let c=Error.stackTraceLimit;Error.stackTraceLimit=0;try{b=new e("Response Error",this.#M,{body:this.#a6,headers:this.#e})}finally{Error.stackTraceLimit=c}super.onResponseError(a,b)}else super.onResponseEnd(a,b)}onResponseError(a,b){super.onResponseError(a,b)}}a.exports=()=>a=>function(b,c){return a(b,new f(b,{handler:c}))}},47659:(a,b,c)=>{"use strict";c(63971),c(50969);var d=c(38528);c(10793),(0,d.U)("antigravity"),c(82961),c(20012),c(43835),(0,d.U)("minimax").urls,(0,d.U)("minimax-cn").urls,c(15251),c(83382),(0,d.U)("glm").url,(0,d.U)("glm-cn").url,(0,d.U)("vercel-ai-gateway").url},47703:(a,b,c)=>{"use strict";let{pipeline:d}=c(57075),{fetching:e}=c(76403),{webidl:f}=c(32984),{EventSourceStream:g}=c(97356),{parseMIMEType:h}=c(16537),{createFastMessageEvent:i}=c(51753),{isNetworkError:j}=c(78196),{isValidHeaderValue:k,kEnumerableProperty:l}=c(84285),{environmentSettingsObject:m}=c(42425),{createPotentialCORSRequest:n}=c(26376),{getGlobalDispatcher:o}=c(59970),{isomorphicDecode:p}=c(70745),q=new TextEncoder,r=!1;class s extends EventTarget{#a8={open:null,error:null,message:null};#aJ;#a9=!1;#ba=0;#bb=null;#B=null;#d;#a;constructor(a,b={}){let c;super(),f.util.markAsUncloneable(this);const d="EventSource constructor";f.argumentLengthCheck(arguments,1,d),r||(r=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),a=f.converters.USVString(a),b=f.converters.EventSourceInitDict(b,d,"eventSourceInitDict"),this.#d=b.node.dispatcher||b.dispatcher,this.#a={lastEventId:"",reconnectionTime:b.node.reconnectionTime};try{c=new URL(a,m.settingsObject.baseUrl),this.#a.origin=c.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#aJ=c.href;let e="anonymous";!0===b.withCredentials&&(e="use-credentials",this.#a9=!0);const g=n(c,"",e);g.client=m.settingsObject,g.headersList.set("Accept","text/event-stream"),g.cache="no-store",g.initiator="other",this.#bb=g,this.#bc()}get readyState(){return f.brandCheck(this,f.is.EventSource),this.#ba}get url(){return f.brandCheck(this,f.is.EventSource),this.#aJ}get withCredentials(){return f.brandCheck(this,f.is.EventSource),this.#a9}#bc(){if(2===this.#ba)return;this.#ba=0;let a={request:this.#bb,dispatcher:this.#d};a.processResponseEndOfBody=a=>{if(!j(a))return this.#bd()},a.processResponse=a=>{if(j(a))if(!a.aborted)return void this.#bd();else{this.close(),this.dispatchEvent(new Event("error"));return}let b=a.headersList.get("content-type",!0),c=null!==b?h(b):"failure",e="failure"!==c&&"text/event-stream"===c.essence;if(200!==a.status||!1===e){this.close(),this.dispatchEvent(new Event("error"));return}this.#ba=1,this.dispatchEvent(new Event("open")),this.#a.origin=a.urlList[a.urlList.length-1].origin;let f=new g({eventSourceSettings:this.#a,maxEventSize:this.#d.eventSourceOptions?.maxEventSize,push:a=>{this.dispatchEvent(i(a.type,a.options))}});d(a.body.stream,f,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#B=e(a)}#bd(){2!==this.#ba&&(this.#ba=0,this.dispatchEvent(new Event("error")),setTimeout(()=>{if(0===this.#ba){if(this.#bb.headersList.delete("last-event-id",!0),this.#a.lastEventId.length){let a=p(q.encode(this.#a.lastEventId));k(a)&&this.#bb.headersList.set("last-event-id",a,!0)}this.#bc()}},this.#a.reconnectionTime)?.unref())}close(){f.brandCheck(this,f.is.EventSource),2!==this.#ba&&(this.#ba=2,this.#B.abort(),this.#bb=null)}get onopen(){return f.brandCheck(this,f.is.EventSource),this.#a8.open}set onopen(a){f.brandCheck(this,f.is.EventSource),this.#a8.open&&this.removeEventListener("open",this.#a8.open);let b=f.converters.EventHandlerNonNull(a);null!==b?(this.addEventListener("open",b),this.#a8.open=a):this.#a8.open=null}get onmessage(){return f.brandCheck(this,f.is.EventSource),this.#a8.message}set onmessage(a){f.brandCheck(this,f.is.EventSource),this.#a8.message&&this.removeEventListener("message",this.#a8.message);let b=f.converters.EventHandlerNonNull(a);null!==b?(this.addEventListener("message",b),this.#a8.message=a):this.#a8.message=null}get onerror(){return f.brandCheck(this,f.is.EventSource),this.#a8.error}set onerror(a){f.brandCheck(this,f.is.EventSource),this.#a8.error&&this.removeEventListener("error",this.#a8.error);let b=f.converters.EventHandlerNonNull(a);null!==b?(this.addEventListener("error",b),this.#a8.error=a):this.#a8.error=null}static{f.is.EventSource=a=>null!=a&&"object"==typeof a&&#a8 in a}}let t={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:0,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:1,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:2,writable:!1}};Object.defineProperties(s,t),Object.defineProperties(s.prototype,t),Object.defineProperties(s.prototype,{close:l,onerror:l,onmessage:l,onopen:l,readyState:l,url:l,withCredentials:l}),f.converters.EventSourceInitDict=f.dictionaryConverter([{key:"withCredentials",converter:f.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:f.converters.any,defaultValue:()=>o()},{key:"node",converter:f.dictionaryConverter([{key:"reconnectionTime",converter:f.converters["unsigned long"],defaultValue:()=>3e3},{key:"dispatcher",converter:f.converters.any}]),defaultValue:()=>({})}]),a.exports={EventSource:s,defaultReconnectionTime:3e3}},47800:(a,b,c)=>{"use strict";let{InvalidArgumentError:d}=c(61448),{runtimeFeatures:e}=c(56758),f=e.has("crypto")?c(77598):null,g=f?.hash?a=>f.hash("sha256",a,"base64url"):a=>Buffer.from(a).toString("base64url");function h(a){return Array.isArray(a)&&(1&a.length)==0}let i=["record","playback","update"];a.exports={createHeaderFilters:function(a={}){let{ignoreHeaders:b=[],excludeHeaders:c=[],matchHeaders:d=[],caseSensitive:e=!1}=a;return{ignore:new Set(b.map(a=>e?a:a.toLowerCase())),exclude:new Set(c.map(a=>e?a:a.toLowerCase())),match:new Set(d.map(a=>e?a:a.toLowerCase()))}},hashId:g,isUndiciHeaders:h,normalizeHeaders:function(a){let b={};if(!a)return b;if(h(a)){for(let c=0;c<a.length;c+=2){let d=a[c],e=a[c+1];if(d&&void 0!==e){let a=Buffer.isBuffer(d)?d.toString():d,c=Buffer.isBuffer(e)?e.toString():e;b[a.toLowerCase()]=c}}return b}if(a&&"object"==typeof a)for(let[c,d]of Object.entries(a))c&&"string"==typeof c&&(b[c.toLowerCase()]=Array.isArray(d)?d.join(", "):String(d));return b},isUrlExcludedFactory:function(a=[]){return 0===a.length?()=>!1:function(b){let c;for(let d of a)if("string"==typeof d){if(c||(c=b.toLowerCase()),c.includes(d.toLowerCase()))return!0}else if(d instanceof RegExp&&d.test(b))return!0;return!1}},validateSnapshotMode:function(a){if(!i.includes(a))throw new d(`Invalid snapshot mode: ${a}. Must be one of: ${i.join(", ")}`)}}},48841:(a,b,c)=>{"use strict";let{kProxy:d,kClose:e,kDestroy:f,kDispatch:g}=c(49176),h=c(37417),i=c(35689),j=c(5318),{InvalidArgumentError:k,RequestAbortedError:l,SecureProxyConnectionError:m,ProxyConnectionError:n}=c(61448),o=c(55285),p=c(40106),{channels:q}=c(62571),r=c(64156),{hasSafeIterator:s}=c(84285),t=Symbol("proxy agent"),u=Symbol("proxy client"),v=Symbol("proxy headers"),w=Symbol("request tls settings"),x=Symbol("proxy tls settings"),y=Symbol("connect endpoint function"),z=Symbol("connect endpoint function (http/1.1 only)"),A=Symbol("tunnel proxy"),B="proxy-authorization";function C(a,b){return new i(a,b)}let D=()=>{};function E(a,b){return 1===b.connections?new p(a,b):new i(a,b)}class F extends j{#be;#bf;constructor(a,{headers:b={},connect:c,factory:d,proxyServername:e}){if(!a)throw new k("Proxy URL is mandatory");super(),this[v]=b,this.#bf=e,d?this.#be=d(a,{connect:c}):this.#be=new p(a,{connect:c})}[g](a,b){let c=b.onResponseStart;b.onResponseStart=function(a,d,e,f){if(407===d){"function"==typeof b.onResponseError&&b.onResponseError(a,new k("Proxy Authentication Required (407)"));return}c&&c.call(this,a,d,e,f)};let{origin:d,path:e="/",headers:f={}}=a;if(a.path=d+e,!("host"in f)&&!("Host"in f)){let{host:a}=new URL(d);f.host=a}return a.headers={...this[v],...f},null!=this.#bf&&(a.servername=this.#bf),this.#be[g](a,b)}[e](){return this.#be.close()}[f](a){return this.#be.destroy(a)}}class G extends j{constructor(a){if(!a||"object"==typeof a&&!(a instanceof URL)&&!a.uri)throw new k("Proxy uri is mandatory");const{clientFactory:b=C}=a;if("function"!=typeof b)throw new k("Proxy opts.clientFactory must be a function.");const{proxyTunnel:c,connectTimeout:e}=a;super(a);const f=this.#bg(a),{href:g,origin:i,port:j,protocol:p,username:s,password:B,hostname:G}=f;if(this[d]={uri:g,protocol:p},this[w]=a.requestTls,this[x]=a.proxyTls,this[v]=a.headers||{},this[A]=c,a.auth&&a.token)throw new k("opts.auth cannot be used in combination with opts.token");a.auth?this[v]["proxy-authorization"]=`Basic ${a.auth}`:a.token?this[v]["proxy-authorization"]=a.token:s&&B?this[v]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(s)}:${decodeURIComponent(B)}`).toString("base64")}`:s&&(this[v]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(s)}:`).toString("base64")}`);const H=o({timeout:e,...a.proxyTls}),I=o({timeout:e,...a.proxyTls,allowH2:!1});this[y]=o({timeout:e,...a.requestTls}),this[z]=o({timeout:e,...a.requestTls,allowH2:!1});const J=a.factory||E,K=(b,c)=>{let{protocol:f}=new URL(b);if("socks5:"===this[d].protocol||"socks:"===this[d].protocol)return new r(this[d].uri,{headers:this[v],connect:H,factory:J,username:a.username||s,password:a.password||B,connectTimeout:e,proxyTls:a.proxyTls,requestTls:a.requestTls});if(!0!==this[A]&&"http:"===f){let a="https:"===this[d].protocol?(a,b)=>I(a,(a,c)=>{a&&"ERR_TLS_CERT_ALTNAME_INVALID"===a.code?b(new m(a)):b(a,c)}):I;return new F(this[d].uri,{headers:this[v],connect:a,factory:J,proxyServername:"https:"===this[d].protocol?this[x]?.servername||G:void 0})}return J(b,c)};"socks5:"===p||"socks:"===p?this[u]=null:this[u]=b(f,{connect:H}),this[t]=new h({...a,factory:K,connect:async(a,b)=>{if(!this[u])return void b(new k("Cannot establish tunnel connection without a proxy client"));let c=a.host;a.port||(c+=`:${"https:"===a.protocol?443:80}`);try{let d,e={origin:i,port:j,path:c,signal:a.signal,headers:{...this[v],host:a.host,...null==a.connections||a.connections>0?{"proxy-connection":"keep-alive"}:{}},servername:this[x]?.servername||G},{socket:f,statusCode:g}=await this[u].connect(e);if(200!==g){f.on("error",D).destroy(),b(new l(`Proxy response (${g}) !== 200 when HTTP Tunneling`));return}if(q.proxyConnected.hasSubscribers&&q.proxyConnected.publish({socket:f,connectParams:e}),"https:"!==a.protocol)return void b(null,f);d=this[w]?this[w].servername:a.servername,(!1===a.allowH2?this[z]:this[y])({...a,servername:d,httpSocket:f},b)}catch(a){b("ERR_TLS_CERT_ALTNAME_INVALID"===a.code?new m(a):"UND_ERR_SOCKET"===a.code?new n(a):a)}}})}dispatch(a,b){let c=function(a){if(Array.isArray(a)){let b={};for(let c=0;c<a.length;c+=2)H(a[c])&&I(),b[a[c]]=a[c+1];return b}if(a&&"object"==typeof a&&s(a)){let b={};for(let[c,d]of a){if(!Object.hasOwn(b,c)){b[c]=d;continue}let a=b[c],e=[];void 0!==a&&e.push(...Array.isArray(a)?a:[a]),void 0!==d&&e.push(...Array.isArray(d)?d:[d]),b[c]=e.length>1?e:e[0]}return b}return a}(a.headers);if(function(a){for(let b in a)H(b)&&I()}(c),c&&!("host"in c)&&!("Host"in c)){let{host:b}=new URL(a.origin);c.host=b}return this[t].dispatch({...a,headers:c},b)}#bg(a){return"string"==typeof a?new URL(a):a instanceof URL?a:new URL(a.uri)}[e](){let a=[this[t].close()];return this[u]&&a.push(this[u].close()),Promise.all(a)}[f](){let a=[this[t].destroy()];return this[u]&&a.push(this[u].destroy()),Promise.all(a)}}function H(a){return a.length===B.length&&a.toLowerCase()===B}function I(){throw new k("Proxy-Authorization should be sent in ProxyAgent constructor")}a.exports=G},49166:(a,b,c)=>{"use strict";let{Cache:d}=c(50027),{webidl:e}=c(32984),{kEnumerableProperty:f}=c(84285),{kConstruct:g}=c(49176);class h{#bh=new Map;constructor(){arguments[0]!==g&&e.illegalConstructor(),e.util.markAsUncloneable(this)}async match(a,b={}){if(e.brandCheck(this,e.is.CacheStorage),e.argumentLengthCheck(arguments,1,"CacheStorage.match"),a=e.converters.RequestInfo(a),null!=(b=e.converters.MultiCacheQueryOptions(b)).cacheName){if(this.#bh.has(b.cacheName)){let c=new d(g,this.#bh.get(b.cacheName));return await c.match(a,b)}}else for(let c of this.#bh.values()){let e=new d(g,c),f=await e.match(a,b);if(void 0!==f)return f}}async has(a){e.brandCheck(this,e.is.CacheStorage);let b="CacheStorage.has";return e.argumentLengthCheck(arguments,1,b),a=e.converters.DOMString(a,b,"cacheName"),this.#bh.has(a)}async open(a){e.brandCheck(this,e.is.CacheStorage);let b="CacheStorage.open";if(e.argumentLengthCheck(arguments,1,b),a=e.converters.DOMString(a,b,"cacheName"),this.#bh.has(a))return new d(g,this.#bh.get(a));let c=[];return this.#bh.set(a,c),new d(g,c)}async delete(a){e.brandCheck(this,e.is.CacheStorage);let b="CacheStorage.delete";return e.argumentLengthCheck(arguments,1,b),a=e.converters.DOMString(a,b,"cacheName"),this.#bh.delete(a)}async keys(){return e.brandCheck(this,e.is.CacheStorage),[...this.#bh.keys()]}static{e.is.CacheStorage=a=>null!=a&&"object"==typeof a&&#bh in a}}Object.defineProperties(h.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:f,has:f,open:f,delete:f,keys:f}),a.exports={CacheStorage:h}},49176:a=>{"use strict";a.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kRequestOrigin:Symbol("request origin"),kOriginless:Symbol("originless"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2Options:Symbol("http2 options"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kHostAuthority:Symbol("host authority"),kHTTP2InitialWindowSize:Symbol("http2 initial window size"),kHTTP2ConnectionWindowSize:Symbol("http2 connection window size"),kEnableConnectProtocol:Symbol("http2session connect protocol"),kRemoteSettings:Symbol("http2session remote settings"),kHTTP2Stream:Symbol("http2session client stream"),kPingInterval:Symbol("ping interval"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent"),kSocks5ProxyAgent:Symbol("socks5 proxy agent")}},49209:(a,b,c)=>{"use strict";c.d(b,{$:()=>p});var d=c(22256),e=c(38421),f=c(19016),g=c(24725),h=c(50969);let i=e.xq["grok-web"].baseUrl,j={"grok-3":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3",isThinking:!1},"grok-3-mini":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3_MINI_THINKING",isThinking:!0},"grok-3-thinking":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3_THINKING",isThinking:!0},"grok-4":{grokModel:"grok-4",modelMode:"MODEL_MODE_GROK_4",isThinking:!1},"grok-4-mini":{grokModel:"grok-4-mini",modelMode:"MODEL_MODE_GROK_4_MINI_THINKING",isThinking:!0},"grok-4-thinking":{grokModel:"grok-4",modelMode:"MODEL_MODE_GROK_4_THINKING",isThinking:!0},"grok-4-heavy":{grokModel:"grok-4",modelMode:"MODEL_MODE_HEAVY",isThinking:!0},"grok-4.1-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4.1-fast":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4.1-expert":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4.2":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20-beta":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1}};function k(a,b=!1){let c=b?"abcdefghijklmnopqrstuvwxyz0123456789":"abcdefghijklmnopqrstuvwxyz",d="";for(let b=0;b<a;b++)d+=c[Math.floor(Math.random()*c.length)];return d}function l(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}async function*m(a,b){let c=a.getReader(),d=new TextDecoder,e="";try{for(;;){if(b?.aborted)return;let{value:a,done:f}=await c.read();if(f)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a).trim();if(e=e.slice(a+1),b)try{yield JSON.parse(b)}catch{}}}let a=(e+=d.decode()).trim();if(a)try{yield JSON.parse(a)}catch{}}finally{c.releaseLock()}}async function*n(a,b,c){let d="",e="",f=!1;for await(let g of m(a,c)){if(g.error)return void(yield{error:g.error.message||`Grok error: ${g.error.code}`,done:!0});let a=g.result?.response;if(a){if(a.llmInfo?.modelHash&&!d&&(d=a.llmInfo.modelHash),a.responseId&&(e=a.responseId),a.modelResponse){let c=a.modelResponse;f&&b&&(c.message&&(yield{thinking:c.message}),f=!1),c.message&&(yield{fullMessage:c.message,fingerprint:d,responseId:e}),c.metadata?.llm_info?.modelHash&&(d=c.metadata.llm_info.modelHash);continue}null!=a.token&&(yield{delta:a.token,fingerprint:d,responseId:e})}}yield{done:!0,fingerprint:d,responseId:e}}async function o(a,b,c,d,e,f){let g="",h="",i=[];for await(let b of n(a,e,f)){if(b.fingerprint&&(h=b.fingerprint),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"GROK_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){i.push(b.thinking);continue}if(b.done)break;b.fullMessage?g=b.fullMessage:b.delta&&(g+=b.delta)}let j={role:"assistant",content:g};i.length>0&&(j.reasoning_content=i.join("\n"));let k=Math.ceil(g.length/4),l=Math.ceil(g.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:h||null,choices:[{index:0,message:j,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:k,completion_tokens:l,total_tokens:k+l}}),{status:200,headers:{"Content-Type":"application/json"}})}class p extends d.Hv{constructor(){super("grok-web",e.xq["grok-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:m,proxyOptions:p=null}){let q,r,s=b?.messages;if(!s||!Array.isArray(s)||0===s.length)return{response:new Response(JSON.stringify({error:{message:"Missing or empty messages array",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:b};let t=j[a];t||m?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to grok-4.1-fast`);let{grokModel:u,modelMode:v,isThinking:w}=t||j["grok-4.1-fast"],x=function(a){let b=[];for(let c of a){let a=String(c.role||"user");"developer"===a&&(a="system");let d="";"string"==typeof c.content?d=c.content:Array.isArray(c.content)&&(d=c.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),d.trim()&&b.push({role:a,text:d})}let c=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){c=a;break}let d=[];for(let a=0;a<b.length;a++){let{role:e,text:f}=b[a];d.push(a===c?f:`${e}: ${f}`)}return d.join("\n\n")}(s);if(!x.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:b};let y={temporary:!0,modelName:u,modelMode:v,message:x,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!1,imageGenerationCount:0,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},z=l(16),A=l(8),B={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Baggage:"sentry-environment=production,sentry-release=d6add6fb0460641fd482d767a335ef72b9b6abb8,sentry-public_key=b311e0f2690c81f25e2c4cf6d4f7ce1c","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://grok.com",Pragma:"no-cache",Referer:"https://grok.com/","Sec-Ch-Ua":'"Google Chrome";v="136", "Chromium";v="136", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36","x-statsig-id":btoa(.5>Math.random()?`e:TypeError: Cannot read properties of null (reading 'children["${k(5,!0)}"]')`:`e:TypeError: Cannot read properties of undefined (reading '${k(10)}')`),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${z}-${A}-00`};if(d.apiKey){let a=d.apiKey;a.startsWith("sso=")&&(a=a.slice(4)),B.Cookie=`sso=${a}`}m?.info?.("GROK-WEB",`Query to ${a} (grok=${u}, mode=${v}), len=${x.length}`);try{q=await (0,h.Fm)(i,{method:"POST",headers:B,body:JSON.stringify(y),signal:e,identity:this.config.identity,provider:this.provider,format:this.config.format},p)}catch(a){return m?.error?.("GROK-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Grok connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:B,transformedBody:y}}if(!q.ok){let a=q.status,b=`Grok returned HTTP ${a}`;return 401===a||403===a?b="Grok auth failed — SSO cookie may be expired. Re-paste your sso cookie value from grok.com.":429===a&&(b="Grok rate limited. Wait a moment and retry, or rotate cookies."),m?.warn?.("GROK-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:i,headers:B,transformedBody:y}}if(!q.body)return{response:new Response(JSON.stringify({error:{message:"Grok returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:B,transformedBody:y};let C=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,D=Math.floor(Date.now()/1e3);if(c){var E;let b;r=new Response((E=q.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,g.N)({id:C,object:"chat.completion.chunk",created:D,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="";for await(let f of n(E,w,e)){if(f.fingerprint&&(d=f.fingerprint),f.error){c.enqueue(b.encode((0,g.N)({id:C,object:"chat.completion.chunk",created:D,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{content:`[Error: ${f.error}]`},finish_reason:null,logprobs:null}]})));break}if(f.thinking){c.enqueue(b.encode((0,g.N)({id:C,object:"chat.completion.chunk",created:D,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{reasoning_content:f.thinking},finish_reason:null,logprobs:null}]})));continue}if(f.done)break;f.delta&&c.enqueue(b.encode((0,g.N)({id:C,object:"chat.completion.chunk",created:D,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{content:f.delta},finish_reason:null,logprobs:null}]})))}c.enqueue(b.encode((0,g.N)({id:C,object:"chat.completion.chunk",created:D,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(f.$U))}catch(d){c.enqueue(b.encode((0,g.N)({id:C,object:"chat.completion.chunk",created:D,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(f.$U))}finally{c.close()}}})),{status:200,headers:{...f.uB}})}else r=await o(q.body,a,C,D,w,e);return{response:r,url:i,headers:B,transformedBody:y}}}},49345:(a,b,c)=>{var d=c(45654);c(33889);var e=a.exports=d.pem=d.pem||{};function f(a){for(var b=a.name+": ",c=[],d=function(a,b){return" "+b},e=0;e<a.values.length;++e)c.push(a.values[e].replace(/^(\S+\r\n)/,d));b+=c.join(",")+"\r\n";for(var f=0,g=-1,e=0;e<b.length;++e,++f)if(f>65&&-1!==g){var h=b[g];","===h?(++g,b=b.substr(0,g)+"\r\n "+b.substr(g)):b=b.substr(0,g)+"\r\n"+h+b.substr(g+1),f=e-g-1,g=-1,++e}else(" "===b[e]||" "===b[e]||","===b[e])&&(g=e);return b}e.encode=function(a,b){b=b||{};var c,e="-----BEGIN "+a.type+"-----\r\n";if(a.procType&&(e+=f(c={name:"Proc-Type",values:[String(a.procType.version),a.procType.type]})),a.contentDomain&&(e+=f(c={name:"Content-Domain",values:[a.contentDomain]})),a.dekInfo&&(c={name:"DEK-Info",values:[a.dekInfo.algorithm]},a.dekInfo.parameters&&c.values.push(a.dekInfo.parameters),e+=f(c)),a.headers)for(var g=0;g<a.headers.length;++g)e+=f(a.headers[g]);return a.procType&&(e+="\r\n"),e+=d.util.encode64(a.body,b.maxline||64)+"\r\n",e+="-----END "+a.type+"-----\r\n"},e.decode=function(a){for(var b,c=[],e=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,f=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,g=/\r?\n/;b=e.exec(a);){var h=b[1];"NEW CERTIFICATE REQUEST"===h&&(h="CERTIFICATE REQUEST");var i={type:h,procType:null,contentDomain:null,dekInfo:null,headers:[],body:d.util.decode64(b[3])};if(c.push(i),b[2]){for(var j=b[2].split(g),k=0;b&&k<j.length;){for(var l=j[k].replace(/\s+$/,""),m=k+1;m<j.length;++m){var n=j[m];if(!/\s/.test(n[0]))break;l+=n,k=m}if(b=l.match(f)){for(var o={name:b[1],values:[]},p=b[2].split(","),q=0;q<p.length;++q)o.values.push(p[q].replace(/^\s+/,""));if(i.procType)if(i.contentDomain||"Content-Domain"!==o.name)if(i.dekInfo||"DEK-Info"!==o.name)i.headers.push(o);else{if(0===o.values.length)throw Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');i.dekInfo={algorithm:p[0],parameters:p[1]||null}}else i.contentDomain=p[0]||"";else{if("Proc-Type"!==o.name)throw Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(2!==o.values.length)throw Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');i.procType={version:p[0],type:p[1]}}}++k}if("ENCRYPTED"===i.procType&&!i.dekInfo)throw Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(0===c.length)throw Error("Invalid PEM formatted message.");return c}},49471:(a,b,c)=>{"use strict";c.d(b,{nl:()=>j});var d=c(57690),e=c(71253);let f={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},g={"claude-opus-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-4.6v":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},h={nvidia:{"minimaxai/minimax-m2.7":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072},"minimaxai/minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:131072},"z-ai/glm-5.2":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},"deepseek-ai/deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-ai/deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},"codebuddy-cn":{"glm-5.2":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:48e3},"glm-5.1":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-5.0-turbo":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:38e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:48e3},"minimax-m2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3}}},i=[{pattern:"*claude*opus-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*fable*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*omni*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144,maxOutput:65536}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwen*max*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.5*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.6*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.7*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1048576,maxOutput:512e3}},{pattern:"*minimax-m2.7*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*muse-spark*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:65536}},{pattern:"*muse*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:65536}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function j(a,b){if(!b)return{...f};let c=function(a,b){let c=h[a]?.[b];if(c)return c;let d=b.includes("/")?b.split("/").pop():b,f=g[d]||g[b];if(f)return f;for(let{pattern:a,caps:c}of i)if((0,e.gH)(a,d||b))return c;return null}(a,b),j=(0,d.uV)(b);return{...f,...j||{},...c||{}}}},49623:(a,b,c)=>{"use strict";c.d(b,{E9:()=>o,RF:()=>h,oV:()=>n});var d=c(55511),e=c(82689);let f=new Map,g=setInterval(()=>{let a=Date.now();for(let[b,c]of f)a-c.lastUsed>e.v1.sessionTtlMs&&f.delete(b)},e.v1.sessionCleanupIntervalMs);function h(a){if(!a)return i();let b=f.get(a);if(b)return b.lastUsed=Date.now(),b.sessionId;if(f.size>=1e3){let a=f.keys().next().value;f.delete(a)}let c=i();return f.set(a,{sessionId:c,lastUsed:Date.now()}),c}function i(){return d.randomUUID()+Date.now().toString()}g.unref&&g.unref();let j=["x-session-id","session-id","session_id","x-amp-thread-id","x-client-request-id"],k=/_session_([a-f0-9-]+)$/;function l(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}let m=/^[a-z]+\/([0-9a-f-]{36})\//i;function n({headers:a,body:b,connectionId:c,workspaceId:e,scope:f=""}={}){var g,i;let o,p=function(a,b){let c=function(a){if("string"!=typeof a||!a)return null;let b=a.match(k);if(b)return b[1];if("{"===a[0])try{return l(JSON.parse(a)?.session_id)}catch{}return null}(b?.metadata?.user_id);if(c)return`claude:${c}`;let d=function(a){let b=a?.request?.sessionId;if(null!=b&&""!==b)return l(String(b));let c="string"==typeof a?.requestId?a.requestId.match(m):null;return c?l(c[1]):null}(b);if(d)return`antigravity:${d}`;for(let b of j){let c=a&&"object"==typeof a?"function"==typeof a.get?l(a.get(b)):l(a[b]??a[b.toLowerCase()]):null;if(c)return c}return l(b?.prompt_cache_key)||l(b?.session_id)||l(b?.conversation_id)||l(b?.metadata?.user_id)||null}(a,b);if(p)return p;let q=(g=`${f}:${c||""}`,(o=function(a){let b=Array.isArray(a?.input)?a.input:Array.isArray(a?.messages)?a.messages:null;if(!b)return"";let c="";for(let a of b)if(a?.role==="assistant"){if("string"==typeof a.content)c+=a.content;else if(Array.isArray(a.content))for(let b of a.content)c+=b?.text||b?.output||"";if(c.length>=50)break}return c}(b)).length<50?null:`assistant:${i=JSON.stringify([g,o.slice(0,50)]),d.createHash("sha256").update(i).digest("hex")}`);if(q)return q;let r=l(e);return r||h(c)}function o(a){let b=l(a);if(!b)return null;if(/^-?\d+$/.test(b))return b;let c=0x7fffffffffffffffn&d.createHash("sha256").update(b).digest().readBigUInt64BE(0);return`-${c.toString()}`}},49926:(a,b,c)=>{"use strict";c(82703),c(80152),c(82689),c(68531),c(38421),c(75371),c(39490),c(81556),c(17438)},50027:(a,b,c)=>{"use strict";let d=c(34589),{kConstruct:e}=c(49176),{urlEquals:f,getFieldValues:g}=c(90912),{kEnumerableProperty:h,isDisturbed:i}=c(84285),{webidl:j}=c(32984),{cloneResponse:k,fromInnerResponse:l,getResponseState:m}=c(78196),{Request:n,fromInnerRequest:o,getRequestState:p}=c(12600),{fetching:q}=c(76403),{urlIsHttpHttpsScheme:r,readAllBytes:s}=c(42425);class t{#bi;constructor(){arguments[0]!==e&&j.illegalConstructor(),j.util.markAsUncloneable(this),this.#bi=arguments[1]}async match(a,b={}){j.brandCheck(this,j.is.Cache);let c="Cache.match";j.argumentLengthCheck(arguments,1,c),a=j.converters.RequestInfo(a),b=j.converters.CacheQueryOptions(b,c,"options");let d=this.#bj(a,b,1);if(0!==d.length)return d[0]}async matchAll(a,b={}){return j.brandCheck(this,j.is.Cache),void 0!==a&&(a=j.converters.RequestInfo(a)),b=j.converters.CacheQueryOptions(b,"Cache.matchAll","options"),this.#bj(a,b)}async add(a){j.brandCheck(this,j.is.Cache),j.argumentLengthCheck(arguments,1,"Cache.add");let b=[a=j.converters.RequestInfo(a)],c=this.addAll(b);return await c}async addAll(a){j.brandCheck(this,j.is.Cache);let b="Cache.addAll";j.argumentLengthCheck(arguments,1,b);let c=[],d=[];for(let c of a){if(void 0===c)throw j.errors.conversionFailed({prefix:b,argument:"Argument 1",types:["undefined is not allowed"]});if("string"==typeof(c=j.converters.RequestInfo(c)))continue;let a=p(c);if(!r(a.url)||"GET"!==a.method)throw j.errors.exception({header:b,message:"Expected http/s scheme when method is not GET."})}let e=[];for(let f of a){let a=p(new n(f));if(!r(a.url))throw j.errors.exception({header:b,message:"Expected http/s scheme."});a.initiator="fetch",a.destination="subresource",d.push(a);let h=Promise.withResolvers();e.push(q({request:a,processResponse(a){if("error"===a.type||206===a.status||a.status<200||a.status>299)h.reject(j.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(a.headersList.contains("vary")){for(let b of g(a.headersList.get("vary")))if("*"===b){for(let a of(h.reject(j.errors.exception({header:"Cache.addAll",message:"invalid vary field value"})),e))a.abort();return}}},processResponseConsumeBody(a){a.aborted?h.reject(new DOMException("aborted","AbortError")):h.resolve(a)}})),c.push(h.promise)}let f=Promise.all(c),h=await f,i=[],k=0;for(let a of h){let b={type:"put",request:d[k],response:a};i.push(b),k++}let l=Promise.withResolvers(),m=null;try{this.#bk(i)}catch(a){m=a}return queueMicrotask(()=>{null===m?l.resolve(void 0):l.reject(m)}),l.promise}async put(a,b){j.brandCheck(this,j.is.Cache);let c="Cache.put";j.argumentLengthCheck(arguments,2,c),a=j.converters.RequestInfo(a),b=j.converters.Response(b,c,"response");let d=null;if(!r((d=j.is.Request(a)?p(a):p(new n(a))).url)||"GET"!==d.method)throw j.errors.exception({header:c,message:"Expected an http/s scheme when method is not GET"});let e=m(b);if(206===e.status)throw j.errors.exception({header:c,message:"Got 206 status"});if(e.headersList.contains("vary")){for(let a of g(e.headersList.get("vary")))if("*"===a)throw j.errors.exception({header:c,message:"Got * vary field value"})}if(e.body&&(i(e.body.stream)||e.body.stream.locked))throw j.errors.exception({header:c,message:"Response body is locked or disturbed"});let f=k(e),h=Promise.withResolvers();null!=e.body?s(e.body.stream.getReader(),h.resolve,h.reject):h.resolve(void 0);let l=[],o={type:"put",request:d,response:f};l.push(o);let q=await h.promise;null!=f.body&&(f.body.source=q);let t=Promise.withResolvers(),u=null;try{this.#bk(l)}catch(a){u=a}return queueMicrotask(()=>{null===u?t.resolve():t.reject(u)}),t.promise}async delete(a,b={}){let c;j.brandCheck(this,j.is.Cache);let e="Cache.delete";j.argumentLengthCheck(arguments,1,e),a=j.converters.RequestInfo(a),b=j.converters.CacheQueryOptions(b,e,"options");let f=null;if(j.is.Request(a)){if("GET"!==(f=p(a)).method&&!b.ignoreMethod)return!1}else d("string"==typeof a),f=p(new n(a));let g=[],h={type:"delete",request:f,options:b};g.push(h);let i=Promise.withResolvers(),k=null;try{c=this.#bk(g)}catch(a){k=a}return queueMicrotask(()=>{null===k?i.resolve(!!c?.length):i.reject(k)}),i.promise}async keys(a,b={}){j.brandCheck(this,j.is.Cache),void 0!==a&&(a=j.converters.RequestInfo(a)),b=j.converters.CacheQueryOptions(b,"Cache.keys","options");let c=null;if(void 0!==a)if(j.is.Request(a)){if("GET"!==(c=p(a)).method&&!b.ignoreMethod)return[]}else"string"==typeof a&&(c=p(new n(a)));let d=Promise.withResolvers(),e=[];if(void 0===a)for(let a of this.#bi)e.push(a[0]);else for(let a of this.#bl(c,b))e.push(a[0]);return queueMicrotask(()=>{let a=[];for(let b of e){let c=o(b,void 0,new AbortController().signal,"immutable");a.push(c)}d.resolve(Object.freeze(a))}),d.promise}#bk(a){let b=this.#bi,c=[...b],e=[],f=[];try{for(let c of a){let a;if("delete"!==c.type&&"put"!==c.type)throw j.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if("delete"===c.type&&null!=c.response)throw j.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#bl(c.request,c.options,e).length)throw new DOMException("???","InvalidStateError");if("delete"===c.type){if(a=this.#bl(c.request,c.options),0===a.length)return[];for(let c of a){let a=b.indexOf(c);d(-1!==a),b.splice(a,1)}}else if("put"===c.type){if(null==c.response)throw j.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let f=c.request;if(!r(f.url))throw j.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if("GET"!==f.method)throw j.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(null!=c.options)throw j.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});for(let e of a=this.#bl(c.request)){let a=b.indexOf(e);d(-1!==a),b.splice(a,1)}b.push([c.request,c.response]),e.push([c.request,c.response])}f.push([c.request,c.response])}return f}catch(a){throw this.#bi.length=0,this.#bi=c,a}}#bl(a,b,c){let d=[];for(let e of c??this.#bi){let[c,f]=e;this.#bm(a,c,f,b)&&d.push(e)}return d}#bm(a,b,c=null,d){let e=new URL(a.url),h=new URL(b.url);if(d?.ignoreSearch&&(h.search="",e.search=""),!f(e,h,!0))return!1;if(null==c||d?.ignoreVary||!c.headersList.contains("vary"))return!0;for(let d of g(c.headersList.get("vary")))if("*"===d||b.headersList.get(d)!==a.headersList.get(d))return!1;return!0}#bj(a,b,c=1/0){let d=null;if(void 0!==a)if(j.is.Request(a)){if("GET"!==(d=p(a)).method&&!b.ignoreMethod)return[]}else"string"==typeof a&&(d=p(new n(a)));let e=[];if(void 0===a)for(let a of this.#bi)e.push(a[1]);else for(let a of this.#bl(d,b))e.push(a[1]);let f=[];for(let a of e){let b=l(k(a),"immutable");if(f.push(b),f.length>=c)break}return Object.freeze(f)}static{j.is.Cache=a=>null!=a&&"object"==typeof a&&#bi in a}}Object.defineProperties(t.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:h,matchAll:h,add:h,addAll:h,put:h,delete:h,keys:h});let u=[{key:"ignoreSearch",converter:j.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:j.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:j.converters.boolean,defaultValue:()=>!1}];j.converters.CacheQueryOptions=j.dictionaryConverter(u),j.converters.MultiCacheQueryOptions=j.dictionaryConverter([...u,{key:"cacheName",converter:j.converters.DOMString}]),j.converters.Response=j.interfaceConverter(j.is.Response,"Response"),j.converters["sequence<RequestInfo>"]=j.sequenceConverter(j.converters.RequestInfo),a.exports={Cache:t}},50132:(a,b,c)=>{"use strict";c(68531)},50329:a=>{"use strict";class b{bottom=0;top=0;list=Array(2048).fill(void 0);next=null;isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(a){this.list[this.top]=a,this.top=this.top+1&2047}shift(){let a=this.list[this.bottom];return void 0===a?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,a)}}a.exports=class{constructor(){this.head=this.tail=new b}isEmpty(){return this.head.isEmpty()}push(a){this.head.isFull()&&(this.head=this.head.next=new b),this.head.push(a)}shift(){let a=this.tail,b=a.shift();return a.isEmpty()&&null!==a.next&&(this.tail=a.next,a.next=null),b}}},50743:(a,b,c)=>{"use strict";function d(a,b=null){if(null==a)return b;if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return b}}function e(a){return JSON.stringify(a??null)}c.d(b,{q:()=>d,s:()=>e})},50969:(a,b,c)=>{"use strict";let d;c.d(b,{wo:()=>P,Fm:()=>T,ip:()=>O,WV:()=>L});var e=c(27910),f=c(82689),g=c(44140),h=c(59882),i=c(31421),j=c(51455),k=c(76760),l=c(73136),m=c(57075);let n="2.1.289",o=Object.freeze(["http/1.1"]);Object.freeze(["TLS_AES_128_GCM_SHA256","TLS_AES_256_GCM_SHA384","TLS_CHACHA20_POLY1305_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_CBC_SHA","TLS_RSA_WITH_AES_256_CBC_SHA"]),Object.freeze(["server_name","extended_master_secret","renegotiation_info","supported_groups:x25519_mlkem768,x25519,secp256r1,secp384r1","ec_point_formats:uncompressed","session_ticket","alpn:http/1.1","status_request","signature_algorithms:ecdsa_secp256r1_sha256,rsa_pss_rsae_sha256,rsa_pkcs1_sha256,ecdsa_secp384r1_sha384,rsa_pss_rsae_sha384,rsa_pkcs1_sha384,rsa_pss_rsae_sha512,rsa_pkcs1_sha512,rsa_pkcs1_sha1","signed_certificate_timestamp","key_share:x25519_mlkem768","psk_key_exchange_modes:psk_dhe_ke","supported_versions:TLS1.3,TLS1.2"]);let p=k.dirname((0,l.fileURLToPath)("file:///home/runner/work/switchboard-router/switchboard-router/open-sse/identity/tls/claude-code.js")),q="win32"===process.platform?"switchboard-claude-tls.exe":"switchboard-claude-tls",r=[process.env.SWITCHBOARD_CLAUDE_TLS_HELPER,k.join(process.cwd(),"open-sse","identity","tls","bin",process.platform,process.arch,q),k.join(p,"bin",process.platform,process.arch,q)].filter(Boolean);function s(a){let b=Number(a);return Number.isFinite(b)&&b>0?Math.floor(b):null}let t=i.spawn,u=function(a){if(null==a||""===a)return 2;let b=Number(a);return Number.isInteger(b)&&b>=0?b:2}(process.env.SWITCHBOARD_CLAUDE_TLS_POOL_CAP),v=new Map,w=null;function x(a){return t(a,[],{stdio:["pipe","pipe","pipe"],windowsHide:!0})}function y(a,b){for(let c of[a,a.stdin,a.stdout,a.stderr])c?.[b?"ref":"unref"]?.()}async function z(){if(d)return d;for(let a of r)try{return await (0,j.access)(a),d=a,a}catch{}throw Error(`Claude Code TLS helper is not installed for ${process.platform}-${process.arch}`)}function A(){return new DOMException("The operation was aborted.","AbortError")}let B=globalThis.fetch,C=new Map,D=new Map,E=async()=>async function(a,b={},c={}){var d,e,f,g;if(c.alpn?.length!==1||"http/1.1"!==c.alpn[0])throw Error("Claude Code TLS transport requires ALPN http/1.1 only");if(b.signal?.aborted)throw A();let h=await z(),i=function(){for(let[a,b]of v)if(b(),null==a.exitCode&&null==a.signalCode)return y(a,!0),a;return null}()??x(h);w||v.size>=u||(w=setImmediate(()=>{w=null,function(a){for(;v.size<u;){let b;try{b=x(a)}catch{return}!function(a){let b=()=>{clearTimeout(c),a.off("exit",b),a.off("error",b),v.delete(a)},c=setTimeout(()=>{b();try{a.kill("SIGTERM")}catch{}},6e4);c.unref?.(),a.once("exit",b),a.once("error",b),y(a,!1),v.set(a,b)}(b)}}(h)}),w.unref?.());let j=function(a){if(null==a)return null;if("string"==typeof a)return Buffer.from(a);if(Buffer.isBuffer(a))return a;if(a instanceof Uint8Array)return Buffer.from(a);throw TypeError("Claude Code TLS helper requires a string or byte request body")}(b.body),k={url:String(a),method:b.method||"GET",headers:(d=b.headers)instanceof Headers?[...d.entries()]:Object.entries(d||{}).map(([a,b])=>[a,String(b)]),headerOrder:c.headerOrder||[],proxyUrl:c.proxyUrl||"",tlsSpecRev:n,alpn:o,bodyLength:j?.byteLength||0,timeoutMs:s(b.timeoutMs)??s(c.timeoutMs)??6e4};return i.stdin.write(`${JSON.stringify(k)}
|
|
363
|
-
`),j&&i.stdin.write(j),i.stdin.end(),e=i.stdout,f=i.stderr,g=b.signal,new Promise((a,b)=>{let c=Buffer.alloc(0),d="",h=!1,j=a=>{d.length>=16384||(d+=a.toString("utf8",0,16384-d.length))},k=(a,b,c)=>{let e=d.trim(),f=`${null==a?"":` with code ${a}`}${b?` (${b})`:""}`;return Error(e||`Claude TLS helper exited${c}${f}`)},l=()=>{e.off("data",r),i.off("error",o),i.off("exit",p)},n=a=>{h||(h=!0,l(),f.off("data",j),g?.removeEventListener("abort",q),b(a))},o=a=>n(a),p=(a,b)=>n(k(a,b," before metadata")),q=()=>{n(A()),i.kill("SIGTERM")},r=b=>{let d,o=(c=Buffer.concat([c,b])).indexOf("\n");if(o<0)return;try{d=JSON.parse(c.subarray(0,o).toString("utf8"))}catch(a){n(Error(`Claude TLS helper returned invalid metadata: ${a.message}`));return}if(d.error)return void n(Error(d.error));h=!0,l(),g?.removeEventListener("abort",q);let p=new m.PassThrough,r=m.Readable.toWeb(p),s=!1,t=!1,u=!1,v=a=>{u||(u=!0,p.off("close",w),e.unpipe(p),e.off("end",z),e.off("error",y),f.off("data",j),i.off("error",y),i.off("exit",B),g?.removeEventListener("abort",C),a?p.destroy(a):p.end())},w=()=>{u||(v(),i.kill("SIGTERM"))},x=a=>{e.destroyed||(e.once("error",()=>{}),e.destroy(a)),v(a)},y=a=>v(a),z=()=>{s=!0,t&&v()},B=(a,b)=>{0!==a||b?x(k(a,b," after metadata")):(t=!0,s&&v())},C=()=>{x(A()),i.kill("SIGTERM")};p.once("close",w),e.once("end",z),e.once("error",y),i.once("error",y),i.once("exit",B),g?.addEventListener("abort",C,{once:!0}),p.write(c.subarray(o+1)),e.pipe(p,{end:!1}),a(new Response(r,{status:d.status,statusText:d.statusText||"",headers:new Headers(d.headers||[])}))};f.on("data",j),e.on("data",r),i.once("error",o),i.once("exit",p),g?.addEventListener("abort",q,{once:!0}),g?.aborted&&q()})},F=async()=>(await Promise.resolve().then(c.t.bind(c,36435,19))).Impit,G=new Map,H=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],I=["8.8.8.8","8.8.4.4"];function J(a){return null==a?"":String(a).trim()}async function K(a){let b=G.get(a);if(b&&Date.now()<b.expiry&&Array.isArray(b.ips)&&b.ips.length>0)return b.idx=(b.idx+1)%b.ips.length,b.ips[b.idx];try{let b=await Promise.resolve().then(c.t.bind(c,14985,19)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,19)),e=new b.Resolver;e.setServers(I);let g=d(e.resolve4.bind(e)),h=d(e.resolve6.bind(e)),i=await g(a).catch(()=>[]);if(Array.isArray(i)&&0!==i.length||(i=await h(a).catch(()=>[])),!Array.isArray(i)||0===i.length)return null;if(G.size>=f.v1.dnsCacheMaxSize){let a=Date.now();for(let[b,c]of G)c.expiry<=a&&G.delete(b);for(;G.size>=f.v1.dnsCacheMaxSize;)G.delete(G.keys().next().value)}return G.set(a,{ips:i,idx:0,expiry:Date.now()+f.v1.dnsCacheTtlMs}),i[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function L(a){try{let b=new URL(a).hostname;return H.some(a=>b.includes(a))}catch{return!1}}function M(a,b){let c,d=J(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function N(a){let b=J(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}function O(a,b){return function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=J(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=J(b?.noProxy??b?.connectionNoProxy);return d&&M(a,d)?null:N(c)}(a,b)||N(function(a){let b;if(M(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(a))}async function P(a){let b=N(a);if(!b)return null;if(!C.has(b)){if(C.size>=f.v1.proxyDispatchersMaxSize){let a=C.keys().next().value,b=C.get(a);C.delete(a),Promise.resolve(b?.close?.()).catch(()=>{})}let{ProxyAgent:a}=await Promise.resolve().then(c.t.bind(c,25814,19));C.set(b,new a({uri:b}))}let d=C.get(b);return C.delete(b),C.set(b,d),d}async function Q(a){let b=a||"",c=D.get(b);return c||(c=new(await F())({browser:"chrome",...a?{proxyUrl:a}:{},followRedirects:!1}),D.set(b,c)),(a,b)=>c.fetch(a,b)}function R(a){return a?"u">typeof Headers&&a instanceof Headers?Object.fromEntries(a.entries()):{...a}:{}}async function S(a,b,d){let f=await Promise.resolve().then(c.t.bind(c,55591,19)),g=await Promise.resolve().then(c.t.bind(c,91645,19)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g,j=new i.Socket,k=!1;function l(){j.setTimeout(0),d.signal&&d.signal.removeEventListener("abort",m)}function m(){k||(k=!0,l(),j.destroy(),g?.destroy(),f(new DOMException("The operation was aborted.","AbortError")))}d.signal?.aborted?m():(d.signal&&d.signal.addEventListener("abort",m,{once:!0}),j.setTimeout(1e4,()=>{k||(k=!0,l(),j.destroy(),f(Error(`[ProxyFetch] connect timeout after 10000ms to ${b}`)))}),j.connect(443,b,()=>{j.setTimeout(0);let b={socket:j,servername:a.hostname,path:a.pathname+a.search,method:d.method||"POST",headers:{...R(d.headers),Host:a.hostname}};if((g=h.request(b,a=>{let b=()=>{try{a.destroy(new DOMException("The operation was aborted.","AbortError"))}catch{a.destroy()}},g=()=>d.signal?.removeEventListener("abort",b);if(d.signal?.aborted){k=!0,l(),b(),g(),f(new DOMException("The operation was aborted.","AbortError"));return}d.signal?.addEventListener("abort",b,{once:!0}),a.once("end",g),a.once("close",g),a.once("error",g);let h={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:e.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await h.text())};k=!0,l(),c(h)})).on("error",a=>{k||(k=!0,l(),f(a))}),null!=d.body)try{g.write(function(a){if("string"==typeof a||"u">typeof Buffer&&Buffer.isBuffer(a)||a instanceof Uint8Array)return a;if("u">typeof ArrayBuffer&&a instanceof ArrayBuffer)return Buffer.from(a);if("u">typeof FormData&&a instanceof FormData)throw Error("[ProxyFetch] FormData bodies are not supported on the MITM bypass path");return JSON.stringify(a)}(d.body))}catch(a){k||(k=!0,l(),f(a));return}g.end()}),j.on("error",a=>{k||(k=!0,l(),f(a))}))})}async function T(a,b={},c=null){let d="string"==typeof a?a:a.toString(),e=function(a,b={}){let c=b.headers?.Accept||b.headers?.accept||"",d="string"==typeof c&&c.includes("text/event-stream"),e=(0,g.fX)(b.headers||{},{identity:b.identity,provider:b.provider,format:b.format,overlay:b.overlay,credentialId:b.credentialId,stream:b.stream??d,retryCount:b.retryCount,snapshot:b.snapshot,requestPath:new URL(a).pathname}),f={...e.headers};if("claude-cli"===e.profileId){let a=Object.keys(f).find(a=>"authorization"===a.toLowerCase());if((a?String(f[a]):"").startsWith("Bearer ")){let a=Object.keys(f).find(a=>"anthropic-beta"===a.toLowerCase());a&&f[a]&&(f[a]=(0,g.AU)(f[a]))}}return{...b,headers:f,_identityTls:e.tls,_identityAlpn:e.alpn,_identityTlsSpecRev:e.tlsSpecRev,_identityProfile:e.profileId}}(d,b),f=function(a){let{_identityTls:b,_identityAlpn:c,_identityTlsSpecRev:d,_identityProfile:e,identity:f,provider:g,format:h,overlay:i,credentialId:j,stream:k,retryCount:l,snapshot:m,...n}=a;return n}(e),{_identityTls:i,_identityAlpn:j,_identityProfile:k}=e,l=J(c?.vercelRelayUrl);if(l){let a=new URL(d);return((...a)=>B(...a))(l,{...f,headers:{...R(f.headers),"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`}})}let m=O(d,c);if("node"!==i)try{let b={profileId:k,alpn:j,proxyUrl:m,headerOrder:"claude-cli"===k?new URL(d).pathname.startsWith("/v1/messages/count_tokens")?h.$R:h.Zb:(0,h.E$)(k)?.headerOrder||[]},c=/^claude-code-(\d+\.\d+\.\d+)$/.exec(e._identityTlsSpecRev||"")?.[1]||e._identityTlsSpecRev;if("claude-cli"===k&&c!==n)throw Error(`snapshot TLS spec ${e._identityTlsSpecRev||"missing"} does not match helper ${n}`);let g="chrome"===i?await Q(m):await E();return await g(a,f,b)}catch(b){if(b?.name==="AbortError")throw b;let a=Error(`[ProxyFetch] ${i} TLS (${k}) unavailable: ${b.message}`);throw a.status=503,a}if(L(d)){if(m)try{let b=await P(m);return await ((...a)=>B(...a))(a,{...f,dispatcher:b})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(d),b=await K(a.hostname);if(b)return await S(a,b,f)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(m)try{let b=await P(m);return await ((...a)=>B(...a))(a,{...f,dispatcher:b})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return((...a)=>B(...a))(a,f)}async function U(a,b={}){return T(a,b,null)}globalThis.fetch!==U&&(globalThis.fetch=U)},51171:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{ou:()=>z});var e=c(22256),f=c(38421),g=c(82689),h=c(71137),i=c(70799),j=c(22268),k=c(19016),l=c(24725),m=c(68531),n=c(50969),o=c(44140),p=c(18586),q=c(74075);let a=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{a=await Promise.resolve().then(c.t.bind(c,73496,19))}catch{}let w="1"===process.env.CURSOR_STREAM_DEBUG,x=(...a)=>{w&&console.log(...a)};function r(a){let b=String(a||"").split("/").pop();return/^composer(?:-|$)/i.test(b)}function s(a){if(!a)return"";let b="</think>",c=a.lastIndexOf(b);return c<0?"":a.slice(c+b.length).trimStart()}function t(a,b,c,d){if(b+5>a.length)return x(`[CURSOR BUFFER${d}] Reached end, offset=${b}, remaining=${a.length-b}`),{status:"done"};let e=a[b],f=a.readUInt32BE(b+1);if(x(`[CURSOR BUFFER${d}] Frame ${c+1}: flags=0x${e.toString(16).padStart(2,"0")}, length=${f}`),b+5+f>a.length)return x(`[CURSOR BUFFER${d}] Incomplete frame, offset=${b}, length=${f}, buffer.length=${a.length}`),{status:"done"};let g=a.slice(b+5,b+5+f),h=b+5+f;return(g=function(a,b){if(a.length>10&&123===a[0]&&34===a[1])try{if(a.toString("utf-8").startsWith('{"error"'))return x("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return q.gunzipSync(a)}catch(c){try{return q.inflateSync(a)}catch(d){try{return q.inflateRawSync(a)}catch(e){x(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),x("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}(g,e))?{status:"ok",payload:g,offset:h}:(x(`[CURSOR BUFFER${d}] Frame ${c+1}: decompression failed, skipping`),{status:"skip",offset:h})}let y=/rate.?limit|rate_limited|resource_exhausted|quota|too many requests|throttl|capacity|overloaded|\b429\b/i;function u(a){return y.test(String(a||""))?{status:g.gx.RATE_LIMITED,type:"rate_limit_error",code:"rate_limited"}:{status:g.gx.BAD_REQUEST,type:"api_error",code:"upstream_error"}}function v(a){let b=a?.error?.details?.[0]?.debug?.details?.title||a?.error?.details?.[0]?.debug?.details?.detail||a?.error?.message||"API Error",c=a?.error?.code==="resource_exhausted";return new Response(JSON.stringify({error:{message:b,type:c?"rate_limit_error":"api_error",code:a?.error?.details?.[0]?.debug?.error||"unknown"}}),{status:c?g.gx.RATE_LIMITED:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}class z extends e.Hv{constructor(){super("cursor",f.xq.cursor)}buildUrl(){return`${this.config.baseUrl}${this.config.chatPath}`}buildHeaders(a){let b=a.accessToken,c=a.providerSpecificData?.machineId,d=a.providerSpecificData?.ghostMode!==!1;if(!c)throw Error("Machine ID is required for Cursor API");return(0,i.JA)(b,c,d)}transformRequest(a,b,c,d){let e=b.messages||[],f=b.tools||[],g=b.reasoning_effort||null,i=d?.rawHeaders?.["user-agent"]||"",j=i.includes("claude-cli")||i.includes("claude-code")||i.includes("Claude Code");return(0,h.yI)(e,a,f,g,j)}async makeFetchRequest(a,b,c,d,e=null){let f=await (0,n.Fm)(a,{method:"POST",headers:b,body:c,signal:d,identity:"cursor",provider:this.provider,format:this.config?.format},e);return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}wrapOutboundHeaders(a){return(0,o.fX)(a,{identity:"cursor",provider:this.provider,format:this.config?.format}).headers}makeHttp2Request(b,c,d,e){if(!a)throw Error("http2 module not available");return new Promise((f,g)=>{let h=new URL(b),i=a.connect(`https://${h.host}`),j=[],k={},l=!1,m=a=>(...b)=>{l||(l=!0,clearTimeout(n),i.close(),a(...b))},n=setTimeout(m(()=>{g(Error("HTTP/2 request timed out"))}),6e4);i.on("error",m(g));let o=i.request({":method":"POST",":path":h.pathname,":authority":h.host,":scheme":"https",...this.wrapOutboundHeaders(c)});if(o.on("response",a=>{k=a}),o.on("data",a=>{j.push(a)}),o.on("end",m(()=>{f({status:k[":status"],headers:k,body:Buffer.concat(j)})})),o.on("error",m(g)),e){let a=m(()=>g(Error("Request aborted")));e.addEventListener("abort",a,{once:!0})}o.write(d),o.end()})}async execute({model:b,body:c,stream:d,credentials:e,signal:f,log:h,proxyOptions:i=null}){let j=this.buildUrl(),k=this.buildHeaders(e),l=this.transformRequest(b,c,d,e);try{let e=i?.enabled===!0||i?.connectionProxyEnabled===!0||!!i?.vercelRelayUrl,g=a&&!e?await this.makeHttp2Request(j,k,l,f):await this.makeFetchRequest(j,k,l,f,i);if(200!==g.status){let a=g.body?.toString()||"Unknown error";return{response:new Response(JSON.stringify({error:{message:`[${g.status}]: ${a}`,type:"invalid_request_error",code:""}}),{status:g.status,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}return{response:!1!==d?this.transformProtobufToSSE(g.body,b,c):this.transformProtobufToJSON(g.body,b,c),url:j,headers:k,transformedBody:c}}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message,type:"connection_error",code:""}}),{status:g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}}transformProtobufToJSON(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=0,g="",i="",k=[],l=new Map,n=new Set,o=0;for(x(`[CURSOR BUFFER] Total length: ${a.length} bytes`);f<a.length;){let b=t(a,f,o,"");if("done"===b.status)break;if(f=b.offset,o++,"skip"===b.status)continue;let c=b.payload;if(c.length>0&&123===c[0])try{let a=c.toString("utf-8");if(a.includes('"error"')){let b=g||l.size>0;if(x(`[CURSOR BUFFER] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return v(JSON.parse(a))}}catch{}let d=(0,h.CP)(new Uint8Array(c));if(x(`[CURSOR DECODED] Frame ${o}:`,d),d.error){let a=g||l.size>0;if(x(`[CURSOR BUFFER] Decoded error (hasContent=${a}): ${d.error}`),a)break;let b=u(d.error);return new Response(JSON.stringify({error:{message:d.error,type:b.type,code:b.code}}),{status:b.status,headers:{"Content-Type":"application/json"}})}if(d.toolCall){let a=d.toolCall;if(l.has(a.id)){let b=l.get(a.id);b.function.arguments+=a.function.arguments,b.isLast=a.isLast}else l.set(a.id,{...a});if(a.isLast){let b=l.get(a.id);n.add(a.id),k.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}})}}d.text&&(g+=d.text),d.thinking&&(i+=d.thinking)}let q=r(b)?s(i):"",w=g||q;for(let[a,b]of(x(`[CURSOR BUFFER] Parsed ${o} frames, toolCallsMap size: ${l.size}, finalized toolCalls: ${k.length}`),l.entries()))n.has(a)||(x(`[CURSOR BUFFER] Finalizing incomplete tool call: ${a}, isLast=${b.isLast}`),k.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}}));x(`[CURSOR BUFFER] Final toolCalls count: ${k.length}`);let y=w;if(0===k.length&&w){let a=(0,p.au)(w,b);a&&a.toolCalls.length>0&&(x(`[CURSOR BUFFER] Extracted ${a.toolCalls.length} native tool call(s) from text content`),k.push(...a.toolCalls),y=a.content||"")}let z={role:"assistant",content:y||null};k.length>0&&(z.tool_calls=k);let A=(0,j.OF)(c,w.length,m.h.OPENAI),B={id:d,object:"chat.completion",created:e,model:b,choices:[{index:0,message:z,finish_reason:k.length>0?"tool_calls":"stop"}],usage:A};return new Response(JSON.stringify(B),{status:200,headers:{"Content-Type":"application/json"}})}transformProtobufToSSE(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=[],g=0,i="",n="",o=0,q=[],w=new Map,y=new Set,z=new Set,A=0;for(x(`[CURSOR BUFFER SSE] Total length: ${a.length} bytes`);g<a.length;){let c=t(a,g,A," SSE");if("done"===c.status)break;if(g=c.offset,A++,"skip"===c.status)continue;let j=c.payload;if(123===j[0])try{let a=j.toString("utf-8");if(a.includes('"error"')){let b=f.length>0||i||w.size>0;if(x(`[CURSOR BUFFER SSE] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return v(JSON.parse(a))}}catch{}let k=(0,h.CP)(new Uint8Array(j));if(x(`[CURSOR DECODED SSE] Frame ${A}:`,k),k.error){let a=f.length>0||i||w.size>0;if(x(`[CURSOR BUFFER SSE] Decoded error (hasContent=${a}): ${k.error}`),a)break;let b=u(k.error);return new Response(JSON.stringify({error:{message:k.error,type:b.type,code:b.code}}),{status:b.status,headers:{"Content-Type":"application/json"}})}if(k.toolCall){let a=k.toolCall;if(0===f.length&&f.push((0,l.z)({id:d,created:e,model:b,delta:{role:"assistant",content:""}})),w.has(a.id)){let c=w.get(a.id);c.function.arguments.length,c.function.arguments+=a.function.arguments,c.isLast=a.isLast,a.function.arguments&&(z.add(a.id),f.push((0,l.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:c.index,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]}})))}else{let c=q.length;y.add(a.id),q.push({...a,index:c}),w.set(a.id,{...a,index:c}),z.add(a.id),f.push((0,l.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:c,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]}}))}}if(k.text&&(i+=k.text,f.push((0,l.z)({id:d,created:e,model:b,delta:0===f.length&&0===q.length?{role:"assistant",content:k.text}:{content:k.text}}))),r(b)&&k.thinking){n+=k.thinking;let a=s(n);if(a.length>o){let c=a.slice(o);o=a.length,i+=c,f.push((0,l.z)({id:d,created:e,model:b,delta:0===f.length&&0===q.length?{role:"assistant",content:c}:{content:c}}))}}}for(let[a,c]of(x(`[CURSOR BUFFER SSE] Parsed ${A} frames, toolCallsMap size: ${w.size}, toolCalls array: ${q.length}`),w.entries()))if(!y.has(a)){x(`[CURSOR BUFFER SSE] Finalizing incomplete tool call: ${a}, isLast=${c.isLast}`);let g=q.length;q.push({id:c.id,type:c.type,index:g,function:{name:c.function.name,arguments:c.function.arguments}}),z.has(c.id)||f.push((0,l.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:g,id:c.id,type:"function",function:{name:c.function.name,arguments:c.function.arguments}}]}}))}if(0===q.length&&i){let a=(0,p.au)(i,b);if(a&&a.toolCalls.length>0){x(`[CURSOR BUFFER SSE] Extracted ${a.toolCalls.length} native tool call(s) from text content`),f.length=0;let c=a.content||"";c?f.push((0,l.z)({id:d,created:e,model:b,delta:{role:"assistant",content:c}})):f.push((0,l.z)({id:d,created:e,model:b,delta:{role:"assistant",content:""}}));for(let c=0;c<a.toolCalls.length;c++){let g=a.toolCalls[c];q.push({...g,index:c}),f.push((0,l.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:c,id:g.id,type:"function",function:{name:g.function.name,arguments:g.function.arguments}}]}}))}}}0===f.length&&0===q.length&&f.push((0,l.z)({id:d,created:e,model:b,delta:{role:"assistant",content:""}}));let B=(0,j.OF)(c,i.length,m.h.OPENAI);return f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{},finish_reason:q.length>0?"tool_calls":"stop"}],usage:B})}
|
|
363
|
+
`),j&&i.stdin.write(j),i.stdin.end(),e=i.stdout,f=i.stderr,g=b.signal,new Promise((a,b)=>{let c=Buffer.alloc(0),d="",h=!1,j=a=>{d.length>=16384||(d+=a.toString("utf8",0,16384-d.length))},k=(a,b,c)=>{let e=d.trim(),f=`${null==a?"":` with code ${a}`}${b?` (${b})`:""}`;return Error(e||`Claude TLS helper exited${c}${f}`)},l=()=>{e.off("data",r),i.off("error",o),i.off("exit",p)},n=a=>{h||(h=!0,l(),f.off("data",j),g?.removeEventListener("abort",q),b(a))},o=a=>n(a),p=(a,b)=>n(k(a,b," before metadata")),q=()=>{n(A()),i.kill("SIGTERM")},r=b=>{let d,o=(c=Buffer.concat([c,b])).indexOf("\n");if(o<0)return;try{d=JSON.parse(c.subarray(0,o).toString("utf8"))}catch(a){n(Error(`Claude TLS helper returned invalid metadata: ${a.message}`));return}if(d.error)return void n(Error(d.error));h=!0,l(),g?.removeEventListener("abort",q);let p=new m.PassThrough,r=m.Readable.toWeb(p),s=!1,t=!1,u=!1,v=a=>{u||(u=!0,p.off("close",w),e.unpipe(p),e.off("end",z),e.off("error",y),f.off("data",j),i.off("error",y),i.off("exit",B),g?.removeEventListener("abort",C),a?p.destroy(a):p.end())},w=()=>{u||(v(),i.kill("SIGTERM"))},x=a=>{e.destroyed||(e.once("error",()=>{}),e.destroy(a)),v(a)},y=a=>v(a),z=()=>{s=!0,t&&v()},B=(a,b)=>{0!==a||b?x(k(a,b," after metadata")):(t=!0,s&&v())},C=()=>{x(A()),i.kill("SIGTERM")};p.once("close",w),e.once("end",z),e.once("error",y),i.once("error",y),i.once("exit",B),g?.addEventListener("abort",C,{once:!0}),p.write(c.subarray(o+1)),e.pipe(p,{end:!1}),a(new Response(r,{status:d.status,statusText:d.statusText||"",headers:new Headers(d.headers||[])}))};f.on("data",j),e.on("data",r),i.once("error",o),i.once("exit",p),g?.addEventListener("abort",q,{once:!0}),g?.aborted&&q()})},F=async()=>(await Promise.resolve().then(c.t.bind(c,36435,19))).Impit,G=new Map,H=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],I=["8.8.8.8","8.8.4.4"];function J(a){return null==a?"":String(a).trim()}async function K(a){let b=G.get(a);if(b&&Date.now()<b.expiry&&Array.isArray(b.ips)&&b.ips.length>0)return b.idx=(b.idx+1)%b.ips.length,b.ips[b.idx];try{let b=await Promise.resolve().then(c.t.bind(c,14985,19)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,19)),e=new b.Resolver;e.setServers(I);let g=d(e.resolve4.bind(e)),h=d(e.resolve6.bind(e)),i=await g(a).catch(()=>[]);if(Array.isArray(i)&&0!==i.length||(i=await h(a).catch(()=>[])),!Array.isArray(i)||0===i.length)return null;if(G.size>=f.v1.dnsCacheMaxSize){let a=Date.now();for(let[b,c]of G)c.expiry<=a&&G.delete(b);for(;G.size>=f.v1.dnsCacheMaxSize;)G.delete(G.keys().next().value)}return G.set(a,{ips:i,idx:0,expiry:Date.now()+f.v1.dnsCacheTtlMs}),i[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function L(a){try{let b=new URL(a).hostname;return H.some(a=>b.includes(a))}catch{return!1}}function M(a,b){let c,d=J(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function N(a){let b=J(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}function O(a,b){return function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=J(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=J(b?.noProxy??b?.connectionNoProxy);return d&&M(a,d)?null:N(c)}(a,b)||N(function(a){let b;if(M(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(a))}async function P(a){let b=N(a);if(!b)return null;if(!C.has(b)){if(C.size>=f.v1.proxyDispatchersMaxSize){let a=C.keys().next().value,b=C.get(a);C.delete(a),Promise.resolve(b?.close?.()).catch(()=>{})}let{ProxyAgent:a}=await Promise.resolve().then(c.t.bind(c,25814,19));C.set(b,new a({uri:b}))}let d=C.get(b);return C.delete(b),C.set(b,d),d}async function Q(a){let b=a||"",c=D.get(b);return c||(c=new(await F())({browser:"chrome",...a?{proxyUrl:a}:{},followRedirects:!1}),D.set(b,c)),(a,b)=>c.fetch(a,b)}function R(a){return a?"u">typeof Headers&&a instanceof Headers?Object.fromEntries(a.entries()):{...a}:{}}async function S(a,b,d){let f=await Promise.resolve().then(c.t.bind(c,55591,19)),g=await Promise.resolve().then(c.t.bind(c,91645,19)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g,j=new i.Socket,k=!1;function l(){j.setTimeout(0),d.signal&&d.signal.removeEventListener("abort",m)}function m(){k||(k=!0,l(),j.destroy(),g?.destroy(),f(new DOMException("The operation was aborted.","AbortError")))}d.signal?.aborted?m():(d.signal&&d.signal.addEventListener("abort",m,{once:!0}),j.setTimeout(1e4,()=>{k||(k=!0,l(),j.destroy(),f(Error(`[ProxyFetch] connect timeout after 10000ms to ${b}`)))}),j.connect(443,b,()=>{j.setTimeout(0);let b={socket:j,servername:a.hostname,path:a.pathname+a.search,method:d.method||"POST",headers:{...R(d.headers),Host:a.hostname}};if((g=h.request(b,a=>{let b=()=>{try{a.destroy(new DOMException("The operation was aborted.","AbortError"))}catch{a.destroy()}},g=()=>d.signal?.removeEventListener("abort",b);if(d.signal?.aborted){k=!0,l(),b(),g(),f(new DOMException("The operation was aborted.","AbortError"));return}d.signal?.addEventListener("abort",b,{once:!0}),a.once("end",g),a.once("close",g),a.once("error",g);let h={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:e.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await h.text())};k=!0,l(),c(h)})).on("error",a=>{k||(k=!0,l(),f(a))}),null!=d.body)try{g.write(function(a){if("string"==typeof a||"u">typeof Buffer&&Buffer.isBuffer(a)||a instanceof Uint8Array)return a;if("u">typeof ArrayBuffer&&a instanceof ArrayBuffer)return Buffer.from(a);if("u">typeof FormData&&a instanceof FormData)throw Error("[ProxyFetch] FormData bodies are not supported on the MITM bypass path");return JSON.stringify(a)}(d.body))}catch(a){k||(k=!0,l(),f(a));return}g.end()}),j.on("error",a=>{k||(k=!0,l(),f(a))}))})}async function T(a,b={},c=null){let d="string"==typeof a?a:a.toString(),e=function(a,b={}){let c=b.headers?.Accept||b.headers?.accept||"",d="string"==typeof c&&c.includes("text/event-stream"),e=(0,g.fX)(b.headers||{},{identity:b.identity,provider:b.provider,format:b.format,overlay:b.overlay,credentialId:b.credentialId,stream:b.stream??d,retryCount:b.retryCount,snapshot:b.snapshot,requestPath:new URL(a).pathname}),f={...e.headers};if("claude-cli"===e.profileId){let a=Object.keys(f).find(a=>"authorization"===a.toLowerCase());if((a?String(f[a]):"").startsWith("Bearer ")){let a=Object.keys(f).find(a=>"anthropic-beta"===a.toLowerCase());a&&f[a]&&(f[a]=(0,g.AU)(f[a]))}else{let a=Object.keys(f).find(a=>"x-api-key"===a.toLowerCase());if(a&&f[a]){let a=Object.keys(f).find(a=>"anthropic-beta"===a.toLowerCase());if(a&&f[a]){let b=(0,g.Aw)(f[a]);b?f[a]=b:delete f[a]}}}}return{...b,headers:f,_identityTls:e.tls,_identityAlpn:e.alpn,_identityTlsSpecRev:e.tlsSpecRev,_identityProfile:e.profileId}}(d,b),f=function(a){let{_identityTls:b,_identityAlpn:c,_identityTlsSpecRev:d,_identityProfile:e,identity:f,provider:g,format:h,overlay:i,credentialId:j,stream:k,retryCount:l,snapshot:m,...n}=a;return n}(e),{_identityTls:i,_identityAlpn:j,_identityProfile:k}=e,l=J(c?.vercelRelayUrl);if(l){let a=new URL(d);return((...a)=>B(...a))(l,{...f,headers:{...R(f.headers),"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`}})}let m=O(d,c);if("node"!==i)try{let b={profileId:k,alpn:j,proxyUrl:m,headerOrder:"claude-cli"===k?new URL(d).pathname.startsWith("/v1/messages/count_tokens")?h.$R:h.Zb:(0,h.E$)(k)?.headerOrder||[]},c=/^claude-code-(\d+\.\d+\.\d+)$/.exec(e._identityTlsSpecRev||"")?.[1]||e._identityTlsSpecRev;if("claude-cli"===k&&c!==n)throw Error(`snapshot TLS spec ${e._identityTlsSpecRev||"missing"} does not match helper ${n}`);let g="chrome"===i?await Q(m):await E();return await g(a,f,b)}catch(b){if(b?.name==="AbortError")throw b;let a=Error(`[ProxyFetch] ${i} TLS (${k}) unavailable: ${b.message}`);throw a.status=503,a}if(L(d)){if(m)try{let b=await P(m);return await ((...a)=>B(...a))(a,{...f,dispatcher:b})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(d),b=await K(a.hostname);if(b)return await S(a,b,f)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(m)try{let b=await P(m);return await ((...a)=>B(...a))(a,{...f,dispatcher:b})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return((...a)=>B(...a))(a,f)}async function U(a,b={}){return T(a,b,null)}globalThis.fetch!==U&&(globalThis.fetch=U)},51171:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{ou:()=>z});var e=c(22256),f=c(38421),g=c(82689),h=c(71137),i=c(70799),j=c(22268),k=c(19016),l=c(24725),m=c(68531),n=c(50969),o=c(44140),p=c(18586),q=c(74075);let a=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{a=await Promise.resolve().then(c.t.bind(c,73496,19))}catch{}let w="1"===process.env.CURSOR_STREAM_DEBUG,x=(...a)=>{w&&console.log(...a)};function r(a){let b=String(a||"").split("/").pop();return/^composer(?:-|$)/i.test(b)}function s(a){if(!a)return"";let b="</think>",c=a.lastIndexOf(b);return c<0?"":a.slice(c+b.length).trimStart()}function t(a,b,c,d){if(b+5>a.length)return x(`[CURSOR BUFFER${d}] Reached end, offset=${b}, remaining=${a.length-b}`),{status:"done"};let e=a[b],f=a.readUInt32BE(b+1);if(x(`[CURSOR BUFFER${d}] Frame ${c+1}: flags=0x${e.toString(16).padStart(2,"0")}, length=${f}`),b+5+f>a.length)return x(`[CURSOR BUFFER${d}] Incomplete frame, offset=${b}, length=${f}, buffer.length=${a.length}`),{status:"done"};let g=a.slice(b+5,b+5+f),h=b+5+f;return(g=function(a,b){if(a.length>10&&123===a[0]&&34===a[1])try{if(a.toString("utf-8").startsWith('{"error"'))return x("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return q.gunzipSync(a)}catch(c){try{return q.inflateSync(a)}catch(d){try{return q.inflateRawSync(a)}catch(e){x(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),x("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}(g,e))?{status:"ok",payload:g,offset:h}:(x(`[CURSOR BUFFER${d}] Frame ${c+1}: decompression failed, skipping`),{status:"skip",offset:h})}let y=/rate.?limit|rate_limited|resource_exhausted|quota|too many requests|throttl|capacity|overloaded|\b429\b/i;function u(a){return y.test(String(a||""))?{status:g.gx.RATE_LIMITED,type:"rate_limit_error",code:"rate_limited"}:{status:g.gx.BAD_REQUEST,type:"api_error",code:"upstream_error"}}function v(a){let b=a?.error?.details?.[0]?.debug?.details?.title||a?.error?.details?.[0]?.debug?.details?.detail||a?.error?.message||"API Error",c=a?.error?.code==="resource_exhausted";return new Response(JSON.stringify({error:{message:b,type:c?"rate_limit_error":"api_error",code:a?.error?.details?.[0]?.debug?.error||"unknown"}}),{status:c?g.gx.RATE_LIMITED:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}class z extends e.Hv{constructor(){super("cursor",f.xq.cursor)}buildUrl(){return`${this.config.baseUrl}${this.config.chatPath}`}buildHeaders(a){let b=a.accessToken,c=a.providerSpecificData?.machineId,d=a.providerSpecificData?.ghostMode!==!1;if(!c)throw Error("Machine ID is required for Cursor API");return(0,i.JA)(b,c,d)}transformRequest(a,b,c,d){let e=b.messages||[],f=b.tools||[],g=b.reasoning_effort||null,i=d?.rawHeaders?.["user-agent"]||"",j=i.includes("claude-cli")||i.includes("claude-code")||i.includes("Claude Code");return(0,h.yI)(e,a,f,g,j)}async makeFetchRequest(a,b,c,d,e=null){let f=await (0,n.Fm)(a,{method:"POST",headers:b,body:c,signal:d,identity:"cursor",provider:this.provider,format:this.config?.format},e);return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}wrapOutboundHeaders(a){return(0,o.fX)(a,{identity:"cursor",provider:this.provider,format:this.config?.format}).headers}makeHttp2Request(b,c,d,e){if(!a)throw Error("http2 module not available");return new Promise((f,g)=>{let h=new URL(b),i=a.connect(`https://${h.host}`),j=[],k={},l=!1,m=a=>(...b)=>{l||(l=!0,clearTimeout(n),i.close(),a(...b))},n=setTimeout(m(()=>{g(Error("HTTP/2 request timed out"))}),6e4);i.on("error",m(g));let o=i.request({":method":"POST",":path":h.pathname,":authority":h.host,":scheme":"https",...this.wrapOutboundHeaders(c)});if(o.on("response",a=>{k=a}),o.on("data",a=>{j.push(a)}),o.on("end",m(()=>{f({status:k[":status"],headers:k,body:Buffer.concat(j)})})),o.on("error",m(g)),e){let a=m(()=>g(Error("Request aborted")));e.addEventListener("abort",a,{once:!0})}o.write(d),o.end()})}async execute({model:b,body:c,stream:d,credentials:e,signal:f,log:h,proxyOptions:i=null}){let j=this.buildUrl(),k=this.buildHeaders(e),l=this.transformRequest(b,c,d,e);try{let e=i?.enabled===!0||i?.connectionProxyEnabled===!0||!!i?.vercelRelayUrl,g=a&&!e?await this.makeHttp2Request(j,k,l,f):await this.makeFetchRequest(j,k,l,f,i);if(200!==g.status){let a=g.body?.toString()||"Unknown error";return{response:new Response(JSON.stringify({error:{message:`[${g.status}]: ${a}`,type:"invalid_request_error",code:""}}),{status:g.status,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}return{response:!1!==d?this.transformProtobufToSSE(g.body,b,c):this.transformProtobufToJSON(g.body,b,c),url:j,headers:k,transformedBody:c}}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message,type:"connection_error",code:""}}),{status:g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}}transformProtobufToJSON(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=0,g="",i="",k=[],l=new Map,n=new Set,o=0;for(x(`[CURSOR BUFFER] Total length: ${a.length} bytes`);f<a.length;){let b=t(a,f,o,"");if("done"===b.status)break;if(f=b.offset,o++,"skip"===b.status)continue;let c=b.payload;if(c.length>0&&123===c[0])try{let a=c.toString("utf-8");if(a.includes('"error"')){let b=g||l.size>0;if(x(`[CURSOR BUFFER] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return v(JSON.parse(a))}}catch{}let d=(0,h.CP)(new Uint8Array(c));if(x(`[CURSOR DECODED] Frame ${o}:`,d),d.error){let a=g||l.size>0;if(x(`[CURSOR BUFFER] Decoded error (hasContent=${a}): ${d.error}`),a)break;let b=u(d.error);return new Response(JSON.stringify({error:{message:d.error,type:b.type,code:b.code}}),{status:b.status,headers:{"Content-Type":"application/json"}})}if(d.toolCall){let a=d.toolCall;if(l.has(a.id)){let b=l.get(a.id);b.function.arguments+=a.function.arguments,b.isLast=a.isLast}else l.set(a.id,{...a});if(a.isLast){let b=l.get(a.id);n.add(a.id),k.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}})}}d.text&&(g+=d.text),d.thinking&&(i+=d.thinking)}let q=r(b)?s(i):"",w=g||q;for(let[a,b]of(x(`[CURSOR BUFFER] Parsed ${o} frames, toolCallsMap size: ${l.size}, finalized toolCalls: ${k.length}`),l.entries()))n.has(a)||(x(`[CURSOR BUFFER] Finalizing incomplete tool call: ${a}, isLast=${b.isLast}`),k.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}}));x(`[CURSOR BUFFER] Final toolCalls count: ${k.length}`);let y=w;if(0===k.length&&w){let a=(0,p.au)(w,b);a&&a.toolCalls.length>0&&(x(`[CURSOR BUFFER] Extracted ${a.toolCalls.length} native tool call(s) from text content`),k.push(...a.toolCalls),y=a.content||"")}let z={role:"assistant",content:y||null};k.length>0&&(z.tool_calls=k);let A=(0,j.OF)(c,w.length,m.h.OPENAI),B={id:d,object:"chat.completion",created:e,model:b,choices:[{index:0,message:z,finish_reason:k.length>0?"tool_calls":"stop"}],usage:A};return new Response(JSON.stringify(B),{status:200,headers:{"Content-Type":"application/json"}})}transformProtobufToSSE(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=[],g=0,i="",n="",o=0,q=[],w=new Map,y=new Set,z=new Set,A=0;for(x(`[CURSOR BUFFER SSE] Total length: ${a.length} bytes`);g<a.length;){let c=t(a,g,A," SSE");if("done"===c.status)break;if(g=c.offset,A++,"skip"===c.status)continue;let j=c.payload;if(123===j[0])try{let a=j.toString("utf-8");if(a.includes('"error"')){let b=f.length>0||i||w.size>0;if(x(`[CURSOR BUFFER SSE] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return v(JSON.parse(a))}}catch{}let k=(0,h.CP)(new Uint8Array(j));if(x(`[CURSOR DECODED SSE] Frame ${A}:`,k),k.error){let a=f.length>0||i||w.size>0;if(x(`[CURSOR BUFFER SSE] Decoded error (hasContent=${a}): ${k.error}`),a)break;let b=u(k.error);return new Response(JSON.stringify({error:{message:k.error,type:b.type,code:b.code}}),{status:b.status,headers:{"Content-Type":"application/json"}})}if(k.toolCall){let a=k.toolCall;if(0===f.length&&f.push((0,l.z)({id:d,created:e,model:b,delta:{role:"assistant",content:""}})),w.has(a.id)){let c=w.get(a.id);c.function.arguments.length,c.function.arguments+=a.function.arguments,c.isLast=a.isLast,a.function.arguments&&(z.add(a.id),f.push((0,l.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:c.index,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]}})))}else{let c=q.length;y.add(a.id),q.push({...a,index:c}),w.set(a.id,{...a,index:c}),z.add(a.id),f.push((0,l.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:c,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]}}))}}if(k.text&&(i+=k.text,f.push((0,l.z)({id:d,created:e,model:b,delta:0===f.length&&0===q.length?{role:"assistant",content:k.text}:{content:k.text}}))),r(b)&&k.thinking){n+=k.thinking;let a=s(n);if(a.length>o){let c=a.slice(o);o=a.length,i+=c,f.push((0,l.z)({id:d,created:e,model:b,delta:0===f.length&&0===q.length?{role:"assistant",content:c}:{content:c}}))}}}for(let[a,c]of(x(`[CURSOR BUFFER SSE] Parsed ${A} frames, toolCallsMap size: ${w.size}, toolCalls array: ${q.length}`),w.entries()))if(!y.has(a)){x(`[CURSOR BUFFER SSE] Finalizing incomplete tool call: ${a}, isLast=${c.isLast}`);let g=q.length;q.push({id:c.id,type:c.type,index:g,function:{name:c.function.name,arguments:c.function.arguments}}),z.has(c.id)||f.push((0,l.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:g,id:c.id,type:"function",function:{name:c.function.name,arguments:c.function.arguments}}]}}))}if(0===q.length&&i){let a=(0,p.au)(i,b);if(a&&a.toolCalls.length>0){x(`[CURSOR BUFFER SSE] Extracted ${a.toolCalls.length} native tool call(s) from text content`),f.length=0;let c=a.content||"";c?f.push((0,l.z)({id:d,created:e,model:b,delta:{role:"assistant",content:c}})):f.push((0,l.z)({id:d,created:e,model:b,delta:{role:"assistant",content:""}}));for(let c=0;c<a.toolCalls.length;c++){let g=a.toolCalls[c];q.push({...g,index:c}),f.push((0,l.z)({id:d,created:e,model:b,delta:{tool_calls:[{index:c,id:g.id,type:"function",function:{name:g.function.name,arguments:g.function.arguments}}]}}))}}}0===f.length&&0===q.length&&f.push((0,l.z)({id:d,created:e,model:b,delta:{role:"assistant",content:""}}));let B=(0,j.OF)(c,i.length,m.h.OPENAI);return f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{},finish_reason:q.length>0?"tool_calls":"stop"}],usage:B})}
|
|
364
364
|
|
|
365
365
|
`),f.push(k.$U),new Response(f.join(""),{status:200,headers:{...k.pb}})}async refreshCredentials(){return null}}d()}catch(a){d(a)}},1)},51753:(a,b,c)=>{"use strict";let d,{webidl:e}=c(32984),{kEnumerableProperty:f}=c(84285),{kConstruct:g}=c(49176);class h extends Event{#bn;constructor(a,b={}){if(a===g){super(arguments[1],arguments[2]),e.util.markAsUncloneable(this);return}const c="MessageEvent constructor";e.argumentLengthCheck(arguments,1,c),super(a=e.converters.DOMString(a,c,"type"),b=e.converters.MessageEventInit(b,c,"eventInitDict")),this.#bn=b,e.util.markAsUncloneable(this)}get data(){return e.brandCheck(this,e.is.MessageEvent),this.#bn.data}get origin(){return e.brandCheck(this,e.is.MessageEvent),this.#bn.origin}get lastEventId(){return e.brandCheck(this,e.is.MessageEvent),this.#bn.lastEventId}get source(){return e.brandCheck(this,e.is.MessageEvent),this.#bn.source}get ports(){return e.brandCheck(this,e.is.MessageEvent),Object.isFrozen(this.#bn.ports)||Object.freeze(this.#bn.ports),this.#bn.ports}initMessageEvent(a,b=!1,c=!1,d=null,f="",g="",i=null,j=[]){return e.brandCheck(this,e.is.MessageEvent),e.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new h(a,{bubbles:b,cancelable:c,data:d,origin:f,lastEventId:g,source:i,ports:j})}static{d=(a,b)=>{let c=new h(g,a,b);return c.#bn=b,c.#bn.data??=null,c.#bn.origin??="",c.#bn.lastEventId??="",c.#bn.source??=null,c.#bn.ports??=[],c},e.is.MessageEvent=a=>null!=a&&"object"==typeof a&&#bn in a}}class i extends Event{#bn;constructor(a,b={}){const c="CloseEvent constructor";e.argumentLengthCheck(arguments,1,c),super(a=e.converters.DOMString(a,c,"type"),b=e.converters.CloseEventInit(b)),this.#bn=b,e.util.markAsUncloneable(this)}get wasClean(){return e.brandCheck(this,e.is.CloseEvent),this.#bn.wasClean}get code(){return e.brandCheck(this,e.is.CloseEvent),this.#bn.code}get reason(){return e.brandCheck(this,e.is.CloseEvent),this.#bn.reason}static{e.is.CloseEvent=a=>null!=a&&"object"==typeof a&&#bn in a}}class j extends Event{#bn;constructor(a,b){const c="ErrorEvent constructor";e.argumentLengthCheck(arguments,1,c),super(a,b),e.util.markAsUncloneable(this),a=e.converters.DOMString(a,c,"type"),b=e.converters.ErrorEventInit(b??{}),this.#bn=b}get message(){return e.brandCheck(this,e.is.ErrorEvent),this.#bn.message}get filename(){return e.brandCheck(this,e.is.ErrorEvent),this.#bn.filename}get lineno(){return e.brandCheck(this,e.is.ErrorEvent),this.#bn.lineno}get colno(){return e.brandCheck(this,e.is.ErrorEvent),this.#bn.colno}get error(){return e.brandCheck(this,e.is.ErrorEvent),this.#bn.error}static{e.is.ErrorEvent=a=>null!=a&&"object"==typeof a&&#bn in a}}Object.defineProperties(h.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:f,origin:f,lastEventId:f,source:f,ports:f,initMessageEvent:f}),Object.defineProperties(i.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:f,code:f,wasClean:f}),Object.defineProperties(j.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:f,filename:f,lineno:f,colno:f,error:f}),e.converters.MessagePort=e.interfaceConverter(e.is.MessagePort,"MessagePort"),e.converters["sequence<MessagePort>"]=e.sequenceConverter(e.converters.MessagePort);let k=[{key:"bubbles",converter:e.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:e.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:e.converters.boolean,defaultValue:()=>!1}];e.converters.MessageEventInit=e.dictionaryConverter([...k,{key:"data",converter:e.converters.any,defaultValue:()=>null},{key:"origin",converter:e.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:e.converters.DOMString,defaultValue:()=>""},{key:"source",converter:e.nullableConverter(e.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:e.converters["sequence<MessagePort>"],defaultValue:()=>[]}]),e.converters.CloseEventInit=e.dictionaryConverter([...k,{key:"wasClean",converter:e.converters.boolean,defaultValue:()=>!1},{key:"code",converter:e.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:e.converters.USVString,defaultValue:()=>""}]),e.converters.ErrorEventInit=e.dictionaryConverter([...k,{key:"message",converter:e.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:e.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:e.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:e.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:e.converters.any}]),a.exports={MessageEvent:h,CloseEvent:i,ErrorEvent:j,createFastMessageEvent:d}},52039:(a,b,c)=>{"use strict";let d,{isArrayBuffer:e}=c(73429),{webidl:f}=c(32984),{URLSerializer:g}=c(16537),{environmentSettingsObject:h}=c(42425),{staticPropertyDescriptors:i,states:j,sentCloseFrameState:k,sendHints:l,opcodes:m}=c(62026),{isConnecting:n,isEstablished:o,isClosing:p,isClosed:q,isValidSubprotocol:r,fireEvent:s,utf8Decode:t,toArrayBuffer:u,getURLRecord:v}=c(94050),{establishWebSocketConnection:w,closeWebSocketConnection:x,failWebsocketConnection:y}=c(4654),{ByteParser:z}=c(64821),{kEnumerableProperty:A}=c(84285),{getGlobalDispatcher:B}=c(59970),{ErrorEvent:C,CloseEvent:D,createFastMessageEvent:E}=c(51753),{SendQueue:F}=c(54849),{WebsocketFrameSend:G}=c(45221),{channels:H}=c(62571),I=Symbol.for("nodejs.ref"),J=Symbol.for("nodejs.unref");class K extends EventTarget{#a8={open:null,error:null,close:null,message:null};#bo=0;#bp="";#bq="";#br=!0;#bs;#aQ={onConnectionEstablished:(a,b)=>this.#aR(a,b),onMessage:(a,b)=>this.#aS(a,b),onParserError:a=>y(this.#aQ,null,a.message),onParserDrain:()=>this.#bt(),onSocketData:a=>{this.#aT.write(a)||this.#aQ.socket.pause()},onSocketError:a=>{this.#aQ.readyState=j.CLOSING,H.socketError.hasSubscribers&&H.socketError.publish(a),this.#aQ.socket.destroy()},onSocketClose:()=>this.#aU(),onPing:a=>{H.ping.hasSubscribers&&H.ping.publish({payload:a,websocket:this})},onPong:a=>{H.pong.hasSubscribers&&H.pong.publish({payload:a,websocket:this})},readyState:j.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#aJ;#bu;#aT;constructor(a,b=[]){super(),f.util.markAsUncloneable(this);const c="WebSocket constructor";f.argumentLengthCheck(arguments,1,c);const d=f.converters["DOMString or sequence<DOMString> or WebSocketInit"](b,c,"options");a=f.converters.USVString(a),b=d.protocols;const e=v(a,h.settingsObject.baseUrl);if("string"==typeof b&&(b=[b]),b.length!==new Set(b.map(a=>a.toLowerCase())).size||b.length>0&&!b.every(a=>r(a)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this.#aJ=new URL(e.href);const g=h.settingsObject;this.#aQ.controller=w(e,b,g,this.#aQ,d),this.#aQ.readyState=K.CONNECTING,this.#bu="blob"}[I](){this.#br=!0,this.#aQ.socket?.ref?.()}[J](){this.#br=!1,this.#aQ.socket?.unref?.()}close(a,b){f.brandCheck(this,f.is.WebSocket),void 0!==a&&(a=f.converters["unsigned short"](a,"WebSocket.close","code",f.attributes.Clamp)),void 0!==b&&(b=f.converters.USVString(b)),a??=null,b??="",x(this.#aQ,a,b,!0)}send(a){f.brandCheck(this,f.is.WebSocket);let b="WebSocket.send";if(f.argumentLengthCheck(arguments,1,b),a=f.converters.WebSocketSendData(a,b,"data"),n(this.#aQ.readyState))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!o(this.#aQ.readyState)||p(this.#aQ.readyState)))if("string"==typeof a){let b=Buffer.from(a);this.#bo+=b.byteLength,this.#bs.add(b,()=>{this.#bo-=b.byteLength},l.text)}else e(a)?(this.#bo+=a.byteLength,this.#bs.add(a,()=>{this.#bo-=a.byteLength},l.arrayBuffer)):ArrayBuffer.isView(a)?(this.#bo+=a.byteLength,this.#bs.add(a,()=>{this.#bo-=a.byteLength},l.typedArray)):f.is.Blob(a)&&(this.#bo+=a.size,this.#bs.add(a,()=>{this.#bo-=a.size},l.blob))}get readyState(){return f.brandCheck(this,f.is.WebSocket),this.#aQ.readyState}get bufferedAmount(){return f.brandCheck(this,f.is.WebSocket),this.#bo}get url(){return f.brandCheck(this,f.is.WebSocket),g(this.#aJ)}get extensions(){return f.brandCheck(this,f.is.WebSocket),this.#bq}get protocol(){return f.brandCheck(this,f.is.WebSocket),this.#bp}get onopen(){return f.brandCheck(this,f.is.WebSocket),this.#a8.open}set onopen(a){f.brandCheck(this,f.is.WebSocket),this.#a8.open&&this.removeEventListener("open",this.#a8.open);let b=f.converters.EventHandlerNonNull(a);null!==b?(this.addEventListener("open",b),this.#a8.open=a):this.#a8.open=null}get onerror(){return f.brandCheck(this,f.is.WebSocket),this.#a8.error}set onerror(a){f.brandCheck(this,f.is.WebSocket),this.#a8.error&&this.removeEventListener("error",this.#a8.error);let b=f.converters.EventHandlerNonNull(a);null!==b?(this.addEventListener("error",b),this.#a8.error=a):this.#a8.error=null}get onclose(){return f.brandCheck(this,f.is.WebSocket),this.#a8.close}set onclose(a){f.brandCheck(this,f.is.WebSocket),this.#a8.close&&this.removeEventListener("close",this.#a8.close);let b=f.converters.EventHandlerNonNull(a);null!==b?(this.addEventListener("close",b),this.#a8.close=a):this.#a8.close=null}get onmessage(){return f.brandCheck(this,f.is.WebSocket),this.#a8.message}set onmessage(a){f.brandCheck(this,f.is.WebSocket),this.#a8.message&&this.removeEventListener("message",this.#a8.message);let b=f.converters.EventHandlerNonNull(a);null!==b?(this.addEventListener("message",b),this.#a8.message=a):this.#a8.message=null}get binaryType(){return f.brandCheck(this,f.is.WebSocket),this.#bu}set binaryType(a){f.brandCheck(this,f.is.WebSocket),"blob"!==a&&"arraybuffer"!==a?this.#bu="blob":this.#bu=a}#aR(a,b){this.#aQ.socket=a.socket,this.#br||this.#aQ.socket.unref?.();let c=this.#aQ.controller.dispatcher?.webSocketOptions?.maxFragments,d=this.#aQ.controller.dispatcher?.webSocketOptions?.maxPayloadSize,e=new z(this.#aQ,b,{maxFragments:c,maxPayloadSize:d});e.on("drain",()=>this.#aQ.onParserDrain()),e.on("error",a=>this.#aQ.onParserError(a)),this.#aT=e,this.#bs=new F(a.socket),this.#aQ.readyState=j.OPEN;let f=a.headersList.get("sec-websocket-extensions");null!==f&&(this.#bq=f);let g=a.headersList.get("sec-websocket-protocol");if(null!==g&&(this.#bp=g),s("open",this),H.open.hasSubscribers){var h;let b=a.headersList.entries;H.open.publish({address:(h=a.socket,"function"==typeof h?.address?h.address():"function"==typeof h?.session?.socket?.address?h.session.socket.address():null),protocol:this.#bp,extensions:this.#bq,websocket:this,handshakeResponse:{status:a.status,statusText:a.statusText,headers:b}})}}#aS(a,b){let c;if(this.#aQ.readyState===j.OPEN){if(a===m.TEXT)try{c=t(b)}catch{y(this.#aQ,1007,"Received invalid UTF-8 in text frame.");return}else a===m.BINARY&&(c="blob"===this.#bu?new Blob([b]):u(b));s("message",this,E,{origin:this.#aJ.origin,data:c})}}#bt(){this.#aQ.socket.resume()}#aU(){let a=this.#aQ.closeState.has(k.SENT)&&this.#aQ.closeState.has(k.RECEIVED),b=1005,c="",d=this.#aT?.closingInfo;d&&!d.error&&(b=d.code??1005,c=d.reason),this.#aQ.readyState=j.CLOSED,this.#aQ.closeState.has(k.RECEIVED)||(b=1006,s("error",this,(a,b)=>new C(a,b),{error:TypeError(c)})),s("close",this,(a,b)=>new D(a,b),{wasClean:a,code:b,reason:c}),H.close.hasSubscribers&&H.close.publish({websocket:this,code:b,reason:c})}static{d=(a,b)=>{if(Buffer.isBuffer(b)){if(b.length>125)throw TypeError("A PING frame cannot have a body larger than 125 bytes.")}else if(void 0!==b)throw TypeError("Expected buffer payload");let c=a.#aQ.readyState;if(o(c)&&!p(c)&&!q(c)){let c=new G(b);a.#aQ.socket.write(c.createFrame(m.PING))}},f.is.WebSocket=a=>null!=a&&"object"==typeof a&&#aQ in a}}K.CONNECTING=K.prototype.CONNECTING=j.CONNECTING,K.OPEN=K.prototype.OPEN=j.OPEN,K.CLOSING=K.prototype.CLOSING=j.CLOSING,K.CLOSED=K.prototype.CLOSED=j.CLOSED,Object.defineProperties(K.prototype,{CONNECTING:i,OPEN:i,CLOSING:i,CLOSED:i,url:A,readyState:A,bufferedAmount:A,onopen:A,onerror:A,onclose:A,close:A,onmessage:A,binaryType:A,send:A,extensions:A,protocol:A,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}}),Object.defineProperties(K,{CONNECTING:i,OPEN:i,CLOSING:i,CLOSED:i}),f.converters["sequence<DOMString>"]=f.sequenceConverter(f.converters.DOMString),f.converters["DOMString or sequence<DOMString>"]=function(a,b,c){return f.util.Type(a)===f.util.Types.OBJECT&&Symbol.iterator in a?f.converters["sequence<DOMString>"](a):f.converters.DOMString(a,b,c)},f.converters.WebSocketInit=f.dictionaryConverter([{key:"protocols",converter:f.converters["DOMString or sequence<DOMString>"],defaultValue:()=>[]},{key:"dispatcher",converter:f.converters.any,defaultValue:()=>B()},{key:"headers",converter:f.nullableConverter(f.converters.HeadersInit)}]),f.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(a){return f.util.Type(a)!==f.util.Types.OBJECT||Symbol.iterator in a?{protocols:f.converters["DOMString or sequence<DOMString>"](a)}:f.converters.WebSocketInit(a)},f.converters.WebSocketSendData=function(a){return f.util.Type(a)===f.util.Types.OBJECT&&(f.is.Blob(a)||f.is.BufferSource(a))?a:f.converters.USVString(a)},a.exports={WebSocket:K,ping:d}},52655:(a,b,c)=>{"use strict";function d(a){return void 0===a?`call_${Date.now()}`:`call_${a}_${Date.now()}`}function e(a){let b=a?.request||a||{},c=b.toolConfig?.functionCallingConfig?.mode;if(!c)return;let d=b.toolConfig.functionCallingConfig.allowedFunctionNames;return"NONE"===c?"none":"ANY"===c?Array.isArray(d)&&1===d.length?{type:"function",function:{name:d[0]}}:"required":"AUTO"===c||"VALIDATED"===c?"auto":void 0}function f(a=0,b=0,c=""){let d=c?`_${c.replace(/[^a-zA-Z0-9_-]/g,"")}`:"";return`call_msg${a}_tc${b}${d}`}c.d(b,{Fq:()=>e,J4:()=>f,eG:()=>d})},52748:(a,b,c)=>{"use strict";var d=c(68531);c(87350),c(18762),c(20830),c(38421),c(82689),c(73081),c(81556),c(17438),c(19016),d.h.OPENAI_RESPONSES,d.h.OPENAI_RESPONSES,d.h.CLAUDE,d.h.CLAUDE,d.h.ANTIGRAVITY,d.h.ANTIGRAVITY,d.h.GEMINI,d.h.ANTIGRAVITY,d.h.GEMINI_CLI,d.h.ANTIGRAVITY},53552:(a,b,c)=>{"use strict";let{InvalidArgumentError:d}=c(61448),e=c(40106);class f extends e{constructor(a,b){if("string"==typeof a&&(a=new URL(a)),"http:"!==a.protocol)throw new d("h2c-client: Only h2c protocol is supported");const{maxConcurrentStreams:c,pipelining:e,...f}=b??{},g=c??100;let h=100;if(null!=c&&(!Number.isInteger(c)||c<1))throw new d("maxConcurrentStreams must be a positive integer, greater than 0");if(null!=e&&Number.isInteger(e)&&e>0&&(h=e),h>g)throw new d("h2c-client: pipelining cannot be greater than maxConcurrentStreams");super(a,{...f,maxConcurrentStreams:g,pipelining:h,allowH2:!0,useH2c:!0})}}a.exports=f},53859:(a,b,c)=>{"use strict";c.d(b,{nJ:()=>p,ok:()=>o});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="switchboard";function k(a){if("win32"===process.platform){let b=process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming");return g().join(b,a)}return g().join(i().homedir(),`.${a}`)}let l=["db/data.sqlite","machine-id","jwt-secret","auth","db.json"];function m(a){return l.some(b=>e().existsSync(g().join(a,b)))}function n(){let a=k(j);if(m(a))return a;let b=k("9router");return m(b)?(console.warn(`[DATA_DIR] using legacy data directory '${b}' (set DATA_DIR='${a}' to switch)`),b):a}function o(){let a=process.env.DATA_DIR;if(!a)return n();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),n();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),n();throw b}}let p=o()},54383:(a,b,c)=>{"use strict";c.d(b,{R:()=>f});var d=c(85513);let e=/^arn:(aws|aws-us-gov):codewhisperer:([^:]+):(\d{12}):profile\/([^/]+)$/;function f(a){let b="string"==typeof a?a.trim():"",c=b.match(e);return c&&(0,d.i7)(c[2])?{profileArn:b,region:c[2]}:null}},54849:(a,b,c)=>{"use strict";let{WebsocketFrameSend:d}=c(45221),{opcodes:e,sendHints:f}=c(62026),g=c(50329);class h{#bv=new g;#bw=!1;#bx;constructor(a){this.#bx=a}add(a,b,c){if(c!==f.blob){if(this.#bw){let d={promise:null,callback:b,frame:i(a,c)};this.#bv.push(d)}else if(c===f.text){let{0:c,1:e}=d.createFastTextFrame(a);this.#bx.cork(),this.#bx.write(c),this.#bx.write(e,b),this.#bx.uncork()}else this.#bx.write(i(a,c),b);return}let e={promise:a.arrayBuffer().then(a=>{e.promise=null,e.frame=i(a,c)}),callback:b,frame:null};this.#bv.push(e),this.#bw||this.#by()}async #by(){this.#bw=!0;let a=this.#bv;for(;!a.isEmpty();){let b=a.shift();null!==b.promise&&await b.promise,this.#bx.write(b.frame,b.callback),b.callback=b.frame=null}this.#bw=!1}}function i(a,b){return new d(function(a,b){switch(b){case f.text:case f.typedArray:return new Uint8Array(a.buffer,a.byteOffset,a.byteLength);case f.arrayBuffer:case f.blob:return new Uint8Array(a)}}(a,b)).createFrame(b===f.text?e.TEXT:e.BINARY)}a.exports={SendQueue:h}},55261:(a,b,c)=>{},55285:(a,b,c)=>{"use strict";let d,e=c(77030),f=c(34589),g=c(84285),{InvalidArgumentError:h,ConnectTimeoutError:i}=c(61448),j=class{constructor(a){this._maxCachedSessions=a,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(a=>{if(this._sessionCache.size<this._maxCachedSessions)return;let b=this._sessionCache.get(a);void 0!==b&&void 0===b.deref()&&this._sessionCache.delete(a)})}get(a){let b=this._sessionCache.get(a);return b?b.deref():null}set(a,b){if(0!==this._maxCachedSessions){if(this._sessionCache.has(a))this._sessionCache.delete(a);else if(this._sessionCache.size>=this._maxCachedSessions){for(let[a,b]of this._sessionCache)if(void 0===b.deref())return void this._sessionCache.delete(a);let a=this._sessionCache.keys().next();a.done||this._sessionCache.delete(a.value)}this._sessionCache.set(a,new WeakRef(b)),this._sessionRegistry.register(b,a)}}};a.exports=function({allowH2:a,preferH2:b,useH2c:k,maxCachedSessions:l,socketPath:m,timeout:n,session:o,...p}){if(null!=l&&(!Number.isInteger(l)||l<0))throw new h("maxCachedSessions must be a positive integer or zero");let q={path:m,...p},r=new j(null==l?100:l);return n=null==n?1e4:n,a=null==a||a,function({hostname:h,host:j,protocol:l,port:m,servername:p,localAddress:s,httpSocket:t},u){let v;if("https:"===l){d||(d=c(41692));let e=(p=p||q.servername||g.getServerName(j)||null)||h;f(e);let i=o||r.get(e)||null;m=m||443,(v=d.connect({highWaterMark:16384,...q,servername:p,session:i,localAddress:s,ALPNProtocols:a?b?["h2","http/1.1"]:["http/1.1","h2"]:["http/1.1"],socket:t,port:m,host:h})).on("session",function(a){r.set(e,a)})}else{f(!t,"httpSocket can only be sent on TLS update"),m=m||80;let a={highWaterMark:65536,...q,localAddress:s,port:m,host:h},b=e.isIP(h);0!==b&&p&&p!==h&&(a.host=p,a.lookup=(a,c,d)=>{c.all?d(null,[{address:h,family:b}]):d(null,h,b)}),v=e.connect(a),!0===k&&(v.alpnProtocol="h2")}if(null==q.keepAlive||q.keepAlive){let a=void 0===q.keepAliveInitialDelay?6e4:q.keepAliveInitialDelay;v.setKeepAlive(!0,a)}let w=g.setupConnectTimeout(new WeakRef(v),{timeout:n,hostname:h,port:m});return v.setNoDelay(!0).once("https:"===l?"secureConnect":"connect",function(){if(queueMicrotask(w),u){let a=u;u=null,a(null,this)}}).on("error",function(a){if(queueMicrotask(w),u){let b=u;u=null,b(function(a,b,c){if(a instanceof AggregateError&&("ETIMEDOUT"===a.code||a.errors.some(a=>null!=a&&"ETIMEDOUT"===a.code))){let d="Connect Timeout Error";Array.isArray(b.autoSelectFamilyAttemptedAddresses)?d+=` (attempted addresses: ${b.autoSelectFamilyAttemptedAddresses.join(", ")},`:d+=` (attempted address: ${c.hostname}:${c.port},`;let e=new i(d+=` timeout: ${c.timeout}ms)`);return e.cause=a,e}return a}(a,this,{timeout:n,hostname:h,port:m}))}}),v}}},55720:(a,b,c)=>{"use strict";let{getResponseData:d,buildKey:e,addMockDispatch:f}=c(70634),{kDispatches:g,kDispatchKey:h,kDefaultHeaders:i,kDefaultTrailers:j,kContentLength:k,kMockDispatch:l,kIgnoreTrailingSlash:m}=c(80830),{InvalidArgumentError:n}=c(61448),{serializePathWithQuery:o}=c(84285),{types:{isPromise:p}}=c(57975);class q{constructor(a){this[l]=a}delay(a){if("number"!=typeof a||!Number.isInteger(a)||a<=0)throw new n("waitInMs must be a valid integer > 0");return this[l].delay=a,this}persist(){return this[l].persist=!0,this}times(a){if("number"!=typeof a||!Number.isInteger(a)||a<=0)throw new n("repeatTimes must be a valid integer > 0");return this[l].times=a,this}}class r{constructor(a,b){if("object"!=typeof a)throw new n("opts must be an object");if(void 0===a.path)throw new n("opts.path must be defined");if(void 0===a.method&&(a.method="GET"),"string"==typeof a.path)if(a.query)a.path=o(a.path,a.query);else{const b=new URL(a.path,"data://");a.path=b.pathname+b.search}"string"==typeof a.method&&(a.method=a.method.toUpperCase()),this[h]=e(a),this[g]=b,this[m]=a.ignoreTrailingSlash??!1,this[i]={},this[j]={},this[k]=!1}createMockScopeDispatchData({statusCode:a,data:b,responseOptions:c}){let e=d(b),f=this[k]?{"content-length":e.length}:{};return{statusCode:a,data:b,headers:{...this[i],...f,...c.headers},trailers:{...this[j],...c.trailers}}}validateReplyParameters(a){if(void 0===a.statusCode)throw new n("statusCode must be defined");if("object"!=typeof a.responseOptions||null===a.responseOptions)throw new n("responseOptions must be an object")}reply(a){if("function"==typeof a){let b=a=>{if("object"!=typeof a||null===a)throw new n("reply options callback must return an object");let b={data:"",responseOptions:{},...a};return this.validateReplyParameters(b),{...this.createMockScopeDispatchData(b)}};return new q(f(this[g],this[h],c=>{let d=a(c);return p(d)?d.then(b):b(d)},{ignoreTrailingSlash:this[m]}))}let b={statusCode:a,data:void 0===arguments[1]?"":arguments[1],responseOptions:void 0===arguments[2]?{}:arguments[2]};this.validateReplyParameters(b);let c=this.createMockScopeDispatchData(b);return new q(f(this[g],this[h],c,{ignoreTrailingSlash:this[m]}))}replyWithError(a){if(void 0===a)throw new n("error must be defined");return new q(f(this[g],this[h],{error:a},{ignoreTrailingSlash:this[m]}))}defaultReplyHeaders(a){if(void 0===a)throw new n("headers must be defined");return this[i]=a,this}defaultReplyTrailers(a){if(void 0===a)throw new n("trailers must be defined");return this[j]=a,this}replyContentLength(){return this[k]=!0,this}}a.exports.MockInterceptor=r,a.exports.MockScope=q},56416:(a,b,c)=>{var d=c(45654);c(63070),c(33889);var e=d.asn1,f=a.exports=d.pkcs7asn1=d.pkcs7asn1||{};d.pkcs7=d.pkcs7||{},d.pkcs7.asn1=f;var g={name:"ContentInfo",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.ContentType",tagClass:e.Class.UNIVERSAL,type:e.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:e.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,captureAsn1:"content"}]};f.contentInfoValidator=g;var h={name:"EncryptedContentInfo",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentType",tagClass:e.Class.UNIVERSAL,type:e.Type.OID,constructed:!1,capture:"contentType"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentEncryptionAlgorithm.algorithm",tagClass:e.Class.UNIVERSAL,type:e.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm.parameter",tagClass:e.Class.UNIVERSAL,captureAsn1:"encParameter"}]},{name:"EncryptedContentInfo.encryptedContent",tagClass:e.Class.CONTEXT_SPECIFIC,type:0,capture:"encryptedContent",captureAsn1:"encryptedContentAsn1"}]};f.envelopedDataValidator={name:"EnvelopedData",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"EnvelopedData.Version",tagClass:e.Class.UNIVERSAL,type:e.Type.INTEGER,constructed:!1,capture:"version"},{name:"EnvelopedData.RecipientInfos",tagClass:e.Class.UNIVERSAL,type:e.Type.SET,constructed:!0,captureAsn1:"recipientInfos"}].concat(h)},f.encryptedDataValidator={name:"EncryptedData",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedData.Version",tagClass:e.Class.UNIVERSAL,type:e.Type.INTEGER,constructed:!1,capture:"version"}].concat(h)};var i={name:"SignerInfo",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.version",tagClass:e.Class.UNIVERSAL,type:e.Type.INTEGER,constructed:!1},{name:"SignerInfo.issuerAndSerialNumber",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.issuerAndSerialNumber.issuer",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"SignerInfo.issuerAndSerialNumber.serialNumber",tagClass:e.Class.UNIVERSAL,type:e.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"SignerInfo.digestAlgorithm",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.digestAlgorithm.algorithm",tagClass:e.Class.UNIVERSAL,type:e.Type.OID,constructed:!1,capture:"digestAlgorithm"},{name:"SignerInfo.digestAlgorithm.parameter",tagClass:e.Class.UNIVERSAL,constructed:!1,captureAsn1:"digestParameter",optional:!0}]},{name:"SignerInfo.authenticatedAttributes",tagClass:e.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"authenticatedAttributes"},{name:"SignerInfo.digestEncryptionAlgorithm",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,capture:"signatureAlgorithm"},{name:"SignerInfo.encryptedDigest",tagClass:e.Class.UNIVERSAL,type:e.Type.OCTETSTRING,constructed:!1,capture:"signature"},{name:"SignerInfo.unauthenticatedAttributes",tagClass:e.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,capture:"unauthenticatedAttributes"}]};f.signedDataValidator={name:"SignedData",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"SignedData.Version",tagClass:e.Class.UNIVERSAL,type:e.Type.INTEGER,constructed:!1,capture:"version"},{name:"SignedData.DigestAlgorithms",tagClass:e.Class.UNIVERSAL,type:e.Type.SET,constructed:!0,captureAsn1:"digestAlgorithms"},g,{name:"SignedData.Certificates",tagClass:e.Class.CONTEXT_SPECIFIC,type:0,optional:!0,captureAsn1:"certificates"},{name:"SignedData.CertificateRevocationLists",tagClass:e.Class.CONTEXT_SPECIFIC,type:1,optional:!0,captureAsn1:"crls"},{name:"SignedData.SignerInfos",tagClass:e.Class.UNIVERSAL,type:e.Type.SET,capture:"signerInfos",optional:!0,value:[i]}]},f.recipientInfoValidator={name:"RecipientInfo",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.version",tagClass:e.Class.UNIVERSAL,type:e.Type.INTEGER,constructed:!1,capture:"version"},{name:"RecipientInfo.issuerAndSerial",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.issuerAndSerial.issuer",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"RecipientInfo.issuerAndSerial.serialNumber",tagClass:e.Class.UNIVERSAL,type:e.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"RecipientInfo.keyEncryptionAlgorithm",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.keyEncryptionAlgorithm.algorithm",tagClass:e.Class.UNIVERSAL,type:e.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"RecipientInfo.keyEncryptionAlgorithm.parameter",tagClass:e.Class.UNIVERSAL,constructed:!1,captureAsn1:"encParameter",optional:!0}]},{name:"RecipientInfo.encryptedKey",tagClass:e.Class.UNIVERSAL,type:e.Type.OCTETSTRING,constructed:!1,capture:"encKey"}]}},56698:(a,b,c)=>{"use strict";let d=c(34589);class e{#bz=!1;#bA;#aQ;#bB;#bC;constructor(a,b,c){if("function"!=typeof a)throw TypeError("callback must be a function");this.#bA=a,this.#aQ=b,this.#bC=c}onRequestStart(a,b){this.#bz=!1,this.#bB=b}onRequestUpgrade(a,b,c,d){this.#aQ.onRequestUpgrade?.(a,b,c,d)}onResponseStart(a,b,c,e){if(d(null!=this.#bA),this.#bz=304===b||this.#bC&&b>=500&&b<=504,this.#bA(this.#bz,this.#bB,b,c),this.#bA=null,this.#bz)return!0;this.#aQ.onRequestStart?.(a,this.#bB),this.#aQ.onResponseStart?.(a,b,c,e)}onResponseData(a,b){if(!this.#bz)return this.#aQ.onResponseData?.(a,b)}onResponseEnd(a,b){this.#bz||this.#aQ.onResponseEnd?.(a,b)}onResponseError(a,b){if(!this.#bz){if(this.#bA){if(this.#bC){this.#bz=!0,this.#bA(!0,this.#bB),this.#bA=null;return}this.#bA(!1),this.#bA=null}if("function"==typeof this.#aQ.onResponseError)this.#aQ.onResponseError(a,b);else throw b}}}a.exports=e},56758:(a,b,c)=>{"use strict";let d={__proto__:null,"node:crypto":()=>c(77598),"node:sqlite":()=>c(79868)},e=["crypto","sqlite"];class f{#bD=new Map;clear(){this.#bD.clear()}has(a){return this.#bD.get(a)??this.#bE(a)}set(a,b){if(!1===e.includes(a))throw TypeError(`unknown feature: ${a}`);this.#bD.set(a,b)}#bE(a){let b=function(a){if(e.includes(a)){var b=`node:${a}`;try{return d[b](),!0}catch(a){if("ERR_UNKNOWN_BUILTIN_MODULE"!==a.code&&"ERR_NO_CRYPTO"!==a.code)throw a;return!1}}throw TypeError(`unknown feature: ${a}`)}(a);return this.#bD.set(a,b),b}}let g=new f;a.exports.runtimeFeatures=g,a.exports.default=g},57431:(a,b,c)=>{"use strict";c.r(b),c.d(b,{CLIENT_KEY_POLICY_BOUNDS:()=>i,__resetApiKeyVerifyMemoForTests:()=>t,authenticateApiKey:()=>A,createApiKey:()=>x,deleteApiKey:()=>z,getApiKeyById:()=>w,getApiKeys:()=>v,getClientKeySpend:()=>u,normalizeClientKeyPatch:()=>o,updateApiKey:()=>y,validateApiKey:()=>B});var d=c(77598),e=c.n(d),f=c(27137),g=c(24081),h=c(20639);let i=Object.freeze({maxAllowlistEntries:100,maxTargetLength:256,maxRatePerMinute:6e4,maxConcurrency:1e3,maxSpendUsd:1e6}),j=new Set(["name","isActive","allowedModels","allowedCombos","expiresAt","rateLimitPerMinute","concurrencyLimit","spendLimitUsd"]);function k(a){if(Array.isArray(a))return a;if("string"!=typeof a||""===a)return[];try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return[]}}function l(a){if(!a)return null;let b=(0,h.BA)(a.key);return{id:a.id,keyPrefix:b.prefix||"sk-…",name:a.name,machineId:a.machineId,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt,rotationRequired:2!==b.version||!b.lookupDigest,allowedModels:k(a.allowedModels),allowedCombos:k(a.allowedCombos),expiresAt:a.expiresAt||null,rateLimitPerMinute:null==a.rateLimitPerMinute?null:Number(a.rateLimitPerMinute),concurrencyLimit:null==a.concurrencyLimit?null:Number(a.concurrencyLimit),spendLimitUsd:null==a.spendLimitUsd?null:Number(a.spendLimitUsd),spentUsd:Number(a.spentUsd||0)}}function m(a,b){if(null==b)return[];if(!Array.isArray(b))throw Error(`${a} must be an array`);if(b.length>i.maxAllowlistEntries)throw Error(`${a} must contain at most ${i.maxAllowlistEntries} entries`);let c=[],d=new Set;for(let e of b){if("string"!=typeof e)throw Error(`${a} entries must be strings`);let b=e.trim();if(!b)throw Error(`${a} entries must not be empty`);if(b.length>i.maxTargetLength)throw Error(`${a} entry length exceeds ${i.maxTargetLength}`);d.has(b)||(d.add(b),c.push(b))}return c}function n(a,b,c){if(null==b||""===b)return null;if(!Number.isInteger(b)||b<1||b>c)throw Error(`${a} must be an integer from 1 through ${c}`);return b}function o(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("client key patch must be an object");for(let b of Object.keys(a))if(!j.has(b))throw Error(`unknown client key field: ${b}`);let b={};if(Object.hasOwn(a,"name")){if("string"!=typeof a.name)throw Error("name must be a string");b.name=a.name}if(Object.hasOwn(a,"isActive")){if("boolean"!=typeof a.isActive)throw Error("isActive must be a boolean");b.isActive=a.isActive}if(Object.hasOwn(a,"allowedModels")&&(b.allowedModels=m("allowedModels",a.allowedModels)),Object.hasOwn(a,"allowedCombos")&&(b.allowedCombos=m("allowedCombos",a.allowedCombos)),Object.hasOwn(a,"expiresAt"))if(null==a.expiresAt||""===a.expiresAt)b.expiresAt=null;else{if("string"!=typeof a.expiresAt||!/^\d{4}-\d{2}-\d{2}T.*(?:Z|[+-]\d{2}:\d{2})$/.test(a.expiresAt))throw Error("expiresAt must be a valid ISO instant");let c=new Date(a.expiresAt);if(Number.isNaN(c.getTime()))throw Error("expiresAt must be a valid ISO instant");b.expiresAt=c.toISOString()}if(Object.hasOwn(a,"rateLimitPerMinute")&&(b.rateLimitPerMinute=n("rateLimitPerMinute",a.rateLimitPerMinute,i.maxRatePerMinute)),Object.hasOwn(a,"concurrencyLimit")&&(b.concurrencyLimit=n("concurrencyLimit",a.concurrencyLimit,i.maxConcurrency)),Object.hasOwn(a,"spendLimitUsd")){let c=a.spendLimitUsd;if(null==c||""===c)b.spendLimitUsd=null;else if("number"!=typeof c||!Number.isFinite(c)||c<0||c>i.maxSpendUsd)throw Error(`spendLimitUsd must be finite from 0 through ${i.maxSpendUsd}`);else b.spendLimitUsd=c}return b}let p="SELECT k.* FROM apiKeys k",q=new Map;function r(a,b,c){if(q.has(a))q.delete(a);else if(q.size>=256){let a=q.keys().next().value;void 0!==a&&q.delete(a)}q.set(a,{rawSha256:b,id:c,expiresAt:Date.now()+6e4})}function s(a){for(let[b,c]of q)c.id===a&&q.delete(b)}function t(){q.clear()}async function u(a){let b=(await (0,g.c)()).get("SELECT spentUsd FROM apiKeys WHERE id = ?",[a]);return Number(b?.spentUsd||0)}async function v(){return(await (0,g.c)()).all(`${p} ORDER BY k.createdAt ASC`).map(l)}async function w(a){return l((await (0,g.c)()).get(`${p} WHERE k.id = ?`,[a]))}async function x(a,b){if(!b)throw Error("machineId is required");let d=await (0,g.c)(),{generateApiKeyWithMachine:e}=await c.e(6103).then(c.bind(c,86103)),i=e(b),j=(0,h.ws)(i.key),k={id:(0,f.A)(),key:j,name:a,machineId:b,isActive:1,createdAt:new Date().toISOString(),allowedModels:null,allowedCombos:null,expiresAt:null,rateLimitPerMinute:null,concurrencyLimit:null,spendLimitUsd:null,spentUsd:0};return d.run(`INSERT INTO apiKeys(id, key, keyPrefix, lookupDigest, name, machineId, isActive, createdAt, allowedModels, allowedCombos, expiresAt, rateLimitPerMinute, concurrencyLimit, spendLimitUsd, spentUsd)
|
|
366
366
|
VALUES(?, ?, ?, ?, ?, ?, 1, ?, NULL, NULL, NULL, NULL, NULL, NULL, 0)`,[k.id,j,(0,h.E8)(i.key),(0,h.cb)(i.key),a,b,k.createdAt]),{...l(k),key:i.key}}async function y(a,b){let c=o(b),d=await (0,g.c)(),e=null;return d.transaction(()=>{let b=d.get(`${p} WHERE k.id = ?`,[a]);if(!b)return;let f={...l(b),...c};d.run(`UPDATE apiKeys
|