omniroute 2.9.1 → 2.9.2

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 (122) hide show
  1. package/README.md +11 -11
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/prerender-manifest.json +3 -3
  5. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/_global-error.html +2 -2
  41. package/app/.next/server/app/_global-error.rsc +1 -1
  42. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  46. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  47. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/chunks/[root-of-the-server]__17482fc3._.js +1 -1
  61. package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +2 -2
  62. package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +1 -1
  63. package/app/.next/server/chunks/[root-of-the-server]__8c8abde4._.js +1 -1
  64. package/app/.next/server/chunks/[root-of-the-server]__98560fc3._.js +1 -1
  65. package/app/.next/server/chunks/[root-of-the-server]__beb64bf2._.js +1 -1
  66. package/app/.next/server/chunks/[root-of-the-server]__d4563e10._.js +1 -1
  67. package/app/.next/server/chunks/[root-of-the-server]__e27a89bd._.js +1 -1
  68. package/app/.next/server/chunks/_05c48915._.js +1 -1
  69. package/app/.next/server/chunks/_2115d8de._.js +1 -1
  70. package/app/.next/server/chunks/_3ac953eb._.js +1 -1
  71. package/app/.next/server/chunks/_4b8fd853._.js +1 -1
  72. package/app/.next/server/chunks/_68683848._.js +1 -1
  73. package/app/.next/server/chunks/_ac39a13d._.js +1 -1
  74. package/app/.next/server/chunks/_ee9b677b._.js +1 -1
  75. package/app/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_e1050fd8.js +1 -1
  76. package/app/.next/server/chunks/ssr/[root-of-the-server]__9affb65e._.js +1 -1
  77. package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
  78. package/app/.next/server/pages/500.html +2 -2
  79. package/app/.next/server/server-reference-manifest.js +1 -1
  80. package/app/.next/server/server-reference-manifest.json +1 -1
  81. package/app/.next/static/chunks/{fef8169cad93c6a0.js → fd85bdf42d9b4807.js} +1 -1
  82. package/app/CHANGELOG.md +25 -0
  83. package/app/README.md +11 -11
  84. package/app/docs/i18n/ar/README.md +2 -2
  85. package/app/docs/i18n/bg/README.md +2 -2
  86. package/app/docs/i18n/da/README.md +2 -2
  87. package/app/docs/i18n/de/README.md +2 -2
  88. package/app/docs/i18n/es/README.md +8 -8
  89. package/app/docs/i18n/fi/README.md +8 -8
  90. package/app/docs/i18n/fr/README.md +8 -8
  91. package/app/docs/i18n/he/README.md +8 -8
  92. package/app/docs/i18n/hu/README.md +8 -8
  93. package/app/docs/i18n/id/README.md +8 -8
  94. package/app/docs/i18n/in/README.md +8 -8
  95. package/app/docs/i18n/it/README.md +8 -8
  96. package/app/docs/i18n/ja/README.md +8 -8
  97. package/app/docs/i18n/ko/README.md +8 -8
  98. package/app/docs/i18n/ms/README.md +8 -8
  99. package/app/docs/i18n/nl/README.md +8 -8
  100. package/app/docs/i18n/no/README.md +8 -8
  101. package/app/docs/i18n/phi/README.md +8 -8
  102. package/app/docs/i18n/pl/README.md +8 -8
  103. package/app/docs/i18n/pt/README.md +8 -8
  104. package/app/docs/i18n/pt-BR/README.md +10 -10
  105. package/app/docs/i18n/ro/README.md +8 -8
  106. package/app/docs/i18n/ru/README.md +8 -8
  107. package/app/docs/i18n/sk/README.md +8 -8
  108. package/app/docs/i18n/sv/README.md +8 -8
  109. package/app/docs/i18n/th/README.md +8 -8
  110. package/app/docs/i18n/uk-UA/README.md +8 -8
  111. package/app/docs/i18n/vi/README.md +8 -8
  112. package/app/docs/i18n/zh-CN/README.md +8 -8
  113. package/app/docs/openapi.yaml +1 -1
  114. package/app/open-sse/handlers/audioSpeech.ts +8 -4
  115. package/app/open-sse/handlers/audioTranscription.ts +64 -8
  116. package/app/package-lock.json +2 -2
  117. package/app/package.json +1 -1
  118. package/app/tsconfig.json +2 -1
  119. package/package.json +1 -1
  120. /package/app/.next/static/{gfcpuM-1Pzw0GdWmd_wBd → oPsVeqYdA1wqN11b0zbRn}/_buildManifest.js +0 -0
  121. /package/app/.next/static/{gfcpuM-1Pzw0GdWmd_wBd → oPsVeqYdA1wqN11b0zbRn}/_clientMiddlewareManifest.json +0 -0
  122. /package/app/.next/static/{gfcpuM-1Pzw0GdWmd_wBd → oPsVeqYdA1wqN11b0zbRn}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[980935,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(841788),d=e.i(197892),u=e.i(676088),c=e.i(200392),p=e.i(195975),h=t([u,c]);[u,c]=h.then?(await h)():h;let R=()=>(0,i.getCliConfigPaths)("codex").config,x=()=>(0,i.getCliConfigPaths)("codex").auth,v=e=>{let t={_root:{},_sections:{}},r="_root";return e.split("\n").forEach(e=>{let a=e.trim();if(!a||a.startsWith("#"))return;let n=a.match(/^\[(.+)\]$/);if(n){r=n[1],t._sections[r]={};return}let o=a.match(/^([^=]+)\s*=\s*(.+)$/);if(o){let e=o[1].trim(),a=o[2].trim();(a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))&&(a=a.slice(1,-1)),"_root"===r?t._root[e]=a:t._sections[r][e]=a}}),t},w=e=>{let t=[];return Object.entries(e._root).forEach(([e,r])=>{t.push(`${e} = "${r}"`)}),Object.entries(e._sections).forEach(([e,r])=>{t.push(""),t.push(`[${e}]`),Object.entries(r).forEach(([e,r])=>{t.push(`${e} = "${r}"`)})}),t.join("\n")+"\n"},E=async()=>{try{let e=R();return await o.default.readFile(e,"utf-8")}catch(e){if("ENOENT"===e.code)return null;throw e}};async function f(){try{let e=await (0,i.getCliRuntimeStatus)("codex");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,config:null,message:e.installed&&!e.runnable?"Codex CLI is installed but not runnable":"Codex CLI is not installed"});let t=await E();return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,config:t,hasOmniRoute:!!t&&(t.includes('model_provider = "omniroute"')||t.includes("[model_providers.omniroute]")),configPath:R()})}catch(e){return console.log("Error checking codex settings:",e),n.NextResponse.json({error:"Failed to check codex settings"},{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,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:h}=r.data;if(!p)return n.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let f=s.default.dirname(R()),m=R(),g=x();await o.default.mkdir(f,{recursive:!0}),await (0,l.createMultiBackup)("codex",[m,g]);let E={_root:{},_sections:{}};try{let e=await o.default.readFile(m,"utf-8");E=v(e)}catch{}E._root.model=h,E._root.model_provider="omniroute";let y=a.endsWith("/v1")?a:`${a}/v1`;E._sections["model_providers.omniroute"]={name:"OmniRoute",base_url:y,wire_api:"responses"};let C=w(E);await o.default.writeFile(m,C);let _={};try{let e=await o.default.readFile(g,"utf-8");_=JSON.parse(e)}catch{}_.OPENAI_API_KEY=p,await o.default.writeFile(g,JSON.stringify(_,null,2));try{(0,d.saveCliToolLastConfigured)("codex")}catch{}return n.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:m})}catch(e){return console.log("Error updating codex settings:",e),n.NextResponse.json({error:"Failed to update codex 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.createMultiBackup)("codex",[t,x()]);let r={_root:{},_sections:{}};try{let e=await o.default.readFile(t,"utf-8");r=v(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No config file to reset"});throw e}"omniroute"===r._root.model_provider&&(delete r._root.model,delete r._root.model_provider),delete r._sections["model_providers.omniroute"];let a=w(r);await o.default.writeFile(t,a);let s=x();try{let e=await o.default.readFile(s,"utf-8"),t=JSON.parse(e);delete t.OPENAI_API_KEY,0===Object.keys(t).length?await o.default.unlink(s):await o.default.writeFile(s,JSON.stringify(t,null,2))}catch{}try{(0,d.deleteCliToolLastConfigured)("codex")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting codex settings:",e),n.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,p.ensureServerEntryExports)([f,m,g]),(0,a.registerServerReference)(f,"007b2400da76e4e2436607b6e8df6e698ac52af471",null),(0,a.registerServerReference)(m,"404fe4ade150bc871a0527ffedacd15099122b4bf6",null),(0,a.registerServerReference)(g,"00416e1910e9013edbb5b95bd373bbe47a853a21c5",null),e.s(["DELETE",()=>g,"GET",()=>f,"POST",()=>m]),r()}catch(e){r(e)}},!1),58214,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),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),h=e.i(47587),f=e.i(666012),m=e.i(570101),g=e.i(626937),R=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(980935),E=t([w]);[w]=E.then?(await E)():E;let _=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-settings/route",pathname:"/api/cli-tools/codex-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/codex-settings/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:b,workUnitAsyncStorage:N,serverHooks:O}=_;function y(){return(0,o.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:N})}async function C(e,t,r){_.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/codex-settings/route";a=a.replace(/\/index$/,"")||"/";let o=await _.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:E,nextConfig:y,parsedUrl:C,isDraftMode:b,prerenderManifest:N,routerServerContext:O,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,resolvedPathname:S,clientReferenceManifest:T,serverActionsManifest:j}=o,I=(0,d.normalizeAppPath)(a),F=!!(N.dynamicRoutes[I]||N.routes[S]),k=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(F&&!b){let e=!!N.routes[S],t=N.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await k();throw new x.NoFallbackError}}let M=null;!F||_.isDev||b||(M=S,M="/index"===M?"/":M);let H=!0===_.isDev||!F,U=F&&!H;j&&T&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:T,serverActionsManifest:j});let $=e.method||"GET",q=(0,i.getTracer)(),D=q.getActiveScopeSpan(),K={params:E,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>_.onRequestError(e,t,a,n,O)},sharedContext:{buildId:w}},L=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let o=async e=>_.handle(B,K).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=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${a}`)}),l=!!(0,s.getRequestMeta)(e,"minimalMode"),d=async s=>{var i,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&A&&P&&!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=K.renderOpts.fetchMetrics;let i=K.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let d=K.renderOpts.collectedTags;if(!F)return await (0,f.sendResponse)(L,W,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.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!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:K.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 _.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),t}},c=await _.handleResponse({req:e,nextConfig:y,cacheKey:M,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:l});if(!F)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,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,f.sendResponse)(L,W,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};D?await d(D):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d))}catch(t){if(t instanceof x.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),F)throw t;return await (0,f.sendResponse)(L,W,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>y,"routeModule",()=>_,"serverHooks",()=>O,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>N]),r()}catch(e){r(e)}},!1)];
1
+ module.exports=[980935,e=>e.a(async(t,r)=>{try{var n=e.i(745015),a=e.i(89171),o=e.i(924868),s=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),h=t([u,c]);[u,c]=h.then?(await h)():h;let R=()=>(0,i.getCliConfigPaths)("codex").config,x=()=>(0,i.getCliConfigPaths)("codex").auth,v=e=>{let t={_root:{},_sections:{}},r="_root";return e.split("\n").forEach(e=>{let n=e.trim();if(!n||n.startsWith("#"))return;let a=n.match(/^\[(.+)\]$/);if(a){r=a[1],t._sections[r]={};return}let o=n.match(/^([^=]+)\s*=\s*(.+)$/);if(o){let e=o[1].trim(),n=o[2].trim();(n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))&&(n=n.slice(1,-1)),"_root"===r?t._root[e]=n:t._sections[r][e]=n}}),t},w=e=>{let t=[];return Object.entries(e._root).forEach(([e,r])=>{t.push(`${e} = "${r}"`)}),Object.entries(e._sections).forEach(([e,r])=>{t.push(""),t.push(`[${e}]`),Object.entries(r).forEach(([e,r])=>{t.push(`${e} = "${r}"`)})}),t.join("\n")+"\n"},E=async()=>{try{let e=R();return await o.default.readFile(e,"utf-8")}catch(e){if("ENOENT"===e.code)return null;throw e}};async function f(){try{let e=await (0,i.getCliRuntimeStatus)("codex");if(!e.installed||!e.runnable)return a.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,config:null,message:e.installed&&!e.runnable?"Codex CLI is installed but not runnable":"Codex CLI is not installed"});let t=await E();return a.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,config:t,hasOmniRoute:!!t&&(t.includes('model_provider = "omniroute"')||t.includes("[model_providers.omniroute]")),configPath:R()})}catch(e){return console.log("Error checking codex settings:",e),a.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function m(e){let t;try{t=await e.json()}catch{return a.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return a.NextResponse.json({error:e},{status:403});let r=(0,c.validateBody)(u.cliModelConfigSchema,t);if((0,c.isValidationFailure)(r))return a.NextResponse.json({error:r.error},{status:400});let{baseUrl:n,apiKey:p,model:h}=r.data;if(!p)return a.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let f=s.default.dirname(R()),m=R(),g=x();await o.default.mkdir(f,{recursive:!0}),await (0,l.createMultiBackup)("codex",[m,g]);let E={_root:{},_sections:{}};try{let e=await o.default.readFile(m,"utf-8");E=v(e)}catch{}E._root.model=h,E._root.model_provider="omniroute";let y=n.endsWith("/v1")?n:`${n}/v1`;E._sections["model_providers.omniroute"]={name:"OmniRoute",base_url:y,wire_api:"responses"};let C=w(E);await o.default.writeFile(m,C);let _={};try{let e=await o.default.readFile(g,"utf-8");_=JSON.parse(e)}catch{}_.OPENAI_API_KEY=p,await o.default.writeFile(g,JSON.stringify(_,null,2));try{(0,d.saveCliToolLastConfigured)("codex")}catch{}return a.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:m})}catch(e){return console.log("Error updating codex settings:",e),a.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function g(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return a.NextResponse.json({error:e},{status:403});let t=R();await (0,l.createMultiBackup)("codex",[t,x()]);let r={_root:{},_sections:{}};try{let e=await o.default.readFile(t,"utf-8");r=v(e)}catch(e){if("ENOENT"===e.code)return a.NextResponse.json({success:!0,message:"No config file to reset"});throw e}"omniroute"===r._root.model_provider&&(delete r._root.model,delete r._root.model_provider),delete r._sections["model_providers.omniroute"];let n=w(r);await o.default.writeFile(t,n);let s=x();try{let e=await o.default.readFile(s,"utf-8"),t=JSON.parse(e);delete t.OPENAI_API_KEY,0===Object.keys(t).length?await o.default.unlink(s):await o.default.writeFile(s,JSON.stringify(t,null,2))}catch{}try{(0,d.deleteCliToolLastConfigured)("codex")}catch{}return a.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting codex settings:",e),a.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,p.ensureServerEntryExports)([f,m,g]),(0,n.registerServerReference)(f,"00973267a32b41545680b931fc110f58bcdec2d54d",null),(0,n.registerServerReference)(m,"401b2c23024b97336ddc1fabf2b045f7fc10f252d5",null),(0,n.registerServerReference)(g,"0006186f6cd71788888e092d9a4d815be76ecb95d8",null),e.s(["DELETE",()=>g,"GET",()=>f,"POST",()=>m]),r()}catch(e){r(e)}},!1),58214,e=>e.a(async(t,r)=>{try{var n=e.i(747909),a=e.i(174017),o=e.i(996250),s=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),h=e.i(47587),f=e.i(666012),m=e.i(570101),g=e.i(626937),R=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(980935),E=t([w]);[w]=E.then?(await E)():E;let _=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-settings/route",pathname:"/api/cli-tools/codex-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/codex-settings/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:N,workUnitAsyncStorage:b,serverHooks:O}=_;function y(){return(0,o.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:b})}async function C(e,t,r){_.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/cli-tools/codex-settings/route";n=n.replace(/\/index$/,"")||"/";let o=await _.prepare(e,t,{srcPage:n,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:E,nextConfig:y,parsedUrl:C,isDraftMode:N,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,resolvedPathname:S,clientReferenceManifest:T,serverActionsManifest:j}=o,I=(0,d.normalizeAppPath)(n),F=!!(b.dynamicRoutes[I]||b.routes[S]),k=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(F&&!N){let e=!!b.routes[S],t=b.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await k();throw new x.NoFallbackError}}let M=null;!F||_.isDev||N||(M=S,M="/index"===M?"/":M);let H=!0===_.isDev||!F,U=F&&!H;j&&T&&(0,l.setManifestsSingleton)({page:n,clientReferenceManifest:T,serverActionsManifest:j});let $=e.method||"GET",q=(0,i.getTracer)(),D=q.getActiveScopeSpan(),K={params:E,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>_.onRequestError(e,t,n,a,O)},sharedContext:{buildId:w}},L=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let o=async e=>_.handle(B,K).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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${n}`)}),l=!!(0,s.getRequestMeta)(e,"minimalMode"),d=async s=>{var i,d;let u=async({previousCacheEntry:a})=>{try{if(!l&&A&&P&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await o(s);e.fetchMetrics=K.renderOpts.fetchMetrics;let i=K.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let d=K.renderOpts.collectedTags;if(!F)return await (0,f.sendResponse)(L,W,n,K.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==a?void 0:a.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),t}},c=await _.handleResponse({req:e,nextConfig:y,cacheKey:M,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:l});if(!F)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"),N&&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,f.sendResponse)(L,W,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};D?await d(D):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${n}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d))}catch(t){if(t instanceof x.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),F)throw t;return await (0,f.sendResponse)(L,W,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>y,"routeModule",()=>_,"serverHooks",()=>O,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=_3ac953eb._.js.map
@@ -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,"0076fc217d2136e54b61cf9dcdf6369e4cfcaae824",null),(0,a.registerServerReference)(g,"404d25b8f6a0d113115ad2952cec60b128fc1557f5",null),(0,a.registerServerReference)(R,"40df16c6baa37e636617706242185b3987ec6b68b9",null),(0,a.registerServerReference)(m,"409dfee65735cceb91520264e0321cb19a70429db1",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,"001e2b04b0a7a40b48ca6ef5bcbc0ba19811d3255b",null),(0,a.registerServerReference)(g,"4043960fd4900735420416fe2bf348b18bb5e38b04",null),(0,a.registerServerReference)(R,"40cbf7b73e591bacd18fc1dbe9fe619dbca987dd27",null),(0,a.registerServerReference)(m,"409bd82efe8c0a08087ac25fc6517c9c74522a0486",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:b,workUnitAsyncStorage:j,serverHooks:A}=C;function N(){return(0,o.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:j})}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:b,prerenderManifest:j,routerServerContext:A,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,resolvedPathname:O,clientReferenceManifest:T,serverActionsManifest:I}=o,_=(0,u.normalizeAppPath)(a),k=!!(j.dynamicRoutes[_]||j.routes[O]),F=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,E,!1):t.end("This page could not be found"),null);if(k&&!b){let e=!!j.routes[O],t=j.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(N.experimental.adapterPath)return await F();throw new x.NoFallbackError}}let $=null;!k||C.isDev||b||($=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:j,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,A)},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,A),t}},c=await C.handleResponse({req:e,nextConfig:N,cacheKey:$,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:j,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"),b&&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,A),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",()=>A,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>j]),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),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,"0087fdfade64c832b0a50b795f85de19b56dc1700b",null),(0,r.registerServerReference)(g,"400ef095a550add0db76a6854f2ed36552f7370c09",null),(0,r.registerServerReference)(R,"0019cdce2f8dcb8c228711a53635a73e962e3ac3e7",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,"00db7287011dbb64db1734b3e07ffba727ac6cf82a",null),(0,r.registerServerReference)(g,"4058b34db66b12fd2ae1f2c6a251cbc6e268d46432",null),(0,r.registerServerReference)(R,"003f232f8690e7cee0a23cf5a36e2281c1f0f3135d",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)];
2
2
 
