omniroute 3.0.8 → 3.0.9
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/BUILD_ID +1 -1
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__051203a6._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0891af92._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1f2b0d89._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__46e00e59._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__6e52619e._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__7ace0fcd._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__7fa4d14e._.js +1 -1
- package/app/.next/server/chunks/_05c48915._.js +1 -1
- package/app/.next/server/chunks/_06515a8a._.js +1 -1
- package/app/.next/server/chunks/_2115d8de._.js +1 -1
- package/app/.next/server/chunks/_3ac953eb._.js +1 -1
- package/app/.next/server/chunks/_4b8fd853._.js +1 -1
- package/app/.next/server/chunks/_68683848._.js +1 -1
- package/app/.next/server/chunks/_ee9b677b._.js +1 -1
- package/app/.next/server/chunks/_efd5ede2._.js +5 -5
- package/app/.next/server/chunks/ssr/[root-of-the-server]__9ef96d20._.js +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/{6d9bfb06374cbab3.js → 99d7f85f909fb5e1.js} +1 -1
- package/app/CHANGELOG.md +20 -0
- package/app/docs/openapi.yaml +1 -1
- package/app/open-sse/handlers/responseSanitizer.ts +11 -0
- package/app/package-lock.json +5 -5
- package/app/package.json +1 -1
- package/package.json +1 -1
- /package/app/.next/static/{VtLeHcThjUtEgx1Z2skPg → nOx2-MqITU8BMdt9WgycY}/_buildManifest.js +0 -0
- /package/app/.next/static/{VtLeHcThjUtEgx1Z2skPg → nOx2-MqITU8BMdt9WgycY}/_clientMiddlewareManifest.json +0 -0
- /package/app/.next/static/{VtLeHcThjUtEgx1Z2skPg → nOx2-MqITU8BMdt9WgycY}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[314251,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),o=e.i(924868),s=e.i(814747),i=e.i(266240),l=e.i(256770),u=e.i(676088),d=e.i(200392),c=e.i(195975),f=t([u,d]);[u,d]=f.then?(await f)():f;let x=s.default.join((0,l.resolveDataDir)(),"codex-profiles");async function p(){return await o.default.mkdir(x,{recursive:!0}),x}async function h(){try{let e;await p();try{e=await o.default.readdir(x)}catch{return n.NextResponse.json({profiles:[]})}let t=e.filter(e=>e.endsWith(".json")),r=[];for(let e of t)try{let t=await o.default.readFile(s.default.join(x,e),"utf-8"),a=JSON.parse(t);r.push({id:e.replace(".json",""),name:a.name,authLabel:a.authLabel||"unknown",createdAt:a.createdAt,hasConfig:!!a.configToml,hasAuth:!!a.authJson})}catch{}return r.sort((e,t)=>e.name.localeCompare(t.name)),n.NextResponse.json({profiles:r})}catch(e){return console.log("Error listing codex profiles:",e.message),n.NextResponse.json({error:"Failed to list profiles"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,d.validateBody)(u.codexProfileNameSchema,t);if((0,d.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let{name:a}=r.data,l=(0,i.getCliConfigPaths)("codex");if(!l)return n.NextResponse.json({error:"Codex config paths not found"},{status:500});let c=null,f=null;try{c=await o.default.readFile(l.config,"utf-8")}catch{}try{f=await o.default.readFile(l.auth,"utf-8")}catch{}if(!c&&!f)return n.NextResponse.json({error:"No Codex configuration files found to save"},{status:400});let h=a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g={name:a.trim(),createdAt:new Date().toISOString(),authLabel:f?function(e){try{let t=JSON.parse(e);if(t.tokens?.id_token){let e=t.tokens.id_token.split(".")[1],r=JSON.parse(Buffer.from(e,"base64").toString());if(r.email)return r.email}if(t.auth_mode)return t.auth_mode;if(t.OPENAI_API_KEY)return`API Key: ${t.OPENAI_API_KEY.slice(0,8)}...`;return"unknown"}catch{return"unknown"}}(f):"no-auth",configToml:c,authJson:f};await p();let R=s.default.join(x,`${h}.json`);return await o.default.writeFile(R,JSON.stringify(g,null,2)),n.NextResponse.json({success:!0,message:`Profile "${a}" saved successfully`,profileId:h})}catch(e){return console.log("Error saving codex profile:",e.message),n.NextResponse.json({error:"Failed to save profile"},{status:500})}}async function R(t){let r;try{r=await t.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let t,a=(0,i.ensureCliConfigWriteAllowed)();if(a)return n.NextResponse.json({error:a},{status:403});let l=(0,d.validateBody)(u.codexProfileIdSchema,r);if((0,d.isValidationFailure)(l))return n.NextResponse.json({error:l.error},{status:400});let{profileId:c}=l.data,f=s.default.join(x,`${c}.json`);try{let e=await o.default.readFile(f,"utf-8");t=JSON.parse(e)}catch{return n.NextResponse.json({error:`Profile "${c}" not found`},{status:404})}let p=(0,i.getCliConfigPaths)("codex");if(!p)return n.NextResponse.json({error:"Codex config paths not found"},{status:500});let{createMultiBackup:h}=await e.A(452484);return await h("codex",[p.config,p.auth]),await o.default.mkdir(s.default.dirname(p.config),{recursive:!0}),t.configToml&&await o.default.writeFile(p.config,t.configToml),t.authJson&&await o.default.writeFile(p.auth,t.authJson),n.NextResponse.json({success:!0,message:`Profile "${t.name}" activated`,profileId:c,restoredConfig:!!t.configToml,restoredAuth:!!t.authJson})}catch(e){return console.log("Error activating codex profile:",e.message),n.NextResponse.json({error:"Failed to activate profile"},{status:500})}}async function m(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,d.validateBody)(u.codexProfileIdSchema,t);if((0,d.isValidationFailure)(e))return n.NextResponse.json({error:e.error},{status:400});let{profileId:r}=e.data,a=s.default.join(x,`${r}.json`);try{await o.default.unlink(a)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({error:`Profile "${r}" not found`},{status:404});throw e}return n.NextResponse.json({success:!0,message:`Profile "${r}" deleted`})}catch(e){return console.log("Error deleting codex profile:",e.message),n.NextResponse.json({error:"Failed to delete profile"},{status:500})}}(0,c.ensureServerEntryExports)([h,g,R,m]),(0,a.registerServerReference)(h,"004b6bd7cba0130dea7677c1850684f26796ae6559",null),(0,a.registerServerReference)(g,"408ffa0efff027b6d773df95b135185ae157292f9f",null),(0,a.registerServerReference)(R,"409332b277f9b4ad0c2428f464c994779e46841d94",null),(0,a.registerServerReference)(m,"408c125815614b85b33452ded28db425650589c462",null),e.s(["DELETE",()=>m,"GET",()=>h,"POST",()=>g,"PUT",()=>R]),r()}catch(e){r(e)}},!1),57985,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),o=e.i(996250),s=e.i(759756),i=e.i(561916),l=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),f=e.i(995169),p=e.i(47587),h=e.i(666012),g=e.i(570101),R=e.i(626937),m=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(314251),y=t([w]);[w]=y.then?(await y)():y;let C=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-profiles/route",pathname:"/api/cli-tools/codex-profiles",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/codex-profiles/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:j,workUnitAsyncStorage:A,serverHooks:b}=C;function N(){return(0,o.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:A})}async function E(e,t,r){C.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/codex-profiles/route";a=a.replace(/\/index$/,"")||"/";let o=await C.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:N,parsedUrl:E,isDraftMode:j,prerenderManifest:A,routerServerContext:b,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,resolvedPathname:O,clientReferenceManifest:T,serverActionsManifest:I}=o,_=(0,u.normalizeAppPath)(a),k=!!(A.dynamicRoutes[_]||A.routes[O]),F=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,E,!1):t.end("This page could not be found"),null);if(k&&!j){let e=!!A.routes[O],t=A.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(N.experimental.adapterPath)return await F();throw new x.NoFallbackError}}let $=null;!k||C.isDev||j||($=O,$="/index"===$?"/":$);let q=!0===C.isDev||!k,D=k&&!q;I&&T&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:T,serverActionsManifest:I});let H=e.method||"GET",U=(0,i.getTracer)(),J=U.getActiveScopeSpan(),M={params:y,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!N.experimental.authInterrupts},cacheComponents:!!N.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:N.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,b)},sharedContext:{buildId:w}},K=new d.NodeNextRequest(e),L=new d.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let o=async e=>C.handle(B,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==f.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${a}`)}),l=!!(0,s.getRequestMeta)(e,"minimalMode"),u=async s=>{var i,u;let d=async({previousCacheEntry:n})=>{try{if(!l&&P&&S&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let u=M.renderOpts.collectedTags;if(!k)return await (0,h.sendResponse)(K,L,a,M.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,n=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,b),t}},c=await C.handleResponse({req:e,nextConfig:N,cacheKey:$,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:l});if(!k)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",P?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&k||f.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,R.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(K,L,new Response(c.value.body,{headers:f,status:c.value.status||200})),null};J?await u(J):await U.withPropagatedContext(e.headers,()=>U.trace(f.BaseServerSpan.handleRequest,{spanName:`${H} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},u))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,b),k)throw t;return await (0,h.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>E,"patchFetch",()=>N,"routeModule",()=>C,"serverHooks",()=>b,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>A]),r()}catch(e){r(e)}},!1)];
|
|
1
|
+
module.exports=[314251,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),o=e.i(924868),s=e.i(814747),i=e.i(266240),l=e.i(256770),u=e.i(676088),d=e.i(200392),c=e.i(195975),f=t([u,d]);[u,d]=f.then?(await f)():f;let x=s.default.join((0,l.resolveDataDir)(),"codex-profiles");async function p(){return await o.default.mkdir(x,{recursive:!0}),x}async function h(){try{let e;await p();try{e=await o.default.readdir(x)}catch{return n.NextResponse.json({profiles:[]})}let t=e.filter(e=>e.endsWith(".json")),r=[];for(let e of t)try{let t=await o.default.readFile(s.default.join(x,e),"utf-8"),a=JSON.parse(t);r.push({id:e.replace(".json",""),name:a.name,authLabel:a.authLabel||"unknown",createdAt:a.createdAt,hasConfig:!!a.configToml,hasAuth:!!a.authJson})}catch{}return r.sort((e,t)=>e.name.localeCompare(t.name)),n.NextResponse.json({profiles:r})}catch(e){return console.log("Error listing codex profiles:",e.message),n.NextResponse.json({error:"Failed to list profiles"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,d.validateBody)(u.codexProfileNameSchema,t);if((0,d.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let{name:a}=r.data,l=(0,i.getCliConfigPaths)("codex");if(!l)return n.NextResponse.json({error:"Codex config paths not found"},{status:500});let c=null,f=null;try{c=await o.default.readFile(l.config,"utf-8")}catch{}try{f=await o.default.readFile(l.auth,"utf-8")}catch{}if(!c&&!f)return n.NextResponse.json({error:"No Codex configuration files found to save"},{status:400});let h=a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g={name:a.trim(),createdAt:new Date().toISOString(),authLabel:f?function(e){try{let t=JSON.parse(e);if(t.tokens?.id_token){let e=t.tokens.id_token.split(".")[1],r=JSON.parse(Buffer.from(e,"base64").toString());if(r.email)return r.email}if(t.auth_mode)return t.auth_mode;if(t.OPENAI_API_KEY)return`API Key: ${t.OPENAI_API_KEY.slice(0,8)}...`;return"unknown"}catch{return"unknown"}}(f):"no-auth",configToml:c,authJson:f};await p();let R=s.default.join(x,`${h}.json`);return await o.default.writeFile(R,JSON.stringify(g,null,2)),n.NextResponse.json({success:!0,message:`Profile "${a}" saved successfully`,profileId:h})}catch(e){return console.log("Error saving codex profile:",e.message),n.NextResponse.json({error:"Failed to save profile"},{status:500})}}async function R(t){let r;try{r=await t.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let t,a=(0,i.ensureCliConfigWriteAllowed)();if(a)return n.NextResponse.json({error:a},{status:403});let l=(0,d.validateBody)(u.codexProfileIdSchema,r);if((0,d.isValidationFailure)(l))return n.NextResponse.json({error:l.error},{status:400});let{profileId:c}=l.data,f=s.default.join(x,`${c}.json`);try{let e=await o.default.readFile(f,"utf-8");t=JSON.parse(e)}catch{return n.NextResponse.json({error:`Profile "${c}" not found`},{status:404})}let p=(0,i.getCliConfigPaths)("codex");if(!p)return n.NextResponse.json({error:"Codex config paths not found"},{status:500});let{createMultiBackup:h}=await e.A(452484);return await h("codex",[p.config,p.auth]),await o.default.mkdir(s.default.dirname(p.config),{recursive:!0}),t.configToml&&await o.default.writeFile(p.config,t.configToml),t.authJson&&await o.default.writeFile(p.auth,t.authJson),n.NextResponse.json({success:!0,message:`Profile "${t.name}" activated`,profileId:c,restoredConfig:!!t.configToml,restoredAuth:!!t.authJson})}catch(e){return console.log("Error activating codex profile:",e.message),n.NextResponse.json({error:"Failed to activate profile"},{status:500})}}async function m(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,d.validateBody)(u.codexProfileIdSchema,t);if((0,d.isValidationFailure)(e))return n.NextResponse.json({error:e.error},{status:400});let{profileId:r}=e.data,a=s.default.join(x,`${r}.json`);try{await o.default.unlink(a)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({error:`Profile "${r}" not found`},{status:404});throw e}return n.NextResponse.json({success:!0,message:`Profile "${r}" deleted`})}catch(e){return console.log("Error deleting codex profile:",e.message),n.NextResponse.json({error:"Failed to delete profile"},{status:500})}}(0,c.ensureServerEntryExports)([h,g,R,m]),(0,a.registerServerReference)(h,"006035a64d95fb037a656e4c3c540f19f0e364f0e1",null),(0,a.registerServerReference)(g,"406d2fec7cc275ec1781f548f79a5f94a3757d54a8",null),(0,a.registerServerReference)(R,"407bde01126813b922f93824676fb1eee745bb68f4",null),(0,a.registerServerReference)(m,"4037ddc2a6070b089bc46804437da720065733e53a",null),e.s(["DELETE",()=>m,"GET",()=>h,"POST",()=>g,"PUT",()=>R]),r()}catch(e){r(e)}},!1),57985,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),o=e.i(996250),s=e.i(759756),i=e.i(561916),l=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),f=e.i(995169),p=e.i(47587),h=e.i(666012),g=e.i(570101),R=e.i(626937),m=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(314251),y=t([w]);[w]=y.then?(await y)():y;let C=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-profiles/route",pathname:"/api/cli-tools/codex-profiles",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/codex-profiles/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:j,workUnitAsyncStorage:A,serverHooks:P}=C;function N(){return(0,o.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:A})}async function E(e,t,r){C.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/codex-profiles/route";a=a.replace(/\/index$/,"")||"/";let o=await C.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:N,parsedUrl:E,isDraftMode:j,prerenderManifest:A,routerServerContext:P,isOnDemandRevalidate:b,revalidateOnlyGenerated:S,resolvedPathname:O,clientReferenceManifest:T,serverActionsManifest:I}=o,_=(0,u.normalizeAppPath)(a),k=!!(A.dynamicRoutes[_]||A.routes[O]),F=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,E,!1):t.end("This page could not be found"),null);if(k&&!j){let e=!!A.routes[O],t=A.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(N.experimental.adapterPath)return await F();throw new x.NoFallbackError}}let $=null;!k||C.isDev||j||($=O,$="/index"===$?"/":$);let q=!0===C.isDev||!k,D=k&&!q;I&&T&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:T,serverActionsManifest:I});let H=e.method||"GET",U=(0,i.getTracer)(),J=U.getActiveScopeSpan(),M={params:y,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!N.experimental.authInterrupts},cacheComponents:!!N.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:N.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,P)},sharedContext:{buildId:w}},K=new d.NodeNextRequest(e),L=new d.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let o=async e=>C.handle(B,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==f.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${a}`)}),l=!!(0,s.getRequestMeta)(e,"minimalMode"),u=async s=>{var i,u;let d=async({previousCacheEntry:n})=>{try{if(!l&&b&&S&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let u=M.renderOpts.collectedTags;if(!k)return await (0,h.sendResponse)(K,L,a,M.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,n=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,P),t}},c=await C.handleResponse({req:e,nextConfig:N,cacheKey:$,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:l});if(!k)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",b?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&k||f.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,R.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(K,L,new Response(c.value.body,{headers:f,status:c.value.status||200})),null};J?await u(J):await U.withPropagatedContext(e.headers,()=>U.trace(f.BaseServerSpan.handleRequest,{spanName:`${H} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},u))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,P),k)throw t;return await (0,h.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>E,"patchFetch",()=>N,"routeModule",()=>C,"serverHooks",()=>P,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>A]),r()}catch(e){r(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_4b8fd853._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[114902,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),i=e.i(924868),o=e.i(814747),s=e.i(446786),l=e.i(266240),d=e.i(841788),u=e.i(197892),c=e.i(676088),p=e.i(200392);e.i(245272);var f=e.i(125852),h=e.i(195975),g=t([c,p]);[c,p]=g.then?(await g)():g;let w=o.default.join(s.default.homedir(),".local","share","kilo"),v=o.default.join(w,"auth.json");o.default.join(s.default.homedir(),".config","kilo");let C=async()=>{try{let e=await i.default.readFile(v,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function m(){try{let e=await (0,l.getCliRuntimeStatus)("kilo");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Kilo Code CLI is installed but not runnable":"Kilo Code CLI is not installed"});let t=await C(),a=null;try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t=await i.default.readFile(e,"utf-8"),r=JSON.parse(t);for(let[e,t]of(a={},Object.entries(r)))(e.startsWith("kilocode.")||e.startsWith("kilo-code.")||e.startsWith("kilo."))&&(a[e]=t)}catch{}return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:{auth:t?Object.keys(t):[],extensionSettings:a},hasOmniRoute:(e=>{if(!e)return!1;let t=e["openai-compatible"]||e.omniroute;if(!t)return!1;let a=t.baseUrl||t.baseURL||"";return a.includes("localhost")||a.includes("127.0.0.1")||a.includes("omniroute")})(t),authPath:v})}catch(e){return console.log("Error checking kilo settings:",e),n.NextResponse.json({error:"Failed to check kilo settings"},{status:500})}}async function R(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,p.validateBody)(c.cliModelConfigSchema,t);if((0,p.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{baseUrl:r,model:h}=a.data,{apiKey:g}=a.data,m="string"==typeof t?.keyId?t.keyId.trim():null;if(m)try{let e=await (0,f.getApiKeyById)(m);e?.key&&(g=e.key)}catch{}await i.default.mkdir(w,{recursive:!0}),await (0,d.createBackup)("kilo",v);let R={};try{let e=await i.default.readFile(v,"utf-8");R=JSON.parse(e)}catch{}let y=r.endsWith("/v1")?r:`${r}/v1`;R["openai-compatible"]={type:"api-key",apiKey:g||"sk_omniroute",baseUrl:y,model:h},await i.default.writeFile(v,JSON.stringify(R,null,2));try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t={};try{let a=await i.default.readFile(e,"utf-8");t=JSON.parse(a)}catch{}t["kilocode.customProvider"]={name:"OmniRoute",baseURL:y,apiKey:g||"sk_omniroute"},t["kilocode.defaultModel"]=h,await i.default.writeFile(e,JSON.stringify(t,null,2))}catch{}try{(0,u.saveCliToolLastConfigured)("kilo")}catch{}return n.NextResponse.json({success:!0,message:"Kilo Code settings applied successfully!",authPath:v})}catch(e){return console.log("Error updating kilo settings:",e),n.NextResponse.json({error:"Failed to update kilo settings"},{status:500})}}async function y(){try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});await (0,d.createBackup)("kilo",v);let t={};try{let e=await i.default.readFile(v,"utf-8");t=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}delete t["openai-compatible"],delete t.omniroute,await i.default.writeFile(v,JSON.stringify(t,null,2));try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t=await i.default.readFile(e,"utf-8"),a=JSON.parse(t);delete a["kilocode.customProvider"],delete a["kilocode.defaultModel"],await i.default.writeFile(e,JSON.stringify(a,null,2))}catch{}try{(0,u.deleteCliToolLastConfigured)("kilo")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed from Kilo Code"})}catch(e){return console.log("Error resetting kilo settings:",e),n.NextResponse.json({error:"Failed to reset kilo settings"},{status:500})}}(0,h.ensureServerEntryExports)([m,R,y]),(0,r.registerServerReference)(m,"0001b08d7d7f2eac897bc5be8694d48885d59cb922",null),(0,r.registerServerReference)(R,"40dba6307a00fcc82b77c34eb228f596a9b922551d",null),(0,r.registerServerReference)(y,"0075badd167342b206c563e0bbbfe0958d5724a075",null),e.s(["DELETE",()=>y,"GET",()=>m,"POST",()=>R]),a()}catch(e){a(e)}},!1),472224,e=>e.a(async(t,a)=>{try{var r=e.i(747909),n=e.i(174017),i=e.i(996250),o=e.i(759756),s=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),g=e.i(570101),m=e.i(626937),R=e.i(10372),y=e.i(193695);e.i(52474);var w=e.i(600220),v=e.i(114902),C=t([v]);[v]=C.then?(await C)():C;let N=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/kilo-settings/route",pathname:"/api/cli-tools/kilo-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/kilo-settings/route.ts",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:k,workUnitAsyncStorage:x,serverHooks:O}=N;function E(){return(0,i.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:x})}async function b(e,t,a){N.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/kilo-settings/route";r=r.replace(/\/index$/,"")||"/";let i=await N.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:C,nextConfig:E,parsedUrl:b,isDraftMode:k,prerenderManifest:x,routerServerContext:O,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,resolvedPathname:A,clientReferenceManifest:P,serverActionsManifest:T}=i,U=(0,d.normalizeAppPath)(r),F=!!(x.dynamicRoutes[U]||x.routes[A]),I=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,b,!1):t.end("This page could not be found"),null);if(F&&!k){let e=!!x.routes[A],t=x.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new y.NoFallbackError}}let _=null;!F||N.isDev||k||(_=A,_="/index"===_?"/":_);let M=!0===N.isDev||!F,H=F&&!M;T&&P&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:P,serverActionsManifest:T});let q=e.method||"GET",K=(0,s.getTracer)(),D=K.getActiveScopeSpan(),L={params:C,prerenderManifest:x,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>N.onRequestError(e,t,r,n,O)},sharedContext:{buildId:v}},J=new u.NodeNextRequest(e),$=new u.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(J,(0,c.signalFromNodeResponse)(t));try{let i=async e=>N.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var s,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&S&&j&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await i(o);e.fetchMetrics=L.renderOpts.fetchMetrics;let s=L.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let d=L.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(J,$,r,L.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(r.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,O),t}},c=await N.handleResponse({req:e,nextConfig:E,cacheKey:_,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:l});if(!F)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&F||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,m.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(J,$,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};D?await d(D):await K.withPropagatedContext(e.headers,()=>K.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:s.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof y.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,O),F)throw t;return await (0,h.sendResponse)(J,$,new Response(null,{status:500})),null}}e.s(["handler",()=>b,"patchFetch",()=>E,"routeModule",()=>N,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>x]),a()}catch(e){a(e)}},!1)];
|
|
1
|
+
module.exports=[114902,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),i=e.i(924868),o=e.i(814747),s=e.i(446786),l=e.i(266240),d=e.i(841788),u=e.i(197892),c=e.i(676088),p=e.i(200392);e.i(245272);var f=e.i(125852),h=e.i(195975),g=t([c,p]);[c,p]=g.then?(await g)():g;let w=o.default.join(s.default.homedir(),".local","share","kilo"),v=o.default.join(w,"auth.json");o.default.join(s.default.homedir(),".config","kilo");let C=async()=>{try{let e=await i.default.readFile(v,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function m(){try{let e=await (0,l.getCliRuntimeStatus)("kilo");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Kilo Code CLI is installed but not runnable":"Kilo Code CLI is not installed"});let t=await C(),a=null;try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t=await i.default.readFile(e,"utf-8"),r=JSON.parse(t);for(let[e,t]of(a={},Object.entries(r)))(e.startsWith("kilocode.")||e.startsWith("kilo-code.")||e.startsWith("kilo."))&&(a[e]=t)}catch{}return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:{auth:t?Object.keys(t):[],extensionSettings:a},hasOmniRoute:(e=>{if(!e)return!1;let t=e["openai-compatible"]||e.omniroute;if(!t)return!1;let a=t.baseUrl||t.baseURL||"";return a.includes("localhost")||a.includes("127.0.0.1")||a.includes("omniroute")})(t),authPath:v})}catch(e){return console.log("Error checking kilo settings:",e),n.NextResponse.json({error:"Failed to check kilo settings"},{status:500})}}async function R(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,p.validateBody)(c.cliModelConfigSchema,t);if((0,p.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{baseUrl:r,model:h}=a.data,{apiKey:g}=a.data,m="string"==typeof t?.keyId?t.keyId.trim():null;if(m)try{let e=await (0,f.getApiKeyById)(m);e?.key&&(g=e.key)}catch{}await i.default.mkdir(w,{recursive:!0}),await (0,d.createBackup)("kilo",v);let R={};try{let e=await i.default.readFile(v,"utf-8");R=JSON.parse(e)}catch{}let y=r.endsWith("/v1")?r:`${r}/v1`;R["openai-compatible"]={type:"api-key",apiKey:g||"sk_omniroute",baseUrl:y,model:h},await i.default.writeFile(v,JSON.stringify(R,null,2));try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t={};try{let a=await i.default.readFile(e,"utf-8");t=JSON.parse(a)}catch{}t["kilocode.customProvider"]={name:"OmniRoute",baseURL:y,apiKey:g||"sk_omniroute"},t["kilocode.defaultModel"]=h,await i.default.writeFile(e,JSON.stringify(t,null,2))}catch{}try{(0,u.saveCliToolLastConfigured)("kilo")}catch{}return n.NextResponse.json({success:!0,message:"Kilo Code settings applied successfully!",authPath:v})}catch(e){return console.log("Error updating kilo settings:",e),n.NextResponse.json({error:"Failed to update kilo settings"},{status:500})}}async function y(){try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});await (0,d.createBackup)("kilo",v);let t={};try{let e=await i.default.readFile(v,"utf-8");t=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}delete t["openai-compatible"],delete t.omniroute,await i.default.writeFile(v,JSON.stringify(t,null,2));try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t=await i.default.readFile(e,"utf-8"),a=JSON.parse(t);delete a["kilocode.customProvider"],delete a["kilocode.defaultModel"],await i.default.writeFile(e,JSON.stringify(a,null,2))}catch{}try{(0,u.deleteCliToolLastConfigured)("kilo")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed from Kilo Code"})}catch(e){return console.log("Error resetting kilo settings:",e),n.NextResponse.json({error:"Failed to reset kilo settings"},{status:500})}}(0,h.ensureServerEntryExports)([m,R,y]),(0,r.registerServerReference)(m,"004219178550c2efba8a273b7d9afd616e0d230ec6",null),(0,r.registerServerReference)(R,"4036249e974702de6362d9dbae840188838f8647c7",null),(0,r.registerServerReference)(y,"003d9c5c362f68b3e129bf4ef02ba9171a4d35bd0e",null),e.s(["DELETE",()=>y,"GET",()=>m,"POST",()=>R]),a()}catch(e){a(e)}},!1),472224,e=>e.a(async(t,a)=>{try{var r=e.i(747909),n=e.i(174017),i=e.i(996250),o=e.i(759756),s=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),g=e.i(570101),m=e.i(626937),R=e.i(10372),y=e.i(193695);e.i(52474);var w=e.i(600220),v=e.i(114902),C=t([v]);[v]=C.then?(await C)():C;let k=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/kilo-settings/route",pathname:"/api/cli-tools/kilo-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/kilo-settings/route.ts",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:b,workUnitAsyncStorage:x,serverHooks:O}=k;function E(){return(0,i.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:x})}async function N(e,t,a){k.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/kilo-settings/route";r=r.replace(/\/index$/,"")||"/";let i=await k.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:C,nextConfig:E,parsedUrl:N,isDraftMode:b,prerenderManifest:x,routerServerContext:O,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,resolvedPathname:A,clientReferenceManifest:P,serverActionsManifest:T}=i,U=(0,d.normalizeAppPath)(r),F=!!(x.dynamicRoutes[U]||x.routes[A]),I=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,N,!1):t.end("This page could not be found"),null);if(F&&!b){let e=!!x.routes[A],t=x.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new y.NoFallbackError}}let _=null;!F||k.isDev||b||(_=A,_="/index"===_?"/":_);let M=!0===k.isDev||!F,H=F&&!M;T&&P&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:P,serverActionsManifest:T});let q=e.method||"GET",K=(0,s.getTracer)(),D=K.getActiveScopeSpan(),L={params:C,prerenderManifest:x,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>k.onRequestError(e,t,r,n,O)},sharedContext:{buildId:v}},J=new u.NodeNextRequest(e),$=new u.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(J,(0,c.signalFromNodeResponse)(t));try{let i=async e=>k.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var s,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&S&&j&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await i(o);e.fetchMetrics=L.renderOpts.fetchMetrics;let s=L.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let d=L.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(J,$,r,L.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(r.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,O),t}},c=await k.handleResponse({req:e,nextConfig:E,cacheKey:_,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:l});if(!F)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&F||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,m.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(J,$,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};D?await d(D):await K.withPropagatedContext(e.headers,()=>K.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:s.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof y.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,O),F)throw t;return await (0,h.sendResponse)(J,$,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>E,"routeModule",()=>k,"serverHooks",()=>O,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>x]),a()}catch(e){a(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_68683848._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[815058,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),s=e.i(924868),o=e.i(814747),i=e.i(266240),l=e.i(841788),d=e.i(197892),u=e.i(676088),c=e.i(200392);e.i(245272);var p=e.i(125852),m=e.i(195975),h=t([u,c]);[u,c]=h.then?(await h)():h;let y=()=>(0,i.getCliPrimaryConfigPath)("droid"),v=async()=>{try{let e=y(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function f(){try{let e=await (0,i.getCliRuntimeStatus)("droid");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Factory Droid CLI is installed but not runnable":"Factory Droid CLI is not installed"});let t=await v();return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:t,hasOmniRoute:!!t&&!!t.customModels&&t.customModels.some(e=>"custom:OmniRoute-0"===e.id),settingsPath:y()})}catch(e){return console.log("Error checking droid settings:",e),n.NextResponse.json({error:"Failed to check droid settings"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,c.validateBody)(u.cliModelConfigSchema,t);if((0,c.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let{baseUrl:a,model:m}=r.data,{apiKey:h}=r.data,f="string"==typeof t?.keyId?t.keyId.trim():null;if(f)try{let e=await (0,p.getApiKeyById)(f);e?.key&&(h=e.key)}catch{}let g=o.default.dirname(y()),R=y();await s.default.mkdir(g,{recursive:!0}),await (0,l.createBackup)("droid",R);let v={};try{let e=await s.default.readFile(R,"utf-8");v=JSON.parse(e)}catch{}v.customModels||(v.customModels=[]),v.customModels=v.customModels.filter(e=>"custom:OmniRoute-0"!==e.id);let w=a.endsWith("/v1")?a:`${a}/v1`,E={model:m,id:"custom:OmniRoute-0",index:0,baseUrl:w,apiKey:h||"your_api_key",displayName:m,maxOutputTokens:131072,noImageSupport:!1,provider:"openai"};v.customModels.unshift(E),await s.default.writeFile(R,JSON.stringify(v,null,2));try{(0,d.saveCliToolLastConfigured)("droid")}catch{}return n.NextResponse.json({success:!0,message:"Factory Droid settings applied successfully!",settingsPath:R})}catch(e){return console.log("Error updating droid settings:",e),n.NextResponse.json({error:"Failed to update droid settings"},{status:500})}}async function R(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=y();await (0,l.createBackup)("droid",t);let r={};try{let e=await s.default.readFile(t,"utf-8");r=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}r.customModels&&(r.customModels=r.customModels.filter(e=>"custom:OmniRoute-0"!==e.id),0===r.customModels.length&&delete r.customModels),await s.default.writeFile(t,JSON.stringify(r,null,2));try{(0,d.deleteCliToolLastConfigured)("droid")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting droid settings:",e),n.NextResponse.json({error:"Failed to reset droid settings"},{status:500})}}(0,m.ensureServerEntryExports)([f,g,R]),(0,a.registerServerReference)(f,"00b6620d9282f664e98bf0569a4236d6dc19ba832f",null),(0,a.registerServerReference)(g,"4045f5a76430085f1020ce516943845661180cbddf",null),(0,a.registerServerReference)(R,"00a1873d6a2df8d0a7110d6d72e5acc6c434dfc0d6",null),e.s(["DELETE",()=>R,"GET",()=>f,"POST",()=>g]),r()}catch(e){r(e)}},!1),122141,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),m=e.i(47587),h=e.i(666012),f=e.i(570101),g=e.i(626937),R=e.i(10372),y=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(815058),E=t([w]);[w]=E.then?(await E)():E;let x=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/droid-settings/route",pathname:"/api/cli-tools/droid-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/droid-settings/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:O,workUnitAsyncStorage:b,serverHooks:S}=x;function C(){return(0,s.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:b})}async function N(e,t,r){x.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/droid-settings/route";a=a.replace(/\/index$/,"")||"/";let s=await x.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:C,parsedUrl:N,isDraftMode:O,prerenderManifest:b,routerServerContext:S,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,resolvedPathname:P,clientReferenceManifest:M,serverActionsManifest:k}=s,I=(0,d.normalizeAppPath)(a),_=!!(b.dynamicRoutes[I]||b.routes[P]),j=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,N,!1):t.end("This page could not be found"),null);if(_&&!O){let e=!!b.routes[P],t=b.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await j();throw new y.NoFallbackError}}let F=null;!_||x.isDev||O||(F=P,F="/index"===F?"/":F);let D=!0===x.isDev||!_,H=_&&!D;k&&M&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:M,serverActionsManifest:k});let U=e.method||"GET",q=(0,i.getTracer)(),K=q.getActiveScopeSpan(),L={params:E,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>x.onRequestError(e,t,a,n,S)},sharedContext:{buildId:w}},$=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest($,(0,c.signalFromNodeResponse)(t));try{let s=async e=>x.handle(J,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${U} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${a}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var i,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&A&&T&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(o);e.fetchMetrics=L.renderOpts.fetchMetrics;let i=L.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let d=L.renderOpts.collectedTags;if(!_)return await (0,h.sendResponse)($,B,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})},!1,S),t}},c=await x.handleResponse({req:e,nextConfig:C,cacheKey:F,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:l});if(!_)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&_||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)($,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};K?await d(K):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${U} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},d))}catch(t){if(t instanceof y.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})},!1,S),_)throw t;return await (0,h.sendResponse)($,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>C,"routeModule",()=>x,"serverHooks",()=>S,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
|
|
1
|
+
module.exports=[815058,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),s=e.i(924868),o=e.i(814747),i=e.i(266240),l=e.i(841788),d=e.i(197892),u=e.i(676088),c=e.i(200392);e.i(245272);var p=e.i(125852),m=e.i(195975),h=t([u,c]);[u,c]=h.then?(await h)():h;let y=()=>(0,i.getCliPrimaryConfigPath)("droid"),v=async()=>{try{let e=y(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function f(){try{let e=await (0,i.getCliRuntimeStatus)("droid");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Factory Droid CLI is installed but not runnable":"Factory Droid CLI is not installed"});let t=await v();return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:t,hasOmniRoute:!!t&&!!t.customModels&&t.customModels.some(e=>"custom:OmniRoute-0"===e.id),settingsPath:y()})}catch(e){return console.log("Error checking droid settings:",e),n.NextResponse.json({error:"Failed to check droid settings"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,c.validateBody)(u.cliModelConfigSchema,t);if((0,c.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let{baseUrl:a,model:m}=r.data,{apiKey:h}=r.data,f="string"==typeof t?.keyId?t.keyId.trim():null;if(f)try{let e=await (0,p.getApiKeyById)(f);e?.key&&(h=e.key)}catch{}let g=o.default.dirname(y()),R=y();await s.default.mkdir(g,{recursive:!0}),await (0,l.createBackup)("droid",R);let v={};try{let e=await s.default.readFile(R,"utf-8");v=JSON.parse(e)}catch{}v.customModels||(v.customModels=[]),v.customModels=v.customModels.filter(e=>"custom:OmniRoute-0"!==e.id);let w=a.endsWith("/v1")?a:`${a}/v1`,E={model:m,id:"custom:OmniRoute-0",index:0,baseUrl:w,apiKey:h||"your_api_key",displayName:m,maxOutputTokens:131072,noImageSupport:!1,provider:"openai"};v.customModels.unshift(E),await s.default.writeFile(R,JSON.stringify(v,null,2));try{(0,d.saveCliToolLastConfigured)("droid")}catch{}return n.NextResponse.json({success:!0,message:"Factory Droid settings applied successfully!",settingsPath:R})}catch(e){return console.log("Error updating droid settings:",e),n.NextResponse.json({error:"Failed to update droid settings"},{status:500})}}async function R(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=y();await (0,l.createBackup)("droid",t);let r={};try{let e=await s.default.readFile(t,"utf-8");r=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}r.customModels&&(r.customModels=r.customModels.filter(e=>"custom:OmniRoute-0"!==e.id),0===r.customModels.length&&delete r.customModels),await s.default.writeFile(t,JSON.stringify(r,null,2));try{(0,d.deleteCliToolLastConfigured)("droid")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting droid settings:",e),n.NextResponse.json({error:"Failed to reset droid settings"},{status:500})}}(0,m.ensureServerEntryExports)([f,g,R]),(0,a.registerServerReference)(f,"008ec35451822fe7abaae20a33d5cf32831c761fc3",null),(0,a.registerServerReference)(g,"4053f8669a188a94e6ff1c6730dd99e0b7a6f45d07",null),(0,a.registerServerReference)(R,"005b5f40fb8f48c9cad4b81aa164a590505550d768",null),e.s(["DELETE",()=>R,"GET",()=>f,"POST",()=>g]),r()}catch(e){r(e)}},!1),122141,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),m=e.i(47587),h=e.i(666012),f=e.i(570101),g=e.i(626937),R=e.i(10372),y=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(815058),E=t([w]);[w]=E.then?(await E)():E;let x=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/droid-settings/route",pathname:"/api/cli-tools/droid-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/droid-settings/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:b,workUnitAsyncStorage:O,serverHooks:S}=x;function C(){return(0,s.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:O})}async function N(e,t,r){x.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/droid-settings/route";a=a.replace(/\/index$/,"")||"/";let s=await x.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:C,parsedUrl:N,isDraftMode:b,prerenderManifest:O,routerServerContext:S,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,resolvedPathname:P,clientReferenceManifest:M,serverActionsManifest:k}=s,I=(0,d.normalizeAppPath)(a),_=!!(O.dynamicRoutes[I]||O.routes[P]),j=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,N,!1):t.end("This page could not be found"),null);if(_&&!b){let e=!!O.routes[P],t=O.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await j();throw new y.NoFallbackError}}let F=null;!_||x.isDev||b||(F=P,F="/index"===F?"/":F);let D=!0===x.isDev||!_,H=_&&!D;k&&M&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:M,serverActionsManifest:k});let U=e.method||"GET",q=(0,i.getTracer)(),K=q.getActiveScopeSpan(),L={params:E,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>x.onRequestError(e,t,a,n,S)},sharedContext:{buildId:w}},$=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest($,(0,c.signalFromNodeResponse)(t));try{let s=async e=>x.handle(J,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${U} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${a}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var i,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&A&&T&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(o);e.fetchMetrics=L.renderOpts.fetchMetrics;let i=L.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let d=L.renderOpts.collectedTags;if(!_)return await (0,h.sendResponse)($,B,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})},!1,S),t}},c=await x.handleResponse({req:e,nextConfig:C,cacheKey:F,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:l});if(!_)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&_||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)($,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};K?await d(K):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${U} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},d))}catch(t){if(t instanceof y.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})},!1,S),_)throw t;return await (0,h.sendResponse)($,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>C,"routeModule",()=>x,"serverHooks",()=>S,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>O]),r()}catch(e){r(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_ee9b677b._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[192408,e=>{"use strict";e.i(245272);var t=e.i(186920),n=e.i(151205),o=e.i(385498),r=e.i(548941),s=e.i(821518);async function a(e,n){try{let o=await (0,t.getCustomModels)(e);if(!Array.isArray(o))return;let r=o.find(e=>e.id===n);return r?.apiFormat==="responses"?"responses":void 0}catch{return}}async function i(e){let n=(0,s.parseModel)(e),{extendedContext:i}=n;if(n.providerAlias||n.provider){let e=n.providerAlias||n.provider,l=(await (0,o.getProviderNodes)({type:"openai-compatible"})).find(t=>t.prefix===e);if(l){let e=await a(l.id,n.model);return{provider:l.id,model:n.model,extendedContext:i,...e&&{apiFormat:e}}}let c=(await (0,o.getProviderNodes)({type:"anthropic-compatible"})).find(t=>t.prefix===e);if(c){let e=await a(c.id,n.model);return{provider:c.id,model:n.model,extendedContext:i,...e&&{apiFormat:e}}}try{let e=await (0,r.getSettings)();if(!0===e.stripModelPrefix)return{...await (0,s.getModelInfoCore)(n.model,t.getModelAliases),extendedContext:i}}catch{}}return n.isAlias?(0,s.getModelInfoCore)(e,t.getModelAliases):(0,s.getModelInfoCore)(e,null)}async function l(e){let t=await (0,n.getComboByName)(e);return t&&t.models&&t.models.length>0?t:null}async function c(t){let n=await l(t);if(n)return n;try{let{resolveComboForModel:n}=await e.A(605589),o=await n(t);if(o&&o.models?.length>0)return o}catch{}return null}e.s(["getComboForModel",()=>c,"getModelInfo",()=>i])},581631,e=>{"use strict";let t=new Set(["prompt_tokens","completion_tokens","total_tokens","prompt_tokens_details","completion_tokens_details"]);function n(e){return!e||"object"!=typeof e||Array.isArray(e)?null:e}function o(e){return"string"==typeof e?e:void 0}function r(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let s=/<think>([\s\S]*?)<\/think>/gi;function a(e){if(!e||"string"!=typeof e)return{content:e||"",thinking:null};let t=[],n=!1,o=e.replace(s,(e,o)=>{n=!0;let r=o.trim();return r&&t.push(r),""});return n?{content:o.trim(),thinking:t.length>0?t.join("\n\n"):null}:{content:e,thinking:null}}function i(e){var t;let s=n(e);if(!s)return e;let a={};return a.id=(t=s.id)&&"string"==typeof t?(t.startsWith("chatcmpl-"),t):`chatcmpl-${crypto.randomUUID().replace(/-/g,"").slice(0,29)}`,a.object=o(s.object)||"chat.completion",a.created=r(s.created)??Math.floor(Date.now()/1e3),a.model=o(s.model)||"unknown",Array.isArray(s.choices)?a.choices=s.choices.map((e,t)=>{var o,r;let s,a;return o=e,r=t,s=n(o),a={index:r,finish_reason:null},s?.index!==void 0&&(a.index=s.index),s?.finish_reason!==void 0&&(a.finish_reason=s.finish_reason),s?.message!==void 0&&(a.message=l(s.message)),s?.delta!==void 0&&(a.delta=l(s.delta)),s?.logprobs!==void 0&&(a.logprobs=s.logprobs),a}):a.choices=[],void 0!==s.usage&&(a.usage=c(s.usage)),s.system_fingerprint&&(a.system_fingerprint=s.system_fingerprint),a}function l(e){let t=n(e);if(!t)return e;let o={};if(t.role&&(o.role=t.role),void 0!==t.refusal&&(o.refusal=t.refusal),"string"==typeof t.content){let{content:e,thinking:n}=a(t.content);o.content=e,n&&!t.reasoning_content&&(o.reasoning_content=n)}else void 0!==t.content&&(o.content=t.content);if(t.reasoning_content&&!o.reasoning_content&&(o.reasoning_content=t.reasoning_content),t.reasoning&&"string"==typeof t.reasoning&&!o.reasoning_content&&(o.reasoning_content=t.reasoning),Array.isArray(t.reasoning_details)&&!o.reasoning_content){let e=[];for(let n of t.reasoning_details){let t=n&&"object"==typeof n?n:null;if(!t)continue;let o="string"==typeof t.type?t.type:"",r="string"==typeof t.text?t.text:"string"==typeof t.content?t.content:"";r&&("reasoning"===o||"reasoning.text"===o||"thinking"===o||""===o)&&e.push(r)}e.length>0&&(o.reasoning_content=e.join(""))}return t.tool_calls&&(o.tool_calls=t.tool_calls),t.function_call&&(o.function_call=t.function_call),o}function c(e){let o=n(e);if(!o)return e;let s={};for(let e of t)void 0!==o[e]&&(s[e]=o[e]);let a=r(s.prompt_tokens)??0,i=r(s.completion_tokens)??0,l=r(s.total_tokens)??a+i;return s.prompt_tokens=a,s.completion_tokens=i,s.total_tokens=l,s}function u(e){let t=n(e);if(!t)return e;let s={};return void 0!==t.id&&(s.id=t.id),s.object=o(t.object)||"chat.completion.chunk",void 0!==t.created&&(s.created=t.created),void 0!==t.model&&(s.model=t.model),Array.isArray(t.choices)&&(s.choices=t.choices.map(e=>{let t={index:0},o=n(e);if(!o)return t;if(t.index=r(o.index)??0,void 0!==o.delta){let e=n(o.delta);if(e){let n={};if(void 0!==e.role&&(n.role=e.role),void 0!==e.content&&(n.content=e.content),void 0!==e.reasoning_content)n.reasoning_content=e.reasoning_content;else if("string"==typeof e.reasoning&&e.reasoning)n.reasoning_content=e.reasoning;else if(Array.isArray(e.reasoning_details)){let t=[];for(let n of e.reasoning_details){let e=n&&"object"==typeof n?n:null;if(!e)continue;let o="string"==typeof e.text?e.text:"string"==typeof e.content?e.content:"";o&&t.push(o)}t.length>0&&(n.reasoning_content=t.join(""))}void 0!==e.tool_calls&&(n.tool_calls=e.tool_calls),void 0!==e.function_call&&(n.function_call=e.function_call),t.delta=n}else t.delta=o.delta}return void 0!==o.finish_reason&&(t.finish_reason=o.finish_reason),void 0!==o.logprobs&&(t.logprobs=o.logprobs),t})),void 0!==t.usage&&(s.usage=c(t.usage)),t.system_fingerprint&&(s.system_fingerprint=t.system_fingerprint),s}e.s(["extractThinkingFromContent",()=>a,"sanitizeOpenAIResponse",()=>i,"sanitizeStreamingChunk",()=>u])},949756,692172,e=>{"use strict";var t=e.i(352812),n=e.i(496727);e.i(312125);var o=e.i(400722),r=e.i(954372);function s(e){if(!e)return null;let t=e.trimStart();if(!t||100!==t.charCodeAt(0))return null;let n=t.slice(5).trim();if("[DONE]"===n)return{done:!0};try{return JSON.parse(n)}catch(e){return n.length>0&&console.log(`[WARN] Failed to parse SSE line (${n.length} chars): ${n.substring(0,200)}...`),null}}function a(e,t){if(t===n.FORMATS.OPENAI&&e.choices?.[0]?.delta){let t=e.choices[0].delta;return t.content&&""!==t.content||t.reasoning_content&&""!==t.reasoning_content||t.tool_calls&&t.tool_calls.length>0||e.choices[0].finish_reason||t.role}if(t===n.FORMATS.CLAUDE){let t="content_block_delta"===e.type,n=e.delta?.text&&""!==e.delta.text,o=e.delta?.thinking&&""!==e.delta.thinking,r=e.delta?.partial_json&&""!==e.delta.partial_json;return!t||!!n||!!o||!!r}if(t===n.FORMATS.GEMINI&&e.candidates?.[0]){let t=e.candidates[0];if(t.finishReason)return!0;let n=t.content?.parts;return!!n&&0!==n.length&&n.some(e=>e.text&&""!==e.text||e.functionCall||e.executableCode)}return!0}function i(e){if(e.id&&("chat"===e.id||"completion"===e.id||e.id.length<8)){let t=e.extend_fields?.requestId||e.extend_fields?.traceId||Date.now().toString(36);return e.id=`chatcmpl-${t}`,!0}return!1}function l(e,t){return null==e?"":e&&e.done?"data: [DONE]\n\n":e&&e.event&&e.data?`event: ${e.event}
|
|
1
|
+
module.exports=[192408,e=>{"use strict";e.i(245272);var t=e.i(186920),n=e.i(151205),o=e.i(385498),r=e.i(548941),s=e.i(821518);async function a(e,n){try{let o=await (0,t.getCustomModels)(e);if(!Array.isArray(o))return;let r=o.find(e=>e.id===n);return r?.apiFormat==="responses"?"responses":void 0}catch{return}}async function i(e){let n=(0,s.parseModel)(e),{extendedContext:i}=n;if(n.providerAlias||n.provider){let e=n.providerAlias||n.provider,l=(await (0,o.getProviderNodes)({type:"openai-compatible"})).find(t=>t.prefix===e);if(l){let e=await a(l.id,n.model);return{provider:l.id,model:n.model,extendedContext:i,...e&&{apiFormat:e}}}let c=(await (0,o.getProviderNodes)({type:"anthropic-compatible"})).find(t=>t.prefix===e);if(c){let e=await a(c.id,n.model);return{provider:c.id,model:n.model,extendedContext:i,...e&&{apiFormat:e}}}try{let e=await (0,r.getSettings)();if(!0===e.stripModelPrefix)return{...await (0,s.getModelInfoCore)(n.model,t.getModelAliases),extendedContext:i}}catch{}}return n.isAlias?(0,s.getModelInfoCore)(e,t.getModelAliases):(0,s.getModelInfoCore)(e,null)}async function l(e){let t=await (0,n.getComboByName)(e);return t&&t.models&&t.models.length>0?t:null}async function c(t){let n=await l(t);if(n)return n;try{let{resolveComboForModel:n}=await e.A(605589),o=await n(t);if(o&&o.models?.length>0)return o}catch{}return null}e.s(["getComboForModel",()=>c,"getModelInfo",()=>i])},581631,e=>{"use strict";let t=new Set(["prompt_tokens","completion_tokens","total_tokens","prompt_tokens_details","completion_tokens_details"]);function n(e){return!e||"object"!=typeof e||Array.isArray(e)?null:e}function o(e){return"string"==typeof e?e:void 0}function r(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let s=/<think>([\s\S]*?)<\/think>/gi;function a(e){if(!e||"string"!=typeof e)return{content:e||"",thinking:null};let t=[],n=!1,o=e.replace(s,(e,o)=>{n=!0;let r=o.trim();return r&&t.push(r),""});return n?{content:o.trim(),thinking:t.length>0?t.join("\n\n"):null}:{content:e,thinking:null}}function i(e){var t;let s=n(e);if(!s)return e;let a={};return a.id=(t=s.id)&&"string"==typeof t?(t.startsWith("chatcmpl-"),t):`chatcmpl-${crypto.randomUUID().replace(/-/g,"").slice(0,29)}`,a.object=o(s.object)||"chat.completion",a.created=r(s.created)??Math.floor(Date.now()/1e3),a.model=o(s.model)||"unknown",Array.isArray(s.choices)?a.choices=s.choices.map((e,t)=>{var o,r;let s,a;return o=e,r=t,s=n(o),a={index:r,finish_reason:null},s?.index!==void 0&&(a.index=s.index),s?.finish_reason!==void 0&&(a.finish_reason=s.finish_reason),s?.message!==void 0&&(a.message=l(s.message)),s?.delta!==void 0&&(a.delta=l(s.delta)),s?.logprobs!==void 0&&(a.logprobs=s.logprobs),a}):a.choices=[],void 0!==s.usage&&(a.usage=c(s.usage)),s.system_fingerprint&&(a.system_fingerprint=s.system_fingerprint),a}function l(e){let t=n(e);if(!t)return e;let o={};if(t.role&&(o.role=t.role),void 0!==t.refusal&&(o.refusal=t.refusal),"string"==typeof t.content){let{content:e,thinking:n}=a(t.content);o.content=e,n&&!t.reasoning_content&&(o.reasoning_content=n)}else void 0!==t.content&&(o.content=t.content);if(t.reasoning_content&&!o.reasoning_content&&(o.reasoning_content=t.reasoning_content),t.reasoning&&"string"==typeof t.reasoning&&!o.reasoning_content&&(o.reasoning_content=t.reasoning),Array.isArray(t.reasoning_details)&&!o.reasoning_content){let e=[];for(let n of t.reasoning_details){let t=n&&"object"==typeof n?n:null;if(!t)continue;let o="string"==typeof t.type?t.type:"",r="string"==typeof t.text?t.text:"string"==typeof t.content?t.content:"";r&&("reasoning"===o||"reasoning.text"===o||"thinking"===o||""===o)&&e.push(r)}e.length>0&&(o.reasoning_content=e.join(""))}return t.tool_calls&&(o.tool_calls=t.tool_calls),t.function_call&&(o.function_call=t.function_call),o}function c(e){let o=n(e);if(!o)return e;let s={};for(let e of(void 0!==o.input_tokens&&void 0===o.prompt_tokens&&(o.prompt_tokens=o.input_tokens),void 0!==o.output_tokens&&void 0===o.completion_tokens&&(o.completion_tokens=o.output_tokens),t))void 0!==o[e]&&(s[e]=o[e]);let a=r(s.prompt_tokens)??0,i=r(s.completion_tokens)??0,l=r(s.total_tokens)??a+i;return s.prompt_tokens=a,s.completion_tokens=i,s.total_tokens=l,s}function u(e){let t=n(e);if(!t)return e;let s={};return void 0!==t.id&&(s.id=t.id),s.object=o(t.object)||"chat.completion.chunk",void 0!==t.created&&(s.created=t.created),void 0!==t.model&&(s.model=t.model),Array.isArray(t.choices)&&(s.choices=t.choices.map(e=>{let t={index:0},o=n(e);if(!o)return t;if(t.index=r(o.index)??0,void 0!==o.delta){let e=n(o.delta);if(e){let n={};if(void 0!==e.role&&(n.role=e.role),void 0!==e.content&&(n.content=e.content),void 0!==e.reasoning_content)n.reasoning_content=e.reasoning_content;else if("string"==typeof e.reasoning&&e.reasoning)n.reasoning_content=e.reasoning;else if(Array.isArray(e.reasoning_details)){let t=[];for(let n of e.reasoning_details){let e=n&&"object"==typeof n?n:null;if(!e)continue;let o="string"==typeof e.text?e.text:"string"==typeof e.content?e.content:"";o&&t.push(o)}t.length>0&&(n.reasoning_content=t.join(""))}void 0!==e.tool_calls&&(n.tool_calls=e.tool_calls),void 0!==e.function_call&&(n.function_call=e.function_call),t.delta=n}else t.delta=o.delta}return void 0!==o.finish_reason&&(t.finish_reason=o.finish_reason),void 0!==o.logprobs&&(t.logprobs=o.logprobs),t})),void 0!==t.usage&&(s.usage=c(t.usage)),t.system_fingerprint&&(s.system_fingerprint=t.system_fingerprint),s}e.s(["extractThinkingFromContent",()=>a,"sanitizeOpenAIResponse",()=>i,"sanitizeStreamingChunk",()=>u])},949756,692172,e=>{"use strict";var t=e.i(352812),n=e.i(496727);e.i(312125);var o=e.i(400722),r=e.i(954372);function s(e){if(!e)return null;let t=e.trimStart();if(!t||100!==t.charCodeAt(0))return null;let n=t.slice(5).trim();if("[DONE]"===n)return{done:!0};try{return JSON.parse(n)}catch(e){return n.length>0&&console.log(`[WARN] Failed to parse SSE line (${n.length} chars): ${n.substring(0,200)}...`),null}}function a(e,t){if(t===n.FORMATS.OPENAI&&e.choices?.[0]?.delta){let t=e.choices[0].delta;return t.content&&""!==t.content||t.reasoning_content&&""!==t.reasoning_content||t.tool_calls&&t.tool_calls.length>0||e.choices[0].finish_reason||t.role}if(t===n.FORMATS.CLAUDE){let t="content_block_delta"===e.type,n=e.delta?.text&&""!==e.delta.text,o=e.delta?.thinking&&""!==e.delta.thinking,r=e.delta?.partial_json&&""!==e.delta.partial_json;return!t||!!n||!!o||!!r}if(t===n.FORMATS.GEMINI&&e.candidates?.[0]){let t=e.candidates[0];if(t.finishReason)return!0;let n=t.content?.parts;return!!n&&0!==n.length&&n.some(e=>e.text&&""!==e.text||e.functionCall||e.executableCode)}return!0}function i(e){if(e.id&&("chat"===e.id||"completion"===e.id||e.id.length<8)){let t=e.extend_fields?.requestId||e.extend_fields?.traceId||Date.now().toString(36);return e.id=`chatcmpl-${t}`,!0}return!1}function l(e,t){return null==e?"":e&&e.done?"data: [DONE]\n\n":e&&e.event&&e.data?`event: ${e.event}
|
|
2
2
|
data: ${JSON.stringify(e.data)}
|
|
3
3
|
|
|
4
4
|
`:(e=function(e){if(e?.usage&&"object"==typeof e.usage&&null===e.usage.perf_metrics){let{perf_metrics:t,...n}=e.usage;return{...e,usage:n}}return e}(e),t===n.FORMATS.CLAUDE&&e&&e.type)?`event: ${e.type}
|
|
@@ -6,11 +6,11 @@ data: ${JSON.stringify(e)}
|
|
|
6
6
|
|
|
7
7
|
`:`data: ${JSON.stringify(e)}
|
|
8
8
|
|
|
9
|
-
`}e.s(["fixInvalidId",()=>i,"formatSSE",()=>l,"hasValuableContent",()=>a,"parseSSELine",()=>s],692172);var c=e.i(16023),u=e.i(581631);function d(e){if(!e||"object"!=typeof e)return[];let t=e._openaiIntermediate;return Array.isArray(t)?t:[]}let p="translate",g="passthrough";function m(e={}){let{mode:f=p,targetFormat:h,sourceFormat:_,provider:y=null,reqLogger:A=null,toolNameMap:T=null,model:S=null,connectionId:
|
|
9
|
+
`}e.s(["fixInvalidId",()=>i,"formatSSE",()=>l,"hasValuableContent",()=>a,"parseSSELine",()=>s],692172);var c=e.i(16023),u=e.i(581631);function d(e){if(!e||"object"!=typeof e)return[];let t=e._openaiIntermediate;return Array.isArray(t)?t:[]}let p="translate",g="passthrough";function m(e={}){let{mode:f=p,targetFormat:h,sourceFormat:_,provider:y=null,reqLogger:A=null,toolNameMap:T=null,model:S=null,connectionId:k=null,apiKeyInfo:E=null,body:R=null,onComplete:v=null}=e,C="",I=null,w=!1,O=new Map,b=0,x=f===p?{...(0,t.initState)(_),provider:y,toolNameMap:T,accumulatedContent:""}:null,$=0,N="",D=!1,U=new TextDecoder,P=new TextEncoder,M=Date.now(),F=null,L=!1;return new TransformStream({start(e){c.STREAM_IDLE_TIMEOUT_MS>0&&(F=setInterval(()=>{if(!L&&Date.now()-M>c.STREAM_IDLE_TIMEOUT_MS){L=!0,clearInterval(F),F=null;let t=`[STREAM] Idle timeout: no data from ${y||"provider"} for ${c.STREAM_IDLE_TIMEOUT_MS}ms (model: ${S||"unknown"})`;console.warn(t),(0,o.trackPendingRequest)(S,y,k,!1),(0,o.appendRequestLog)({model:S,provider:y,connectionId:k,status:`FAILED ${c.HTTP_STATUS.GATEWAY_TIMEOUT}`}).catch(()=>{});let n=Error(t);n.name="StreamIdleTimeoutError",e.error(n)}},1e4))},transform(e,o){if(L)return;M=Date.now();let c=U.decode(e,{stream:!0});C+=c,A?.appendProviderChunk?.(c);let p=C.split("\n");for(let e of(C=p.pop()||"",p)){let c=e.trim();if(f===g){let t,s=!1;if(c.startsWith("data:")&&"[DONE]"!==c.slice(5).trim())try{let e=JSON.parse(c.slice(5).trim()),o=e.type&&"string"==typeof e.type&&e.type.startsWith("response."),l=e.type&&"string"==typeof e.type&&(e.type.startsWith("message")||e.type.startsWith("content_block")||"ping"===e.type||"error"===e.type);if(o){let t=(0,r.extractUsage)(e);t&&(I=t),e.delta&&"string"==typeof e.delta&&($+=e.delta.length,N+=e.delta)}else if(l){let t=(0,r.extractUsage)(e);if(t){I||(I={});let e=I;t.prompt_tokens>0&&(e.prompt_tokens=t.prompt_tokens),t.completion_tokens>0&&(e.completion_tokens=t.completion_tokens),t.total_tokens>0&&(e.total_tokens=t.total_tokens),t.cache_read_input_tokens&&(e.cache_read_input_tokens=t.cache_read_input_tokens),t.cache_creation_input_tokens&&(e.cache_creation_input_tokens=t.cache_creation_input_tokens)}e.delta?.text&&($+=e.delta.text.length,N+=e.delta.text),e.delta?.thinking&&($+=e.delta.thinking.length,N+=e.delta.thinking)}else{e=(0,u.sanitizeStreamingChunk)(e);let o=i(e);if(!a(e,n.FORMATS.OPENAI))continue;let l=e.choices?.[0]?.delta;if(l?.content&&"string"==typeof l.content){let{content:e,thinking:t}=(0,u.extractThinkingFromContent)(l.content);l.content=e,t&&!l.reasoning_content&&(l.reasoning_content=t)}if(l?.tool_calls&&l.tool_calls.length>0)for(let e of(w=!0,l.tool_calls)){let t;t=Number.isInteger(e?.index)?`idx:${e.index}`:e?.id?`id:${e.id}`:`seq:${++b}`;let n=O.get(t),o="string"==typeof e?.function?.arguments?e.function.arguments:"";n?(e?.id&&(n.id=n.id||e.id),e?.function?.name&&!n.function.name&&(n.function.name=e.function.name),n.function.arguments+=o):O.set(t,{id:e?.id??null,index:Number.isInteger(e?.index)?e.index:O.size,type:e?.type||"function",function:{name:e?.function?.name||"",arguments:o}})}let c=l?.content||l?.reasoning_content;c&&"string"==typeof c&&($+=c.length),"string"==typeof l?.content&&(N+=l.content),"string"==typeof l?.reasoning_content&&(N+=l.reasoning_content);let d=(0,r.extractUsage)(e);d&&(I=d);let p=e.choices?.[0]?.finish_reason;if(p&&w&&"tool_calls"!==e.choices[0].finish_reason&&(e.choices[0].finish_reason="tool_calls",!s&&(0,r.hasValidUsage)(e.usage)&&(t=`data: ${JSON.stringify(e)}
|
|
10
10
|
`,s=!0)),p&&!(0,r.hasValidUsage)(e.usage)){let o=(0,r.estimateUsage)(R,$,n.FORMATS.OPENAI);e.usage=(0,r.filterUsageForFormat)(o,n.FORMATS.OPENAI),t=`data: ${JSON.stringify(e)}
|
|
11
11
|
`,I=o,s=!0}else if(p&&I){let o=(0,r.addBufferToUsage)(I);e.usage=(0,r.filterUsageForFormat)(o,n.FORMATS.OPENAI),t=`data: ${JSON.stringify(e)}
|
|
12
12
|
`,s=!0}else o&&(t=`data: ${JSON.stringify(e)}
|
|
13
|
-
`,s=!0)}}catch{}s||(t=e.startsWith("data:")&&!e.startsWith("data: ")?"data: "+e.slice(5)+"\n":e+"\n"),A?.appendConvertedChunk?.(t),o.enqueue(P.encode(t));continue}if(!c)continue;let p=s(c);if(!p)continue;if(p&&p.done){if(!D){D=!0;let e="data: [DONE]\n\n";A?.appendConvertedChunk?.(e),o.enqueue(P.encode(e))}continue}if(p.delta?.text){let e=p.delta.text;$+=e.length,x?.accumulatedContent!==void 0&&"string"==typeof e&&(x.accumulatedContent+=e)}if(p.delta?.thinking){let e=p.delta.thinking;$+=e.length,x?.accumulatedContent!==void 0&&"string"==typeof e&&(x.accumulatedContent+=e)}if(p.choices?.[0]?.delta?.content){let e=p.choices[0].delta.content;if("string"==typeof e)$+=e.length,x?.accumulatedContent!==void 0&&(x.accumulatedContent+=e);else if(Array.isArray(e))for(let t of e)t?.text&&"string"==typeof t.text&&($+=t.text.length,x?.accumulatedContent!==void 0&&(x.accumulatedContent+=t.text))}if(p.choices?.[0]?.delta?.reasoning_content){let e=p.choices[0].delta.reasoning_content;"string"==typeof e&&($+=e.length,x?.accumulatedContent!==void 0&&(x.accumulatedContent+=e))}if(p.candidates?.[0]?.content?.parts)for(let e of p.candidates[0].content.parts)e.text&&"string"==typeof e.text&&($+=e.text.length,x?.accumulatedContent!==void 0&&(x.accumulatedContent+=e.text));if(x?.accumulatedContent!==void 0){if("string"==typeof p.delta){let e=p.delta;x.accumulatedContent+=e,$+=e.length}if("string"==typeof p.content){let e=p.content;x.accumulatedContent+=e,$+=e.length}if("string"==typeof p.text){let e=p.text;x.accumulatedContent+=e,$+=e.length}}let m=(0,r.extractUsage)(p);m&&(x.usage=m);let y=(0,t.translateResponse)(h,_,p,x);for(let e of d(y)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(y?.length>0)for(let e of y){if(!a(e,_))continue;let t="message_delta"===e.type||e.choices?.[0]?.finish_reason;if(x.finishReason&&t&&!(0,r.hasValidUsage)(e.usage)&&$>0){let t=(0,r.estimateUsage)(R,$,_);e.usage=(0,r.filterUsageForFormat)(t,_),x.usage=t}else if(x.finishReason&&t&&x.usage){let t=(0,r.addBufferToUsage)(x.usage);e.usage=(0,r.filterUsageForFormat)(t,_)}let n=l(e,_);A?.appendConvertedChunk?.(n),o.enqueue(P.encode(n))}}},flush(e){if(F&&(clearInterval(F),F=null),!L){(0,o.trackPendingRequest)(S,y,
|
|
13
|
+
`,s=!0)}}catch{}s||(t=e.startsWith("data:")&&!e.startsWith("data: ")?"data: "+e.slice(5)+"\n":e+"\n"),A?.appendConvertedChunk?.(t),o.enqueue(P.encode(t));continue}if(!c)continue;let p=s(c);if(!p)continue;if(p&&p.done){if(!D){D=!0;let e="data: [DONE]\n\n";A?.appendConvertedChunk?.(e),o.enqueue(P.encode(e))}continue}if(p.delta?.text){let e=p.delta.text;$+=e.length,x?.accumulatedContent!==void 0&&"string"==typeof e&&(x.accumulatedContent+=e)}if(p.delta?.thinking){let e=p.delta.thinking;$+=e.length,x?.accumulatedContent!==void 0&&"string"==typeof e&&(x.accumulatedContent+=e)}if(p.choices?.[0]?.delta?.content){let e=p.choices[0].delta.content;if("string"==typeof e)$+=e.length,x?.accumulatedContent!==void 0&&(x.accumulatedContent+=e);else if(Array.isArray(e))for(let t of e)t?.text&&"string"==typeof t.text&&($+=t.text.length,x?.accumulatedContent!==void 0&&(x.accumulatedContent+=t.text))}if(p.choices?.[0]?.delta?.reasoning_content){let e=p.choices[0].delta.reasoning_content;"string"==typeof e&&($+=e.length,x?.accumulatedContent!==void 0&&(x.accumulatedContent+=e))}if(p.candidates?.[0]?.content?.parts)for(let e of p.candidates[0].content.parts)e.text&&"string"==typeof e.text&&($+=e.text.length,x?.accumulatedContent!==void 0&&(x.accumulatedContent+=e.text));if(x?.accumulatedContent!==void 0){if("string"==typeof p.delta){let e=p.delta;x.accumulatedContent+=e,$+=e.length}if("string"==typeof p.content){let e=p.content;x.accumulatedContent+=e,$+=e.length}if("string"==typeof p.text){let e=p.text;x.accumulatedContent+=e,$+=e.length}}let m=(0,r.extractUsage)(p);m&&(x.usage=m);let y=(0,t.translateResponse)(h,_,p,x);for(let e of d(y)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(y?.length>0)for(let e of y){if(!a(e,_))continue;let t="message_delta"===e.type||e.choices?.[0]?.finish_reason;if(x.finishReason&&t&&!(0,r.hasValidUsage)(e.usage)&&$>0){let t=(0,r.estimateUsage)(R,$,_);e.usage=(0,r.filterUsageForFormat)(t,_),x.usage=t}else if(x.finishReason&&t&&x.usage){let t=(0,r.addBufferToUsage)(x.usage);e.usage=(0,r.filterUsageForFormat)(t,_)}let n=l(e,_);A?.appendConvertedChunk?.(n),o.enqueue(P.encode(n))}}},flush(e){if(F&&(clearInterval(F),F=null),!L){(0,o.trackPendingRequest)(S,y,k,!1);try{let a=U.decode();if(a&&(C+=a),f===g){if(C){let t=C;C.startsWith("data:")&&!C.startsWith("data: ")&&(t="data: "+C.slice(5)),A?.appendConvertedChunk?.(t),e.enqueue(P.encode(t))}if(!(0,r.hasValidUsage)(I)&&$>0&&(I=(0,r.estimateUsage)(R,$,_||n.FORMATS.OPENAI)),(0,r.hasValidUsage)(I)?(0,r.logUsage)(y,I,S,k,E):(0,o.appendRequestLog)({model:S,provider:y,connectionId:k,tokens:null,status:"200 OK"}).catch(()=>{}),v)try{let e=I,t=Number(e?.prompt_tokens??e?.input_tokens??0),n=Number(e?.completion_tokens??e?.output_tokens??0),o=N.trim()||"",r={role:"assistant",content:o||null};O.size>0&&(r.tool_calls=[...O.values()].sort((e,t)=>e.index-t.index));let s={choices:[{message:r,finish_reason:w?"tool_calls":"stop"}],usage:{prompt_tokens:t,completion_tokens:n,total_tokens:t+n},_streamed:!0};v({status:200,usage:I,responseBody:s})}catch{}return}if(C.trim()){let o=s(C.trim());if(o&&!o.done){let s=(0,r.extractUsage)(o);if(s)if(x.usage){let e=x.usage;s.prompt_tokens>0&&(e.prompt_tokens=s.prompt_tokens),s.completion_tokens>0&&(e.completion_tokens=s.completion_tokens),s.total_tokens>0&&(e.total_tokens=s.total_tokens),s.cache_read_input_tokens>0&&(e.cache_read_input_tokens=s.cache_read_input_tokens),s.cache_creation_input_tokens>0&&(e.cache_creation_input_tokens=s.cache_creation_input_tokens),s.cached_tokens>0&&(e.cached_tokens=s.cached_tokens),s.reasoning_tokens>0&&(e.reasoning_tokens=s.reasoning_tokens)}else x.usage=s;let a=(0,t.translateResponse)(h,_,o,x);for(let e of d(a)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(a?.length>0)for(let t of a){let n=l(t,_);A?.appendConvertedChunk?.(n),e.enqueue(P.encode(n))}}}let i=(0,t.translateResponse)(h,_,null,x);for(let e of d(i)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(i?.length>0)for(let t of i){let n=l(t,_);A?.appendConvertedChunk?.(n),e.enqueue(P.encode(n))}if(!D){D=!0;let t="data: [DONE]\n\n";A?.appendConvertedChunk?.(t),e.enqueue(P.encode(t))}if(!(0,r.hasValidUsage)(x?.usage)&&$>0&&(x.usage=(0,r.estimateUsage)(R,$,_)),(0,r.hasValidUsage)(x?.usage)?(0,r.logUsage)(x.provider||h,x.usage,S,k,E):(0,o.appendRequestLog)({model:S,provider:y,connectionId:k,tokens:null,status:"200 OK"}).catch(()=>{}),v)try{let e=x?.usage,t=Number(e?.prompt_tokens??e?.input_tokens??0),n=Number(e?.completion_tokens??e?.output_tokens??0),o=(x?.accumulatedContent??"").trim()||"",r={role:"assistant",content:o||null},s=x?.toolCalls?.size>0;s&&(r.tool_calls=[...x.toolCalls.values()].map(e=>({id:e.id??null,index:e.index??e.blockIndex??0,type:e.type??"function",function:e.function??{name:e.name??"",arguments:""}})).sort((e,t)=>e.index-t.index)),v({status:200,usage:x?.usage,responseBody:{choices:[{message:r,finish_reason:s?"tool_calls":"stop"}],usage:{prompt_tokens:t,completion_tokens:n,total_tokens:t+n},_streamed:!0}})}catch{}}catch(e){console.log(`[STREAM] Error in flush (${S||"unknown"}):`,e.message||e)}}}},{highWaterMark:16},{highWaterMark:16})}function f(e,t,n=null,o=null,r=null,s=null,a=null,i=null,l=null,c=null){return m({mode:p,targetFormat:e,sourceFormat:t,provider:n,reqLogger:o,toolNameMap:r,model:s,connectionId:a,apiKeyInfo:c,body:i,onComplete:l})}function h(e=null,t=null,n=null,o=null,r=null,s=null,a=null){return m({mode:g,provider:e,reqLogger:t,model:n,connectionId:o,apiKeyInfo:a,body:r,onComplete:s})}e.s(["createPassthroughStreamWithLogger",()=>h,"createSSETransformStreamWithLogger",()=>f],949756)},719485,e=>{"use strict";function t({onDisconnect:e,log:n,provider:o,model:r}={}){let s=new AbortController,a=Date.now(),i=!1,l=null,c=e=>{let t=Date.now()-a,n=o?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${n} | ${r||"unknown"} | ${t}ms | ${e}`)};return{signal:s.signal,startTime:a,isConnected:()=>!i,handleDisconnect:(t="client_closed")=>{i||(i=!0,c(`disconnect: ${t}`),l=setTimeout(()=>{s.abort()},500),e?.({reason:t,duration:Date.now()-a}))},handleComplete:()=>{!i&&(i=!0,c("complete"),l&&(clearTimeout(l),l=null))},handleError:e=>{(l&&(clearTimeout(l),l=null),e instanceof Error&&"AbortError"===e.name)?c("aborted"):e instanceof Error?c(`error: ${e.message}`):c("error: unknown")},abort:()=>s.abort()}}function n(e,t,n){var o;let r,s;return o={readable:e.body.pipeThrough(t),writable:{getWriter:()=>({abort:()=>{}})}},r=o.readable.getReader(),s=o.writable.getWriter(),new ReadableStream({async pull(e){if(!n.isConnected())return void e.close();try{let{done:t,value:o}=await r.read();if(t){n.handleComplete(),e.close();return}e.enqueue(o)}catch(s){n.handleError(s);let t=s instanceof Error?s.message:"Upstream stream error",o="object"==typeof s&&null!==s&&"statusCode"in s&&Number(s.statusCode)||500,r=new TextEncoder;e.enqueue(r.encode(`data: ${JSON.stringify({object:"chat.completion.chunk",choices:[{index:0,delta:{},finish_reason:"error"}],error:{message:t,type:"upstream_error",code:o}})}
|
|
14
14
|
|
|
15
15
|
`)),e.enqueue(r.encode(`data: [DONE]
|
|
16
16
|
|
|
@@ -20,8 +20,8 @@ data: ${JSON.stringify({tokens_generated:s,elapsed_ms:Date.now()-a})}
|
|
|
20
20
|
`;try{t.enqueue(i.encode(e))}catch{clearInterval(o)}},e),n?.addEventListener("abort",()=>{clearInterval(o)},{once:!0})},transform(e,t){let n=("string"==typeof e?e:new TextDecoder().decode(e)).split("\n").filter(e=>e.startsWith("data: "));s+=n.length,t.enqueue(e)},flush(){if(clearInterval(o),r)try{let e=`event: progress
|
|
21
21
|
data: ${JSON.stringify({tokens_generated:s,elapsed_ms:Date.now()-a,done:!0})}
|
|
22
22
|
|
|
23
|
-
`;r.enqueue(i.encode(e))}catch{}}})}function n(e){return!!e&&"true"===("function"==typeof e.get?t=>e.get(t):t=>e[t])("x-omniroute-progress")}e.s(["createProgressTransform",()=>t,"wantsProgress",()=>n])},578172,e=>{"use strict";let t={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},n=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model","improperly formed request"];function o(e,t){if(404===e)return!0;if(400!==e&&403!==e)return!1;let o=t.toLowerCase();return n.some(e=>o.includes(e))}function r(e,n){let o=t[e];if(!o)return null;for(let e of o)if(!n.has(e))return e;return null}e.s(["getNextFamilyFallback",()=>r,"isModelUnavailableError",()=>o])},167389,e=>{"use strict";let t={enabled:!0,provider:"nvidia",model:"openai/gpt-oss-120b",triggerOn402:!0,triggerOnBudgetKeywords:!0,budgetKeywords:["insufficient funds","insufficient_funds","budget exceeded","budget_exceeded","quota exceeded","quota_exceeded","billing","payment required","out of credits","no credits","credit limit","spending limit","saldo insuficiente","limite de gastos","cota excedida"],skipForToolRequests:!0,maxOutputTokens:4096};function n(e,o,r,s=t){if(!s.enabled)return{shouldFallback:!1,reason:"emergency fallback disabled"};if(s.skipForToolRequests&&r)return{shouldFallback:!1,reason:"skipped: request has tools"};if(s.triggerOn402&&402===e)return{shouldFallback:!0,reason:`HTTP 402 → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens};if(s.triggerOnBudgetKeywords&&o){let e=o.toLowerCase(),t=s.budgetKeywords.find(t=>e.includes(t.toLowerCase()));if(t)return{shouldFallback:!0,reason:`Budget error detected ('${t}') → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens}}return{shouldFallback:!1,reason:"no budget error detected"}}function o(e){return!0===e.shouldFallback}e.s(["EMERGENCY_FALLBACK_CONFIG",0,t,"isFallbackDecision",()=>o,"shouldUseFallback",()=>n])},786022,e=>{"use strict";function t(e,t){return!0===e&&!function(e){if("string"!=typeof e)return!1;let t=e.toLowerCase();return t.includes("application/json")&&!t.includes("text/event-stream")}(t)}function n(e){if("string"!=typeof e)return e;let t=e.trim().match(/^```(?:json|javascript|typescript|js|ts)?\s*\n?([\s\S]*?)\n?```\s*$/i);return t?t[1].trim():e}e.s(["resolveStreamFlag",()=>t,"stripMarkdownCodeFence",()=>n])},284948,e=>e.a(async(t,n)=>{try{var o=e.i(731664),r=e.i(85713),s=e.i(352812),a=e.i(496727),i=e.i(949756),l=e.i(954372),c=e.i(719485),u=e.i(928602),d=e.i(54092),p=e.i(878947),g=e.i(705765),m=e.i(828059),f=e.i(719201),h=e.i(16023),_=e.i(33595),y=e.i(385498),A=e.i(439951),T=e.i(688828);e.i(312125);var S=e.i(400722),E=e.i(397506);e.i(245272);var k=e.i(186920),R=e.i(6751),v=e.i(69373),C=e.i(803285),I=e.i(725538),w=e.i(423525),O=e.i(581631),b=e.i(20870),x=e.i(511695),$=e.i(289130),N=e.i(537981),D=e.i(578172),U=e.i(951700),P=e.i(464142),M=e.i(167389),F=e.i(786022),L=t([R]);async function j({body:e,modelInfo:t,credentials:n,log:L,onCredentialsRefreshed:j,onRequestSuccess:q,onDisconnect:H,clientRawRequest:B,connectionId:K,apiKeyInfo:V=null,userAgent:W,comboName:Y}){let J,G,z,Q,Z,X,{provider:ee,model:et,extendedContext:en}=t,eo="string"==typeof e?.model&&e.model.trim().length>0?e.model:et,er=Date.now(),es=(e,t)=>{(0,S.saveRequestUsage)({provider:ee||"unknown",model:et||"unknown",tokens:{input:0,output:0,cacheRead:0,cacheCreation:0,reasoning:0},status:String(e),success:!1,latencyMs:Date.now()-er,timeToFirstTokenMs:0,errorCode:t||String(e),timestamp:new Date().toISOString(),connectionId:K||void 0,apiKeyId:V?.id||void 0,apiKeyName:V?.name||void 0}).catch(()=>{})},ea=async(e,t=0)=>{if("codex"===ee&&K&&e)try{let o=(0,v.parseCodexQuotaHeaders)(e);if(!o)return;let r=n?.providerSpecificData&&"object"==typeof n.providerSpecificData?n.providerSpecificData:{},s=(0,v.getCodexModelScope)(et||eo||""),a={usage5h:o.usage5h,limit5h:o.limit5h,resetAt5h:o.resetAt5h,usage7d:o.usage7d,limit7d:o.limit7d,resetAt7d:o.resetAt7d,scope:s,updatedAt:new Date().toISOString()},i={...r,codexQuotaState:a};if(429===t){let e=(0,v.getCodexResetTime)(o);if(e&&e>Date.now()){let t=new Date(e).toISOString();i.codexScopeRateLimitedUntil={...r&&"object"==typeof r&&r.codexScopeRateLimitedUntil&&"object"==typeof r.codexScopeRateLimitedUntil?r.codexScopeRateLimitedUntil:{},[s]:t}}}await (0,y.updateProviderConnection)(K,{providerSpecificData:i}),n.providerSpecificData=i}catch(e){L?.debug?.("CODEX",`Failed to persist codex quota state: ${e?.message||e}`)}},ei=(0,$.getIdempotencyKey)(B?.headers),el=(0,$.checkIdempotency)(ei);if(el)return L?.debug?.("IDEMPOTENCY",`Hit for key=${ei?.slice(0,12)}...`),{success:!0,response:new Response(JSON.stringify(el.response),{status:el.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Idempotent":"true"}})};await (0,b.initializeRateLimits)(),K&&n&&!n.connectionId&&(n.connectionId=K);let ec=String(B?.endpoint||""),eu=(0,r.detectFormatFromEndpoint)(e,ec),ed=/\/responses(?=\/|$)/i.test(ec)||/^responses(?=\/|$)/i.test(ec),ep=function({provider:e,sourceFormat:t,endpointPath:n}){return"codex"===e&&t===a.FORMATS.OPENAI_RESPONSES&&String(n||"").replace(/\/+$/,"").split("/").includes("responses")}({provider:ee,sourceFormat:eu,endpointPath:ec}),eg=(0,T.handleBypassRequest)(e,et,W);if(eg)return eg;let em=(0,P.getBackgroundDegradationConfig)().enabled?(0,P.getBackgroundTaskReason)(e,B?.headers):null;if(em){let t=(0,P.getDegradedModel)(et);if(t!==et){let n=et;L?.info?.("BACKGROUND",`Background task redirect (${em}): ${n} → ${t}`),et=t,e&&"object"==typeof e&&(e.model=et),(0,A.logAuditEvent)({action:"routing.background_task_redirect",actor:V?.name||"system",target:K||ee||"chat",details:{original_model:n,redirected_to:t,reason:em}})}}let ef=(0,g.resolveModelAlias)(et),eh=ef!==et?ef:et;ef!==et&&L?.info?.("ALIAS",`Model alias applied: ${et} → ${ef}`);let e_=p.PROVIDER_ID_TO_ALIAS[ee]||ee,ey=(0,p.getModelTargetFormat)(e_,ef)||(0,r.getTargetFormat)(ee),eA=e=>{if(e===eh)return{...(0,k.getModelUpstreamExtraHeaders)(ee||"",et||"",eu),...(0,k.getModelUpstreamExtraHeaders)(ee||"",ef||"",eu)};let t=(0,g.resolveModelAlias)(e);return{...(0,k.getModelUpstreamExtraHeaders)(ee||"",e||"",eu),...(0,k.getModelUpstreamExtraHeaders)(ee||"",t||"",eu)}},eT=B?.headers&&"function"==typeof B.headers.get?B.headers.get("accept")||B.headers.get("Accept"):(B?.headers||{}).accept||(B?.headers||{}).Accept,eS=(0,F.resolveStreamFlag)(e?.stream,eT);if((0,x.isCacheable)(e,B?.headers)){let t=(0,x.generateSignature)(et,e.messages,e.temperature,e.top_p),n=(0,x.getCachedResponse)(t);if(n)return L?.debug?.("CACHE",`Semantic cache HIT for ${et}`),{success:!0,response:new Response(JSON.stringify(n),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"HIT"}})}}let eE=await (0,d.createRequestLogger)(eu,ey,et);B&&eE.logClientRawRequest(B.endpoint,B.body,B.headers),eE.logRawRequest(e),L?.debug?.("FORMAT",`${eu} → ${ey} | stream=${eS}`);let ek=e,eR=eu===a.FORMATS.CLAUDE&&ey===a.FORMATS.CLAUDE;try{if(ep)ek={...e,_nativeCodexPassthrough:!0},L?.debug?.("FORMAT","native codex passthrough enabled");else if(eR){let t=(0,k.getModelNormalizeToolCallId)(ee||"",et||"",eu),o=(0,k.getModelPreserveOpenAIDeveloperRole)(ee||"",et||"",eu);ek=(0,s.translateRequest)(a.FORMATS.CLAUDE,a.FORMATS.OPENAI,et,{...e},eS,n,ee,eE,{normalizeToolCallId:t,preserveDeveloperRole:o}),ek=(0,s.translateRequest)(a.FORMATS.OPENAI,a.FORMATS.CLAUDE,et,ek,eS,n,ee,eE,{normalizeToolCallId:t,preserveDeveloperRole:o}),L?.debug?.("FORMAT","claude->openai->claude normalized passthrough")}else{if(ek={...e},ey!==a.FORMATS.CLAUDE||["claude","anthropic"].includes(ee?.toLowerCase?.())||(ek._disableToolPrefix=!0),Array.isArray(ek.messages)&&(ek.messages=ek.messages.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(ek.input)&&(ek.input=ek.input.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(ek.tools)&&(ek.tools=ek.tools.filter(e=>{let t=e.function,n=t?.name??e.name;return n&&String(n).trim().length>0})),Array.isArray(ek.messages))for(let e of ek.messages)Array.isArray(e.content)&&(e.content=e.content.filter(e=>"text"!==e.type||"string"==typeof e.text&&e.text.length>0));if(Array.isArray(ek.messages))for(let e of ek.messages)"user"===e.role&&Array.isArray(e.content)&&(e.content=e.content.flatMap(e=>{if("text"===e.type||"image_url"===e.type||"image"===e.type)return[e];if("file"===e.type||"document"===e.type){let t=e.file?.content??e.file?.text??e.content??e.text,n=e.file?.name??e.name??"attachment";return"string"==typeof t&&t.length>0?[{type:"text",text:`[${n}]
|
|
23
|
+
`;r.enqueue(i.encode(e))}catch{}}})}function n(e){return!!e&&"true"===("function"==typeof e.get?t=>e.get(t):t=>e[t])("x-omniroute-progress")}e.s(["createProgressTransform",()=>t,"wantsProgress",()=>n])},578172,e=>{"use strict";let t={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},n=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model","improperly formed request"];function o(e,t){if(404===e)return!0;if(400!==e&&403!==e)return!1;let o=t.toLowerCase();return n.some(e=>o.includes(e))}function r(e,n){let o=t[e];if(!o)return null;for(let e of o)if(!n.has(e))return e;return null}e.s(["getNextFamilyFallback",()=>r,"isModelUnavailableError",()=>o])},167389,e=>{"use strict";let t={enabled:!0,provider:"nvidia",model:"openai/gpt-oss-120b",triggerOn402:!0,triggerOnBudgetKeywords:!0,budgetKeywords:["insufficient funds","insufficient_funds","budget exceeded","budget_exceeded","quota exceeded","quota_exceeded","billing","payment required","out of credits","no credits","credit limit","spending limit","saldo insuficiente","limite de gastos","cota excedida"],skipForToolRequests:!0,maxOutputTokens:4096};function n(e,o,r,s=t){if(!s.enabled)return{shouldFallback:!1,reason:"emergency fallback disabled"};if(s.skipForToolRequests&&r)return{shouldFallback:!1,reason:"skipped: request has tools"};if(s.triggerOn402&&402===e)return{shouldFallback:!0,reason:`HTTP 402 → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens};if(s.triggerOnBudgetKeywords&&o){let e=o.toLowerCase(),t=s.budgetKeywords.find(t=>e.includes(t.toLowerCase()));if(t)return{shouldFallback:!0,reason:`Budget error detected ('${t}') → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens}}return{shouldFallback:!1,reason:"no budget error detected"}}function o(e){return!0===e.shouldFallback}e.s(["EMERGENCY_FALLBACK_CONFIG",0,t,"isFallbackDecision",()=>o,"shouldUseFallback",()=>n])},786022,e=>{"use strict";function t(e,t){return!0===e&&!function(e){if("string"!=typeof e)return!1;let t=e.toLowerCase();return t.includes("application/json")&&!t.includes("text/event-stream")}(t)}function n(e){if("string"!=typeof e)return e;let t=e.trim().match(/^```(?:json|javascript|typescript|js|ts)?\s*\n?([\s\S]*?)\n?```\s*$/i);return t?t[1].trim():e}e.s(["resolveStreamFlag",()=>t,"stripMarkdownCodeFence",()=>n])},284948,e=>e.a(async(t,n)=>{try{var o=e.i(731664),r=e.i(85713),s=e.i(352812),a=e.i(496727),i=e.i(949756),l=e.i(954372),c=e.i(719485),u=e.i(928602),d=e.i(54092),p=e.i(878947),g=e.i(705765),m=e.i(828059),f=e.i(719201),h=e.i(16023),_=e.i(33595),y=e.i(385498),A=e.i(439951),T=e.i(688828);e.i(312125);var S=e.i(400722),k=e.i(397506);e.i(245272);var E=e.i(186920),R=e.i(6751),v=e.i(69373),C=e.i(803285),I=e.i(725538),w=e.i(423525),O=e.i(581631),b=e.i(20870),x=e.i(511695),$=e.i(289130),N=e.i(537981),D=e.i(578172),U=e.i(951700),P=e.i(464142),M=e.i(167389),F=e.i(786022),L=t([R]);async function j({body:e,modelInfo:t,credentials:n,log:L,onCredentialsRefreshed:j,onRequestSuccess:q,onDisconnect:H,clientRawRequest:B,connectionId:K,apiKeyInfo:V=null,userAgent:W,comboName:Y}){let J,G,z,Q,Z,X,{provider:ee,model:et,extendedContext:en}=t,eo="string"==typeof e?.model&&e.model.trim().length>0?e.model:et,er=Date.now(),es=(e,t)=>{(0,S.saveRequestUsage)({provider:ee||"unknown",model:et||"unknown",tokens:{input:0,output:0,cacheRead:0,cacheCreation:0,reasoning:0},status:String(e),success:!1,latencyMs:Date.now()-er,timeToFirstTokenMs:0,errorCode:t||String(e),timestamp:new Date().toISOString(),connectionId:K||void 0,apiKeyId:V?.id||void 0,apiKeyName:V?.name||void 0}).catch(()=>{})},ea=async(e,t=0)=>{if("codex"===ee&&K&&e)try{let o=(0,v.parseCodexQuotaHeaders)(e);if(!o)return;let r=n?.providerSpecificData&&"object"==typeof n.providerSpecificData?n.providerSpecificData:{},s=(0,v.getCodexModelScope)(et||eo||""),a={usage5h:o.usage5h,limit5h:o.limit5h,resetAt5h:o.resetAt5h,usage7d:o.usage7d,limit7d:o.limit7d,resetAt7d:o.resetAt7d,scope:s,updatedAt:new Date().toISOString()},i={...r,codexQuotaState:a};if(429===t){let e=(0,v.getCodexResetTime)(o);if(e&&e>Date.now()){let t=new Date(e).toISOString();i.codexScopeRateLimitedUntil={...r&&"object"==typeof r&&r.codexScopeRateLimitedUntil&&"object"==typeof r.codexScopeRateLimitedUntil?r.codexScopeRateLimitedUntil:{},[s]:t}}}await (0,y.updateProviderConnection)(K,{providerSpecificData:i}),n.providerSpecificData=i}catch(e){L?.debug?.("CODEX",`Failed to persist codex quota state: ${e?.message||e}`)}},ei=(0,$.getIdempotencyKey)(B?.headers),el=(0,$.checkIdempotency)(ei);if(el)return L?.debug?.("IDEMPOTENCY",`Hit for key=${ei?.slice(0,12)}...`),{success:!0,response:new Response(JSON.stringify(el.response),{status:el.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Idempotent":"true"}})};await (0,b.initializeRateLimits)(),K&&n&&!n.connectionId&&(n.connectionId=K);let ec=String(B?.endpoint||""),eu=(0,r.detectFormatFromEndpoint)(e,ec),ed=/\/responses(?=\/|$)/i.test(ec)||/^responses(?=\/|$)/i.test(ec),ep=function({provider:e,sourceFormat:t,endpointPath:n}){return"codex"===e&&t===a.FORMATS.OPENAI_RESPONSES&&String(n||"").replace(/\/+$/,"").split("/").includes("responses")}({provider:ee,sourceFormat:eu,endpointPath:ec}),eg=(0,T.handleBypassRequest)(e,et,W);if(eg)return eg;let em=(0,P.getBackgroundDegradationConfig)().enabled?(0,P.getBackgroundTaskReason)(e,B?.headers):null;if(em){let t=(0,P.getDegradedModel)(et);if(t!==et){let n=et;L?.info?.("BACKGROUND",`Background task redirect (${em}): ${n} → ${t}`),et=t,e&&"object"==typeof e&&(e.model=et),(0,A.logAuditEvent)({action:"routing.background_task_redirect",actor:V?.name||"system",target:K||ee||"chat",details:{original_model:n,redirected_to:t,reason:em}})}}let ef=(0,g.resolveModelAlias)(et),eh=ef!==et?ef:et;ef!==et&&L?.info?.("ALIAS",`Model alias applied: ${et} → ${ef}`);let e_=p.PROVIDER_ID_TO_ALIAS[ee]||ee,ey=(0,p.getModelTargetFormat)(e_,ef)||(0,r.getTargetFormat)(ee),eA=e=>{if(e===eh)return{...(0,E.getModelUpstreamExtraHeaders)(ee||"",et||"",eu),...(0,E.getModelUpstreamExtraHeaders)(ee||"",ef||"",eu)};let t=(0,g.resolveModelAlias)(e);return{...(0,E.getModelUpstreamExtraHeaders)(ee||"",e||"",eu),...(0,E.getModelUpstreamExtraHeaders)(ee||"",t||"",eu)}},eT=B?.headers&&"function"==typeof B.headers.get?B.headers.get("accept")||B.headers.get("Accept"):(B?.headers||{}).accept||(B?.headers||{}).Accept,eS=(0,F.resolveStreamFlag)(e?.stream,eT);if((0,x.isCacheable)(e,B?.headers)){let t=(0,x.generateSignature)(et,e.messages,e.temperature,e.top_p),n=(0,x.getCachedResponse)(t);if(n)return L?.debug?.("CACHE",`Semantic cache HIT for ${et}`),{success:!0,response:new Response(JSON.stringify(n),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"HIT"}})}}let ek=await (0,d.createRequestLogger)(eu,ey,et);B&&ek.logClientRawRequest(B.endpoint,B.body,B.headers),ek.logRawRequest(e),L?.debug?.("FORMAT",`${eu} → ${ey} | stream=${eS}`);let eE=e,eR=eu===a.FORMATS.CLAUDE&&ey===a.FORMATS.CLAUDE;try{if(ep)eE={...e,_nativeCodexPassthrough:!0},L?.debug?.("FORMAT","native codex passthrough enabled");else if(eR){let t=(0,E.getModelNormalizeToolCallId)(ee||"",et||"",eu),o=(0,E.getModelPreserveOpenAIDeveloperRole)(ee||"",et||"",eu);eE=(0,s.translateRequest)(a.FORMATS.CLAUDE,a.FORMATS.OPENAI,et,{...e},eS,n,ee,ek,{normalizeToolCallId:t,preserveDeveloperRole:o}),eE=(0,s.translateRequest)(a.FORMATS.OPENAI,a.FORMATS.CLAUDE,et,eE,eS,n,ee,ek,{normalizeToolCallId:t,preserveDeveloperRole:o}),L?.debug?.("FORMAT","claude->openai->claude normalized passthrough")}else{if(eE={...e},ey!==a.FORMATS.CLAUDE||["claude","anthropic"].includes(ee?.toLowerCase?.())||(eE._disableToolPrefix=!0),Array.isArray(eE.messages)&&(eE.messages=eE.messages.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(eE.input)&&(eE.input=eE.input.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(eE.tools)&&(eE.tools=eE.tools.filter(e=>{let t=e.function,n=t?.name??e.name;return n&&String(n).trim().length>0})),Array.isArray(eE.messages))for(let e of eE.messages)Array.isArray(e.content)&&(e.content=e.content.filter(e=>"text"!==e.type||"string"==typeof e.text&&e.text.length>0));if(Array.isArray(eE.messages))for(let e of eE.messages)"user"===e.role&&Array.isArray(e.content)&&(e.content=e.content.flatMap(e=>{if("text"===e.type||"image_url"===e.type||"image"===e.type)return[e];if("file"===e.type||"document"===e.type){let t=e.file?.content??e.file?.text??e.content??e.text,n=e.file?.name??e.name??"attachment";return"string"==typeof t&&t.length>0?[{type:"text",text:`[${n}]
|
|
24
24
|
${t}`}]:[]}if("tool_result"===e.type){let t=e.tool_use_id??e.id??"unknown",n=e.content??e.text??e.output??"",o="string"==typeof n?n:Array.isArray(n)?n.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):JSON.stringify(n);return o.length>0?[{type:"text",text:`[Tool Result: ${t}]
|
|
25
|
-
${o}`}]:[]}return L?.debug?.("CONTENT",`Dropped unsupported content part type="${e.type}"`),[]}));let t=(0,k.getModelNormalizeToolCallId)(ee||"",et||"",eu),o=(0,k.getModelPreserveOpenAIDeveloperRole)(ee||"",et||"",eu);ek=(0,s.translateRequest)(eu,ey,et,ek,eS,n,ee,eE,{normalizeToolCallId:t,preserveDeveloperRole:o})}}catch(s){let e=Number(s?.statusCode),t=Number.isInteger(e)&&e>=400&&e<=599?e:h.HTTP_STATUS.SERVER_ERROR,n=s?.message||"Invalid request",r="string"==typeof s?.errorType?s.errorType:null;if(L?.warn?.("TRANSLATE",`Request translation failed: ${n}`),r)return{success:!1,status:t,error:n,response:new Response(JSON.stringify({error:{message:n,type:r,code:r}}),{status:t,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()}})};return(0,f.createErrorResult)(t,n)}let ev=ek._toolNameMap;delete ek._toolNameMap,delete ek._disableToolPrefix,ek.model=eh;let eC=(0,m.getUnsupportedParams)(ee,et);if(eC.length>0){let e=[];for(let t of eC)Object.hasOwn(ek,t)&&(e.push(t),delete ek[t]);e.length>0&&L?.warn?.("PARAMS",`Stripped unsupported params for ${et}: ${e.join(", ")}`)}let eI=(0,R.getExecutor)(ee),ew=()=>ep?{...n,requestEndpointPath:ec}:n,eO=(0,c.createStreamController)({onDisconnect:H,log:L,provider:ee,model:et}),eb={...ek,model:`${ee}/${et}`},ex=(0,U.shouldDeduplicate)(eb),e$=ex?(0,U.computeRequestHash)(eb):null,eN=async(e=eh,t=!1)=>{let n=async()=>{let t=ek.model===e?ek:{...ek,model:e},n=await (0,b.withRateLimit)(ee,K,e,()=>eI.execute({model:e,body:t,stream:eS,credentials:ew(),signal:eO.signal,log:L,extendedContext:en,upstreamExtraHeaders:eA(e)}));if(eS)return n;let o=n.response.status,r=n.response.statusText,s=Array.from(n.response.headers.entries()),a=await n.response.text();return{...n,response:new Response(a,{status:o,statusText:r,headers:s})}};if(t&&ex&&e$){let e=await (0,U.deduplicate)(e$,n);return e.wasDeduplicated&&L?.debug?.("DEDUP",`Joined in-flight request hash=${e$}`),e.result}return n()};(0,S.trackPendingRequest)(et,ee,K,!0);let eD=new Set([eh]),eU=eh;(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:"PENDING"}).catch(()=>{});let eP=ek.messages?.length||ek.contents?.length||ek.request?.contents?.length||0;L?.debug?.("REQUEST",`${ee.toUpperCase()} | ${et} | ${eP} msgs`);try{let e=await eN(eh,!0);J=e.response,G=e.url,z=e.headers,Q=e.transformedBody,eE.logTargetRequest(G,z,Q),(0,b.updateFromHeaders)(ee,K,J.headers,J.status,et)}catch(n){if((0,S.trackPendingRequest)(et,ee,K,!1),(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:`FAILED ${"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),(0,E.saveCallLog)({method:"POST",path:B?.endpoint||"/v1/chat/completions",status:"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY,model:et,requestedModel:eo,provider:ee,connectionId:K,duration:Date.now()-er,requestBody:e,error:n.message,sourceFormat:eu,targetFormat:ey,comboName:Y,apiKeyId:V?.id||null,apiKeyName:V?.name||null,noLog:V?.noLog===!0}).catch(()=>{}),"AbortError"===n.name)return eO.handleError(n),(0,f.createErrorResult)(499,"Request aborted");es(h.HTTP_STATUS.BAD_GATEWAY,n?.name||"upstream_error");let t=(0,f.formatProviderError)(n,ee,et,h.HTTP_STATUS.BAD_GATEWAY);return console.log(`${l.COLORS.red}[ERROR] ${t}${l.COLORS.reset}`),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,t)}if(J.status===h.HTTP_STATUS.UNAUTHORIZED||J.status===h.HTTP_STATUS.FORBIDDEN){let e=await (0,u.refreshWithRetry)(()=>eI.refreshCredentials(n,L),3,L);if(e?.accessToken||e?.copilotToken){L?.info?.("TOKEN",`${ee.toUpperCase()} | refreshed`),Object.assign(n,e),j&&e&&await j(e);try{let e=String(ek.model||eh),t=await eI.execute({model:e,body:ek,stream:eS,credentials:ew(),signal:eO.signal,log:L,extendedContext:en,upstreamExtraHeaders:eA(e)});t.response.ok&&(J=t.response,G=t.url)}catch(e){L?.warn?.("TOKEN",`${ee.toUpperCase()} | retry after refresh failed`)}}else L?.warn?.("TOKEN",`${ee.toUpperCase()} | refresh failed`)}if(await ea(J.headers,J.status),!J.ok){(0,S.trackPendingRequest)(et,ee,K,!1);let{statusCode:t,message:o,retryAfterMs:r}=await (0,f.parseUpstreamError)(J,ee),s=(0,_.classifyProviderError)(t,o);if(K&&s)try{s===_.PROVIDER_ERROR_TYPES.FORBIDDEN?(await (0,y.updateProviderConnection)(K,{isActive:!1,testStatus:"banned",lastErrorType:s,lastError:o,errorCode:t}),console.warn(`[provider] Node ${K} banned (${t}) — disabling permanently`)):s===_.PROVIDER_ERROR_TYPES.QUOTA_EXHAUSTED?(await (0,y.updateProviderConnection)(K,{testStatus:"credits_exhausted",lastErrorType:s,lastError:o,errorCode:t}),console.warn(`[provider] Node ${K} exhausted quota (${t})`)):s===_.PROVIDER_ERROR_TYPES.ACCOUNT_DEACTIVATED?(await (0,y.updateProviderConnection)(K,{isActive:!1,testStatus:"expired",lastErrorType:s,lastError:o,errorCode:t}),console.warn(`[provider] Node ${K} account deactivated (${t}) — marked expired`)):s===_.PROVIDER_ERROR_TYPES.UNAUTHORIZED&&await (0,y.updateProviderConnection)(K,{lastErrorType:s,lastError:o,errorCode:t})}catch{}(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:`FAILED ${t}`}).catch(()=>{}),(0,E.saveCallLog)({method:"POST",path:B?.endpoint||"/v1/chat/completions",status:t,model:et,requestedModel:eo,provider:ee,connectionId:K,duration:Date.now()-er,requestBody:e,error:o,sourceFormat:eu,targetFormat:ey,comboName:Y,apiKeyId:V?.id||null,apiKeyName:V?.name||null,noLog:V?.noLog===!0}).catch(()=>{});let a=(0,f.formatProviderError)(Error(o),ee,et,t);if(console.log(`${l.COLORS.red}[ERROR] ${a}${l.COLORS.reset}`),r&&"antigravity"===ee){let e=Math.ceil(r/1e3);L?.debug?.("RETRY",`Antigravity quota reset in ${e}s (${r}ms)`)}if(eE.logError(Error(o),Q||ek),(0,b.updateFromHeaders)(ee,K,J.headers,t,et),!(0,D.isModelUnavailableError)(t,o))return es(t,`upstream_${t}`),(0,f.createErrorResult)(t,a,r);{let e=(0,D.getNextFamilyFallback)(eU,eD);if(!e)return es(t,"model_unavailable"),(0,f.createErrorResult)(t,a,r);eD.add(e),eU=e,ek.model=e,L?.info?.("MODEL_FALLBACK",`${et} unavailable (${t}) → trying ${e}`);try{let n=await eN(e,!1);if(!n.response.ok)return es(t,"model_unavailable"),(0,f.createErrorResult)(t,a,r);J=n.response,G=n.url,z=n.headers,Q=n.transformedBody,L?.info?.("MODEL_FALLBACK",`Serving ${e} as fallback for ${et}`)}catch{return es(t,"model_unavailable"),(0,f.createErrorResult)(t,a,r)}}let i=Array.isArray(ek.tools)&&ek.tools.length>0;if(!eS){let e=(0,M.shouldUseFallback)(t,o,i,M.EMERGENCY_FALLBACK_CONFIG);if((0,M.isFallbackDecision)(e)){L?.info?.("EMERGENCY_FALLBACK",e.reason);try{let t=(0,R.getExecutor)(e.provider),o=await t.execute({model:e.model,body:{...ek,model:e.model,max_tokens:Math.min("number"==typeof ek.max_tokens?ek.max_tokens:e.maxOutputTokens,e.maxOutputTokens)},stream:!1,credentials:n,signal:eO.signal,log:L,extendedContext:en});o.response.ok?(J=o.response,L?.info?.("EMERGENCY_FALLBACK",`Serving ${e.provider}/${e.model} as budget fallback for ${ee}/${et}`)):L?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback also failed (${o.response.status})`)}catch(e){L?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback error: ${e?.message}`)}}}}if(!eS){let t;(0,S.trackPendingRequest)(et,ee,K,!1);let n=(J.headers.get("content-type")||"").toLowerCase(),r=await J.text();if(n.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(r)){let e=ey===a.FORMATS.OPENAI_RESPONSES?(0,w.parseSSEToResponsesOutput)(r,et):(0,w.parseSSEToOpenAIResponse)(r,et);if(!e)return(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),es(h.HTTP_STATUS.BAD_GATEWAY,"invalid_sse_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid SSE response for non-streaming request");t=e}else try{t=r?JSON.parse(r):{}}catch{return(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),es(h.HTTP_STATUS.BAD_GATEWAY,"invalid_json_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid JSON response from provider")}q&&await q();let i=(0,I.extractUsageFromResponse)(t,ee);if((0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,tokens:i,status:"200 OK"}).catch(()=>{}),(0,E.saveCallLog)({method:"POST",path:B?.endpoint||"/v1/chat/completions",status:200,model:et,requestedModel:eo,provider:ee,connectionId:K,duration:Date.now()-er,tokens:i,requestBody:e,responseBody:t,sourceFormat:eu,targetFormat:ey,comboName:Y,apiKeyId:V?.id||null,apiKeyName:V?.name||null,noLog:V?.noLog===!0}).catch(()=>{}),i&&"object"==typeof i){let e=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${ee.toUpperCase()} | in=${i?.prompt_tokens||0} | out=${i?.completion_tokens||0}${K?` | account=${K.slice(0,8)}...`:""}`;console.log(`${l.COLORS.green}${e}${l.COLORS.reset}`),(0,S.saveRequestUsage)({provider:ee||"unknown",model:et||"unknown",tokens:i,status:"200",success:!0,latencyMs:Date.now()-er,timeToFirstTokenMs:Date.now()-er,errorCode:null,timestamp:new Date().toISOString(),connectionId:K||void 0,apiKeyId:V?.id||void 0,apiKeyName:V?.name||void 0}).catch(e=>{console.error("Failed to save usage stats:",e.message)})}let c=(0,s.needsTranslation)(ey,eu)?(0,C.translateNonStreamingResponse)(t,ey,eu,ev):t;if("claude"!==eu||eS||"string"!=typeof c?.choices?.[0]?.message?.content||(c.choices[0].message.content=(0,F.stripMarkdownCodeFence)(c.choices[0].message.content)),c?.choices)for(let e of c.choices)e.message?.tool_calls&&e.message.tool_calls.length>0&&"tool_calls"!==e.finish_reason&&(e.finish_reason="tool_calls");if(eu===a.FORMATS.OPENAI&&(c=(0,O.sanitizeOpenAIResponse)(c)),c?.usage){let e=(0,l.addBufferToUsage)(c.usage);c.usage=(0,l.filterUsageForFormat)(e,eu)}else{let t=JSON.stringify(c?.choices?.[0]?.message?.content||"").length;if(t>0){let n=(0,l.estimateUsage)(e,t,eu);c.usage=(0,l.filterUsageForFormat)(n,eu)}}if((0,x.isCacheable)(e,B?.headers)){let t=(0,x.generateSignature)(et,e.messages,e.temperature,e.top_p),n=i?.prompt_tokens+i?.completion_tokens||0;(0,x.setCachedResponse)(t,et,c,n),L?.debug?.("CACHE",`Stored response for ${et} (${n} tokens)`)}return(0,$.saveIdempotency)(ei,c,200),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"MISS"}})}}q&&await q();let eM={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()},eF=({status:t,usage:n,responseBody:o})=>{(0,E.saveCallLog)({method:"POST",path:B?.endpoint||"/v1/chat/completions",status:t||200,model:et,requestedModel:eo,provider:ee,connectionId:K,duration:Date.now()-er,tokens:n||{},requestBody:e,responseBody:o??void 0,sourceFormat:eu,targetFormat:ey,comboName:Y,apiKeyId:V?.id||null,apiKeyName:V?.name||null,noLog:V?.noLog===!0}).catch(()=>{})},eL=W?.toLowerCase().includes("droid")||W?.toLowerCase().includes("codex-cli");if("codex"!==ee||ey!==a.FORMATS.OPENAI_RESPONSES||eu!==a.FORMATS.OPENAI||ed||eL?(0,s.needsTranslation)(ey,eu)?(L?.debug?.("STREAM",`Translation mode: ${ey} → ${eu}`),Z=(0,i.createSSETransformStreamWithLogger)(ey,eu,ee,eE,ev,et,K,e,eF,V)):(L?.debug?.("STREAM","Standard passthrough mode"),Z=(0,i.createPassthroughStreamWithLogger)(ee,eE,et,K,e,eF,V)):(L?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),Z=(0,i.createSSETransformStreamWithLogger)("openai-responses","openai",ee,eE,ev,et,K,e,eF,V)),(0,N.wantsProgress)(B?.headers)){let e=(0,N.createProgressTransform)({signal:eO.signal});X=(0,c.pipeWithDisconnect)(J,Z,eO).pipeThrough(e),eM["X-OmniRoute-Progress"]="enabled"}else X=(0,c.pipeWithDisconnect)(J,Z,eO);return{success:!0,response:new Response(X,{headers:eM})}}[R]=L.then?(await L)():L,e.s(["handleChatCore",()=>j]),n()}catch(e){n(e)}},!1),485641,e=>{"use strict";let t=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],n=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function o(e,t=!1){let r=[],s=e;for(let o of n){let n=e.match(o.pattern);n&&n.length>0&&(r.push({type:o.name,count:n.length}),t&&(s=s.replace(o.pattern,o.replacement)))}return{text:s,detections:r}}function r(e,n=console){let s={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},a={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!s.enabled)return a;let i=(function(e){let t=[];for(let n of e.messages||e.input||[])if("string"==typeof n)t.push(n);else if("string"==typeof n.content)t.push(n.content);else if(Array.isArray(n.content))for(let e of n.content)"string"==typeof e?t.push(e):e.text&&t.push(e.text);if("string"==typeof e.system)t.push(e.system);else if(Array.isArray(e.system))for(let n of e.system)"string"==typeof n?t.push(n):n.text&&t.push(n.text);return t})(e).join("\n"),l=function(e){let n=[];for(let o of t){let t=e.match(o.pattern);t&&n.push({pattern:o.name,severity:o.severity,match:t[0].slice(0,50)})}return n}(i);if(l.length>0){a.detections=l;let e=l.filter(e=>"high"===e.severity),t=e.length>0?"warn":"info";if(n[t]&&n[t](`[SANITIZER] Prompt injection detected: ${l.map(e=>e.pattern).join(", ")}`),"block"===s.mode&&e.length>0)return a.blocked=!0,a}if(s.piiRedaction){let t=o(i,"redact"===s.mode);a.piiDetections=t.detections,t.detections.length>0&&(n.warn?.(`[SANITIZER] PII detected: ${t.detections.map(e=>`${e.type}(${e.count})`).join(", ")}`),"redact"===s.mode&&(a.sanitizedBody=function(e){let t=JSON.parse(JSON.stringify(e));for(let e of t.messages||t.input||[])if("string"==typeof e.content)e.content=o(e.content,!0).text;else if(Array.isArray(e.content))for(let t of e.content)if("string"==typeof t){let n=e.content.indexOf(t);e.content[n]=o(t,!0).text}else t.text&&(t.text=o(t.text,!0).text);return"string"==typeof t.system&&(t.system=o(t.system,!0).text),t}(e),a.modified=!0))}return a}e.s(["sanitizeRequest",()=>r])},577122,e=>{"use strict";var t=e.i(478500),n=e.i(254799);function o(){return(0,n.randomUUID)()}new t.AsyncLocalStorage,e.s(["generateRequestId",()=>o])},311250,e=>e.a(async(t,n)=>{try{var o=e.i(287726),r=e.i(192408),s=e.i(85713),a=e.i(284948),i=e.i(719201),l=e.i(928041),c=e.i(16023),u=e.i(878947),d=e.i(444675);e.i(706901);var p=e.i(249157),g=e.i(496973);e.i(245272);var m=e.i(548941),f=e.i(151205),h=e.i(496928),_=e.i(21245),y=e.i(485641),A=e.i(260222),T=e.i(982392),S=e.i(25687),E=e.i(454925),k=e.i(577122),R=e.i(362225),v=e.i(478847),C=e.i(852705),I=e.i(154939),w=e.i(167389),O=t([a]);async function b(e,t=null){let n,s=(0,k.generateRequestId)(),a=new E.RequestTelemetry(s);try{a.startPhase("parse"),n=await e.json(),a.endPhase()}catch{return p.warn("CHAT","Invalid JSON body"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}a.startPhase("validate");let u=(0,y.sanitizeRequest)(n,p);if(u.blocked)return p.warn("SANITIZER","Request blocked due to prompt injection",{detections:u.detections}),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Request rejected: suspicious content detected");u.modified&&u.sanitizedBody&&(n=u.sanitizedBody),a.endPhase(),(e.headers.get("accept")||"").includes("text/event-stream")&&void 0===n.stream&&(n={...n,stream:!0},p.debug("STREAM","Accept: text/event-stream header → overriding stream=true (body had no stream field)")),t||(t={endpoint:new URL(e.url).pathname,body:n,headers:Object.fromEntries(e.headers.entries())});let d=new URL(e.url),g=n.model,h=n.messages?.length||n.input?.length||0,_=n.tools?.length||0,A=n.reasoning_effort||n.reasoning?.effort||null;p.request("POST",`${d.pathname} | ${g} | ${h} msgs${_?` | ${_} tools`:""}${A?` | effort=${A}`:""}`);let S=e.headers.get("Authorization"),R=(0,o.extractApiKey)(e);S&&R?p.debug("AUTH",`API Key: ${p.maskKey(R)}`):p.debug("AUTH","No API key provided (local mode)");let w=e.headers?.get?.("x-internal-test")==="combo-health-check";if("true"!==process.env.REQUIRE_API_KEY||w){if(R&&!w&&!await (0,o.isValidApiKey)(R))return p.warn("AUTH","API key not found or invalid (must be created in API Manager)"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}else{if(!R)return p.warn("AUTH","Missing API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,o.isValidApiKey)(R))return p.warn("AUTH","Invalid API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}if(!g)return p.warn("CHAT","Missing model"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Missing model");let O=(0,I.extractExternalSessionId)(e.headers)||(0,I.generateSessionId)(n);O&&(0,I.touchSession)(O),a.startPhase("policy");let $=await (0,v.enforceApiKeyPolicy)(e,g);if($.rejection)return p.warn("POLICY",`API key policy rejected: ${g} (key=${$.apiKeyInfo?.id||"unknown"})`),$.rejection;let N=$.apiKeyInfo;if(a.endPhase(),N?.id&&O){let e="number"==typeof N.maxSessions&&N.maxSessions>0?N.maxSessions:0;if(e>0&&!(0,I.isSessionRegisteredForKey)(N.id,O)){let t=(0,I.checkSessionLimit)(N.id,e);if(t)return U((0,i.errorResponse)(c.HTTP_STATUS.RATE_LIMITED,t.message),O);(0,I.registerKeySession)(N.id,O)}}let D=g;if((0,C.getTaskRoutingConfig)().enabled){a.startPhase("task-route");let e=(0,C.applyTaskAwareRouting)(g,n);e.wasRouted?(D=e.model,n={...n,model:e.model},p.info("T05",`Task-Aware: detected="${e.taskType}" → model override: ${g} → ${e.model}`)):"chat"!==e.taskType&&p.debug("T05",`Task-Aware: detected="${e.taskType}" (no override configured)`),e.taskType,e.wasRouted,a.endPhase()}a.startPhase("resolve");let P=await (0,r.getComboForModel)(D);if(P){p.info("CHAT",`Combo "${g}" [${P.strategy||"priority"}] with ${P.models.length} models`);let s=async e=>{let t=await (0,r.getModelInfo)(e),n=t.provider;if(!n)return!0;if(!(0,T.isModelAvailable)(n,t.model||e))return p.debug("AVAILABILITY",`${n}/${t.model} in cooldown, skipping`),!1;let s=await (0,o.getProviderCredentials)(n,null,N?.allowedConnections??null,t.model||e);return!!s&&!s.allRateLimited},[i,c]=await Promise.all([(0,m.getSettings)().catch(()=>({})),(0,f.getCombos)().catch(()=>[])]);a.endPhase();let u=await l.handleComboChat({body:n,combo:P,handleSingleModel:(n,o)=>x(n,o,t,e,P.name,N,a,{sessionId:O}),isModelAvailable:s,log:p,settings:i,allCombos:c});return(0,E.recordTelemetry)(a),U(u,O)}a.endPhase();let M=await x(n,g,t,e,null,N,a,{sessionId:O});return(0,E.recordTelemetry)(a),U(M,O)}async function x(e,t,n=null,r=null,s=null,a=null,l=null,u={}){var d,m;let f=await $(t,e,n?.endpoint);if(f.error)return f.error;let{provider:y,model:E,sourceFormat:k,targetFormat:v,extendedContext:C}=f,O=(d=y,m=E,(0,T.isModelAvailable)(d,m)?(0,A.getCircuitBreaker)(d,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}).canExecute()?null:(p.warn("CIRCUIT",`Circuit breaker OPEN for ${d}, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${d} circuit breaker is open`,30)):(p.warn("AVAILABILITY",`${d}/${m} is in cooldown, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Model ${d}/${m} is temporarily unavailable (cooldown)`,30)));if(O)return O;let b=(0,A.getCircuitBreaker)(y,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}),U=r?.headers?.get("user-agent")||"",P=null,M=null,F=null;for(;;){let t=await (0,o.getProviderCredentials)(y,P,a?.allowedConnections??null,E);if(!t||t.allRateLimited)return(429===F||503===F)&&((0,T.setModelUnavailable)(y,E,6e4,`HTTP ${F}`),p.info("AVAILABILITY",`${y}/${E} marked unavailable — all accounts exhausted (HTTP ${F})`)),function(e,t,n,o,r,s){if(e?.allRateLimited){let t=r||e.lastError||"Unavailable",a=s||Number(e.lastErrorCode)||c.HTTP_STATUS.SERVICE_UNAVAILABLE;return p.warn("CHAT",`[${n}/${o}] ${t} (${e.retryAfterHuman})`),(0,i.unavailableResponse)(a,`[${n}/${o}] ${t}`,e.retryAfter,e.retryAfterHuman)}return t?(p.warn("CHAT","No more accounts available",{provider:n}),(0,i.errorResponse)(s||c.HTTP_STATUS.SERVICE_UNAVAILABLE,r||"All accounts unavailable")):(p.error("AUTH",`No credentials for provider: ${n}`),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${n}`))}(t,P,y,E,M,F);let d=t.connectionId.slice(0,8);p.info("AUTH",`Using ${y} account: ${d}...`),u.sessionId&&(0,I.touchSession)(u.sessionId,t.connectionId);let m=await (0,g.checkAndRefreshToken)(y,t),f=await D(t.connectionId),A=Date.now();l&&l.startPhase("connect");let{result:O,tlsFingerprintUsed:$}=await N({breaker:b,body:e,provider:y,model:E,refreshedCredentials:m,proxyInfo:f,log:p,clientRawRequest:n,credentials:t,apiKeyInfo:a,userAgent:U,comboName:s,extendedContext:C});l&&l.endPhase();let L=Date.now()-A;if(function({result:e,proxyInfo:t,proxyLatency:n,provider:o,model:r,sourceFormat:s,targetFormat:a,credentials:i,comboName:l,clientRawRequest:c,tlsFingerprintUsed:u=!1}){try{(0,h.logProxyEvent)({status:e.success?"success":408===e.status||504===e.status?"timeout":"error",proxy:t?.proxy||null,level:t?.level||"direct",levelId:t?.levelId||null,provider:o,targetUrl:`${o}/${r}`,latencyMs:n,error:e.success?null:e.error||null,connectionId:i.connectionId,comboId:l||null,account:i.connectionId?.slice(0,8)||null,tlsFingerprint:u})}catch{}try{(0,_.logTranslationEvent)({provider:o,model:r,sourceFormat:s,targetFormat:a,status:e.success?"success":"error",statusCode:e.success?200:e.status||500,latency:n,endpoint:c?.endpoint||"/v1/chat/completions",connectionId:i.connectionId||null,comboName:l||null})}catch{}}({result:O,proxyInfo:f,proxyLatency:L,provider:y,model:E,sourceFormat:k,targetFormat:v,credentials:t,comboName:s,clientRawRequest:n,tlsFingerprintUsed:$}),O.success)return(0,T.clearModelUnavailability)(y,E),function(e,t){if(e?.id)try{let n=t.usage||{},o=((n.prompt_tokens||0)+(n.completion_tokens||0))*1e-6;o>0&&(0,R.recordCost)(e.id,o)}catch{}}(a,O),l&&l.startPhase("finalize"),l&&l.endPhase(),O.response;if(!u.emergencyFallbackTried){let t=(0,w.shouldUseFallback)(Number(O.status||0),String(O.error||""),Array.isArray(e?.tools)&&e.tools.length>0);if((0,w.isFallbackDecision)(t)){let o=`${t.provider}/${t.model}`,i=`${y}/${E}`;if(o!==i){let c={...e,model:o},d=Math.min(Number(c.max_tokens??c.max_completion_tokens??t.maxOutputTokens)||t.maxOutputTokens,t.maxOutputTokens);return c.max_tokens=d,c.max_completion_tokens=d,p.warn("EMERGENCY_FALLBACK",`${i} -> ${o} | reason=${t.reason}`),x(c,o,n,r,s,a,l,{...u,emergencyFallbackTried:!0})}}}429===O.status&&(0,S.markAccountExhaustedFrom429)(t.connectionId,y);let{shouldFallback:j}=await (0,o.markAccountUnavailable)(t.connectionId,O.status,O.error,y,E);if(j){p.warn("AUTH",`Account ${d}... unavailable (${O.status}), trying fallback`),P=t.connectionId,M=O.error,F=O.status;continue}return O.response}}async function $(e,t,n=""){let o=await (0,r.getModelInfo)(e);if(!o.provider){if("ambiguous_model"===o.errorType){let t=o.errorMessage||`Ambiguous model '${e}'. Use provider/model prefix (ex: gh/${e} or cc/${e}).`;return p.warn("CHAT",t,{model:e,candidates:o.candidateAliases||o.candidateProviders||[]}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,t)}}return p.warn("CHAT","Invalid model format",{model:e}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid model format")}}let{provider:a,model:l,extendedContext:d}=o,g=(0,s.detectFormatFromEndpoint)(t,n),m=u.PROVIDER_ID_TO_ALIAS[a]||a,f=(0,u.getModelTargetFormat)(m,l)||(0,s.getTargetFormat)(a);"responses"===o.apiFormat&&(f="openai-responses",p.info("ROUTING",`Custom model apiFormat=responses → targetFormat=openai-responses`));let h=d&&"claude"===m?" [1m]":"";return e!==`${a}/${l}`?p.info("ROUTING",`${e} → ${a}/${l}${h}`):p.info("ROUTING",`Provider: ${a}, Model: ${l}${h}`),{provider:a,model:l,sourceFormat:g,targetFormat:f,extendedContext:d}}async function N({breaker:e,body:t,provider:n,model:r,refreshedCredentials:s,proxyInfo:l,log:u,clientRawRequest:m,credentials:f,apiKeyInfo:h,userAgent:_,comboName:y,extendedContext:T}){try{let i=()=>(0,d.runWithProxyContext)(l?.proxy||null,()=>a.handleChatCore({body:{...t,model:`${n}/${r}`},modelInfo:{provider:n,model:r,extendedContext:T},credentials:s,log:u,clientRawRequest:m,connectionId:f.connectionId,apiKeyInfo:h,userAgent:_,comboName:y,onCredentialsRefreshed:async e=>{await (0,g.updateProviderCredentials)(f.connectionId,{accessToken:e.accessToken,refreshToken:e.refreshToken,providerSpecificData:e.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,o.clearAccountError)(f.connectionId,f)}}));if(!l?.proxy&&(0,d.isTlsFingerprintActive)()){let t=await e.execute(async()=>(0,d.runWithTlsTracking)(i));return{result:t.result,tlsFingerprintUsed:t.tlsFingerprintUsed}}return{result:await e.execute(i),tlsFingerprintUsed:!1}}catch(e){if(e instanceof A.CircuitBreakerOpenError)return p.warn("CIRCUIT",`${n} circuit open during retry: ${e.message}`),{result:{success:!1,response:i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${n} circuit breaker is open`,Math.ceil(e.retryAfterMs/1e3)),status:c.HTTP_STATUS.SERVICE_UNAVAILABLE},tlsFingerprintUsed:!1};if(e?.code==="PROXY_UNREACHABLE"||/proxy unreachable/i.test(e?.message||"")){let t=e?.message||"Proxy unreachable";return p.warn("PROXY",t),{result:{success:!1,response:i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,t,2),status:c.HTTP_STATUS.SERVICE_UNAVAILABLE,error:t},tlsFingerprintUsed:!1}}throw e}}async function D(e){try{return await (0,m.resolveProxyForConnection)(e)}catch(e){return p.debug("PROXY",`Failed to resolve proxy: ${e.message}`),null}}function U(e,t){if(!e||!t)return e;try{return e.headers.set("X-OmniRoute-Session-Id",t),e}catch{let n=new Response(e.body,{status:e.status,statusText:e.statusText,headers:e.headers});return n.headers.set("X-OmniRoute-Session-Id",t),n}}[a]=O.then?(await O)():O,e.s(["handleChat",()=>b]),n()}catch(e){n(e)}},!1)];
|
|
25
|
+
${o}`}]:[]}return L?.debug?.("CONTENT",`Dropped unsupported content part type="${e.type}"`),[]}));let t=(0,E.getModelNormalizeToolCallId)(ee||"",et||"",eu),o=(0,E.getModelPreserveOpenAIDeveloperRole)(ee||"",et||"",eu);eE=(0,s.translateRequest)(eu,ey,et,eE,eS,n,ee,ek,{normalizeToolCallId:t,preserveDeveloperRole:o})}}catch(s){let e=Number(s?.statusCode),t=Number.isInteger(e)&&e>=400&&e<=599?e:h.HTTP_STATUS.SERVER_ERROR,n=s?.message||"Invalid request",r="string"==typeof s?.errorType?s.errorType:null;if(L?.warn?.("TRANSLATE",`Request translation failed: ${n}`),r)return{success:!1,status:t,error:n,response:new Response(JSON.stringify({error:{message:n,type:r,code:r}}),{status:t,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()}})};return(0,f.createErrorResult)(t,n)}let ev=eE._toolNameMap;delete eE._toolNameMap,delete eE._disableToolPrefix,eE.model=eh;let eC=(0,m.getUnsupportedParams)(ee,et);if(eC.length>0){let e=[];for(let t of eC)Object.hasOwn(eE,t)&&(e.push(t),delete eE[t]);e.length>0&&L?.warn?.("PARAMS",`Stripped unsupported params for ${et}: ${e.join(", ")}`)}let eI=(0,R.getExecutor)(ee),ew=()=>ep?{...n,requestEndpointPath:ec}:n,eO=(0,c.createStreamController)({onDisconnect:H,log:L,provider:ee,model:et}),eb={...eE,model:`${ee}/${et}`},ex=(0,U.shouldDeduplicate)(eb),e$=ex?(0,U.computeRequestHash)(eb):null,eN=async(e=eh,t=!1)=>{let n=async()=>{let t=eE.model===e?eE:{...eE,model:e},n=await (0,b.withRateLimit)(ee,K,e,()=>eI.execute({model:e,body:t,stream:eS,credentials:ew(),signal:eO.signal,log:L,extendedContext:en,upstreamExtraHeaders:eA(e)}));if(eS)return n;let o=n.response.status,r=n.response.statusText,s=Array.from(n.response.headers.entries()),a=await n.response.text();return{...n,response:new Response(a,{status:o,statusText:r,headers:s})}};if(t&&ex&&e$){let e=await (0,U.deduplicate)(e$,n);return e.wasDeduplicated&&L?.debug?.("DEDUP",`Joined in-flight request hash=${e$}`),e.result}return n()};(0,S.trackPendingRequest)(et,ee,K,!0);let eD=new Set([eh]),eU=eh;(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:"PENDING"}).catch(()=>{});let eP=eE.messages?.length||eE.contents?.length||eE.request?.contents?.length||0;L?.debug?.("REQUEST",`${ee.toUpperCase()} | ${et} | ${eP} msgs`);try{let e=await eN(eh,!0);J=e.response,G=e.url,z=e.headers,Q=e.transformedBody,ek.logTargetRequest(G,z,Q),(0,b.updateFromHeaders)(ee,K,J.headers,J.status,et)}catch(n){if((0,S.trackPendingRequest)(et,ee,K,!1),(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:`FAILED ${"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),(0,k.saveCallLog)({method:"POST",path:B?.endpoint||"/v1/chat/completions",status:"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY,model:et,requestedModel:eo,provider:ee,connectionId:K,duration:Date.now()-er,requestBody:e,error:n.message,sourceFormat:eu,targetFormat:ey,comboName:Y,apiKeyId:V?.id||null,apiKeyName:V?.name||null,noLog:V?.noLog===!0}).catch(()=>{}),"AbortError"===n.name)return eO.handleError(n),(0,f.createErrorResult)(499,"Request aborted");es(h.HTTP_STATUS.BAD_GATEWAY,n?.name||"upstream_error");let t=(0,f.formatProviderError)(n,ee,et,h.HTTP_STATUS.BAD_GATEWAY);return console.log(`${l.COLORS.red}[ERROR] ${t}${l.COLORS.reset}`),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,t)}if(J.status===h.HTTP_STATUS.UNAUTHORIZED||J.status===h.HTTP_STATUS.FORBIDDEN){let e=await (0,u.refreshWithRetry)(()=>eI.refreshCredentials(n,L),3,L);if(e?.accessToken||e?.copilotToken){L?.info?.("TOKEN",`${ee.toUpperCase()} | refreshed`),Object.assign(n,e),j&&e&&await j(e);try{let e=String(eE.model||eh),t=await eI.execute({model:e,body:eE,stream:eS,credentials:ew(),signal:eO.signal,log:L,extendedContext:en,upstreamExtraHeaders:eA(e)});t.response.ok&&(J=t.response,G=t.url)}catch(e){L?.warn?.("TOKEN",`${ee.toUpperCase()} | retry after refresh failed`)}}else L?.warn?.("TOKEN",`${ee.toUpperCase()} | refresh failed`)}if(await ea(J.headers,J.status),!J.ok){(0,S.trackPendingRequest)(et,ee,K,!1);let{statusCode:t,message:o,retryAfterMs:r}=await (0,f.parseUpstreamError)(J,ee),s=(0,_.classifyProviderError)(t,o);if(K&&s)try{s===_.PROVIDER_ERROR_TYPES.FORBIDDEN?(await (0,y.updateProviderConnection)(K,{isActive:!1,testStatus:"banned",lastErrorType:s,lastError:o,errorCode:t}),console.warn(`[provider] Node ${K} banned (${t}) — disabling permanently`)):s===_.PROVIDER_ERROR_TYPES.QUOTA_EXHAUSTED?(await (0,y.updateProviderConnection)(K,{testStatus:"credits_exhausted",lastErrorType:s,lastError:o,errorCode:t}),console.warn(`[provider] Node ${K} exhausted quota (${t})`)):s===_.PROVIDER_ERROR_TYPES.ACCOUNT_DEACTIVATED?(await (0,y.updateProviderConnection)(K,{isActive:!1,testStatus:"expired",lastErrorType:s,lastError:o,errorCode:t}),console.warn(`[provider] Node ${K} account deactivated (${t}) — marked expired`)):s===_.PROVIDER_ERROR_TYPES.UNAUTHORIZED&&await (0,y.updateProviderConnection)(K,{lastErrorType:s,lastError:o,errorCode:t})}catch{}(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:`FAILED ${t}`}).catch(()=>{}),(0,k.saveCallLog)({method:"POST",path:B?.endpoint||"/v1/chat/completions",status:t,model:et,requestedModel:eo,provider:ee,connectionId:K,duration:Date.now()-er,requestBody:e,error:o,sourceFormat:eu,targetFormat:ey,comboName:Y,apiKeyId:V?.id||null,apiKeyName:V?.name||null,noLog:V?.noLog===!0}).catch(()=>{});let a=(0,f.formatProviderError)(Error(o),ee,et,t);if(console.log(`${l.COLORS.red}[ERROR] ${a}${l.COLORS.reset}`),r&&"antigravity"===ee){let e=Math.ceil(r/1e3);L?.debug?.("RETRY",`Antigravity quota reset in ${e}s (${r}ms)`)}if(ek.logError(Error(o),Q||eE),(0,b.updateFromHeaders)(ee,K,J.headers,t,et),!(0,D.isModelUnavailableError)(t,o))return es(t,`upstream_${t}`),(0,f.createErrorResult)(t,a,r);{let e=(0,D.getNextFamilyFallback)(eU,eD);if(!e)return es(t,"model_unavailable"),(0,f.createErrorResult)(t,a,r);eD.add(e),eU=e,eE.model=e,L?.info?.("MODEL_FALLBACK",`${et} unavailable (${t}) → trying ${e}`);try{let n=await eN(e,!1);if(!n.response.ok)return es(t,"model_unavailable"),(0,f.createErrorResult)(t,a,r);J=n.response,G=n.url,z=n.headers,Q=n.transformedBody,L?.info?.("MODEL_FALLBACK",`Serving ${e} as fallback for ${et}`)}catch{return es(t,"model_unavailable"),(0,f.createErrorResult)(t,a,r)}}let i=Array.isArray(eE.tools)&&eE.tools.length>0;if(!eS){let e=(0,M.shouldUseFallback)(t,o,i,M.EMERGENCY_FALLBACK_CONFIG);if((0,M.isFallbackDecision)(e)){L?.info?.("EMERGENCY_FALLBACK",e.reason);try{let t=(0,R.getExecutor)(e.provider),o=await t.execute({model:e.model,body:{...eE,model:e.model,max_tokens:Math.min("number"==typeof eE.max_tokens?eE.max_tokens:e.maxOutputTokens,e.maxOutputTokens)},stream:!1,credentials:n,signal:eO.signal,log:L,extendedContext:en});o.response.ok?(J=o.response,L?.info?.("EMERGENCY_FALLBACK",`Serving ${e.provider}/${e.model} as budget fallback for ${ee}/${et}`)):L?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback also failed (${o.response.status})`)}catch(e){L?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback error: ${e?.message}`)}}}}if(!eS){let t;(0,S.trackPendingRequest)(et,ee,K,!1);let n=(J.headers.get("content-type")||"").toLowerCase(),r=await J.text();if(n.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(r)){let e=ey===a.FORMATS.OPENAI_RESPONSES?(0,w.parseSSEToResponsesOutput)(r,et):(0,w.parseSSEToOpenAIResponse)(r,et);if(!e)return(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),es(h.HTTP_STATUS.BAD_GATEWAY,"invalid_sse_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid SSE response for non-streaming request");t=e}else try{t=r?JSON.parse(r):{}}catch{return(0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),es(h.HTTP_STATUS.BAD_GATEWAY,"invalid_json_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid JSON response from provider")}q&&await q();let i=(0,I.extractUsageFromResponse)(t,ee);if((0,S.appendRequestLog)({model:et,provider:ee,connectionId:K,tokens:i,status:"200 OK"}).catch(()=>{}),(0,k.saveCallLog)({method:"POST",path:B?.endpoint||"/v1/chat/completions",status:200,model:et,requestedModel:eo,provider:ee,connectionId:K,duration:Date.now()-er,tokens:i,requestBody:e,responseBody:t,sourceFormat:eu,targetFormat:ey,comboName:Y,apiKeyId:V?.id||null,apiKeyName:V?.name||null,noLog:V?.noLog===!0}).catch(()=>{}),i&&"object"==typeof i){let e=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${ee.toUpperCase()} | in=${i?.prompt_tokens||0} | out=${i?.completion_tokens||0}${K?` | account=${K.slice(0,8)}...`:""}`;console.log(`${l.COLORS.green}${e}${l.COLORS.reset}`),(0,S.saveRequestUsage)({provider:ee||"unknown",model:et||"unknown",tokens:i,status:"200",success:!0,latencyMs:Date.now()-er,timeToFirstTokenMs:Date.now()-er,errorCode:null,timestamp:new Date().toISOString(),connectionId:K||void 0,apiKeyId:V?.id||void 0,apiKeyName:V?.name||void 0}).catch(e=>{console.error("Failed to save usage stats:",e.message)})}let c=(0,s.needsTranslation)(ey,eu)?(0,C.translateNonStreamingResponse)(t,ey,eu,ev):t;if("claude"!==eu||eS||"string"!=typeof c?.choices?.[0]?.message?.content||(c.choices[0].message.content=(0,F.stripMarkdownCodeFence)(c.choices[0].message.content)),c?.choices)for(let e of c.choices)e.message?.tool_calls&&e.message.tool_calls.length>0&&"tool_calls"!==e.finish_reason&&(e.finish_reason="tool_calls");if(eu===a.FORMATS.OPENAI&&(c=(0,O.sanitizeOpenAIResponse)(c)),c?.usage){let e=(0,l.addBufferToUsage)(c.usage);c.usage=(0,l.filterUsageForFormat)(e,eu)}else{let t=JSON.stringify(c?.choices?.[0]?.message?.content||"").length;if(t>0){let n=(0,l.estimateUsage)(e,t,eu);c.usage=(0,l.filterUsageForFormat)(n,eu)}}if((0,x.isCacheable)(e,B?.headers)){let t=(0,x.generateSignature)(et,e.messages,e.temperature,e.top_p),n=i?.prompt_tokens+i?.completion_tokens||0;(0,x.setCachedResponse)(t,et,c,n),L?.debug?.("CACHE",`Stored response for ${et} (${n} tokens)`)}return(0,$.saveIdempotency)(ei,c,200),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"MISS"}})}}q&&await q();let eM={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()},eF=({status:t,usage:n,responseBody:o})=>{(0,k.saveCallLog)({method:"POST",path:B?.endpoint||"/v1/chat/completions",status:t||200,model:et,requestedModel:eo,provider:ee,connectionId:K,duration:Date.now()-er,tokens:n||{},requestBody:e,responseBody:o??void 0,sourceFormat:eu,targetFormat:ey,comboName:Y,apiKeyId:V?.id||null,apiKeyName:V?.name||null,noLog:V?.noLog===!0}).catch(()=>{})},eL=W?.toLowerCase().includes("droid")||W?.toLowerCase().includes("codex-cli");if("codex"!==ee||ey!==a.FORMATS.OPENAI_RESPONSES||eu!==a.FORMATS.OPENAI||ed||eL?(0,s.needsTranslation)(ey,eu)?(L?.debug?.("STREAM",`Translation mode: ${ey} → ${eu}`),Z=(0,i.createSSETransformStreamWithLogger)(ey,eu,ee,ek,ev,et,K,e,eF,V)):(L?.debug?.("STREAM","Standard passthrough mode"),Z=(0,i.createPassthroughStreamWithLogger)(ee,ek,et,K,e,eF,V)):(L?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),Z=(0,i.createSSETransformStreamWithLogger)("openai-responses","openai",ee,ek,ev,et,K,e,eF,V)),(0,N.wantsProgress)(B?.headers)){let e=(0,N.createProgressTransform)({signal:eO.signal});X=(0,c.pipeWithDisconnect)(J,Z,eO).pipeThrough(e),eM["X-OmniRoute-Progress"]="enabled"}else X=(0,c.pipeWithDisconnect)(J,Z,eO);return{success:!0,response:new Response(X,{headers:eM})}}[R]=L.then?(await L)():L,e.s(["handleChatCore",()=>j]),n()}catch(e){n(e)}},!1),485641,e=>{"use strict";let t=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],n=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function o(e,t=!1){let r=[],s=e;for(let o of n){let n=e.match(o.pattern);n&&n.length>0&&(r.push({type:o.name,count:n.length}),t&&(s=s.replace(o.pattern,o.replacement)))}return{text:s,detections:r}}function r(e,n=console){let s={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},a={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!s.enabled)return a;let i=(function(e){let t=[];for(let n of e.messages||e.input||[])if("string"==typeof n)t.push(n);else if("string"==typeof n.content)t.push(n.content);else if(Array.isArray(n.content))for(let e of n.content)"string"==typeof e?t.push(e):e.text&&t.push(e.text);if("string"==typeof e.system)t.push(e.system);else if(Array.isArray(e.system))for(let n of e.system)"string"==typeof n?t.push(n):n.text&&t.push(n.text);return t})(e).join("\n"),l=function(e){let n=[];for(let o of t){let t=e.match(o.pattern);t&&n.push({pattern:o.name,severity:o.severity,match:t[0].slice(0,50)})}return n}(i);if(l.length>0){a.detections=l;let e=l.filter(e=>"high"===e.severity),t=e.length>0?"warn":"info";if(n[t]&&n[t](`[SANITIZER] Prompt injection detected: ${l.map(e=>e.pattern).join(", ")}`),"block"===s.mode&&e.length>0)return a.blocked=!0,a}if(s.piiRedaction){let t=o(i,"redact"===s.mode);a.piiDetections=t.detections,t.detections.length>0&&(n.warn?.(`[SANITIZER] PII detected: ${t.detections.map(e=>`${e.type}(${e.count})`).join(", ")}`),"redact"===s.mode&&(a.sanitizedBody=function(e){let t=JSON.parse(JSON.stringify(e));for(let e of t.messages||t.input||[])if("string"==typeof e.content)e.content=o(e.content,!0).text;else if(Array.isArray(e.content))for(let t of e.content)if("string"==typeof t){let n=e.content.indexOf(t);e.content[n]=o(t,!0).text}else t.text&&(t.text=o(t.text,!0).text);return"string"==typeof t.system&&(t.system=o(t.system,!0).text),t}(e),a.modified=!0))}return a}e.s(["sanitizeRequest",()=>r])},577122,e=>{"use strict";var t=e.i(478500),n=e.i(254799);function o(){return(0,n.randomUUID)()}new t.AsyncLocalStorage,e.s(["generateRequestId",()=>o])},311250,e=>e.a(async(t,n)=>{try{var o=e.i(287726),r=e.i(192408),s=e.i(85713),a=e.i(284948),i=e.i(719201),l=e.i(928041),c=e.i(16023),u=e.i(878947),d=e.i(444675);e.i(706901);var p=e.i(249157),g=e.i(496973);e.i(245272);var m=e.i(548941),f=e.i(151205),h=e.i(496928),_=e.i(21245),y=e.i(485641),A=e.i(260222),T=e.i(982392),S=e.i(25687),k=e.i(454925),E=e.i(577122),R=e.i(362225),v=e.i(478847),C=e.i(852705),I=e.i(154939),w=e.i(167389),O=t([a]);async function b(e,t=null){let n,s=(0,E.generateRequestId)(),a=new k.RequestTelemetry(s);try{a.startPhase("parse"),n=await e.json(),a.endPhase()}catch{return p.warn("CHAT","Invalid JSON body"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}a.startPhase("validate");let u=(0,y.sanitizeRequest)(n,p);if(u.blocked)return p.warn("SANITIZER","Request blocked due to prompt injection",{detections:u.detections}),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Request rejected: suspicious content detected");u.modified&&u.sanitizedBody&&(n=u.sanitizedBody),a.endPhase(),(e.headers.get("accept")||"").includes("text/event-stream")&&void 0===n.stream&&(n={...n,stream:!0},p.debug("STREAM","Accept: text/event-stream header → overriding stream=true (body had no stream field)")),t||(t={endpoint:new URL(e.url).pathname,body:n,headers:Object.fromEntries(e.headers.entries())});let d=new URL(e.url),g=n.model,h=n.messages?.length||n.input?.length||0,_=n.tools?.length||0,A=n.reasoning_effort||n.reasoning?.effort||null;p.request("POST",`${d.pathname} | ${g} | ${h} msgs${_?` | ${_} tools`:""}${A?` | effort=${A}`:""}`);let S=e.headers.get("Authorization"),R=(0,o.extractApiKey)(e);S&&R?p.debug("AUTH",`API Key: ${p.maskKey(R)}`):p.debug("AUTH","No API key provided (local mode)");let w=e.headers?.get?.("x-internal-test")==="combo-health-check";if("true"!==process.env.REQUIRE_API_KEY||w){if(R&&!w&&!await (0,o.isValidApiKey)(R))return p.warn("AUTH","API key not found or invalid (must be created in API Manager)"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}else{if(!R)return p.warn("AUTH","Missing API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,o.isValidApiKey)(R))return p.warn("AUTH","Invalid API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}if(!g)return p.warn("CHAT","Missing model"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Missing model");let O=(0,I.extractExternalSessionId)(e.headers)||(0,I.generateSessionId)(n);O&&(0,I.touchSession)(O),a.startPhase("policy");let $=await (0,v.enforceApiKeyPolicy)(e,g);if($.rejection)return p.warn("POLICY",`API key policy rejected: ${g} (key=${$.apiKeyInfo?.id||"unknown"})`),$.rejection;let N=$.apiKeyInfo;if(a.endPhase(),N?.id&&O){let e="number"==typeof N.maxSessions&&N.maxSessions>0?N.maxSessions:0;if(e>0&&!(0,I.isSessionRegisteredForKey)(N.id,O)){let t=(0,I.checkSessionLimit)(N.id,e);if(t)return U((0,i.errorResponse)(c.HTTP_STATUS.RATE_LIMITED,t.message),O);(0,I.registerKeySession)(N.id,O)}}let D=g;if((0,C.getTaskRoutingConfig)().enabled){a.startPhase("task-route");let e=(0,C.applyTaskAwareRouting)(g,n);e.wasRouted?(D=e.model,n={...n,model:e.model},p.info("T05",`Task-Aware: detected="${e.taskType}" → model override: ${g} → ${e.model}`)):"chat"!==e.taskType&&p.debug("T05",`Task-Aware: detected="${e.taskType}" (no override configured)`),e.taskType,e.wasRouted,a.endPhase()}a.startPhase("resolve");let P=await (0,r.getComboForModel)(D);if(P){p.info("CHAT",`Combo "${g}" [${P.strategy||"priority"}] with ${P.models.length} models`);let s=async e=>{let t=await (0,r.getModelInfo)(e),n=t.provider;if(!n)return!0;if(!(0,T.isModelAvailable)(n,t.model||e))return p.debug("AVAILABILITY",`${n}/${t.model} in cooldown, skipping`),!1;let s=await (0,o.getProviderCredentials)(n,null,N?.allowedConnections??null,t.model||e);return!!s&&!s.allRateLimited},[i,c]=await Promise.all([(0,m.getSettings)().catch(()=>({})),(0,f.getCombos)().catch(()=>[])]);a.endPhase();let u=await l.handleComboChat({body:n,combo:P,handleSingleModel:(n,o)=>x(n,o,t,e,P.name,N,a,{sessionId:O}),isModelAvailable:s,log:p,settings:i,allCombos:c});return(0,k.recordTelemetry)(a),U(u,O)}a.endPhase();let M=await x(n,g,t,e,null,N,a,{sessionId:O});return(0,k.recordTelemetry)(a),U(M,O)}async function x(e,t,n=null,r=null,s=null,a=null,l=null,u={}){var d,m;let f=await $(t,e,n?.endpoint);if(f.error)return f.error;let{provider:y,model:k,sourceFormat:E,targetFormat:v,extendedContext:C}=f,O=(d=y,m=k,(0,T.isModelAvailable)(d,m)?(0,A.getCircuitBreaker)(d,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}).canExecute()?null:(p.warn("CIRCUIT",`Circuit breaker OPEN for ${d}, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${d} circuit breaker is open`,30)):(p.warn("AVAILABILITY",`${d}/${m} is in cooldown, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Model ${d}/${m} is temporarily unavailable (cooldown)`,30)));if(O)return O;let b=(0,A.getCircuitBreaker)(y,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}),U=r?.headers?.get("user-agent")||"",P=null,M=null,F=null;for(;;){let t=await (0,o.getProviderCredentials)(y,P,a?.allowedConnections??null,k);if(!t||t.allRateLimited)return(429===F||503===F)&&((0,T.setModelUnavailable)(y,k,6e4,`HTTP ${F}`),p.info("AVAILABILITY",`${y}/${k} marked unavailable — all accounts exhausted (HTTP ${F})`)),function(e,t,n,o,r,s){if(e?.allRateLimited){let t=r||e.lastError||"Unavailable",a=s||Number(e.lastErrorCode)||c.HTTP_STATUS.SERVICE_UNAVAILABLE;return p.warn("CHAT",`[${n}/${o}] ${t} (${e.retryAfterHuman})`),(0,i.unavailableResponse)(a,`[${n}/${o}] ${t}`,e.retryAfter,e.retryAfterHuman)}return t?(p.warn("CHAT","No more accounts available",{provider:n}),(0,i.errorResponse)(s||c.HTTP_STATUS.SERVICE_UNAVAILABLE,r||"All accounts unavailable")):(p.error("AUTH",`No credentials for provider: ${n}`),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${n}`))}(t,P,y,k,M,F);let d=t.connectionId.slice(0,8);p.info("AUTH",`Using ${y} account: ${d}...`),u.sessionId&&(0,I.touchSession)(u.sessionId,t.connectionId);let m=await (0,g.checkAndRefreshToken)(y,t),f=await D(t.connectionId),A=Date.now();l&&l.startPhase("connect");let{result:O,tlsFingerprintUsed:$}=await N({breaker:b,body:e,provider:y,model:k,refreshedCredentials:m,proxyInfo:f,log:p,clientRawRequest:n,credentials:t,apiKeyInfo:a,userAgent:U,comboName:s,extendedContext:C});l&&l.endPhase();let L=Date.now()-A;if(function({result:e,proxyInfo:t,proxyLatency:n,provider:o,model:r,sourceFormat:s,targetFormat:a,credentials:i,comboName:l,clientRawRequest:c,tlsFingerprintUsed:u=!1}){try{(0,h.logProxyEvent)({status:e.success?"success":408===e.status||504===e.status?"timeout":"error",proxy:t?.proxy||null,level:t?.level||"direct",levelId:t?.levelId||null,provider:o,targetUrl:`${o}/${r}`,latencyMs:n,error:e.success?null:e.error||null,connectionId:i.connectionId,comboId:l||null,account:i.connectionId?.slice(0,8)||null,tlsFingerprint:u})}catch{}try{(0,_.logTranslationEvent)({provider:o,model:r,sourceFormat:s,targetFormat:a,status:e.success?"success":"error",statusCode:e.success?200:e.status||500,latency:n,endpoint:c?.endpoint||"/v1/chat/completions",connectionId:i.connectionId||null,comboName:l||null})}catch{}}({result:O,proxyInfo:f,proxyLatency:L,provider:y,model:k,sourceFormat:E,targetFormat:v,credentials:t,comboName:s,clientRawRequest:n,tlsFingerprintUsed:$}),O.success)return(0,T.clearModelUnavailability)(y,k),function(e,t){if(e?.id)try{let n=t.usage||{},o=((n.prompt_tokens||0)+(n.completion_tokens||0))*1e-6;o>0&&(0,R.recordCost)(e.id,o)}catch{}}(a,O),l&&l.startPhase("finalize"),l&&l.endPhase(),O.response;if(!u.emergencyFallbackTried){let t=(0,w.shouldUseFallback)(Number(O.status||0),String(O.error||""),Array.isArray(e?.tools)&&e.tools.length>0);if((0,w.isFallbackDecision)(t)){let o=`${t.provider}/${t.model}`,i=`${y}/${k}`;if(o!==i){let c={...e,model:o},d=Math.min(Number(c.max_tokens??c.max_completion_tokens??t.maxOutputTokens)||t.maxOutputTokens,t.maxOutputTokens);return c.max_tokens=d,c.max_completion_tokens=d,p.warn("EMERGENCY_FALLBACK",`${i} -> ${o} | reason=${t.reason}`),x(c,o,n,r,s,a,l,{...u,emergencyFallbackTried:!0})}}}429===O.status&&(0,S.markAccountExhaustedFrom429)(t.connectionId,y);let{shouldFallback:j}=await (0,o.markAccountUnavailable)(t.connectionId,O.status,O.error,y,k);if(j){p.warn("AUTH",`Account ${d}... unavailable (${O.status}), trying fallback`),P=t.connectionId,M=O.error,F=O.status;continue}return O.response}}async function $(e,t,n=""){let o=await (0,r.getModelInfo)(e);if(!o.provider){if("ambiguous_model"===o.errorType){let t=o.errorMessage||`Ambiguous model '${e}'. Use provider/model prefix (ex: gh/${e} or cc/${e}).`;return p.warn("CHAT",t,{model:e,candidates:o.candidateAliases||o.candidateProviders||[]}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,t)}}return p.warn("CHAT","Invalid model format",{model:e}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid model format")}}let{provider:a,model:l,extendedContext:d}=o,g=(0,s.detectFormatFromEndpoint)(t,n),m=u.PROVIDER_ID_TO_ALIAS[a]||a,f=(0,u.getModelTargetFormat)(m,l)||(0,s.getTargetFormat)(a);"responses"===o.apiFormat&&(f="openai-responses",p.info("ROUTING",`Custom model apiFormat=responses → targetFormat=openai-responses`));let h=d&&"claude"===m?" [1m]":"";return e!==`${a}/${l}`?p.info("ROUTING",`${e} → ${a}/${l}${h}`):p.info("ROUTING",`Provider: ${a}, Model: ${l}${h}`),{provider:a,model:l,sourceFormat:g,targetFormat:f,extendedContext:d}}async function N({breaker:e,body:t,provider:n,model:r,refreshedCredentials:s,proxyInfo:l,log:u,clientRawRequest:m,credentials:f,apiKeyInfo:h,userAgent:_,comboName:y,extendedContext:T}){try{let i=()=>(0,d.runWithProxyContext)(l?.proxy||null,()=>a.handleChatCore({body:{...t,model:`${n}/${r}`},modelInfo:{provider:n,model:r,extendedContext:T},credentials:s,log:u,clientRawRequest:m,connectionId:f.connectionId,apiKeyInfo:h,userAgent:_,comboName:y,onCredentialsRefreshed:async e=>{await (0,g.updateProviderCredentials)(f.connectionId,{accessToken:e.accessToken,refreshToken:e.refreshToken,providerSpecificData:e.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,o.clearAccountError)(f.connectionId,f)}}));if(!l?.proxy&&(0,d.isTlsFingerprintActive)()){let t=await e.execute(async()=>(0,d.runWithTlsTracking)(i));return{result:t.result,tlsFingerprintUsed:t.tlsFingerprintUsed}}return{result:await e.execute(i),tlsFingerprintUsed:!1}}catch(e){if(e instanceof A.CircuitBreakerOpenError)return p.warn("CIRCUIT",`${n} circuit open during retry: ${e.message}`),{result:{success:!1,response:i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${n} circuit breaker is open`,Math.ceil(e.retryAfterMs/1e3)),status:c.HTTP_STATUS.SERVICE_UNAVAILABLE},tlsFingerprintUsed:!1};if(e?.code==="PROXY_UNREACHABLE"||/proxy unreachable/i.test(e?.message||"")){let t=e?.message||"Proxy unreachable";return p.warn("PROXY",t),{result:{success:!1,response:i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,t,2),status:c.HTTP_STATUS.SERVICE_UNAVAILABLE,error:t},tlsFingerprintUsed:!1}}throw e}}async function D(e){try{return await (0,m.resolveProxyForConnection)(e)}catch(e){return p.debug("PROXY",`Failed to resolve proxy: ${e.message}`),null}}function U(e,t){if(!e||!t)return e;try{return e.headers.set("X-OmniRoute-Session-Id",t),e}catch{let n=new Response(e.body,{status:e.status,statusText:e.statusText,headers:e.headers});return n.headers.set("X-OmniRoute-Session-Id",t),n}}[a]=O.then?(await O)():O,e.s(["handleChat",()=>b]),n()}catch(e){n(e)}},!1)];
|
|
26
26
|
|
|
27
27
|
//# sourceMappingURL=_efd5ede2._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[918622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},677850,a=>a.a(async(b,c)=>{try{let b=await a.y("zod");a.n(b),c()}catch(a){c(a)}},!0),342602,(a,b,c)=>{"use strict";b.exports=a.r(918622)},187924,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].ReactJsxRuntime},572131,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].React},804730,a=>{a.v({name:"omniroute",version:"3.0.
|
|
1
|
+
module.exports=[918622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},677850,a=>a.a(async(b,c)=>{try{let b=await a.y("zod");a.n(b),c()}catch(a){c(a)}},!0),342602,(a,b,c)=>{"use strict";b.exports=a.r(918622)},187924,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].ReactJsxRuntime},572131,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].React},804730,a=>{a.v({name:"omniroute",version:"3.0.9",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"node scripts/build-next-isolated.mjs","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@lobehub/icons":"^5.0.1","@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0","@swc/helpers":"0.5.19",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",keytar:"^7.9.0",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.0.10","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/keytar":"^4.4.0","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"^16.0.10",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]},overrides:{dompurify:"^3.3.2"}})},588788,a=>{"use strict";var b=a.i(32886),c=a.i(187924);function d({locale:a,...d}){if(!a)throw Error(void 0);return(0,c.jsx)(b.IntlProvider,{locale:a,...d})}a.s(["default",()=>d])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__9ef96d20._.js.map
|