omniroute 2.7.2 → 2.7.3

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.
Files changed (109) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/build-manifest.json +2 -2
  3. package/app/.next/prerender-manifest.json +3 -3
  4. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/_global-error.html +2 -2
  39. package/app/.next/server/app/_global-error.rsc +1 -1
  40. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  41. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  42. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  45. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/api/v1/api/chat/route.js +3 -3
  47. package/app/.next/server/app/api/v1/audio/speech/route.js +3 -3
  48. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +6 -6
  49. package/app/.next/server/app/api/v1/chat/completions/route.js +7 -7
  50. package/app/.next/server/app/api/v1/completions/route.js +7 -7
  51. package/app/.next/server/app/api/v1/embeddings/route.js +5 -5
  52. package/app/.next/server/app/api/v1/images/generations/route.js +7 -7
  53. package/app/.next/server/app/api/v1/messages/route.js +3 -3
  54. package/app/.next/server/app/api/v1/moderations/route.js +3 -3
  55. package/app/.next/server/app/api/v1/music/generations/route.js +4 -4
  56. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +8 -8
  57. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +5 -5
  58. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +8 -8
  59. package/app/.next/server/app/api/v1/rerank/route.js +6 -6
  60. package/app/.next/server/app/api/v1/responses/route.js +3 -3
  61. package/app/.next/server/app/api/v1/search/route.js +6 -6
  62. package/app/.next/server/app/api/v1/videos/generations/route.js +6 -6
  63. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +8 -8
  64. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  76. package/app/.next/server/chunks/[root-of-the-server]__09c944b3._.js +1 -1
  77. package/app/.next/server/chunks/[root-of-the-server]__167585da._.js +1 -1
  78. package/app/.next/server/chunks/[root-of-the-server]__7d9b23e7._.js +1 -1
  79. package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +1 -1
  80. package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +2 -2
  81. package/app/.next/server/chunks/[root-of-the-server]__92cb0def._.js +1 -1
  82. package/app/.next/server/chunks/[root-of-the-server]__db2f9fe0._.js +1 -1
  83. package/app/.next/server/chunks/[root-of-the-server]__dc47ee64._.js +1 -1
  84. package/app/.next/server/chunks/_05c48915._.js +1 -1
  85. package/app/.next/server/chunks/_2115d8de._.js +1 -1
  86. package/app/.next/server/chunks/_3ac953eb._.js +1 -1
  87. package/app/.next/server/chunks/_4b8fd853._.js +1 -1
  88. package/app/.next/server/chunks/_68683848._.js +1 -1
  89. package/app/.next/server/chunks/_6f1b3c3f._.js +1 -1
  90. package/app/.next/server/chunks/_ee9b677b._.js +1 -1
  91. package/app/.next/server/chunks/_ffda39da._.js +10 -10
  92. package/app/.next/server/chunks/src_4787afd3._.js +1 -1
  93. package/app/.next/server/chunks/ssr/[root-of-the-server]__9affb65e._.js +1 -1
  94. package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
  95. package/app/.next/server/pages/500.html +2 -2
  96. package/app/.next/server/server-reference-manifest.js +1 -1
  97. package/app/.next/server/server-reference-manifest.json +1 -1
  98. package/app/.next/static/chunks/{f83525924aff5f68.js → 1d4f94c2f5112482.js} +1 -1
  99. package/app/CHANGELOG.md +13 -0
  100. package/app/docs/openapi.yaml +1 -1
  101. package/app/package-lock.json +2 -2
  102. package/app/package.json +1 -1
  103. package/app/src/domain/quotaCache.ts +40 -1
  104. package/app/src/sse/services/auth.ts +30 -5
  105. package/app/tests/unit/quota-policy-generalization.test.mjs +40 -0
  106. package/package.json +1 -1
  107. /package/app/.next/static/{_WuQZHRMiXNmIFgVwbr-Q → TaE7xCUJ3vzE5oXXL5DhE}/_buildManifest.js +0 -0
  108. /package/app/.next/static/{_WuQZHRMiXNmIFgVwbr-Q → TaE7xCUJ3vzE5oXXL5DhE}/_clientMiddlewareManifest.json +0 -0
  109. /package/app/.next/static/{_WuQZHRMiXNmIFgVwbr-Q → TaE7xCUJ3vzE5oXXL5DhE}/_ssgManifest.js +0 -0
