switchboard-router 0.9.63 → 0.9.65
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-e00fa4ad9a905a7b.js → .next/static/chunks/1321-fed8b28775abdff1.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-452a2893dc7fd3a8.js +1 -0
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +15 -15
- 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.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 +6 -6
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- 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/fx-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- 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 +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +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 +15 -15
- package/app/.next-cli-build/server/chunks/1158.js +1 -1
- package/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/app/.next-cli-build/server/chunks/1792.js +1 -1
- package/app/.next-cli-build/server/chunks/2847.js +1 -1
- package/app/.next-cli-build/server/chunks/369.js +7 -6
- package/app/.next-cli-build/server/chunks/3694.js +1 -1
- package/app/.next-cli-build/server/chunks/4301.js +1 -1
- package/app/.next-cli-build/server/chunks/8400.js +5 -5
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8998.js +9 -9
- 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/middleware.js +4 -4
- 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-e00fa4ad9a905a7b.js → .next-cli-build/static/chunks/1321-fed8b28775abdff1.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-452a2893dc7fd3a8.js +1 -0
- package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
- package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-c9a257b85e05472a.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-c9a257b85e05472a.js +0 -1
- /package/app/.next/static/{5c3eUqHnZ4XIBUMPRDLdh → d_kgkyLFc009hkiluta7E}/_buildManifest.js +0 -0
- /package/app/.next/static/{5c3eUqHnZ4XIBUMPRDLdh → d_kgkyLFc009hkiluta7E}/_ssgManifest.js +0 -0
- /package/app/.next-cli-build/static/{5c3eUqHnZ4XIBUMPRDLdh → d_kgkyLFc009hkiluta7E}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{5c3eUqHnZ4XIBUMPRDLdh → d_kgkyLFc009hkiluta7E}/_ssgManifest.js +0 -0
|
@@ -42,7 +42,7 @@ ${e.length} files in ${g.length} dirs:
|
|
|
42
42
|
`,b.slice(0,10)))h+=` ${a}
|
|
43
43
|
`;b.length>10&&(h+=` +${b.length-10}
|
|
44
44
|
`),h+="\n"}return g.length>20&&(h+=`+${g.length-20} more dirs
|
|
45
|
-
`),h.replace(/\n+$/,"")}t.filterName="search-list";let u=/^Result of search in '[^']*' \(total (\d+) files?\):/,v=/^diff --git /m,w=/^@@ /m,x=/^On branch |^nothing to commit|^Changes (not |to be )|^Untracked files:/m,y=/^[*|/\\ ]*commit [0-9a-f]{7,40}(\s|$|[([<{])/im,z=/^[ MADRCU?!][ MADRCU?!] \S/m,A=/^(npm (warn|error|ERR!)|yarn (warn|error)|\s*Compiling\s+\S+|\s*Downloading\s+\S+|added \d+ package|\[ERROR\]|BUILD (SUCCESS|FAILED)|\s*Finished\s+|Successfully (installed|built)|ERROR:)/im,B=/[├└]──|│ /,C=/^[-dlbcps][rwx-]{9}/m,D=/^total \d+$/m;function E(a){return null!==j(a)}function F(a){let b=a.trim();return 0!==b.length&&(!!/^[A-Za-z]:[\\/]/.test(b)||!b.includes(":")&&(b.startsWith(".")||b.startsWith("/")||b.includes("/")||b.includes("\\")))}function G(a,b){if(!b||!a)return null;if(a.conversationState){var c=a;let b={bytesBefore:0,bytesAfter:0,hits:[]};try{let a=c.conversationState,d=[...Array.isArray(a?.history)?a.history:[]];for(let c of(a?.currentMessage&&d.push(a.currentMessage),d)){let a=c?.userInputMessage?.userInputMessageContext?.toolResults;if(Array.isArray(a)){for(let c of a)if("error"!==c.status&&Array.isArray(c.content)){for(let a of c.content)if(a&&"string"==typeof a.text){if(H(a.text))continue;a.text=I(a.text,b,"kiro-tool-result")}}}}}catch(a){return console.warn("[RTK] compressKiroFormat error:",a.message),null}return b}let d=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!d)return null;let e={bytesBefore:0,bytesAfter:0,hits:[]};try{for(let a=0;a<d.length;a++){let b=d[a];if(b){if("function_call_output"===b.type){if(!0===b.is_error||"error"===b.status)continue;if("string"==typeof b.output){if(H(b.output))continue;b.output=I(b.output,e,"openai-responses-string")}else if(Array.isArray(b.output))for(let a=0;a<b.output.length;a++){let c=b.output[a];if(c&&"input_text"===c.type&&"string"==typeof c.text){if(H(c.text))continue;c.text=I(c.text,e,"openai-responses-array")}}continue}if("tool"===b.role&&"string"==typeof b.content){if(!0===b.is_error||H(b.content))continue;b.content=I(b.content,e,"openai-tool");continue}if(Array.isArray(b.content)){if("tool"===b.role){if(!0===b.is_error)continue;for(let a=0;a<b.content.length;a++){let c=b.content[a];if(c&&"text"===c.type&&"string"==typeof c.text){if(H(c.text))continue;c.text=I(c.text,e,"openai-tool-array")}}continue}for(let a=0;a<b.content.length;a++){let c=b.content[a];if(c&&"tool_result"===c.type&&!0!==c.is_error){if("string"==typeof c.content){if(H(c.content))continue;c.content=I(c.content,e,"claude-string")}else if(Array.isArray(c.content))for(let a=0;a<c.content.length;a++){let b=c.content[a];if(b&&"text"===b.type&&"string"==typeof b.text){if(H(b.text))continue;b.text=I(b.text,e,"claude-array")}}}}}}}}catch(a){return console.warn("[RTK] compressMessages error:",a.message),null}return e}function H(a){return"string"==typeof a&&!(a.length<8)&&(/^\s*(Error|Exception|Traceback|TypeError|ReferenceError|SyntaxError|Failed)\b/m.test(a)||/\bat\s+\S+\s+\([^)]+:\d+:\d+\)/.test(a))}function I(a,b,c){let d=a.length;if(b.bytesBefore+=d,d<500||d>0xa00000)return b.bytesAfter+=d,a;let h=function(a){var b,c;let d,h,j=a.length>1024?a.slice(0,1024):a,n=a.split("\n");if(y.test(j))return g;if(v.test(j)||w.test(j))return e;if(x.test(j))return f;if(A.test(j))return i;if(!((d=j.split("\n").filter(a=>a.trim())).length<3)&&d.filter(a=>z.test(a)).length/d.length>=.6)return f;let G=j.split("\n").filter(a=>a.trim().length>0);return G.slice(0,5).some(E)?k:G.length>=3&&G.every(F)?l:B.test(j)?p:D.test(j)||(b=j,h=new RegExp((c=C).source,c.flags.includes("g")?c.flags:c.flags+"g"),(b.match(h)||[]).length>=3)?o:u.test(j)?t:n.length>=250&&function(a){let b=0,c=0;for(let d of a.slice(0,100))0!==d.length&&(c++,s.test(d)&&b++);return!(c<5)&&b/c>=.7}(n)?r:G.length>=5?m:a.split("\n").length>=250?q:null}(a);if(!h)return b.bytesAfter+=d,a;let j=function(a,b){if("function"!=typeof a)return b;try{let c=a(b);if("string"!=typeof c)return b;return c}catch(d){let c=a.filterName||a.name||"anonymous";return console.warn(`[rtk] warning: filter '${c}' panicked — passing through raw output: ${d?.message||d}`),b}}(h,a);return!j||0===j.length||j.length>=d?(b.bytesAfter+=d,a):(b.bytesAfter+=j.length,b.hits.push({shape:c,filter:h.filterName||h.name,saved:d-j.length}),j)}function J(a){if(!a||!a.hits||0===a.hits.length)return null;let b=a.bytesBefore-a.bytesAfter,c=a.bytesBefore>0?(b/a.bytesBefore*100).toFixed(1):"0",d=Array.from(new Set(a.hits.map(a=>a.filter))).join(",");return`[RTK] saved ${b}B / ${a.bytesBefore}B (${c}%) via [${d}] hits=${a.hits.length}`}},1160:(a,b,c)=>{c.d(b,{BP:()=>l,Eh:()=>h,n8:()=>k,sk:()=>i});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[String(("u">typeof process?process.env?.LOG_LEVEL:void 0)||"").toUpperCase()]??d.INFO,f=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],g=0;function h(){let a=f[g%f.length];return g++,a}function i(a){let b=String(a??"");if(!b)return h();let c=0,d=Math.min(b.length,128);for(let a=0;a<d;a++)c=31*c+b.charCodeAt(a)|0;return f[Math.abs(c)%f.length]}function j(a,b,c){let d=a?`${a} `:"";return`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] ${d}${b} ${c}`}function k(a,b,c){e>d.INFO||console.log(j(a,b,c))}function l(a,b,c){console.log(j(a,b,c))}},2735:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(17717),e=c(48664),f=c(19956),g=c(60290),h=c(78638);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);if(d?.message){c=d.message;let a=d.message.usage,e=b?.usage;(a||e)&&(c.usage={...a||{},...e||{},...a?.cache_read_input_tokens!==void 0?{cache_read_input_tokens:a.cache_read_input_tokens}:{},...a?.cache_creation_input_tokens!==void 0?{cache_creation_input_tokens:a.cache_creation_input_tokens}:{},...a?.input_tokens!==void 0?{input_tokens:a.input_tokens}:{}})}}return c}(i,a)),{headers:{"Content-Type":"application/json"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},12197:(a,b,c)=>{c.d(b,{El:()=>i,f3:()=>o,mS:()=>h,u1:()=>j});var d=c(77598),e=c(12407),f=c(66573),g=c(92);let h="sb_vault_search",i=6144;function j(a){let b=Number(a);return Number.isFinite(b)?Math.max(7,b):7}let k=!1;async function l(a,b){try{var c;let h,i;if("string"!=typeof a)return a;let j=Buffer.byteLength(a,"utf8");if(b.stats.bytesBefore+=j,j<b.thresholdBytes||(0,g.mE)(a))return b.stats.bytesAfter+=j,a;let k=(c=b.conversationId,`vlt_${(0,d.createHash)("sha256").update(`${c}\0${Date.now()}\0${Math.random()}\0${a.length}`).digest("hex").slice(0,12)}`),l=function(a,b=4e3){if("string"!=typeof a||!a)return[];let c=Math.max(1,Math.floor(Number(b)||4e3)),d=[],e=a,g=0;for(;e&&g++<2e3;){if(e.length<=c){d.push(e),e="";break}let a=e.lastIndexOf("\n\n",c);a<.5*c&&(a=e.lastIndexOf("\n",c)),a<.5*c&&(a=-1);let b=a>0?e.slice(0,a):(0,f.Wg)(e,c);if(b||(b=(0,f.Wg)(e,c)),!b)break;d.push(b),e=e.slice(b.length)}return e||0===d.length?[]:d}(a);if(0===l.length)return b.stats.bytesAfter+=j,a;let m=!1;try{m=await (0,e.M8)({id:k,conversationId:b.conversationId,toolName:b.toolNameHint,content:a,chunks:l,ttlMs:b.ttlMs})}catch{}if(!m)return b.stats.bytesAfter+=j,a;let n=(h=(0,f.Wg)(a,500),i=a.length>h.length?"…":"",`[Switchboard vault] The full tool result (${a.length} chars) was moved to the conversation vault to save context. A preview is below. To read the rest, call the sb_vault_search tool with vault_id "${k}" and a query describing what you need.
|
|
45
|
+
`),h.replace(/\n+$/,"")}t.filterName="search-list";let u=/^Result of search in '[^']*' \(total (\d+) files?\):/,v=/^diff --git /m,w=/^@@ /m,x=/^On branch |^nothing to commit|^Changes (not |to be )|^Untracked files:/m,y=/^[*|/\\ ]*commit [0-9a-f]{7,40}(\s|$|[([<{])/im,z=/^[ MADRCU?!][ MADRCU?!] \S/m,A=/^(npm (warn|error|ERR!)|yarn (warn|error)|\s*Compiling\s+\S+|\s*Downloading\s+\S+|added \d+ package|\[ERROR\]|BUILD (SUCCESS|FAILED)|\s*Finished\s+|Successfully (installed|built)|ERROR:)/im,B=/[├└]──|│ /,C=/^[-dlbcps][rwx-]{9}/m,D=/^total \d+$/m;function E(a){return null!==j(a)}function F(a){let b=a.trim();return 0!==b.length&&(!!/^[A-Za-z]:[\\/]/.test(b)||!b.includes(":")&&(b.startsWith(".")||b.startsWith("/")||b.includes("/")||b.includes("\\")))}function G(a,b){if(!b||!a)return null;if(a.conversationState){var c=a;let b={bytesBefore:0,bytesAfter:0,hits:[]};try{let a=c.conversationState,d=[...Array.isArray(a?.history)?a.history:[]];for(let c of(a?.currentMessage&&d.push(a.currentMessage),d)){let a=c?.userInputMessage?.userInputMessageContext?.toolResults;if(Array.isArray(a)){for(let c of a)if("error"!==c.status&&Array.isArray(c.content)){for(let a of c.content)if(a&&"string"==typeof a.text){if(H(a.text))continue;a.text=I(a.text,b,"kiro-tool-result")}}}}}catch(a){return console.warn("[RTK] compressKiroFormat error:",a.message),null}return b}let d=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!d)return null;let e={bytesBefore:0,bytesAfter:0,hits:[]};try{for(let a=0;a<d.length;a++){let b=d[a];if(b){if("function_call_output"===b.type){if(!0===b.is_error||"error"===b.status)continue;if("string"==typeof b.output){if(H(b.output))continue;b.output=I(b.output,e,"openai-responses-string")}else if(Array.isArray(b.output))for(let a=0;a<b.output.length;a++){let c=b.output[a];if(c&&"input_text"===c.type&&"string"==typeof c.text){if(H(c.text))continue;c.text=I(c.text,e,"openai-responses-array")}}continue}if("tool"===b.role&&"string"==typeof b.content){if(!0===b.is_error||H(b.content))continue;b.content=I(b.content,e,"openai-tool");continue}if(Array.isArray(b.content)){if("tool"===b.role){if(!0===b.is_error)continue;for(let a=0;a<b.content.length;a++){let c=b.content[a];if(c&&"text"===c.type&&"string"==typeof c.text){if(H(c.text))continue;c.text=I(c.text,e,"openai-tool-array")}}continue}for(let a=0;a<b.content.length;a++){let c=b.content[a];if(c&&"tool_result"===c.type&&!0!==c.is_error){if("string"==typeof c.content){if(H(c.content))continue;c.content=I(c.content,e,"claude-string")}else if(Array.isArray(c.content))for(let a=0;a<c.content.length;a++){let b=c.content[a];if(b&&"text"===b.type&&"string"==typeof b.text){if(H(b.text))continue;b.text=I(b.text,e,"claude-array")}}}}}}}}catch(a){return console.warn("[RTK] compressMessages error:",a.message),null}return e}function H(a){return"string"==typeof a&&!(a.length<8)&&(/^\s*(Error|Exception|Traceback|TypeError|ReferenceError|SyntaxError|Failed)\b/m.test(a)||/\bat\s+\S+\s+\([^)]+:\d+:\d+\)/.test(a))}function I(a,b,c){let d=a.length;if(b.bytesBefore+=d,d<500||d>0xa00000)return b.bytesAfter+=d,a;let h=function(a){var b,c;let d,h,j=a.length>1024?a.slice(0,1024):a,n=a.split("\n");if(y.test(j))return g;if(v.test(j)||w.test(j))return e;if(x.test(j))return f;if(A.test(j))return i;if(!((d=j.split("\n").filter(a=>a.trim())).length<3)&&d.filter(a=>z.test(a)).length/d.length>=.6)return f;let G=j.split("\n").filter(a=>a.trim().length>0);return G.slice(0,5).some(E)?k:G.length>=3&&G.every(F)?l:B.test(j)?p:D.test(j)||(b=j,h=new RegExp((c=C).source,c.flags.includes("g")?c.flags:c.flags+"g"),(b.match(h)||[]).length>=3)?o:u.test(j)?t:n.length>=250&&function(a){let b=0,c=0;for(let d of a.slice(0,100))0!==d.length&&(c++,s.test(d)&&b++);return!(c<5)&&b/c>=.7}(n)?r:G.length>=5?m:a.split("\n").length>=250?q:null}(a);if(!h)return b.bytesAfter+=d,a;let j=function(a,b){if("function"!=typeof a)return b;try{let c=a(b);if("string"!=typeof c)return b;return c}catch(d){let c=a.filterName||a.name||"anonymous";return console.warn(`[rtk] warning: filter '${c}' panicked — passing through raw output: ${d?.message||d}`),b}}(h,a);return!j||0===j.length||j.length>=d?(b.bytesAfter+=d,a):(b.bytesAfter+=j.length,b.hits.push({shape:c,filter:h.filterName||h.name,saved:d-j.length}),j)}function J(a){if(!a||!a.hits||0===a.hits.length)return null;let b=a.bytesBefore-a.bytesAfter,c=a.bytesBefore>0?(b/a.bytesBefore*100).toFixed(1):"0",d=Array.from(new Set(a.hits.map(a=>a.filter))).join(",");return`[RTK] saved ${b}B / ${a.bytesBefore}B (${c}%) via [${d}] hits=${a.hits.length}`}},1160:(a,b,c)=>{c.d(b,{BP:()=>l,Eh:()=>h,n8:()=>k,sk:()=>i});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[String(("u">typeof process?process.env?.LOG_LEVEL:void 0)||"").toUpperCase()]??d.INFO,f=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],g=0;function h(){let a=f[g%f.length];return g++,a}function i(a){let b=String(a??"");if(!b)return h();let c=0,d=Math.min(b.length,128);for(let a=0;a<d;a++)c=31*c+b.charCodeAt(a)|0;return f[Math.abs(c)%f.length]}function j(a,b,c){let d=a?`${a} `:"";return`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] ${d}${b} ${c}`}function k(a,b,c){e>d.INFO||console.log(j(a,b,c))}function l(a,b,c){console.log(j(a,b,c))}},2735:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(17717),e=c(48664),f=c(19956),g=c(60290),h=c(78638);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);if(d?.message){c=d.message;let a=d.message.usage,e=b?.usage;(a||e)&&(c.usage={...a||{},...e||{},...a?.cache_read_input_tokens!==void 0?{cache_read_input_tokens:a.cache_read_input_tokens}:{},...a?.cache_creation_input_tokens!==void 0?{cache_creation_input_tokens:a.cache_creation_input_tokens}:{},...a?.input_tokens!==void 0?{input_tokens:a.input_tokens}:{}})}}return c}(i,a)),{headers:{"Content-Type":"application/json"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},12197:(a,b,c)=>{c.d(b,{El:()=>i,f3:()=>o,mS:()=>h,u1:()=>j});var d=c(77598),e=c(12407),f=c(66573),g=c(92);let h="sb_vault_search",i=6144;function j(a){let b=Number(a);return Number.isFinite(b)?Math.max(7,b):7}let k=!1;async function l(a,b){try{var c;let h,i;if("string"!=typeof a)return a;let j=Buffer.byteLength(a,"utf8");if(b.stats.bytesBefore+=j,j<b.thresholdBytes||(0,g.mE)(a))return b.stats.bytesAfter+=j,a;let k=(c=b.conversationId,`vlt_${(0,d.createHash)("sha256").update(`${c}\0${a}`).digest("hex").slice(0,12)}`),l=function(a,b=4e3){if("string"!=typeof a||!a)return[];let c=Math.max(1,Math.floor(Number(b)||4e3)),d=[],e=a,g=0;for(;e&&g++<2e3;){if(e.length<=c){d.push(e),e="";break}let a=e.lastIndexOf("\n\n",c);a<.5*c&&(a=e.lastIndexOf("\n",c)),a<.5*c&&(a=-1);let b=a>0?e.slice(0,a):(0,f.Wg)(e,c);if(b||(b=(0,f.Wg)(e,c)),!b)break;d.push(b),e=e.slice(b.length)}return e||0===d.length?[]:d}(a);if(0===l.length)return b.stats.bytesAfter+=j,a;let m=!1;try{m=await (0,e.M8)({id:k,conversationId:b.conversationId,toolName:b.toolNameHint,content:a,chunks:l,ttlMs:b.ttlMs})}catch{}if(!m)return b.stats.bytesAfter+=j,a;let n=(h=(0,f.Wg)(a,500),i=a.length>h.length?"…":"",`[Switchboard vault] The full tool result (${a.length} chars) was moved to the conversation vault to save context. A preview is below. To read the rest, call the sb_vault_search tool with vault_id "${k}" and a query describing what you need.
|
|
46
46
|
|
|
47
47
|
--- preview (first 500 chars) ---
|
|
48
48
|
${h}${i}`);return b.stats.bytesAfter+=Buffer.byteLength(n,"utf8"),b.stats.vaulted+=1,n}catch{return a}}async function m(a,b){try{if(!a||"object"!=typeof a||!0===a.is_error||"error"===a.status)return;if("function_call_output"===a.type){if("string"==typeof a.output)a.output=await l(a.output,b);else if(Array.isArray(a.output))for(let c=0;c<a.output.length;c+=1){let d=a.output[c];d?.type==="input_text"&&"string"==typeof d.text&&(d.text=await l(d.text,b))}return}if("tool"===a.role){if("string"==typeof a.content)a.content=await l(a.content,b);else if(Array.isArray(a.content))for(let c=0;c<a.content.length;c+=1){let d=a.content[c];d?.type==="text"&&"string"==typeof d.text&&(d.text=await l(d.text,b))}return}if(!Array.isArray(a.content))return;for(let c=0;c<a.content.length;c+=1){let d=a.content[c];if(d&&"tool_result"===d.type&&!0!==d.is_error&&"error"!==d.status){if("string"==typeof d.content)d.content=await l(d.content,b);else if(Array.isArray(d.content))for(let a=0;a<d.content.length;a+=1){let c=d.content[a];c?.type==="text"&&"string"==typeof c.text&&(c.text=await l(c.text,b))}}}}catch{}}async function n(a,b){try{let c=a?.conversationState,d=Array.isArray(c?.history)?[...c.history]:[];c?.currentMessage&&d.push(c.currentMessage);for(let a=0;a<d.length;a+=1)try{let c=d[a]?.userInputMessage?.userInputMessageContext?.toolResults;if(!Array.isArray(c))continue;for(let a=0;a<c.length;a+=1){let d=c[a];if(d&&!0!==d.is_error&&"error"!==d.status&&Array.isArray(d.content))for(let a=0;a<d.content.length;a+=1){let c=d.content[a];c&&"string"==typeof c.text&&(c.text=await l(c.text,b))}}}catch{}}catch{}}async function o(a,{conversationId:b,thresholdBytes:c,ttlMs:d,toolNameHint:e=null,log:f=null}={}){let g={bytesBefore:0,bytesAfter:0,vaulted:0};try{if(!a||"object"!=typeof a||"string"!=typeof b||!b)return g;let h=Number(c),i=Number(d);if(!Number.isFinite(h)||h<=0||!Number.isFinite(i)||i<=0)return g;let j={conversationId:b,thresholdBytes:h,ttlMs:i,toolNameHint:e,log:f,stats:g};if(a.conversationState)return await n(a,j),g;let l=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!l)return!k&&(Array.isArray(a?.contents)||Array.isArray(a?.request?.contents))&&(k=!0,f?.warn?.("VAULT","inactive for this upstream body shape (e.g. Gemini contents[]); tool results are not externalized")),g;for(let a=0;a<l.length;a+=1)await m(l[a],j);return g}catch{return{bytesBefore:0,bytesAfter:0,vaulted:0}}}},15142:(a,b,c)=>{c.d(b,{N:()=>p});var d=c(19956),e=c(68057),f=c(49612),g=c(67677),h=c(89865),i=c(60290),j=c(94176),k=c(29461),l=c(12407),m=c(10089),n=c(83611);async function o(a,b){if(!a.body||"function"!=typeof a.body.getReader){let c=await a.text();return(0,j.tQ)(new TextEncoder().encode(c).byteLength,b),c}let c=a.body.getReader(),d=new TextDecoder,e=0,f="";try{for(;;){let{done:a,value:g}=await c.read();if(a)break;e+=g?.byteLength||0,(0,j.tQ)(e,b),f+=d.decode(g,{stream:!0})}f+=d.decode()}catch(a){throw c.cancel().catch(()=>{}),a}finally{try{c.releaseLock()}catch{}}return f}async function p({providerResponse:a,provider:b,model:c,sourceFormat:q,targetFormat:r,body:s,stream:t,requestConfig:u,translatedBody:v,finalBody:w,requestStartTime:x,connectionId:y,clientKeyId:z,requestId:A,clientRawRequest:B,onRequestSuccess:C,reqLogger:D,toolNameMap:E,trackDone:F,appendLog:G,pxpipe:H,streamSignal:I}){let J;if(F(),(a.headers.get("content-type")||"").includes("text/event-stream")){let d;try{d=await (0,j.iJ)(a.body,c,{signal:I})}catch(a){return G({status:`FAILED ${i.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to convert SSE response from ${b}:`,a.message),(0,h.A1)(i.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}if(!d)return G({status:`FAILED ${i.gx.BAD_GATEWAY}`}),(0,h.A1)(i.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");J=d}else try{let b=(0,j.hB)(),c=Number(a.headers.get("content-length"));if(Number.isFinite(c)&&c>b)throw Error(`Upstream JSON body (${c} bytes) exceeds limit (${b} bytes)`);J=JSON.parse(await o(a,b))}catch(a){return G({status:`FAILED ${i.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to parse JSON from ${b}:`,a.message),(0,h.A1)(i.gx.BAD_GATEWAY,`Invalid JSON response from ${b}`)}D.logProviderResponse(a.status,a.statusText,a.headers,J),C&&Promise.resolve().then(C).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)}),J=(0,m.kR)(J,E);let K=(0,k.MK)(J);G({tokens:K,status:"200 OK"}),await (0,k.YZ)({provider:b,model:c,tokens:K,connectionId:y,clientKeyId:z,requestId:A,endpoint:B?.endpoint});let L=q===r&&q!==d.h.OPENAI,M=L?null:r===d.h.OPENAI?J:function(a,b){if(b===d.h.OPENAI)return a;if(b===d.h.OPENAI_RESPONSES)return a?.choices?a:Array.isArray(a?.output)?(0,f.g)(a,a?.model):a;if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY||b===d.h.GEMINI_CLI||b===d.h.VERTEX){let b=a.response||a;if(!b?.candidates?.[0])return a;let c=b.candidates[0],d=c.content,e=b.usageMetadata||a.usageMetadata,f="",g="",h=[];if(d?.parts)for(let a of d.parts){!0===a.thought&&a.text?g+=a.text:void 0!==a.text&&(f+=a.text),a.functionCall&&h.push({id:`call_${a.functionCall.name}_${h.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let b=a.inlineData||a.inline_data;if(b?.data){let a=b.mimeType||b.mime_type||"image/png";f+=`
|
|
@@ -56,19 +56,20 @@ ${b}`:b;return}let c=Array.isArray(a.messages)?a.messages:null;if(!c)return;let
|
|
|
56
56
|
|
|
57
57
|
${h}`:Array.isArray(g.content)?g.content.push({type:"input_text",text:h}):g.content=h}else c.unshift({role:"system",content:b})}(a,c)}}},18367:(a,b,c)=>{c.d(b,{Z:()=>e});var d=c(60290);function e({body:a,reexecute:b,signal:c,firstChunkTimeoutMs:f=d.Z1,log:g,maxRetries:h=1}){let i=a.getReader(),j=!1,k=!1,l=!1,m=null,n=null,o=()=>{m&&(clearTimeout(m),m=null)},p=a=>{try{a.error(Error("stream first-chunk timeout"))}catch{}},q=()=>n?.();c?.addEventListener?.("abort",q);let r=()=>{o(),c?.removeEventListener?.("abort",q)};return new ReadableStream({async pull(a){if(l){r(),a.close();return}if(c?.aborted)return(r(),j)?p(a):void a.close();try{for(;;){let b=!j&&f>0?new Promise(a=>{m=setTimeout(()=>a({timeout:!0}),f)}):null,d=c?new Promise(a=>{n=()=>a({aborted:!0}),c.aborted&&n()}):null,e=i.read().catch(a=>({error:a})),g=await Promise.race([e,b,d].filter(Boolean));if(n=null,o(),g.aborted||l){if(r(),i.cancel().catch(()=>{}),j&&!l)return p(a);a.close();return}if(g.error)throw g.error;if(g.timeout){if(i.cancel().catch(()=>{}),await s(a,"first-chunk timeout"))continue;return r(),p(a)}if(g.done){if(!j&&await s(a,"empty EOF"))continue;if(r(),!j)return p(a);a.close();return}j=!0,a.enqueue(g.value);return}}catch(b){r();try{a.error(b)}catch{}}},cancel(){l=!0,r(),i?.cancel().catch(()=>{})}});async function s(a,d){if(h<=0||k||l||c?.aborted)return!1;k=!0,g?.warn?.("STREAM",`zero-byte ${d} | retrying once`);let e=await b();return l||c?.aborted?(await e?.cancel?.().catch(()=>{}),r(),a.close(),!1):!!e&&(i=e.getReader(),j=!1,!0)}}},27226:(a,b,c)=>{c.d(b,{Jz:()=>f,Qf:()=>l,lP:()=>k});var d=c(35570);let e={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function f(a={},b={}){let c=a["user-agent"]||"";return"antigravity"===b.userAgent?"antigravity":/^GitHubCopilotChat\/\d+\.\d+\.\d+/i.test(c)&&a["editor-version"]&&a["editor-plugin-version"]?"github-copilot":/claude-(?:cli|code)\/\d+\.\d+\.\d+/i.test(c)?"claude":/^GeminiCLI\/\d+\.\d+\.\d+/i.test(c)?"gemini-cli":/^(?:codex_cli_rs|codex-cli)\/\d+\.\d+\.\d+/i.test(c)?"codex":/^Cline\/\d+\.\d+\.\d+/i.test(c)&&"extension"===a["x-client-type"]?"cline":/^QwenCode\/\d+\.\d+\.\d+/i.test(c)?"qwen":c.includes("deepseek-tui")?"deepseek-tui":null}let g={claude:"claude-cli",codex:"codex-cli","gemini-cli":"gemini-cli",antigravity:"antigravity",cline:"cline",qwen:"qwen","github-copilot":"copilot"},h=/^claude-(?:cli|code)\/(\d+\.\d+\.\d+)(?:\s|\(|$)/i,i=/_session_([a-f0-9-]+)$/;function j(a,b){let c=a?.[b]??a?.[b.toLowerCase()];return"string"==typeof c&&c.trim()?c:null}function k(a,b={},c={}){let e=g[a];if(!e||f(b,c)!==a)return!1;if("claude"!==a)return(0,d.I2)(e,b);if(!function(a={},b={}){if(!a||"object"!=typeof a)return!1;let c=j(a,"user-agent"),e=c?.match(h)?.[1],f=(0,d.zi)("claude-cli")?.version;return!!(e&&e===f&&j(a,"x-app")?.toLowerCase()==="cli"&&j(a,"anthropic-beta")&&j(a,"x-stainless-package-version")&&j(a,"x-stainless-runtime-version")&&j(a,"x-stainless-os")&&j(a,"x-stainless-arch")&&function(a){let b=a?.metadata?.user_id;if("string"!=typeof b||!b)return null;let c=b.match(i)?.[1];if(c)return c;if("{"!==b[0])return null;try{let a=JSON.parse(b)?.session_id;if("string"!=typeof a)return null;let c=a.trim();return c&&c.length<=256?c:null}catch{return null}}(b))}(b,c))return!1;let l=b["user-agent"]||b["User-Agent"];return(0,d.I2)(e,{...b,"user-agent":l.replace(/^claude-code\//i,"claude-cli/")})}function l(a,b){if(!a)return!1;let c=e[a];if(!c)return!1;let d=b.startsWith("anthropic-compatible")?"anthropic":b;return c.includes(d)}},28190:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},29461:(a,b,c)=>{c.d(b,{$R:()=>k,Fo:()=>i,MK:()=>j,YZ:()=>l});var d=c(12407),e=c(71413),f=c(78638),g=c(67677);let h=["temperature","top_p","top_k","max_tokens","max_completion_tokens","thinking","reasoning","enable_thinking","presence_penalty","frequency_penalty","seed","stop","tools","tool_choice","response_format","prediction","store","metadata","n","logprobs","top_logprobs","logit_bias","user","parallel_tool_calls"];function i(a,b){let c={messages:a.messages||[],model:a.model,stream:b};for(let b of h)void 0!==a[b]&&(c[b]=a[b]);return c}function j(a){return a&&"object"==typeof a?a.usage?.input_tokens!==void 0?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usage?.prompt_tokens!==void 0?{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,cached_tokens:a.usageMetadata.cachedContentTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount||0}:null:null}function k(a,b={}){return{provider:a.provider||"unknown",model:a.model||"unknown",connectionId:a.connectionId||void 0,timestamp:new Date().toISOString(),latency:a.latency||{ttft:0,total:0},tokens:a.tokens||{prompt_tokens:0,completion_tokens:0},request:a.request,providerRequest:a.providerRequest||null,providerResponse:a.providerResponse||null,toolHistory:a.request?.toolHistoryDiagnostics?{stages:a.request.toolHistoryDiagnostics,dispatched:(0,e.O)(a.providerRequest)}:void 0,response:a.response||{},pxpipe:a.pxpipe||void 0,rtk:a.rtk||void 0,status:a.status||"success",...b}}function l(a){let b=function({provider:a,model:b,tokens:c,connectionId:e,clientKeyId:h,endpoint:i,requestId:j=null,label:k="USAGE"}){if(!c||"object"!=typeof c)return;let l=c.input_tokens??c.prompt_tokens??0,m=c.output_tokens??c.completion_tokens??0;if(0===l&&0===m)return;let n=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),o=e?` | account=${e.slice(0,8)}...`:"";console.log(`${f.lm.green}[${n}] 📊 [${k}] ${a.toUpperCase()} | in=${l} | out=${m}${o}${f.lm.reset}`);let p=(0,g._6)(c)||{prompt_tokens:c.prompt_tokens??c.input_tokens??0,completion_tokens:c.completion_tokens??c.output_tokens??0};return(0,d.sZ)({provider:a||"unknown",model:b||"unknown",tokens:p,timestamp:new Date().toISOString(),connectionId:e||void 0,clientKeyId:h||void 0,endpoint:i||null,requestId:j||null})}(a);if(a.clientKeyId)return b;b?.catch?.(a=>console.error("[USAGE] save failed:",a?.message||a))}},30369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>f.getExecutor}),c(46052),c(4630),c(28730),c(60290),c(27335),c(19956),c(48664),c(17717),c(66451),c(49263),c(41029),c(18129);var e=c(36362);c(15575);var f=c(48400);c(89865),c(78638);var g=a([e,f]);[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},34267:(a,b,c)=>{c.d(b,{gH:()=>f});var d=c(57642),e=c(60290);function f({body:a,reexecute:b,signal:c,log:g,stallTimeoutMs:h=e.xM,baseDelayMs:i=500,onExhausted:j}){let k=new TextEncoder,l=null,m=!1,n=null,o=null,p=()=>{let a=n;n=null,o&&(c?.removeEventListener?.("abort",o),o=null),a?.()};return new ReadableStream({async start(e){l=a.getReader();let f=!1,q=null,r=async a=>{let b;if(!m&&(await (b=e.desiredSize,m||c?.aborted||null==b||b>0?Promise.resolve():new Promise(a=>{n=a,c?.addEventListener&&(o=p,c.addEventListener("abort",o,{once:!0}))})),!(m||c?.aborted)))try{e.enqueue(k.encode(a))}catch{m=!0}},s=()=>{if(!m)try{e.close()}catch{}},t=()=>{p();try{l.cancel().catch(()=>{})}catch{}if(m)return;let a=Error("Request aborted");a.name="AbortError";try{e.error(a)}catch{}},u=async a=>{if(m)return;if(c?.aborted)return t();try{await Promise.resolve(j?.(a,{upstreamError:q?.error||null}))}catch{}let b=q?.kind==="error_object"?q.line:`data: ${JSON.stringify({error:{code:502,status:"EMPTY_RESPONSE",message:a}})}`;await r(`${b}
|
|
58
58
|
|
|
59
|
-
`),s()};for(let a=0;;a++){let e=new TextDecoder,j="",k=null,n=!1,o="empty",p=Date.now(),v=!1,w=null,x=()=>{w&&(clearInterval(w),w=null)};h>0&&(w=setInterval(()=>{if(Date.now()-p>=h){v=!0;try{l.cancel().catch(()=>{})}catch{}}},Math.min(h,5e3)));try{for(;;){let a;if(m)return;if(c?.aborted)return t();try{a=await l.read()}catch{if(m)return;if(c?.aborted)return t();o=v?"stall":"read_error";break}if(m)return;if(c?.aborted)return t();if(v){o="stall";break}p=Date.now();let{done:b,value:g}=a;if(b)break;let h=(j+=e.decode(g,{stream:!0})).split("\n");for(let a of(j=h.pop(),h)){let b;if(k)continue;let c=a.trim();if(!c.startsWith("data:")){await r(a+"\n");continue}let e=c.slice(5).trim();if(!e||"[DONE]"===e){await r(a+"\n");continue}try{b=JSON.parse(e)}catch{await r(a+"\n");continue}let g=function(a,b){let c=a.response||a;if(!c||"object"!=typeof c)return{action:"forward"};let e=c.error||a.error;if(e)return b?{action:"forward",terminal:!0}:{action:"hold",kind:"error_object",reason:e.status||e.message||"error",error:e};if(!c.candidates?.length&&c.promptFeedback?.blockReason)return{action:"forward",terminal:!0};let f=c.candidates?.[0];if(!f)return{action:"forward"};let g=!1;for(let a of f.content?.parts||[])if(a.functionCall||a.inlineData?.data||a.inline_data?.data||!0!==a.thought&&"string"==typeof a.text&&a.text.trim().length>0){g=!0;break}let h=f.finishReason&&String(f.finishReason).toUpperCase();return h?d.zh.has(h)||h===d.a_.MAX_TOKENS||g||b?{action:"forward",meaningful:g,terminal:!0}:{action:"hold",kind:d.lW.has(h)?"error_finish":"stop",reason:h}:{action:"forward",meaningful:g}}(b,f);if(g.meaningful&&(f=!0),"hold"===g.action){q=k={kind:g.kind,reason:g.reason,error:g.error||null,line:a};continue}g.terminal&&(n=!0),await r(a+"\n")}}}finally{x()}if(f||n){let a=j+e.decode();!k&&a&&await r(a),s();return}let y=k?k.reason:o;if(g?.warn?.("STREAM",`ANTIGRAVITY | empty (${y}) | attempt ${a+1}/3`),a>=2)return u(`empty response from upstream (${y}) after ${a+1} attempts`);if(await function(a,b){return new Promise(c=>{let d,e=()=>{clearTimeout(d),c()};d=setTimeout(()=>{a?.removeEventListener?.("abort",e),c()},b),a?.addEventListener?.("abort",e,{once:!0})})}(c,i*2**a),m)return;if(c?.aborted)return t();try{let a=await b();if(m||c?.aborted){try{await a.cancel()}catch{}m||t();return}l=a.getReader()}catch(a){if(m)return;if(a?.name==="AbortError"||c?.aborted)return t();return u(a?.message||"retry request failed")}}},pull(){p()},cancel(a){m=!0,p();try{l?.cancel(a)?.catch?.(()=>{})}catch{}}})}},36362:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>V});var e=c(17717),f=c(48664),g=c(94454),h=c(19956),i=c(43788),j=c(5425),k=c(71413),l=c(78638),m=c(15575),n=c(41029),o=c(49263),p=c(18129),q=c(70718),r=c(46052),s=c(27335),t=c(4630),u=c(89865),v=c(60290),w=c(2735),x=c(12407),y=c(48400),z=c(29461),A=c(78255),B=c(15142),C=c(61229),D=c(34267),E=c(18367),F=c(27226),G=c(28190),H=c(10640),I=c(37208),J=c(16799),K=c(92),L=c(10089),M=c(91576),N=c(12197),O=c(54070),P=c(39232),Q=c(90197),R=c(43904),S=c(94501),T=c(96145),U=a([y]);y=(U.then?(await U)():U)[0];let W=new Set([h.h.GEMINI,h.h.GEMINI_CLI,h.h.ANTIGRAVITY,h.h.VERTEX]);async function V({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:U,onRequestSuccess:X,onDisconnect:Y,onUpstreamEmptyExhausted:Z,clientRawRequest:$,connectionId:_,userAgent:aa,clientKeyId:ab,ccFilterNaming:ac,rtkEnabled:ad,vaultEnabled:ae,vaultThresholdKB:af,vaultTtlHours:ag,vaultConversationId:ah,headroomEnabled:ai,headroomUrl:aj,headroomCompressUserMessages:ak,cavemanEnabled:al,cavemanLevel:am,ponytailEnabled:an,ponytailLevel:ao,pxpipeEnabled:ap,pxpipeMinChars:aq,pxpipeTimeoutMs:ar,pxpipeTransform:as,onPxpipeEvent:at,sourceFormatOverride:au,providerThinking:av,bypassNativePassthrough:aw,vaultInternal:ax,abortSignal:ay}){let az,aA,aB,aC,aD,aE;if(ay?.aborted)return(0,u.A1)(499,"Request aborted");let{provider:aF,model:aG}=b,aH=Date.now(),aI=au||(0,e.Tz)(a),aJ=[],aK=(a,b,c=aI)=>{if(aI!==h.h.CLAUDE)return;if(c!==h.h.CLAUDE)return void aJ.push({stage:a,format:c,notApplicable:!0});let d=(0,k.O)(b);d?aJ.push({stage:a,format:c,...d}):aJ.length&&aJ.push({stage:a,format:c,messageCount:b?.messages?.length||0,toolCalls:0,toolResults:0})};aK("inbound",a);let aL=(0,w.c)(a,aG,aa,ac);if(aL)return aL;let aM=s.Xg[aF]||aF,aN=(0,s.ux)(aM,aG),aO=(0,s.ez)(aM,aG),aP=aN||(0,e.jJ)(aF,c),aQ=(0,e.oF)(aF,aI,aO),aR=aQ||(0,e.oF)(aF,aP,aO),aS=aQ?.format===aI;c&&(c.runtimeTransport=aR||void 0);let aT=aS?aI:aR?.format||aP,aU=aI===h.h.CLAUDE&&(0,j.r)(a);if(aU&&aT!==h.h.CLAUDE)return(0,u.A1)(v.gx.BAD_REQUEST,"Claude provider-managed threads require a native Claude route; send full history to change providers.");if(aU&&"continue"===a.thread.type&&!(0,j.k)(a))return(0,u.A1)(v.gx.BAD_REQUEST,"Claude thread continuation requires a previous_message_id.");let aV=(0,s.cY)(aM,aG),aW=(0,s.kt)(aM,aG);if(!aU&&av?.mode&&"auto"!==av.mode){let b=av.mode;"on"!==b||a.thinking?"off"!==b||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:b}):a={...a,thinking:{type:"disabled"}}:(console.log("Injecting provider-level thinking config override: on"),a={...a,thinking:{type:"enabled",budget_tokens:1e4}})}let aX=$?.headers?.accept||"",aY=aX.includes("application/json"),aZ=aX.includes("text/event-stream"),a$=aI===h.h.ANTIGRAVITY||aI===h.h.GEMINI||aI===h.h.GEMINI_CLI,a_=!0===a.stream||a$&&!(aY&&!aZ),a0=t.xq[aF]?.forceStream===!0,a1=!!a0||!1!==a.stream,a2=(0,s.OA)(aM,aG);"imageGen"===a2&&("antigravity"===aF||"gemini-cli"===aF)&&(a1=!1);let a3=(0,F.Jz)($?.headers||{},a);"deepseek-tui"===a3&&!0!==a.stream&&(a1=!1),!aY||aZ||!0===a.stream||a0||(a1=!1),a&&"object"==typeof a&&(a={...a,stream:a1});let a4=await (0,q.q7)(aI,aT,aG);$&&a4.logClientRawRequest($.endpoint,$.body,$.headers),a4.logRawRequest(a),d?.debug?.("FORMAT",`${aI} → ${aT} | stream=${a1}`);let a5=(0,F.Jz)($?.headers||{},a);(0,F.lP)(a5,$?.headers||{},a);let a6=!aw&&((0,F.Qf)(a5,aF)||aU&&["claude","anthropic"].includes(aF));if(aU&&!a6)return(0,u.A1)(v.gx.BAD_REQUEST,"Claude provider-managed threads require a native Claude provider.");if(c&&(c.rawHeaders=$?.headers||{}),!a6){let b=(0,R.nl)(aF,aG);(0,S.X)(a,aI,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aF}/${aG}`);try{let b=await (0,T.C)(a,aI,aT,{signal:ay});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aT}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}let a7=(0,H.Ay)(a);if(a7>0&&d?.debug?.("TOOLCLEAN",`pre-translation: stripped ${a7} orphaned tool result(s)`),a6)d?.debug?.("PASSTHROUGH",`${a5} → ${aF} | native lossless`),az={...a,model:(0,g.kD)(aW)},("claude"===a5||aU)&&(0,i.ui)(az,az.model);else{if(!(az=(0,f.GH)(aI,aT,aW,a,a1,c,aF,a4,aV,_,a5)))return(0,x.uw)(aG,aF,_,!1,!0),(0,u.A1)(v.gx.BAD_REQUEST,`Failed to translate request for ${aI} → ${aT}`);if(aA=az._toolNameMap,delete az._toolNameMap,az.model=(0,g.kD)(aW),("claude"===aF||aF?.startsWith("anthropic-compatible"))&&"object"==typeof az){let a=c?.accessToken||c?.apiKey||null;if("string"==typeof a&&a.includes("sk-ant-oat"))try{let b=c?._clientSessionId||(0,M.oV)({headers:$?.headers,body:az,connectionId:_,scope:"claude"});az=await (0,L.Dz)(az,a,b,c?.connectionId||a,{})}catch{}}}if(aK("normalized",az,a6?aI:aT),!aU&&"claude"===a5&&Array.isArray(az.tools)){let{tools:a,stripped:b}=(0,G.F)(az.tools);b.length>0&&(az.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a8=a6?aI:aT;"tts"===(0,s.OA)(aM,aG)&&az.messages&&(az.messages=az.messages.filter(a=>"tool"!==a.role),delete az.tools);let a9=null;try{if(!aU&&ae&&ah&&Array.isArray(az?.tools)&&az.tools.length>0&&(aI===h.h.OPENAI||aI===h.h.CLAUDE)){let a=1024*(0,N.u1)(af??8),b=3600*Math.max(1,Number(ag??24))*1e3;a9=await (0,N.f3)(az,{conversationId:ah,thresholdBytes:a,ttlMs:b,log:d})}}catch(a){d?.warn?.("VAULT",`store failed (dropped): ${a?.message||a}`)}let ba=!aU&&$?.headers?.[v.SA]?.toLowerCase()!=="off";aK("vault",az,a8);let bb=(0,K.BI)(az,ba&&ad),bc=(0,K.fT)(bb);if(bc&&console.log(bc),a9?.vaulted>0){let a=a9.bytesBefore-a9.bytesAfter;(0,O.DL)(a9.vaulted,a),d?.info?.("VAULT",`externalized ${a9.vaulted} tool result(s), saved ${a}B`)}aK("rtk",az,a8);let bd={},be=await (0,P.SI)(az,{enabled:ba&&ai,url:aj,model:aW,format:a8,compressUserMessages:ak,diagnostics:bd}),bf=(0,P.Nv)(be),bg=(0,P.O2)(bd);bf?(d?.info?.("HEADROOM",`${bf}${bg?` | ${bg}`:""}`),(0,P.cB)(be,bd)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${bg}`)):ba&&ai&&d?.warn?.("HEADROOM",`skipped: ${bd.reason||"compression unavailable"}${bd.endpoint?` (${bd.endpoint})`:""}`),aK("headroom",az,a8);let bh=(0,H.Ay)(az);bh>0&&d?.debug?.("TOOLCLEAN",`post-compression: stripped ${bh} orphaned tool result(s)`),aK("post-strip",az,a8),ba&&al&&am&&((0,I.p)(az,a8,am),d?.debug?.("CAVEMAN",`${am} | ${a8}`)),ba&&an&&ao&&((0,J.U)(az,a8,ao),d?.debug?.("PONYTAIL",`${ao} | ${a8}`));let bi=null;if(ba&&ap){let a=await (0,Q.H)(az,{enabled:!0,format:a8,model:aW,minChars:aq,timeoutMs:ar,transform:as});bi=a.summary;let b=(0,Q._)(bi);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${bi?.reason||"unknown"}`),a.body&&(az=a.body);try{at&&at({provider:aF,model:aG,...bi})}catch{}}if(az&&"object"==typeof az)if(W.has(a8)){let{stream:a,request:b,...c}=az;if(b&&"object"==typeof b){let{stream:a,...d}=b;az={...c,request:d}}else az=c}else az.stream!==a1&&(az={...az,stream:a1});!aU&&a6&&"claude"===a5&&(0,i._W)(az);let bj=(0,y.getExecutor)(aF);(0,x.uw)(aG,aF,_,!0),ax||(0,x.E5)({model:aG,provider:aF,connectionId:_,status:"PENDING"}).catch(()=>{});let bk=az.messages?.length||az.input?.length||az.contents?.length||az.request?.contents?.length||0;d?.debug?.("REQUEST",`${aF.toUpperCase()} | ${aG} | ${bk} msgs`);let bl=(0,m.jd)({onDisconnect:a=>{(0,x.uw)(aG,aF,_,!1),Y&&Y(a)},onError:()=>(0,x.uw)(aG,aF,_,!1),log:d,provider:aF,model:aG});if(ay)if(ay.aborted)try{bl.abort()}catch{}else ay.addEventListener("abort",()=>{try{bl.abort()}catch{}},{once:!0});let bm=(0,r.$6)(c);if(bm.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=c?.providerSpecificData?.connectionProxyPoolId||"none";d?.info?.("PROXY",`${aF.toUpperCase()} | ${aG} | conn=${a} | pool=${b} | vercel-relay=${bm.vercelRelayUrl}`)}else if(bm.connectionProxyEnabled&&bm.connectionProxyUrl){let a=bm.connectionProxyUrl;try{let b=new URL(bm.connectionProxyUrl),c=b.hostname||"",d=b.port?`:${b.port}`:"",e=b.protocol||"http:";a=`${e}//${c}${d}`}catch{}let b=c?.providerSpecificData?.connectionProxyPoolId||"none",e=c?.connectionName||c?.connectionId||"unknown";d?.info?.("PROXY",`${aF.toUpperCase()} | ${aG} | conn=${e} | pool=${b} | url=${a}`)}if(bm.connectionProxyEnabled&&bm.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aF.toUpperCase()} | ${aG} | conn=${a} | no_proxy=${bm.connectionNoProxy}`)}aK("final",az,a8);let bn=(0,z.Fo)(a,a1);aJ.length&&(bn.toolHistoryDiagnostics=aJ);let bo=()=>ay?.aborted||bl.signal?.aborted,bp=async()=>{try{await aB?.body?.cancel?.()}catch{}return(0,x.uw)(aG,aF,_,!1),a4?.close?.(),(0,u.A1)(499,"Request aborted")};try{if(bo())return bp();let a=await bj.execute({model:aG,body:structuredClone(az),stream:a1,credentials:c,signal:bl.signal,log:d,proxyOptions:bm});aB=a.response,aC=a.url,aD=a.headers,aE=a.transformedBody,a4.logTargetRequest(aC,aD,aE)}catch(c){let a=bo()||c?.name==="AbortError";if((0,x.uw)(aG,aF,_,!1,!a),a4?.close?.(),(0,x.ox)((0,z.$R)({provider:aF,model:aG,connectionId:_,latency:{ttft:0,total:Date.now()-aH},tokens:{prompt_tokens:0,completion_tokens:0},request:bn,providerRequest:az||null,response:{error:c?.message||(a?"Request aborted":String(c)),status:a?499:502,thinking:null},status:"error",pxpipe:bi||void 0,rtk:bb||void 0})).catch(()=>{}),a)return bl.handleError(new DOMException("Request aborted","AbortError")),(0,u.A1)(499,"Request aborted");let b=(0,u.lR)(c,aF,aG,v.gx.BAD_GATEWAY);return console.log(`${l.lm.red}[ERROR] ${b}${l.lm.reset}`),(0,u.A1)(v.gx.BAD_GATEWAY,b)}if(bo())return bp();let bq=null;if(!bj.noAuth&&(aB.status===v.gx.UNAUTHORIZED||aB.status===v.gx.FORBIDDEN))try{let a=await (0,n.qZ)(async()=>{bl.signal?.throwIfAborted();let a=await (0,p.MF)(aF,c,()=>bj.refreshCredentials(c,d,bm));return a||bl.signal?.throwIfAborted(),a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,d,bl.signal);if(a?.accessToken||a?.copilotToken){if(d?.info?.("TOKEN",`${aF.toUpperCase()} | refreshed`),Object.assign(c,a),U)try{await U(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}if(bo())return bp();try{let a=await bj.execute({model:aG,body:structuredClone(az),stream:a1,credentials:c,signal:bl.signal,log:d,proxyOptions:bm});try{await aB.body?.cancel?.()}catch{}aB=a.response,aC=a.url,aD=a.headers??aD,aE=a.transformedBody??aE,a4.logTargetRequest(aC,aD,aE)}catch{d?.warn?.("TOKEN",`${aF.toUpperCase()} | retry after refresh failed`)}}else if((0,n.jT)(a)){let b=a.code||"invalid_grant";if(bq=`OAuth refresh token expired or revoked (${b}): reconnect the ${aF} account in the Switchboard dashboard`,d?.warn?.("TOKEN",`${aF.toUpperCase()} | refresh token revoked, re-auth required (${b})`),U)try{await U({reauthRequired:!0,testStatus:o.RU,lastError:bq,lastErrorAt:new Date().toISOString()})}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}}else d?.warn?.("TOKEN",`${aF.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aF.toUpperCase()} | refresh threw: ${a.message}`)}if(bo())return bp();if(!aB.ok){(0,x.uw)(aG,aF,_,!1,!0),a4?.close?.();let{statusCode:a,message:b,resetsAtMs:c}=await (0,u.zL)(aB,bj),d=bq||b;(0,x.ox)((0,z.$R)({provider:aF,model:aG,connectionId:_,latency:{ttft:0,total:Date.now()-aH},tokens:{prompt_tokens:0,completion_tokens:0},request:bn,providerRequest:aE||az||null,response:{error:d,status:a,thinking:null},status:"error",pxpipe:bi||void 0,rtk:bb||void 0})).catch(()=>{});let e=(0,u.lR)(Error(d),aF,aG,a);return console.log(`${l.lm.red}[ERROR] ${e}${l.lm.reset}`),a4.logError(Error(d),aE||az),(0,u.A1)(a,e,c)}let br=async()=>{bl.signal?.throwIfAborted();let a=await bj.execute({model:aG,body:structuredClone(az),stream:a1,credentials:c,signal:bl.signal,log:d,proxyOptions:bm});if(bo()){try{await a.response.body?.cancel?.()}catch{}throw new DOMException("Request aborted","AbortError")}if(!a.response.ok){let{statusCode:b,message:c}=await (0,u.zL)(a.response,bj);throw Error(`[${b}] ${c}`)}if(!a.response.body)throw Error("upstream returned no body");return a.response.body},bs="antigravity"===aF||"gemini-cli"===aF||"gemini"===aF||"vertex"===aF;bs&&a1&&aB.body?aB=new Response((0,D.gH)({body:aB.body,reexecute:br,signal:bl.signal,log:d,onExhausted:(a,{upstreamError:b}={})=>{if(!Z)return;let c=bj.parseRetryFromErrorMessage?.(b?.message||a);return Z((0,u.lR)(Error(a),aF,aG,v.gx.BAD_GATEWAY),c?Date.now()+c:void 0)}}),{status:aB.status,headers:aB.headers}):a1&&aB.body&&(aB=new Response((0,E.Z)({body:aB.body,reexecute:br,signal:bl.signal,log:d,maxRetries:+("claude"!==aF)}),{status:aB.status,headers:aB.headers}));let bt=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,bu={provider:aF,model:aG,body:a,stream:a1,requestConfig:bn,translatedBody:az,finalBody:aE,requestStartTime:aH,connectionId:_,clientKeyId:ab,clientRawRequest:$,onRequestSuccess:X,requestId:bt,pxpipe:bi||void 0,streamSignal:bl.signal},bv=a=>{ax||(0,x.E5)({model:aG,provider:aF,connectionId:_,...a}).catch(()=>{})},bw=()=>(0,x.uw)(aG,aF,_,!1);if(!a_&&a0){let a=await (0,A.I)({...bu,providerResponse:aB,sourceFormat:aI,targetFormat:aT,trackDone:bw,appendLog:bv});if(a)return bl.handleComplete(),a}if(!a1){let a=await (0,B.N)({...bu,providerResponse:aB,sourceFormat:aI,targetFormat:aT,reqLogger:a4,toolNameMap:aA,trackDone:bw,appendLog:bv});return bl.handleComplete(),a}let{onStreamComplete:bx,onStreamFailure:by,streamDetailId:bz}=(0,C.$)({...bu});return(0,C.M)({...bu,providerResponse:aB,sourceFormat:aI,targetFormat:aT,userAgent:aa,reqLogger:a4,toolNameMap:aA,streamController:bl,onStreamComplete:bx,onStreamFailure:by,streamDetailId:bz,firstChunkTimeoutMs:bs?void 0:0})}d()}catch(a){d(a)}})},37208:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(17429);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",j="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",k='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',l='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.',m={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h,i,j,k,l].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h,i,j,k,l].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h,i,j,k,l].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h,i,j,k,l].join(" ")};function n(a,b,c){(0,d.J)(a,b,m[c])}},39232:(a,b,c)=>{c.d(b,{Nv:()=>l,O2:()=>m,SI:()=>k,cB:()=>n});var d=c(37377),e=c(29229),f=c(97579);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=Array.isArray(a?.messages)?a.messages:Array.isArray(a?.input)?a.input:null,c=b?.filter(a=>a?.role==="tool"||a?.role==="function"||a?.tool_calls?.length||a?.content?.some?.(a=>a?.type==="tool_use"||a?.type==="tool_result"))||[];return{bodyBytes:g(a),messageBytes:b?g(b):0,toolSchemaBytes:g(a?.tools||[]),toolHistoryBytes:g(c)}}function i(a,b){a&&!a.reason&&(a.reason=b)}async function j(a,b,c,d,e,f){let g,h=function(a){try{let b=new URL(a);return b.pathname=`${b.pathname.replace(/\/$/,"")}/v1/compress`,b.hash="",b.toString()}catch{let[b,c=""]=String(a).replace(/#.*$/,"").split("?",2),d=`${b.replace(/\/$/,"")}/v1/compress`;return c?`${d}?${c}`:d}}(a);f.endpoint=function(a){try{let b=new URL(a);return b.username="",b.password="",b.search="",b.hash="",b.toString()}catch{return String(a).replace(/\/\/[^/@\s]+@/,"//").replace(/[?#].*$/,"")}}(h);let j={messages:b,model:c};e&&(j.config={compress_user_messages:!0});try{g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j),signal:AbortSignal.timeout(d)})}catch(d){var k;let a,b,c;return i(f,`request failed: ${(k=d,a=k?.cause,b=a?.code||k?.code,c=String(a?.message||k?.message||String(k)).replace(/\/\/[^/@\s]+@/g,"//").replace(/(https?:\/\/[^\s?#]+)[?#][^\s)]*/g,"$1"),b?`${b}: ${c}`:c)}`),null}if(!g.ok)return i(f,`proxy returned HTTP ${g.status}`),null;let l=await g.json();return Array.isArray(l?.messages)?l:(i(f,"proxy response missing messages[]"),null)}async function k(a,{enabled:b,url:c,model:g,format:l,compressUserMessages:m,timeoutMs:n=3e3,diagnostics:o=null}={}){if(!b)return i(o,"disabled"),null;if(!c)return i(o,"missing proxy URL"),null;if(!a)return i(o,"missing request body"),null;try{if(o&&(o.before=h(a)),"claude"===l){let b=Array.isArray(a.system)&&a.system[0]?.text?.startsWith?.("x-anthropic-billing-header:")?a.system[0]:null,f=(0,d.t)(g,a,!1);if(!Array.isArray(f?.messages))return i(o,"Claude request did not translate to messages[]"),null;let k=await j(c,f.messages,g,n,m,o||{});if(!k)return null;let l=(0,e.p)(g,{...f,messages:k.messages},!1);return Array.isArray(l?.messages)&&(a.messages=l.messages),l?.system!==void 0&&(a.system=b?[b,...Array.isArray(l.system)?l.system:[{type:"text",text:String(l.system)}]]:l.system),o&&(o.after=h(a)),k}if("openai-responses"===l){if(Array.isArray(a?.input)&&a.input.some(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.type&&"message"!==a.type))return i(o,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Zj)(g,a,!1);if(!Array.isArray(b?.messages))return null;let d=await j(c,b.messages,g,n,m,o||{});if(!d)return null;let e=(0,f.h_)(g,{...b,input:void 0,messages:d.messages},!1);return Array.isArray(e?.input)&&(a.input=e.input),o&&(o.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(o,`unsupported ${l||"unknown"} request shape`),null;let k=await j(c,a[b],g,n,m,o||{});if(!k)return null;return a[b]=k.messages,o&&(o.after=h(a)),k}catch(a){return i(o,`unexpected error: ${a?.message||String(a)}`),null}}function l(a){if(!a)return null;let b=a.tokens_before||0,c=a.tokens_after||0,d=a.tokens_saved||0,e=b>0?(d/b*100).toFixed(1):"0";return`reported token delta=${d} before=${b}${c?` after=${c}`:""} (${e}%)`.trim()}function m(a){let b=a?.before,c=a?.after;if(!b||!c)return"";let d=b.bodyBytes>0?((b.bodyBytes-c.bodyBytes)/b.bodyBytes*100).toFixed(1):"0.0";return`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B tools=${b.toolSchemaBytes||0}B→${c.toolSchemaBytes||0}B toolHistory=${b.toolHistoryBytes||0}B→${c.toolHistoryBytes||0}B effective=${d}%`}function n(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},49612:(a,b,c)=>{c.d(b,{g:()=>l,p:()=>m});var d=c(19956),e=c(98173),f=c(57642);function g(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function h(a){return a?.choices?.[0]||{}}function i(a){return h(a).message||{}}function j(a){let b=i(a).tool_calls;return Array.isArray(b)?b:[]}function k(a){let b=a||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0,e={prompt_tokens:c,completion_tokens:d,total_tokens:b.total_tokens||c+d},f=b.prompt_tokens_details||{},g=b.input_tokens_details||{},h=f.cached_tokens||g.cached_tokens||b.cache_read_input_tokens||0,i=f.cache_creation_tokens||g.cache_creation_tokens||b.cache_creation_input_tokens||0;(h>0||i>0)&&(e.prompt_tokens_details={},h>0&&(e.prompt_tokens_details.cached_tokens=h),i>0&&(e.prompt_tokens_details.cache_creation_tokens=i));let j=b.completion_tokens_details||{},k=b.output_tokens_details||{},l=j.reasoning_tokens||k.reasoning_tokens||0;return l>0&&(e.completion_tokens_details={reasoning_tokens:l}),e}function l(a,b){let c,d=Array.isArray(a?.output)?a.output:[],e=d.filter(a=>a?.type==="reasoning").flatMap(a=>Array.isArray(a.summary)?a.summary:[]).map(a=>a?.text||"").join(""),f=d.filter(a=>a?.type==="message"),g=[...f].reverse().find(a=>(Array.isArray(a.content)?a.content:[]).some(a=>"string"==typeof a.text&&a.text.length>0))||f[f.length-1]||null,h=d.filter(a=>a?.type==="refusal").map(a=>a?.refusal||"").join(""),i=(Array.isArray(g?.content)?g.content:[]).map(a=>("output_text"===a.type||"refusal"===a.type||"string"==typeof a.text)&&(a.text||a.refusal)||"").join("")||h,j=d.filter(a=>a?.type==="function_call"||a?.type==="custom_tool_call").map((a,b)=>({id:a.call_id||`call_${a.name||"tool"}_${b}`,type:"function",function:{name:a.name||"",arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??a.input??{})}})),l=a?.usage||{},m={role:"assistant",content:i||(j.length>0?null:"")};if(e&&(m.reasoning_content=e),j.length>0&&(m.tool_calls=j),j.length>0)c="tool_calls";else if(h&&""===i.split(h).join("").trim())c="content_filter";else{let b=a?.status;c="completed"===b||"done"===b?"stop":"failed"===b?"error":"incomplete"===b?a?.incomplete_details?.reason==="content_filter"?"content_filter":"length":"stop"}return{id:a?.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||b||"unknown",choices:[{index:0,message:m,finish_reason:c}],usage:k(l)}}function m(a,b){switch(b){case d.h.CLAUDE:return function(a){let b,c,f,k,l,m;if(!a?.choices?.[0])return a;let n=h(a),o=i(a),p=[],q=o.reasoning_content||o.provider_specific_fields?.reasoning_content||"";for(let b of(q&&p.push({type:"thinking",thinking:q}),"string"==typeof o.content&&o.content.length>0&&p.push({type:"text",text:o.content}),j(a))){let a=b.function||{};p.push({type:"tool_use",id:b.id||`toolu_${Date.now()}_${p.length}`,name:a.name||b.name||"",input:g(a.arguments||b.arguments)})}0===p.length&&p.push({type:"text",text:""});let r=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:p,stop_reason:(0,e.Q)(n.finish_reason,d.h.CLAUDE),stop_sequence:null,usage:(c={input_tokens:(b=r||{}).prompt_tokens||b.input_tokens||0,output_tokens:b.completion_tokens||b.output_tokens||0},f=b.prompt_tokens_details||{},k=b.input_tokens_details||{},l=f.cached_tokens||k.cached_tokens||b.cache_read_input_tokens||0,m=f.cache_creation_tokens||k.cache_creation_tokens||b.cache_creation_input_tokens||0,l>0&&(c.cache_read_input_tokens=l),m>0&&(c.cache_creation_input_tokens=m),c)}}(a);case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.ANTIGRAVITY:case d.h.VERTEX:return function(a){if(!a?.choices?.[0])return a;let b=i(a),c=k(a.usage||{}),d=[],e=b.reasoning_content||b.provider_specific_fields?.reasoning_content||"";for(let c of(e&&d.push({text:e,thought:!0}),"string"==typeof b.content&&b.content.length>0&&d.push({text:b.content}),j(a))){let a=c.function||{};d.push({functionCall:{name:a.name||c.name||"",args:g(a.arguments||c.arguments)}})}return 0===d.length&&d.push({text:""}),{response:{candidates:[{content:{role:"model",parts:d},finishReason:function(a){switch(a){case f.bC.LENGTH:return f.a_.MAX_TOKENS;case f.bC.CONTENT_FILTER:return f.a_.SAFETY;case f.bC.ERROR:return f.a_.MALFORMED_FUNCTION_CALL;default:return f.a_.STOP}}(h(a).finish_reason),index:0}],usageMetadata:{promptTokenCount:c.prompt_tokens,candidatesTokenCount:c.completion_tokens,totalTokenCount:c.total_tokens},modelVersion:a.model||"unknown",responseId:a.id||`resp_${Date.now()}`}}}(a);case d.h.OLLAMA:return function(a){if(!a?.choices?.[0])return a;let b=h(a),c=i(a),d={role:"assistant",content:"string"==typeof c.content?c.content:""};c.reasoning_content&&(d.thinking=c.reasoning_content);let e=j(a).map(a=>{let b=a.function||{};return{id:a.id,function:{name:b.name||a.name||"",arguments:g(b.arguments||a.arguments)}}});e.length>0&&(d.tool_calls=e);let f=a.usage||{};return{model:a.model||"unknown",created_at:a.created?new Date(1e3*a.created).toISOString():new Date().toISOString(),message:d,done:!0,done_reason:"tool_calls"===b.finish_reason?"stop":b.finish_reason||"stop",prompt_eval_count:f.prompt_tokens||f.input_tokens||0,eval_count:f.completion_tokens||f.output_tokens||0}}(a);case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:return function(a){let b;if(!a?.choices?.[0])return a;let c=i(a),d=a.usage||{},e=[],f=0,g=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";g&&(e.push({type:"reasoning",id:`rs_${a.id||Date.now()}_${f}`,summary:[{type:"summary_text",text:g}]}),f++);let l="string"==typeof c.content?c.content:"";l&&(e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:l,annotations:[],logprobs:[]}]}),f++);let m=j(a);if(m.length>0)for(let a of m){let b=a.function||{},c=a.id||`call_${b.name||"tool"}_${f}`;e.push({type:"function_call",id:`fc_${c}`,call_id:c,name:b.name||a.name||"",arguments:"string"==typeof b.arguments?b.arguments:JSON.stringify(b.arguments||{})}),f++}else l||g||e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:"",annotations:[],logprobs:[]}]});let n=h(a).finish_reason||"stop",o="completed";"length"===n?(o="incomplete",b={reason:"max_output_tokens"}):"content_filter"===n?(o="incomplete",b={reason:"content_filter"}):"error"===n&&(o="failed");let p=k(d);return{id:a.id?`resp_${a.id}`:`resp_${Date.now()}`,object:"response",created_at:a.created||Math.floor(Date.now()/1e3),status:o,...b?{incomplete_details:b}:{},output:e,usage:{input_tokens:p.prompt_tokens,output_tokens:p.completion_tokens,total_tokens:p.total_tokens}}}(a);case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:default:return a}}},54070:(a,b,c)=>{c.d(b,{DL:()=>g,VS:()=>h,_s:()=>i});let d=global.__vaultStats??={entries:0,hits:0,bytesSaved:0};function e(a){try{let b=Number(a);if(!Number.isFinite(b)||b<0)return 0;return Math.trunc(b)}catch{return 0}}function f(a,b){try{let c=e(d[a])+e(b);d[a]=Number.isSafeInteger(c)?c:Number.MAX_SAFE_INTEGER}catch{}}function g(a,b){try{f("entries",a),f("bytesSaved",b)}catch{}}function h(a=1){try{f("hits",a)}catch{}}function i(){try{return{entries:e(d.entries),hits:e(d.hits),bytesSaved:e(d.bytesSaved)}}catch{return{entries:0,hits:0,bytesSaved:0}}}},61229:(a,b,c)=>{c.d(b,{$:()=>p,M:()=>o});var d=c(19956),e=c(48664),f=c(78638),g=c(15575),h=c(4630),i=c(60290),j=c(48330),k=c(29461),l=c(12407),m=c(4905);let n={[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};async function o({providerResponse:a,provider:b,model:c,sourceFormat:p,targetFormat:q,userAgent:r,body:s,stream:t,requestConfig:u,translatedBody:v,finalBody:w,requestStartTime:x,connectionId:y,clientKeyId:z,requestId:A,clientRawRequest:B,onRequestSuccess:C,reqLogger:D,toolNameMap:E,streamController:F,onStreamComplete:G,onStreamFailure:H,streamDetailId:I,pxpipe:J,firstChunkTimeoutMs:K=i.Z1,firstProgressTimeoutMs:L=i.Z1,progressStallTimeoutMs:M=i.xM}){let N=(a.headers.get("content-type")||"").toLowerCase();if((N.includes("application/x-ndjson")||N.includes("application/ndjson"))&&a.body){let b,c,d,e;a=new Response(a.body.pipeThrough((b=new TextDecoder,c=new TextEncoder,d="",new TransformStream({transform(a,e){let f=(d+=b.decode(a,{stream:!0})).split("\n");for(let a of(d=f.pop()||"",f)){let b=a.trim();if(b){if(b.startsWith("data:")||b.startsWith("event:")){e.enqueue(c.encode(a+"\n"));continue}try{JSON.parse(b),e.enqueue(c.encode(`data: ${b}
|
|
59
|
+
`),s()};for(let a=0;;a++){let e=new TextDecoder,j="",k=null,n=!1,o="empty",p=Date.now(),v=!1,w=null,x=()=>{w&&(clearInterval(w),w=null)};h>0&&(w=setInterval(()=>{if(Date.now()-p>=h){v=!0;try{l.cancel().catch(()=>{})}catch{}}},Math.min(h,5e3)));try{for(;;){let a;if(m)return;if(c?.aborted)return t();try{a=await l.read()}catch{if(m)return;if(c?.aborted)return t();o=v?"stall":"read_error";break}if(m)return;if(c?.aborted)return t();if(v){o="stall";break}p=Date.now();let{done:b,value:g}=a;if(b)break;let h=(j+=e.decode(g,{stream:!0})).split("\n");for(let a of(j=h.pop(),h)){let b;if(k)continue;let c=a.trim();if(!c.startsWith("data:")){await r(a+"\n");continue}let e=c.slice(5).trim();if(!e||"[DONE]"===e){await r(a+"\n");continue}try{b=JSON.parse(e)}catch{await r(a+"\n");continue}let g=function(a,b){let c=a.response||a;if(!c||"object"!=typeof c)return{action:"forward"};let e=c.error||a.error;if(e)return b?{action:"forward",terminal:!0}:{action:"hold",kind:"error_object",reason:e.status||e.message||"error",error:e};if(!c.candidates?.length&&c.promptFeedback?.blockReason)return{action:"forward",terminal:!0};let f=c.candidates?.[0];if(!f)return{action:"forward"};let g=!1;for(let a of f.content?.parts||[])if(a.functionCall||a.inlineData?.data||a.inline_data?.data||!0!==a.thought&&"string"==typeof a.text&&a.text.trim().length>0){g=!0;break}let h=f.finishReason&&String(f.finishReason).toUpperCase();return h?d.zh.has(h)||h===d.a_.MAX_TOKENS||g||b?{action:"forward",meaningful:g,terminal:!0}:{action:"hold",kind:d.lW.has(h)?"error_finish":"stop",reason:h}:{action:"forward",meaningful:g}}(b,f);if(g.meaningful&&(f=!0),"hold"===g.action){q=k={kind:g.kind,reason:g.reason,error:g.error||null,line:a};continue}g.terminal&&(n=!0),await r(a+"\n")}}}finally{x()}if(f||n){let a=j+e.decode();!k&&a&&await r(a),s();return}let y=k?k.reason:o;if(g?.warn?.("STREAM",`ANTIGRAVITY | empty (${y}) | attempt ${a+1}/3`),a>=2)return u(`empty response from upstream (${y}) after ${a+1} attempts`);if(await function(a,b){return new Promise(c=>{let d,e=()=>{clearTimeout(d),c()};d=setTimeout(()=>{a?.removeEventListener?.("abort",e),c()},b),a?.addEventListener?.("abort",e,{once:!0})})}(c,i*2**a),m)return;if(c?.aborted)return t();try{let a=await b();if(m||c?.aborted){try{await a.cancel()}catch{}m||t();return}l=a.getReader()}catch(a){if(m)return;if(a?.name==="AbortError"||c?.aborted)return t();return u(a?.message||"retry request failed")}}},pull(){p()},cancel(a){m=!0,p();try{l?.cancel(a)?.catch?.(()=>{})}catch{}}})}},36362:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>V});var e=c(17717),f=c(48664),g=c(94454),h=c(19956),i=c(43788),j=c(5425),k=c(71413),l=c(78638),m=c(15575),n=c(41029),o=c(49263),p=c(18129),q=c(70718),r=c(46052),s=c(27335),t=c(4630),u=c(89865),v=c(60290),w=c(2735),x=c(12407),y=c(48400),z=c(29461),A=c(78255),B=c(15142),C=c(61229),D=c(34267),E=c(18367),F=c(27226),G=c(28190),H=c(10640),I=c(37208),J=c(16799),K=c(92),L=c(10089),M=c(91576),N=c(12197),O=c(54070),P=c(39232),Q=c(90197),R=c(43904),S=c(94501),T=c(96145),U=a([y]);y=(U.then?(await U)():U)[0];let W=new Set([h.h.GEMINI,h.h.GEMINI_CLI,h.h.ANTIGRAVITY,h.h.VERTEX]);async function V({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:U,onRequestSuccess:X,onDisconnect:Y,onUpstreamEmptyExhausted:Z,clientRawRequest:$,connectionId:_,userAgent:aa,clientKeyId:ab,ccFilterNaming:ac,rtkEnabled:ad,vaultEnabled:ae,vaultThresholdKB:af,vaultTtlHours:ag,vaultConversationId:ah,headroomEnabled:ai,headroomUrl:aj,headroomCompressUserMessages:ak,cavemanEnabled:al,cavemanLevel:am,ponytailEnabled:an,ponytailLevel:ao,pxpipeEnabled:ap,pxpipeMinChars:aq,pxpipeTimeoutMs:ar,pxpipeTransform:as,onPxpipeEvent:at,sourceFormatOverride:au,providerThinking:av,bypassNativePassthrough:aw,vaultInternal:ax,abortSignal:ay}){let az,aA,aB,aC,aD,aE;if(ay?.aborted)return(0,u.A1)(499,"Request aborted");let{provider:aF,model:aG}=b,aH=Date.now(),aI=au||(0,e.Tz)(a),aJ=[],aK=(a,b,c=aI)=>{if(aI!==h.h.CLAUDE)return;if(c!==h.h.CLAUDE)return void aJ.push({stage:a,format:c,notApplicable:!0});let d=(0,k.O)(b);d?aJ.push({stage:a,format:c,...d}):aJ.length&&aJ.push({stage:a,format:c,messageCount:b?.messages?.length||0,toolCalls:0,toolResults:0})};aK("inbound",a);let aL=(0,w.c)(a,aG,aa,ac);if(aL)return aL;let aM=s.Xg[aF]||aF,aN=(0,s.ux)(aM,aG),aO=(0,s.ez)(aM,aG),aP=aN||(0,e.jJ)(aF,c),aQ=(0,e.oF)(aF,aI,aO),aR=aQ||(0,e.oF)(aF,aP,aO),aS=aQ?.format===aI;c&&(c.runtimeTransport=aR||void 0);let aT=aS?aI:aR?.format||aP,aU=aI===h.h.CLAUDE&&(0,j.r)(a);if(aU&&aT!==h.h.CLAUDE)return(0,u.A1)(v.gx.BAD_REQUEST,"Claude provider-managed threads require a native Claude route; send full history to change providers.");if(aU&&"continue"===a.thread.type&&!(0,j.k)(a))return(0,u.A1)(v.gx.BAD_REQUEST,"Claude thread continuation requires a previous_message_id.");let aV=(0,s.cY)(aM,aG),aW=(0,s.kt)(aM,aG);if(!aU&&av?.mode&&"auto"!==av.mode){let b=av.mode;"on"!==b||a.thinking?"off"!==b||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:b}):a={...a,thinking:{type:"disabled"}}:(console.log("Injecting provider-level thinking config override: on"),a={...a,thinking:{type:"enabled",budget_tokens:1e4}})}let aX=$?.headers?.accept||"",aY=aX.includes("application/json"),aZ=aX.includes("text/event-stream"),a$=aI===h.h.ANTIGRAVITY||aI===h.h.GEMINI||aI===h.h.GEMINI_CLI,a_=!0===a.stream||a$&&!(aY&&!aZ),a0=t.xq[aF]?.forceStream===!0,a1=!!a0||!1!==a.stream,a2=(0,s.OA)(aM,aG);"imageGen"===a2&&("antigravity"===aF||"gemini-cli"===aF)&&(a1=!1);let a3=(0,F.Jz)($?.headers||{},a);"deepseek-tui"===a3&&!0!==a.stream&&(a1=!1),!aY||aZ||!0===a.stream||a0||(a1=!1),a&&"object"==typeof a&&(a={...a,stream:a1});let a4=await (0,q.q7)(aI,aT,aG);$&&a4.logClientRawRequest($.endpoint,$.body,$.headers),a4.logRawRequest(a),d?.debug?.("FORMAT",`${aI} → ${aT} | stream=${a1}`);let a5=(0,F.Jz)($?.headers||{},a);(0,F.lP)(a5,$?.headers||{},a);let a6=!aw&&((0,F.Qf)(a5,aF)||aU&&["claude","anthropic"].includes(aF));if(aU&&!a6)return(0,u.A1)(v.gx.BAD_REQUEST,"Claude provider-managed threads require a native Claude provider.");let a7=a6&&aI===h.h.CLAUDE&&a?.safeguards!==void 0,a8=aU||a7;if(c&&(c.rawHeaders=$?.headers||{}),!a6){let b=(0,R.nl)(aF,aG);(0,S.X)(a,aI,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aF}/${aG}`);try{let b=await (0,T.C)(a,aI,aT,{signal:ay});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aT}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}let a9=(0,H.Ay)(a);if(a9>0&&d?.debug?.("TOOLCLEAN",`pre-translation: stripped ${a9} orphaned tool result(s)`),a6)d?.debug?.("PASSTHROUGH",`${a5} → ${aF} | native lossless`),az={...a,model:(0,g.kD)(aW)},("claude"===a5||aU)&&(0,i.ui)(az,az.model);else{if(!(az=(0,f.GH)(aI,aT,aW,a,a1,c,aF,a4,aV,_,a5)))return(0,x.uw)(aG,aF,_,!1,!0),(0,u.A1)(v.gx.BAD_REQUEST,`Failed to translate request for ${aI} → ${aT}`);if(aA=az._toolNameMap,delete az._toolNameMap,az.model=(0,g.kD)(aW),("claude"===aF||aF?.startsWith("anthropic-compatible"))&&"object"==typeof az){let a=c?.accessToken||c?.apiKey||null;if("string"==typeof a&&a.includes("sk-ant-oat"))try{let b=c?._clientSessionId||(0,M.oV)({headers:$?.headers,body:az,connectionId:_,scope:"claude"});az=await (0,L.Dz)(az,a,b,c?.connectionId||a,{})}catch{}}}if(aK("normalized",az,a6?aI:aT),!a8&&"claude"===a5&&Array.isArray(az.tools)){let{tools:a,stripped:b}=(0,G.F)(az.tools);b.length>0&&(az.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let ba=a6?aI:aT;"tts"===(0,s.OA)(aM,aG)&&az.messages&&(az.messages=az.messages.filter(a=>"tool"!==a.role),delete az.tools);let bb=null;try{if(!a8&&ae&&ah&&Array.isArray(az?.tools)&&az.tools.length>0&&(aI===h.h.OPENAI||aI===h.h.CLAUDE)){let a=1024*(0,N.u1)(af??8),b=3600*Math.max(1,Number(ag??24))*1e3;bb=await (0,N.f3)(az,{conversationId:ah,thresholdBytes:a,ttlMs:b,log:d})}}catch(a){d?.warn?.("VAULT",`store failed (dropped): ${a?.message||a}`)}let bc=!a8&&$?.headers?.[v.SA]?.toLowerCase()!=="off";aK("vault",az,ba);let bd=(0,K.BI)(az,bc&&ad),be=(0,K.fT)(bd);if(be&&console.log(be),bb?.vaulted>0){let a=bb.bytesBefore-bb.bytesAfter;(0,O.DL)(bb.vaulted,a),d?.info?.("VAULT",`externalized ${bb.vaulted} tool result(s), saved ${a}B`)}aK("rtk",az,ba);let bf={},bg=await (0,P.SI)(az,{enabled:bc&&ai,url:aj,model:aW,format:ba,compressUserMessages:ak,diagnostics:bf}),bh=(0,P.Nv)(bg),bi=(0,P.O2)(bf);bh?(d?.info?.("HEADROOM",`${bh}${bi?` | ${bi}`:""}`),(0,P.cB)(bg,bf)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${bi}`)):bc&&ai&&d?.warn?.("HEADROOM",`skipped: ${bf.reason||"compression unavailable"}${bf.endpoint?` (${bf.endpoint})`:""}`),aK("headroom",az,ba);let bj=(0,H.Ay)(az);bj>0&&d?.debug?.("TOOLCLEAN",`post-compression: stripped ${bj} orphaned tool result(s)`),aK("post-strip",az,ba),bc&&al&&am&&((0,I.p)(az,ba,am),d?.debug?.("CAVEMAN",`${am} | ${ba}`)),bc&&an&&ao&&((0,J.U)(az,ba,ao),d?.debug?.("PONYTAIL",`${ao} | ${ba}`));let bk=null;if(bc&&ap){let a=await (0,Q.H)(az,{enabled:!0,format:ba,model:aW,minChars:aq,timeoutMs:ar,transform:as});bk=a.summary;let b=(0,Q._)(bk);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${bk?.reason||"unknown"}`),a.body&&(az=a.body);try{at&&at({provider:aF,model:aG,...bk})}catch{}}if(az&&"object"==typeof az)if(W.has(ba)){let{stream:a,request:b,...c}=az;if(b&&"object"==typeof b){let{stream:a,...d}=b;az={...c,request:d}}else az=c}else az.stream!==a1&&(az={...az,stream:a1});!a8&&a6&&"claude"===a5&&(0,i._W)(az);let bl=(0,y.getExecutor)(aF);(0,x.uw)(aG,aF,_,!0),ax||(0,x.E5)({model:aG,provider:aF,connectionId:_,status:"PENDING"}).catch(()=>{});let bm=az.messages?.length||az.input?.length||az.contents?.length||az.request?.contents?.length||0;d?.debug?.("REQUEST",`${aF.toUpperCase()} | ${aG} | ${bm} msgs`);let bn=(0,m.jd)({onDisconnect:a=>{(0,x.uw)(aG,aF,_,!1),Y&&Y(a)},onError:()=>(0,x.uw)(aG,aF,_,!1),log:d,provider:aF,model:aG});if(ay)if(ay.aborted)try{bn.abort()}catch{}else ay.addEventListener("abort",()=>{try{bn.abort()}catch{}},{once:!0});let bo=(0,r.$6)(c);if(bo.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=c?.providerSpecificData?.connectionProxyPoolId||"none";d?.info?.("PROXY",`${aF.toUpperCase()} | ${aG} | conn=${a} | pool=${b} | vercel-relay=${bo.vercelRelayUrl}`)}else if(bo.connectionProxyEnabled&&bo.connectionProxyUrl){let a=bo.connectionProxyUrl;try{let b=new URL(bo.connectionProxyUrl),c=b.hostname||"",d=b.port?`:${b.port}`:"",e=b.protocol||"http:";a=`${e}//${c}${d}`}catch{}let b=c?.providerSpecificData?.connectionProxyPoolId||"none",e=c?.connectionName||c?.connectionId||"unknown";d?.info?.("PROXY",`${aF.toUpperCase()} | ${aG} | conn=${e} | pool=${b} | url=${a}`)}if(bo.connectionProxyEnabled&&bo.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aF.toUpperCase()} | ${aG} | conn=${a} | no_proxy=${bo.connectionNoProxy}`)}aK("final",az,ba);let bp=(0,z.Fo)(a,a1);aJ.length&&(bp.toolHistoryDiagnostics=aJ);let bq=()=>ay?.aborted||bn.signal?.aborted,br=async()=>{try{await aB?.body?.cancel?.()}catch{}return(0,x.uw)(aG,aF,_,!1),a4?.close?.(),(0,u.A1)(499,"Request aborted")};try{if(bq())return br();let a=await bl.execute({model:aG,body:structuredClone(az),stream:a1,credentials:c,signal:bn.signal,log:d,proxyOptions:bo});aB=a.response,aC=a.url,aD=a.headers,aE=a.transformedBody,a4.logTargetRequest(aC,aD,aE)}catch(c){let a=bq()||c?.name==="AbortError";if((0,x.uw)(aG,aF,_,!1,!a),a4?.close?.(),(0,x.ox)((0,z.$R)({provider:aF,model:aG,connectionId:_,latency:{ttft:0,total:Date.now()-aH},tokens:{prompt_tokens:0,completion_tokens:0},request:bp,providerRequest:az||null,response:{error:c?.message||(a?"Request aborted":String(c)),status:a?499:502,thinking:null},status:"error",pxpipe:bk||void 0,rtk:bd||void 0})).catch(()=>{}),a)return bn.handleError(new DOMException("Request aborted","AbortError")),(0,u.A1)(499,"Request aborted");let b=(0,u.lR)(c,aF,aG,v.gx.BAD_GATEWAY);return console.log(`${l.lm.red}[ERROR] ${b}${l.lm.reset}`),(0,u.A1)(v.gx.BAD_GATEWAY,b)}if(bq())return br();let bs=null;if(!bl.noAuth&&(aB.status===v.gx.UNAUTHORIZED||aB.status===v.gx.FORBIDDEN))try{let a=await (0,n.qZ)(async()=>{bn.signal?.throwIfAborted();let a=await (0,p.MF)(aF,c,()=>bl.refreshCredentials(c,d,bo));return a||bn.signal?.throwIfAborted(),a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,d,bn.signal);if(a?.accessToken||a?.copilotToken){if(d?.info?.("TOKEN",`${aF.toUpperCase()} | refreshed`),Object.assign(c,a),U)try{await U(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}if(bq())return br();try{let a=await bl.execute({model:aG,body:structuredClone(az),stream:a1,credentials:c,signal:bn.signal,log:d,proxyOptions:bo});try{await aB.body?.cancel?.()}catch{}aB=a.response,aC=a.url,aD=a.headers??aD,aE=a.transformedBody??aE,a4.logTargetRequest(aC,aD,aE)}catch{d?.warn?.("TOKEN",`${aF.toUpperCase()} | retry after refresh failed`)}}else if((0,n.jT)(a)){let b=a.code||"invalid_grant";if(bs=`OAuth refresh token expired or revoked (${b}): reconnect the ${aF} account in the Switchboard dashboard`,d?.warn?.("TOKEN",`${aF.toUpperCase()} | refresh token revoked, re-auth required (${b})`),U)try{await U({reauthRequired:!0,testStatus:o.RU,lastError:bs,lastErrorAt:new Date().toISOString()})}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}}else d?.warn?.("TOKEN",`${aF.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aF.toUpperCase()} | refresh threw: ${a.message}`)}if(bq())return br();if(!aB.ok){(0,x.uw)(aG,aF,_,!1,!0),a4?.close?.();let{statusCode:a,message:b,resetsAtMs:c,rawBody:d}=await (0,u.zL)(aB,bl),e=bs||b;(0,x.ox)((0,z.$R)({provider:aF,model:aG,connectionId:_,latency:{ttft:0,total:Date.now()-aH},tokens:{prompt_tokens:0,completion_tokens:0},request:bp,providerRequest:aE||az||null,response:{error:e,status:a,thinking:null},status:"error",pxpipe:bk||void 0,rtk:bd||void 0})).catch(()=>{});let f=(0,u.lR)(Error(e),aF,aG,a);console.log(`${l.lm.red}[ERROR] ${f}${l.lm.reset}`),a4.logError(Error(e),aE||az);let g=bs||aI!==h.h.CLAUDE||aT!==h.h.CLAUDE?void 0:d;return(0,u.A1)(a,f,c,g)}let bt=async()=>{bn.signal?.throwIfAborted();let a=await bl.execute({model:aG,body:structuredClone(az),stream:a1,credentials:c,signal:bn.signal,log:d,proxyOptions:bo});if(bq()){try{await a.response.body?.cancel?.()}catch{}throw new DOMException("Request aborted","AbortError")}if(!a.response.ok){let{statusCode:b,message:c}=await (0,u.zL)(a.response,bl);throw Error(`[${b}] ${c}`)}if(!a.response.body)throw Error("upstream returned no body");return a.response.body},bu="antigravity"===aF||"gemini-cli"===aF||"gemini"===aF||"vertex"===aF;bu&&a1&&aB.body?aB=new Response((0,D.gH)({body:aB.body,reexecute:bt,signal:bn.signal,log:d,onExhausted:(a,{upstreamError:b}={})=>{if(!Z)return;let c=bl.parseRetryFromErrorMessage?.(b?.message||a);return Z((0,u.lR)(Error(a),aF,aG,v.gx.BAD_GATEWAY),c?Date.now()+c:void 0)}}),{status:aB.status,headers:aB.headers}):a1&&aB.body&&(aB=new Response((0,E.Z)({body:aB.body,reexecute:bt,signal:bn.signal,log:d,maxRetries:+("claude"!==aF)}),{status:aB.status,headers:aB.headers}));let bv=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,bw={provider:aF,model:aG,body:a,stream:a1,requestConfig:bp,translatedBody:az,finalBody:aE,requestStartTime:aH,connectionId:_,clientKeyId:ab,clientRawRequest:$,onRequestSuccess:X,requestId:bv,pxpipe:bk||void 0,streamSignal:bn.signal},bx=a=>{ax||(0,x.E5)({model:aG,provider:aF,connectionId:_,...a}).catch(()=>{})},by=()=>(0,x.uw)(aG,aF,_,!1);if(!a_&&a0){let a=await (0,A.I)({...bw,providerResponse:aB,sourceFormat:aI,targetFormat:aT,trackDone:by,appendLog:bx});if(a)return bn.handleComplete(),a}if(!a1){let a=await (0,B.N)({...bw,providerResponse:aB,sourceFormat:aI,targetFormat:aT,reqLogger:a4,toolNameMap:aA,trackDone:by,appendLog:bx});return bn.handleComplete(),a}let{onStreamComplete:bz,onStreamFailure:bA,streamDetailId:bB}=(0,C.$)({...bw});return(0,C.M)({...bw,providerResponse:aB,sourceFormat:aI,targetFormat:aT,userAgent:aa,reqLogger:a4,toolNameMap:aA,streamController:bn,onStreamComplete:bz,onStreamFailure:bA,streamDetailId:bB,firstChunkTimeoutMs:bu?void 0:0})}d()}catch(a){d(a)}})},37208:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(17429);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",j="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",k='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',l='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.',m={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h,i,j,k,l].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h,i,j,k,l].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h,i,j,k,l].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h,i,j,k,l].join(" ")};function n(a,b,c){(0,d.J)(a,b,m[c])}},39232:(a,b,c)=>{c.d(b,{Nv:()=>l,O2:()=>m,SI:()=>k,cB:()=>n});var d=c(37377),e=c(29229),f=c(97579);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=Array.isArray(a?.messages)?a.messages:Array.isArray(a?.input)?a.input:null,c=b?.filter(a=>a?.role==="tool"||a?.role==="function"||a?.tool_calls?.length||a?.content?.some?.(a=>a?.type==="tool_use"||a?.type==="tool_result"))||[];return{bodyBytes:g(a),messageBytes:b?g(b):0,toolSchemaBytes:g(a?.tools||[]),toolHistoryBytes:g(c)}}function i(a,b){a&&!a.reason&&(a.reason=b)}async function j(a,b,c,d,e,f){let g,h=function(a){try{let b=new URL(a);return b.pathname=`${b.pathname.replace(/\/$/,"")}/v1/compress`,b.hash="",b.toString()}catch{let[b,c=""]=String(a).replace(/#.*$/,"").split("?",2),d=`${b.replace(/\/$/,"")}/v1/compress`;return c?`${d}?${c}`:d}}(a);f.endpoint=function(a){try{let b=new URL(a);return b.username="",b.password="",b.search="",b.hash="",b.toString()}catch{return String(a).replace(/\/\/[^/@\s]+@/,"//").replace(/[?#].*$/,"")}}(h);let j={messages:b,model:c};e&&(j.config={compress_user_messages:!0});try{g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j),signal:AbortSignal.timeout(d)})}catch(d){var k;let a,b,c;return i(f,`request failed: ${(k=d,a=k?.cause,b=a?.code||k?.code,c=String(a?.message||k?.message||String(k)).replace(/\/\/[^/@\s]+@/g,"//").replace(/(https?:\/\/[^\s?#]+)[?#][^\s)]*/g,"$1"),b?`${b}: ${c}`:c)}`),null}if(!g.ok)return i(f,`proxy returned HTTP ${g.status}`),null;let l=await g.json();return Array.isArray(l?.messages)?l:(i(f,"proxy response missing messages[]"),null)}async function k(a,{enabled:b,url:c,model:g,format:l,compressUserMessages:m,timeoutMs:n=3e3,diagnostics:o=null}={}){if(!b)return i(o,"disabled"),null;if(!c)return i(o,"missing proxy URL"),null;if(!a)return i(o,"missing request body"),null;try{if(o&&(o.before=h(a)),"claude"===l){let b=Array.isArray(a.system)&&a.system[0]?.text?.startsWith?.("x-anthropic-billing-header:")?a.system[0]:null,f=(0,d.t)(g,a,!1);if(!Array.isArray(f?.messages))return i(o,"Claude request did not translate to messages[]"),null;let k=await j(c,f.messages,g,n,m,o||{});if(!k)return null;let l=(0,e.p)(g,{...f,messages:k.messages},!1);return Array.isArray(l?.messages)&&(a.messages=l.messages),l?.system!==void 0&&(a.system=b?[b,...Array.isArray(l.system)?l.system:[{type:"text",text:String(l.system)}]]:l.system),o&&(o.after=h(a)),k}if("openai-responses"===l){if(Array.isArray(a?.input)&&a.input.some(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.type&&"message"!==a.type))return i(o,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Zj)(g,a,!1);if(!Array.isArray(b?.messages))return null;let d=await j(c,b.messages,g,n,m,o||{});if(!d)return null;let e=(0,f.h_)(g,{...b,input:void 0,messages:d.messages},!1);return Array.isArray(e?.input)&&(a.input=e.input),o&&(o.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(o,`unsupported ${l||"unknown"} request shape`),null;let k=await j(c,a[b],g,n,m,o||{});if(!k)return null;return a[b]=k.messages,o&&(o.after=h(a)),k}catch(a){return i(o,`unexpected error: ${a?.message||String(a)}`),null}}function l(a){if(!a)return null;let b=a.tokens_before||0,c=a.tokens_after||0,d=a.tokens_saved||0,e=b>0?(d/b*100).toFixed(1):"0";return`reported token delta=${d} before=${b}${c?` after=${c}`:""} (${e}%)`.trim()}function m(a){let b=a?.before,c=a?.after;if(!b||!c)return"";let d=b.bodyBytes>0?((b.bodyBytes-c.bodyBytes)/b.bodyBytes*100).toFixed(1):"0.0";return`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B tools=${b.toolSchemaBytes||0}B→${c.toolSchemaBytes||0}B toolHistory=${b.toolHistoryBytes||0}B→${c.toolHistoryBytes||0}B effective=${d}%`}function n(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},49612:(a,b,c)=>{c.d(b,{g:()=>l,p:()=>m});var d=c(19956),e=c(98173),f=c(57642);function g(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function h(a){return a?.choices?.[0]||{}}function i(a){return h(a).message||{}}function j(a){let b=i(a).tool_calls;return Array.isArray(b)?b:[]}function k(a){let b=a||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0,e={prompt_tokens:c,completion_tokens:d,total_tokens:b.total_tokens||c+d},f=b.prompt_tokens_details||{},g=b.input_tokens_details||{},h=f.cached_tokens||g.cached_tokens||b.cache_read_input_tokens||0,i=f.cache_creation_tokens||g.cache_creation_tokens||b.cache_creation_input_tokens||0;(h>0||i>0)&&(e.prompt_tokens_details={},h>0&&(e.prompt_tokens_details.cached_tokens=h),i>0&&(e.prompt_tokens_details.cache_creation_tokens=i));let j=b.completion_tokens_details||{},k=b.output_tokens_details||{},l=j.reasoning_tokens||k.reasoning_tokens||0;return l>0&&(e.completion_tokens_details={reasoning_tokens:l}),e}function l(a,b){let c,d=Array.isArray(a?.output)?a.output:[],e=d.filter(a=>a?.type==="reasoning").flatMap(a=>Array.isArray(a.summary)?a.summary:[]).map(a=>a?.text||"").join(""),f=d.filter(a=>a?.type==="message"),g=[...f].reverse().find(a=>(Array.isArray(a.content)?a.content:[]).some(a=>"string"==typeof a.text&&a.text.length>0))||f[f.length-1]||null,h=d.filter(a=>a?.type==="refusal").map(a=>a?.refusal||"").join(""),i=(Array.isArray(g?.content)?g.content:[]).map(a=>("output_text"===a.type||"refusal"===a.type||"string"==typeof a.text)&&(a.text||a.refusal)||"").join("")||h,j=d.filter(a=>a?.type==="function_call"||a?.type==="custom_tool_call").map((a,b)=>({id:a.call_id||`call_${a.name||"tool"}_${b}`,type:"function",function:{name:a.name||"",arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??a.input??{})}})),l=a?.usage||{},m={role:"assistant",content:i||(j.length>0?null:"")};if(e&&(m.reasoning_content=e),j.length>0&&(m.tool_calls=j),j.length>0)c="tool_calls";else if(h&&""===i.split(h).join("").trim())c="content_filter";else{let b=a?.status;c="completed"===b||"done"===b?"stop":"failed"===b?"error":"incomplete"===b?a?.incomplete_details?.reason==="content_filter"?"content_filter":"length":"stop"}return{id:a?.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||b||"unknown",choices:[{index:0,message:m,finish_reason:c}],usage:k(l)}}function m(a,b){switch(b){case d.h.CLAUDE:return function(a){let b,c,f,k,l,m;if(!a?.choices?.[0])return a;let n=h(a),o=i(a),p=[],q=o.reasoning_content||o.provider_specific_fields?.reasoning_content||"";for(let b of(q&&p.push({type:"thinking",thinking:q}),"string"==typeof o.content&&o.content.length>0&&p.push({type:"text",text:o.content}),j(a))){let a=b.function||{};p.push({type:"tool_use",id:b.id||`toolu_${Date.now()}_${p.length}`,name:a.name||b.name||"",input:g(a.arguments||b.arguments)})}0===p.length&&p.push({type:"text",text:""});let r=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:p,stop_reason:(0,e.Q)(n.finish_reason,d.h.CLAUDE),stop_sequence:null,usage:(c={input_tokens:(b=r||{}).prompt_tokens||b.input_tokens||0,output_tokens:b.completion_tokens||b.output_tokens||0},f=b.prompt_tokens_details||{},k=b.input_tokens_details||{},l=f.cached_tokens||k.cached_tokens||b.cache_read_input_tokens||0,m=f.cache_creation_tokens||k.cache_creation_tokens||b.cache_creation_input_tokens||0,l>0&&(c.cache_read_input_tokens=l),m>0&&(c.cache_creation_input_tokens=m),c)}}(a);case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.ANTIGRAVITY:case d.h.VERTEX:return function(a){if(!a?.choices?.[0])return a;let b=i(a),c=k(a.usage||{}),d=[],e=b.reasoning_content||b.provider_specific_fields?.reasoning_content||"";for(let c of(e&&d.push({text:e,thought:!0}),"string"==typeof b.content&&b.content.length>0&&d.push({text:b.content}),j(a))){let a=c.function||{};d.push({functionCall:{name:a.name||c.name||"",args:g(a.arguments||c.arguments)}})}return 0===d.length&&d.push({text:""}),{response:{candidates:[{content:{role:"model",parts:d},finishReason:function(a){switch(a){case f.bC.LENGTH:return f.a_.MAX_TOKENS;case f.bC.CONTENT_FILTER:return f.a_.SAFETY;case f.bC.ERROR:return f.a_.MALFORMED_FUNCTION_CALL;default:return f.a_.STOP}}(h(a).finish_reason),index:0}],usageMetadata:{promptTokenCount:c.prompt_tokens,candidatesTokenCount:c.completion_tokens,totalTokenCount:c.total_tokens},modelVersion:a.model||"unknown",responseId:a.id||`resp_${Date.now()}`}}}(a);case d.h.OLLAMA:return function(a){if(!a?.choices?.[0])return a;let b=h(a),c=i(a),d={role:"assistant",content:"string"==typeof c.content?c.content:""};c.reasoning_content&&(d.thinking=c.reasoning_content);let e=j(a).map(a=>{let b=a.function||{};return{id:a.id,function:{name:b.name||a.name||"",arguments:g(b.arguments||a.arguments)}}});e.length>0&&(d.tool_calls=e);let f=a.usage||{};return{model:a.model||"unknown",created_at:a.created?new Date(1e3*a.created).toISOString():new Date().toISOString(),message:d,done:!0,done_reason:"tool_calls"===b.finish_reason?"stop":b.finish_reason||"stop",prompt_eval_count:f.prompt_tokens||f.input_tokens||0,eval_count:f.completion_tokens||f.output_tokens||0}}(a);case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:return function(a){let b;if(!a?.choices?.[0])return a;let c=i(a),d=a.usage||{},e=[],f=0,g=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";g&&(e.push({type:"reasoning",id:`rs_${a.id||Date.now()}_${f}`,summary:[{type:"summary_text",text:g}]}),f++);let l="string"==typeof c.content?c.content:"";l&&(e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:l,annotations:[],logprobs:[]}]}),f++);let m=j(a);if(m.length>0)for(let a of m){let b=a.function||{},c=a.id||`call_${b.name||"tool"}_${f}`;e.push({type:"function_call",id:`fc_${c}`,call_id:c,name:b.name||a.name||"",arguments:"string"==typeof b.arguments?b.arguments:JSON.stringify(b.arguments||{})}),f++}else l||g||e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:"",annotations:[],logprobs:[]}]});let n=h(a).finish_reason||"stop",o="completed";"length"===n?(o="incomplete",b={reason:"max_output_tokens"}):"content_filter"===n?(o="incomplete",b={reason:"content_filter"}):"error"===n&&(o="failed");let p=k(d);return{id:a.id?`resp_${a.id}`:`resp_${Date.now()}`,object:"response",created_at:a.created||Math.floor(Date.now()/1e3),status:o,...b?{incomplete_details:b}:{},output:e,usage:{input_tokens:p.prompt_tokens,output_tokens:p.completion_tokens,total_tokens:p.total_tokens}}}(a);case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:default:return a}}},54070:(a,b,c)=>{c.d(b,{DL:()=>g,VS:()=>h,_s:()=>i});let d=global.__vaultStats??={entries:0,hits:0,bytesSaved:0};function e(a){try{let b=Number(a);if(!Number.isFinite(b)||b<0)return 0;return Math.trunc(b)}catch{return 0}}function f(a,b){try{let c=e(d[a])+e(b);d[a]=Number.isSafeInteger(c)?c:Number.MAX_SAFE_INTEGER}catch{}}function g(a,b){try{f("entries",a),f("bytesSaved",b)}catch{}}function h(a=1){try{f("hits",a)}catch{}}function i(){try{return{entries:e(d.entries),hits:e(d.hits),bytesSaved:e(d.bytesSaved)}}catch{return{entries:0,hits:0,bytesSaved:0}}}},61229:(a,b,c)=>{c.d(b,{$:()=>p,M:()=>o});var d=c(19956),e=c(48664),f=c(78638),g=c(15575),h=c(4630),i=c(60290),j=c(48330),k=c(29461),l=c(12407),m=c(4905);let n={[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};async function o({providerResponse:a,provider:b,model:c,sourceFormat:p,targetFormat:q,userAgent:r,body:s,stream:t,requestConfig:u,translatedBody:v,finalBody:w,requestStartTime:x,connectionId:y,clientKeyId:z,requestId:A,clientRawRequest:B,onRequestSuccess:C,reqLogger:D,toolNameMap:E,streamController:F,onStreamComplete:G,onStreamFailure:H,streamDetailId:I,pxpipe:J,firstChunkTimeoutMs:K=i.Z1,firstProgressTimeoutMs:L=i.Z1,progressStallTimeoutMs:M=i.xM}){let N=(a.headers.get("content-type")||"").toLowerCase();if((N.includes("application/x-ndjson")||N.includes("application/ndjson"))&&a.body){let b,c,d,e;a=new Response(a.body.pipeThrough((b=new TextDecoder,c=new TextEncoder,d="",new TransformStream({transform(a,e){let f=(d+=b.decode(a,{stream:!0})).split("\n");for(let a of(d=f.pop()||"",f)){let b=a.trim();if(b){if(b.startsWith("data:")||b.startsWith("event:")){e.enqueue(c.encode(a+"\n"));continue}try{JSON.parse(b),e.enqueue(c.encode(`data: ${b}
|
|
60
60
|
|
|
61
61
|
`))}catch{}}}},flush(a){let b=d.trim();if(b)try{JSON.parse(b),a.enqueue(c.encode(`data: ${b}
|
|
62
62
|
|
|
63
63
|
`))}catch{}}}))),{status:a.status,statusText:a.statusText,headers:((e=new Headers(a.headers)).set("content-type","text/event-stream"),e)})}else if(N&&!N.includes("text/event-stream")&&!N.includes("application/json")){let d=await a.text().catch(()=>""),e=d.match(/<title>([^<]+)<\/title>/i),f=(e?.[1]||"").replace(/<[^>]*>/g,"").replace(/[\r\n]+/g," ").trim().slice(0,160)||(d.length<200?d.replace(/<[^>]*>/g,"").trim().slice(0,160):`Upstream returned non-SSE response (${N})`),g=a.status>=400?a.status:502;return console.warn(`[STREAM] ${b} | ${c} | blocked pipe: ${f} [${g}]`),F?.handleError?.(Error(`upstream non-SSE: ${g}`)),{success:!1,response:new Response(JSON.stringify({error:{message:`[${g}]: ${f}`}}),{status:g,headers:{"Content-Type":"application/json"}})}}C&&Promise.resolve().then(C).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let O=(0,l.ox)((0,k.$R)({provider:b,model:c,connectionId:y,latency:{ttft:0,total:Date.now()-x},tokens:{prompt_tokens:0,completion_tokens:0},request:u??(0,k.Fo)(s,t),providerRequest:w||v||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"pending",pxpipe:J},{id:I})).catch(a=>console.error("[RequestDetail] Failed to save streaming request:",a.message)),P=!1,Q=async(...a)=>{a[0]?.completed!==void 0&&(P=!0),await O,await G?.(...a)},R="responses-websocket"!==a.headers.get("x-switchboard-transport"),S=p===d.h.CLAUDE&&q===d.h.CLAUDE,T=S?{firstProgressTimeoutMs:L,stallTimeoutMs:M}:null,U=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:i,toolNameMap:j,model:k,connectionId:l,body:m,onStreamComplete:o,clientKeyId:p,terminateOnResponsesTerminal:q,onStreamProgress:r}){let s=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if(h.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!s){let c=n[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,i,j,k,l,m,o,p,q)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,i,j,k,l,m,o,p):(0,f.l2)(a,i,j,k,l,m,o,p,r)}({provider:b,sourceFormat:p,targetFormat:q,userAgent:r,reqLogger:D,toolNameMap:E,model:c,connectionId:y,body:s,onStreamComplete:Q,clientKeyId:z,terminateOnResponsesTerminal:R,onStreamProgress:T?a=>T.record?.(a):void 0}),V=p===d.h.OPENAI_RESPONSES&&q===d.h.OPENAI_RESPONSES?j.Hr:S?j.LS:q===d.h.OPENAI?j.ah:null,W=h.xq[b]?.stallTimeoutMs||i.xM;return{success:!0,response:new Response((0,g.Jb)(a,U,F,V,W,K,a=>{P||Promise.resolve(O).then(()=>H?.(a)).catch(()=>{})},T),{headers:m.RK})}}function p({provider:a,model:b,connectionId:c,clientKeyId:d,requestStartTime:e,body:f,stream:g,requestConfig:h,finalBody:i,translatedBody:j,requestId:m,clientRawRequest:n,pxpipe:o}){let q=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,r=!1,s=async d=>{r||(r=!0,await (0,l.ox)((0,k.$R)({provider:a,model:b,connectionId:c,latency:{ttft:0,total:Date.now()-e},request:h??(0,k.Fo)(f,g),providerRequest:i||j||null,response:{error:d?.message||"stream interrupted",type:"streaming"},status:"error",pxpipe:o},{id:q})))};return{onStreamComplete:async(p,t,u)=>{if(p?.completed===!1)return s(Error(p.error||"stream incomplete"));if(r)return;r=!0;let v={ttft:u?u-e:Date.now()-e,total:Date.now()-e},w=p?.content||"[Empty streaming response]",x=p?.thinking||null;(0,l.ox)((0,k.$R)({provider:a,model:b,connectionId:c,latency:v,tokens:t||{prompt_tokens:0,completion_tokens:0},request:h??(0,k.Fo)(f,g),providerRequest:i||j||null,providerResponse:w,response:{content:w,thinking:x,type:"streaming"},status:"success",pxpipe:o},{id:q})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),await (0,k.YZ)({provider:a,model:b,tokens:t,connectionId:c,clientKeyId:d,requestId:m,endpoint:n?.endpoint,label:"STREAM USAGE"})},onStreamFailure:s,streamDetailId:q}}},66573:(a,b,c)=>{c.d(b,{Hh:()=>g,ST:()=>h,Wg:()=>f});let d=new TextEncoder;function e(a){return Math.max(0,Math.floor(Number(a)||0))}function f(a,b){var c;if("string"!=typeof a)return"";let d=e(b);return a.length<=d?a:0===d?"":a.slice(0,(c=a.charCodeAt(d-1))>=55296&&c<=56319?d-1:d)}function g(a,b){var c;if("string"!=typeof a)return"";let d=e(b);if(a.length<=d)return a;if(0===d)return"";let f=a.length-d;return a.slice((c=a.charCodeAt(f))>=56320&&c<=57343?f+1:f)}function h(a,b){if("string"!=typeof a)return"";let c=e(b);if(0===c)return"";if(d.encode(a).length<=c)return a;let g=0,h=a.length;for(;g<h;){let b=g+Math.ceil((h-g)/2);d.encode(a.slice(0,b)).length<=c?g=b:h=b-1}return f(a,g)}},70718:(a,b,c)=>{c.d(b,{q7:()=>p});var d=c(28730);let e="u">typeof process&&process.versions?.node&&!0,f="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",g=null,h=null,i=null;async function j(){if(e&&f&&!g)try{let a=await Promise.resolve().then(c.t.bind(c,29021,19)),b=await Promise.resolve().then(c.t.bind(c,33873,19));g=a.default||a,i=(h=b.default||b).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function k(a,b,c){if(await j(),!g||!i)return null;try{g.existsSync(i)||g.mkdirSync(i,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,j=h.join(i,f);return g.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}let l=new Set(["prompt_cache_key","session_id","sessionid","conversation_id","conversationid","user_id","userid","request_id","requestid","x_session_id","x_amp_thread_id","x_client_request_id"]);function m(a,b,c){if(g&&a)try{let d=h.join(a,b);g.writeFileSync(d,JSON.stringify(function a(b){if(Array.isArray(b))return b.map(a);if(!b||"object"!=typeof b)return b;let c={};for(let[d,e]of Object.entries(b)){let b=d.toLowerCase().replaceAll("-","_");c[d]=l.has(b)?"[redacted]":a(e)}return c}(c),null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}let n=["api-key","x-key"];function o(a){if(!a)return{};let b={...a};for(let a of Object.keys(b)){let c=a.toLowerCase();if(function(a){return d.fC.some(b=>a.includes(b))||n.some(b=>a.includes(b))}(c)){let e=b[a];d.qk.some(a=>c.includes(a))||c.includes("api-key")||c.includes("x-key")?b[a]="[redacted]":"string"==typeof e&&e.length>12?b[a]=e.slice(0,8)+"..."+e.slice(-4):null!=e&&(b[a]="[redacted]")}}return b}async function p(a,b,c){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){},close(){}};let d=await k(a,b,c),e={},i=!1;function j(a,b,c){if(g&&d&&!i)try{let f=e[a];f||(f=e[a]=g.createWriteStream(h.join(d,b),{flags:"a"})).on("error",()=>{}),f.write(c)}catch{}}return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){m(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:o(c),body:b})},logRawRequest(a,b={}){m(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:o(b),body:a})},logOpenAIRequest(a){m(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){m(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:"string"==typeof a&&a?a.replace(/([?&])(key|api_key|api-key)=[^&]*/gi,"$1$2=[redacted]"):a,headers:o(b),body:c})},logProviderResponse(a,b,c,e){m(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:o(c&&"function"==typeof c.entries?Object.fromEntries(c.entries()):c),body:e})},appendProviderChunk(a){j("provider","5_res_provider.txt",a)},appendOpenAIChunk(a){j("openai","6_res_openai.txt",a)},logConvertedResponse(a){m(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){j("converted","7_res_client.txt",a)},logError(a,b=null){m(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),requestBody:b})},close:()=>{let a;return i=!0,a=Object.values(e),e={},Promise.all(a.map(a=>new Promise(b=>{try{a.end(b)}catch{b()}})))}}}},71413:(a,b,c)=>{c.d(b,{O:()=>e});var d=c(5425);function e(a){let b=a?.messages;if(!Array.isArray(b))return null;let c=new Set,e=new Set,f=0,g=0,h=0;for(let a of b)if(Array.isArray(a?.content))for(let b of(!a.content.length&&h++,a.content))"assistant"===a.role&&b?.type==="tool_use"&&(f++,b.id&&c.add(b.id)),"user"===a.role&&b?.type==="tool_result"&&(g++,b.tool_use_id&&e.add(b.tool_use_id));if(!f&&!g)return null;let i=0,j=0,k=0,l=[];for(let a=0;a<b.length;a++){if(b[a]?.role!=="assistant")continue;let c=a,d=new Set;do{for(let c of Array.isArray(b[a].content)?b[a].content:[])c?.type==="tool_use"&&c.id&&d.add(c.id);a++}while(b[a]?.role==="assistant");let f=a,g=new Set;for(let a=f;b[a]?.role==="user";a++)for(let c of Array.isArray(b[a].content)?b[a].content:[])c?.type==="tool_result"&&c.tool_use_id&&g.add(c.tool_use_id);let h=[...d].filter(a=>!g.has(a));h.length&&(i+=h.length,j+=h.filter(a=>e.has(a)).length,k++,l.length<10&&l.push({assistantIndex:c,callCount:d.size,missingCount:h.length,nextRole:["user","assistant","system","developer"].includes(b[f]?.role)?b[f].role:"other-or-end"})),a--}let m=[...e].filter(a=>!c.has(a)).length,n=(0,d.k)(a);return{...n?{threadContinuation:!0,externalContextResults:m}:{},messageCount:b.length,toolCalls:f,toolResults:g,emptyMessages:h,missingResults:i,misplacedResults:j,orphanResults:n?0:m,invalidTurnCount:k,invalidTurns:l}}},78255:(a,b,c)=>{c.d(b,{I:()=>p});var d=c(94176),e=c(89865),f=c(60290),g=c(19956),h=c(4630),i=c(49612),j=c(83611),k=c(29461),l=c(12407);let m=a=>h.xq[a]?.format===g.h.OPENAI_RESPONSES;function n(a){a&&Promise.resolve().then(a).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)})}function o(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}async function p({providerResponse:a,sourceFormat:b,provider:c,model:h,body:q,stream:r,requestConfig:s,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,clientKeyId:x,requestId:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,streamSignal:D}){let E=a.headers.get("content-type")||"";if(!(E.includes("text/event-stream")||""===E&&m(c)))return null;B();let F={provider:c,model:h,connectionId:w,request:s??(0,k.Fo)(q,r),providerRequest:u||t||null};if(m(c))try{let e=await (0,d.convertResponsesStreamToJson)(a.body,{signal:D});n(A);let f=e.usage||{};C({tokens:f,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:f,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let{msgItem:j,textContent:m}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=o(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:o(c)}}(e.output),p=Date.now()-v;if((0,l.ox)((0,k.$R)({...F,latency:{ttft:p,total:p},tokens:{prompt_tokens:f.input_tokens||0,completion_tokens:f.output_tokens||0},response:{content:m,thinking:null,finish_reason:e.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===g.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json"}})};let q=f.input_tokens||0,r=f.output_tokens||0,s=(e.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),t=s.length>0,u="completed"===e.status||"done"===e.status,B=t?"tool_calls":u?"stop":"incomplete"===e.status?"length":e.status||"stop",E={id:e.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:e.created_at||Math.floor(Date.now()/1e3),model:e.model||h,choices:[{index:0,message:{role:"assistant",content:m||(t?null:""),...t?{tool_calls:s}:{}},finish_reason:B}],usage:{prompt_tokens:q,completion_tokens:r,total_tokens:q+r}},G=(0,i.p)(E,b);return{success:!0,response:new Response(JSON.stringify(G),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let g=await (0,d.iJ)(a.body,h,{signal:D});if(!g)return(0,e.A1)(f.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");n(A);let m=g.usage||{};C({tokens:m,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:m,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let o=Date.now()-v;(0,l.ox)((0,k.$R)({...F,latency:{ttft:o,total:o},tokens:m,response:{content:g.choices?.[0]?.message?.content||null,thinking:g.choices?.[0]?.message?.reasoning_content||null,finish_reason:g.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{});let p=!1;if(g?.choices)for(let a of g.choices){let b=a?.message;if(b?.content&&"string"==typeof b.content){let{content:a,reasoning:c}=(0,j.j)(b.content);c&&(b.reasoning_content=c,b.content=a,p=!0)}}if(!p&&g?.choices)for(let a of g.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let q=(0,i.p)(g,b);return{success:!0,response:new Response(JSON.stringify(q),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},78638:(a,b,c)=>{c.d(b,{lm:()=>g.lm,l2:()=>u,i5:()=>t,v8:()=>h.v8});var d=c(48664),e=c(19956),f=c(12407),g=c(67677),h=c(45894),i=c(48330),j=c(12828),k=c(1160);c(4905);var l=c(83611),m=c(94176);function n(a=function(a=process.env){let b=Number.parseInt(a?.STREAM_LOG_PREVIEW_MAX_CHARS||"",10);return Number.isFinite(b)&&b>0?b:32768}()){let b=Number.isFinite(a)&&a>0?Math.floor(a):32768,c=Math.ceil(b/2),d=b-c,e="",f="",g=0;return{append(a){if("string"!=typeof a||0===a.length)return;g+=a.length;let b=a;if(e.length<c){let a=b.slice(0,c-e.length);e+=a,b=b.slice(a.length)}b.length>0&&(f=d>0?(f+b).slice(-d):"")},text(){let a=g-e.length-f.length;return a<=0?e+f:`${e}
|
|
64
64
|
…[truncated ${a} chars]…
|
|
65
|
-
${f}`},get totalLength(){return g},get retainedLength(){return e.length+f.length},get truncated(){return g>e.length+f.length}}}let o=new TextEncoder,p="translate",q="passthrough";function r(a){let b=a.trim().slice(5).trim();if(!b.startsWith("{")||!b.endsWith("}"))return!1;try{return JSON.parse(b),!0}catch{return!1}}function s(a={}){let{mode:b=p,targetFormat:c,sourceFormat:t,provider:u=null,reqLogger:v=null,toolNameMap:w=null,model:x=null,connectionId:y=null,body:z=null,onStreamComplete:A=null,onStreamProgress:B=null,clientKeyId:C=null,terminateOnResponsesTerminal:D=!0}=a,E="",F=null,G=(0,m.hB)(),H=0,I=new TextDecoder("utf-8",{fatal:!1}),J=b===p?{...(0,d.Ws)(t),provider:u,toolNameMap:w,model:x}:null,K=0,L=n(),M=n(),N=null,O=0,P=0,Q={},R=null,S=!1,T=!1,U=!1,V=!1,W=!1,X=null,Y=!1;function Z(a){Y||(Y=!0,(0,f.uw)(x,u,y,!1,!a.completed),(0,g.Gh)(F)&&(0,g.IF)(u,F,x,y,C),Promise.resolve(A?.({content:L.text(),thinking:M.text(),...a},F,N)).catch(()=>{}),v?.close?.())}let $=(0,l.H)(),_=0;function aa(a){if(j.T&&a&&(O++,a.startsWith("event:"))){let b=a.slice(6).trim();Q[b]=(Q[b]||0)+1}}function ab(a,b){let c;if(!a.trim())return;let d=a.split(/\r?\n/);for(let a of d)aa(a.trim());for(let a of d){let b=a.trim();if(b.startsWith("event:")){let a=b.slice(6).trim();a.startsWith("response.")&&(U=!0),("response.completed"===a||"response.done"===a||"response.failed"===a||"response.incomplete"===a)&&(V=!0)}}let
|
|
65
|
+
${f}`},get totalLength(){return g},get retainedLength(){return e.length+f.length},get truncated(){return g>e.length+f.length}}}let o=new TextEncoder,p="translate",q="passthrough";function r(a){let b=a.trim().slice(5).trim();if(!b.startsWith("{")||!b.endsWith("}"))return!1;try{return JSON.parse(b),!0}catch{return!1}}function s(a={}){let{mode:b=p,targetFormat:c,sourceFormat:t,provider:u=null,reqLogger:v=null,toolNameMap:w=null,model:x=null,connectionId:y=null,body:z=null,onStreamComplete:A=null,onStreamProgress:B=null,clientKeyId:C=null,terminateOnResponsesTerminal:D=!0}=a,E="",F=null,G=(0,m.hB)(),H=0,I=new TextDecoder("utf-8",{fatal:!1}),J=b===p?{...(0,d.Ws)(t),provider:u,toolNameMap:w,model:x}:null,K=0,L=n(),M=n(),N=null,O=0,P=0,Q={},R=null,S=!1,T=!1,U=!1,V=!1,W=!1,X=null,Y=!1;function Z(a){Y||(Y=!0,(0,f.uw)(x,u,y,!1,!a.completed),(0,g.Gh)(F)&&(0,g.IF)(u,F,x,y,C),Promise.resolve(A?.({content:L.text(),thinking:M.text(),...a},F,N)).catch(()=>{}),v?.close?.())}let $=(0,l.H)(),_=0;function aa(a){if(j.T&&a&&(O++,a.startsWith("event:"))){let b=a.slice(6).trim();Q[b]=(Q[b]||0)+1}}function ab(a,b){let c;if(!a.trim())return;let d=a.split(/\r?\n/),f=null;for(let a of d)aa(a.trim());for(let a of d){let b=a.trim();if(b.startsWith("event:")){let a=b.slice(6).trim();f=a,a.startsWith("response.")&&(U=!0),("response.completed"===a||"response.done"===a||"response.failed"===a||"response.incomplete"===a)&&(V=!0)}}let i=d.filter(a=>a.startsWith("data:")),j=i.map(a=>a.slice(5).replace(/^ /,"")).join("\n"),k=!1;if(i.length>0)if("[DONE]"===j.trim()){if(T)return;T=!0,c="data: [DONE]\n\n"}else try{let a=JSON.parse(j.trim());_=0,B?.(a.type),["message_start","message_delta","message_stop","content_block_start","content_block_delta","content_block_stop"].includes(a.type)&&(W=!0),"content_block_delta"===a.type&&("string"==typeof a.delta?.text&&(L.append(a.delta.text),K+=a.delta.text.length),"string"==typeof a.delta?.thinking&&(M.append(a.delta.thinking),K+=a.delta.thinking.length)),"message_stop"===a.type&&(X={completed:!0}),"error"===a.type&&(X={completed:!1,error:a.error?.message||"upstream stream error"});let b=(0,h.A4)(a),d=!1;if(w?.size>0&&a?.type==="content_block_start"&&a?.content_block?.type==="tool_use"){let b=w.get(a.content_block.name);b&&(a.content_block={...a.content_block,name:b},d=!0)}let f=!1;if(void 0!==a.choices&&(a.object||(a.object="chat.completion.chunk",f=!0),a.created||(a.created=Math.floor(Date.now()/1e3),f=!0)),void 0!==a.prompt_filter_results&&(delete a.prompt_filter_results,f=!0),a?.choices)for(let b of a.choices)void 0!==b.content_filter_results&&(delete b.content_filter_results,f=!0);if(a?.choices)for(let b of a.choices)b.delta?.tool_calls&&Array.isArray(b.delta.tool_calls)&&0===b.delta.tool_calls.length&&(delete b.delta.tool_calls,f=!0);let i=(0,g.f5)(a);if(i&&(F=(0,g._L)(F,i)),!(0,h.c2)(a,e.h.OPENAI)&&!a.usage)return;let l=a.choices?.[0]?.delta;if("string"==typeof l?.content){let{content:a,reasoning:b}=$(l.content);b&&(l.reasoning_content=(l.reasoning_content||"")+b),a!==l.content&&(!l.reasoning_content||a&&a.trim()?l.content=a||"":delete l.content,f=!0)}let m=l?.content,n=l?.reasoning_content;m&&"string"==typeof m&&(K+=m.length,L.append(m)),n&&"string"==typeof n&&(K+=n.length,M.append(n));let o=(0,g.f5)(a);o&&(F=(0,g._L)(F,o));let p=a.choices?.[0]?.finish_reason;if(p&&!(0,g.Gh)(a.usage)){let b=(0,g.OF)(z,K,e.h.OPENAI);a.usage=(0,g.WL)(b,e.h.OPENAI),c=`data: ${JSON.stringify(a)}
|
|
66
66
|
|
|
67
|
-
`,F=b,
|
|
67
|
+
`,F=b,k=!0}else if(p&&F){let b=(0,g.O9)(F);a.usage=(0,g.WL)(b,e.h.OPENAI),c=`data: ${JSON.stringify(a)}
|
|
68
68
|
|
|
69
|
-
`,
|
|
69
|
+
`,k=!0}else(b||f||d)&&(c=`data: ${JSON.stringify(a)}
|
|
70
70
|
|
|
71
|
-
`,
|
|
71
|
+
`,k=!0)}catch{if(++_>=5)throw Error(`upstream sent ${_} consecutive non-JSON data events`);return}k||c?c&&f&&!c.startsWith("event:")&&(c=`event: ${f}
|
|
72
|
+
${c}`):c=d.map(a=>a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5):a).join("\n")+"\n\n",v?.appendConvertedChunk?.(c),X&&Z(X),b.enqueue(o.encode(c)),X&&b.terminate()}function ac(a,b=!1){let c=E.split(/\r?\n\r?\n/);for(let b of(E=c.pop()||"",c))if(ab(b,a),Y){E="";return}b&&E&&(ab(E,a),E="")}return new TransformStream({transform(a,j){N||(N=Date.now());var k="number"==typeof a?.byteLength?a.byteLength:0;if((H+=k)>G)throw Error(`SSE reassembly exceeded ${G} bytes`);let l=I.decode(a,{stream:!0});if(E+=l,v?.appendProviderChunk?.(l),b===q)return void ac(j);let m=E.split(/\r?\n\r?\n/);E=m.pop()||"";let n=[];for(let a of m){let b=[];for(let c of a.split("\n"))c.trim().startsWith("data:")?b.push(c):n.push(c);b.length>1&&b.every(r)?n.push(...b):b.length>0&&n.push(b.join("\n"))}for(let a of(n.push(...E.split("\n").slice(0,-1)),E=E.split("\n").pop()||"",n)){let k=a.trim();if(aa(k),b===p&&c===e.h.OPENAI_RESPONSES&&k.startsWith("event:")&&(R=k.slice(6).trim()),!k)continue;let l=(0,h.tV)(k,c);if(!l)continue;let m=c===e.h.OPENAI_RESPONSES,n=m&&t===e.h.OPENAI_RESPONSES,q=m?(0,i.yx)(R,l):null,r=m&&(0,i.nu)(q,l);if(r&&(S=!0),"string"==typeof l?.choices?.[0]?.delta?.content){let a=l.choices[0].delta,{content:b,reasoning:c}=$(a.content);c&&(a.reasoning_content=(a.reasoning_content||"")+c),b!==a.content&&(!a.reasoning_content||b&&b.trim()?a.content=b||"":delete a.content)}if(l&&l.done&&c!==e.h.OLLAMA){if(n&&!S){let a=(0,i.u9)();v?.appendConvertedChunk?.(a),j.enqueue(o.encode(a)),S=!0,P++}if((n||t===e.h.OPENAI)&&!T){let a="data: [DONE]\n\n";v?.appendConvertedChunk?.(a),j.enqueue(o.encode(a))}T=!0;continue}if(l.delta?.text&&(K+=l.delta.text.length,L.append(l.delta.text)),l.delta?.thinking&&(K+=l.delta.thinking.length,M.append(l.delta.thinking)),l.choices?.[0]?.delta?.content&&(K+=l.choices[0].delta.content.length,L.append(l.choices[0].delta.content)),l.choices?.[0]?.delta?.reasoning_content&&(K+=l.choices[0].delta.reasoning_content.length,M.append(l.choices[0].delta.reasoning_content)),l.candidates?.[0]?.content?.parts)for(let a of l.candidates[0].content.parts)a.text&&"string"==typeof a.text&&(K+=a.text.length,!0===a.thought?M.append(a.text):L.append(a.text));let s=(0,g.f5)(l);if(s&&(J.usage=(0,g._L)(J.usage,s)),n&&q){let a=(0,h.v8)({event:q,data:l},t);v?.appendConvertedChunk?.(a),j.enqueue(o.encode(a)),R=null,P++;continue}R=null;let w=(0,d.Y8)(c,t,l,J);if(w?._openaiIntermediate)for(let a of w._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);v?.appendOpenAIChunk?.(b)}if(w?.length>0)for(let a of w){if(null==a||!(0,h.c2)(a,t))continue;let b="message_delta"===a.type||a.choices?.[0]?.finish_reason;if(J.finishReason&&b&&!(0,g.Gh)(a.usage)&&K>0){let b=(0,g.OF)(z,K,t);a.usage=(0,g.WL)(b,t),J.usage=b}else if(J.finishReason&&b&&J.usage){let b=(0,g.O9)(J.usage);a.usage=(0,g.WL)(b,t)}let c=(0,h.v8)(a,t);v?.appendConvertedChunk?.(c),j.enqueue(o.encode(c)),P++}if(r&&t===e.h.OPENAI&&!T){let a="data: [DONE]\n\n";if(v?.appendConvertedChunk?.(a),j.enqueue(o.encode(a)),T=!0,D){(0,f.uw)(x,u,y,!1),!(0,g.Gh)(J?.usage)&&K>0&&(J.usage=(0,g.OF)(z,K,t)),(0,g.Gh)(J?.usage)&&(0,g.IF)(J.provider||c,J.usage,x,y,C),A&&A({content:L.text(),thinking:M.text()},J?.usage,N).catch(()=>{}),v?.close?.(),j.terminate();return}}}},async flush(a){let l=Object.entries(Q).map(([a,b])=>`${a}=${b}`).join(",")||"none";(0,j.s)("SSE",`flush | provider=${u} | model=${x} | recvLines=${O} | emitted=${P} | events=[${l}]`),(0,f.uw)(x,u,y,!1);try{let j=I.decode();if(j&&(E+=j),b===q){if(ac(a,!0),W&&!Y){X={completed:!1,error:"upstream closed before message_stop"},Z(X),a.enqueue(o.encode(`event: error
|
|
72
73
|
data: ${JSON.stringify({type:"error",error:{type:"api_error",message:X.error}})}
|
|
73
74
|
|
|
74
75
|
`));return}if(Y)return;!(0,g.Gh)(F)&&K>0&&(F=(0,g.OF)(z,K,e.h.OPENAI)),(0,g.Gh)(F)?(0,g.IF)(u,F,x,y,C):(0,f.E5)({model:x,provider:u,connectionId:y,tokens:null,status:"200 OK"}).catch(()=>{});let b="antigravity"===u||"gemini"===u||"gemini-cli"===u||"vertex"===u||"vertex-partner"===u||u?.endsWith?.("-vertex");if(U&&!V){let b=(0,i.u9)();v?.appendConvertedChunk?.(b),a.enqueue(o.encode(b)),V=!0}if(!T&&!b){let b="data: [DONE]\n\n";v?.appendConvertedChunk?.(b),a.enqueue(o.encode(b))}A&&await A({content:L.text(),thinking:M.text()},F,N),v?.close?.();return}if(E.trim()){let b=(0,h.tV)(E.trim());if(b&&!b.done){let f=(0,d.Y8)(c,t,b,J);if(f?._openaiIntermediate)for(let a of f._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);v?.appendOpenAIChunk?.(b)}if(f?.length>0)for(let b of f){if(null==b)continue;let c=(0,h.v8)(b,t);v?.appendConvertedChunk?.(c),a.enqueue(o.encode(c))}}}let k=(0,d.Y8)(c,t,null,J);if(k?._openaiIntermediate)for(let a of k._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);v?.appendOpenAIChunk?.(b)}if(k?.length>0)for(let b of k){if(null==b)continue;let c=(0,h.v8)(b,t);v?.appendConvertedChunk?.(c),a.enqueue(o.encode(c))}let l=c===e.h.OPENAI_RESPONSES&&t===e.h.OPENAI_RESPONSES;if(l&&!S){let b=(0,i.u9)();v?.appendConvertedChunk?.(b),a.enqueue(o.encode(b)),S=!0}if((l||t===e.h.OPENAI)&&!T){let b="data: [DONE]\n\n";v?.appendConvertedChunk?.(b),a.enqueue(o.encode(b)),T=!0}!(0,g.Gh)(J?.usage)&&K>0&&(J.usage=(0,g.OF)(z,K,t)),(0,g.Gh)(J?.usage)?(0,g.IF)(J.provider||c,J.usage,x,y,C):(0,f.E5)({model:x,provider:u,connectionId:y,tokens:null,status:"200 OK"}).catch(()=>{}),A&&await A({content:L.text(),thinking:M.text()},J?.usage,N),v?.close?.()}catch(b){v?.close?.();let a=b?.message||String(b);(0,k.BP)("","✗",`FLUSH ERROR \xb7 ${u||c}/${x} \xb7 ${a}${b?.stack?`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";exports.id=3694,exports.ids=[3694],exports.modules={1354:(a,b,c)=>{async function d(a,b,c={}){var f;let g,h,i,j;if(!a?.ok)return{ok:!1,reason:"http_error"};let k=(a.headers?.get?.("content-type")||"").toLowerCase();if(!(k.includes("text/event-stream")||k.includes("ndjson"))||!a.body)try{let b=await a.clone().json(),c=o(b),d=c?.prompt_tokens??null,e=c?.completion_tokens??null;if(!(n(b)||"number"==typeof e&&e>0)){try{await a.body?.cancel?.()}catch{}return{ok:!1,reason:"empty_json"}}return{ok:!0,result:a,preInspect:{hasCompletion:!0,tokensIn:d,tokensOut:e,data:b}}}catch{return{ok:!0,result:a,preInspect:{hasCompletion:!1,tokensIn:null,tokensOut:null}}}let l=await e(a.body,2e4,{abortSignal:c.abortSignal||null});return l.accepted?{ok:!0,result:new Response((g=(f=l).prefixChunks||[],h=0,i=f.reader,j=!!f.ended||!i,new ReadableStream({async pull(a){try{if(h<g.length)return void a.enqueue(g[h++]);if(j||!i)return void a.close();let{done:b,value:c}=await i.read();if(b)return void a.close();c&&a.enqueue(c)}catch(b){try{a.error(b)}catch{}}},async cancel(a){if(i)try{await i.cancel(a)}catch{}}})),{status:a.status,statusText:a.statusText,headers:a.headers}),preInspect:{hasCompletion:!!l.sawCompletion,tokensIn:l.tokensIn,tokensOut:l.tokensOut}}:(b?.warn?.("AUTO",`empty stream after probe (${l.reason||"no_content"})`),{ok:!1,reason:l.reason||"empty_stream"})}async function e(a,b=2e4,c={}){if(!a||"function"!=typeof a.getReader)return{accepted:!1,hasContent:!1,reason:"no_body",prefixChunks:[],reader:null};let d=c.abortSignal||null,f=a.getReader(),g=new TextDecoder,h=[],i=null,k=null,n=!1,o="",p=Number.isFinite(b)&&b>0?b:2e4,q=Date.now()+p,r=null,s=null,t=()=>{null!=r&&(clearTimeout(r),r=null)},u=()=>{if(s&&d){try{d.removeEventListener("abort",s)}catch{}s=null}},v=async a=>{t(),u();try{await f.cancel(a||"empty_stream")}catch{}return{accepted:!1,hasContent:!1,reason:a,prefixChunks:h,reader:null,tokensIn:i,tokensOut:k,sawCompletion:!1}},w=a=>(t(),u(),{accepted:!0,hasContent:!0,prefixChunks:h,reader:a?null:f,ended:!!a,tokensIn:i,tokensOut:k,sawCompletion:n});try{for(;;){if(d?.aborted)return v("client_aborted");let a=q-Date.now();if(a<=0)return v("probe_idle_timeout");let b=f.read().then(a=>({kind:"read",r:a})),c=new Promise(b=>{r=setTimeout(()=>b({kind:"timeout"}),a)}),e=d?new Promise(a=>{s=()=>a({kind:"aborted"}),d.aborted?s():d.addEventListener("abort",s,{once:!0})}):null,x=await Promise.race([b,c,e].filter(Boolean));if(t(),"aborted"!==x.kind&&u(),"timeout"===x.kind)return v("probe_idle_timeout");if("aborted"===x.kind)return v("client_aborted");let{done:y,value:z}=x.r;if(y)return t(),u(),{accepted:!1,hasContent:!1,reason:"empty_stream_end",prefixChunks:h,reader:null,ended:!0,tokensIn:i,tokensOut:k,sawCompletion:!1};if(z?.byteLength){q=Date.now()+p,h.push(z);let a=g.decode(z,{stream:!0}),b=o.slice(-64)+a;o=(o+a).slice(-512),l(b)&&(n=!0);let c=m(b);if(c&&(i=c.prompt_tokens??i,(k=c.completion_tokens??k)>0&&(n=!0)),function(a){let b=String(a||"");if(!b.trim())return!0;let c=!1;for(let a of b.split(/\r?\n/)){let b=a.trim();if(b){if((c=!0,!(b.startsWith(":")||/^event:\s*(ping|heartbeat)\s*$/i.test(b)))&&!(b.startsWith("id:")||b.startsWith("retry:"))){if(b.startsWith("data:")){let a=b.slice(5).trim();if(!a||"[DONE]"===a)continue;try{let b=JSON.parse(a);if(b&&("ping"===b.type||"heartbeat"===b.type))continue}catch{}}return!1}}}return c||!b.trim()}(a)||function(a){for(let b of String(a||"").split(/\r?\n/)){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{if(j(JSON.parse(c)))return!0}catch{}}return!1}(b))continue;return w(!1)}z&&h.push(z)}}catch(a){t(),u();try{await f.cancel(a?.message||"probe_error")}catch{}return{accepted:!1,hasContent:!1,reason:"probe_error",prefixChunks:h,reader:null,tokensIn:i,tokensOut:k,sawCompletion:!1}}}async function f(a){if(!a)return{text:"",httpError:"router_http_0",status:0};let b=a.status??0;if(!a.ok){try{await a.text()}catch{}return{text:"",httpError:`router_http_${b}`,status:b}}let c=(a.headers?.get?.("content-type")||"").toLowerCase();try{if(c.includes("text/event-stream")||c.includes("ndjson")){let c=await a.text();return{text:i(c),status:b}}let d=await a.text();try{return{text:g(JSON.parse(d)),status:b}}catch{if(d.includes("data:"))return{text:i(d),status:b};return{text:d,status:b}}}catch{return{text:"",status:b}}}function g(a){if(!a||"object"!=typeof a)return"";let b=a?.choices?.[0];if(b?.message?.content){let a=b.message.content;if("string"==typeof a)return a;if(Array.isArray(a))return a.map(a=>a?.text||a?.content||"").join("")}if("string"==typeof b?.text)return b.text;if(Array.isArray(a?.content))return a.content.map(a=>a?.text||"").join("");if("string"==typeof a?.content)return a.content;let c=a?.candidates?.[0]?.content?.parts;if(Array.isArray(c))return c.map(a=>a?.text||"").join("");if(Array.isArray(a?.output)){let b=[];for(let c of a.output)if(c?.type==="message"&&Array.isArray(c.content))for(let a of c.content)a?.type==="output_text"&&a.text?b.push(a.text):"string"==typeof a?.text&&b.push(a.text);if(b.length)return b.join("")}return""}function h(a){return i(a)}function i(a){let b=[];for(let c of String(a||"").split("\n")){let a=c.trim();if(!a.startsWith("data:"))continue;let d=a.slice(5).trim();if(d&&"[DONE]"!==d)try{let a=JSON.parse(d),c=a?.choices?.[0]?.delta?.content;"string"==typeof c&&b.push(c);let e=a?.choices?.[0]?.message?.content;"string"==typeof e&&b.push(e),a?.type==="content_block_delta"&&a?.delta?.text&&b.push(a.delta.text),a?.delta?.type==="text_delta"&&a?.delta?.text&&b.push(a.delta.text);let f=a?.candidates?.[0]?.content?.parts;if(Array.isArray(f))for(let a of f)"string"==typeof a?.text&&b.push(a.text)}catch{}}return b.join("")}function j(a){return!!a&&"object"==typeof a&&!!(a.error||"error"===a.type||a.choices?.[0]?.error)}function k(a){return l(a)}function l(a){if(!a||a.length<4)return!1;for(let b of String(a).split(/\r?\n/)){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{let a=JSON.parse(c);if(j(a))continue;let b=a?.choices?.[0]?.delta;if("string"==typeof b?.content&&b.content.length>0||Array.isArray(b?.tool_calls)&&b.tool_calls.length>0||b?.function_call&&(b.function_call.name||b.function_call.arguments))return!0;let d=a?.choices?.[0]?.message;if("string"==typeof d?.content&&d.content.length>0||Array.isArray(d?.tool_calls)&&d.tool_calls.length>0||a?.type==="response.output_text.delta"||a?.type==="response.function_call_arguments.delta"||"string"==typeof a?.delta&&a.delta.length>0&&a.type?.includes("output")||a?.type==="content_block_delta"&&(a?.delta?.type==="text_delta"&&a?.delta?.text||a?.delta?.type==="input_json_delta"||"string"==typeof a?.delta?.partial_json||"string"==typeof a?.delta?.text&&a.delta.text&&"thinking_delta"!==a.delta.type)||a?.type==="content_block_start"&&(a?.content_block?.type==="tool_use"||a?.content_block?.type==="text"&&"string"==typeof a.content_block.text&&a.content_block.text.length>0))return!0;let e=a?.candidates?.[0]?.content?.parts;if(Array.isArray(e)){for(let a of e)if(a?.functionCall||"string"==typeof a?.text&&a.text.length>0&&!0!==a.thought)return!0}}catch{}}return!1}function m(a){return!a||a.length<8?null:function(a){let b=null;for(let c of String(a||"").split("\n")){let a=c.trim();if(!a.startsWith("data:"))continue;let d=a.slice(5).trim();if(d&&"[DONE]"!==d)try{let a=JSON.parse(d),c=o(a);c&&(b=c),a?.usage&&(b={prompt_tokens:a.usage.input_tokens??b?.prompt_tokens??0,completion_tokens:a.usage.output_tokens??b?.completion_tokens??0}),a?.message?.usage&&(b={prompt_tokens:a.message.usage.input_tokens??0,completion_tokens:a.message.usage.output_tokens??0})}catch{}}return b}(a.length>8e3?a.slice(-8e3):a)}function n(a){if(!a||"object"!=typeof a)return!1;if(g(a).length>0)return!0;let b=a?.choices?.[0],c=b?.message;if(Array.isArray(c?.tool_calls)&&c.tool_calls.length>0||c?.function_call&&(c.function_call.name||c.function_call.arguments)||Array.isArray(a?.content)&&a.content.some(a=>a?.type==="tool_use"||a?.type==="function")||Array.isArray(a?.output)&&a.output.some(a=>a?.type==="function_call"||a?.type==="tool_call"||a?.type==="custom_tool_call"))return!0;let d=a?.candidates?.[0]?.content?.parts;return!!(Array.isArray(d)&&d.some(a=>a?.functionCall))}function o(a){return a&&"object"==typeof a?a.usage?.prompt_tokens!=null||a.usage?.completion_tokens!=null?{prompt_tokens:a.usage.prompt_tokens??0,completion_tokens:a.usage.completion_tokens??0}:a.usage?.input_tokens!=null||a.usage?.output_tokens!=null?{prompt_tokens:a.usage.input_tokens??0,completion_tokens:a.usage.output_tokens??0}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount??0,completion_tokens:a.usageMetadata.candidatesTokenCount??0}:null:null}c.d(b,{Ah:()=>m,Ki:()=>k,NT:()=>h,R5:()=>n,dO:()=>f,f5:()=>o,wx:()=>d})},3072:(a,b,c)=>{c.d(b,{Pr:()=>A,UP:()=>x,Vu:()=>y,t8:()=>w,vt:()=>E,xP:()=>t});var d=c(49263),e=c(89865),f=c(60290),g=c(43904),h=c(48644),i=c(17717),j=c(19956),k=c(48664),l=c(45894),m=c(4905),n=c(1354),o=c(5770);let p=new Set(["vision","pdf","audioInput","videoInput"]),q="[Called tools: ",r="[Tool result: ";function s(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${r}${(0,h.kU)(a.content)||String(a.content??"")}]`};if("assistant"===a.role&&Array.isArray(a.tool_calls)){let{tool_calls:b,...c}=a,d=b.map(a=>a?.function?.name||a?.name||"tool").join(", "),e=(0,h.kU)(c.content)||("string"==typeof c.content?c.content:"");return{...c,content:`${e}${e?"\n":""}${q}${d}]`}}if(Array.isArray(a.content)){let b=a.content.some(a=>"tool_use"===a.type),c=a.content.some(a=>"tool_result"===a.type);if(b||c){let b=[],c=[],d=[];for(let e of a.content)"text"===e.type&&e.text&&b.push(e.text),"tool_use"===e.type&&c.push(e.name||"tool"),"tool_result"===e.type&&d.push((0,h.kU)(e.content)||String(e.content??""));let{...e}=a,f=b.join("\n");return c.length>0&&(f=`${f}${f?"\n":""}${q}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${r}${d.join("\n")}]`),{...e,content:f}}}return a})}function t(a,b){if(!b||0===b.size||!Array.isArray(a)||a.length<=1)return a;let c=[...b].filter(a=>p.has(a)),d=[...b].filter(a=>!p.has(a)),e=a.map((a,b)=>{let e,f,h,i;return{m:a,i:b,t:(f=(e="string"==typeof a?a.indexOf("/"):-1)>0?a.slice(0,e):"",h=e>0?a.slice(e+1):a,i=(0,g.nl)(f,h),c.every(a=>!0===i[a])?+!d.every(a=>!0===i[a]):2)}}).sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m);return e.every((b,c)=>b===a[c])?a:e}let u=new Map;function v(a){if(!Array.isArray(a)||0===a.length)return[];let b=a=>"assistant"===a||"model"===a,c=a.length-1;for(;c>=0&&!b(a[c]?.role);)c--;return a.slice(c+1)}function w(a){let b=new Set;if(!a||"object"!=typeof a)return b;let c=a=>{"string"==typeof a&&(a.startsWith("image/")?b.add("vision"):"application/pdf"===a?b.add("pdf"):a.startsWith("audio/")?b.add("audioInput"):a.startsWith("video/")&&b.add("videoInput"))},d=a=>{if(!a||"object"!=typeof a)return;let d=a.type;if(("image_url"===d||"image"===d||"input_image"===d)&&b.add("vision"),("input_audio"===d||"audio_url"===d||"audio"===d)&&b.add("audioInput"),("input_video"===d||"video_url"===d||"video"===d)&&b.add("videoInput"),"file"===d||"document"===d||"input_file"===d){let d=null;a.input_audio?.format?d=`audio/${a.input_audio.format}`:a.file?.file_data?d=String(a.file.file_data).match(/^data:([^;,]+)/)?.[1]:a.source?.media_type?d=a.source.media_type:a.source?.data&&(d=String(a.source.data).match(/^data:([^;,]+)/)?.[1]),d?c(d):b.add("pdf")}c(a.inlineData?.mimeType||a.fileData?.mimeType)},e=a=>{if(Array.isArray(a))for(let b of a)d(b)},f=a=>{if(!a||"object"!=typeof a)return;Array.isArray(a.images)&&a.images.length>0&&b.add("vision");let d=a.experimental_attachments||a.attachments;if(Array.isArray(d))for(let a of d){if(!a)continue;let d=a.contentType||a.mediaType||"string"==typeof a.url&&a.url.match(/^data:([^;,]+)/)?.[1];d?c(d):(a.url||a.data)&&b.add("vision")}(a.image_url||a.image)&&b.add("vision"),(a.audio_url||a.audio)&&b.add("audioInput"),e(a.content),"string"==typeof a.content&&(a.content.includes("data:image/")?b.add("vision"):a.content.includes("data:audio/")?b.add("audioInput"):a.content.includes("data:application/pdf")&&b.add("pdf"))};for(let b of v(a.messages))f(b);for(let b of v(a.input))e(b.content);for(let b of v(a.contents||a.request?.contents))e(b.parts);return Array.isArray(a.tools)&&a.tools.some(a=>a?.type==="web_search"||a?.type==="web_search_preview")&&b.add("search"),b}function x(a){a?u.delete(a):u.clear()}function y(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}function z(){return new Response(JSON.stringify({error:{message:"Request aborted"}}),{status:499,headers:{"Content-Type":"application/json"}})}async function A({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:i,comboStickyLimit:j=1,autoSwitch:k=!0,providerStrategy:l="off",providerOrder:m=[],providerLatencyMs:p={},providerUsage:q={},providerQuota:r={},providerLatencyGuardMs:s,abortSignal:v=null,clientAbortSignal:x=null,signal:y=null,childComboDepth:B=0,autoDepth:C=0}){let D=v||x||y||null;if(D?.aborted)return z();if(B+C>f.wg)return g.warn("COMBO",`Combo nesting limit (combo ${B} + auto ${C})`),(0,e.yj)(f.gx.BAD_REQUEST,`Combo nesting too deep (>${f.wg})`);let E=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let f=b||"__default__",g=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,h=u.get(f),i="number"==typeof h?{index:h,consecutiveUseCount:0}:h||{index:0,consecutiveUseCount:0},j=i.index%a.length,k=function(a,b){let c=[...a];for(let a=0;a<b;a++){let a=c.shift();c.push(a)}return c}(a,j),l=i.consecutiveUseCount+1;return l>=g?u.set(f,{index:(j+1)%a.length,consecutiveUseCount:0}):u.set(f,{index:j,consecutiveUseCount:l}),k}(b,h,i,j),F=k||"off"!==l?w(a):null;if(k&&F?.size>0){let a=t(E,F);a[0]!==E[0]&&g.info("COMBO",`auto-switch for [${[...F].join(",")}] → ${a[0]}`),E=a}if("off"!==l)try{let a=(0,o.vL)(E,{strategy:l,providerOrder:m,providerLatencyMs:p,providerUsage:q,providerQuota:r,guardMs:s??o.Qm,rotationKey:h});E=F?.size>0?t(a,F):a}catch{}let G=null,H=null,I=null;for(let b=0;b<E.length;b++){let e=E[b];g.info("COMBO",`Trying model ${b+1}/${E.length}: ${e}`);try{let b="function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a)),f=await c(b,e,{signal:D||void 0,comboDepth:B,autoDepth:C});if(D?.aborted)return z();if(f.ok){let a=await (0,n.wx)(f,g,{abortSignal:D});if(D?.aborted)return z();if(a.ok)return g.info("COMBO",`Model ${e} succeeded`),a.result;G=a.reason||"empty_2xx",g.warn("COMBO",`Model ${e} returned empty/incomplete 2xx (${a.reason}), falling back`);continue}let h=f.statusText||"",i=null;try{let a=await f.clone().json();h=a?.error?.message||a?.error||a?.message||h,i=a?.retryAfter||null}catch{}if(i&&(!H||new Date(i)<new Date(H))&&(H=i),"string"!=typeof h)try{h=JSON.stringify(h)}catch{h=String(h)}let j=404===f.status,{shouldFallback:k,cooldownMs:l}=(0,d.hk)(f.status,h);if(!(j||k))return g.warn("COMBO",`Model ${e} failed (no fallback)`,{status:f.status}),f;if(l&&l>0&&(503===f.status||502===f.status||504===f.status)){let b=Math.min(l,1e3);if(g.info("COMBO",`Model ${e} transient ${f.status}, waiting ${b}ms then retrying`),await function(a,b){return new Promise(!b||a<=0?b=>setTimeout(b,a):c=>{let d=null,e=()=>{d&&clearTimeout(d),b.removeEventListener("abort",e),c()};d=setTimeout(e,a),b.aborted?e():b.addEventListener("abort",e,{once:!0})})}(b,D),D?.aborted)return z();try{let d="function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a)),f=await c(d,e,{signal:D||void 0,comboDepth:B,autoDepth:C});if(D?.aborted)return z();if(f.ok){let a=await (0,n.wx)(f,g,{abortSignal:D});if(D?.aborted)return z();if(a.ok)return g.info("COMBO",`Model ${e} succeeded on retry after ${b}ms cooldown`),a.result}G=`retry_${f.status}_${f.statusText||""}`,I||(I=f.status),g.warn("COMBO",`Model ${e} retry also failed (${f.status}), moving on`);continue}catch(a){G=a.message||String(a),I||(I=503),g.warn("COMBO",`Model ${e} retry threw error`,{error:G});continue}}G=h||String(f.status),I||(I=f.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:f.status})}catch(a){if(D?.aborted)return z();G=a.message||String(a),I||(I=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:G})}}let J=G&&G.toLowerCase().includes("no credentials")?503:I||503,K=G||"All combo models unavailable";if(H){let a=(0,d.Qo)(H);return g.warn("COMBO",`All models failed | ${K} (${a})`),(0,e.wO)(J,K,H,a)}return g.warn("COMBO",`All models failed | ${K}`),new Response(JSON.stringify({error:{message:K}}),{status:J,headers:{"Content-Type":"application/json"}})}function B(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];if(b){let a=b.message??b.delta??{},c=(0,h.kU)(a.content);if(c.trim())return c;if("string"==typeof b.text&&b.text.trim())return b.text}let c=(0,h.kU)(a.content);if(c.trim())return c;let d=a.candidates?.[0]?.content?.parts;if(Array.isArray(d)){let a=d.map(a=>a?.text||"").join("");if(a.trim())return a}let e=a.response?.candidates?.[0]?.content?.parts;if(Array.isArray(e)){let a=e.map(a=>a?.text||"").join("");if(a.trim())return a}if(Array.isArray(a.output)){let b=a.output.flatMap(a=>Array.isArray(a.content)?a.content.map(a=>a?.text||""):[]).join("");if(b.trim())return b}return""}async function C(a,b,c){var d;let e,f;if(!a?.ok||b?.stream!==!0||(a.headers?.get?.("content-type")||"").toLowerCase().includes("text/event-stream"))return a;try{let b="function"==typeof a.clone?a.clone():a;e=await b.json()}catch{return a}let g=(d=e,(f=function(a){try{return(0,i.Tz)(a)||j.h.OPENAI}catch{return j.h.OPENAI}}(b))!==j.h.OPENAI?f:d?.type==="message"||Array.isArray(d?.content)?j.h.CLAUDE:d?.object==="response"||Array.isArray(d?.output)&&b?.input?j.h.OPENAI_RESPONSES:Array.isArray(d?.candidates)||Array.isArray(d?.response?.candidates)?b?.userAgent===j.h.ANTIGRAVITY?j.h.ANTIGRAVITY:j.h.GEMINI:f),h=function(a,b,c){let d=`chatcmpl-${Date.now()}`,e=c||b?.model||"combo",f=Math.floor(Date.now()/1e3);if(Array.isArray(a?.choices)&&a.choices.length>0)return{...a,id:a.id||d,object:a.object||"chat.completion",created:a.created||f,model:a.model||e,choices:a.choices.map((a,b)=>({...a,index:a.index??b,message:{role:a.message?.role||"assistant",...a.message||{}}}))};let g=function(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0]?.message?.reasoning_content;if("string"==typeof b)return b;let c=Array.isArray(a.content)?a.content.filter(a=>a?.type==="thinking").map(a=>a.thinking||"").join(""):"";if(c)return c;let d=a.candidates?.[0]?.content?.parts||a.response?.candidates?.[0]?.content?.parts;return Array.isArray(d)?d.filter(a=>a?.thought===!0).map(a=>a.text||"").join(""):""}(a);return{id:a?.id||d,object:"chat.completion",created:a?.created||f,model:a?.model||e,choices:[{index:0,message:{role:"assistant",content:B(a),...g?{reasoning_content:g}:{}},finish_reason:a?.stop_reason||"stop"}],...a?.usage?{usage:a.usage}:{}}}(e,b,c),n=(0,k.Ws)(g),o=[];for(let a of function(a){let b=a.choices?.[0]||{},c=b.message||{},d={role:c.role||"assistant"};for(let a of["content","reasoning_content","tool_calls","function_call"])void 0!==c[a]&&(d[a]=c[a]);let e={id:a.id,object:"chat.completion.chunk",created:a.created,model:a.model};return[{...e,choices:[{index:b.index??0,delta:d,finish_reason:null}]},{...e,choices:[{index:b.index??0,delta:{},finish_reason:b.finish_reason||(c.tool_calls?"tool_calls":"stop")}],...a.usage?{usage:a.usage}:{}}]}(h))for(let b of(0,k.Y8)(j.h.OPENAI,g,a,n)||[])null!=b&&o.push((0,l.v8)(b,g));for(let a of(0,k.Y8)(j.h.OPENAI,g,null,n)||[])null!=a&&o.push((0,l.v8)(a,g));return(g===j.h.OPENAI||g===j.h.OPENAI_RESPONSES)&&o.push(m.$U),new Response(o.join(""),{status:a.status,headers:m.RK})}let D={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};async function E({body:a,models:b,handleSingleModel:c,log:d,comboName:g,judgeModel:h,tuning:i,abortSignal:j=null,clientAbortSignal:k=null,signal:l=null,childComboDepth:m=0,autoDepth:n=0}){var o;let p,q,r=j||k||l||null;if(r?.aborted)return z();let t=Array.isArray(b)?b.filter(Boolean):[];if(0===t.length)return new Response(JSON.stringify({error:{message:"Fusion combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});if(m+n>f.wg)return d.warn("FUSION",`Combo nesting limit (combo ${m} + auto ${n})`),(0,e.yj)(f.gx.BAD_REQUEST,`Combo nesting too deep (>${f.wg})`);if(1===t.length)try{let b=await c(a,t[0],{signal:r||void 0,comboDepth:m,autoDepth:n});return C(b,a,t[0])}catch(a){if(r?.aborted)return z();throw a}let u={...D,...i||{}},v=Math.min(Math.max(2,u.minPanel),t.length),w=h&&h.trim()?h.trim():t[0];d.info("FUSION",`Combo "${g}" | panel=${t.length} [${t.join(", ")}] | judge=${w} | quorum=${v}`);let{tools:x,tool_choice:y,...A}=a,F={...A,stream:!1};Array.isArray(F.messages)?F.messages=s(F.messages):Array.isArray(F.input)&&(F.input=s(F.input));let G=Date.now(),H=t.map(()=>new AbortController),I=H.map(a=>(function(...a){let b=a.filter(a=>a&&"object"==typeof a);if(0===b.length)return;if(1===b.length)return b[0];if("function"==typeof AbortSignal.any)return AbortSignal.any(b);let c=new AbortController,d=a=>{try{c.abort(a?.target?.reason)}catch{}};for(let a of b){if(a.aborted){d({target:a});break}a.addEventListener("abort",d,{once:!0})}return c.signal})(r,a.signal)),J=t.map((a,b)=>{var d,e,f;return d=c("function"==typeof structuredClone?structuredClone(F):JSON.parse(JSON.stringify(F)),a,{isPanel:!0,signal:I[b],comboDepth:m,autoDepth:n}),e=u.panelHardTimeoutMs,f=H[b],new Promise(a=>{let b=setTimeout(()=>{try{f?.abort?.(Error("fusion panel hard timeout"))}catch{}a({__timeout:!0})},e);Promise.resolve(d).then(c=>{clearTimeout(b),a(c)}).catch(c=>{clearTimeout(b),c?.name==="AbortError"||f?.signal?.aborted?a({__timeout:!0,__aborted:!0}):a({__error:c})})})}),K=await function(a,{minPanel:b,stragglerGraceMs:c,panelHardTimeoutMs:d,abortControllers:e=[],abortSignal:f=null}){return new Promise(g=>{let h=Array(a.length),i=0,j=0,k=!1,l=null,m=null,n=()=>o(),o=()=>{if(!k){for(let a of(k=!0,m&&clearTimeout(m),l&&clearTimeout(l),f?.removeEventListener?.("abort",n),e))if(a&&!a.signal.aborted)try{a.abort(Error("fusion panel collection finished"))}catch{}g(h)}};if(m=setTimeout(o,d),f){if(f.aborted)return void o();f.addEventListener("abort",n,{once:!0})}a.forEach((d,e)=>{Promise.resolve(d).then(a=>{h[e]=a}).catch(a=>{h[e]={__error:a}}).finally(()=>{if(i++,h[e]&&h[e].ok&&j++,i===a.length)return o();j>=b&&!l&&(l=setTimeout(o,c))})})})}(J,{...u,minPanel:v,abortControllers:H,abortSignal:r});if(d.info("FUSION",`fan-out collected in ${Date.now()-G}ms`),r?.aborted)return z();let L=[];for(let a=0;a<K.length;a++){let b=K[a],c=t[a];if(!b){d.warn("FUSION",`Panel ${c} dropped (straggler/timeout)`);continue}if(b.__timeout){d.warn("FUSION",`Panel ${c} timed out`);continue}if(b.__error){d.warn("FUSION",`Panel ${c} threw`,{error:b.__error?.message||String(b.__error)});continue}if(!b.ok){d.warn("FUSION",`Panel ${c} failed`,{status:b.status});continue}try{let a=await b.clone().json(),e=B(a);e?(L.push({model:c,text:e,json:a,response:b}),d.info("FUSION",`Panel ${c} ok (${e.length} chars)`)):d.warn("FUSION",`Panel ${c} returned empty content`)}catch(a){d.warn("FUSION",`Panel ${c} unparseable`,{error:a.message||String(a)})}}if(0===L.length)return d.warn("FUSION","All panel models failed"),new Response(JSON.stringify({error:{message:"All fusion panel models failed"}}),{status:503,headers:{"Content-Type":"application/json"}});if(1===L.length)return d.info("FUSION",`Only ${L[0].model} succeeded — returning buffered answer (no re-dispatch)`),C(L[0].response,a,L[0].model);let M=(p=L.map((a,b)=>`[Source ${b+1}]
|
|
2
|
-
${a.text}`).join("\n\n"),o=[`You are the JUDGE in a model-fusion panel. ${L.length} expert models independently answered the user's most recent request. Their responses are below, anonymized by source.`,"\nDo NOT mention that multiple models were used, and do NOT refer to the sources. Produce ONE authoritative final answer addressed directly to the user.\n\nFirst, internally analyze the panel along these dimensions: consensus (points most sources agree on — treat as higher-confidence), contradictions (where they disagree — resolve with your own judgment), partial coverage, unique insights only one source surfaced, and blind spots every source missed. Then write the best possible final answer grounded in that analysis — more complete and correct than any single response, with no filler.\n\n=== PANEL RESPONSES ===",p,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n"),q={...a},Array.isArray(a.messages)?q.messages=[...a.messages,{role:"user",content:o}]:Array.isArray(a.input)?q.input=[...a.input,{type:"message",role:"user",content:[{type:"input_text",text:o}]}]:Array.isArray(a.contents)?q.contents=[...a.contents,{role:"user",parts:[{text:o}]}]:q.messages=[{role:"user",content:o}],q);d.info("FUSION",`Judging ${L.length} answers with ${w}`);try{let b=await c(M,w,{signal:r||void 0,comboDepth:m,autoDepth:n});if(!b?.ok){let c=L.reduce((a,b)=>a.text.length>=b.text.length?a:b);return d.warn("FUSION",`Judge ${w} failed (${b?.status}), falling back to best panel answer`),C(c.response,a,c.model)}return C(b,a,w)}catch(c){if(r?.aborted)return z();let b=L.reduce((a,b)=>a.text.length>=b.text.length?a:b);return d.warn("FUSION",`Judge ${w} threw, falling back to best panel answer`,{error:c?.message||String(c)}),C(b.response,a,b.model)}}},5425:(a,b,c)=>{function d(a){let b=a?.thread;return!!b&&"object"==typeof b&&!Array.isArray(b)&&"continue"===b.type&&"string"==typeof b.previous_message_id&&b.previous_message_id.trim().length>0}function e(a){return!!a?.thread&&"object"==typeof a.thread&&!Array.isArray(a.thread)}c.d(b,{k:()=>d,r:()=>e})},43429:(a,b,c)=>{c.d(b,{Y:()=>e});let d=["user-agent","anthropic-beta","anthropic-version","anthropic-dangerous-direct-browser-access","x-app","x-stainless-helper-method","x-stainless-retry-count","x-stainless-runtime-version","x-stainless-package-version","x-stainless-runtime","x-stainless-lang","x-stainless-arch","x-stainless-os","x-stainless-timeout","x-claude-code-session-id","package-version","runtime-version","os","arch"];function e(a){if(!a||"object"!=typeof a)return null;let b={};for(let c of d)void 0!==a[c]&&null!==a[c]&&(b[c]=a[c]);return Object.keys(b).length>0?b:null}},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252);async function e(a,b){let c=a?.body?.getReader?.();if(!c)try{return(await a.text()).slice(0,b)}catch{return""}let d=new TextDecoder,e="",f=0;try{for(;f<b;){let{done:a,value:g}=await c.read();if(a)break;let h=g instanceof Uint8Array?g:new Uint8Array(g),i=b-f;if(e+=d.decode(h.subarray(0,i),{stream:h.byteLength<=i}),f+=Math.min(h.byteLength,i),h.byteLength>i){try{await c.cancel("upstream error body limit")}catch{}break}}return e+d.decode()}catch{return e}finally{try{c.releaseLock?.()}catch{}}}function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json"}})}async function g(a,b=null){let c=await e(a,65536);if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let f="";try{let a=JSON.parse(c);f="string"==typeof a?.error?.message?a.error.message:"string"==typeof a?.message?a.message:"string"==typeof a?.error_description?a.error_description:"string"==typeof a?.error?a.error:""}catch{f=c}let h=("string"==typeof f?f:"")||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}}};
|
|
2
|
+
${a.text}`).join("\n\n"),o=[`You are the JUDGE in a model-fusion panel. ${L.length} expert models independently answered the user's most recent request. Their responses are below, anonymized by source.`,"\nDo NOT mention that multiple models were used, and do NOT refer to the sources. Produce ONE authoritative final answer addressed directly to the user.\n\nFirst, internally analyze the panel along these dimensions: consensus (points most sources agree on — treat as higher-confidence), contradictions (where they disagree — resolve with your own judgment), partial coverage, unique insights only one source surfaced, and blind spots every source missed. Then write the best possible final answer grounded in that analysis — more complete and correct than any single response, with no filler.\n\n=== PANEL RESPONSES ===",p,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n"),q={...a},Array.isArray(a.messages)?q.messages=[...a.messages,{role:"user",content:o}]:Array.isArray(a.input)?q.input=[...a.input,{type:"message",role:"user",content:[{type:"input_text",text:o}]}]:Array.isArray(a.contents)?q.contents=[...a.contents,{role:"user",parts:[{text:o}]}]:q.messages=[{role:"user",content:o}],q);d.info("FUSION",`Judging ${L.length} answers with ${w}`);try{let b=await c(M,w,{signal:r||void 0,comboDepth:m,autoDepth:n});if(!b?.ok){let c=L.reduce((a,b)=>a.text.length>=b.text.length?a:b);return d.warn("FUSION",`Judge ${w} failed (${b?.status}), falling back to best panel answer`),C(c.response,a,c.model)}return C(b,a,w)}catch(c){if(r?.aborted)return z();let b=L.reduce((a,b)=>a.text.length>=b.text.length?a:b);return d.warn("FUSION",`Judge ${w} threw, falling back to best panel answer`,{error:c?.message||String(c)}),C(b.response,a,b.model)}}},5425:(a,b,c)=>{function d(a){let b=a?.thread;return!!b&&"object"==typeof b&&!Array.isArray(b)&&"continue"===b.type&&"string"==typeof b.previous_message_id&&b.previous_message_id.trim().length>0}function e(a){return!!a?.thread&&"object"==typeof a.thread&&!Array.isArray(a.thread)}c.d(b,{k:()=>d,r:()=>e})},43429:(a,b,c)=>{c.d(b,{Y:()=>e});let d=["user-agent","anthropic-beta","anthropic-version","anthropic-dangerous-direct-browser-access","x-app","x-stainless-helper-method","x-stainless-retry-count","x-stainless-runtime-version","x-stainless-package-version","x-stainless-runtime","x-stainless-lang","x-stainless-arch","x-stainless-os","x-stainless-timeout","x-claude-code-session-id","package-version","runtime-version","os","arch"];function e(a){if(!a||"object"!=typeof a)return null;let b={};for(let c of d)void 0!==a[c]&&null!==a[c]&&(b[c]=a[c]);return Object.keys(b).length>0?b:null}},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252);async function e(a,b){let c=a?.body?.getReader?.();if(!c)try{return(await a.text()).slice(0,b)}catch{return""}let d=new TextDecoder,e="",f=0;try{for(;f<b;){let{done:a,value:g}=await c.read();if(a)break;let h=g instanceof Uint8Array?g:new Uint8Array(g),i=b-f;if(e+=d.decode(h.subarray(0,i),{stream:h.byteLength<=i}),f+=Math.min(h.byteLength,i),h.byteLength>i){try{await c.cancel("upstream error body limit")}catch{}break}}return e+d.decode()}catch{return e}finally{try{c.releaseLock?.()}catch{}}}function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json"}})}async function g(a,b=null){let c=await e(a,65536);if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs,rawBody:c}}}catch{}let f="";try{let a=JSON.parse(c);f="string"==typeof a?.error?.message?a.error.message:"string"==typeof a?.message?a.message:"string"==typeof a?.error_description?a.error_description:"string"==typeof a?.error?a.error:""}catch{f=c}let h=("string"==typeof f?f:"")||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h,rawBody:c}}function h(a,b,c,d){let e=null;if("string"==typeof d&&d)try{JSON.parse(d),e=new Response(d,{status:a,headers:{"Content-Type":"application/json"}})}catch{}return{success:!1,status:a,error:b,resetsAtMs:c,response:e||f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}}};
|