3
3
  //# sourceMappingURL=_68683848._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[446757,e=>{"use strict";var t=e.i(731664),r=e.i(501323),a=e.i(699064),n=e.i(719201);function o(e,r){let a;try{let e=JSON.parse(r);a=e?.err_msg||e?.error?.message||e?.error||e?.message||e?.detail||r}catch{a=r||`Upstream error (${e.status})`}return Response.json({error:{message:a,code:e.status}},{status:e.status,headers:{"Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}function i(e,r="audio/mpeg"){let a=e.headers.get("content-type")||r;return new Response(e.body,{status:200,headers:{"Content-Type":a,"Access-Control-Allow-Origin":(0,t.getCorsOrigin)(),"Transfer-Encoding":"chunked"}})}function s(e){return!e.includes("..")&&!e.includes("//")}async function l(e,r,n){let i=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,n)},body:JSON.stringify({text:r.input})});if(!i.ok)return o(i,await i.text());let s=await i.json();return new Response(Uint8Array.from(atob(s.audio),e=>e.charCodeAt(0)),{status:200,headers:{"Content-Type":"audio/mpeg","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}async function d(e,t,r,n){let s=new URL(e.baseUrl);s.searchParams.set("model",r);let l=await fetch(s.toString(),{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,n)},body:JSON.stringify({text:t.input})});return l.ok?i(l):o(l,await l.text())}async function u(e,t,r,l){let d=t.voice||"21m00Tcm4TlvDq8ikWAM";if(!s(d))return(0,n.errorResponse)(400,"Invalid voice ID");let u=`${e.baseUrl}/${d}`,c=await fetch(u,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,l)},body:JSON.stringify({text:t.input,model_id:r})});return c.ok?i(c):o(c,await c.text())}async function c(e,t,r,n){let s=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,n)},body:JSON.stringify({input:{text:t.input},voice:t.voice||"default",model:r})});return s.ok?i(s,"audio/wav"):o(s,await s.text())}async function p(e,t,r,l){if(!s(r))return(0,n.errorResponse)(400,"Invalid model ID");let d=`${e.baseUrl}/${r}`,u=await fetch(d,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,l)},body:JSON.stringify({inputs:t.input})});return u.ok?i(u,"audio/wav"):o(u,await u.text())}async function h(e,r,a,n){let i=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Basic ${n}`},body:JSON.stringify({text:r.input,voiceId:r.voice||void 0,modelId:a,audioConfig:{audioEncoding:"wav"===r.response_format?"LINEAR16":"MP3"}})});if(!i.ok)return o(i,await i.text());let s=await i.json();return new Response(Uint8Array.from(atob(s.audioContent??""),e=>e.charCodeAt(0)),{status:200,headers:{"Content-Type":"wav"===r.response_format?"audio/wav":"audio/mpeg","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}async function f(e,t,r,a){let n="wav"===t.response_format?{container:"wav",sample_rate:44100}:{container:"mp3",bit_rate:128e3,sample_rate:44100},s=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":a,"Cartesia-Version":"2024-06-10"},body:JSON.stringify({model_id:r,transcript:t.input,...t.voice?{voice:{mode:"id",id:t.voice}}:{},output_format:n})});return s.ok?i(s):o(s,await s.text())}async function y(e,t,r,a){let[n,s]=(a||":").split(":"),l=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"audio/mpeg","X-USER-ID":n||"",Authorization:`Bearer ${s||a}`},body:JSON.stringify({text:t.input,voice:t.voice||"s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json",voice_engine:r||"PlayDialog",output_format:t.response_format||"mp3",speed:t.speed||1})});return l.ok?i(l):o(l,await l.text())}async function m(e,r){let a=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:r.input,speaker_id:r.voice||void 0})});if(!a.ok)return o(a,await a.text());let n=a.headers.get("content-type")||"audio/wav";return new Response(a.body,{status:200,headers:{"Content-Type":n,"Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}async function v(e,r){let a=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:r.input,voice:r.voice||"random"})});if(!a.ok)return o(a,await a.text());let n=a.headers.get("content-type")||"audio/wav";return new Response(a.body,{status:200,headers:{"Content-Type":n,"Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}async function g({body:e,credentials:t,resolvedProvider:s=null,resolvedModel:g=null}){if(!e.model)return(0,n.errorResponse)(400,"model is required");if(!e.input)return(0,n.errorResponse)(400,"input is required");let w=s,T=g;if(!w){let t=(0,r.parseSpeechModel)(e.model);w=t.provider?(0,r.getSpeechProvider)(t.provider):null,T=t.model}if(!w)return(0,n.errorResponse)(400,`No speech provider found for model "${e.model}". Use format provider/model. Available: openai, hyperbolic, deepgram, nvidia, elevenlabs, huggingface, inworld, cartesia, playht, coqui, tortoise, qwen`);let R="none"===w.authType?null:t?.apiKey||t?.accessToken;if("none"!==w.authType&&!R)return(0,n.errorResponse)(401,`No credentials for speech provider: ${w.id}`);try{if("hyperbolic"===w.format)return l(w,e,R);if("deepgram"===w.format)return d(w,e,T,R);if("elevenlabs"===w.format)return u(w,e,T,R);if("nvidia-tts"===w.format)return c(w,e,T,R);if("huggingface-tts"===w.format)return p(w,e,T,R);if("inworld"===w.format)return h(w,e,T,R);if("cartesia"===w.format)return f(w,e,T,R);if("playht"===w.format)return y(w,e,T,R);if("coqui"===w.format)return m(w,e);if("tortoise"===w.format)return v(w,e);let t=await fetch(w.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(w,R)},body:JSON.stringify({model:T,input:e.input,voice:e.voice||"alloy",response_format:e.response_format||"mp3",speed:e.speed||1})});if(!t.ok)return o(t,await t.text());return i(t)}catch(e){return(0,n.errorResponse)(500,`Speech request failed: ${e.message}`)}}e.s(["handleAudioSpeech",()=>g])},189438,e=>e.a(async(t,r)=>{try{var a=e.i(224010),n=e.i(446757),o=e.i(287726),i=e.i(501323),s=e.i(719201),l=e.i(16023),d=e.i(478847);e.i(245272);var u=e.i(385498),c=e.i(676088),p=e.i(200392),h=t([c,p]);async function f(){return new Response(null,{headers:{"Access-Control-Allow-Origin":a.CORS_ORIGIN,"Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function y(e){let t;if("true"===process.env.REQUIRE_API_KEY){let t=(0,o.extractApiKey)(e);if(!t)return(0,s.errorResponse)(l.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,o.isValidApiKey)(t))return(0,s.errorResponse)(l.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}try{t=await e.json()}catch{return(0,s.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}let r=(0,p.validateBody)(c.v1AudioSpeechSchema,t);if((0,p.isValidationFailure)(r))return(0,s.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,r.error.message);let a=r.data,h=await (0,d.enforceApiKeyPolicy)(e,a.model);if(h.rejection)return h.rejection;let f=[];try{let e=await (0,u.getProviderNodes)();f=(Array.isArray(e)?e:[]).filter(e=>{if("chat"!==e.apiType&&"responses"!==e.apiType)return!1;try{let t=new URL(e.baseUrl).hostname;return"localhost"===t||"127.0.0.1"===t||"::1"===t||"[::1]"===t}catch{return!1}}).map(e=>(0,i.buildDynamicAudioProvider)(e,"/audio/speech"))}catch{}let{provider:y,model:m}=(0,i.parseSpeechModel)(a.model,f);if(!y)return(0,s.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,`Invalid speech model: ${a.model}. Use format: provider/model`);let v=(0,i.getSpeechProvider)(y)||f.find(e=>e.id===y)||null,g=null;if(v&&"none"!==v.authType&&!(g=await (0,o.getProviderCredentials)(y)))return(0,s.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${y}`);let w=await (0,n.handleAudioSpeech)({body:a,credentials:g,resolvedProvider:v,resolvedModel:m});return w?.ok&&await (0,o.clearRecoveredProviderState)(g),w}[c,p]=h.then?(await h)():h,e.s(["OPTIONS",()=>f,"POST",()=>y]),r()}catch(e){r(e)}},!1),655108,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),o=e.i(996250),i=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),h=e.i(47587),f=e.i(666012),y=e.i(570101),m=e.i(626937),v=e.i(10372),g=e.i(193695);e.i(52474);var w=e.i(600220),T=e.i(189438),R=t([T]);[T]=R.then?(await R)():R;let C=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/v1/audio/speech/route",pathname:"/api/v1/audio/speech",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/audio/speech/route.ts",nextConfigOutput:"standalone",userland:T}),{workAsyncStorage:O,workUnitAsyncStorage:b,serverHooks:P}=C;function A(){return(0,o.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:b})}async function S(e,t,r){C.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/v1/audio/speech/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:T,params:R,nextConfig:A,parsedUrl:S,isDraftMode:O,prerenderManifest:b,routerServerContext:P,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,resolvedPathname:U,clientReferenceManifest:_,serverActionsManifest:N}=o,I=(0,d.normalizeAppPath)(a),H=!!(b.dynamicRoutes[I]||b.routes[U]),k=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,S,!1):t.end("This page could not be found"),null);if(H&&!O){let e=!!b.routes[U],t=b.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(A.experimental.adapterPath)return await k();throw new g.NoFallbackError}}let j=null;!H||C.isDev||O||(j=U,j="/index"===j?"/":j);let D=!0===C.isDev||!H,q=H&&!D;N&&_&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:_,serverActionsManifest:N});let $=e.method||"GET",M=(0,s.getTracer)(),K=M.getActiveScopeSpan(),J={params:R,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:A.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:T}},B=new u.NodeNextRequest(e),F=new u.NodeNextResponse(t),L=c.NextRequestAdapter.fromNodeNextRequest(B,(0,c.signalFromNodeResponse)(t));try{let o=async e=>C.handle(L,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.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=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${a}`)}),l=!!(0,i.getRequestMeta)(e,"minimalMode"),d=async i=>{var s,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&E&&x&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(i);e.fetchMetrics=J.renderOpts.fetchMetrics;let s=J.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let d=J.renderOpts.collectedTags;if(!H)return await (0,f.sendResponse)(B,F,a,J.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,y.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[v.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,n=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:w.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,h.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:E})},!1,P),t}},c=await C.handleResponse({req:e,nextConfig:A,cacheKey:j,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:x,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:l});if(!H)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",E?"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,y.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&H||p.delete(v.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,f.sendResponse)(B,F,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};K?await d(K):await M.withPropagatedContext(e.headers,()=>M.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${a}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:E})},!1,P),H)throw t;return await (0,f.sendResponse)(B,F,new Response(null,{status:500})),null}}e.s(["handler",()=>S,"patchFetch",()=>A,"routeModule",()=>C,"serverHooks",()=>P,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