@@ -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),f=e.i(195975),h=t([c,p]);[c,p]=h.then?(await h)():h;let w=o.default.join(s.default.homedir(),".local","share","kilo"),y=o.default.join(w,"auth.json");o.default.join(s.default.homedir(),".config","kilo");let v=async()=>{try{let e=await i.default.readFile(y,"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 v(),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:y})}catch(e){return console.log("Error checking kilo settings:",e),n.NextResponse.json({error:"Failed to check kilo 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,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,apiKey:f,model:h}=a.data;await i.default.mkdir(w,{recursive:!0}),await (0,d.createBackup)("kilo",y);let m={};try{let e=await i.default.readFile(y,"utf-8");m=JSON.parse(e)}catch{}let g=r.endsWith("/v1")?r:`${r}/v1`;m["openai-compatible"]={type:"api-key",apiKey:f||"sk_omniroute",baseUrl:g,model:h},await i.default.writeFile(y,JSON.stringify(m,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:g,apiKey:f||"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:y})}catch(e){return console.log("Error updating kilo settings:",e),n.NextResponse.json({error:"Failed to update kilo settings"},{status:500})}}async function R(){try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});await (0,d.createBackup)("kilo",y);let t={};try{let e=await i.default.readFile(y,"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(y,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,f.ensureServerEntryExports)([m,g,R]),(0,r.registerServerReference)(m,"00082db75a0d748bb5789a709c782522b209efd8a3",null),(0,r.registerServerReference)(g,"40b6db7afff15569452f8f3b621dd5419a97d221c3",null),(0,r.registerServerReference)(R,"009522a45a27afb05f4c8b99183f978510d9a5d20a",null),e.s(["DELETE",()=>R,"GET",()=>m,"POST",()=>g]),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),m=e.i(570101),g=e.i(626937),R=e.i(10372),w=e.i(193695);e.i(52474);var y=e.i(600220),v=e.i(114902),C=t([v]);[v]=C.then?(await C)():C;let b=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}=b;function E(){return(0,i.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:x})}async function N(e,t,a){b.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/kilo-settings/route";r=r.replace(/\/index$/,"")||"/";let i=await b.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:k,prerenderManifest:x,routerServerContext:O,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,resolvedPathname:P,clientReferenceManifest:A,serverActionsManifest:T}=i,U=(0,d.normalizeAppPath)(r),F=!!(x.dynamicRoutes[U]||x.routes[P]),_=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&&!k){let e=!!x.routes[P],t=x.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await _();throw new w.NoFallbackError}}let I=null;!F||b.isDev||k||(I=P,I="/index"===I?"/":I);let M=!0===b.isDev||!F,H=F&&!M;T&&A&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:A,serverActionsManifest:T});let q=e.method||"GET",D=(0,s.getTracer)(),K=D.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)=>b.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=>b.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=D.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,m.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:y.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 b.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,O),t}},c=await b.handleResponse({req:e,nextConfig:E,cacheKey:I,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)!==y.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,m.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,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(J,$,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};K?await d(K):await D.withPropagatedContext(e.headers,()=>D.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 w.NoFallbackError||await b.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",()=>b,"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),f=e.i(195975),h=t([c,p]);[c,p]=h.then?(await h)():h;let w=o.default.join(s.default.homedir(),".local","share","kilo"),y=o.default.join(w,"auth.json");o.default.join(s.default.homedir(),".config","kilo");let v=async()=>{try{let e=await i.default.readFile(y,"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 v(),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:y})}catch(e){return console.log("Error checking kilo settings:",e),n.NextResponse.json({error:"Failed to check kilo 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,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,apiKey:f,model:h}=a.data;await i.default.mkdir(w,{recursive:!0}),await (0,d.createBackup)("kilo",y);let m={};try{let e=await i.default.readFile(y,"utf-8");m=JSON.parse(e)}catch{}let g=r.endsWith("/v1")?r:`${r}/v1`;m["openai-compatible"]={type:"api-key",apiKey:f||"sk_omniroute",baseUrl:g,model:h},await i.default.writeFile(y,JSON.stringify(m,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:g,apiKey:f||"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:y})}catch(e){return console.log("Error updating kilo settings:",e),n.NextResponse.json({error:"Failed to update kilo settings"},{status:500})}}async function R(){try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});await (0,d.createBackup)("kilo",y);let t={};try{let e=await i.default.readFile(y,"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(y,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,f.ensureServerEntryExports)([m,g,R]),(0,r.registerServerReference)(m,"00349f2cc770338b1ea0aed49e408848d1926c0292",null),(0,r.registerServerReference)(g,"40ab7305214b73d92c56389f67d5ec8c814e8f0d74",null),(0,r.registerServerReference)(R,"00519e7125ee55033ba104c995fdaaa83117249bd0",null),e.s(["DELETE",()=>R,"GET",()=>m,"POST",()=>g]),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),m=e.i(570101),g=e.i(626937),R=e.i(10372),w=e.i(193695);e.i(52474);var y=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:P,clientReferenceManifest:A,serverActionsManifest:T}=i,U=(0,d.normalizeAppPath)(r),F=!!(x.dynamicRoutes[U]||x.routes[P]),_=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[P],t=x.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await _();throw new w.NoFallbackError}}let I=null;!F||k.isDev||b||(I=P,I="/index"===I?"/":I);let M=!0===k.isDev||!F,H=F&&!M;T&&A&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:A,serverActionsManifest:T});let q=e.method||"GET",D=(0,s.getTracer)(),K=D.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=D.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,m.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:y.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:I,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)!==y.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,m.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,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(J,$,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};K?await d(K):await D.withPropagatedContext(e.headers,()=>D.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 w.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=[312215,e=>{"use strict";var t=e.i(16023),r=e.i(161002);let n={quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token",get clientId(){return t.PROVIDERS.antigravity.clientId},get clientSecret(){return t.PROVIDERS.antigravity.clientSecret},userAgent:"antigravity/1.11.3 Darwin/arm64"},i="2023-06-01";function a(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function o(e,t=0){let r="number"==typeof e?e:"string"==typeof e&&e.trim().length>0?Number(e):NaN;return Number.isFinite(r)?r:t}function s(e,t,r){let n=a(e);return n[t]??n[r]??null}async function l(e){let{provider:t,accessToken:r,providerSpecificData:n}=e;switch(t){case"github":return await c(r,n);case"gemini-cli":return await g(r);case"antigravity":return await p(r,void 0);case"claude":return await y(r);case"codex":return await A(r,n);case"kiro":return await _(r,n);case"kimi-coding":return await C(r);case"qwen":return await b(r,n);case"iflow":return await I(r);default:return{message:`Usage API not implemented for ${t}`}}}function u(e){if(!e)return null;try{if(e instanceof Date)return e.toISOString();if("number"==typeof e||"string"==typeof e)return new Date(e).toISOString();return null}catch(t){return console.warn(`Failed to parse reset time: ${e}`,t),null}}async function c(e,t){try{if(!e)throw Error("No GitHub access token available. Please re-authorize the connection.");let t=await fetch("https://api.github.com/copilot_internal/user",{headers:{Authorization:`token ${e}`,Accept:"application/json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"GitHubCopilotChat/0.26.7","Editor-Version":"vscode/1.100.0","Editor-Plugin-Version":"copilot-chat/0.26.7"}});if(!t.ok){let e=await t.text();if(401===t.status||403===t.status)return{message:"GitHub token expired or permission denied. Please re-authenticate the connection."};throw Error(`GitHub API error: ${e}`)}let r=await t.json();if(r.quota_snapshots){let e=r.quota_snapshots,t=u(r.quota_reset_date);return{plan:r.copilot_plan,resetDate:r.quota_reset_date,quotas:{chat:{...d(e.chat),resetAt:t},completions:{...d(e.completions),resetAt:t},premium_interactions:{...d(e.premium_interactions),resetAt:t}}}}if(r.monthly_quotas||r.limited_user_quotas){let e=r.monthly_quotas||{},t=r.limited_user_quotas||{},n=u(r.limited_user_reset_date);return{plan:r.copilot_plan||r.access_type_sku,resetDate:r.limited_user_reset_date,quotas:{chat:{used:t.chat||0,total:e.chat||0,unlimited:!1,resetAt:n},completions:{used:t.completions||0,total:e.completions||0,unlimited:!1,resetAt:n}}}}return{message:"GitHub Copilot connected. Unable to parse quota data."}}catch(e){throw Error(`Failed to fetch GitHub usage: ${e.message}`)}}function d(e){return e?{used:e.entitlement-e.remaining,total:e.entitlement,remaining:e.remaining,unlimited:e.unlimited||!1}:{used:0,total:0,unlimited:!0}}async function g(e){try{if(!(await fetch("https://cloudresourcemanager.googleapis.com/v1/projects?filter=lifecycleState:ACTIVE",{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"}})).ok)return{message:"Gemini CLI uses Google Cloud quotas. Check Google Cloud Console for details."};return{message:"Gemini CLI connected. Usage tracked via Google Cloud Console."}}catch(e){return{message:"Unable to fetch Gemini usage. Check Google Cloud Console."}}}let m=new Map;async function p(e,t){try{let t=await h(e),r=t?.cloudaicompanionProject||null,i=await fetch(n.quotaApiUrl,{method:"POST",headers:{Authorization:`Bearer ${e}`,"User-Agent":n.userAgent,"Content-Type":"application/json"},body:JSON.stringify(r?{project:r}:{})});if(403===i.status)return{message:"Antigravity access forbidden. Check subscription."};if(!i.ok)throw Error(`Antigravity API error: ${i.status}`);let s=await i.json(),l=a(s),c=a(l.models),d={};if(Object.keys(c).length>0){let e=["claude-opus-4-6-thinking","claude-sonnet-4-6","gemini-3.1-pro-high","gemini-3.1-pro-low","gemini-3-flash","gpt-oss-120b-medium"];for(let[t,r]of Object.entries(c)){let n=a(r),i=a(n.quotaInfo);if(0===Object.keys(i).length||!0===n.isInternal||!e.includes(t))continue;let s=o(i.remainingFraction,0),l=100*s,c=Math.round(1e3*s),g=1e3-c;d[t]={used:g,total:1e3,resetAt:u(i.resetTime),remainingPercentage:l,unlimited:!1,displayName:"string"==typeof n.displayName?n.displayName:t}}}return{plan:function(e){if(!e||0===Object.keys(e).length)return"Free";let t="";if(Array.isArray(e.allowedTiers)){for(let r of e.allowedTiers)if(r.isDefault&&r.id){t=r.id.trim().toUpperCase();break}}if(t||(t=(e.currentTier?.id||"").toUpperCase()),t){if(t.includes("ULTRA"))return"Ultra";if(t.includes("PRO"))return"Pro";if(t.includes("ENTERPRISE"))return"Enterprise";if(t.includes("BUSINESS")||t.includes("STANDARD"))return"Business";if(t.includes("FREE")||t.includes("INDIVIDUAL")||t.includes("LEGACY"))return"Free"}let r=e.currentTier?.name||e.currentTier?.displayName||e.subscriptionType||e.tier||"",n=r.toUpperCase();return n.includes("ULTRA")?"Ultra":n.includes("PRO")?"Pro":n.includes("ENTERPRISE")?"Enterprise":n.includes("STANDARD")||n.includes("BUSINESS")?"Business":n.includes("INDIVIDUAL")||n.includes("FREE")||e.currentTier?.upgradeSubscriptionType?"Free":r?r.charAt(0).toUpperCase()+r.slice(1).toLowerCase():"Free"}(t),quotas:d,subscriptionInfo:t}}catch(e){return{message:`Antigravity error: ${e.message}`}}}async function h(e){let t=e.substring(0,16),r=m.get(t);if(r&&Date.now()-r.fetchedAt<3e5)return r.data;let n=await f(e);return m.set(t,{data:n,fetchedAt:Date.now()}),n}async function f(e){try{let t=await fetch(n.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"google-cloud-sdk vscode_cloudshelleditor/0.1","Client-Metadata":JSON.stringify({ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"})},body:JSON.stringify({metadata:{ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"}})});if(!t.ok)return null;return await t.json()}catch{return null}}async function y(e){try{let t=await fetch("https://api.anthropic.com/api/oauth/usage",{method:"GET",headers:{Authorization:`Bearer ${e}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":i}});if(t.ok){let e=await t.json(),n={},i=e=>e&&"object"==typeof e&&void 0!==(0,r.safePercentage)(e.utilization),o=e=>{let t=(0,r.safePercentage)(e.utilization),n=Math.max(0,100-t);return{used:t,total:100,remaining:n,resetAt:u(e.resets_at),remainingPercentage:n,unlimited:!1}};for(let[t,r]of(i(e.five_hour)&&(n["session (5h)"]=o(e.five_hour)),i(e.seven_day)&&(n["weekly (7d)"]=o(e.seven_day)),Object.entries(e))){let e=a(r);if(t.startsWith("seven_day_")&&"seven_day"!==t&&i(e)){let r=t.replace("seven_day_","");n[`weekly ${r} (7d)`]=o(e)}}return{plan:"Claude Code",quotas:n,extraUsage:e.extra_usage??null}}return console.warn(`[Claude Usage] OAuth endpoint returned ${t.status}, falling back to legacy`),await w(e)}catch(e){return{message:`Claude connected. Unable to fetch usage: ${e.message}`}}}async function w(e){try{let t=await fetch("https://api.anthropic.com/v1/settings",{method:"GET",headers:{Authorization:`Bearer ${e}`,"anthropic-version":i}});if(t.ok){let r=await t.json();if(r.organization_id){let t=await fetch("https://api.anthropic.com/v1/organizations/{org_id}/usage".replace("{org_id}",r.organization_id),{method:"GET",headers:{Authorization:`Bearer ${e}`,"anthropic-version":i}});if(t.ok){let e=await t.json();return{plan:r.plan||"Unknown",organization:r.organization_name,quotas:e}}}return{plan:r.plan||"Unknown",organization:r.organization_name,message:"Claude connected. Usage details require admin access."}}return{message:"Claude connected. Usage API requires admin permissions."}}catch(e){return{message:`Claude connected. Unable to fetch usage: ${e.message}`}}}async function A(e,t={}){try{let r="string"==typeof t.workspaceId?t.workspaceId:null,n={Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"};r&&(n["chatgpt-account-id"]=r);let i=await fetch("https://chatgpt.com/backend-api/wham/usage",{method:"GET",headers:n});if(!i.ok){if(401===i.status||403===i.status)return{message:"Codex token expired or access denied. Please re-authenticate the connection."};throw Error(`Codex API error: ${i.status}`)}let l=await i.json(),c=a(s(l,"rate_limit","rateLimit")),d=a(s(c,"primary_window","primaryWindow")),g=a(s(c,"secondary_window","secondaryWindow")),m=e=>{let t=o(s(e,"reset_at","resetAt"),0),r=o(s(e,"reset_after_seconds","resetAfterSeconds"),0);return t>0?u(1e3*t):r>0?u(Date.now()+1e3*r):null},p={};if(Object.keys(d).length>0){let e=o(s(d,"used_percent","usedPercent"),0);p.session={used:e,total:100,remaining:100-e,resetAt:m(d),unlimited:!1}}if(Object.keys(g).length>0){let e=o(s(g,"used_percent","usedPercent"),0);p.weekly={used:e,total:100,remaining:100-e,resetAt:m(g),unlimited:!1}}let h=a(s(l,"code_review_rate_limit","codeReviewRateLimit")),f=a(s(h,"primary_window","primaryWindow")),y=s(f,"used_percent","usedPercent"),w=s(f,"remaining_count","remainingCount");if(null!==y||null!==w){let e=o(y,0);p.code_review={used:e,total:100,remaining:100-e,resetAt:m(f),unlimited:!1}}return{plan:String(s(l,"plan_type","planType")||"unknown"),limitReached:!!s(c,"limit_reached","limitReached"),quotas:p}}catch(e){throw Error(`Failed to fetch Codex usage: ${e.message}`)}}async function _(e,t){try{let r=t?.profileArn;if(!r)return{message:"Kiro connected. Profile ARN not available for quota tracking."};let n=await fetch("https://codewhisperer.us-east-1.amazonaws.com",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.GetUsageLimits",Accept:"application/json"},body:JSON.stringify({origin:"AI_EDITOR",profileArn:r,resourceType:"AGENTIC_REQUEST"})});if(!n.ok){let e=await n.text();throw Error(`Kiro API error (${n.status}): ${e}`)}let i=await n.json(),a=i.usageBreakdownList||[],o={},s=u(i.nextDateReset||i.resetDate);return a.forEach(e=>{let t=e.resourceType?.toLowerCase()||"unknown",r=e.currentUsageWithPrecision||0,n=e.usageLimitWithPrecision||0;if(o[t]={used:r,total:n,remaining:n-r,resetAt:s,unlimited:!1},e.freeTrialInfo){let r=e.freeTrialInfo.currentUsageWithPrecision||0,n=e.freeTrialInfo.usageLimitWithPrecision||0;o[`${t}_freetrial`]={used:r,total:n,remaining:n-r,resetAt:s,unlimited:!1}}}),{plan:i.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:o}}catch(e){throw Error(`Failed to fetch Kiro usage: ${e.message}`)}}function E(e){return e?({LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"})[e]||e.replace("LEVEL_","").toLowerCase():""}async function C(e){let t="kimi-usage-"+Date.now(),n="u">typeof process?`${process.platform} ${process.arch}`:"unknown";try{let i,s=await fetch("https://api.kimi.com/coding/v1/usages",{method:"GET",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Msh-Platform":"omniroute","X-Msh-Version":"2.1.2","X-Msh-Device-Model":n,"X-Msh-Device-Id":t}}),l=await s.text();if(!s.ok)return{plan:"Kimi Coding",message:`Kimi Coding connected. API Error ${s.status}: ${l.slice(0,100)}`};try{i=JSON.parse(l)}catch{return{plan:"Kimi Coding",message:"Kimi Coding connected. Invalid JSON response from API."}}let c={},d=a(i),g=a(d.usage),m=o(g.limit||g.Limit,0),p=o(g.used||g.Used,0),h=o(g.remaining||g.Remaining,0),f=g.resetTime||g.ResetTime||g.reset_at||g.resetAt;m>0&&(c.Weekly={used:p,total:m,remaining:h,remainingPercentage:m>0?h/m*100:0,resetAt:u(f),unlimited:!1});let y=Array.isArray(d.limits)?d.limits:[];for(let e=0;e<y.length;e++){let t=a(y[e]);a(t.window);let r=a(t.detail),n=o(r.limit||r.Limit,0),i=o(r.remaining||r.Remaining,0),s=r.resetTime||r.reset_at||r.resetAt;n>0&&(c.Ratelimit={used:n-i,total:n,remaining:i,remainingPercentage:n>0?i/n*100:0,resetAt:u(s),unlimited:!1})}let w=e=>e&&"object"==typeof e&&void 0!==(0,r.safePercentage)(e.utilization),A=e=>{let t=(0,r.safePercentage)(e.utilization);return{used:100-t,total:100,remaining:t,resetAt:u(e.resets_at),remainingPercentage:t,unlimited:!1}};for(let[e,t]of(w(a(d.five_hour))&&(c["session (5h)"]=A(a(d.five_hour))),w(a(d.seven_day))&&(c["weekly (7d)"]=A(a(d.seven_day))),Object.entries(d))){let r=a(t);if(e.startsWith("seven_day_")&&"seven_day"!==e&&w(r)){let t=e.replace("seven_day_","");c[`weekly ${t} (7d)`]=A(r)}}if(Object.keys(c).length>0){let e=a(d.user),t=a(e.membership).level;return{plan:E(t)||"Kimi Coding",quotas:c}}let _=a(d.user),C=a(_.membership).level;return{plan:E(C)||"Kimi Coding",message:"Kimi Coding connected. Usage tracked per request."}}catch(e){return{message:`Kimi Coding connected. Unable to fetch usage: ${e.message}`}}}async function b(e,t){try{if(!t?.resourceUrl)return{message:"Qwen connected. No resource URL available."};return{message:"Qwen connected. Usage tracked per request."}}catch(e){return{message:"Unable to fetch Qwen usage."}}}async function I(e){try{return{message:"iFlow connected. Usage tracked per request."}}catch(e){return{message:"Unable to fetch iFlow usage."}}}e.s(["getUsageForProvider",()=>l])},25687,e=>{"use strict";e.i(312215),e.i(245272),e.i(444675);var t=e.i(161002);let r=new Map;function n(e){let t=new Date(e).getTime();return Number.isNaN(t)?null:t}function i(e){return Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}function a(e,i,a){let o,s=function(e){let r={};for(let[n,i]of Object.entries(e))i&&"object"==typeof i&&(r[n]={remainingPercentage:(0,t.safePercentage)(i.remainingPercentage)??(i.total>0?Math.round((i.total-(i.used||0))/i.total*100):0),resetAt:i.resetAt||null});return r}(a),l=0!==(o=Object.values(s)).length&&o.every(e=>e.remainingPercentage<=0);r.set(e,{connectionId:e,provider:i,quotas:s,fetchedAt:Date.now(),exhausted:l,nextResetAt:l?function(e){let t=null,r=1/0;for(let i of Object.values(e)){if(!i.resetAt)continue;let e=n(i.resetAt);null!==e&&e<r&&(r=e,t=i.resetAt)}return t}(s):null})}function o(e){let t=r.get(e);if(!t||!t.exhausted)return!1;let i=Date.now();if(function(e,t){if(!e.nextResetAt)return null;let r=n(e.nextResetAt);return null===r?null:r<=t||e.windowDurationMs&&e.windowDurationMs>0&&t-r>=0?{exhausted:!1}:null}(t,i))return t.exhausted=!1,!1;let a=i-t.fetchedAt;return!!t.nextResetAt||!(a>3e5)}function s(e,t,a=90){let o=r.get(e);if(!o)return null;let l=Date.now(),u=o.quotas[t];if(!u)return null;let c=i(u.remainingPercentage),d=i(100-c),g=u.resetAt||null,m=!1;if(g){let e=n(g);null!==e&&e<=l&&(g=null,m=!0)}return{remainingPercentage:c,usedPercentage:d,resetAt:g,reachedThreshold:!m&&d>=a}}function l(e,t){r.set(e,{connectionId:e,provider:t,quotas:{},fetchedAt:Date.now(),exhausted:!0,nextResetAt:null})}e.s(["getQuotaWindowStatus",()=>s,"isAccountQuotaExhausted",()=>o,"markAccountExhaustedFrom429",()=>l,"setQuotaCache",()=>a])}];
1
+ module.exports=[312215,e=>{"use strict";var t=e.i(16023),r=e.i(161002);let n={quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token",get clientId(){return t.PROVIDERS.antigravity.clientId},get clientSecret(){return t.PROVIDERS.antigravity.clientSecret},userAgent:"antigravity/1.11.3 Darwin/arm64"},i="2023-06-01";function a(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function o(e,t=0){let r="number"==typeof e?e:"string"==typeof e&&e.trim().length>0?Number(e):NaN;return Number.isFinite(r)?r:t}function s(e,t,r){let n=a(e);return n[t]??n[r]??null}async function l(e){let{provider:t,accessToken:r,providerSpecificData:n}=e;switch(t){case"github":return await c(r,n);case"gemini-cli":return await g(r);case"antigravity":return await p(r,void 0);case"claude":return await y(r);case"codex":return await A(r,n);case"kiro":return await _(r,n);case"kimi-coding":return await C(r);case"qwen":return await b(r,n);case"iflow":return await k(r);default:return{message:`Usage API not implemented for ${t}`}}}function u(e){if(!e)return null;try{if(e instanceof Date)return e.toISOString();if("number"==typeof e||"string"==typeof e)return new Date(e).toISOString();return null}catch(t){return console.warn(`Failed to parse reset time: ${e}`,t),null}}async function c(e,t){try{if(!e)throw Error("No GitHub access token available. Please re-authorize the connection.");let t=await fetch("https://api.github.com/copilot_internal/user",{headers:{Authorization:`token ${e}`,Accept:"application/json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"GitHubCopilotChat/0.26.7","Editor-Version":"vscode/1.100.0","Editor-Plugin-Version":"copilot-chat/0.26.7"}});if(!t.ok){let e=await t.text();if(401===t.status||403===t.status)return{message:"GitHub token expired or permission denied. Please re-authenticate the connection."};throw Error(`GitHub API error: ${e}`)}let r=await t.json();if(r.quota_snapshots){let e=r.quota_snapshots,t=u(r.quota_reset_date);return{plan:r.copilot_plan,resetDate:r.quota_reset_date,quotas:{chat:{...d(e.chat),resetAt:t},completions:{...d(e.completions),resetAt:t},premium_interactions:{...d(e.premium_interactions),resetAt:t}}}}if(r.monthly_quotas||r.limited_user_quotas){let e=r.monthly_quotas||{},t=r.limited_user_quotas||{},n=u(r.limited_user_reset_date);return{plan:r.copilot_plan||r.access_type_sku,resetDate:r.limited_user_reset_date,quotas:{chat:{used:t.chat||0,total:e.chat||0,unlimited:!1,resetAt:n},completions:{used:t.completions||0,total:e.completions||0,unlimited:!1,resetAt:n}}}}return{message:"GitHub Copilot connected. Unable to parse quota data."}}catch(e){throw Error(`Failed to fetch GitHub usage: ${e.message}`)}}function d(e){return e?{used:e.entitlement-e.remaining,total:e.entitlement,remaining:e.remaining,unlimited:e.unlimited||!1}:{used:0,total:0,unlimited:!0}}async function g(e){try{if(!(await fetch("https://cloudresourcemanager.googleapis.com/v1/projects?filter=lifecycleState:ACTIVE",{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"}})).ok)return{message:"Gemini CLI uses Google Cloud quotas. Check Google Cloud Console for details."};return{message:"Gemini CLI connected. Usage tracked via Google Cloud Console."}}catch(e){return{message:"Unable to fetch Gemini usage. Check Google Cloud Console."}}}let m=new Map;async function p(e,t){try{let t=await f(e),r=t?.cloudaicompanionProject||null,i=await fetch(n.quotaApiUrl,{method:"POST",headers:{Authorization:`Bearer ${e}`,"User-Agent":n.userAgent,"Content-Type":"application/json"},body:JSON.stringify(r?{project:r}:{})});if(403===i.status)return{message:"Antigravity access forbidden. Check subscription."};if(!i.ok)throw Error(`Antigravity API error: ${i.status}`);let s=await i.json(),l=a(s),c=a(l.models),d={};if(Object.keys(c).length>0){let e=["claude-opus-4-6-thinking","claude-sonnet-4-6","gemini-3.1-pro-high","gemini-3.1-pro-low","gemini-3-flash","gpt-oss-120b-medium"];for(let[t,r]of Object.entries(c)){let n=a(r),i=a(n.quotaInfo);if(0===Object.keys(i).length||!0===n.isInternal||!e.includes(t))continue;let s=o(i.remainingFraction,0),l=100*s,c=Math.round(1e3*s),g=1e3-c;d[t]={used:g,total:1e3,resetAt:u(i.resetTime),remainingPercentage:l,unlimited:!1,displayName:"string"==typeof n.displayName?n.displayName:t}}}return{plan:function(e){if(!e||0===Object.keys(e).length)return"Free";let t="";if(Array.isArray(e.allowedTiers)){for(let r of e.allowedTiers)if(r.isDefault&&r.id){t=r.id.trim().toUpperCase();break}}if(t||(t=(e.currentTier?.id||"").toUpperCase()),t){if(t.includes("ULTRA"))return"Ultra";if(t.includes("PRO"))return"Pro";if(t.includes("ENTERPRISE"))return"Enterprise";if(t.includes("BUSINESS")||t.includes("STANDARD"))return"Business";if(t.includes("FREE")||t.includes("INDIVIDUAL")||t.includes("LEGACY"))return"Free"}let r=e.currentTier?.name||e.currentTier?.displayName||e.subscriptionType||e.tier||"",n=r.toUpperCase();return n.includes("ULTRA")?"Ultra":n.includes("PRO")?"Pro":n.includes("ENTERPRISE")?"Enterprise":n.includes("STANDARD")||n.includes("BUSINESS")?"Business":n.includes("INDIVIDUAL")||n.includes("FREE")||e.currentTier?.upgradeSubscriptionType?"Free":r?r.charAt(0).toUpperCase()+r.slice(1).toLowerCase():"Free"}(t),quotas:d,subscriptionInfo:t}}catch(e){return{message:`Antigravity error: ${e.message}`}}}async function f(e){let t=e.substring(0,16),r=m.get(t);if(r&&Date.now()-r.fetchedAt<3e5)return r.data;let n=await h(e);return m.set(t,{data:n,fetchedAt:Date.now()}),n}async function h(e){try{let t=await fetch(n.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"google-cloud-sdk vscode_cloudshelleditor/0.1","Client-Metadata":JSON.stringify({ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"})},body:JSON.stringify({metadata:{ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"}})});if(!t.ok)return null;return await t.json()}catch{return null}}async function y(e){try{let t=await fetch("https://api.anthropic.com/api/oauth/usage",{method:"GET",headers:{Authorization:`Bearer ${e}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":i}});if(t.ok){let e=await t.json(),n={},i=e=>e&&"object"==typeof e&&void 0!==(0,r.safePercentage)(e.utilization),o=e=>{let t=(0,r.safePercentage)(e.utilization),n=Math.max(0,100-t);return{used:t,total:100,remaining:n,resetAt:u(e.resets_at),remainingPercentage:n,unlimited:!1}};for(let[t,r]of(i(e.five_hour)&&(n["session (5h)"]=o(e.five_hour)),i(e.seven_day)&&(n["weekly (7d)"]=o(e.seven_day)),Object.entries(e))){let e=a(r);if(t.startsWith("seven_day_")&&"seven_day"!==t&&i(e)){let r=t.replace("seven_day_","");n[`weekly ${r} (7d)`]=o(e)}}return{plan:"Claude Code",quotas:n,extraUsage:e.extra_usage??null}}return console.warn(`[Claude Usage] OAuth endpoint returned ${t.status}, falling back to legacy`),await w(e)}catch(e){return{message:`Claude connected. Unable to fetch usage: ${e.message}`}}}async function w(e){try{let t=await fetch("https://api.anthropic.com/v1/settings",{method:"GET",headers:{Authorization:`Bearer ${e}`,"anthropic-version":i}});if(t.ok){let r=await t.json();if(r.organization_id){let t=await fetch("https://api.anthropic.com/v1/organizations/{org_id}/usage".replace("{org_id}",r.organization_id),{method:"GET",headers:{Authorization:`Bearer ${e}`,"anthropic-version":i}});if(t.ok){let e=await t.json();return{plan:r.plan||"Unknown",organization:r.organization_name,quotas:e}}}return{plan:r.plan||"Unknown",organization:r.organization_name,message:"Claude connected. Usage details require admin access."}}return{message:"Claude connected. Usage API requires admin permissions."}}catch(e){return{message:`Claude connected. Unable to fetch usage: ${e.message}`}}}async function A(e,t={}){try{let r="string"==typeof t.workspaceId?t.workspaceId:null,n={Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"};r&&(n["chatgpt-account-id"]=r);let i=await fetch("https://chatgpt.com/backend-api/wham/usage",{method:"GET",headers:n});if(!i.ok){if(401===i.status||403===i.status)return{message:"Codex token expired or access denied. Please re-authenticate the connection."};throw Error(`Codex API error: ${i.status}`)}let l=await i.json(),c=a(s(l,"rate_limit","rateLimit")),d=a(s(c,"primary_window","primaryWindow")),g=a(s(c,"secondary_window","secondaryWindow")),m=e=>{let t=o(s(e,"reset_at","resetAt"),0),r=o(s(e,"reset_after_seconds","resetAfterSeconds"),0);return t>0?u(1e3*t):r>0?u(Date.now()+1e3*r):null},p={};if(Object.keys(d).length>0){let e=o(s(d,"used_percent","usedPercent"),0);p.session={used:e,total:100,remaining:100-e,resetAt:m(d),unlimited:!1}}if(Object.keys(g).length>0){let e=o(s(g,"used_percent","usedPercent"),0);p.weekly={used:e,total:100,remaining:100-e,resetAt:m(g),unlimited:!1}}let f=a(s(l,"code_review_rate_limit","codeReviewRateLimit")),h=a(s(f,"primary_window","primaryWindow")),y=s(h,"used_percent","usedPercent"),w=s(h,"remaining_count","remainingCount");if(null!==y||null!==w){let e=o(y,0);p.code_review={used:e,total:100,remaining:100-e,resetAt:m(h),unlimited:!1}}return{plan:String(s(l,"plan_type","planType")||"unknown"),limitReached:!!s(c,"limit_reached","limitReached"),quotas:p}}catch(e){throw Error(`Failed to fetch Codex usage: ${e.message}`)}}async function _(e,t){try{let r=t?.profileArn;if(!r)return{message:"Kiro connected. Profile ARN not available for quota tracking."};let n=await fetch("https://codewhisperer.us-east-1.amazonaws.com",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.GetUsageLimits",Accept:"application/json"},body:JSON.stringify({origin:"AI_EDITOR",profileArn:r,resourceType:"AGENTIC_REQUEST"})});if(!n.ok){let e=await n.text();throw Error(`Kiro API error (${n.status}): ${e}`)}let i=await n.json(),a=i.usageBreakdownList||[],o={},s=u(i.nextDateReset||i.resetDate);return a.forEach(e=>{let t=e.resourceType?.toLowerCase()||"unknown",r=e.currentUsageWithPrecision||0,n=e.usageLimitWithPrecision||0;if(o[t]={used:r,total:n,remaining:n-r,resetAt:s,unlimited:!1},e.freeTrialInfo){let r=e.freeTrialInfo.currentUsageWithPrecision||0,n=e.freeTrialInfo.usageLimitWithPrecision||0;o[`${t}_freetrial`]={used:r,total:n,remaining:n-r,resetAt:s,unlimited:!1}}}),{plan:i.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:o}}catch(e){throw Error(`Failed to fetch Kiro usage: ${e.message}`)}}function E(e){return e?({LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"})[e]||e.replace("LEVEL_","").toLowerCase():""}async function C(e){let t="kimi-usage-"+Date.now(),n="u">typeof process?`${process.platform} ${process.arch}`:"unknown";try{let i,s=await fetch("https://api.kimi.com/coding/v1/usages",{method:"GET",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Msh-Platform":"omniroute","X-Msh-Version":"2.1.2","X-Msh-Device-Model":n,"X-Msh-Device-Id":t}}),l=await s.text();if(!s.ok)return{plan:"Kimi Coding",message:`Kimi Coding connected. API Error ${s.status}: ${l.slice(0,100)}`};try{i=JSON.parse(l)}catch{return{plan:"Kimi Coding",message:"Kimi Coding connected. Invalid JSON response from API."}}let c={},d=a(i),g=a(d.usage),m=o(g.limit||g.Limit,0),p=o(g.used||g.Used,0),f=o(g.remaining||g.Remaining,0),h=g.resetTime||g.ResetTime||g.reset_at||g.resetAt;m>0&&(c.Weekly={used:p,total:m,remaining:f,remainingPercentage:m>0?f/m*100:0,resetAt:u(h),unlimited:!1});let y=Array.isArray(d.limits)?d.limits:[];for(let e=0;e<y.length;e++){let t=a(y[e]);a(t.window);let r=a(t.detail),n=o(r.limit||r.Limit,0),i=o(r.remaining||r.Remaining,0),s=r.resetTime||r.reset_at||r.resetAt;n>0&&(c.Ratelimit={used:n-i,total:n,remaining:i,remainingPercentage:n>0?i/n*100:0,resetAt:u(s),unlimited:!1})}let w=e=>e&&"object"==typeof e&&void 0!==(0,r.safePercentage)(e.utilization),A=e=>{let t=(0,r.safePercentage)(e.utilization);return{used:100-t,total:100,remaining:t,resetAt:u(e.resets_at),remainingPercentage:t,unlimited:!1}};for(let[e,t]of(w(a(d.five_hour))&&(c["session (5h)"]=A(a(d.five_hour))),w(a(d.seven_day))&&(c["weekly (7d)"]=A(a(d.seven_day))),Object.entries(d))){let r=a(t);if(e.startsWith("seven_day_")&&"seven_day"!==e&&w(r)){let t=e.replace("seven_day_","");c[`weekly ${t} (7d)`]=A(r)}}if(Object.keys(c).length>0){let e=a(d.user),t=a(e.membership).level;return{plan:E(t)||"Kimi Coding",quotas:c}}let _=a(d.user),C=a(_.membership).level;return{plan:E(C)||"Kimi Coding",message:"Kimi Coding connected. Usage tracked per request."}}catch(e){return{message:`Kimi Coding connected. Unable to fetch usage: ${e.message}`}}}async function b(e,t){try{if(!t?.resourceUrl)return{message:"Qwen connected. No resource URL available."};return{message:"Qwen connected. Usage tracked per request."}}catch(e){return{message:"Unable to fetch Qwen usage."}}}async function k(e){try{return{message:"iFlow connected. Usage tracked per request."}}catch(e){return{message:"Unable to fetch iFlow usage."}}}e.s(["getUsageForProvider",()=>l])},25687,e=>{"use strict";e.i(312215),e.i(245272),e.i(444675);var t=e.i(161002);let r=new Map;function n(e){let t=new Date(e).getTime();return Number.isNaN(t)?null:t}function i(e){return Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}function a(e){return"string"!=typeof e?"":e.toLowerCase().replace(/[^a-z0-9]+/g," ").trim()}function o(e,i,a){let o,s=function(e){let r={};for(let[n,i]of Object.entries(e))i&&"object"==typeof i&&(r[n]={remainingPercentage:(0,t.safePercentage)(i.remainingPercentage)??(i.total>0?Math.round((i.total-(i.used||0))/i.total*100):0),resetAt:i.resetAt||null});return r}(a),l=0!==(o=Object.values(s)).length&&o.every(e=>e.remainingPercentage<=0);r.set(e,{connectionId:e,provider:i,quotas:s,fetchedAt:Date.now(),exhausted:l,nextResetAt:l?function(e){let t=null,r=1/0;for(let i of Object.values(e)){if(!i.resetAt)continue;let e=n(i.resetAt);null!==e&&e<r&&(r=e,t=i.resetAt)}return t}(s):null})}function s(e){let t=r.get(e);if(!t||!t.exhausted)return!1;let i=Date.now();if(function(e,t){if(!e.nextResetAt)return null;let r=n(e.nextResetAt);return null===r?null:r<=t||e.windowDurationMs&&e.windowDurationMs>0&&t-r>=0?{exhausted:!1}:null}(t,i))return t.exhausted=!1,!1;let a=i-t.fetchedAt;return!!t.nextResetAt||!(a>3e5)}function l(e,t,o=90){let s=r.get(e);if(!s)return null;let u=Date.now(),c=function(e,t){let r=e[t];if(r)return r;let n=a(t);if(!n)return null;let i=[];for(let[t,r]of Object.entries(e)){let e=a(t);if(e){if(e===n)return r;e.startsWith(`${n} `)&&i.push({key:t,quota:r})}}return i.length>0?(i.sort((e,t)=>e.key.localeCompare(t.key)),i[0].quota):null}(s.quotas,t);if(!c)return null;let d=i(c.remainingPercentage),g=i(100-d),m=c.resetAt||null,p=!1;if(m){let e=n(m);null!==e&&e<=u&&(m=null,p=!0)}return{remainingPercentage:d,usedPercentage:g,resetAt:m,reachedThreshold:!p&&g>=o}}function u(e,t){r.set(e,{connectionId:e,provider:t,quotas:{},fetchedAt:Date.now(),exhausted:!0,nextResetAt:null})}e.s(["getQuotaWindowStatus",()=>l,"isAccountQuotaExhausted",()=>s,"markAccountExhaustedFrom429",()=>u,"setQuotaCache",()=>o])}];
2
2
 
3
3
  //# sourceMappingURL=_6f1b3c3f._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[675336,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),p=e.i(195975),m=t([u,c]);[u,c]=m.then?(await m)():m;let R=()=>(0,i.getCliPrimaryConfigPath)("droid"),y=async()=>{try{let e=R(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function h(){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 y();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:R()})}catch(e){return console.log("Error checking droid settings:",e),n.NextResponse.json({error:"Failed to check droid settings"},{status:500})}}async function f(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,apiKey:p,model:m}=r.data,h=o.default.dirname(R()),f=R();await s.default.mkdir(h,{recursive:!0}),await (0,l.createBackup)("droid",f);let g={};try{let e=await s.default.readFile(f,"utf-8");g=JSON.parse(e)}catch{}g.customModels||(g.customModels=[]),g.customModels=g.customModels.filter(e=>"custom:OmniRoute-0"!==e.id);let y=a.endsWith("/v1")?a:`${a}/v1`;g.customModels.unshift({model:m,id:"custom:OmniRoute-0",index:0,baseUrl:y,apiKey:p||"your_api_key",displayName:m,maxOutputTokens:131072,noImageSupport:!1,provider:"openai"}),await s.default.writeFile(f,JSON.stringify(g,null,2));try{(0,d.saveCliToolLastConfigured)("droid")}catch{}return n.NextResponse.json({success:!0,message:"Factory Droid settings applied successfully!",settingsPath:f})}catch(e){return console.log("Error updating droid settings:",e),n.NextResponse.json({error:"Failed to update droid settings"},{status:500})}}async function g(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=R();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,p.ensureServerEntryExports)([h,f,g]),(0,a.registerServerReference)(h,"0072d7c47dd4ada3c35809e8ea08e0c19fddab2515",null),(0,a.registerServerReference)(f,"40d1e4b716630a0d0b958520e78a757feb2e87802d",null),(0,a.registerServerReference)(g,"003645e5416f46305c190cec8fd9b7c18e0b7a665e",null),e.s(["DELETE",()=>g,"GET",()=>h,"POST",()=>f]),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(675336),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:T,revalidateOnlyGenerated:A,resolvedPathname:P,clientReferenceManifest:M,serverActionsManifest:_}=s,j=(0,d.normalizeAppPath)(a),k=!!(O.dynamicRoutes[j]||O.routes[P]),F=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,N,!1):t.end("This page could not be found"),null);if(k&&!b){let e=!!O.routes[P],t=O.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await F();throw new y.NoFallbackError}}let I=null;!k||x.isDev||b||(I=P,I="/index"===I?"/":I);let D=!0===x.isDev||!k,H=k&&!D;_&&M&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:M,serverActionsManifest:_});let U=e.method||"GET",q=(0,i.getTracer)(),L=q.getActiveScopeSpan(),$={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}},K=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let s=async e=>x.handle(J,$).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&&T&&A&&!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=$.renderOpts.fetchMetrics;let i=$.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let d=$.renderOpts.collectedTags;if(!k)return await (0,h.sendResponse)(K,B,a,$.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!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:$.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:T})},!1,S),t}},c=await x.handleResponse({req:e,nextConfig:C,cacheKey:I,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:A,responseGenerator:u,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==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",T?"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&&k||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)(K,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};L?await d(L):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:j,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,S),k)throw t;return await (0,h.sendResponse)(K,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)];
1
+ module.exports=[675336,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),p=e.i(195975),m=t([u,c]);[u,c]=m.then?(await m)():m;let R=()=>(0,i.getCliPrimaryConfigPath)("droid"),y=async()=>{try{let e=R(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function h(){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 y();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:R()})}catch(e){return console.log("Error checking droid settings:",e),n.NextResponse.json({error:"Failed to check droid settings"},{status:500})}}async function f(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,apiKey:p,model:m}=r.data,h=o.default.dirname(R()),f=R();await s.default.mkdir(h,{recursive:!0}),await (0,l.createBackup)("droid",f);let g={};try{let e=await s.default.readFile(f,"utf-8");g=JSON.parse(e)}catch{}g.customModels||(g.customModels=[]),g.customModels=g.customModels.filter(e=>"custom:OmniRoute-0"!==e.id);let y=a.endsWith("/v1")?a:`${a}/v1`;g.customModels.unshift({model:m,id:"custom:OmniRoute-0",index:0,baseUrl:y,apiKey:p||"your_api_key",displayName:m,maxOutputTokens:131072,noImageSupport:!1,provider:"openai"}),await s.default.writeFile(f,JSON.stringify(g,null,2));try{(0,d.saveCliToolLastConfigured)("droid")}catch{}return n.NextResponse.json({success:!0,message:"Factory Droid settings applied successfully!",settingsPath:f})}catch(e){return console.log("Error updating droid settings:",e),n.NextResponse.json({error:"Failed to update droid settings"},{status:500})}}async function g(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=R();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,p.ensureServerEntryExports)([h,f,g]),(0,a.registerServerReference)(h,"00d9f51ed68611386b38bbe2d2a2bac1c280d788cd",null),(0,a.registerServerReference)(f,"402ef2fdebdcbfd21fc81718d84dc448d4d5ba429d",null),(0,a.registerServerReference)(g,"003ce936bae19cd9cc272dc52d5ab1d621ddb4fac8",null),e.s(["DELETE",()=>g,"GET",()=>h,"POST",()=>f]),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(675336),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:T,revalidateOnlyGenerated:A,resolvedPathname:P,clientReferenceManifest:M,serverActionsManifest:_}=s,j=(0,d.normalizeAppPath)(a),k=!!(O.dynamicRoutes[j]||O.routes[P]),F=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,N,!1):t.end("This page could not be found"),null);if(k&&!b){let e=!!O.routes[P],t=O.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await F();throw new y.NoFallbackError}}let I=null;!k||x.isDev||b||(I=P,I="/index"===I?"/":I);let D=!0===x.isDev||!k,H=k&&!D;_&&M&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:M,serverActionsManifest:_});let U=e.method||"GET",q=(0,i.getTracer)(),L=q.getActiveScopeSpan(),$={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}},K=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let s=async e=>x.handle(J,$).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&&T&&A&&!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=$.renderOpts.fetchMetrics;let i=$.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let d=$.renderOpts.collectedTags;if(!k)return await (0,h.sendResponse)(K,B,a,$.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!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:$.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:T})},!1,S),t}},c=await x.handleResponse({req:e,nextConfig:C,cacheKey:I,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:A,responseGenerator:u,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==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",T?"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&&k||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)(K,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};L?await d(L):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:j,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,S),k)throw t;return await (0,h.sendResponse)(K,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