switchboard-router 0.9.45 → 0.9.48
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-bdff37b474a387c0.js → .next/static/chunks/1321-73cba51ca6694ffa.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-cf70f587dc7ab205.js +1 -0
- package/app/.next/static/css/912e8e046d0cd4ca.css +1 -0
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +20 -20
- 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 +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/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 +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- 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 +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
- 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 +5 -5
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +20 -20
- package/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/app/.next-cli-build/server/chunks/2619.js +1 -1
- package/app/.next-cli-build/server/chunks/2847.js +1 -1
- package/app/.next-cli-build/server/chunks/369.js +3 -3
- package/app/.next-cli-build/server/chunks/5717.js +1 -1
- package/app/.next-cli-build/server/chunks/5781.js +2 -2
- package/app/.next-cli-build/server/chunks/6533.js +1 -1
- package/app/.next-cli-build/server/chunks/7201.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8942.js +1 -1
- package/app/.next-cli-build/server/chunks/8998.js +8 -8
- package/app/.next-cli-build/server/chunks/9264.js +2 -2
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +8 -8
- 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-bdff37b474a387c0.js → .next-cli-build/static/chunks/1321-73cba51ca6694ffa.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-cf70f587dc7ab205.js +1 -0
- package/app/.next-cli-build/static/css/912e8e046d0cd4ca.css +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-2050b8c10234b86e.js +0 -1
- package/app/.next/static/css/5c8909d9cd96e270.css +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-2050b8c10234b86e.js +0 -1
- package/app/.next-cli-build/static/css/5c8909d9cd96e270.css +0 -1
- /package/app/.next/static/{67uh5PHd0ouLGa9jpqi0E → MSigI0uI9w5TrE5x-BeGU}/_buildManifest.js +0 -0
- /package/app/.next/static/{67uh5PHd0ouLGa9jpqi0E → MSigI0uI9w5TrE5x-BeGU}/_ssgManifest.js +0 -0
- /package/app/.next-cli-build/static/{67uh5PHd0ouLGa9jpqi0E → MSigI0uI9w5TrE5x-BeGU}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{67uh5PHd0ouLGa9jpqi0E → MSigI0uI9w5TrE5x-BeGU}/_ssgManifest.js +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
`)),a.enqueue(f.encode(`data: ${JSON.stringify(g([{index:0,delta:{},finish_reason:"stop"}]))}
|
|
6
6
|
|
|
7
|
-
`)),a.enqueue(f.encode("data: [DONE]\n\n")),a.close()}});return new Response(h,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}(!!c.stream,e)}(0,z.lg)(g),(0,z.LH)(g,i)}b&&(c.messages=(0,z.Jl)(c.messages))}}catch(a){A.warn?.("FEEDBACK",`capture/strip failed (ignored): ${a?.message||a}`)}let k=(0,r.t8)(c);if(n){let f=(0,l.tg)({models:n,comboName:e,settings:m,log:A});if(f.response)return f.response;n=f.models;let g=m.comboStrategies||{},h=g[e]?.fallbackStrategy||m.comboStrategy||"fallback";if("fusion"===h)return A.info("CHAT",`Combo "${e}" with ${n.length} models (strategy: fusion)`),(0,r.vt)({body:c,models:n,handleSingleModel:(c,e,f)=>{let g=!0===f?{isPanel:!0}:f||{},h=b;if(g.isPanel&&b){let{tools:a,tool_choice:c,...d}=b.body||{};h={...b,body:d}}return R(c,e,h,a,d,{...g,signal:g.signal||null})},log:A,comboName:e,judgeModel:g[e]?.judgeModel,tuning:g[e]?.fusionTuning,abortSignal:a?.signal||null,childComboDepth:1});if("auto"===h){let h=g[e]||{},i=!0===h.feedbackAsk,k=null;if(i)try{let b=(0,x.t)(new URL(a.url).pathname,c),e=(0,z.Mc)(c.messages),f=(0,z.EN)(d||"local-no-key");k={apiKeyHash:f,conversationFp:(0,z.sO)(e.firstUserText,f),openAiWire:"openai"===b,gateOk:!(c.tools&&c.tools.length||c.functions&&c.functions.length)&&Number(e.userTurns)>=2,feedbackAsk:!0}}catch{k=null}let m=h.routerModel;if(m&&await (0,j.getComboModels)(m))return A.warn("CHAT",`Auto routerModel is a combo (${m}) — rejected`),(0,q.yj)(w.gx.BAD_REQUEST,`routerModel cannot be a combo ("${m}"). Use a single provider/model.`);let o=[];for(let a of n)a!==m&&o.push(a);if(!o.length&&f.skipped.length)return(0,l.tW)({comboName:e,skipped:f.skipped.filter(a=>a.model!==m),log:A});let p={};for(let a of o)try{p[a]=await (0,C.w)(a)}catch{p[a]={}}return A.info("CHAT",`Combo "${e}" with ${o.length} workers (strategy: auto)`),(0,t.EA)({body:c,models:[...o,...n.includes(m)?[m]:[]],handleSingleModel:(c,e,f)=>R(c,e,b,a,d,{...f||{},comboDepth:0}),log:A,comboName:e,strategy:h,loadLearning:K,loadStats:L,loadGlobalStats:a=>(0,I.PO)(`gstats:${a}`,()=>(0,H.cX)(a),15e3),loadClusterP50:(a,b,c)=>(0,I.PO)(`p50:${a}:${b}:${c}`,()=>(0,H._6)(a,b,c)),loadProviderLatency:M,loadProviderUsage:N,loadProviderQuota:O,recordEvent:(0,l.zw)(a=>(0,H.ex)(a),f.skipped),applyJudgeScore:(a,b)=>(0,H.Vp)(a,b),autoDepth:0,clientAbortSignal:a?.signal||null,feedbackCtx:k,workerCaps:p})}let i=(0,s.R8)(n,k,m),o=i.filter(a=>!n.includes(a)),p=m.comboStickyRoundRobinLimit,u=g[e]||{},v=!1!==u.capacityAutoSwitch,y=u.providerStrategy&&"off"!==u.providerStrategy?await P(u):null;return A.info("CHAT",`Combo "${e}" with ${i.length} models (strategy: ${h}, sticky: ${p}, capacitySwitch: ${v})`),(0,r.Pr)({body:c,models:i,handleSingleModel:(0,s.ar)((c,e,f)=>R(c,e,b,a,d,f),o),log:A,comboName:e,comboStrategy:h,comboStickyLimit:p,autoSwitch:v,...y||{},abortSignal:a?.signal||null,childComboDepth:1})}let p=(0,s.R8)([e],k,m);if(p.length>1){let f=p.filter(a=>a!==e);return A.info("CHAT",`Capacity adapter for [${[...k].join(",")}] on "${e}" → trying ${p.join(", ")}`),(0,r.Pr)({body:c,models:p,handleSingleModel:(0,s.ar)((c,e,f)=>R(c,e,b,a,d,{...f||{},signal:f?.signal||a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0}),f),log:A,comboName:e,comboStrategy:(0,s.vB)(k,m),abortSignal:a?.signal||null,childComboDepth:1})}let u=null;try{u=(0,x.t)(new URL(a.url).pathname,c)}catch{}if(!(m.tokenSaver?.vault&&Array.isArray(c.tools)&&c.tools.length>0&&("openai"===u||"claude"===u)))return R(c,e,b,a,d,{signal:a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0});try{let f=(0,z.Bk)(c.messages,(0,z.EN)(d||"local-no-key"));if(!f)return R(c,e,b,a,d,{signal:a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0});await (0,y.Xy)(c,{conversationId:f}),(0,y.Ag)(c,u);let i=Number(m.tokenSaver?.vaultSearchLimit??5);return await (0,y.SS)({dispatch:(c,i)=>R(c,e,b,a,d,{signal:a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0,vaultInternal:!!i?.vaultInternal,vaultStore:!0,vaultConversationId:f}),body:c,wire:u,conversationId:f,searchLimit:i,log:A})}catch{return R(c,e,b,a,d,{signal:a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0})}})}async function R(a,b,c=null,d=null,e=null,i=null){let u=[d?.signal,i?.signal].filter(Boolean),v=u.length>1?AbortSignal.any(u):u[0],y=()=>(0,q.yj)(499,"Request aborted");if(v?.aborted)return y();await (0,k.vA)();let B=await (0,j.getModelInfo)(b),F=i?.autoDepth||0,J=i?.comboDepth||0;if(!B.provider){let f=await (0,j.getComboModels)(b);if(f){let g=await (0,h.mt)(),k=(0,l.tg)({models:f,comboName:b,settings:g,log:A});if(k.response)return k.response;f=k.models;let m=(0,r.t8)(a),n=(0,s.R8)(f,m,g),o=n.filter(a=>!f.includes(a)),p=g.comboStrategies||{},u=p[b]?.fallbackStrategy||g.comboStrategy||"fallback";if("auto"!==u&&J>=w.wg)return A.warn("CHAT",`Combo nesting limit at "${b}" (depth ${J})`),(0,q.yj)(w.gx.BAD_REQUEST,`Combo nesting too deep (>${w.wg}) at "${b}"`);if("fusion"===u)return A.info("CHAT",`Combo "${b}" with ${f.length} models (strategy: fusion)`),(0,r.vt)({body:a,models:f,handleSingleModel:(a,b,f)=>{let g=!0===f?{isPanel:!0}:f||{},h=c;if(g.isPanel&&c){let{tools:a,tool_choice:b,...d}=c.body||{};h={...c,body:d}}return R(a,b,h,d,e,{...i||{},...g,signal:g.signal||i?.signal||null})},log:A,comboName:b,judgeModel:p[b]?.judgeModel,tuning:p[b]?.fusionTuning,abortSignal:v||null,childComboDepth:J+1,autoDepth:F});if("auto"===u){if(F>=2)return A.warn("CHAT",`Auto combo recursion limit at "${b}" (depth ${F})`),(0,q.yj)(w.gx.BAD_REQUEST,`Auto combo recursion limit — "${b}" cannot nest further`);let g=p[b]||{},h=!0===g.feedbackAsk,i=null;if(h)try{let b=(0,x.t)(new URL(d.url).pathname,a),c=(0,z.Mc)(a.messages),f=(0,z.EN)(e||"local-no-key");i={apiKeyHash:f,conversationFp:(0,z.sO)(c.firstUserText,f),openAiWire:"openai"===b,gateOk:!(a.tools&&a.tools.length||a.functions&&a.functions.length)&&Number(c.userTurns)>=2,feedbackAsk:!0}}catch{i=null}let m=g.routerModel;if(m&&await (0,j.getComboModels)(m))return(0,q.yj)(w.gx.BAD_REQUEST,`routerModel cannot be a combo ("${m}")`);let n=[];for(let a of f)a!==m&&n.push(a);if(!n.length&&k.skipped.length)return(0,l.tW)({comboName:b,skipped:k.skipped.filter(a=>a.model!==m),log:A});let o={};for(let a of n)try{o[a]=await (0,C.w)(a)}catch{o[a]={}}return A.info("CHAT",`Combo "${b}" with ${n.length} workers (strategy: auto, depth=${F})`),(0,t.EA)({body:a,models:[...n,...f.includes(m)?[m]:[]],handleSingleModel:(a,b,f)=>R(a,b,c,d,e,{...f||{},comboDepth:J}),log:A,comboName:b,strategy:g,loadLearning:K,loadStats:L,loadGlobalStats:a=>(0,I.PO)(`gstats:${a}`,()=>(0,H.cX)(a),15e3),loadClusterP50:(a,b,c)=>(0,I.PO)(`p50:${a}:${b}:${c}`,()=>(0,H._6)(a,b,c)),loadProviderLatency:M,loadProviderUsage:N,loadProviderQuota:O,recordEvent:(0,l.zw)(a=>(0,H.ex)(a),k.skipped),applyJudgeScore:(a,b)=>(0,H.Vp)(a,b),autoDepth:F,comboDepth:J,clientAbortSignal:d?.signal||null,feedbackCtx:i,workerCaps:o})}let y=g.comboStickyRoundRobinLimit,B=p[b]||{},D=!1!==B.capacityAutoSwitch,E=B.providerStrategy&&"off"!==B.providerStrategy?await P(B):null;return A.info("CHAT",`Combo "${b}" with ${n.length} models (strategy: ${u}, sticky: ${y}, capacitySwitch: ${D})`),(0,r.Pr)({body:a,models:n,handleSingleModel:(0,s.ar)((a,b,f)=>R(a,b,c,d,e,f),o),log:A,comboName:b,comboStrategy:u,comboStickyLimit:y,autoSwitch:D,...E||{},abortSignal:v||null,childComboDepth:J+1,autoDepth:F})}return A.warn("CHAT","Invalid model format",{model:b}),(0,q.yj)(w.gx.BAD_REQUEST,"Invalid model format")}let{provider:Q,model:S}=B;b!==`${Q}/${S}`?A.info("ROUTING",`${b} → ${Q}/${S}`):A.info("ROUTING",`Provider: ${Q}, Model: ${S}`);let T=d?.headers?.get("user-agent")||"",U=new Set,V=null,W=null,X=(0,G.M)({request:d,provider:Q,allowNativeOAuth:i?.allowNativeClaudeOAuth===!0}),Y=(0,g.mA)({headers:d?.headers,body:a,scope:Q,clientKeyId:e});for(;;){if(v?.aborted)return y();let b=X||await (0,f.getProviderCredentials)(Q,U,S,{preferredConnectionId:i?.preferredConnectionId||null,strictPreferredConnection:i?.strictPreferredConnection===!0,sessionKey:Y,clientKeyId:e});if(v?.aborted)return y();if(!b||b.allRateLimited){if(b?.allRateLimited){let a=V||b.lastError||"Unavailable",c=W||Number(b.lastErrorCode)||w.gx.SERVICE_UNAVAILABLE;return A.warn("CHAT",`[${Q}/${S}] ${a} (${b.retryAfterHuman})`),(0,q.wO)(c,`[${Q}/${S}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===U.size)return A.warn("AUTH",`No active credentials for provider: ${Q}`),(0,q.yj)(w.gx.NOT_FOUND,`No active credentials for provider: ${Q}`);return A.warn("CHAT","No more accounts available",{provider:Q}),(0,q.yj)(W||w.gx.SERVICE_UNAVAILABLE,V||"All accounts unavailable")}A.info("AUTH",`\x1b[32mUsing ${Q} account: ${b.connectionName}\x1b[0m`);let g=b.ephemeral?b:await (0,D.eU)(Q,b);if(v?.aborted)return y();if(("antigravity"===Q||"gemini-cli"===Q)&&!g.projectId){let a=await (0,E.eG)(b.connectionId,g.accessToken,Q);a&&(g.projectId=a,(0,D.vN)(b.connectionId,{projectId:a}).catch(()=>{}))}let j=await (0,h.mt)();if(v?.aborted)return y();let k=(j.providerThinking||{})[Q]||null,l="function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a)),r=i?.sourceFormatOverride||(d?.url?(0,x.t)(new URL(d.url).pathname,a):null),s=!!i?.bypassPromptFilters,t=await (0,m.w)({body:{...l,model:`${Q}/${S}`},modelInfo:{provider:Q,model:S},credentials:g,log:A,clientRawRequest:c,connectionId:b.connectionId,userAgent:T,clientKeyId:e,ccFilterNaming:!!j.ccFilterNaming,rtkEnabled:!s&&!!j.rtkEnabled,vaultEnabled:!s&&!!i?.vaultStore&&!!j.tokenSaver?.vault,vaultThresholdKB:j.tokenSaver?.vaultThresholdKB??8,vaultTtlHours:j.tokenSaver?.vaultTtlHours??24,vaultConversationId:i?.vaultConversationId??null,headroomEnabled:!s&&!!j.headroomEnabled,headroomUrl:j.headroomUrl||n.ag,headroomCompressUserMessages:!s&&!!j.headroomCompressUserMessages,cavemanEnabled:!s&&!!j.cavemanEnabled,cavemanLevel:j.cavemanLevel||"full",ponytailEnabled:!s&&!!j.ponytailEnabled,ponytailLevel:j.ponytailLevel||"full",pxpipeEnabled:!s&&!!j.pxpipeEnabled,pxpipeMinChars:j.pxpipeMinChars,pxpipeTimeoutMs:j.pxpipeTimeoutMs,pxpipeTransform:!s&&j.pxpipeEnabled?await (0,o.RG)():null,onPxpipeEvent:p.T0,providerThinking:k,sourceFormatOverride:r,bypassNativePassthrough:!!i?.bypassNativePassthrough,vaultInternal:!!i?.vaultInternal,abortSignal:v||null,onCredentialsRefreshed:async a=>{b.ephemeral||await (0,D.vN)(b.connectionId,{...a,existingProviderSpecificData:b.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{b.ephemeral||await (0,f.Pt)(b.connectionId,b,S)},onUpstreamEmptyExhausted:async(a,c)=>{b.ephemeral||v?.aborted||await (0,f.vk)(b.connectionId,502,"string"==typeof a?a:a?.message||"empty stream",Q,S,c)}});if(v?.aborted||499===t.status){try{await t.response?.body?.cancel?.()}catch{}return y()}if(t.success||b.ephemeral)return t.response;let{shouldFallback:u}=await (0,f.vk)(b.connectionId,t.status,t.error,Q,S,t.resetsAtMs);if(u){A.warn("AUTH",`Account ${b.connectionName} unavailable (${t.status}), trying fallback`),U.add(b.connectionId),V=t.error,W=t.status;continue}return t.response}}[e,m]=J.then?(await J)():J,(0,H.tu)(a=>{(0,u.aW)(a),a?((0,I.Y3)(`stats:${a}:`),(0,I.Y3)(`learning:${a}`),(0,t.a8)(a)):(0,I.Y3)()}),d()}catch(a){d(a)}})},85432:(a,b,c)=>{c.d(b,{Kt:()=>m,MH:()=>l,vA:()=>k});var d=c(15717),e=c(19978),f=c(94454),g=c(29696);let h="compatible-reasoning:snapshot";async function i(){let a="function"==typeof d.Fh?(0,d.Fh)({type:"openai-compatible"}):Promise.resolve([]),b="function"==typeof d.uv?(0,d.uv)():Promise.resolve([]),[c,e]=await Promise.all([Promise.resolve(a).catch(()=>[]),Promise.resolve(b).catch(()=>[])]),f=new Map,h=new Map;for(let a of c){if(!a?.id||!a?.prefix)continue;let b={id:a.id,apiType:"responses"===a.apiType?"responses":"chat",staticFormat:(0,g.ml)(a.baseUrl)};f.set(a.id,b),h.set(a.prefix,b)}let i=new Map;for(let a of e){if(!a?.providerAlias||!a?.id||"llm"!==(a.type||"llm"))continue;let b=h.get(a.providerAlias);b&&(0,g.K5)(a.reasoning)&&i.set(`${b.id}|${a.id}`,a.reasoning)}return{nodesById:f,prefixToNode:h,byModel:i}}let j={nodesById:new Map,prefixToNode:new Map,byModel:new Map};async function k(a=15e3){try{let b=await (0,e.PO)(h,i,a);b&&(j=b)}catch{}}function l(){(0,e.Y3)(h)}function m(a,b){let c=j.prefixToNode.get(a);if(!c)return null;let d=j.byModel.get(`${c.id}|${b}`);return d||("none"===c.staticFormat?{supported:!1,effort:null}:c.staticFormat?{supported:!0,effort:"qwen"===c.staticFormat?null:c.staticFormat}:null)}(0,f.xl)(function(a,b){var c,d,e,f;if(!a||!a.startsWith("openai-compatible-"))return null;let g=j.nodesById.get(a),h=j.byModel.get(`${a}|${b}`);return h?(c=h,d=g?.apiType||"chat",c.supported?"responses"===d?"openai-responses":"nested"===c.effort?"openai-nested":"openai":"none"):g?.staticFormat?(e=g.staticFormat,f=g.apiType,"none"===e?"none":"qwen"===e?"qwen":"responses"===f?"openai-responses":"nested"===e?"openai-nested":"openai"):null})},86187:(a,b,c)=>{c.d(b,{Ag:()=>l,SS:()=>x,Xy:()=>w});var d=c(12197),e=c(54070),f=c(12407),g=c(66573);let h=new TextEncoder,i=/unknown tool|no tool named|tool not found|not a (valid|recognized) tool|is not available|error/i;function j(){return{type:"object",properties:{vault_id:{type:"string",description:"The vault id from the placeholder, e.g. vlt_abc123."},query:{type:"string",description:"What to look for in the stored content."}},required:["query"]}}function k(){return"Search the Switchboard conversation vault for the full content of a tool result that was externalized to save context. Provide the vault_id shown in the placeholder and a query describing what you need."}function l(a,b){try{if(!Array.isArray(a?.tools))return!1;for(let b=0;b<a.tools.length;b+=1){var c;if(c=a.tools[b],(c?.function?.name||c?.name||"")===d.mS)return!1}if("openai"===b)a.tools.push({type:"function",function:{name:d.mS,description:k(),parameters:j()}});else{if("claude"!==b)return!1;a.tools.push({name:d.mS,description:k(),input_schema:j()})}return!0}catch{return!1}}function m(a,b=!1){let c=new Headers(a);return c.delete("content-length"),b&&c.delete("content-encoding"),c}function n(a){try{let b=JSON.parse(a||"{}");return b&&"object"==typeof b?b:{}}catch{return{}}}function o(a,b){return"string"==typeof a&&a?{callId:a,query:b?.query,vaultId:b?.vault_id}:null}function p(a,b){if(!Array.isArray(a)||0===a.length||!b||a.some(a=>!a))return null;let c=a[0];return{kind:"call",callId:c.callId,query:c.query,vaultId:c.vaultId,calls:a,assistantRaw:b}}function q(a){let b=[],c=a.split(/\r?\n/);for(let a=0;a<c.length;a+=1){if(!c[a].startsWith("data:"))continue;let d=c[a].slice(5).trim();if(d&&"[DONE]"!==d)try{b.push(JSON.parse(d))}catch{}}return b}async function r(a){let b=null;try{let c=new Promise((a,c)=>{b=setTimeout(()=>c(Error("vault stream idle")),2e4)});return await Promise.race([a.read(),c])}finally{b&&clearTimeout(b)}}async function s(a){let b=a.clone().body?.getReader();if(!b)throw Error("missing stream body");let c=new TextDecoder,d="";try{for(;;){let a=await r(b);if(a.done)break;d+=c.decode(a.value,{stream:!0})}return d+c.decode()}catch(a){try{await b.cancel()}catch{}throw a}}async function t(a,b){try{var c,e;let f;if(!(a?.headers?.get("content-type")||"").toLowerCase().includes("text/event-stream")){let e=await a.clone().json();return c=new Response(JSON.stringify(e),{status:a.status,statusText:a.statusText,headers:m(a.headers)}),"openai"===b?function(a,b){if(Array.isArray(a?.choices)&&a.choices.length>1)return{kind:"none",replay:b};let c=a?.choices?.[0]?.message,e=Array.isArray(c?.tool_calls)?c.tool_calls:[],f=[],g=!1;for(let a=0;a<e.length;a+=1)e[a]?.function?.name===d.mS?f.push(o(e[a].id,n(e[a].function?.arguments))):g=!0;return 0===f.length?{kind:"none",replay:b}:g||"string"==typeof c?.content&&c.content.trim()?{kind:"mixed",replay:b}:p(f,c)||{kind:"none",replay:b}}(e,c):"claude"===b?function(a,b){let c=Array.isArray(a?.content)?a.content:[],e=[],f=!1,g=!1;for(let a=0;a<c.length;a+=1){let b=c[a];b?.type==="tool_use"&&(b.name===d.mS?e.push(o(b.id,b.input||{})):g=!0),b?.type==="text"&&"string"==typeof b.text&&b.text.trim()&&(f=!0)}return 0===e.length?{kind:"none",replay:b}:g||f?{kind:"mixed",replay:b}:p(e,c)||{kind:"none",replay:b}}(e,c):{kind:"none",replay:c}}let g=await s(a);return f=h.encode(g),e=new Response(new ReadableStream({start(a){a.enqueue(f),a.close()}}),{status:a.status,statusText:a.statusText,headers:m(a.headers,!0)}),"openai"===b?function(a,b){let c=new Map,e=!1,f=!1,g=q(a);for(let a=0;a<g.length;a+=1){let b=Array.isArray(g[a]?.choices)?g[a].choices:[];b.length>1&&(f=!0);let d=b[0];Number.isInteger(d?.index)&&d.index>0&&(f=!0);let h=d?.delta;if(!h)continue;"string"==typeof h.content&&h.content.trim()&&(e=!0);let i=Array.isArray(h.tool_calls)?h.tool_calls:[];for(let a=0;a<i.length;a+=1){let b=i[a],d=Number.isInteger(b?.index)?b.index:a,e=c.get(d)||{id:"",name:"",arguments:""};"string"==typeof b?.id&&(e.id=b.id),"string"==typeof b?.function?.name&&(e.name=b.function.name),"string"==typeof b?.function?.arguments&&(e.arguments+=b.function.arguments),c.set(d,e)}}let h=[...c.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a),i=[],j=[],k=!1;for(let a of h)a.name===d.mS?(i.push(o(a.id,n(a.arguments))),j.push({id:a.id,type:"function",function:{name:d.mS,arguments:a.arguments}})):k=!0;return 0===i.length?{kind:"none",replay:b}:f||k||e?{kind:"mixed",replay:b}:p(i,{role:"assistant",content:null,tool_calls:j})||{kind:"none",replay:b}}(g,e):"claude"===b?function(a,b){let c=new Map,e=!1,f=q(a);for(let a=0;a<f.length;a+=1){let b=f[a],d=Number.isInteger(b?.index)?b.index:0,g=b?.content_block;if(b?.type==="content_block_start"&&g?.type==="tool_use"&&c.set(d,{id:g.id||"",name:g.name||"",input:""}),b?.type==="content_block_start"&&g?.type==="text"&&"string"==typeof g.text&&g.text.trim()&&(e=!0),b?.delta?.type==="text_delta"&&"string"==typeof b.delta.text&&b.delta.text.trim()&&(e=!0),b?.delta?.type==="input_json_delta"){let a=c.get(d);a&&"string"==typeof b.delta.partial_json&&(a.input+=b.delta.partial_json)}}let g=[...c.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a),h=[],i=[],j=!1;for(let a of g)if(a.name===d.mS){let b=n(a.input);h.push(o(a.id,b)),i.push({type:"tool_use",id:a.id,name:d.mS,input:b})}else j=!0;return 0===h.length?{kind:"none",replay:b}:j||e?{kind:"mixed",replay:b}:p(h,i)||{kind:"none",replay:b}}(g,e):{kind:"none",replay:e}}catch{return{kind:"none",replay:a}}}function u(a){return h.encode(a).length}function v(a){try{if(!Array.isArray(a)||0===a.length)return"No matching content found in the vault for that query.";let b=[];for(let c=0;c<a.length;c+=1){let d=a[c]||{},e=d.toolName?` from ${d.toolName}`:"";b.push(`[chunk ${c+1}${e}]
|
|
8
|
-
${"string"==typeof d.text?d.text:""}`)}let c=b.join("\n\n");if(
|
|
7
|
+
`)),a.enqueue(f.encode("data: [DONE]\n\n")),a.close()}});return new Response(h,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}(!!c.stream,e)}(0,z.lg)(g),(0,z.LH)(g,i)}b&&(c.messages=(0,z.Jl)(c.messages))}}catch(a){A.warn?.("FEEDBACK",`capture/strip failed (ignored): ${a?.message||a}`)}let k=(0,r.t8)(c);if(n){let f=(0,l.tg)({models:n,comboName:e,settings:m,log:A});if(f.response)return f.response;n=f.models;let g=m.comboStrategies||{},h=g[e]?.fallbackStrategy||m.comboStrategy||"fallback";if("fusion"===h)return A.info("CHAT",`Combo "${e}" with ${n.length} models (strategy: fusion)`),(0,r.vt)({body:c,models:n,handleSingleModel:(c,e,f)=>{let g=!0===f?{isPanel:!0}:f||{},h=b;if(g.isPanel&&b){let{tools:a,tool_choice:c,...d}=b.body||{};h={...b,body:d}}return R(c,e,h,a,d,{...g,signal:g.signal||null})},log:A,comboName:e,judgeModel:g[e]?.judgeModel,tuning:g[e]?.fusionTuning,abortSignal:a?.signal||null,childComboDepth:1});if("auto"===h){let h=g[e]||{},i=!0===h.feedbackAsk,k=null;if(i)try{let b=(0,x.t)(new URL(a.url).pathname,c),e=(0,z.Mc)(c.messages),f=(0,z.EN)(d||"local-no-key");k={apiKeyHash:f,conversationFp:(0,z.sO)(e.firstUserText,f),openAiWire:"openai"===b,gateOk:!(c.tools&&c.tools.length||c.functions&&c.functions.length)&&Number(e.userTurns)>=2,feedbackAsk:!0}}catch{k=null}let m=h.routerModel;if(m&&await (0,j.getComboModels)(m))return A.warn("CHAT",`Auto routerModel is a combo (${m}) — rejected`),(0,q.yj)(w.gx.BAD_REQUEST,`routerModel cannot be a combo ("${m}"). Use a single provider/model.`);let o=[];for(let a of n)a!==m&&o.push(a);if(!o.length&&f.skipped.length)return(0,l.tW)({comboName:e,skipped:f.skipped.filter(a=>a.model!==m),log:A});let p={};for(let a of o)try{p[a]=await (0,C.w)(a)}catch{p[a]={}}return A.info("CHAT",`Combo "${e}" with ${o.length} workers (strategy: auto)`),(0,t.EA)({body:c,models:[...o,...n.includes(m)?[m]:[]],handleSingleModel:(c,e,f)=>R(c,e,b,a,d,{...f||{},comboDepth:0}),log:A,comboName:e,strategy:h,loadLearning:K,loadStats:L,loadGlobalStats:a=>(0,I.PO)(`gstats:${a}`,()=>(0,H.cX)(a),15e3),loadClusterP50:(a,b,c)=>(0,I.PO)(`p50:${a}:${b}:${c}`,()=>(0,H._6)(a,b,c)),loadProviderLatency:M,loadProviderUsage:N,loadProviderQuota:O,recordEvent:(0,l.zw)(a=>(0,H.ex)(a),f.skipped),applyJudgeScore:(a,b)=>(0,H.Vp)(a,b),autoDepth:0,clientAbortSignal:a?.signal||null,feedbackCtx:k,workerCaps:p})}let i=(0,s.R8)(n,k,m),o=i.filter(a=>!n.includes(a)),p=m.comboStickyRoundRobinLimit,u=g[e]||{},v=!1!==u.capacityAutoSwitch,y=u.providerStrategy&&"off"!==u.providerStrategy?await P(u):null;return A.info("CHAT",`Combo "${e}" with ${i.length} models (strategy: ${h}, sticky: ${p}, capacitySwitch: ${v})`),(0,r.Pr)({body:c,models:i,handleSingleModel:(0,s.ar)((c,e,f)=>R(c,e,b,a,d,f),o),log:A,comboName:e,comboStrategy:h,comboStickyLimit:p,autoSwitch:v,...y||{},abortSignal:a?.signal||null,childComboDepth:1})}let p=(0,s.R8)([e],k,m);if(p.length>1){let f=p.filter(a=>a!==e);return A.info("CHAT",`Capacity adapter for [${[...k].join(",")}] on "${e}" → trying ${p.join(", ")}`),(0,r.Pr)({body:c,models:p,handleSingleModel:(0,s.ar)((c,e,f)=>R(c,e,b,a,d,{...f||{},signal:f?.signal||a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0}),f),log:A,comboName:e,comboStrategy:(0,s.vB)(k,m),abortSignal:a?.signal||null,childComboDepth:1})}let u=null;try{u=(0,x.t)(new URL(a.url).pathname,c)}catch{}if(!(m.tokenSaver?.vault&&Array.isArray(c.tools)&&c.tools.length>0&&("openai"===u||"claude"===u)))return R(c,e,b,a,d,{signal:a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0});try{let f=(0,z.Bk)(c.messages,(0,z.EN)(d||"local-no-key"));if(!f)return R(c,e,b,a,d,{signal:a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0});await (0,y.Xy)(c,{conversationId:f,signal:a?.signal}),(0,y.Ag)(c,u);let i=Number(m.tokenSaver?.vaultSearchLimit??5);return await (0,y.SS)({dispatch:(c,i)=>R(c,e,b,a,d,{signal:i?.signal||a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0,vaultInternal:!!i?.vaultInternal,vaultStore:!0,vaultConversationId:f}),body:c,wire:u,signal:a?.signal,conversationId:f,searchLimit:i,log:A})}catch{return R(c,e,b,a,d,{signal:a?.signal||null,preferredConnectionId:g,strictPreferredConnection:h,allowNativeClaudeOAuth:!0})}})}async function R(a,b,c=null,d=null,e=null,i=null){let u=[d?.signal,i?.signal].filter(Boolean),v=u.length>1?AbortSignal.any(u):u[0],y=()=>(0,q.yj)(499,"Request aborted");if(v?.aborted)return y();await (0,k.vA)();let B=await (0,j.getModelInfo)(b),F=i?.autoDepth||0,J=i?.comboDepth||0;if(!B.provider){let f=await (0,j.getComboModels)(b);if(f){let g=await (0,h.mt)(),k=(0,l.tg)({models:f,comboName:b,settings:g,log:A});if(k.response)return k.response;f=k.models;let m=(0,r.t8)(a),n=(0,s.R8)(f,m,g),o=n.filter(a=>!f.includes(a)),p=g.comboStrategies||{},u=p[b]?.fallbackStrategy||g.comboStrategy||"fallback";if("auto"!==u&&J>=w.wg)return A.warn("CHAT",`Combo nesting limit at "${b}" (depth ${J})`),(0,q.yj)(w.gx.BAD_REQUEST,`Combo nesting too deep (>${w.wg}) at "${b}"`);if("fusion"===u)return A.info("CHAT",`Combo "${b}" with ${f.length} models (strategy: fusion)`),(0,r.vt)({body:a,models:f,handleSingleModel:(a,b,f)=>{let g=!0===f?{isPanel:!0}:f||{},h=c;if(g.isPanel&&c){let{tools:a,tool_choice:b,...d}=c.body||{};h={...c,body:d}}return R(a,b,h,d,e,{...i||{},...g,signal:g.signal||i?.signal||null})},log:A,comboName:b,judgeModel:p[b]?.judgeModel,tuning:p[b]?.fusionTuning,abortSignal:v||null,childComboDepth:J+1,autoDepth:F});if("auto"===u){if(F>=2)return A.warn("CHAT",`Auto combo recursion limit at "${b}" (depth ${F})`),(0,q.yj)(w.gx.BAD_REQUEST,`Auto combo recursion limit — "${b}" cannot nest further`);let g=p[b]||{},h=!0===g.feedbackAsk,i=null;if(h)try{let b=(0,x.t)(new URL(d.url).pathname,a),c=(0,z.Mc)(a.messages),f=(0,z.EN)(e||"local-no-key");i={apiKeyHash:f,conversationFp:(0,z.sO)(c.firstUserText,f),openAiWire:"openai"===b,gateOk:!(a.tools&&a.tools.length||a.functions&&a.functions.length)&&Number(c.userTurns)>=2,feedbackAsk:!0}}catch{i=null}let m=g.routerModel;if(m&&await (0,j.getComboModels)(m))return(0,q.yj)(w.gx.BAD_REQUEST,`routerModel cannot be a combo ("${m}")`);let n=[];for(let a of f)a!==m&&n.push(a);if(!n.length&&k.skipped.length)return(0,l.tW)({comboName:b,skipped:k.skipped.filter(a=>a.model!==m),log:A});let o={};for(let a of n)try{o[a]=await (0,C.w)(a)}catch{o[a]={}}return A.info("CHAT",`Combo "${b}" with ${n.length} workers (strategy: auto, depth=${F})`),(0,t.EA)({body:a,models:[...n,...f.includes(m)?[m]:[]],handleSingleModel:(a,b,f)=>R(a,b,c,d,e,{...f||{},comboDepth:J}),log:A,comboName:b,strategy:g,loadLearning:K,loadStats:L,loadGlobalStats:a=>(0,I.PO)(`gstats:${a}`,()=>(0,H.cX)(a),15e3),loadClusterP50:(a,b,c)=>(0,I.PO)(`p50:${a}:${b}:${c}`,()=>(0,H._6)(a,b,c)),loadProviderLatency:M,loadProviderUsage:N,loadProviderQuota:O,recordEvent:(0,l.zw)(a=>(0,H.ex)(a),k.skipped),applyJudgeScore:(a,b)=>(0,H.Vp)(a,b),autoDepth:F,comboDepth:J,clientAbortSignal:d?.signal||null,feedbackCtx:i,workerCaps:o})}let y=g.comboStickyRoundRobinLimit,B=p[b]||{},D=!1!==B.capacityAutoSwitch,E=B.providerStrategy&&"off"!==B.providerStrategy?await P(B):null;return A.info("CHAT",`Combo "${b}" with ${n.length} models (strategy: ${u}, sticky: ${y}, capacitySwitch: ${D})`),(0,r.Pr)({body:a,models:n,handleSingleModel:(0,s.ar)((a,b,f)=>R(a,b,c,d,e,f),o),log:A,comboName:b,comboStrategy:u,comboStickyLimit:y,autoSwitch:D,...E||{},abortSignal:v||null,childComboDepth:J+1,autoDepth:F})}return A.warn("CHAT","Invalid model format",{model:b}),(0,q.yj)(w.gx.BAD_REQUEST,"Invalid model format")}let{provider:Q,model:S}=B;b!==`${Q}/${S}`?A.info("ROUTING",`${b} → ${Q}/${S}`):A.info("ROUTING",`Provider: ${Q}, Model: ${S}`);let T=d?.headers?.get("user-agent")||"",U=new Set,V=null,W=null,X=(0,G.M)({request:d,provider:Q,allowNativeOAuth:i?.allowNativeClaudeOAuth===!0}),Y=(0,g.mA)({headers:d?.headers,body:a,scope:Q,clientKeyId:e});for(;;){if(v?.aborted)return y();let b=X||await (0,f.getProviderCredentials)(Q,U,S,{preferredConnectionId:i?.preferredConnectionId||null,strictPreferredConnection:i?.strictPreferredConnection===!0,sessionKey:Y,clientKeyId:e});if(v?.aborted)return y();if(!b||b.allRateLimited){if(b?.allRateLimited){let a=V||b.lastError||"Unavailable",c=W||Number(b.lastErrorCode)||w.gx.SERVICE_UNAVAILABLE;return A.warn("CHAT",`[${Q}/${S}] ${a} (${b.retryAfterHuman})`),(0,q.wO)(c,`[${Q}/${S}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===U.size)return A.warn("AUTH",`No active credentials for provider: ${Q}`),(0,q.yj)(w.gx.NOT_FOUND,`No active credentials for provider: ${Q}`);return A.warn("CHAT","No more accounts available",{provider:Q}),(0,q.yj)(W||w.gx.SERVICE_UNAVAILABLE,V||"All accounts unavailable")}A.info("AUTH",`\x1b[32mUsing ${Q} account: ${b.connectionName}\x1b[0m`);let g=b.ephemeral?b:await (0,D.eU)(Q,b);if(v?.aborted)return y();if(("antigravity"===Q||"gemini-cli"===Q)&&!g.projectId){let a=await (0,E.eG)(b.connectionId,g.accessToken,Q);a&&(g.projectId=a,(0,D.vN)(b.connectionId,{projectId:a}).catch(()=>{}))}let j=await (0,h.mt)();if(v?.aborted)return y();let k=(j.providerThinking||{})[Q]||null,l="function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a)),r=i?.sourceFormatOverride||(d?.url?(0,x.t)(new URL(d.url).pathname,a):null),s=!!i?.bypassPromptFilters,t=await (0,m.w)({body:{...l,model:`${Q}/${S}`},modelInfo:{provider:Q,model:S},credentials:g,log:A,clientRawRequest:c,connectionId:b.connectionId,userAgent:T,clientKeyId:e,ccFilterNaming:!!j.ccFilterNaming,rtkEnabled:!s&&!!j.rtkEnabled,vaultEnabled:!s&&!!i?.vaultStore&&!!j.tokenSaver?.vault,vaultThresholdKB:j.tokenSaver?.vaultThresholdKB??8,vaultTtlHours:j.tokenSaver?.vaultTtlHours??24,vaultConversationId:i?.vaultConversationId??null,headroomEnabled:!s&&!!j.headroomEnabled,headroomUrl:j.headroomUrl||n.ag,headroomCompressUserMessages:!s&&!!j.headroomCompressUserMessages,cavemanEnabled:!s&&!!j.cavemanEnabled,cavemanLevel:j.cavemanLevel||"full",ponytailEnabled:!s&&!!j.ponytailEnabled,ponytailLevel:j.ponytailLevel||"full",pxpipeEnabled:!s&&!!j.pxpipeEnabled,pxpipeMinChars:j.pxpipeMinChars,pxpipeTimeoutMs:j.pxpipeTimeoutMs,pxpipeTransform:!s&&j.pxpipeEnabled?await (0,o.RG)():null,onPxpipeEvent:p.T0,providerThinking:k,sourceFormatOverride:r,bypassNativePassthrough:!!i?.bypassNativePassthrough,vaultInternal:!!i?.vaultInternal,abortSignal:v||null,onCredentialsRefreshed:async a=>{b.ephemeral||await (0,D.vN)(b.connectionId,{...a,existingProviderSpecificData:b.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{b.ephemeral||await (0,f.Pt)(b.connectionId,b,S)},onUpstreamEmptyExhausted:async(a,c)=>{b.ephemeral||v?.aborted||await (0,f.vk)(b.connectionId,502,"string"==typeof a?a:a?.message||"empty stream",Q,S,c)}});if(v?.aborted||499===t.status){try{await t.response?.body?.cancel?.()}catch{}return y()}if(t.success||b.ephemeral)return t.response;let{shouldFallback:u}=await (0,f.vk)(b.connectionId,t.status,t.error,Q,S,t.resetsAtMs);if(u){A.warn("AUTH",`Account ${b.connectionName} unavailable (${t.status}), trying fallback`),U.add(b.connectionId),V=t.error,W=t.status;continue}return t.response}}[e,m]=J.then?(await J)():J,(0,H.tu)(a=>{(0,u.aW)(a),a?((0,I.Y3)(`stats:${a}:`),(0,I.Y3)(`learning:${a}`),(0,t.a8)(a)):(0,I.Y3)()}),d()}catch(a){d(a)}})},85432:(a,b,c)=>{c.d(b,{Kt:()=>m,MH:()=>l,vA:()=>k});var d=c(15717),e=c(19978),f=c(94454),g=c(29696);let h="compatible-reasoning:snapshot";async function i(){let a="function"==typeof d.Fh?(0,d.Fh)({type:"openai-compatible"}):Promise.resolve([]),b="function"==typeof d.uv?(0,d.uv)():Promise.resolve([]),[c,e]=await Promise.all([Promise.resolve(a).catch(()=>[]),Promise.resolve(b).catch(()=>[])]),f=new Map,h=new Map;for(let a of c){if(!a?.id||!a?.prefix)continue;let b={id:a.id,apiType:"responses"===a.apiType?"responses":"chat",staticFormat:(0,g.ml)(a.baseUrl)};f.set(a.id,b),h.set(a.prefix,b)}let i=new Map;for(let a of e){if(!a?.providerAlias||!a?.id||"llm"!==(a.type||"llm"))continue;let b=h.get(a.providerAlias);b&&(0,g.K5)(a.reasoning)&&i.set(`${b.id}|${a.id}`,a.reasoning)}return{nodesById:f,prefixToNode:h,byModel:i}}let j={nodesById:new Map,prefixToNode:new Map,byModel:new Map};async function k(a=15e3){try{let b=await (0,e.PO)(h,i,a);b&&(j=b)}catch{}}function l(){(0,e.Y3)(h)}function m(a,b){let c=j.prefixToNode.get(a);if(!c)return null;let d=j.byModel.get(`${c.id}|${b}`);return d||("none"===c.staticFormat?{supported:!1,effort:null}:c.staticFormat?{supported:!0,effort:"qwen"===c.staticFormat?null:c.staticFormat}:null)}(0,f.xl)(function(a,b){var c,d,e,f;if(!a||!a.startsWith("openai-compatible-"))return null;let g=j.nodesById.get(a),h=j.byModel.get(`${a}|${b}`);return h?(c=h,d=g?.apiType||"chat",c.supported?"responses"===d?"openai-responses":"nested"===c.effort?"openai-nested":"openai":"none"):g?.staticFormat?(e=g.staticFormat,f=g.apiType,"none"===e?"none":"qwen"===e?"qwen":"responses"===f?"openai-responses":"nested"===e?"openai-nested":"openai"):null})},86187:(a,b,c)=>{c.d(b,{Ag:()=>l,SS:()=>z,Xy:()=>y});var d=c(12197),e=c(54070),f=c(12407),g=c(66573);let h=new TextEncoder,i=/^\s*(?:<tool_use_error>\s*)?(?:Error:\s*)?(?:unknown tool|no (?:such )?tool (?:named|available)|tool not found|not a (?:valid|recognized) tool)[^\n]{0,80}sb_vault_search/i;function j(){return{type:"object",properties:{vault_id:{type:"string",description:"The vault id from the placeholder, e.g. vlt_abc123."},query:{type:"string",description:"What to look for in the stored content."}},required:["query"]}}function k(){return"Search the Switchboard conversation vault for the full content of a tool result that was externalized to save context. Provide the vault_id shown in the placeholder and a query describing what you need."}function l(a,b){try{if(!Array.isArray(a?.tools))return!1;for(let b=0;b<a.tools.length;b+=1){var c;if(c=a.tools[b],(c?.function?.name||c?.name||"")===d.mS)return!1}if("openai"===b)a.tools.push({type:"function",function:{name:d.mS,description:k(),parameters:j()}});else{if("claude"!==b)return!1;a.tools.push({name:d.mS,description:k(),input_schema:j()})}return!0}catch{return!1}}function m(a,b=!1){let c=new Headers(a);return c.delete("content-length"),b&&c.delete("content-encoding"),c}function n(a,b){if([204,205,304].includes(a.status))return new Response(null,{status:a.status,statusText:a.statusText,headers:m(a.headers,!0)});let c="string"==typeof b?h.encode(b):b;return new Response(new ReadableStream({start(a){a.enqueue(c),a.close()}}),{status:a.status,statusText:a.statusText,headers:m(a.headers,!0)})}function o(a){try{let b=JSON.parse(a||"{}");return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function p(a,b){return"string"==typeof a&&a&&"string"==typeof b?.query&&(null==b.vault_id||"string"==typeof b.vault_id)?{callId:a,query:b?.query,vaultId:b?.vault_id}:null}function q(a,b){if(!Array.isArray(a)||0===a.length||!b||a.some(a=>!a)||new Set(a.map(a=>a.callId)).size!==a.length)return null;let c=a[0];return{kind:"call",callId:c.callId,query:c.query,vaultId:c.vaultId,calls:a,assistantRaw:b}}function r(a){let b=[];for(let c of(b.hasDone=!1,b.invalid=!1,a.split(/\r?\n\r?\n/))){let a=c.split(/\r?\n/).filter(a=>a.startsWith("data:")).map(a=>a.slice(5).trimStart()).join("\n").trim();if(a){if("[DONE]"===a){b.hasDone=!0;continue}try{b.push(JSON.parse(a))}catch{b.invalid=!0}}}return b}async function s(a,b,c){let d,e;try{if(b?.aborted)throw Error("vault operation aborted");let f=new Promise((a,f)=>{d=setTimeout(()=>f(Error("vault stream idle or deadline exceeded")),c),e=()=>f(Error("vault operation aborted")),b?.addEventListener("abort",e,{once:!0})});return await Promise.race([a.read(),f])}finally{clearTimeout(d),e&&b?.removeEventListener("abort",e)}}async function t(a,{signal:b}={}){let c=a.body?.getReader();if(!c)return{text:"",bytes:new Uint8Array};let d=[],e=0,f=Date.now()+6e5;try{for(;;){let a=f-Date.now();if(a<=0)throw Error("vault buffer deadline exceeded");let g=await s(c,b,Math.min(12e4,a));if(g.done)break;if((e+=g.value.byteLength)>8388608)throw Error("vault buffer size exceeded");d.push(g.value)}let a=new Uint8Array(e),g=0;for(let b of d)a.set(b,g),g+=b.byteLength;return{bytes:a}}catch(a){try{Promise.resolve(c.cancel(a)).catch(()=>{})}catch{}throw a}finally{try{c.releaseLock()}catch{}}}async function u(a,b,{signal:c}={}){let e;if(!a.ok)return{kind:"none",replay:a};let f=a?.headers?.get("content-type")||"";try{var g;e=await t(a,{signal:c});let h=n(a,e.bytes),i=new TextDecoder("utf-8",{fatal:!0}).decode(e.bytes);if(!f.toLowerCase().includes("text/event-stream"))return{...(g=JSON.parse(i),"openai"===b?function(a,b){if(Array.isArray(a?.choices)&&a.choices.length>1)return{kind:"none",replay:b};let c=a?.choices?.[0],e=c?.message,f=Array.isArray(e?.tool_calls)?e.tool_calls:[],g=[],h=!1;for(let a=0;a<f.length;a+=1)f[a]?.function?.name===d.mS?g.push(p(f[a].id,o(f[a].function?.arguments))):h=!0;return 0===g.length?{kind:"none",replay:b}:h||a?.error||c?.finish_reason!=null&&!["stop","tool_calls","function_call"].includes(c.finish_reason)||e&&Object.keys(e).some(a=>!(["role","content","tool_calls"].includes(a)||"refusal"===a&&null==e[a]||"annotations"===a&&Array.isArray(e[a])&&0===e[a].length))||"string"==typeof e?.content&&e.content.trim()?{kind:"mixed",replay:b}:q(g,e)||{kind:"none",replay:b}}(g,h):"claude"===b?function(a,b){let c=Array.isArray(a?.content)?a.content:[],e=[],f=!1,g=!1;for(let a=0;a<c.length;a+=1){let b=c[a];b?.type==="tool_use"?b.name===d.mS?e.push(p(b.id,b.input||{})):g=!0:b?.type!=="text"&&b?.type!=="thinking"&&b?.type!=="redacted_thinking"&&(g=!0),b?.type==="text"&&"string"==typeof b.text&&b.text.trim()&&(f=!0)}return 0===e.length?{kind:"none",replay:b}:g||f||a?.error||a?.stop_reason!=null&&"tool_use"!==a.stop_reason?{kind:"mixed",replay:b}:q(e,c.filter(a=>a?.type!=="text"))||{kind:"none",replay:b}}(g,h):{kind:"none",replay:h}),replay:h};return{..."openai"===b?function(a,b){let c=new Map,e=!1,f=!1,g=r(a),h=g.invalid,i=g.hasDone;for(let a=0;a<g.length;a+=1){g[a]?.error&&(h=!0);let b=Array.isArray(g[a]?.choices)?g[a].choices:[];b.length>1&&(f=!0);let d=b[0];Number.isInteger(d?.index)&&d.index>0&&(f=!0),d?.finish_reason!=null&&(i=!0,["stop","tool_calls","function_call"].includes(d.finish_reason)||(h=!0));let j=d?.delta;if(!j)continue;Object.keys(j).some(a=>!["role","content","tool_calls"].includes(a))&&(h=!0),"string"==typeof j.content&&j.content.trim()&&(e=!0);let k=Array.isArray(j.tool_calls)?j.tool_calls:[];for(let a=0;a<k.length;a+=1){let b=k[a],d=b?.index;if(!Number.isInteger(d)){if(!b?.id){h=!0;continue}if(void 0===(d=[...c.entries()].find(([,a])=>a.id===b.id)?.[0])){if(c.size>=100){h=!0;continue}d=c.size?Math.max(...c.keys())+1:0}}if(!c.has(d)&&c.size>=100){h=!0;continue}let e=c.get(d);e?.id&&b?.id&&e.id!==b.id&&(h=!0);let f=c.get(d)||{id:"",name:"",arguments:""};"string"==typeof b?.id&&(f.id=b.id),"string"==typeof b?.function?.name&&(f.name=b.function.name),"string"==typeof b?.function?.arguments&&(f.arguments+=b.function.arguments),c.set(d,f)}}let j=[...c.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a),k=[],l=[],m=!1;for(let a of j)a.name===d.mS?(k.push(p(a.id,o(a.arguments))),l.push({id:a.id,type:"function",function:{name:d.mS,arguments:a.arguments}})):m=!0;return 0===k.length?{kind:"none",replay:b}:h||!i||f||m||e?{kind:"mixed",replay:b}:q(k,{role:"assistant",content:null,tool_calls:l})||{kind:"none",replay:b}}(i,h):"claude"===b?function(a,b){let c=new Map,e=!1,f=r(a),g=f.invalid,h=f.hasDone;for(let a of f){a?.type==="message_stop"&&(h=!0),a?.type==="message_delta"&&a.delta?.stop_reason&&"tool_use"!==a.delta.stop_reason&&(g=!0),a?.type==="error"&&(g=!0);let b=Number.isInteger(a?.index)?a.index:0,d=a?.content_block;if(a?.type==="content_block_start"&&d){if(c.size>=120){g=!0;continue}["tool_use","thinking","redacted_thinking","text"].includes(d.type)||(g=!0),c.set(b,{...d,partialInput:""}),"text"===d.type&&d.text?.trim()&&(e=!0)}let f=c.get(b),i=a?.type==="content_block_delta"?a.delta:void 0;if(i?.type==="text_delta"&&i.text?.trim()&&(e=!0),!f){a?.type==="content_block_delta"&&(g=!0);continue}i?.type==="input_json_delta"&&"tool_use"===f.type?f.partialInput+=i.partial_json||"":i?.type==="thinking_delta"&&"thinking"===f.type?f.thinking=(f.thinking||"")+(i.thinking||""):i?.type==="signature_delta"&&"thinking"===f.type?f.signature=(f.signature||"")+(i.signature||""):i&&"text_delta"!==i.type&&(g=!0)}let i=[],j=[];for(let[,a]of[...c.entries()].sort((a,b)=>a[0]-b[0])){let{partialInput:b,...c}=a;if("text"!==a.type){if("tool_use"===a.type)if(a.name!==d.mS)g=!0;else{let d=b?o(b):a.input||{};i.push(p(a.id,d)),c.input=d}j.push(c)}}return 0===i.length?{kind:"none",replay:b}:g||!h||e?{kind:"mixed",replay:b}:q(i,j)||{kind:"none",replay:b}}(i,h):{kind:"none",replay:h},replay:h}}catch{if(e)return{kind:"none",replay:n(a,e.bytes)};let d={type:"api_error",message:"Vault upstream stream did not complete."};return{kind:"none",replay:Response.json("claude"===b?{type:"error",error:d}:{error:d},{status:c?.aborted?499:502})}}}async function v(a,{signal:b,timeoutMs:c=5e3}={}){let d,e;try{if(b?.aborted)throw Error("vault operation aborted");let g=new Promise((a,f)=>{d=setTimeout(()=>f(Error("vault search deadline exceeded")),c),e=()=>f(Error("vault operation aborted")),b?.addEventListener("abort",e,{once:!0})});return await Promise.race([(0,f.$s)(a),g])}finally{clearTimeout(d),e&&b?.removeEventListener("abort",e)}}function w(a){return h.encode(a).length}function x(a){try{if(!Array.isArray(a)||0===a.length)return"No matching content found in the vault for that query.";let b=[];for(let c=0;c<a.length;c+=1){let d=a[c]||{},e=d.toolName?` from ${d.toolName}`:"";b.push(`[chunk ${c+1}${e}]
|
|
8
|
+
${"string"==typeof d.text?d.text:""}`)}let c=b.join("\n\n");if(w(c)<=d.El)return c;let e="\n…[truncated]";return`${(0,g.ST)(c,d.El-w(e))}${e}`}catch{return"No matching content found in the vault for that query."}}async function y(a,{conversationId:b,limit:c=5,signal:e}={}){try{let h=Array.isArray(a?.messages)?a.messages:null;if(!h||!b)return 0;let j=[],k=0,l=Date.now()+5e3;for(let a=0;a<h.length&&a<1e3&&!(e?.aborted||k>=100||Date.now()>=l);a+=1){let m=h[a],n=[...function(a){let b=[],c=Array.isArray(a?.tool_calls)?a.tool_calls:[];for(let a=0;a<c.length&&b.length<100;a+=1){let e=c[a];e?.function?.name===d.mS&&"string"==typeof e.id&&b.push({id:e.id,args:o(e.function.arguments)})}return b}(m),...function(a){let b=[],c=Array.isArray(a?.content)?a.content:[];for(let a=0;a<c.length&&b.length<100;a+=1){let e=c[a];e?.type==="tool_use"&&e.name===d.mS&&"string"==typeof e.id&&b.push({id:e.id,args:e.input||{}})}return b}(m)];for(let d=0;d<n.length;d+=1){var f,g;let m=n[d];if(e?.aborted||k>=100||Date.now()>=l)break;if(!p(m.id,m.args))continue;let o=function(a,b,c){for(let d=b;d<a.length&&d<1e3;d+=1){let b=a[d];if(b?.role==="tool"&&b.tool_call_id===c)return{target:b,content:b.content}}return null}(h,a+1,m.id)||function(a,b,c){for(let d=b;d<a.length&&d<1e3;d+=1){let b=Array.isArray(a[d]?.content)?a[d].content:[];for(let a=0;a<b.length;a+=1){let d=b[a];if(d?.type==="tool_result"&&d.tool_use_id===c)return{target:d,content:d.content}}}return null}(h,a+1,m.id);if(!o||(f=o.target,g=o.content,!(f?.is_error!==!1&&f?.status!=="success"&&(f?.is_error===!0||f?.status==="error"||i.test(function(a){try{if("string"==typeof a)return a;return JSON.stringify(a)||""}catch{return""}}(g))))))continue;k++;let q=await v({conversationId:b,query:m.args.query,vaultId:m.args.vault_id,limit:c},{signal:e,timeoutMs:Math.max(1,l-Date.now())});j.push({target:o.target,content:x(q)})}}for(let a of j)a.target.content=a.content,delete a.target.is_error,delete a.target.status;return j.length}catch{return 0}}async function z({dispatch:a,body:b,wire:c,conversationId:d,searchLimit:f=5,log:g=null,signal:h}){let i=b,j=0,k=new AbortController,l=setTimeout(()=>k.abort(),6e5),m=Date.now()+6e5,n=!1,o=h?AbortSignal.any([h,k.signal]):k.signal,p=async(b,c)=>{let d,e=Promise.resolve().then(()=>{if(o.aborted)throw Error("vault operation aborted");return a(b,{...c,signal:o})});e.then(a=>{if(o.aborted)try{Promise.resolve(a?.body?.cancel?.()).catch(()=>{})}catch{}},()=>{});try{let a=new Promise((a,b)=>{d=()=>b(Error("vault operation aborted")),o.aborted?d():o.addEventListener("abort",d,{once:!0})});return await Promise.race([e,a])}finally{d&&o.removeEventListener("abort",d)}},q=(a,b=502)=>{let d={type:"api_error",message:a};return Response.json("claude"===c?{type:"error",error:d}:{error:d},{status:b})},r=()=>q(h?.aborted?"Request aborted":"Vault processing deadline exceeded.",h?.aborted?499:502);try{for(let a=0;a<5;a+=1){if(o.aborted)return r();let b=await p(i,{vaultInternal:a>0,signal:o}),h=await u(b,c,{signal:o});if(o.aborted)return r();if("call"!==h.kind)return j>0&&g?.info?.("VAULT",`served ${j} vault search(es)`),h.replay||b;n||(n=!0,clearTimeout(l),l=setTimeout(()=>k.abort(),Math.max(1,Math.min(12e4,m-Date.now()))));let s=Array.isArray(h.calls)?h.calls:[],t=[];for(let a=0;a<s.length;a+=1){if(o.aborted)return r();if(j>=100)return q("Vault search budget exceeded.");let b=await v({conversationId:d,query:s[a].query,vaultId:s[a].vaultId,limit:f},{signal:o});t.push(x(b)),j+=1,(0,e.VS)()}i=function(a,b,c,d){let e=Array.isArray(c?.calls)?c.calls:[];if(!a||!Array.isArray(a.messages)||0===e.length||!c.assistantRaw)throw Error("invalid vault turn");let f=Array.isArray(d)?d:[],g=[...a.messages];if("openai"===b){g.push(c.assistantRaw);for(let a=0;a<e.length;a+=1)g.push({role:"tool",tool_call_id:e[a].callId,content:f[a]??""})}else if("claude"===b){let a=e.map((a,b)=>({type:"tool_result",tool_use_id:a.callId,content:f[b]??""}));g.push({role:"assistant",content:c.assistantRaw},{role:"user",content:a})}else throw Error("unsupported vault wire");return{...a,messages:g}}(i,c,h,t)}if(o.aborted)return r();return await p(i,{vaultInternal:!1,signal:o})}catch{if(o.aborted)return r();return q("Vault processing failed.")}finally{clearTimeout(l)}}},87155:(a,b,c)=>{c.d(b,{CG:()=>q,ED:()=>u,S1:()=>s,XF:()=>j,_g:()=>t,no:()=>r,sW:()=>w});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(79646),i=c(49120);let j=g().join(i.nJ,"pxpipe"),k="pxpipe-proxy",l=g().join(j,"install.log"),m="win32"===process.platform,n=[...m?[`${process.env.ProgramFiles||""}\\nodejs`,`${process.env.APPDATA||""}\\npm`]:["/usr/local/bin","/opt/homebrew/bin",`${process.env.HOME||""}/.local/bin`,"/usr/bin","/bin"],process.env.PATH||""].filter(Boolean).join(g().delimiter),o=null;function p(){return g().join(j,"node_modules",k)}function q(){return g().join(p(),"dist","core","library.js")}function r(){try{let a=(0,h.execSync)(`${m?"where":"which"} npm`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:n}}).toString().trim();return a?a.split(/\r?\n/)[0].trim():null}catch{return null}}function s(){try{let a=g().join(p(),"package.json");if(!e().existsSync(a)||!e().existsSync(q()))return{installed:!1,version:null,path:null};let b=JSON.parse(e().readFileSync(a,"utf8"));return{installed:!0,version:b.version||null,path:p()}}catch{return{installed:!1,version:null,path:null}}}function t(){return null!==o}function u(){return o||(o=v().finally(()=>{o=null}))}async function v(){let a=r();if(!a){let a=Error("npm not found on PATH — Node.js/npm is required to install PXPIPE");throw a.code="NPM_NOT_FOUND",a}e().existsSync(j)||e().mkdirSync(j,{recursive:!0});let b=g().join(j,"package.json");e().existsSync(b)||e().writeFileSync(b,JSON.stringify({name:"switchboard-pxpipe-host",private:!0},null,2));let c=e().openSync(l,"a");e().writeSync(c,`
|
|
9
9
|
[${new Date().toISOString()}] npm install ${k}@latest
|
|
10
10
|
`),await new Promise((b,d)=>{let e=(0,h.spawn)(a,["install",`${k}@latest`,"--no-audit","--no-fund","--omit=dev"],{cwd:j,stdio:["ignore",c,c],windowsHide:!0,env:{...process.env,PATH:n}}),f=setTimeout(()=>{e.kill("SIGKILL"),d(Error("npm install timed out after 5 minutes — see install.log"))},3e5);e.once("error",a=>{clearTimeout(f),d(a)}),e.once("exit",a=>{clearTimeout(f),0===a?b():d(Error(`npm install exited with code ${a} — see install.log`))})}).finally(()=>e().closeSync(c));let d=s();if(!d.installed)throw Error("install finished but package is missing — see install.log");return d}function w(a=200){try{if(!e().existsSync(l))return"";return e().readFileSync(l,"utf8").split(/\r?\n/).filter(Boolean).slice(-a).join("\n")}catch{return""}}},91686:(a,b,c)=>{c.d(b,{M:()=>e});var d=c(68393);function e({request:a,provider:b,allowNativeOAuth:c=!1}){if(!c||"anthropic"!==b||!a?.headers||!(0,d.i6)(a.headers))return null;let f=a.headers.get("authorization")||"";if(!f.startsWith("Bearer "))return null;let g=f.slice(7).trim();return g?{id:"claude-native-oauth",connectionId:"claude-native-oauth",connectionName:"Claude Code subscription",accessToken:g,ephemeral:!0,providerSpecificData:{}}:null}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/MSigI0uI9w5TrE5x-BeGU/_buildManifest.js","static/MSigI0uI9w5TrE5x-BeGU/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-0aaec50204921747.js","static/chunks/4bd1b696-8a4ab4fdf0ae305a.js","static/chunks/3794-83acfce05009cf38.js","static/chunks/main-app-83fef838b21a8d19.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
|