1
+ module.exports=[446757,e=>{"use strict";var t=e.i(731664),r=e.i(501323),a=e.i(699064),n=e.i(719201);function o(e,r){let a;try{let t=JSON.parse(r),n=t?.err_msg||t?.error?.message||("string"==typeof t?.error?t.error:null)||t?.message||("string"==typeof t?.detail?t.detail:t?.detail?.message)||null;a=n?String(n):r||`Upstream error (${e.status})`}catch{a=r||`Upstream error (${e.status})`}return Response.json({error:{message:a,code:e.status}},{status:e.status,headers:{"Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}function i(e,r="audio/mpeg"){let a=e.headers.get("content-type")||r;return new Response(e.body,{status:200,headers:{"Content-Type":a,"Access-Control-Allow-Origin":(0,t.getCorsOrigin)(),"Transfer-Encoding":"chunked"}})}function s(e){return!e.includes("..")&&!e.includes("//")}async function l(e,r,n){let i=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,n)},body:JSON.stringify({text:r.input})});if(!i.ok)return o(i,await i.text());let s=await i.json();return new Response(Uint8Array.from(atob(s.audio),e=>e.charCodeAt(0)),{status:200,headers:{"Content-Type":"audio/mpeg","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}async function d(e,t,r,n){let s=new URL(e.baseUrl);s.searchParams.set("model",r);let l=await fetch(s.toString(),{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,n)},body:JSON.stringify({text:t.input})});return l.ok?i(l):o(l,await l.text())}async function u(e,t,r,l){let d=t.voice||"21m00Tcm4TlvDq8ikWAM";if(!s(d))return(0,n.errorResponse)(400,"Invalid voice ID");let u=`${e.baseUrl}/${d}`,c=await fetch(u,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,l)},body:JSON.stringify({text:t.input,model_id:r})});return c.ok?i(c):o(c,await c.text())}async function c(e,t,r,n){let s=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,n)},body:JSON.stringify({input:{text:t.input},voice:t.voice||"default",model:r})});return s.ok?i(s,"audio/wav"):o(s,await s.text())}async function p(e,t,r,l){if(!s(r))return(0,n.errorResponse)(400,"Invalid model ID");let d=`${e.baseUrl}/${r}`,u=await fetch(d,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(e,l)},body:JSON.stringify({inputs:t.input})});return u.ok?i(u,"audio/wav"):o(u,await u.text())}async function h(e,r,a,n){let i=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Basic ${n}`},body:JSON.stringify({text:r.input,voiceId:r.voice||void 0,modelId:a,audioConfig:{audioEncoding:"wav"===r.response_format?"LINEAR16":"MP3"}})});if(!i.ok)return o(i,await i.text());let s=await i.json();return new Response(Uint8Array.from(atob(s.audioContent??""),e=>e.charCodeAt(0)),{status:200,headers:{"Content-Type":"wav"===r.response_format?"audio/wav":"audio/mpeg","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}async function f(e,t,r,a){let n="wav"===t.response_format?{container:"wav",sample_rate:44100}:{container:"mp3",bit_rate:128e3,sample_rate:44100},s=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":a,"Cartesia-Version":"2024-06-10"},body:JSON.stringify({model_id:r,transcript:t.input,...t.voice?{voice:{mode:"id",id:t.voice}}:{},output_format:n})});return s.ok?i(s):o(s,await s.text())}async function y(e,t,r,a){let[n,s]=(a||":").split(":"),l=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"audio/mpeg","X-USER-ID":n||"",Authorization:`Bearer ${s||a}`},body:JSON.stringify({text:t.input,voice:t.voice||"s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json",voice_engine:r||"PlayDialog",output_format:t.response_format||"mp3",speed:t.speed||1})});return l.ok?i(l):o(l,await l.text())}async function m(e,r){let a=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:r.input,speaker_id:r.voice||void 0})});if(!a.ok)return o(a,await a.text());let n=a.headers.get("content-type")||"audio/wav";return new Response(a.body,{status:200,headers:{"Content-Type":n,"Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}async function v(e,r){let a=await fetch(e.baseUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:r.input,voice:r.voice||"random"})});if(!a.ok)return o(a,await a.text());let n=a.headers.get("content-type")||"audio/wav";return new Response(a.body,{status:200,headers:{"Content-Type":n,"Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}async function g({body:e,credentials:t,resolvedProvider:s=null,resolvedModel:g=null}){if(!e.model)return(0,n.errorResponse)(400,"model is required");if(!e.input)return(0,n.errorResponse)(400,"input is required");let w=s,T=g;if(!w){let t=(0,r.parseSpeechModel)(e.model);w=t.provider?(0,r.getSpeechProvider)(t.provider):null,T=t.model}if(!w)return(0,n.errorResponse)(400,`No speech provider found for model "${e.model}". Use format provider/model. Available: openai, hyperbolic, deepgram, nvidia, elevenlabs, huggingface, inworld, cartesia, playht, coqui, tortoise, qwen`);let R="none"===w.authType?null:t?.apiKey||t?.accessToken;if("none"!==w.authType&&!R)return(0,n.errorResponse)(401,`No credentials for speech provider: ${w.id}`);try{if("hyperbolic"===w.format)return l(w,e,R);if("deepgram"===w.format)return d(w,e,T,R);if("elevenlabs"===w.format)return u(w,e,T,R);if("nvidia-tts"===w.format)return c(w,e,T,R);if("huggingface-tts"===w.format)return p(w,e,T,R);if("inworld"===w.format)return h(w,e,T,R);if("cartesia"===w.format)return f(w,e,T,R);if("playht"===w.format)return y(w,e,T,R);if("coqui"===w.format)return m(w,e);if("tortoise"===w.format)return v(w,e);let t=await fetch(w.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",...(0,a.buildAuthHeaders)(w,R)},body:JSON.stringify({model:T,input:e.input,voice:e.voice||"alloy",response_format:e.response_format||"mp3",speed:e.speed||1})});if(!t.ok)return o(t,await t.text());return i(t)}catch(e){return(0,n.errorResponse)(500,`Speech request failed: ${e.message}`)}}e.s(["handleAudioSpeech",()=>g])},189438,e=>e.a(async(t,r)=>{try{var a=e.i(224010),n=e.i(446757),o=e.i(287726),i=e.i(501323),s=e.i(719201),l=e.i(16023),d=e.i(478847);e.i(245272);var u=e.i(385498),c=e.i(676088),p=e.i(200392),h=t([c,p]);async function f(){return new Response(null,{headers:{"Access-Control-Allow-Origin":a.CORS_ORIGIN,"Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function y(e){let t;if("true"===process.env.REQUIRE_API_KEY){let t=(0,o.extractApiKey)(e);if(!t)return(0,s.errorResponse)(l.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,o.isValidApiKey)(t))return(0,s.errorResponse)(l.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}try{t=await e.json()}catch{return(0,s.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}let r=(0,p.validateBody)(c.v1AudioSpeechSchema,t);if((0,p.isValidationFailure)(r))return(0,s.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,r.error.message);let a=r.data,h=await (0,d.enforceApiKeyPolicy)(e,a.model);if(h.rejection)return h.rejection;let f=[];try{let e=await (0,u.getProviderNodes)();f=(Array.isArray(e)?e:[]).filter(e=>{if("chat"!==e.apiType&&"responses"!==e.apiType)return!1;try{let t=new URL(e.baseUrl).hostname;return"localhost"===t||"127.0.0.1"===t||"::1"===t||"[::1]"===t}catch{return!1}}).map(e=>(0,i.buildDynamicAudioProvider)(e,"/audio/speech"))}catch{}let{provider:y,model:m}=(0,i.parseSpeechModel)(a.model,f);if(!y)return(0,s.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,`Invalid speech model: ${a.model}. Use format: provider/model`);let v=(0,i.getSpeechProvider)(y)||f.find(e=>e.id===y)||null,g=null;if(v&&"none"!==v.authType&&!(g=await (0,o.getProviderCredentials)(y)))return(0,s.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${y}`);let w=await (0,n.handleAudioSpeech)({body:a,credentials:g,resolvedProvider:v,resolvedModel:m});return w?.ok&&await (0,o.clearRecoveredProviderState)(g),w}[c,p]=h.then?(await h)():h,e.s(["OPTIONS",()=>f,"POST",()=>y]),r()}catch(e){r(e)}},!1),655108,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),o=e.i(996250),i=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),h=e.i(47587),f=e.i(666012),y=e.i(570101),m=e.i(626937),v=e.i(10372),g=e.i(193695);e.i(52474);var w=e.i(600220),T=e.i(189438),R=t([T]);[T]=R.then?(await R)():R;let C=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/v1/audio/speech/route",pathname:"/api/v1/audio/speech",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/audio/speech/route.ts",nextConfigOutput:"standalone",userland:T}),{workAsyncStorage:O,workUnitAsyncStorage:b,serverHooks:P}=C;function A(){return(0,o.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:b})}async function S(e,t,r){C.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/v1/audio/speech/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:T,params:R,nextConfig:A,parsedUrl:S,isDraftMode:O,prerenderManifest:b,routerServerContext:P,isOnDemandRevalidate:E,revalidateOnlyGenerated:U,resolvedPathname:x,clientReferenceManifest:_,serverActionsManifest:N}=o,I=(0,d.normalizeAppPath)(a),H=!!(b.dynamicRoutes[I]||b.routes[x]),k=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,S,!1):t.end("This page could not be found"),null);if(H&&!O){let e=!!b.routes[x],t=b.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(A.experimental.adapterPath)return await k();throw new g.NoFallbackError}}let j=null;!H||C.isDev||O||(j=x,j="/index"===j?"/":j);let D=!0===C.isDev||!H,$=H&&!D;N&&_&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:_,serverActionsManifest:N});let q=e.method||"GET",M=(0,s.getTracer)(),K=M.getActiveScopeSpan(),J={params:R,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:A.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:T}},B=new u.NodeNextRequest(e),F=new u.NodeNextResponse(t),L=c.NextRequestAdapter.fromNodeNextRequest(B,(0,c.signalFromNodeResponse)(t));try{let o=async e=>C.handle(L,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.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=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${a}`)}),l=!!(0,i.getRequestMeta)(e,"minimalMode"),d=async i=>{var s,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&E&&U&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(i);e.fetchMetrics=J.renderOpts.fetchMetrics;let s=J.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let d=J.renderOpts.collectedTags;if(!H)return await (0,f.sendResponse)(B,F,a,J.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,y.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[v.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,n=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:w.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,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:E})},!1,P),t}},c=await C.handleResponse({req:e,nextConfig:A,cacheKey:j,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:U,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:l});if(!H)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",E?"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,y.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&H||p.delete(v.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,f.sendResponse)(B,F,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};K?await d(K):await M.withPropagatedContext(e.headers,()=>M.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${a}`,kind:s.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:E})},!1,P),H)throw t;return await (0,f.sendResponse)(B,F,new Response(null,{status:500})),null}}e.s(["handler",()=>S,"patchFetch",()=>A,"routeModule",()=>C,"serverHooks",()=>P,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=_ac39a13d._.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,"00bc57702e15a6317daec6f270a1042cfbeeab86a8",null),(0,a.registerServerReference)(f,"40c3fd5b3a64544900f062841a520557eaaba98536",null),(0,a.registerServerReference)(g,"00973ee6d0db1d1b7eb4174a78760f3516505ab88a",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,"00780c522cfbcdb2371cf3f547ff28dbffe24372ec",null),(0,a.registerServerReference)(f,"408015833ae9cc777e581f3a8322c3ebb5439c6a06",null),(0,a.registerServerReference)(g,"004a2d9e61c161c6e5ff7f07a0108b223b7bd5ae43",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
@@ -1,3 +1,3 @@
1
- module.exports=[50767,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),l=e.i(316795),d=e.i(487718),u=e.i(995169),c=e.i(47587),p=e.i(666012),f=e.i(570101),h=e.i(626937),m=e.i(10372),g=e.i(193695);e.i(52474);var R=e.i(600220),w=e.i(224010),T=e.i(731664),v=e.i(501323),y=e.i(699064),A=e.i(719201);function C(e,t){let r;try{let e=JSON.parse(t);r=e?.err_msg||e?.error?.message||e?.error||e?.message||e?.detail||t}catch{r=t||`Upstream error (${e.status})`}return Response.json({error:{message:r,code:e.status}},{status:e.status,headers:{"Access-Control-Allow-Origin":(0,T.getCorsOrigin)()}})}function E(e){return"string"==typeof e.name&&e.name.length>0?e.name:"audio.wav"}async function P(e,t,r,a){let n=new URL(e.baseUrl);n.searchParams.set("model",r),n.searchParams.set("smart_format","true");let o=await t.arrayBuffer(),i=await fetch(n.toString(),{method:"POST",headers:{...(0,y.buildAuthHeaders)(e,a),"Content-Type":t.type||"audio/wav"},body:o});if(!i.ok)return C(i,await i.text());let s=await i.json(),l=s.results?.channels?.[0]?.alternatives?.[0]?.transcript??null;return Response.json({text:l??"",noSpeechDetected:null===l||""===l},{headers:{"Access-Control-Allow-Origin":(0,T.getCorsOrigin)()}})}async function O(e,t,r,a){let n=(0,y.buildAuthHeaders)(e,a),o=await t.arrayBuffer(),i=await fetch("https://api.assemblyai.com/v2/upload",{method:"POST",headers:{...n,"Content-Type":"application/octet-stream"},body:o});if(!i.ok)return C(i,await i.text());let{upload_url:s}=await i.json(),l=await fetch(e.baseUrl,{method:"POST",headers:{...n,"Content-Type":"application/json"},body:JSON.stringify({audio_url:s,speech_models:[r],language_detection:!0})});if(!l.ok)return C(l,await l.text());let{id:d}=await l.json(),u=`${e.baseUrl}/${d}`,c=Date.now();for(;Date.now()-c<12e4;){await new Promise(e=>setTimeout(e,2e3));let e=await fetch(u,{headers:n});if(!e.ok)continue;let t=await e.json();if("completed"===t.status)return Response.json({text:t.text||""},{headers:{"Access-Control-Allow-Origin":(0,T.getCorsOrigin)()}});if("error"===t.status)return(0,A.errorResponse)(500,t.error||"AssemblyAI transcription failed")}return(0,A.errorResponse)(504,"AssemblyAI transcription timed out after 120s")}async function S(e,t,r,a){let n=new FormData;n.append("file",t,E(t)),n.append("model",r);let o=await fetch(e.baseUrl,{method:"POST",headers:(0,y.buildAuthHeaders)(e,a),body:n});if(!o.ok)return C(o,await o.text());let i=await o.json(),s=i.text||i.transcript||"";return Response.json({text:s},{headers:{"Access-Control-Allow-Origin":(0,T.getCorsOrigin)()}})}async function b(e,t,r,a){if(!(!r.includes("..")&&!r.includes("//")))return(0,A.errorResponse)(400,"Invalid model ID");let n=`${e.baseUrl}/${r}`,o=await t.arrayBuffer(),i=await fetch(n,{method:"POST",headers:{...(0,y.buildAuthHeaders)(e,a),"Content-Type":t.type||"audio/wav"},body:o});if(!i.ok)return C(i,await i.text());let s=(await i.json()).text||"";return Response.json({text:s},{headers:{"Access-Control-Allow-Origin":(0,T.getCorsOrigin)()}})}async function x({formData:e,credentials:t,resolvedProvider:r=null,resolvedModel:a=null}){let n=e.get("model");if("string"!=typeof n||!n)return(0,A.errorResponse)(400,"model is required");let o=e.get("file");if(!(o instanceof Blob))return(0,A.errorResponse)(400,"file is required");let i=r,s=a;if(!i){let e=(0,v.parseTranscriptionModel)(n);i=e.provider?(0,v.getTranscriptionProvider)(e.provider):null,s=e.model}if(!i)return(0,A.errorResponse)(400,`No transcription provider found for model "${n}". Available: openai, groq, deepgram, assemblyai, nvidia, huggingface, qwen`);let l="none"===i.authType?null:t?.apiKey||t?.accessToken;if("none"!==i.authType&&!l)return(0,A.errorResponse)(401,`No credentials for transcription provider: ${i.id}`);if("deepgram"===i.format)return P(i,o,s,l);if("assemblyai"===i.format)return O(i,o,s,l);if("nvidia-asr"===i.format)return S(i,o,s,l);if("huggingface-asr"===i.format)return b(i,o,s,l);let d=new FormData;for(let t of(d.append("file",o,E(o)),d.append("model",s),["language","prompt","response_format","temperature","timestamp_granularities[]"])){let r=e.get(t);null!=r&&d.append(t,r)}try{let e=await fetch(i.baseUrl,{method:"POST",headers:(0,y.buildAuthHeaders)(i,l),body:d});if(!e.ok)return C(e,await e.text());let t=await e.text(),r=e.headers.get("content-type")||"application/json";return new Response(t,{status:200,headers:{"Content-Type":r,"Access-Control-Allow-Origin":(0,T.getCorsOrigin)()}})}catch(t){let e=t instanceof Error?t:Error(String(t));return(0,A.errorResponse)(500,`Transcription request failed: ${e.message}`)}}var U=e.i(287726),_=e.i(16023),N=e.i(478847);e.i(245272);var I=e.i(385498);async function H(){return new Response(null,{headers:{"Access-Control-Allow-Origin":w.CORS_ORIGIN,"Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function D(e){let t;if("true"===process.env.REQUIRE_API_KEY){let t=(0,U.extractApiKey)(e);if(!t)return(0,A.errorResponse)(_.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,U.isValidApiKey)(t))return(0,A.errorResponse)(_.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}try{t=await e.formData()}catch{return(0,A.errorResponse)(_.HTTP_STATUS.BAD_REQUEST,"Invalid multipart form data")}let r=t.get("model");if(!r)return(0,A.errorResponse)(_.HTTP_STATUS.BAD_REQUEST,"Missing model");let a=await (0,N.enforceApiKeyPolicy)(e,r);if(a.rejection)return a.rejection;let n=[];try{let e=await (0,I.getProviderNodes)();n=(Array.isArray(e)?e:[]).filter(e=>{if("chat"!==e.apiType&&"responses"!==e.apiType)return!1;try{let t=new URL(e.baseUrl).hostname;return"localhost"===t||"127.0.0.1"===t||"::1"===t||"[::1]"===t}catch{return!1}}).map(e=>(0,v.buildDynamicAudioProvider)(e,"/audio/transcriptions"))}catch{}let{provider:o,model:i}=(0,v.parseTranscriptionModel)(r,n);if(!o)return(0,A.errorResponse)(_.HTTP_STATUS.BAD_REQUEST,`Invalid transcription model: ${r}. Use format: provider/model`);let s=(0,v.getTranscriptionProvider)(o)||n.find(e=>e.id===o)||null,l=null;if(s&&"none"!==s.authType&&!(l=await (0,U.getProviderCredentials)(o)))return(0,A.errorResponse)(_.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${o}`);let d=await x({formData:t,credentials:l,resolvedProvider:s,resolvedModel:i});return d?.ok&&await (0,U.clearRecoveredProviderState)(l),d}e.s(["OPTIONS",()=>H,"POST",()=>D],414524);var k=e.i(414524);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/v1/audio/transcriptions/route",pathname:"/api/v1/audio/transcriptions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/audio/transcriptions/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:q,workUnitAsyncStorage:$,serverHooks:M}=j;function B(){return(0,a.patchFetch)({workAsyncStorage:q,workUnitAsyncStorage:$})}async function K(e,t,a){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/v1/audio/transcriptions/route";w=w.replace(/\/index$/,"")||"/";let T=await j.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!T)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:y,nextConfig:A,parsedUrl:C,isDraftMode:E,prerenderManifest:P,routerServerContext:O,isOnDemandRevalidate:S,revalidateOnlyGenerated:b,resolvedPathname:x,clientReferenceManifest:U,serverActionsManifest:_}=T,N=(0,s.normalizeAppPath)(w),I=!!(P.dynamicRoutes[N]||P.routes[x]),H=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!E){let e=!!P.routes[x],t=P.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(A.experimental.adapterPath)return await H();throw new g.NoFallbackError}}let D=null;!I||j.isDev||E||(D="/index"===(D=x)?"/":D);let k=!0===j.isDev||!I,q=I&&!k;_&&U&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:U,serverActionsManifest:_});let $=e.method||"GET",M=(0,o.getTracer)(),B=M.getActiveScopeSpan(),K={params:y,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:k,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>j.onRequestError(e,t,a,n,O)},sharedContext:{buildId:v}},F=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),Q=d.NextRequestAdapter.fromNodeNextRequest(F,(0,d.signalFromNodeResponse)(t));try{let i=async e=>j.handle(Q,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${w}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&S&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(F,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:S})},!1,O),t}},u=await j.handleResponse({req:e,nextConfig:A,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:b,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:s});if(!I)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",S?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&I||g.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(F,L,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};B?await l(B):await M.withPropagatedContext(e.headers,()=>M.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:S})},!1,O),I)throw t;return await (0,p.sendResponse)(F,L,new Response(null,{status:500})),null}}e.s(["handler",()=>K,"patchFetch",()=>B,"routeModule",()=>j,"serverHooks",()=>M,"workAsyncStorage",()=>q,"workUnitAsyncStorage",()=>$],50767)}];
1
+ module.exports=[50767,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),f=e.i(570101),h=e.i(626937),m=e.i(10372),g=e.i(193695);e.i(52474);var w=e.i(600220),R=e.i(224010),y=e.i(731664),T=e.i(501323),v=e.i(699064),A=e.i(719201);function C(e,t){let r;try{let a=JSON.parse(t),n=a?.err_msg||a?.error?.message||("string"==typeof a?.error?a.error:null)||a?.message||("string"==typeof a?.detail?a.detail:a?.detail?.message)||null;r=n?String(n):t||`Upstream error (${e.status})`}catch{r=t||`Upstream error (${e.status})`}return Response.json({error:{message:r,code:e.status}},{status:e.status,headers:{"Access-Control-Allow-Origin":(0,y.getCorsOrigin)()}})}function E(e){return"string"==typeof e.name&&e.name.length>0?e.name:"audio.wav"}function P(e){let t=(e.type||"").toLowerCase(),r="string"==typeof e.name?e.name.toLowerCase():"";if(t.startsWith("audio/"))return t;let a=r.includes(".")?r.split(".").pop():"",n={mp3:"audio/mpeg",mp4:"audio/mp4",m4a:"audio/mp4",wav:"audio/wav",ogg:"audio/ogg",flac:"audio/flac",webm:"audio/webm",aac:"audio/aac",wma:"audio/x-ms-wma",opus:"audio/opus"};return a&&n[a]?n[a]:"application/octet-stream"}async function S(e,t,r,a,n){let o=new URL(e.baseUrl);o.searchParams.set("model",r),o.searchParams.set("smart_format","true"),o.searchParams.set("punctuate","true");let i=n?.get("language");"string"==typeof i&&i.trim()?o.searchParams.set("language",i.trim()):o.searchParams.set("detect_language","true");let s=await t.arrayBuffer(),l=await fetch(o.toString(),{method:"POST",headers:{...(0,v.buildAuthHeaders)(e,a),"Content-Type":P(t)},body:s});if(!l.ok)return C(l,await l.text());let u=await l.json(),d=u.results?.channels?.[0]?.alternatives?.[0]?.transcript??null;return Response.json({text:d??"",noSpeechDetected:null===d||""===d},{headers:{"Access-Control-Allow-Origin":(0,y.getCorsOrigin)()}})}async function O(e,t,r,a){let n=(0,v.buildAuthHeaders)(e,a),o=await t.arrayBuffer(),i=await fetch("https://api.assemblyai.com/v2/upload",{method:"POST",headers:{...n,"Content-Type":"application/octet-stream"},body:o});if(!i.ok)return C(i,await i.text());let{upload_url:s}=await i.json(),l=await fetch(e.baseUrl,{method:"POST",headers:{...n,"Content-Type":"application/json"},body:JSON.stringify({audio_url:s,speech_models:[r],language_detection:!0})});if(!l.ok)return C(l,await l.text());let{id:u}=await l.json(),d=`${e.baseUrl}/${u}`,c=Date.now();for(;Date.now()-c<12e4;){await new Promise(e=>setTimeout(e,2e3));let e=await fetch(d,{headers:n});if(!e.ok)continue;let t=await e.json();if("completed"===t.status)return Response.json({text:t.text||""},{headers:{"Access-Control-Allow-Origin":(0,y.getCorsOrigin)()}});if("error"===t.status)return(0,A.errorResponse)(500,t.error||"AssemblyAI transcription failed")}return(0,A.errorResponse)(504,"AssemblyAI transcription timed out after 120s")}async function b(e,t,r,a){let n=new FormData;n.append("file",t,E(t)),n.append("model",r);let o=await fetch(e.baseUrl,{method:"POST",headers:(0,v.buildAuthHeaders)(e,a),body:n});if(!o.ok)return C(o,await o.text());let i=await o.json(),s=i.text||i.transcript||"";return Response.json({text:s},{headers:{"Access-Control-Allow-Origin":(0,y.getCorsOrigin)()}})}async function x(e,t,r,a){if(!(!r.includes("..")&&!r.includes("//")))return(0,A.errorResponse)(400,"Invalid model ID");let n=`${e.baseUrl}/${r}`,o=await t.arrayBuffer(),i=await fetch(n,{method:"POST",headers:{...(0,v.buildAuthHeaders)(e,a),"Content-Type":P(t)},body:o});if(!i.ok)return C(i,await i.text());let s=(await i.json()).text||"";return Response.json({text:s},{headers:{"Access-Control-Allow-Origin":(0,y.getCorsOrigin)()}})}async function U({formData:e,credentials:t,resolvedProvider:r=null,resolvedModel:a=null}){let n=e.get("model");if("string"!=typeof n||!n)return(0,A.errorResponse)(400,"model is required");let o=e.get("file");if(!(o instanceof Blob))return(0,A.errorResponse)(400,"file is required");let i=r,s=a;if(!i){let e=(0,T.parseTranscriptionModel)(n);i=e.provider?(0,T.getTranscriptionProvider)(e.provider):null,s=e.model}if(!i)return(0,A.errorResponse)(400,`No transcription provider found for model "${n}". Available: openai, groq, deepgram, assemblyai, nvidia, huggingface, qwen`);let l="none"===i.authType?null:t?.apiKey||t?.accessToken;if("none"!==i.authType&&!l)return(0,A.errorResponse)(401,`No credentials for transcription provider: ${i.id}`);if("deepgram"===i.format)return S(i,o,s,l,e);if("assemblyai"===i.format)return O(i,o,s,l);if("nvidia-asr"===i.format)return b(i,o,s,l);if("huggingface-asr"===i.format)return x(i,o,s,l);let u=new FormData;for(let t of(u.append("file",o,E(o)),u.append("model",s),["language","prompt","response_format","temperature","timestamp_granularities[]"])){let r=e.get(t);null!=r&&u.append(t,r)}try{let e=await fetch(i.baseUrl,{method:"POST",headers:(0,v.buildAuthHeaders)(i,l),body:u});if(!e.ok)return C(e,await e.text());let t=await e.text(),r=e.headers.get("content-type")||"application/json";return new Response(t,{status:200,headers:{"Content-Type":r,"Access-Control-Allow-Origin":(0,y.getCorsOrigin)()}})}catch(t){let e=t instanceof Error?t:Error(String(t));return(0,A.errorResponse)(500,`Transcription request failed: ${e.message}`)}}var _=e.i(287726),N=e.i(16023),I=e.i(478847);e.i(245272);var H=e.i(385498);async function D(){return new Response(null,{headers:{"Access-Control-Allow-Origin":R.CORS_ORIGIN,"Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function k(e){let t;if("true"===process.env.REQUIRE_API_KEY){let t=(0,_.extractApiKey)(e);if(!t)return(0,A.errorResponse)(N.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,_.isValidApiKey)(t))return(0,A.errorResponse)(N.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}try{t=await e.formData()}catch{return(0,A.errorResponse)(N.HTTP_STATUS.BAD_REQUEST,"Invalid multipart form data")}let r=t.get("model");if(!r)return(0,A.errorResponse)(N.HTTP_STATUS.BAD_REQUEST,"Missing model");let a=await (0,I.enforceApiKeyPolicy)(e,r);if(a.rejection)return a.rejection;let n=[];try{let e=await (0,H.getProviderNodes)();n=(Array.isArray(e)?e:[]).filter(e=>{if("chat"!==e.apiType&&"responses"!==e.apiType)return!1;try{let t=new URL(e.baseUrl).hostname;return"localhost"===t||"127.0.0.1"===t||"::1"===t||"[::1]"===t}catch{return!1}}).map(e=>(0,T.buildDynamicAudioProvider)(e,"/audio/transcriptions"))}catch{}let{provider:o,model:i}=(0,T.parseTranscriptionModel)(r,n);if(!o)return(0,A.errorResponse)(N.HTTP_STATUS.BAD_REQUEST,`Invalid transcription model: ${r}. Use format: provider/model`);let s=(0,T.getTranscriptionProvider)(o)||n.find(e=>e.id===o)||null,l=null;if(s&&"none"!==s.authType&&!(l=await (0,_.getProviderCredentials)(o)))return(0,A.errorResponse)(N.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${o}`);let u=await U({formData:t,credentials:l,resolvedProvider:s,resolvedModel:i});return u?.ok&&await (0,_.clearRecoveredProviderState)(l),u}e.s(["OPTIONS",()=>D,"POST",()=>k],414524);var j=e.i(414524);let $=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/v1/audio/transcriptions/route",pathname:"/api/v1/audio/transcriptions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/audio/transcriptions/route.ts",nextConfigOutput:"standalone",userland:j}),{workAsyncStorage:q,workUnitAsyncStorage:M,serverHooks:B}=$;function K(){return(0,a.patchFetch)({workAsyncStorage:q,workUnitAsyncStorage:M})}async function F(e,t,a){$.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/v1/audio/transcriptions/route";R=R.replace(/\/index$/,"")||"/";let y=await $.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,params:v,nextConfig:A,parsedUrl:C,isDraftMode:E,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,resolvedPathname:x,clientReferenceManifest:U,serverActionsManifest:_}=y,N=(0,s.normalizeAppPath)(R),I=!!(P.dynamicRoutes[N]||P.routes[x]),H=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!E){let e=!!P.routes[x],t=P.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(A.experimental.adapterPath)return await H();throw new g.NoFallbackError}}let D=null;!I||$.isDev||E||(D="/index"===(D=x)?"/":D);let k=!0===$.isDev||!I,j=I&&!k;_&&U&&(0,i.setManifestsSingleton)({page:R,clientReferenceManifest:U,serverActionsManifest:_});let q=e.method||"GET",M=(0,o.getTracer)(),B=M.getActiveScopeSpan(),K={params:v,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:k,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>$.onRequestError(e,t,a,n,S)},sharedContext:{buildId:T}},F=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),Q=u.NextRequestAdapter.fromNodeNextRequest(F,(0,u.signalFromNodeResponse)(t));try{let i=async e=>$.handle(Q,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.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 a=r.get("next.route");if(a){let t=`${q} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${R}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!s&&O&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(F,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await $.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:O})},!1,S),t}},d=await $.handleResponse({req:e,nextConfig:A,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!I)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&I||g.delete(m.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(F,L,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};B?await l(B):await M.withPropagatedContext(e.headers,()=>M.trace(d.BaseServerSpan.handleRequest,{spanName:`${q} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await $.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:O})},!1,S),I)throw t;return await (0,p.sendResponse)(F,L,new Response(null,{status:500})),null}}e.s(["handler",()=>F,"patchFetch",()=>K,"routeModule",()=>$,"serverHooks",()=>B,"workAsyncStorage",()=>q,"workUnitAsyncStorage",()=>M],50767)}];
2
2
 
3
3
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_e1050fd8.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"))},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:"2.9.1",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:"next build","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:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",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",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","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","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@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.1.6",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"]}})},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])}];
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"))},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:"2.9.2",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:"next build","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:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",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",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","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","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@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.1.6",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"]}})},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__9affb65e._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},677850,a=>a.a(async(b,c)=>{try{let b=await a.y("zod");a.n(b),c()}catch(a){c(a)}},!0),804730,a=>{a.v({name:"omniroute",version:"2.9.1",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:"next build","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:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",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",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","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","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@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.1.6",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"]}})},569264,a=>{a.n(a.i(354832))},650645,a=>{a.n(a.i(827572))},923576,a=>{a.n(a.i(104858))},825210,a=>{a.n(a.i(402747))},517537,a=>{a.n(a.i(903363))},13718,a=>{a.n(a.i(685523))},118198,a=>{a.n(a.i(545518))},296736,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},500790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(211857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},784707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(211857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},297647,a=>{"use strict";a.i(500790);var b=a.i(784707);a.n(b)},395936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(296736),g=a.r(907997),h=f._(a.r(297647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},330878,a=>{"use strict";var b=a.i(800717),c=a.i(118845),d=a.i(40953),e=(0,b.cache)(function(a,b){return function({_cache:a=(0,c.b)(),_formatters:b=(0,c.c)(a),getMessageFallback:e=d.d,messages:f,namespace:g,onError:h=d.b,...i}){return function({messages:a,namespace:b,...c},e){return a=a["!"],b=(0,d.r)(b,"!"),(0,d.a)({...c,messages:a,namespace:b})}({...i,onError:h,cache:a,formatters:b,getMessageFallback:e,messages:{"!":f},namespace:g?`!.${g}`:"!"},0)}({...a,namespace:b})});a.s(["default",()=>e],330878)},442979,a=>{"use strict";var b=a.i(330878),c=a.i(767228),d=a.i(800717)["use".trim()];function e(...[a]){let f=function(a){var b=(0,c.default)();try{return d(b)}catch(b){throw b instanceof TypeError&&b.message.includes("Cannot read properties of null (reading 'use')")?Error(`\`${a}\` is not callable within an async component. Please refer to https://next-intl.dev/docs/environments/server-client-components#async-components`,{cause:b}):b}}("useTranslations");return(0,b.default)(f,a)}a.s(["useTranslations",()=>e],442979)}];
1
+ module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},677850,a=>a.a(async(b,c)=>{try{let b=await a.y("zod");a.n(b),c()}catch(a){c(a)}},!0),804730,a=>{a.v({name:"omniroute",version:"2.9.2",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:"next build","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:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",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",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","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","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@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.1.6",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"]}})},569264,a=>{a.n(a.i(354832))},650645,a=>{a.n(a.i(827572))},923576,a=>{a.n(a.i(104858))},825210,a=>{a.n(a.i(402747))},517537,a=>{a.n(a.i(903363))},13718,a=>{a.n(a.i(685523))},118198,a=>{a.n(a.i(545518))},296736,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},500790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(211857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},784707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(211857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},297647,a=>{"use strict";a.i(500790);var b=a.i(784707);a.n(b)},395936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(296736),g=a.r(907997),h=f._(a.r(297647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},330878,a=>{"use strict";var b=a.i(800717),c=a.i(118845),d=a.i(40953),e=(0,b.cache)(function(a,b){return function({_cache:a=(0,c.b)(),_formatters:b=(0,c.c)(a),getMessageFallback:e=d.d,messages:f,namespace:g,onError:h=d.b,...i}){return function({messages:a,namespace:b,...c},e){return a=a["!"],b=(0,d.r)(b,"!"),(0,d.a)({...c,messages:a,namespace:b})}({...i,onError:h,cache:a,formatters:b,getMessageFallback:e,messages:{"!":f},namespace:g?`!.${g}`:"!"},0)}({...a,namespace:b})});a.s(["default",()=>e],330878)},442979,a=>{"use strict";var b=a.i(330878),c=a.i(767228),d=a.i(800717)["use".trim()];function e(...[a]){let f=function(a){var b=(0,c.default)();try{return d(b)}catch(b){throw b instanceof TypeError&&b.message.includes("Cannot read properties of null (reading 'use')")?Error(`\`${a}\` is not callable within an async component. Please refer to https://next-intl.dev/docs/environments/server-client-components#async-components`,{cause:b}):b}}("useTranslations");return(0,b.default)(f,a)}a.s(["useTranslations",()=>e],442979)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__a6942102._.js.map
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--gfcpuM_1Pzw0GdWmd_wBd--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/e22b90cf374c3818.js"/><script src="/_next/static/chunks/3dd6d23a48e5d078.js" async=""></script><script src="/_next/static/chunks/726579f2940c2a2f.js" async=""></script><script src="/_next/static/chunks/b133d1854532ff8c.js" async=""></script><script src="/_next/static/chunks/c88fcc5f8b21ff92.js" async=""></script><script src="/_next/static/chunks/turbopack-858efc89e955ca00.js" async=""></script><script src="/_next/static/chunks/d96012bcfc98706a.js" async=""></script><script src="/_next/static/chunks/16ea27c3b926bc31.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/e22b90cf374c3818.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[339756,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n4:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"ViewportBoundary\"]\n9:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"MetadataBoundary\"]\nb:I[168027,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"gfcpuM-1Pzw0GdWmd_wBd\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d96012bcfc98706a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/16ea27c3b926bc31.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--oPsVeqYdA1wqN11b0zbRn--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/e22b90cf374c3818.js"/><script src="/_next/static/chunks/3dd6d23a48e5d078.js" async=""></script><script src="/_next/static/chunks/726579f2940c2a2f.js" async=""></script><script src="/_next/static/chunks/b133d1854532ff8c.js" async=""></script><script src="/_next/static/chunks/c88fcc5f8b21ff92.js" async=""></script><script src="/_next/static/chunks/turbopack-858efc89e955ca00.js" async=""></script><script src="/_next/static/chunks/d96012bcfc98706a.js" async=""></script><script src="/_next/static/chunks/16ea27c3b926bc31.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/e22b90cf374c3818.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[339756,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n4:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"ViewportBoundary\"]\n9:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"MetadataBoundary\"]\nb:I[168027,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"oPsVeqYdA1wqN11b0zbRn\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d96012bcfc98706a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/16ea27c3b926bc31.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"dgxdUCvbI/MlR0rBvoWvSJwOWR3xFh4locGdJMuiSBo=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"RsRYrXKAyr6o1BXKieFAkH91Uher8N1IjIoFnjgxudc=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "dgxdUCvbI/MlR0rBvoWvSJwOWR3xFh4locGdJMuiSBo="
4
+ "encryptionKey": "RsRYrXKAyr6o1BXKieFAkH91Uher8N1IjIoFnjgxudc="
5
5
  }
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,804730,t=>{t.v({name:"omniroute",version:"2.9.1",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:"next build","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:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",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",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","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","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@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.1.6",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"]}})},175696,t=>{"use strict";var e=t.i(861745),s=t.i(843476);function n({locale:t,...n}){if(!t)throw Error(void 0);return(0,s.jsx)(e.IntlProvider,{locale:t,...n})}t.s(["default",()=>n])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,804730,t=>{t.v({name:"omniroute",version:"2.9.2",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:"next build","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:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",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",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","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","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@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.1.6",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"]}})},175696,t=>{"use strict";var e=t.i(861745),s=t.i(843476);function n({locale:t,...n}){if(!t)throw Error(void 0);return(0,s.jsx)(e.IntlProvider,{locale:t,...n})}t.s(["default",()=>n])}]);