omniroute 2.8.0 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__09c944b3._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__167585da._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__3972de72._.js +5 -5
- package/app/.next/server/chunks/[root-of-the-server]__64bd5d97._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__784fb7c5._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__7d9b23e7._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__92cb0def._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__a630d6ef._.js +5 -5
- package/app/.next/server/chunks/[root-of-the-server]__cb8a67d1._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__db2f9fe0._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__dc47ee64._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__f0f9eb3f._.js +2 -2
- package/app/.next/server/chunks/_05c48915._.js +1 -1
- package/app/.next/server/chunks/_1244636c._.js +5 -5
- package/app/.next/server/chunks/_2115d8de._.js +1 -1
- package/app/.next/server/chunks/_3ac953eb._.js +1 -1
- package/app/.next/server/chunks/_4b8fd853._.js +1 -1
- package/app/.next/server/chunks/_68683848._.js +1 -1
- package/app/.next/server/chunks/_ee9b677b._.js +1 -1
- package/app/.next/server/chunks/open-sse_translator_index_ts_f5fd0821._.js +9 -9
- package/app/.next/server/chunks/src_lib_a886ee1f._.js +1 -1
- package/app/.next/server/chunks/src_shared_validation_schemas_ts_4e63863a._.js +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__9affb65e._.js +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
- package/app/.next/server/chunks/ssr/_5a9cd299._.js +1 -1
- package/app/.next/server/chunks/ssr/src_d3225e36._.js +1 -1
- package/app/.next/server/chunks/ssr/src_i18n_messages_zh-CN_json_f4112d90._.js +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/02afac1b585d8219.css +1 -0
- package/app/.next/static/chunks/{d3cb88d181c61235.js → 4bed5b394f9dece9.js} +1 -1
- package/app/.next/static/chunks/{4f099d0f5b0f00d6.js → b5cc103e16794392.js} +1 -1
- package/app/.next/static/chunks/d19ab4efcaddd1db.js +1 -0
- package/app/CHANGELOG.md +20 -0
- package/app/docs/openapi.yaml +1 -1
- package/app/open-sse/executors/kiro.ts +5 -2
- package/app/open-sse/handlers/chatCore.ts +11 -3
- package/app/open-sse/translator/helpers/toolCallHelper.ts +58 -15
- package/app/open-sse/translator/index.ts +10 -3
- package/app/open-sse/utils/stream.ts +129 -19
- package/app/open-sse/utils/usageTracking.ts +3 -1
- package/app/package-lock.json +2 -2
- package/app/package.json +1 -1
- package/app/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +22 -0
- package/app/src/app/api/keys/[id]/route.ts +26 -4
- package/app/src/app/api/provider-models/route.ts +3 -1
- package/app/src/i18n/messages/zh-CN.json +862 -787
- package/app/src/lib/db/models.ts +25 -0
- package/app/src/lib/usage/callLogs.ts +6 -2
- package/app/src/shared/components/RequestLoggerDetail.tsx +10 -10
- package/app/src/shared/validation/schemas.ts +1 -0
- package/app/src/sse/handlers/chat.ts +8 -3
- package/package.json +1 -1
- package/app/.next/static/chunks/194dbd564ba7150b.css +0 -1
- package/app/.next/static/chunks/3f3d822837a5ff5f.js +0 -1
- /package/app/.next/static/{Y1ARupD8_nbYoMt6WYrBO → JoLoKHY_9DVANe7Qs4D0K}/_buildManifest.js +0 -0
- /package/app/.next/static/{Y1ARupD8_nbYoMt6WYrBO → JoLoKHY_9DVANe7Qs4D0K}/_clientMiddlewareManifest.json +0 -0
- /package/app/.next/static/{Y1ARupD8_nbYoMt6WYrBO → JoLoKHY_9DVANe7Qs4D0K}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},442315,(e,t,r)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,r)=>{"use strict";var
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureServerEntryExports",{enumerable:!0,get:function(){return
|
|
1
|
+
module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},442315,(e,t,r)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,r)=>{"use strict";var s=Object.defineProperty,a=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o={},l={RequestCookies:()=>m,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>p,stringifyCookie:()=>c};for(var u in l)s(o,u,{get:l[u],enumerable:!0});function c(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),s=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?s:`${s}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[s,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(s,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,r],...s]=d(e),{domain:a,expires:n,httponly:i,maxage:o,path:l,samesite:u,secure:c,partitioned:p,priority:m}=Object.fromEntries(s.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,v,y={name:t,value:decodeURIComponent(r),domain:a,...n&&{expires:new Date(n)},...i&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...u&&{sameSite:h.includes(g=(g=u).toLowerCase())?g:void 0},...c&&{secure:!0},...m&&{priority:f.includes(v=(v=m).toLowerCase())?v:void 0},...p&&{partitioned:!0}};let e={};for(let t in y)y[t]&&(e[t]=y[t]);return e}}t.exports=((e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of n(t))i.call(e,r)||void 0===r||s(e,r,{get:()=>t[r],enumerable:!(o=a(t,r))||o.enumerable});return e})(s({},"__esModule",{value:!0}),o);var h=["strict","lax","none"],f=["low","medium","high"],m=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let s="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===s).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,s=this._parsed;return s.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(s).map(([e,t])=>c(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>c(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,s;this._parsed=new Map,this._headers=e;const a=null!=(s=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?s:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,s,a,n,i=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,n=!1;l();)if(","===(r=e.charAt(o))){for(s=o,o+=1,l(),a=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(n=!0,o=a,i.push(e.substring(t,s)),t=o):o=s+1}else o+=1;(!n||o>=e.length)&&i.push(e.substring(t,e.length))}return i}(a)){const t=p(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let s="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===s)}has(e){return this._parsed.has(e)}set(...e){let[t,r,s]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...s})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=c(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(c).join("; ")}}},677850,e=>e.a(async(t,r)=>{try{let t=await e.y("zod");e.n(t),r()}catch(e){r(e)}},!0),200392,e=>e.a(async(t,r)=>{try{var s=e.i(677850),a=t([s]);function n(e,t){let r=e.safeParse(t);if(r.success)return{success:!0,data:r.data};let s=Array.isArray(r.error?.issues)?r.error.issues:[];return{success:!1,error:{message:"Invalid request",details:s.map(e=>({field:e.path.join("."),message:e.message}))}}}function i(e){return!1===e.success}[s]=a.then?(await a)():a,s.z.object({password:s.z.string().min(1,"Password is required").max(200)}),e.s(["isValidationFailure",()=>i,"validateBody",()=>n]),r()}catch(e){r(e)}},!1),180725,e=>{"use strict";e.i(245272),e.s([])},997953,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].ReactServerDOMTurbopackServer},745015,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"registerServerReference",{enumerable:!0,get:function(){return s.registerServerReference}});let s=e.r(997953)},195975,(e,t,r)=>{"use strict";function s(e){for(let t=0;t<e.length;t++){let r=e[t];if("function"!=typeof r)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof r}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureServerEntryExports",{enumerable:!0,get:function(){return s}})},428660,e=>e.a(async(t,r)=>{try{var s=e.i(745015),a=e.i(89171);e.i(180725);var n=e.i(542949),i=e.i(676088),o=e.i(200392),l=e.i(195975),u=t([i,o]);async function c(e){try{let{searchParams:t}=new URL(e.url),r=t.get("tool"),s=await (0,n.getMitmAlias)(r||void 0);return a.NextResponse.json({aliases:s})}catch(e){return console.log("Error fetching MITM aliases:",e.message),a.NextResponse.json({error:"Failed to fetch aliases"},{status:500})}}async function d(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,o.validateBody)(i.cliMitmAliasUpdateSchema,t);if((0,o.isValidationFailure)(e))return a.NextResponse.json({error:e.error},{status:400});let{tool:r,mappings:s}=e.data,l={};for(let[e,t]of Object.entries(s))t&&t.trim()&&(l[e]=t.trim());return await (0,n.setMitmAliasAll)(r,l),a.NextResponse.json({success:!0,aliases:l})}catch(e){return console.log("Error saving MITM aliases:",e.message),a.NextResponse.json({error:"Failed to save aliases"},{status:500})}}[i,o]=u.then?(await u)():u,(0,l.ensureServerEntryExports)([c,d]),(0,s.registerServerReference)(c,"409db498c1f5104d61820995e744cd0b9dab9ab8d6",null),(0,s.registerServerReference)(d,"4003fb6d0cb529cd327219e3404f4d242300f4a814",null),e.s(["GET",()=>c,"PUT",()=>d]),r()}catch(e){r(e)}},!1),681974,e=>e.a(async(t,r)=>{try{var s=e.i(747909),a=e.i(174017),n=e.i(996250),i=e.i(759756),o=e.i(561916),l=e.i(174677),u=e.i(869741),c=e.i(316795),d=e.i(487718),p=e.i(995169),h=e.i(47587),f=e.i(666012),m=e.i(570101),g=e.i(626937),v=e.i(10372),y=e.i(193695);e.i(52474);var x=e.i(600220),R=e.i(428660),b=t([R]);[R]=b.then?(await b)():b;let A=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/cli-tools/antigravity-mitm/alias/route",pathname:"/api/cli-tools/antigravity-mitm/alias",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/antigravity-mitm/alias/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:E,workUnitAsyncStorage:C,serverHooks:j}=A;function w(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:C})}async function _(e,t,r){A.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/cli-tools/antigravity-mitm/alias/route";s=s.replace(/\/index$/,"")||"/";let n=await A.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:R,params:b,nextConfig:w,parsedUrl:_,isDraftMode:E,prerenderManifest:C,routerServerContext:j,isOnDemandRevalidate:O,revalidateOnlyGenerated:S,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:N}=n,T=(0,u.normalizeAppPath)(s),M=!!(C.dynamicRoutes[T]||C.routes[P]),q=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,_,!1):t.end("This page could not be found"),null);if(M&&!E){let e=!!C.routes[P],t=C.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(w.experimental.adapterPath)return await q();throw new y.NoFallbackError}}let I=null;!M||A.isDev||E||(I=P,I="/index"===I?"/":I);let U=!0===A.isDev||!M,$=M&&!U;N&&k&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:k,serverActionsManifest:N});let D=e.method||"GET",H=(0,o.getTracer)(),F=H.getActiveScopeSpan(),K={params:b,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:w.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,a)=>A.onRequestError(e,t,s,a,j)},sharedContext:{buildId:R}},L=new c.NodeNextRequest(e),B=new c.NodeNextResponse(t),z=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let n=async e=>A.handle(z,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.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=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${s}`)}),l=!!(0,i.getRequestMeta)(e,"minimalMode"),u=async i=>{var o,u;let c=async({previousCacheEntry:a})=>{try{if(!l&&O&&S&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(i);e.fetchMetrics=K.renderOpts.fetchMetrics;let o=K.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let u=K.renderOpts.collectedTags;if(!M)return await (0,f.sendResponse)(L,B,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[v.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>=v.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==a?void 0:a.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,j),t}},d=await A.handleResponse({req:e,nextConfig:w,cacheKey:I,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:S,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:l});if(!M)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(u=d.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||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 p=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return l&&M||p.delete(v.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,f.sendResponse)(L,B,new Response(d.value.body,{headers:p,status:d.value.status||200})),null};F?await u(F):await H.withPropagatedContext(e.headers,()=>H.trace(p.BaseServerSpan.handleRequest,{spanName:`${D} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},u))}catch(t){if(t instanceof y.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:O})},!1,j),M)throw t;return await (0,f.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>w,"routeModule",()=>A,"serverHooks",()=>j,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>C]),r()}catch(e){r(e)}},!1),606102,e=>{e.v(e=>Promise.resolve().then(()=>e(548941)))},789543,e=>{e.v(e=>Promise.resolve().then(()=>e(385498)))},579042,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_utils_apiKey_ts_fa113e09._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_65de0558._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__92cb0def._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[878947,e=>{"use strict";var t=e.i(828059);let r=(0,t.generateModels)(),n=(0,t.generateAliasMap)();function a(e){return r[e]||[]}function i(e){let t=r[e];return t?.[0]?.id||null}function o(e,t,n=new Set){if(n.has(e))return!0;let a=r[e];return!!a&&a.some(e=>e.id===t)}function l(e,t){let n=r[e];if(!n)return t;let a=n.find(e=>e.id===t);return a?.name||t}function s(e,t){let n=r[e];if(!n)return null;let a=n.find(e=>e.id===t);return a?.targetFormat||null}function c(e){return r[n[e]||e]||[]}e.s(["PROVIDER_ID_TO_ALIAS",0,n,"PROVIDER_MODELS",0,r,"findModelName",()=>l,"getDefaultModel",()=>i,"getModelTargetFormat",()=>s,"getModelsByProviderId",()=>c,"getProviderModels",()=>a,"isValidModel",()=>o])},403122,e=>{"use strict";class t{cache=new Map;ttlMs;constructor(e){this.ttlMs=e}get(e){let t=this.cache.get(e);if(t)return Date.now()>t.expiresAt?void this.cache.delete(e):t.value}set(e,t){this.cache.set(e,{value:t,expiresAt:Date.now()+this.ttlMs})}invalidate(e){e?this.cache.delete(e):this.cache.clear()}}let r=new t(5e3),n=new t(3e4),a=new t(5e3);async function i(){let t=r.get("settings");if(t)return t;let{getSettings:n}=await e.A(606102),a=await n();return r.set("settings",a),a}async function o(){let t=n.get("pricing");if(t)return t;let{getPricing:r}=await e.A(606102),a=await r();return n.set("pricing",a),a}async function l(t){if(t&&Object.keys(t).length>0){let{getProviderConnections:r}=await e.A(789543);return r(t)}let r=a.get("all");if(r)return r;let{getProviderConnections:n}=await e.A(789543),i=await n();return a.set("all",i),i}function s(e){e&&"settings"!==e||r.invalidate(),e&&"pricing"!==e||n.invalidate(),e&&"connections"!==e||a.invalidate()}e.s(["getCachedPricing",()=>o,"getCachedProviderConnections",()=>l,"getCachedSettings",()=>i,"invalidateDbCache",()=>s])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},935050,91429,e=>{"use strict";var t=e.i(785148),r=e.i(814747),n=e.i(522734),a=e.i(157763);let i=new Set;function o(e){i.add(e)}function l(){for(let e of i)try{e()}catch(e){console.warn("[DB] Failed to reset module state:",e)}}e.s(["registerDbStateResetter",()=>o,"resetAllDbModuleState",()=>l],91429);let s=0;function c(e="auto"){try{if(a.isBuildPhase||a.isCloud||!a.SQLITE_FILE||!n.default.existsSync(a.SQLITE_FILE))return null;let t=n.default.statSync(a.SQLITE_FILE);if(t.size<4096)return console.warn(`[DB] Backup SKIPPED — DB too small (${t.size}B)`),null;let i=Date.now();if("manual"!==e&&"pre-restore"!==e&&i-s<36e5)return null;s=i;let o=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");n.default.existsSync(o)||n.default.mkdirSync(o,{recursive:!0});let l=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();if(l.length>0){let e=l[l.length-1],a=n.default.statSync(r.default.join(o,e));if(a.size>4096&&t.size<.5*a.size)return console.warn(`[DB] Backup SKIPPED — DB shrank from ${a.size}B to ${t.size}B`),null}let c=new Date().toISOString().replace(/[:.]/g,"-"),u=r.default.join(o,`db_${c}_${e}.sqlite`);(0,a.getDbInstance)().backup(u).then(()=>{console.log(`[DB] Backup created: ${u} (${t.size} bytes)`)}).catch(e=>{let t=e instanceof Error?e.message:String(e);console.error("[DB] Backup failed:",t)});let d=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();for(;d.length>20;){let e=0,t=1/0;for(let a=0;a<d.length-1;a++)try{let i=n.default.statSync(r.default.join(o,d[a]));i.size<t&&(t=i.size,e=a)}catch{e=a;break}try{n.default.unlinkSync(r.default.join(o,d[e]))}catch{}d.splice(e,1)}return{filename:r.default.basename(u),size:t.size}}catch(e){return console.error("[DB] Backup failed:",e instanceof Error?e.message:String(e)),null}}async function u(){let e=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");try{if(!n.default.existsSync(e))return[];return n.default.readdirSync(e).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort().reverse().map(a=>{let i=r.default.join(e,a),o=n.default.statSync(i),l=a.match(/^db_(.+?)_([^.]+)\.sqlite$/),s=l?l[2]:"unknown",c=0;try{let e=new t.default(i,{readonly:!0}),r=e.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get();c=r?.cnt||0,e.close()}catch{}return{id:a,filename:a,createdAt:o.mtime.toISOString(),size:o.size,reason:s,connectionCount:c}})}catch{return[]}}async function d(e){let i=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");if(!e.startsWith("db_")||!e.endsWith(".sqlite")||e.includes(r.default.sep)||e.includes("/"))throw Error("Invalid backup ID");let o=r.default.resolve(i,e);if(!o.startsWith(r.default.resolve(i)+r.default.sep)&&o!==r.default.resolve(i))throw Error("Invalid backup ID: path traversal detected");if(!n.default.existsSync(o))throw Error(`Backup not found: ${e}`);try{let e=new t.default(o,{readonly:!0}),r=e.pragma("integrity_check");if(e.close(),r[0]?.integrity_check!=="ok")throw Error("Backup integrity check failed")}catch(t){if(t instanceof Error&&"Backup integrity check failed"===t.message)throw t;let e=t instanceof Error?t.message:String(t);throw Error(`Backup file is corrupt: ${e}`)}s=0,c("pre-restore"),(0,a.resetDbInstance)(),l();let u=a.SQLITE_FILE;if(!u)throw Error("SQLITE_FILE is unavailable in local backup restore");for(let e of[u,`${u}-wal`,`${u}-shm`,`${u}-journal`])e&&n.default.existsSync(e)&&n.default.unlinkSync(e);n.default.copyFileSync(o,u);let d=(0,a.getDbInstance)(),p=d.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get()?.cnt||0,f=d.prepare("SELECT COUNT(*) as cnt FROM provider_nodes").get()?.cnt||0,y=d.prepare("SELECT COUNT(*) as cnt FROM combos").get()?.cnt||0,E=d.prepare("SELECT COUNT(*) as cnt FROM api_keys").get()?.cnt||0;return console.log(`[DB] Restored backup: ${e} (${p} connections)`),{restored:!0,backupId:e,connectionCount:p,nodeCount:f,comboCount:y,apiKeyCount:E}}e.s(["backupDbFile",()=>c,"listDbBackups",()=>u,"restoreDbBackup",()=>d],935050)},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},730901,684076,e=>{"use strict";let t=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;e.s(["default",0,function(e){return"string"==typeof e&&t.test(e)}],684076);let r=[];for(let e=0;e<256;++e)r.push((e+256).toString(16).slice(1));function n(e,t=0){return(r[e[t+0]]+r[e[t+1]]+r[e[t+2]]+r[e[t+3]]+"-"+r[e[t+4]]+r[e[t+5]]+"-"+r[e[t+6]]+r[e[t+7]]+"-"+r[e[t+8]]+r[e[t+9]]+"-"+r[e[t+10]]+r[e[t+11]]+r[e[t+12]]+r[e[t+13]]+r[e[t+14]]+r[e[t+15]]).toLowerCase()}e.s(["unsafeStringify",()=>n],730901)},689960,e=>{"use strict";var t=e.i(666680);let r={randomUUID:t.randomUUID},n=new Uint8Array(256),a=n.length;var i=e.i(730901);e.s(["v4",0,function(e,o,l){if(r.randomUUID&&!o&&!e)return r.randomUUID();var s=e,c=l;let u=(s=s||{}).random??s.rng?.()??(a>n.length-16&&((0,t.randomFillSync)(n),a=0),n.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,o){if((c=c||0)<0||c+16>o.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let e=0;e<16;++e)o[c+e]=u[e];return o}return(0,i.unsafeStringify)(u)}],689960)},385498,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050),a=e.i(254799);let i="aes-256-gcm",o="enc:v1:",l=null;function s(){if(null!==l)return l;let e=process.env.STORAGE_ENCRYPTION_KEY;return e?l=(0,a.scryptSync)(e,"omniroute-field-encryption-v1",32):null}function c(){return!!process.env.STORAGE_ENCRYPTION_KEY}function u(e){if(!e||"string"!=typeof e)return e;let t=s();if(!t||e.startsWith(o))return e;let r=(0,a.randomBytes)(16),n=(0,a.createCipheriv)(i,t,r),l=n.update(e,"utf8","hex");l+=n.final("hex");let c=n.getAuthTag().toString("hex");return`${o}${r.toString("hex")}:${l}:${c}`}function d(e){if(!e||"string"!=typeof e||!e.startsWith(o))return e;let t=s();if(!t)return console.warn("[Encryption] Found encrypted data but STORAGE_ENCRYPTION_KEY is not set. Cannot decrypt."),e;let r=e.slice(o.length).split(":");if(3!==r.length)return console.error("[Encryption] Malformed encrypted value"),e;let[n,l,c]=r;try{let e=Buffer.from(n,"hex"),r=Buffer.from(c,"hex"),o=(0,a.createDecipheriv)(i,t,e);o.setAuthTag(r);let s=o.update(l,"hex","utf8");return s+=o.final("utf8")}catch(t){return console.error("[Encryption] Decryption failed:",t instanceof Error?t.message:String(t)),e}}function p(e){return c()&&e&&(e.apiKey&&(e.apiKey=u(e.apiKey)),e.accessToken&&(e.accessToken=u(e.accessToken)),e.refreshToken&&(e.refreshToken=u(e.refreshToken)),e.idToken&&(e.idToken=u(e.idToken))),e}function f(e){return e&&c()?{...e,apiKey:d(e.apiKey),accessToken:d(e.accessToken),refreshToken:d(e.refreshToken),idToken:d(e.idToken)}:e}var y=e.i(403122);function E(e){return e&&"object"==typeof e?e:{}}function g(e){return"string"==typeof e?e:null}async function _(e={}){let t=(0,r.getDbInstance)(),n="SELECT * FROM provider_connections",a=[],i={};return e.provider&&(a.push("provider = @provider"),i.provider=e.provider),void 0!==e.isActive&&(a.push("is_active = @isActive"),i.isActive=+!!e.isActive),a.length>0&&(n+=" WHERE "+a.join(" AND ")),n+=" ORDER BY priority ASC, updated_at DESC",t.prepare(n).all(i).map(e=>f((0,r.cleanNulls)((0,r.rowToCamel)(e))))}async function v(e){let t=(0,r.getDbInstance)().prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);return t?f((0,r.cleanNulls)((0,r.rowToCamel)(t))):null}async function m(e){var a,i,o;let l=(0,r.getDbInstance)(),s=new Date().toISOString(),c=null;if("oauth"===e.authType&&e.email){let t=g(E(e.providerSpecificData).workspaceId);"codex"===e.provider&&t?(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND email = ?").get(e.provider,t,e.email)||null)||(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND (email IS NULL OR email = '')").get(e.provider,t)||null):c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND email = ?").get(e.provider,e.email)||null}else"apikey"===e.authType&&e.name&&(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'apikey' AND name = ?").get(e.provider,e.name)||null);if(c){let t=g(c.id);if(!t)return null;let a={...E((0,r.rowToCamel)(c)),...e,updatedAt:s};return h(l,t,a),(0,n.backupDbFile)("pre-write"),(0,r.cleanNulls)(a)}let u=e.name||null;!u&&"oauth"===e.authType&&(e.email?u=e.email:e.displayName&&(u=e.displayName));let d=e.priority;if(!d){d=("number"==typeof(a=E(l.prepare("SELECT MAX(priority) as maxP FROM provider_connections WHERE provider = ?").get(e.provider)).maxP)?a:0)+1}let f={id:(0,t.v4)(),provider:e.provider,authType:e.authType||"oauth",name:u,priority:d,isActive:void 0===e.isActive||e.isActive,createdAt:s,updatedAt:s};for(let t of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","lastErrorType","lastErrorSource","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","rateLimitProtection","group"])void 0!==e[t]&&null!==e[t]&&(f[t]=e[t]);e.providerSpecificData&&Object.keys(e.providerSpecificData).length>0&&(f.providerSpecificData=e.providerSpecificData),i=l,o=p({...f}),i.prepare(`
|
|
1
|
+
module.exports=[878947,e=>{"use strict";var t=e.i(828059);let r=(0,t.generateModels)(),n=(0,t.generateAliasMap)();function a(e){return r[e]||[]}function i(e){let t=r[e];return t?.[0]?.id||null}function o(e,t,n=new Set){if(n.has(e))return!0;let a=r[e];return!!a&&a.some(e=>e.id===t)}function l(e,t){let n=r[e];if(!n)return t;let a=n.find(e=>e.id===t);return a?.name||t}function s(e,t){let n=r[e];if(!n)return null;let a=n.find(e=>e.id===t);return a?.targetFormat||null}function c(e){return r[n[e]||e]||[]}e.s(["PROVIDER_ID_TO_ALIAS",0,n,"PROVIDER_MODELS",0,r,"findModelName",()=>l,"getDefaultModel",()=>i,"getModelTargetFormat",()=>s,"getModelsByProviderId",()=>c,"getProviderModels",()=>a,"isValidModel",()=>o])},403122,e=>{"use strict";class t{cache=new Map;ttlMs;constructor(e){this.ttlMs=e}get(e){let t=this.cache.get(e);if(t)return Date.now()>t.expiresAt?void this.cache.delete(e):t.value}set(e,t){this.cache.set(e,{value:t,expiresAt:Date.now()+this.ttlMs})}invalidate(e){e?this.cache.delete(e):this.cache.clear()}}let r=new t(5e3),n=new t(3e4),a=new t(5e3);async function i(){let t=r.get("settings");if(t)return t;let{getSettings:n}=await e.A(606102),a=await n();return r.set("settings",a),a}async function o(){let t=n.get("pricing");if(t)return t;let{getPricing:r}=await e.A(606102),a=await r();return n.set("pricing",a),a}async function l(t){if(t&&Object.keys(t).length>0){let{getProviderConnections:r}=await e.A(789543);return r(t)}let r=a.get("all");if(r)return r;let{getProviderConnections:n}=await e.A(789543),i=await n();return a.set("all",i),i}function s(e){e&&"settings"!==e||r.invalidate(),e&&"pricing"!==e||n.invalidate(),e&&"connections"!==e||a.invalidate()}e.s(["getCachedPricing",()=>o,"getCachedProviderConnections",()=>l,"getCachedSettings",()=>i,"invalidateDbCache",()=>s])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},935050,91429,e=>{"use strict";var t=e.i(785148),r=e.i(814747),n=e.i(522734),a=e.i(157763);let i=new Set;function o(e){i.add(e)}function l(){for(let e of i)try{e()}catch(e){console.warn("[DB] Failed to reset module state:",e)}}e.s(["registerDbStateResetter",()=>o,"resetAllDbModuleState",()=>l],91429);let s=0;function c(e="auto"){try{if(a.isBuildPhase||a.isCloud||!a.SQLITE_FILE||!n.default.existsSync(a.SQLITE_FILE))return null;let t=n.default.statSync(a.SQLITE_FILE);if(t.size<4096)return console.warn(`[DB] Backup SKIPPED — DB too small (${t.size}B)`),null;let i=Date.now();if("manual"!==e&&"pre-restore"!==e&&i-s<36e5)return null;s=i;let o=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");n.default.existsSync(o)||n.default.mkdirSync(o,{recursive:!0});let l=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();if(l.length>0){let e=l[l.length-1],a=n.default.statSync(r.default.join(o,e));if(a.size>4096&&t.size<.5*a.size)return console.warn(`[DB] Backup SKIPPED — DB shrank from ${a.size}B to ${t.size}B`),null}let c=new Date().toISOString().replace(/[:.]/g,"-"),u=r.default.join(o,`db_${c}_${e}.sqlite`);(0,a.getDbInstance)().backup(u).then(()=>{console.log(`[DB] Backup created: ${u} (${t.size} bytes)`)}).catch(e=>{let t=e instanceof Error?e.message:String(e);console.error("[DB] Backup failed:",t)});let d=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();for(;d.length>20;){let e=0,t=1/0;for(let a=0;a<d.length-1;a++)try{let i=n.default.statSync(r.default.join(o,d[a]));i.size<t&&(t=i.size,e=a)}catch{e=a;break}try{n.default.unlinkSync(r.default.join(o,d[e]))}catch{}d.splice(e,1)}return{filename:r.default.basename(u),size:t.size}}catch(e){return console.error("[DB] Backup failed:",e instanceof Error?e.message:String(e)),null}}async function u(){let e=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");try{if(!n.default.existsSync(e))return[];return n.default.readdirSync(e).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort().reverse().map(a=>{let i=r.default.join(e,a),o=n.default.statSync(i),l=a.match(/^db_(.+?)_([^.]+)\.sqlite$/),s=l?l[2]:"unknown",c=0;try{let e=new t.default(i,{readonly:!0}),r=e.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get();c=r?.cnt||0,e.close()}catch{}return{id:a,filename:a,createdAt:o.mtime.toISOString(),size:o.size,reason:s,connectionCount:c}})}catch{return[]}}async function d(e){let i=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");if(!e.startsWith("db_")||!e.endsWith(".sqlite")||e.includes(r.default.sep)||e.includes("/"))throw Error("Invalid backup ID");let o=r.default.resolve(i,e);if(!o.startsWith(r.default.resolve(i)+r.default.sep)&&o!==r.default.resolve(i))throw Error("Invalid backup ID: path traversal detected");if(!n.default.existsSync(o))throw Error(`Backup not found: ${e}`);try{let e=new t.default(o,{readonly:!0}),r=e.pragma("integrity_check");if(e.close(),r[0]?.integrity_check!=="ok")throw Error("Backup integrity check failed")}catch(t){if(t instanceof Error&&"Backup integrity check failed"===t.message)throw t;let e=t instanceof Error?t.message:String(t);throw Error(`Backup file is corrupt: ${e}`)}s=0,c("pre-restore"),(0,a.resetDbInstance)(),l();let u=a.SQLITE_FILE;if(!u)throw Error("SQLITE_FILE is unavailable in local backup restore");for(let e of[u,`${u}-wal`,`${u}-shm`,`${u}-journal`])e&&n.default.existsSync(e)&&n.default.unlinkSync(e);n.default.copyFileSync(o,u);let d=(0,a.getDbInstance)(),p=d.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get()?.cnt||0,f=d.prepare("SELECT COUNT(*) as cnt FROM provider_nodes").get()?.cnt||0,y=d.prepare("SELECT COUNT(*) as cnt FROM combos").get()?.cnt||0,E=d.prepare("SELECT COUNT(*) as cnt FROM api_keys").get()?.cnt||0;return console.log(`[DB] Restored backup: ${e} (${p} connections)`),{restored:!0,backupId:e,connectionCount:p,nodeCount:f,comboCount:y,apiKeyCount:E}}e.s(["backupDbFile",()=>c,"listDbBackups",()=>u,"restoreDbBackup",()=>d],935050)},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},730901,684076,e=>{"use strict";let t=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;e.s(["default",0,function(e){return"string"==typeof e&&t.test(e)}],684076);let r=[];for(let e=0;e<256;++e)r.push((e+256).toString(16).slice(1));function n(e,t=0){return(r[e[t+0]]+r[e[t+1]]+r[e[t+2]]+r[e[t+3]]+"-"+r[e[t+4]]+r[e[t+5]]+"-"+r[e[t+6]]+r[e[t+7]]+"-"+r[e[t+8]]+r[e[t+9]]+"-"+r[e[t+10]]+r[e[t+11]]+r[e[t+12]]+r[e[t+13]]+r[e[t+14]]+r[e[t+15]]).toLowerCase()}e.s(["unsafeStringify",()=>n],730901)},689960,e=>{"use strict";var t=e.i(666680);let r={randomUUID:t.randomUUID},n=new Uint8Array(256),a=n.length;var i=e.i(730901);e.s(["v4",0,function(e,o,l){if(r.randomUUID&&!o&&!e)return r.randomUUID();var s=e,c=l;let u=(s=s||{}).random??s.rng?.()??(a>n.length-16&&((0,t.randomFillSync)(n),a=0),n.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,o){if((c=c||0)<0||c+16>o.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let e=0;e<16;++e)o[c+e]=u[e];return o}return(0,i.unsafeStringify)(u)}],689960)},385498,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050),a=e.i(254799);let i="aes-256-gcm",o="enc:v1:",l=null;function s(){if(null!==l)return l;let e=process.env.STORAGE_ENCRYPTION_KEY;return e?l=(0,a.scryptSync)(e,"omniroute-field-encryption-v1",32):null}function c(){return!!process.env.STORAGE_ENCRYPTION_KEY}function u(e){if(!e||"string"!=typeof e)return e;let t=s();if(!t||e.startsWith(o))return e;let r=(0,a.randomBytes)(16),n=(0,a.createCipheriv)(i,t,r),l=n.update(e,"utf8","hex");l+=n.final("hex");let c=n.getAuthTag().toString("hex");return`${o}${r.toString("hex")}:${l}:${c}`}function d(e){if(!e||"string"!=typeof e||!e.startsWith(o))return e;let t=s();if(!t)return console.warn("[Encryption] Found encrypted data but STORAGE_ENCRYPTION_KEY is not set. Cannot decrypt."),e;let r=e.slice(o.length).split(":");if(3!==r.length)return console.error("[Encryption] Malformed encrypted value"),e;let[n,l,c]=r;try{let e=Buffer.from(n,"hex"),r=Buffer.from(c,"hex"),o=(0,a.createDecipheriv)(i,t,e);o.setAuthTag(r);let s=o.update(l,"hex","utf8");return s+=o.final("utf8")}catch(t){return console.error("[Encryption] Decryption failed:",t instanceof Error?t.message:String(t)),e}}function p(e){return c()&&e&&(e.apiKey&&(e.apiKey=u(e.apiKey)),e.accessToken&&(e.accessToken=u(e.accessToken)),e.refreshToken&&(e.refreshToken=u(e.refreshToken)),e.idToken&&(e.idToken=u(e.idToken))),e}function f(e){return e&&c()?{...e,apiKey:d(e.apiKey),accessToken:d(e.accessToken),refreshToken:d(e.refreshToken),idToken:d(e.idToken)}:e}var y=e.i(403122);function E(e){return e&&"object"==typeof e?e:{}}function g(e){return"string"==typeof e?e:null}async function v(e={}){let t=(0,r.getDbInstance)(),n="SELECT * FROM provider_connections",a=[],i={};return e.provider&&(a.push("provider = @provider"),i.provider=e.provider),void 0!==e.isActive&&(a.push("is_active = @isActive"),i.isActive=+!!e.isActive),a.length>0&&(n+=" WHERE "+a.join(" AND ")),n+=" ORDER BY priority ASC, updated_at DESC",t.prepare(n).all(i).map(e=>f((0,r.cleanNulls)((0,r.rowToCamel)(e))))}async function _(e){let t=(0,r.getDbInstance)().prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);return t?f((0,r.cleanNulls)((0,r.rowToCamel)(t))):null}async function m(e){var a,i,o;let l=(0,r.getDbInstance)(),s=new Date().toISOString(),c=null;if("oauth"===e.authType&&e.email){let t=g(E(e.providerSpecificData).workspaceId);"codex"===e.provider&&t?(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND email = ?").get(e.provider,t,e.email)||null)||(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND (email IS NULL OR email = '')").get(e.provider,t)||null):c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND email = ?").get(e.provider,e.email)||null}else"apikey"===e.authType&&e.name&&(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'apikey' AND name = ?").get(e.provider,e.name)||null);if(c){let t=g(c.id);if(!t)return null;let a={...E((0,r.rowToCamel)(c)),...e,updatedAt:s};return h(l,t,a),(0,n.backupDbFile)("pre-write"),(0,r.cleanNulls)(a)}let u=e.name||null;!u&&"oauth"===e.authType&&(e.email?u=e.email:e.displayName&&(u=e.displayName));let d=e.priority;if(!d){d=("number"==typeof(a=E(l.prepare("SELECT MAX(priority) as maxP FROM provider_connections WHERE provider = ?").get(e.provider)).maxP)?a:0)+1}let f={id:(0,t.v4)(),provider:e.provider,authType:e.authType||"oauth",name:u,priority:d,isActive:void 0===e.isActive||e.isActive,createdAt:s,updatedAt:s};for(let t of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","lastErrorType","lastErrorSource","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","rateLimitProtection","group"])void 0!==e[t]&&null!==e[t]&&(f[t]=e[t]);e.providerSpecificData&&Object.keys(e.providerSpecificData).length>0&&(f.providerSpecificData=e.providerSpecificData),i=l,o=p({...f}),i.prepare(`
|
|
2
2
|
INSERT INTO provider_connections (
|
|
3
3
|
id, provider, auth_type, name, email, priority, is_active,
|
|
4
4
|
access_token, refresh_token, expires_at, token_expires_at,
|
|
@@ -18,7 +18,7 @@ module.exports=[878947,e=>{"use strict";var t=e.i(828059);let r=(0,t.generateMod
|
|
|
18
18
|
@expiresIn, @displayName, @globalPriority, @defaultModel,
|
|
19
19
|
@tokenType, @consecutiveUseCount, @rateLimitProtection, @lastUsedAt, @group, @createdAt, @updatedAt
|
|
20
20
|
)
|
|
21
|
-
`).run({id:o.id,provider:o.provider,authType:o.authType||null,name:o.name||null,email:o.email||null,priority:o.priority||0,isActive:+(!1!==o.isActive),accessToken:o.accessToken||null,refreshToken:o.refreshToken||null,expiresAt:o.expiresAt||null,tokenExpiresAt:o.tokenExpiresAt||null,scope:o.scope||null,projectId:o.projectId||null,testStatus:o.testStatus||null,errorCode:o.errorCode||null,lastError:o.lastError||null,lastErrorAt:o.lastErrorAt||null,lastErrorType:o.lastErrorType||null,lastErrorSource:o.lastErrorSource||null,backoffLevel:o.backoffLevel||0,rateLimitedUntil:o.rateLimitedUntil||null,healthCheckInterval:o.healthCheckInterval||null,lastHealthCheckAt:o.lastHealthCheckAt||null,lastTested:o.lastTested||null,apiKey:o.apiKey||null,idToken:o.idToken||null,providerSpecificData:o.providerSpecificData?JSON.stringify(o.providerSpecificData):null,expiresIn:o.expiresIn||null,displayName:o.displayName||null,globalPriority:o.globalPriority||null,defaultModel:o.defaultModel||null,tokenType:o.tokenType||null,consecutiveUseCount:o.consecutiveUseCount||0,rateLimitProtection:+(!0===o.rateLimitProtection||1===o.rateLimitProtection),lastUsedAt:o.lastUsedAt||null,group:o.group||null,createdAt:o.createdAt,updatedAt:o.updatedAt});let
|
|
21
|
+
`).run({id:o.id,provider:o.provider,authType:o.authType||null,name:o.name||null,email:o.email||null,priority:o.priority||0,isActive:+(!1!==o.isActive),accessToken:o.accessToken||null,refreshToken:o.refreshToken||null,expiresAt:o.expiresAt||null,tokenExpiresAt:o.tokenExpiresAt||null,scope:o.scope||null,projectId:o.projectId||null,testStatus:o.testStatus||null,errorCode:o.errorCode||null,lastError:o.lastError||null,lastErrorAt:o.lastErrorAt||null,lastErrorType:o.lastErrorType||null,lastErrorSource:o.lastErrorSource||null,backoffLevel:o.backoffLevel||0,rateLimitedUntil:o.rateLimitedUntil||null,healthCheckInterval:o.healthCheckInterval||null,lastHealthCheckAt:o.lastHealthCheckAt||null,lastTested:o.lastTested||null,apiKey:o.apiKey||null,idToken:o.idToken||null,providerSpecificData:o.providerSpecificData?JSON.stringify(o.providerSpecificData):null,expiresIn:o.expiresIn||null,displayName:o.displayName||null,globalPriority:o.globalPriority||null,defaultModel:o.defaultModel||null,tokenType:o.tokenType||null,consecutiveUseCount:o.consecutiveUseCount||0,rateLimitProtection:+(!0===o.rateLimitProtection||1===o.rateLimitProtection),lastUsedAt:o.lastUsedAt||null,group:o.group||null,createdAt:o.createdAt,updatedAt:o.updatedAt});let v=g(e.provider);return v&&D(l,v),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),(0,r.cleanNulls)(f)}function h(e,t,r){let n=r.updatedAt||new Date().toISOString();e.prepare(`
|
|
22
22
|
UPDATE provider_connections SET
|
|
23
23
|
provider = @provider, auth_type = @authType, name = @name, email = @email,
|
|
24
24
|
priority = @priority, is_active = @isActive, access_token = @accessToken,
|
|
@@ -37,14 +37,14 @@ module.exports=[878947,e=>{"use strict";var t=e.i(828059);let r=(0,t.generateMod
|
|
|
37
37
|
"group" = @group,
|
|
38
38
|
updated_at = @updatedAt
|
|
39
39
|
WHERE id = @id
|
|
40
|
-
`).run({id:t,provider:r.provider,authType:r.authType||null,name:r.name||null,email:r.email||null,priority:r.priority||0,isActive:+(!1!==r.isActive),accessToken:r.accessToken||null,refreshToken:r.refreshToken||null,expiresAt:r.expiresAt||null,tokenExpiresAt:r.tokenExpiresAt||null,scope:r.scope||null,projectId:r.projectId||null,testStatus:r.testStatus||null,errorCode:r.errorCode||null,lastError:r.lastError||null,lastErrorAt:r.lastErrorAt||null,lastErrorType:r.lastErrorType||null,lastErrorSource:r.lastErrorSource||null,backoffLevel:r.backoffLevel||0,rateLimitedUntil:r.rateLimitedUntil||null,healthCheckInterval:r.healthCheckInterval||null,lastHealthCheckAt:r.lastHealthCheckAt||null,lastTested:r.lastTested||null,apiKey:r.apiKey||null,idToken:r.idToken||null,providerSpecificData:r.providerSpecificData?JSON.stringify(r.providerSpecificData):null,expiresIn:r.expiresIn||null,displayName:r.displayName||null,globalPriority:r.globalPriority||null,defaultModel:r.defaultModel||null,tokenType:r.tokenType||null,consecutiveUseCount:r.consecutiveUseCount||0,rateLimitProtection:+(!0===r.rateLimitProtection||1===r.rateLimitProtection),lastUsedAt:r.lastUsedAt||null,group:r.group||null,updatedAt:n})}async function S(e,t){let a=(0,r.getDbInstance)(),i=a.prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);if(!i)return null;let o={...(0,r.rowToCamel)(i),...t,updatedAt:new Date().toISOString()};if(h(a,e,p({...o})),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),void 0!==t.priority){let e=E(i);D(a,"string"==typeof e.provider?e.provider:String(e.provider||""))}return(0,r.cleanNulls)(o)}async function k(e){let t=(0,r.getDbInstance)(),a=t.prepare("SELECT provider FROM provider_connections WHERE id = ?").get(e);if(!a)return!1;t.prepare("DELETE FROM provider_connections WHERE id = ?").run(e);let i=E(a);return D(t,"string"==typeof i.provider?i.provider:String(i.provider||"")),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),!0}async function A(e){let t=(0,r.getDbInstance)().prepare("DELETE FROM provider_connections WHERE provider = ?").run(e);return(0,n.backupDbFile)("pre-write"),t.changes}async function T(e){D((0,r.getDbInstance)(),e)}function D(e,t){let r=e.prepare("SELECT id, priority, updated_at FROM provider_connections WHERE provider = ? ORDER BY priority ASC, updated_at DESC").all(t),n=e.prepare("UPDATE provider_connections SET priority = ? WHERE id = ?");r.forEach((e,t)=>{let r=E(e);n.run(t+1,r.id)})}async function b(){return 0}async function C(){return(0,r.getDbInstance)().prepare('SELECT DISTINCT "group" FROM provider_connections WHERE "group" IS NOT NULL ORDER BY "group"').all().map(e=>String(e.group??"")).filter(Boolean)}async function I(e={}){let t=(0,r.getDbInstance)(),n="SELECT * FROM provider_nodes",a={};return e.type&&(n+=" WHERE type = @type",a.type=e.type),t.prepare(n).all(a).map(r.rowToCamel)}async function R(e){let t=(0,r.getDbInstance)().prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);return t?(0,r.rowToCamel)(t):null}async function
|
|
40
|
+
`).run({id:t,provider:r.provider,authType:r.authType||null,name:r.name||null,email:r.email||null,priority:r.priority||0,isActive:+(!1!==r.isActive),accessToken:r.accessToken||null,refreshToken:r.refreshToken||null,expiresAt:r.expiresAt||null,tokenExpiresAt:r.tokenExpiresAt||null,scope:r.scope||null,projectId:r.projectId||null,testStatus:r.testStatus||null,errorCode:r.errorCode||null,lastError:r.lastError||null,lastErrorAt:r.lastErrorAt||null,lastErrorType:r.lastErrorType||null,lastErrorSource:r.lastErrorSource||null,backoffLevel:r.backoffLevel||0,rateLimitedUntil:r.rateLimitedUntil||null,healthCheckInterval:r.healthCheckInterval||null,lastHealthCheckAt:r.lastHealthCheckAt||null,lastTested:r.lastTested||null,apiKey:r.apiKey||null,idToken:r.idToken||null,providerSpecificData:r.providerSpecificData?JSON.stringify(r.providerSpecificData):null,expiresIn:r.expiresIn||null,displayName:r.displayName||null,globalPriority:r.globalPriority||null,defaultModel:r.defaultModel||null,tokenType:r.tokenType||null,consecutiveUseCount:r.consecutiveUseCount||0,rateLimitProtection:+(!0===r.rateLimitProtection||1===r.rateLimitProtection),lastUsedAt:r.lastUsedAt||null,group:r.group||null,updatedAt:n})}async function S(e,t){let a=(0,r.getDbInstance)(),i=a.prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);if(!i)return null;let o={...(0,r.rowToCamel)(i),...t,updatedAt:new Date().toISOString()};if(h(a,e,p({...o})),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),void 0!==t.priority){let e=E(i);D(a,"string"==typeof e.provider?e.provider:String(e.provider||""))}return(0,r.cleanNulls)(o)}async function k(e){let t=(0,r.getDbInstance)(),a=t.prepare("SELECT provider FROM provider_connections WHERE id = ?").get(e);if(!a)return!1;t.prepare("DELETE FROM provider_connections WHERE id = ?").run(e);let i=E(a);return D(t,"string"==typeof i.provider?i.provider:String(i.provider||"")),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),!0}async function A(e){let t=(0,r.getDbInstance)().prepare("DELETE FROM provider_connections WHERE provider = ?").run(e);return(0,n.backupDbFile)("pre-write"),t.changes}async function T(e){D((0,r.getDbInstance)(),e)}function D(e,t){let r=e.prepare("SELECT id, priority, updated_at FROM provider_connections WHERE provider = ? ORDER BY priority ASC, updated_at DESC").all(t),n=e.prepare("UPDATE provider_connections SET priority = ? WHERE id = ?");r.forEach((e,t)=>{let r=E(e);n.run(t+1,r.id)})}async function b(){return 0}async function C(){return(0,r.getDbInstance)().prepare('SELECT DISTINCT "group" FROM provider_connections WHERE "group" IS NOT NULL ORDER BY "group"').all().map(e=>String(e.group??"")).filter(Boolean)}async function I(e={}){let t=(0,r.getDbInstance)(),n="SELECT * FROM provider_nodes",a={};return e.type&&(n+=" WHERE type = @type",a.type=e.type),t.prepare(n).all(a).map(r.rowToCamel)}async function R(e){let t=(0,r.getDbInstance)().prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);return t?(0,r.rowToCamel)(t):null}async function N(e){let a=(0,r.getDbInstance)(),i=new Date().toISOString(),o={id:e.id||(0,t.v4)(),type:e.type,name:e.name,prefix:e.prefix||null,apiType:e.apiType||null,baseUrl:e.baseUrl||null,chatPath:e.chatPath||null,modelsPath:e.modelsPath||null,createdAt:i,updatedAt:i};return a.prepare(`
|
|
41
41
|
INSERT INTO provider_nodes (id, type, name, prefix, api_type, base_url, chat_path, models_path, created_at, updated_at)
|
|
42
42
|
VALUES (@id, @type, @name, @prefix, @apiType, @baseUrl, @chatPath, @modelsPath, @createdAt, @updatedAt)
|
|
43
|
-
`).run(o),(0,n.backupDbFile)("pre-write"),o}async function
|
|
43
|
+
`).run(o),(0,n.backupDbFile)("pre-write"),o}async function L(e,t){let a=(0,r.getDbInstance)(),i=a.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);if(!i)return null;let o={...E((0,r.rowToCamel)(i)),...t,updatedAt:new Date().toISOString()};return a.prepare(`
|
|
44
44
|
UPDATE provider_nodes SET type = @type, name = @name, prefix = @prefix,
|
|
45
45
|
api_type = @apiType, base_url = @baseUrl, chat_path = @chatPath,
|
|
46
46
|
models_path = @modelsPath, updated_at = @updatedAt
|
|
47
47
|
WHERE id = @id
|
|
48
|
-
`).run({id:e,type:o.type,name:o.name,prefix:o.prefix||null,apiType:o.apiType||null,baseUrl:o.baseUrl||null,chatPath:o.chatPath||null,modelsPath:o.modelsPath||null,updatedAt:o.updatedAt}),(0,n.backupDbFile)("pre-write"),o}async function w(e){let t=(0,r.getDbInstance)(),a=t.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);return a?(t.prepare("DELETE FROM provider_nodes WHERE id = ?").run(e),(0,n.backupDbFile)("pre-write"),(0,r.rowToCamel)(a)):null}e.s(["cleanupProviderConnections",()=>b,"createProviderConnection",()=>m,"createProviderNode",()=>L,"deleteProviderConnection",()=>k,"deleteProviderConnectionsByProvider",()=>A,"deleteProviderNode",()=>w,"getDistinctGroups",()=>C,"getProviderConnectionById",()=>v,"getProviderConnections",()=>_,"getProviderNodeById",()=>R,"getProviderNodes",()=>I,"reorderProviderConnections",()=>T,"updateProviderConnection",()=>S,"updateProviderNode",()=>N],385498)},542949,e=>{"use strict";var t=e.i(157763),r=e.i(935050);function n(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{key:"string"==typeof t.key?t.key:null,value:"string"==typeof t.value?t.value:null}}async function a(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'modelAliases'").all(),r={};for(let t of e){let{key:e,value:a}=n(t);e&&null!==a&&(r[e]=JSON.parse(a))}return r}async function i(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('modelAliases', ?, ?)").run(e,JSON.stringify(n)),(0,r.backupDbFile)("pre-write")}async function o(e){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'modelAliases' AND key = ?").run(e),(0,r.backupDbFile)("pre-write")}async function l(e){let r=(0,t.getDbInstance)();if(e){let t=n(r.prepare("SELECT value FROM key_value WHERE namespace = 'mitmAlias' AND key = ?").get(e)).value;return t?JSON.parse(t):{}}let a=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'mitmAlias'").all(),i={};for(let e of a){let{key:t,value:r}=n(e);t&&null!==r&&(i[t]=JSON.parse(r))}return i}async function s(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('mitmAlias', ?, ?)").run(e,JSON.stringify(n||{})),(0,r.backupDbFile)("pre-write")}async function c(e){let r=(0,t.getDbInstance)();if(e){let t=n(r.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value;return t?JSON.parse(t):[]}let a=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),i={};for(let e of a){let{key:t,value:r}=n(e);t&&null!==r&&(i[t]=JSON.parse(r))}return i}async function u(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),r={};for(let t of e){let{key:e,value:a}=n(t);e&&null!==a&&(r[e]=JSON.parse(a))}return r}async function d(e,a,i,o="manual",l="chat-completions",s=["chat"]){let c=(0,t.getDbInstance)(),u=n(c.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value,p=u?JSON.parse(u):[],f=p.find(e=>e.id===a);if(f)return f;let y={id:a,name:i||a,source:o,apiFormat:l,supportedEndpoints:s};return p.push(y),c.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('customModels', ?, ?)").run(e,JSON.stringify(p)),(0,r.backupDbFile)("pre-write"),y}async function p(e,a){let i=(0,t.getDbInstance)(),o=i.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!o)return!1;let l=n(o).value;if(!l)return!1;let s=JSON.parse(l),c=s.length,u=s.filter(e=>e.id!==a);return u.length!==c&&(0===u.length?i.prepare("DELETE FROM key_value WHERE namespace = 'customModels' AND key = ?").run(e):i.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(u),e),(0,r.backupDbFile)("pre-write"),!0)}async function f(e,a,i={}){let o=(0,t.getDbInstance)(),l=o.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!l)return null;let s=n(l).value;if(!s)return null;let c=JSON.parse(s),u=c.findIndex(e=>e.id===a);if(-1===u)return null;let d=c[u],p={...d,...void 0!==i.modelName?{name:i.modelName||d.name}:{},...void 0!==i.apiFormat?{apiFormat:i.apiFormat}:{},...void 0!==i.supportedEndpoints?{supportedEndpoints:i.supportedEndpoints}:{}};return c[u]=p,o.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(c),e),(0,r.backupDbFile)("pre-write"),p}e.s(["addCustomModel",()=>d,"deleteModelAlias",()=>o,"getAllCustomModels",()=>u,"getCustomModels",()=>c,"getMitmAlias",()=>l,"getModelAliases",()=>a,"removeCustomModel",()=>p,"setMitmAliasAll",()=>s,"setModelAlias",()=>i,"updateCustomModel",()=>f])},151205,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050);function a(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return"string"==typeof t.data?t.data:null}async function i(){return(0,r.getDbInstance)().prepare("SELECT data FROM combos ORDER BY name").all().map(e=>a(e)).filter(e=>null!==e).map(e=>JSON.parse(e))}async function o(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE id = ?").get(e));return t?JSON.parse(t):null}async function l(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE name = ?").get(e));return t?JSON.parse(t):null}async function s(e){let a=(0,r.getDbInstance)(),i=new Date().toISOString(),o={id:(0,t.v4)(),name:e.name,models:e.models||[],strategy:e.strategy||"priority",config:e.config||{},createdAt:i,updatedAt:i};return a.prepare("INSERT INTO combos (id, name, data, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(o.id,o.name,JSON.stringify(o),i,i),(0,n.backupDbFile)("pre-write"),o}async function c(e,t){let i=(0,r.getDbInstance)(),o=i.prepare("SELECT data FROM combos WHERE id = ?").get(e);if(!o)return null;let l=a(o);if(!l)return null;let s={...JSON.parse(l),...t,updatedAt:new Date().toISOString()};return i.prepare("UPDATE combos SET name = ?, data = ?, updated_at = ? WHERE id = ?").run(s.name,JSON.stringify(s),s.updatedAt,e),(0,n.backupDbFile)("pre-write"),s}async function u(e){return 0!==(0,r.getDbInstance)().prepare("DELETE FROM combos WHERE id = ?").run(e).changes&&((0,n.backupDbFile)("pre-write"),!0)}e.s(["createCombo",()=>s,"deleteCombo",()=>u,"getComboById",()=>o,"getComboByName",()=>l,"getCombos",()=>i,"updateCombo",()=>c])},245272,e=>{"use strict";e.i(385498),e.i(542949),e.i(151205),e.i(125852),e.i(548941),e.i(954031),e.i(751183),e.i(935050),e.i(403122),e.s([])},751183,e=>{"use strict";var t=e.i(157763),r=e.i(403122),n=e.i(935050);let a=["litellm"],i=parseInt(process.env.PRICING_SYNC_INTERVAL||"86400",10),o=Number.isFinite(i)&&i>0?1e3*i:864e5,l=(process.env.PRICING_SYNC_SOURCES||"litellm").split(",").map(e=>e.trim()).filter(e=>a.includes(e)),s={openai:["openai","cx"],anthropic:["anthropic","cc"],vertex_ai:["gemini","gc"],"vertex_ai-anthropic_models":["anthropic"],google:["gemini","gc"],deepseek:["if"],groq:["groq"],together_ai:["openrouter"],bedrock:["kiro"],fireworks_ai:["fireworks"],cerebras:["cerebras"],nvidia_nim:["nvidia"],siliconflow:["siliconflow"]},c=null,u=null,d=0,p=o;async function f(){let e=await fetch("https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",{signal:AbortSignal.timeout(3e4)});if(!e.ok)throw Error(`LiteLLM fetch failed [${e.status}]: ${e.statusText}`);let t=await e.text();try{return JSON.parse(t)}catch{throw Error(`LiteLLM returned invalid JSON (${t.slice(0,100)}...)`)}}function y(e){let t={};for(let[r,n]of Object.entries(e)){if(n.mode&&!["chat","completion"].includes(n.mode)||!n.input_cost_per_token&&0!==n.input_cost_per_token)continue;let e={input:Math.round(1e3*(1e6*(n.input_cost_per_token||0)))/1e3,output:Math.round(1e3*(1e6*(n.output_cost_per_token||0)))/1e3};null!=n.cache_read_input_token_cost&&(e.cached=Math.round(1e6*n.cache_read_input_token_cost*1e3)/1e3),null!=n.cache_creation_input_token_cost&&(e.cache_creation=Math.round(1e6*n.cache_creation_input_token_cost*1e3)/1e3);let a=r.indexOf("/"),i=a>=0?r.slice(a+1):r,o=n.litellm_provider||"",l=s[o];if(l)for(let r of l)t[r]||(t[r]={}),t[r][i]=e;else o&&(t[o]||(t[o]={}),t[o][i]=e)}return t}function E(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing_synced'").all(),r={};for(let t of e){let e=t&&"object"==typeof t?t:{},n="string"==typeof e.key?e.key:null,a="string"==typeof e.value?e.value:null;if(n&&null!==a)try{r[n]=JSON.parse(a)}catch{console.warn(`[PRICING_SYNC] Corrupted data for provider "${n}", skipping`)}}return r}function g(e){let a=(0,t.getDbInstance)(),i=a.prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'"),o=a.prepare("INSERT INTO key_value (namespace, key, value) VALUES ('pricing_synced', ?, ?)");a.transaction(()=>{for(let[t,r]of(i.run(),Object.entries(e)))o.run(t,JSON.stringify(r))})(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}function _(){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'").run(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}async function v(e){let t=e?.sources||l,r=e?.dryRun??!1,n=t.filter(e=>a.includes(e)),i=t.filter(e=>!a.includes(e));if(0===n.length){let e=a.join(", ");return{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:`No valid sources provided. Supported: ${e}. Invalid: ${i.join(", ")}`}}try{let e={};for(let t of n)if("litellm"===t){let t=await f(),r=y(t);for(let[t,n]of Object.entries(r))e[t]||(e[t]={}),Object.assign(e[t],n)}let t=Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0),a=Object.keys(e).length;return r||(g(e),u=new Date().toISOString(),d=t),{success:!0,modelCount:t,providerCount:a,source:n.join(","),dryRun:r,...i.length>0?{warnings:[`Unknown sources ignored: ${i.join(", ")}`]}:{},...r?{data:e}:{}}}catch(n){let e=n instanceof Error?n.message:String(n);return console.warn("[PRICING_SYNC] Sync failed:",e),{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:e}}}function m(e){if(c)return;let t=e??o;p=t,console.log(`[PRICING_SYNC] Starting periodic sync every ${t/1e3}s`),v().then(e=>{e.success&&console.log(`[PRICING_SYNC] Initial sync complete: ${e.modelCount} models from ${e.providerCount} providers`)}).catch(e=>{console.warn("[PRICING_SYNC] Initial sync error:",e instanceof Error?e.message:e)}),c=setInterval(()=>{v().then(e=>{e.success&&console.log(`[PRICING_SYNC] Periodic sync complete: ${e.modelCount} models`)}).catch(e=>{console.warn("[PRICING_SYNC] Periodic sync error:",e instanceof Error?e.message:e)})},t)}function h(){c&&(clearInterval(c),c=null,console.log("[PRICING_SYNC] Periodic sync stopped"))}function S(){return{enabled:"true"===process.env.PRICING_SYNC_ENABLED,lastSync:u,lastSyncModelCount:d,nextSync:c&&u?new Date(new Date(u).getTime()+p).toISOString():null,intervalMs:p,sources:l}}async function k(){"true"!==process.env.PRICING_SYNC_ENABLED?console.log("[PRICING_SYNC] Disabled (set PRICING_SYNC_ENABLED=true to enable)"):m()}e.s(["clearSyncedPricing",()=>_,"fetchLiteLLMPricing",()=>f,"getSyncStatus",()=>S,"getSyncedPricing",()=>E,"initPricingSync",()=>k,"saveSyncedPricing",()=>g,"startPeriodicSync",()=>m,"stopPeriodicSync",()=>h,"syncPricingFromSources",()=>v,"transformToOmniRoute",()=>y])},125852,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050),a=e.i(91429),i=e.i(439951);let o=!1,l=new Map,s=new Map,c=new Map,u=new Map,d=null,p=null,f=null,y=null,E=null,g=null;function _(){l.clear(),s.clear(),u.clear()}function v(e){return e&&"object"==typeof e?e:{}}function m(e){if(e.size>1e3){let t=Math.floor(200),r=0;for(let n of e.keys()){if(r++>=t)break;e.delete(n)}}}function h(e){if(!o)try{let t=e.prepare("PRAGMA table_info(api_keys)").all(),r=new Set(t.map(e=>String(e.name??"")));r.has("allowed_models")||(e.exec("ALTER TABLE api_keys ADD COLUMN allowed_models TEXT"),console.log("[DB] Added api_keys.allowed_models column")),r.has("no_log")||(e.exec("ALTER TABLE api_keys ADD COLUMN no_log INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.no_log column")),r.has("allowed_connections")||(e.exec("ALTER TABLE api_keys ADD COLUMN allowed_connections TEXT"),console.log("[DB] Added api_keys.allowed_connections column")),r.has("auto_resolve")||(e.exec("ALTER TABLE api_keys ADD COLUMN auto_resolve INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.auto_resolve column")),r.has("is_active")||(e.exec("ALTER TABLE api_keys ADD COLUMN is_active INTEGER NOT NULL DEFAULT 1"),console.log("[DB] Added api_keys.is_active column")),r.has("access_schedule")||(e.exec("ALTER TABLE api_keys ADD COLUMN access_schedule TEXT"),console.log("[DB] Added api_keys.access_schedule column")),o=!0}catch(e){console.warn("[DB] Failed to verify api_keys schema:",e instanceof Error?e.message:String(e))}if(d&&p&&f&&y&&E&&g||(d=e.prepare("SELECT * FROM api_keys ORDER BY created_at"),p=e.prepare("SELECT * FROM api_keys WHERE id = ?"),f=e.prepare("SELECT 1 FROM api_keys WHERE key = ?"),y=e.prepare("SELECT id, name, machine_id, allowed_models, allowed_connections, no_log, auto_resolve, is_active, access_schedule FROM api_keys WHERE key = ?"),E=e.prepare("INSERT INTO api_keys (id, name, key, machine_id, allowed_models, no_log, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)"),g=e.prepare("DELETE FROM api_keys WHERE id = ?")),!d||!p||!f||!y||!E||!g)throw Error("Failed to initialize API key prepared statements");return{getAllKeys:d,getKeyById:p,validateKey:f,getKeyMetadata:y,insertKey:E,deleteKey:g}}async function S(){return h((0,r.getDbInstance)()).getAllKeys.all().map(e=>{let t=v((0,r.rowToCamel)(e));return t.allowedModels=A(t.allowedModels),t.allowedConnections=I(t.allowedConnections),t.noLog=T(t.noLog),t.autoResolve=D(t.autoResolve),t.isActive=b(t.isActive),t.accessSchedule=C(t.accessSchedule),"string"==typeof t.id&&t.id.length>0&&(0,i.setNoLog)(t.id,!0===t.noLog),t})}async function k(e){let t=h((0,r.getDbInstance)()).getKeyById.get(e);if(!t)return null;let n=v((0,r.rowToCamel)(t));return n.allowedModels=A(n.allowedModels),n.allowedConnections=I(n.allowedConnections),n.noLog=T(n.noLog),n.autoResolve=D(n.autoResolve),n.isActive=b(n.isActive),n.accessSchedule=C(n.accessSchedule),"string"==typeof n.id&&n.id.length>0&&(0,i.setNoLog)(n.id,!0===n.noLog),n}function A(e){if(!e||"string"!=typeof e||""===e.trim())return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}function T(e){return!0===e||1===e||"1"===e}function D(e){return!0===e||1===e||"1"===e}function b(e){return 0!==e&&"0"!==e&&!1!==e}function C(e){if(!e||"string"!=typeof e||""===e.trim())return null;try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t)||"boolean"!=typeof t.enabled||"string"!=typeof t.from||"string"!=typeof t.until||!Array.isArray(t.days)||"string"!=typeof t.tz)return null;let r=t.days.filter(e=>"number"==typeof e&&Number.isInteger(e)&&e>=0&&e<=6);return{enabled:t.enabled,from:t.from,until:t.until,days:r,tz:t.tz}}catch{return null}}function I(e){if(!e||"string"!=typeof e||""===e.trim())return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function R(a,o){if(!o)throw Error("machineId is required");let l=(0,r.getDbInstance)(),s=new Date().toISOString(),{generateApiKeyWithMachine:c}=await e.A(579042),u=c(o),d={id:(0,t.v4)(),name:a,key:u.key,machineId:o,allowedModels:[],allowedConnections:[],noLog:!1,createdAt:s};return h(l).insertKey.run(d.id,d.name,d.key,d.machineId,"[]",0,d.createdAt),(0,i.setNoLog)(d.id,!1),(0,n.backupDbFile)("pre-write"),d}async function L(e,t){let a=(0,r.getDbInstance)();h(a);let o=Array.isArray(t)||void 0===t?{allowedModels:t||[]}:{name:t.name,allowedModels:t.allowedModels,allowedConnections:t.allowedConnections,noLog:t.noLog,autoResolve:t.autoResolve,isActive:t.isActive,accessSchedule:t.accessSchedule};if(void 0===o.name&&void 0===o.allowedModels&&void 0===o.allowedConnections&&void 0===o.noLog&&void 0===o.autoResolve&&void 0===o.isActive&&void 0===o.accessSchedule)return!1;let l=[],s={id:e};return void 0!==o.name&&(l.push("name = @name"),s.name=o.name),void 0!==o.allowedModels&&(l.push("allowed_models = @allowedModels"),s.allowedModels=JSON.stringify(o.allowedModels||[])),void 0!==o.allowedConnections&&(l.push("allowed_connections = @allowedConnections"),s.allowedConnections=JSON.stringify(o.allowedConnections||[])),void 0!==o.noLog&&(l.push("no_log = @noLog"),s.noLog=+!!o.noLog),void 0!==o.autoResolve&&(l.push("auto_resolve = @autoResolve"),s.autoResolve=+!!o.autoResolve),void 0!==o.isActive&&(l.push("is_active = @isActive"),s.isActive=+!!o.isActive),void 0!==o.accessSchedule&&(l.push("access_schedule = @accessSchedule"),s.accessSchedule=null!==o.accessSchedule?JSON.stringify(o.accessSchedule):null),0!==a.prepare(`UPDATE api_keys SET ${l.join(", ")} WHERE id = @id`).run(s).changes&&(void 0!==o.noLog&&(0,i.setNoLog)(e,o.noLog),_(),(0,n.backupDbFile)("pre-write"),!0)}async function N(e){return 0!==h((0,r.getDbInstance)()).deleteKey.run(e).changes&&((0,i.setNoLog)(e,!1),_(),(0,n.backupDbFile)("pre-write"),!0)}async function w(e){if(!e||"string"!=typeof e)return!1;let t=Date.now(),n=l.get(e);if(n&&t-n.timestamp<6e4)return n.valid;let a=!!h((0,r.getDbInstance)()).validateKey.get(e);return a&&(m(l),l.set(e,{valid:!0,timestamp:t})),a}async function O(e){if(!e||"string"!=typeof e)return null;let t=Date.now(),n=s.get(e);if(n&&t-n.timestamp<6e4)return n.value;let a=h((0,r.getDbInstance)()).getKeyMetadata.get(e);if(!a)return null;let o=v(a),l="string"==typeof o.id?o.id:"",c="string"==typeof o.name?o.name:"",u=o.machine_id??o.machineId,d={id:l,name:c,machineId:"string"==typeof u?u:null,allowedModels:A(o.allowed_models??o.allowedModels),allowedConnections:I(o.allowed_connections??o.allowedConnections),noLog:T(o.no_log??o.noLog),autoResolve:D(o.auto_resolve??o.autoResolve),isActive:b(o.is_active??o.isActive),accessSchedule:C(o.access_schedule??o.accessSchedule)};return d.id?((0,i.setNoLog)(d.id,!0===d.noLog),m(s),s.set(e,{value:d,timestamp:t}),d):null}async function M(e,t){if(!e)return!0;if(!t)return!1;let r=`${e}:${t}`,n=Date.now(),a=u.get(r);if(a&&n-a.timestamp<6e4)return a.allowed;let i=await O(e);if(!i)return!1;let{allowedModels:o}=i;if(!o||0===o.length)return!0;let l=!1;for(let e of o){if(e===t){l=!0;break}if(e.endsWith("/*")){let r=e.slice(0,-2);if(t.startsWith(r+"/")||t.startsWith(r)){l=!0;break}}if(e.includes("*")&&(function(e){let t=c.get(e);if(!t){let r=e.replace(/\*/g,".*");if(t=RegExp(`^${r}$`),c.set(e,t),c.size>100){let e=c.keys().next().value;e&&c.delete(e)}}return t})(e).test(t)){l=!0;break}}return m(u),u.set(r,{allowed:l,timestamp:n}),l}function P(){_(),u.clear(),c.clear()}function F(){d=null,p=null,f=null,y=null,E=null,g=null,o=!1,P()}(0,a.registerDbStateResetter)(F),e.s(["clearApiKeyCaches",()=>P,"createApiKey",()=>R,"deleteApiKey",()=>N,"getApiKeyById",()=>k,"getApiKeyMetadata",()=>O,"getApiKeys",()=>S,"isModelAllowedForKey",()=>M,"resetApiKeyState",()=>F,"updateApiKeyPermissions",()=>L,"validateApiKey",()=>w])}];
|
|
48
|
+
`).run({id:e,type:o.type,name:o.name,prefix:o.prefix||null,apiType:o.apiType||null,baseUrl:o.baseUrl||null,chatPath:o.chatPath||null,modelsPath:o.modelsPath||null,updatedAt:o.updatedAt}),(0,n.backupDbFile)("pre-write"),o}async function w(e){let t=(0,r.getDbInstance)(),a=t.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);return a?(t.prepare("DELETE FROM provider_nodes WHERE id = ?").run(e),(0,n.backupDbFile)("pre-write"),(0,r.rowToCamel)(a)):null}e.s(["cleanupProviderConnections",()=>b,"createProviderConnection",()=>m,"createProviderNode",()=>N,"deleteProviderConnection",()=>k,"deleteProviderConnectionsByProvider",()=>A,"deleteProviderNode",()=>w,"getDistinctGroups",()=>C,"getProviderConnectionById",()=>_,"getProviderConnections",()=>v,"getProviderNodeById",()=>R,"getProviderNodes",()=>I,"reorderProviderConnections",()=>T,"updateProviderConnection",()=>S,"updateProviderNode",()=>L],385498)},542949,e=>{"use strict";var t=e.i(157763),r=e.i(935050);function n(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{key:"string"==typeof t.key?t.key:null,value:"string"==typeof t.value?t.value:null}}async function a(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'modelAliases'").all(),r={};for(let t of e){let{key:e,value:a}=n(t);e&&null!==a&&(r[e]=JSON.parse(a))}return r}async function i(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('modelAliases', ?, ?)").run(e,JSON.stringify(n)),(0,r.backupDbFile)("pre-write")}async function o(e){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'modelAliases' AND key = ?").run(e),(0,r.backupDbFile)("pre-write")}async function l(e){let r=(0,t.getDbInstance)();if(e){let t=n(r.prepare("SELECT value FROM key_value WHERE namespace = 'mitmAlias' AND key = ?").get(e)).value;return t?JSON.parse(t):{}}let a=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'mitmAlias'").all(),i={};for(let e of a){let{key:t,value:r}=n(e);t&&null!==r&&(i[t]=JSON.parse(r))}return i}async function s(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('mitmAlias', ?, ?)").run(e,JSON.stringify(n||{})),(0,r.backupDbFile)("pre-write")}async function c(e){let r=(0,t.getDbInstance)();if(e){let t=n(r.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value;return t?JSON.parse(t):[]}let a=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),i={};for(let e of a){let{key:t,value:r}=n(e);t&&null!==r&&(i[t]=JSON.parse(r))}return i}async function u(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),r={};for(let t of e){let{key:e,value:a}=n(t);e&&null!==a&&(r[e]=JSON.parse(a))}return r}async function d(e,a,i,o="manual",l="chat-completions",s=["chat"]){let c=(0,t.getDbInstance)(),u=n(c.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value,p=u?JSON.parse(u):[],f=p.find(e=>e.id===a);if(f)return f;let y={id:a,name:i||a,source:o,apiFormat:l,supportedEndpoints:s};return p.push(y),c.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('customModels', ?, ?)").run(e,JSON.stringify(p)),(0,r.backupDbFile)("pre-write"),y}async function p(e,a){let i=(0,t.getDbInstance)(),o=i.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!o)return!1;let l=n(o).value;if(!l)return!1;let s=JSON.parse(l),c=s.length,u=s.filter(e=>e.id!==a);return u.length!==c&&(0===u.length?i.prepare("DELETE FROM key_value WHERE namespace = 'customModels' AND key = ?").run(e):i.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(u),e),(0,r.backupDbFile)("pre-write"),!0)}async function f(e,a,i={}){let o=(0,t.getDbInstance)(),l=o.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!l)return null;let s=n(l).value;if(!s)return null;let c=JSON.parse(s),u=c.findIndex(e=>e.id===a);if(-1===u)return null;let d=c[u],p={...d,...void 0!==i.modelName?{name:i.modelName||d.name}:{},...void 0!==i.apiFormat?{apiFormat:i.apiFormat}:{},...void 0!==i.supportedEndpoints?{supportedEndpoints:i.supportedEndpoints}:{},...void 0!==i.normalizeToolCallId?{normalizeToolCallId:!!i.normalizeToolCallId}:{}};return c[u]=p,o.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(c),e),(0,r.backupDbFile)("pre-write"),p}function y(e,r){let a,i=n((0,t.getDbInstance)().prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value;if(!i)return!1;try{a=JSON.parse(i)}catch{return!1}if(!Array.isArray(a))return!1;let o=a.find(e=>e.id===r);return!!o?.normalizeToolCallId}e.s(["addCustomModel",()=>d,"deleteModelAlias",()=>o,"getAllCustomModels",()=>u,"getCustomModels",()=>c,"getMitmAlias",()=>l,"getModelAliases",()=>a,"getModelNormalizeToolCallId",()=>y,"removeCustomModel",()=>p,"setMitmAliasAll",()=>s,"setModelAlias",()=>i,"updateCustomModel",()=>f])},151205,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050);function a(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return"string"==typeof t.data?t.data:null}async function i(){return(0,r.getDbInstance)().prepare("SELECT data FROM combos ORDER BY name").all().map(e=>a(e)).filter(e=>null!==e).map(e=>JSON.parse(e))}async function o(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE id = ?").get(e));return t?JSON.parse(t):null}async function l(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE name = ?").get(e));return t?JSON.parse(t):null}async function s(e){let a=(0,r.getDbInstance)(),i=new Date().toISOString(),o={id:(0,t.v4)(),name:e.name,models:e.models||[],strategy:e.strategy||"priority",config:e.config||{},createdAt:i,updatedAt:i};return a.prepare("INSERT INTO combos (id, name, data, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(o.id,o.name,JSON.stringify(o),i,i),(0,n.backupDbFile)("pre-write"),o}async function c(e,t){let i=(0,r.getDbInstance)(),o=i.prepare("SELECT data FROM combos WHERE id = ?").get(e);if(!o)return null;let l=a(o);if(!l)return null;let s={...JSON.parse(l),...t,updatedAt:new Date().toISOString()};return i.prepare("UPDATE combos SET name = ?, data = ?, updated_at = ? WHERE id = ?").run(s.name,JSON.stringify(s),s.updatedAt,e),(0,n.backupDbFile)("pre-write"),s}async function u(e){return 0!==(0,r.getDbInstance)().prepare("DELETE FROM combos WHERE id = ?").run(e).changes&&((0,n.backupDbFile)("pre-write"),!0)}e.s(["createCombo",()=>s,"deleteCombo",()=>u,"getComboById",()=>o,"getComboByName",()=>l,"getCombos",()=>i,"updateCombo",()=>c])},245272,e=>{"use strict";e.i(385498),e.i(542949),e.i(151205),e.i(125852),e.i(548941),e.i(954031),e.i(751183),e.i(935050),e.i(403122),e.s([])},751183,e=>{"use strict";var t=e.i(157763),r=e.i(403122),n=e.i(935050);let a=["litellm"],i=parseInt(process.env.PRICING_SYNC_INTERVAL||"86400",10),o=Number.isFinite(i)&&i>0?1e3*i:864e5,l=(process.env.PRICING_SYNC_SOURCES||"litellm").split(",").map(e=>e.trim()).filter(e=>a.includes(e)),s={openai:["openai","cx"],anthropic:["anthropic","cc"],vertex_ai:["gemini","gc"],"vertex_ai-anthropic_models":["anthropic"],google:["gemini","gc"],deepseek:["if"],groq:["groq"],together_ai:["openrouter"],bedrock:["kiro"],fireworks_ai:["fireworks"],cerebras:["cerebras"],nvidia_nim:["nvidia"],siliconflow:["siliconflow"]},c=null,u=null,d=0,p=o;async function f(){let e=await fetch("https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",{signal:AbortSignal.timeout(3e4)});if(!e.ok)throw Error(`LiteLLM fetch failed [${e.status}]: ${e.statusText}`);let t=await e.text();try{return JSON.parse(t)}catch{throw Error(`LiteLLM returned invalid JSON (${t.slice(0,100)}...)`)}}function y(e){let t={};for(let[r,n]of Object.entries(e)){if(n.mode&&!["chat","completion"].includes(n.mode)||!n.input_cost_per_token&&0!==n.input_cost_per_token)continue;let e={input:Math.round(1e3*(1e6*(n.input_cost_per_token||0)))/1e3,output:Math.round(1e3*(1e6*(n.output_cost_per_token||0)))/1e3};null!=n.cache_read_input_token_cost&&(e.cached=Math.round(1e6*n.cache_read_input_token_cost*1e3)/1e3),null!=n.cache_creation_input_token_cost&&(e.cache_creation=Math.round(1e6*n.cache_creation_input_token_cost*1e3)/1e3);let a=r.indexOf("/"),i=a>=0?r.slice(a+1):r,o=n.litellm_provider||"",l=s[o];if(l)for(let r of l)t[r]||(t[r]={}),t[r][i]=e;else o&&(t[o]||(t[o]={}),t[o][i]=e)}return t}function E(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing_synced'").all(),r={};for(let t of e){let e=t&&"object"==typeof t?t:{},n="string"==typeof e.key?e.key:null,a="string"==typeof e.value?e.value:null;if(n&&null!==a)try{r[n]=JSON.parse(a)}catch{console.warn(`[PRICING_SYNC] Corrupted data for provider "${n}", skipping`)}}return r}function g(e){let a=(0,t.getDbInstance)(),i=a.prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'"),o=a.prepare("INSERT INTO key_value (namespace, key, value) VALUES ('pricing_synced', ?, ?)");a.transaction(()=>{for(let[t,r]of(i.run(),Object.entries(e)))o.run(t,JSON.stringify(r))})(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}function v(){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'").run(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}async function _(e){let t=e?.sources||l,r=e?.dryRun??!1,n=t.filter(e=>a.includes(e)),i=t.filter(e=>!a.includes(e));if(0===n.length){let e=a.join(", ");return{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:`No valid sources provided. Supported: ${e}. Invalid: ${i.join(", ")}`}}try{let e={};for(let t of n)if("litellm"===t){let t=await f(),r=y(t);for(let[t,n]of Object.entries(r))e[t]||(e[t]={}),Object.assign(e[t],n)}let t=Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0),a=Object.keys(e).length;return r||(g(e),u=new Date().toISOString(),d=t),{success:!0,modelCount:t,providerCount:a,source:n.join(","),dryRun:r,...i.length>0?{warnings:[`Unknown sources ignored: ${i.join(", ")}`]}:{},...r?{data:e}:{}}}catch(n){let e=n instanceof Error?n.message:String(n);return console.warn("[PRICING_SYNC] Sync failed:",e),{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:e}}}function m(e){if(c)return;let t=e??o;p=t,console.log(`[PRICING_SYNC] Starting periodic sync every ${t/1e3}s`),_().then(e=>{e.success&&console.log(`[PRICING_SYNC] Initial sync complete: ${e.modelCount} models from ${e.providerCount} providers`)}).catch(e=>{console.warn("[PRICING_SYNC] Initial sync error:",e instanceof Error?e.message:e)}),c=setInterval(()=>{_().then(e=>{e.success&&console.log(`[PRICING_SYNC] Periodic sync complete: ${e.modelCount} models`)}).catch(e=>{console.warn("[PRICING_SYNC] Periodic sync error:",e instanceof Error?e.message:e)})},t)}function h(){c&&(clearInterval(c),c=null,console.log("[PRICING_SYNC] Periodic sync stopped"))}function S(){return{enabled:"true"===process.env.PRICING_SYNC_ENABLED,lastSync:u,lastSyncModelCount:d,nextSync:c&&u?new Date(new Date(u).getTime()+p).toISOString():null,intervalMs:p,sources:l}}async function k(){"true"!==process.env.PRICING_SYNC_ENABLED?console.log("[PRICING_SYNC] Disabled (set PRICING_SYNC_ENABLED=true to enable)"):m()}e.s(["clearSyncedPricing",()=>v,"fetchLiteLLMPricing",()=>f,"getSyncStatus",()=>S,"getSyncedPricing",()=>E,"initPricingSync",()=>k,"saveSyncedPricing",()=>g,"startPeriodicSync",()=>m,"stopPeriodicSync",()=>h,"syncPricingFromSources",()=>_,"transformToOmniRoute",()=>y])},125852,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050),a=e.i(91429),i=e.i(439951);let o=!1,l=new Map,s=new Map,c=new Map,u=new Map,d=null,p=null,f=null,y=null,E=null,g=null;function v(){l.clear(),s.clear(),u.clear()}function _(e){return e&&"object"==typeof e?e:{}}function m(e){if(e.size>1e3){let t=Math.floor(200),r=0;for(let n of e.keys()){if(r++>=t)break;e.delete(n)}}}function h(e){if(!o)try{let t=e.prepare("PRAGMA table_info(api_keys)").all(),r=new Set(t.map(e=>String(e.name??"")));r.has("allowed_models")||(e.exec("ALTER TABLE api_keys ADD COLUMN allowed_models TEXT"),console.log("[DB] Added api_keys.allowed_models column")),r.has("no_log")||(e.exec("ALTER TABLE api_keys ADD COLUMN no_log INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.no_log column")),r.has("allowed_connections")||(e.exec("ALTER TABLE api_keys ADD COLUMN allowed_connections TEXT"),console.log("[DB] Added api_keys.allowed_connections column")),r.has("auto_resolve")||(e.exec("ALTER TABLE api_keys ADD COLUMN auto_resolve INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.auto_resolve column")),r.has("is_active")||(e.exec("ALTER TABLE api_keys ADD COLUMN is_active INTEGER NOT NULL DEFAULT 1"),console.log("[DB] Added api_keys.is_active column")),r.has("access_schedule")||(e.exec("ALTER TABLE api_keys ADD COLUMN access_schedule TEXT"),console.log("[DB] Added api_keys.access_schedule column")),o=!0}catch(e){console.warn("[DB] Failed to verify api_keys schema:",e instanceof Error?e.message:String(e))}if(d&&p&&f&&y&&E&&g||(d=e.prepare("SELECT * FROM api_keys ORDER BY created_at"),p=e.prepare("SELECT * FROM api_keys WHERE id = ?"),f=e.prepare("SELECT 1 FROM api_keys WHERE key = ?"),y=e.prepare("SELECT id, name, machine_id, allowed_models, allowed_connections, no_log, auto_resolve, is_active, access_schedule FROM api_keys WHERE key = ?"),E=e.prepare("INSERT INTO api_keys (id, name, key, machine_id, allowed_models, no_log, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)"),g=e.prepare("DELETE FROM api_keys WHERE id = ?")),!d||!p||!f||!y||!E||!g)throw Error("Failed to initialize API key prepared statements");return{getAllKeys:d,getKeyById:p,validateKey:f,getKeyMetadata:y,insertKey:E,deleteKey:g}}async function S(){return h((0,r.getDbInstance)()).getAllKeys.all().map(e=>{let t=_((0,r.rowToCamel)(e));return t.allowedModels=A(t.allowedModels),t.allowedConnections=I(t.allowedConnections),t.noLog=T(t.noLog),t.autoResolve=D(t.autoResolve),t.isActive=b(t.isActive),t.accessSchedule=C(t.accessSchedule),"string"==typeof t.id&&t.id.length>0&&(0,i.setNoLog)(t.id,!0===t.noLog),t})}async function k(e){let t=h((0,r.getDbInstance)()).getKeyById.get(e);if(!t)return null;let n=_((0,r.rowToCamel)(t));return n.allowedModels=A(n.allowedModels),n.allowedConnections=I(n.allowedConnections),n.noLog=T(n.noLog),n.autoResolve=D(n.autoResolve),n.isActive=b(n.isActive),n.accessSchedule=C(n.accessSchedule),"string"==typeof n.id&&n.id.length>0&&(0,i.setNoLog)(n.id,!0===n.noLog),n}function A(e){if(!e||"string"!=typeof e||""===e.trim())return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}function T(e){return!0===e||1===e||"1"===e}function D(e){return!0===e||1===e||"1"===e}function b(e){return 0!==e&&"0"!==e&&!1!==e}function C(e){if(!e||"string"!=typeof e||""===e.trim())return null;try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t)||"boolean"!=typeof t.enabled||"string"!=typeof t.from||"string"!=typeof t.until||!Array.isArray(t.days)||"string"!=typeof t.tz)return null;let r=t.days.filter(e=>"number"==typeof e&&Number.isInteger(e)&&e>=0&&e<=6);return{enabled:t.enabled,from:t.from,until:t.until,days:r,tz:t.tz}}catch{return null}}function I(e){if(!e||"string"!=typeof e||""===e.trim())return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function R(a,o){if(!o)throw Error("machineId is required");let l=(0,r.getDbInstance)(),s=new Date().toISOString(),{generateApiKeyWithMachine:c}=await e.A(579042),u=c(o),d={id:(0,t.v4)(),name:a,key:u.key,machineId:o,allowedModels:[],allowedConnections:[],noLog:!1,createdAt:s};return h(l).insertKey.run(d.id,d.name,d.key,d.machineId,"[]",0,d.createdAt),(0,i.setNoLog)(d.id,!1),(0,n.backupDbFile)("pre-write"),d}async function N(e,t){let a=(0,r.getDbInstance)();h(a);let o=Array.isArray(t)||void 0===t?{allowedModels:t||[]}:{name:t.name,allowedModels:t.allowedModels,allowedConnections:t.allowedConnections,noLog:t.noLog,autoResolve:t.autoResolve,isActive:t.isActive,accessSchedule:t.accessSchedule};if(void 0===o.name&&void 0===o.allowedModels&&void 0===o.allowedConnections&&void 0===o.noLog&&void 0===o.autoResolve&&void 0===o.isActive&&void 0===o.accessSchedule)return!1;let l=[],s={id:e};return void 0!==o.name&&(l.push("name = @name"),s.name=o.name),void 0!==o.allowedModels&&(l.push("allowed_models = @allowedModels"),s.allowedModels=JSON.stringify(o.allowedModels||[])),void 0!==o.allowedConnections&&(l.push("allowed_connections = @allowedConnections"),s.allowedConnections=JSON.stringify(o.allowedConnections||[])),void 0!==o.noLog&&(l.push("no_log = @noLog"),s.noLog=+!!o.noLog),void 0!==o.autoResolve&&(l.push("auto_resolve = @autoResolve"),s.autoResolve=+!!o.autoResolve),void 0!==o.isActive&&(l.push("is_active = @isActive"),s.isActive=+!!o.isActive),void 0!==o.accessSchedule&&(l.push("access_schedule = @accessSchedule"),s.accessSchedule=null!==o.accessSchedule?JSON.stringify(o.accessSchedule):null),0!==a.prepare(`UPDATE api_keys SET ${l.join(", ")} WHERE id = @id`).run(s).changes&&(void 0!==o.noLog&&(0,i.setNoLog)(e,o.noLog),v(),(0,n.backupDbFile)("pre-write"),!0)}async function L(e){return 0!==h((0,r.getDbInstance)()).deleteKey.run(e).changes&&((0,i.setNoLog)(e,!1),v(),(0,n.backupDbFile)("pre-write"),!0)}async function w(e){if(!e||"string"!=typeof e)return!1;let t=Date.now(),n=l.get(e);if(n&&t-n.timestamp<6e4)return n.valid;let a=!!h((0,r.getDbInstance)()).validateKey.get(e);return a&&(m(l),l.set(e,{valid:!0,timestamp:t})),a}async function O(e){if(!e||"string"!=typeof e)return null;let t=Date.now(),n=s.get(e);if(n&&t-n.timestamp<6e4)return n.value;let a=h((0,r.getDbInstance)()).getKeyMetadata.get(e);if(!a)return null;let o=_(a),l="string"==typeof o.id?o.id:"",c="string"==typeof o.name?o.name:"",u=o.machine_id??o.machineId,d={id:l,name:c,machineId:"string"==typeof u?u:null,allowedModels:A(o.allowed_models??o.allowedModels),allowedConnections:I(o.allowed_connections??o.allowedConnections),noLog:T(o.no_log??o.noLog),autoResolve:D(o.auto_resolve??o.autoResolve),isActive:b(o.is_active??o.isActive),accessSchedule:C(o.access_schedule??o.accessSchedule)};return d.id?((0,i.setNoLog)(d.id,!0===d.noLog),m(s),s.set(e,{value:d,timestamp:t}),d):null}async function M(e,t){if(!e)return!0;if(!t)return!1;let r=`${e}:${t}`,n=Date.now(),a=u.get(r);if(a&&n-a.timestamp<6e4)return a.allowed;let i=await O(e);if(!i)return!1;let{allowedModels:o}=i;if(!o||0===o.length)return!0;let l=!1;for(let e of o){if(e===t){l=!0;break}if(e.endsWith("/*")){let r=e.slice(0,-2);if(t.startsWith(r+"/")||t.startsWith(r)){l=!0;break}}if(e.includes("*")&&(function(e){let t=c.get(e);if(!t){let r=e.replace(/\*/g,".*");if(t=RegExp(`^${r}$`),c.set(e,t),c.size>100){let e=c.keys().next().value;e&&c.delete(e)}}return t})(e).test(t)){l=!0;break}}return m(u),u.set(r,{allowed:l,timestamp:n}),l}function P(){v(),u.clear(),c.clear()}function F(){d=null,p=null,f=null,y=null,E=null,g=null,o=!1,P()}(0,a.registerDbStateResetter)(F),e.s(["clearApiKeyCaches",()=>P,"createApiKey",()=>R,"deleteApiKey",()=>L,"getApiKeyById",()=>k,"getApiKeyMetadata",()=>O,"getApiKeys",()=>S,"isModelAllowedForKey",()=>M,"resetApiKeyState",()=>F,"updateApiKeyPermissions",()=>N,"validateApiKey",()=>w])}];
|
|
49
49
|
|
|
50
50
|
//# sourceMappingURL=%5Broot-of-the-server%5D__a630d6ef._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[954372,e=>{"use strict";e.i(312125);var t=e.i(400722),n=e.i(496727);let r={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"};function o(e){if(!e||"object"!=typeof e)return e;let t={...e};return void 0!==t.input_tokens&&(t.input_tokens+=2e3),void 0!==t.prompt_tokens&&(t.prompt_tokens+=2e3),void 0!==t.total_tokens?t.total_tokens+=2e3:void 0!==t.prompt_tokens&&void 0!==t.completion_tokens&&(t.total_tokens=t.prompt_tokens+t.completion_tokens),t}function s(e,t){if(!e||"object"!=typeof e)return e;let r={[n.FORMATS.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[n.FORMATS.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[n.FORMATS.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},o=r[t];t===n.FORMATS.GEMINI_CLI||t===n.FORMATS.ANTIGRAVITY?o=r[n.FORMATS.GEMINI]:t===n.FORMATS.OPENAI_RESPONSE?o=r[n.FORMATS.OPENAI_RESPONSES]:o||(o=r.default);let s={};for(let t of o)void 0!==e[t]&&(s[t]=e[t]);return s}function i(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t={},n=(e,n)=>{if(null==n)return;let r=Number(n);Number.isFinite(r)&&(t[e]=r)};return(n("prompt_tokens",e?.prompt_tokens),n("completion_tokens",e?.completion_tokens),n("total_tokens",e?.total_tokens),n("cache_read_input_tokens",e?.cache_read_input_tokens),n("cache_creation_input_tokens",e?.cache_creation_input_tokens),n("cached_tokens",e?.cached_tokens),n("reasoning_tokens",e?.reasoning_tokens),0===Object.keys(t).length)?null:t}function a(e){if(!e||"object"!=typeof e)return!1;for(let t of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof e[t]&&e[t]>0)return!0;return!1}function l(e){if(!e||"object"!=typeof e)return null;if("message_start"===e.type&&e.message?.usage){let t=e.message.usage,n=t.input_tokens||t.prompt_tokens||0;if(n>0)return i({prompt_tokens:n,completion_tokens:t.output_tokens||t.completion_tokens||0,cache_read_input_tokens:t.cache_read_input_tokens,cache_creation_input_tokens:t.cache_creation_input_tokens})}if("message_delta"===e.type&&e.usage&&"object"==typeof e.usage)return i({prompt_tokens:e.usage.input_tokens||0,completion_tokens:e.usage.output_tokens||0,cache_read_input_tokens:e.usage.cache_read_input_tokens,cache_creation_input_tokens:e.usage.cache_creation_input_tokens});if(("response.completed"===e.type||"response.done"===e.type)&&e.response?.usage&&"object"==typeof e.response.usage){let t=e.response.usage;return i({prompt_tokens:t.input_tokens||t.prompt_tokens||0,completion_tokens:t.output_tokens||t.completion_tokens||0,cached_tokens:t.input_tokens_details?.cached_tokens,reasoning_tokens:t.output_tokens_details?.reasoning_tokens})}return e.usage&&"object"==typeof e.usage&&void 0!==e.usage.prompt_tokens?i({prompt_tokens:e.usage.prompt_tokens,completion_tokens:e.usage.completion_tokens||0,cached_tokens:e.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:e.usage.completion_tokens_details?.reasoning_tokens}):e.usageMetadata&&"object"==typeof e.usageMetadata?i({prompt_tokens:e.usageMetadata?.promptTokenCount||0,completion_tokens:e.usageMetadata?.candidatesTokenCount||0,total_tokens:e.usageMetadata?.totalTokenCount,cached_tokens:e.usageMetadata?.cachedContentTokenCount,reasoning_tokens:e.usageMetadata?.thoughtsTokenCount}):null}function c(e){if(!e||"string"!=typeof e)return 0;let t=e.match(/[\u3000-\u9fff\uf900-\ufaff\u{20000}-\u{2fa1f}]/gu);return(t?t.length:0)+Math.ceil(1.3*e.replace(/[\u3000-\u9fff\uf900-\ufaff]/g," ").split(/(\s+|[^\w\s]|(?<=[a-z])(?=[A-Z]))/).filter(e=>e&&e.trim().length>0).length)}function u(e,t,r=n.FORMATS.OPENAI){var s,i;return s=function(e){if(!e||"object"!=typeof e)return 0;try{let t=0,n=0;if(e.tools&&Array.isArray(e.tools)){let r=JSON.stringify(e.tools);t=Math.ceil(r.length/6);let{tools:o,...s}=e;n=c(JSON.stringify(s))}else n=c(JSON.stringify(e));return n+t}catch(e){return 0}}(e),i=t&&!(t<=0)?Math.max(1,Math.ceil(t/3.5)):0,r===n.FORMATS.CLAUDE?o({input_tokens:s,output_tokens:i,estimated:!0}):o({prompt_tokens:s,completion_tokens:i,total_tokens:s+i,estimated:!0})}function f(e,n,o=null,s=null,i=null){if(!n||"object"!=typeof n)return;let a=e?.toUpperCase()||"UNKNOWN",l=n?.prompt_tokens||n?.input_tokens||0,c=n?.completion_tokens||n?.output_tokens||0,u=s?s.slice(0,8)+"...":"unknown",h=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${r.green}[USAGE] ${a} | in=${l} | out=${c} | account=${u}${r.reset}`;n.estimated&&(h+=` ${r.yellow}(estimated)${r.reset}`);let p=n.cache_read_input_tokens||n.cached_tokens;p&&(h+=` | cache_read=${p}`);let d=n.cache_creation_input_tokens;d&&(h+=` | cache_create=${d}`);let g=n.reasoning_tokens;g&&(h+=` | reasoning=${g}`),console.log(h);let m={input:l,output:c,cacheRead:p||0,cacheCreation:d||0,reasoning:g||0};(0,t.saveRequestUsage)({model:o,provider:e,connectionId:s,apiKeyId:i?.id||void 0,apiKeyName:i?.name||void 0,tokens:m}).catch(()=>{}),(0,t.appendRequestLog)({model:o,provider:e,connectionId:s,tokens:m,status:"200 OK"}).catch(()=>{})}e.s(["COLORS",0,r,"addBufferToUsage",()=>o,"estimateUsage",()=>u,"extractUsage",()=>l,"filterUsageForFormat",()=>s,"hasValidUsage",()=>a,"logUsage",()=>f])},42075,e=>{"use strict";var t=e.i(254799),n=e.i(511938),r=e.i(16023);class o extends n.BaseExecutor{constructor(){super("antigravity",r.PROVIDERS.antigravity)}buildUrl(e,t,n=0){let r=this.getBaseUrls(),o=r[n]||r[0];return`${o}/v1internal:${t?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(e,t=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${e.accessToken}`,"User-Agent":this.config.headers?.["User-Agent"]||"antigravity/1.104.0 darwin/arm64","X-OmniRoute-Source":"omniroute",...t&&{Accept:"text/event-stream"}}}transformRequest(e,n,r,o){let s=n?.project,i=o?.projectId,a="1"===process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE&&s?s:i||s;if(!a)throw Error("Missing Google projectId for Antigravity account. Please reconnect OAuth so OmniRoute can fetch your real Cloud Code project (loadCodeAssist).");let l=(n.request?.contents?.map(e=>{let t=e.role;e.parts?.some(e=>e.functionResponse)&&(t="user");let n=e.parts?.filter(e=>!e.thought&&!e.thoughtSignature)||[];return{...e,role:t,parts:n}})||[]).filter(e=>!Array.isArray(e.parts)||e.parts.length>0),c={...n.request,...l.length>0&&{contents:l},sessionId:n.request?.sessionId||this.generateSessionId(),safetySettings:void 0,toolConfig:n.request?.tools?.length>0?{functionCallingConfig:{mode:"VALIDATED"}}:n.request?.toolConfig},u=e&&e.includes("/")?e.split("/").pop():e;return{...n,project:a,model:u,userAgent:"antigravity",requestType:"agent",requestId:`agent-${t.default.randomUUID()}`,request:c}}async refreshCredentials(e,t){if(!e.refreshToken)return null;try{let n=await fetch(r.OAUTH_ENDPOINTS.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!n.ok)return null;let o=await n.json();return t?.info?.("TOKEN","Antigravity refreshed"),{accessToken:o.access_token,refreshToken:o.refresh_token||e.refreshToken,expiresIn:o.expires_in,projectId:e.projectId}}catch(e){return t?.error?.("TOKEN",`Antigravity refresh error: ${e.message}`),null}}generateSessionId(){return`-${Math.floor(9e18*Math.random())}`}parseRetryHeaders(e){if(!e?.get)return null;let t=e.get("retry-after");if(t){let e=parseInt(t,10);if(!isNaN(e)&&e>0)return 1e3*e;let n=new Date(t);if(!isNaN(n.getTime())){let e=n.getTime()-Date.now();return e>0?e:null}}let n=e.get("x-ratelimit-reset-after");if(n){let e=parseInt(n,10);if(!isNaN(e)&&e>0)return 1e3*e}let r=e.get("x-ratelimit-reset");if(r){let e=1e3*parseInt(r,10)-Date.now();return e>0?e:null}return null}parseRetryFromErrorMessage(e){if(!e||"string"!=typeof e)return null;let t=e.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!t)return null;let n=0;return t[1]&&(n+=3600*parseInt(t[1])*1e3),t[2]&&(n+=60*parseInt(t[2])*1e3),t[3]&&(n+=1e3*parseInt(t[3])),n>0?n:null}async execute({model:e,body:t,stream:n,credentials:o,signal:s,log:i}){let a=this.getFallbackCount(),l=null,c=0,u={};for(let f=0;f<a;f++){let h=this.buildUrl(e,n,f),p=this.buildHeaders(o,n),d=this.transformRequest(e,t,n,o);u[f]||(u[f]=0);try{let e=await fetch(h,{method:"POST",headers:p,body:JSON.stringify(d),signal:s});if(e.status===r.HTTP_STATUS.RATE_LIMITED||e.status===r.HTTP_STATUS.SERVICE_UNAVAILABLE){let t=this.parseRetryHeaders(e.headers);if(!t)try{let n=await e.clone().text(),r=JSON.parse(n),o=r?.error?.message||r?.message||"";t=this.parseRetryFromErrorMessage(o)}catch(e){}if(t&&t<=1e4){i?.debug?.("RETRY",`${e.status} with Retry-After: ${Math.ceil(t/1e3)}s, waiting...`),await new Promise(e=>setTimeout(e,t)),f--;continue}if(e.status===r.HTTP_STATUS.RATE_LIMITED&&(!t||0===t)&&u[f]<3){u[f]++;let e=Math.min(1e3*2**u[f],1e4);i?.debug?.("RETRY",`429 auto retry ${u[f]}/3 after ${e/1e3}s`),await new Promise(t=>setTimeout(t,e)),f--;continue}if(i?.debug?.("RETRY",`${e.status}, Retry-After ${t?`too long (${Math.ceil(t/1e3)}s)`:"missing"}, trying fallback`),c=e.status,f+1<a)continue}if(this.shouldRetry(e.status,f)){i?.debug?.("RETRY",`${e.status} on ${h}, trying fallback ${f+1}`),c=e.status;continue}return{response:e,url:h,headers:p,transformedBody:d}}catch(e){if(l=e,f+1<a){i?.debug?.("RETRY",`Error on ${h}, trying fallback ${f+1}`);continue}throw e}}throw l||Error(`All ${a} URLs failed with status ${c}`)}}e.s(["AntigravityExecutor",()=>o])},246208,e=>{"use strict";var t=e.i(511938),n=e.i(16023);class r extends t.BaseExecutor{_currentModel="";constructor(){super("gemini-cli",n.PROVIDERS["gemini-cli"])}buildUrl(e,t,n=0){return`${this.config.baseUrl}:${t?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(e,t=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${e.accessToken}`,"User-Agent":`GeminiCLI/0.31.0/${this._currentModel||"unknown"} (linux; x64)`,"X-Goog-Api-Client":"google-genai-sdk/1.41.0 gl-node/v22.19.0",...t&&{Accept:"text/event-stream"}}}transformRequest(e,t,n,r){return this._currentModel=e||"","1"===process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE&&t?.project||r?.projectId&&(t.project=r.projectId),t}async refreshCredentials(e,t){if(!e.refreshToken)return null;try{let r=await fetch(n.OAUTH_ENDPOINTS.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!r.ok)return null;let o=await r.json();return t?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:o.access_token,refreshToken:o.refresh_token||e.refreshToken,expiresIn:o.expires_in,projectId:e.projectId}}catch(e){return t?.error?.("TOKEN",`Gemini CLI refresh error: ${e.message}`),null}}}e.s(["GeminiCLIExecutor",()=>r])},927219,e=>{"use strict";var t=e.i(511938),n=e.i(16023),r=e.i(878947);class o extends t.BaseExecutor{constructor(){super("github",n.PROVIDERS.github)}buildUrl(e,t,n=0){return"openai-responses"===(0,r.getModelTargetFormat)("gh",e)?this.config.responsesBaseUrl||this.config.baseUrl?.replace(/\/chat\/completions\/?$/,"/responses")||"https://api.githubcopilot.com/responses":this.config.baseUrl}buildHeaders(e,t=!0){let n=e.copilotToken||e.accessToken;return{Authorization:`Bearer ${n}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-request-id":crypto.randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:t?"text/event-stream":"application/json"}}async refreshCopilotToken(e,t){try{let n=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${e}`,"User-Agent":"GithubCopilot/1.0","Editor-Version":"vscode/1.100.0","Editor-Plugin-Version":"copilot/1.300.0",Accept:"application/json"}});if(!n.ok)return null;let r=await n.json();return t?.info?.("TOKEN","Copilot token refreshed"),{token:r.token,expiresAt:r.expires_at}}catch(e){return t?.error?.("TOKEN",`Copilot refresh error: ${e.message}`),null}}async refreshGitHubToken(e,t){try{let r=await fetch(n.OAUTH_ENDPOINTS.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!r.ok)return null;let o=await r.json();return t?.info?.("TOKEN","GitHub token refreshed"),{accessToken:o.access_token,refreshToken:o.refresh_token||e,expiresIn:o.expires_in}}catch(e){return t?.error?.("TOKEN",`GitHub refresh error: ${e.message}`),null}}async refreshCredentials(e,t){let n=await this.refreshCopilotToken(e.accessToken,t);if(!n&&e.refreshToken){let r=await this.refreshGitHubToken(e.refreshToken,t);if(r?.accessToken)return(n=await this.refreshCopilotToken(r.accessToken,t))?{...r,copilotToken:n.token,copilotTokenExpiresAt:n.expiresAt}:r}return n?{accessToken:e.accessToken,refreshToken:e.refreshToken,copilotToken:n.token,copilotTokenExpiresAt:n.expiresAt}:null}needsRefresh(e){if(!e.copilotToken)return!0;if(e.copilotTokenExpiresAt){let t=e.copilotTokenExpiresAt;if("number"==typeof t&&t<1e12?t*=1e3:"string"==typeof t&&(t=new Date(t).getTime()),t-Date.now()<3e5)return!0}return super.needsRefresh(e)}}e.s(["GithubExecutor",()=>o])},960059,e=>{"use strict";var t=e.i(254799),n=e.i(511938),r=e.i(16023);class o extends n.BaseExecutor{constructor(){super("iflow",r.PROVIDERS.iflow)}createIFlowSignature(e,n,r,o){if(!o)return"";let s=`${e}:${n}:${r}`,i=t.default.createHmac("sha256",o);return i.update(s),i.digest("hex")}buildHeaders(e,n=!0){let r=`session-${t.default.randomUUID()}`,o=Date.now(),s=this.config.headers?.["User-Agent"]||"iFlow-Cli",i=e.apiKey||e.accessToken||"",a=this.createIFlowSignature(s,r,o,i),l={"Content-Type":"application/json",...this.config.headers,"session-id":r,"x-iflow-timestamp":o.toString(),"x-iflow-signature":a};return e.apiKey?l.Authorization=`Bearer ${e.apiKey}`:e.accessToken&&(l.Authorization=`Bearer ${e.accessToken}`),n&&(l.Accept="text/event-stream"),l}buildUrl(e,t,n=0,r=null){return this.config.baseUrl}transformRequest(e,t,n,r){return t}}e.s(["IFlowExecutor",()=>o])},692428,e=>{"use strict";var t=e.i(511938),n=e.i(16023),r=e.i(689960),o=e.i(928602);let s=new Uint32Array(256);for(let e=0;e<256;e++){let t=e;for(let e=0;e<8;e++)t=1&t?0xedb88320^t>>>1:t>>>1;s[e]=t>>>0}function i(e){let t=0xffffffff;for(let n=0;n<e.length;n++)t=s[(t^e[n])&255]^t>>>8;return(0xffffffff^t)>>>0}class a extends t.BaseExecutor{constructor(){super("kiro",n.PROVIDERS.kiro)}buildHeaders(e,t=!0){let n={...this.config.headers,"Amz-Sdk-Request":"attempt=1; max=3","Amz-Sdk-Invocation-Id":(0,r.v4)()};return e.accessToken&&(n.Authorization=`Bearer ${e.accessToken}`),n}transformRequest(e,t,n,r){return t}async execute({model:e,body:t,stream:n,credentials:r,signal:o,log:s}){let i=this.buildUrl(e,n,0),a=this.buildHeaders(r,n),l=this.transformRequest(e,t,n,r),c=await fetch(i,{method:"POST",headers:a,body:JSON.stringify(l),signal:o});return c.ok?{response:this.transformEventStreamToSSE(c,e),url:i,headers:a,transformedBody:l}:{response:c,url:i,headers:a,transformedBody:l}}transformEventStreamToSSE(e,t){let n=new Uint8Array(0),r=0,o=`chatcmpl-${Date.now()}`,s=Math.floor(Date.now()/1e3),a={endDetected:!1,finishEmitted:!1,hasToolCalls:!1,toolCallIndex:0,seenToolIds:new Map},l=new TransformStream({async transform(e,l){let c=new Uint8Array(n.length+e.length);c.set(n),c.set(e,n.length),n=c;let u=0;for(;n.length>=16&&u<1e3;){u++;let e=new DataView(n.buffer,n.byteOffset).getUint32(0,!1);if(e<16||e>n.length||n.length<e)break;let c=n.slice(0,e);n=n.slice(e);let f=function(e){try{let t=new DataView(e.buffer,e.byteOffset);t.getUint32(0,!1);let n=t.getUint32(4,!1),r=t.getUint32(8,!1),o=i(e.slice(0,8));if(r!==o)return console.warn(`[Kiro] Prelude CRC mismatch: expected ${r}, got ${o} — skipping corrupted frame`),null;let s=t.getUint32(e.length-4,!1),a=i(e.slice(0,e.length-4));if(s!==a)return console.warn(`[Kiro] Message CRC mismatch: expected ${s}, got ${a} — skipping corrupted frame`),null;let l={},c=12,u=12+n;for(;c<u&&c<e.length;){let t=e[c];if(++c+t>e.length)break;let n=new TextDecoder().decode(e.slice(c,c+t)),r=e[c+=t];if(c++,7===r){let t=e[c]<<8|e[c+1];if((c+=2)+t>e.length)break;let r=new TextDecoder().decode(e.slice(c,c+t));c+=t,l[n]=r}else break}let f=12+n,h=e.length-4,p=null;if(h>f){let t=new TextDecoder().decode(e.slice(f,h));if(!t||!t.trim())return{headers:l,payload:null};try{p=JSON.parse(t)}catch(n){let e=n instanceof Error?n:Error(String(n));console.warn(`[Kiro] Failed to parse payload: ${e.message} | payload: ${t.substring(0,100)}`),p={raw:t}}}return{headers:l,payload:p}}catch(t){let e=t instanceof Error?t:Error(String(t));return console.warn(`[Kiro] Frame parse error: ${e.message}`),null}}(c);if(!f)continue;let h=f.headers[":event-type"]||"";if(a.totalContentLength||(a.totalContentLength=0),a.contextUsagePercentage||(a.contextUsagePercentage=0),"assistantResponseEvent"===h){let e="string"==typeof f.payload?.content?f.payload.content:"";if(!e)continue;a.totalContentLength+=e.length;let n={id:o,object:"chat.completion.chunk",created:s,model:t,choices:[{index:0,delta:0===r?{role:"assistant",content:e}:{content:e},finish_reason:null}]};r++,l.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(n)}
|
|
1
|
+
module.exports=[954372,e=>{"use strict";e.i(312125);var t=e.i(400722),n=e.i(496727);let r={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"};function o(e){if(!e||"object"!=typeof e)return e;let t={...e};return void 0!==t.input_tokens&&(t.input_tokens+=2e3),void 0!==t.prompt_tokens&&(t.prompt_tokens+=2e3),void 0!==t.total_tokens?t.total_tokens+=2e3:void 0!==t.prompt_tokens&&void 0!==t.completion_tokens&&(t.total_tokens=t.prompt_tokens+t.completion_tokens),t}function s(e,t){if(!e||"object"!=typeof e)return e;let r={[n.FORMATS.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[n.FORMATS.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[n.FORMATS.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},o=r[t];t===n.FORMATS.GEMINI_CLI||t===n.FORMATS.ANTIGRAVITY?o=r[n.FORMATS.GEMINI]:t===n.FORMATS.OPENAI_RESPONSE?o=r[n.FORMATS.OPENAI_RESPONSES]:o||(o=r.default);let s={};for(let t of o)void 0!==e[t]&&(s[t]=e[t]);return s}function i(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t={},n=(e,n)=>{if(null==n)return;let r=Number(n);Number.isFinite(r)&&(t[e]=r)};return(n("prompt_tokens",e?.prompt_tokens),n("completion_tokens",e?.completion_tokens),n("total_tokens",e?.total_tokens),n("cache_read_input_tokens",e?.cache_read_input_tokens),n("cache_creation_input_tokens",e?.cache_creation_input_tokens),n("cached_tokens",e?.cached_tokens),n("reasoning_tokens",e?.reasoning_tokens),0===Object.keys(t).length)?null:t}function a(e){if(!e||"object"!=typeof e)return!1;for(let t of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof e[t]&&e[t]>0)return!0;return!1}function l(e){if(!e||"object"!=typeof e)return null;if("message_start"===e.type&&e.message?.usage){let t=e.message.usage,n=t.input_tokens||t.prompt_tokens||0;if(n>0)return i({prompt_tokens:n,completion_tokens:t.output_tokens||t.completion_tokens||0,cache_read_input_tokens:t.cache_read_input_tokens,cache_creation_input_tokens:t.cache_creation_input_tokens})}if("message_delta"===e.type&&e.usage&&"object"==typeof e.usage)return i({prompt_tokens:e.usage.input_tokens||0,completion_tokens:e.usage.output_tokens||0,cache_read_input_tokens:e.usage.cache_read_input_tokens,cache_creation_input_tokens:e.usage.cache_creation_input_tokens});if(("response.completed"===e.type||"response.done"===e.type)&&e.response?.usage&&"object"==typeof e.response.usage){let t=e.response.usage;return i({prompt_tokens:t.input_tokens||t.prompt_tokens||0,completion_tokens:t.output_tokens||t.completion_tokens||0,cached_tokens:t.input_tokens_details?.cached_tokens,reasoning_tokens:t.output_tokens_details?.reasoning_tokens})}return e.usage&&"object"==typeof e.usage&&void 0!==e.usage.prompt_tokens?i({prompt_tokens:e.usage.prompt_tokens,completion_tokens:e.usage.completion_tokens||0,cached_tokens:e.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:e.usage.completion_tokens_details?.reasoning_tokens}):e.usageMetadata&&"object"==typeof e.usageMetadata?i({prompt_tokens:e.usageMetadata?.promptTokenCount||0,completion_tokens:e.usageMetadata?.candidatesTokenCount||0,total_tokens:e.usageMetadata?.totalTokenCount,cached_tokens:e.usageMetadata?.cachedContentTokenCount,reasoning_tokens:e.usageMetadata?.thoughtsTokenCount}):null}function c(e){if(!e||"string"!=typeof e)return 0;let t=e.match(/[\u3000-\u9fff\uf900-\ufaff\u{20000}-\u{2fa1f}]/gu);return(t?t.length:0)+Math.ceil(1.3*e.replace(/[\u3000-\u9fff\uf900-\ufaff]/g," ").split(/(\s+|[^\w\s]|(?<=[a-z])(?=[A-Z]))/).filter(e=>e&&e.trim().length>0).length)}function u(e,t,r=n.FORMATS.OPENAI){var s,i;return s=function(e){if(!e||"object"!=typeof e)return 0;try{let t=0,n=0;if(e.tools&&Array.isArray(e.tools)){let r=JSON.stringify(e.tools);t=Math.ceil(r.length/6);let{tools:o,...s}=e;n=c(JSON.stringify(s))}else n=c(JSON.stringify(e));return n+t}catch(e){return 0}}(e),i=t&&!(t<=0)?Math.max(1,Math.ceil(t/3.5)):0,r===n.FORMATS.CLAUDE?o({input_tokens:s,output_tokens:i,estimated:!0}):o({prompt_tokens:s,completion_tokens:i,total_tokens:s+i,estimated:!0})}function f(e,n,o=null,s=null,i=null){if(!n||"object"!=typeof n)return;let a=e?.toUpperCase()||"UNKNOWN",l=n?.prompt_tokens||n?.input_tokens||0,c=n?.completion_tokens||n?.output_tokens||0,u=s?s.slice(0,8)+"...":"unknown",h=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${r.green}[USAGE] ${a} | in=${l} | out=${c} | account=${u}${r.reset}`;n.estimated&&(h+=` ${r.yellow}(estimated)${r.reset}`);let p=n.cache_read_input_tokens||n.cached_tokens;p&&(h+=` | cache_read=${p}`);let d=n.cache_creation_input_tokens;d&&(h+=` | cache_create=${d}`);let g=n.reasoning_tokens;g&&(h+=` | reasoning=${g}`),console.log(h);let m={input:l+(p||0)+(d||0),output:c,cacheRead:p||0,cacheCreation:d||0,reasoning:g||0};(0,t.saveRequestUsage)({model:o,provider:e,connectionId:s,apiKeyId:i?.id||void 0,apiKeyName:i?.name||void 0,tokens:m}).catch(()=>{}),(0,t.appendRequestLog)({model:o,provider:e,connectionId:s,tokens:m,status:"200 OK"}).catch(()=>{})}e.s(["COLORS",0,r,"addBufferToUsage",()=>o,"estimateUsage",()=>u,"extractUsage",()=>l,"filterUsageForFormat",()=>s,"hasValidUsage",()=>a,"logUsage",()=>f])},42075,e=>{"use strict";var t=e.i(254799),n=e.i(511938),r=e.i(16023);class o extends n.BaseExecutor{constructor(){super("antigravity",r.PROVIDERS.antigravity)}buildUrl(e,t,n=0){let r=this.getBaseUrls(),o=r[n]||r[0];return`${o}/v1internal:${t?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(e,t=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${e.accessToken}`,"User-Agent":this.config.headers?.["User-Agent"]||"antigravity/1.104.0 darwin/arm64","X-OmniRoute-Source":"omniroute",...t&&{Accept:"text/event-stream"}}}transformRequest(e,n,r,o){let s=n?.project,i=o?.projectId,a="1"===process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE&&s?s:i||s;if(!a)throw Error("Missing Google projectId for Antigravity account. Please reconnect OAuth so OmniRoute can fetch your real Cloud Code project (loadCodeAssist).");let l=(n.request?.contents?.map(e=>{let t=e.role;e.parts?.some(e=>e.functionResponse)&&(t="user");let n=e.parts?.filter(e=>!e.thought&&!e.thoughtSignature)||[];return{...e,role:t,parts:n}})||[]).filter(e=>!Array.isArray(e.parts)||e.parts.length>0),c={...n.request,...l.length>0&&{contents:l},sessionId:n.request?.sessionId||this.generateSessionId(),safetySettings:void 0,toolConfig:n.request?.tools?.length>0?{functionCallingConfig:{mode:"VALIDATED"}}:n.request?.toolConfig},u=e&&e.includes("/")?e.split("/").pop():e;return{...n,project:a,model:u,userAgent:"antigravity",requestType:"agent",requestId:`agent-${t.default.randomUUID()}`,request:c}}async refreshCredentials(e,t){if(!e.refreshToken)return null;try{let n=await fetch(r.OAUTH_ENDPOINTS.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!n.ok)return null;let o=await n.json();return t?.info?.("TOKEN","Antigravity refreshed"),{accessToken:o.access_token,refreshToken:o.refresh_token||e.refreshToken,expiresIn:o.expires_in,projectId:e.projectId}}catch(e){return t?.error?.("TOKEN",`Antigravity refresh error: ${e.message}`),null}}generateSessionId(){return`-${Math.floor(9e18*Math.random())}`}parseRetryHeaders(e){if(!e?.get)return null;let t=e.get("retry-after");if(t){let e=parseInt(t,10);if(!isNaN(e)&&e>0)return 1e3*e;let n=new Date(t);if(!isNaN(n.getTime())){let e=n.getTime()-Date.now();return e>0?e:null}}let n=e.get("x-ratelimit-reset-after");if(n){let e=parseInt(n,10);if(!isNaN(e)&&e>0)return 1e3*e}let r=e.get("x-ratelimit-reset");if(r){let e=1e3*parseInt(r,10)-Date.now();return e>0?e:null}return null}parseRetryFromErrorMessage(e){if(!e||"string"!=typeof e)return null;let t=e.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!t)return null;let n=0;return t[1]&&(n+=3600*parseInt(t[1])*1e3),t[2]&&(n+=60*parseInt(t[2])*1e3),t[3]&&(n+=1e3*parseInt(t[3])),n>0?n:null}async execute({model:e,body:t,stream:n,credentials:o,signal:s,log:i}){let a=this.getFallbackCount(),l=null,c=0,u={};for(let f=0;f<a;f++){let h=this.buildUrl(e,n,f),p=this.buildHeaders(o,n),d=this.transformRequest(e,t,n,o);u[f]||(u[f]=0);try{let e=await fetch(h,{method:"POST",headers:p,body:JSON.stringify(d),signal:s});if(e.status===r.HTTP_STATUS.RATE_LIMITED||e.status===r.HTTP_STATUS.SERVICE_UNAVAILABLE){let t=this.parseRetryHeaders(e.headers);if(!t)try{let n=await e.clone().text(),r=JSON.parse(n),o=r?.error?.message||r?.message||"";t=this.parseRetryFromErrorMessage(o)}catch(e){}if(t&&t<=1e4){i?.debug?.("RETRY",`${e.status} with Retry-After: ${Math.ceil(t/1e3)}s, waiting...`),await new Promise(e=>setTimeout(e,t)),f--;continue}if(e.status===r.HTTP_STATUS.RATE_LIMITED&&(!t||0===t)&&u[f]<3){u[f]++;let e=Math.min(1e3*2**u[f],1e4);i?.debug?.("RETRY",`429 auto retry ${u[f]}/3 after ${e/1e3}s`),await new Promise(t=>setTimeout(t,e)),f--;continue}if(i?.debug?.("RETRY",`${e.status}, Retry-After ${t?`too long (${Math.ceil(t/1e3)}s)`:"missing"}, trying fallback`),c=e.status,f+1<a)continue}if(this.shouldRetry(e.status,f)){i?.debug?.("RETRY",`${e.status} on ${h}, trying fallback ${f+1}`),c=e.status;continue}return{response:e,url:h,headers:p,transformedBody:d}}catch(e){if(l=e,f+1<a){i?.debug?.("RETRY",`Error on ${h}, trying fallback ${f+1}`);continue}throw e}}throw l||Error(`All ${a} URLs failed with status ${c}`)}}e.s(["AntigravityExecutor",()=>o])},246208,e=>{"use strict";var t=e.i(511938),n=e.i(16023);class r extends t.BaseExecutor{_currentModel="";constructor(){super("gemini-cli",n.PROVIDERS["gemini-cli"])}buildUrl(e,t,n=0){return`${this.config.baseUrl}:${t?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(e,t=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${e.accessToken}`,"User-Agent":`GeminiCLI/0.31.0/${this._currentModel||"unknown"} (linux; x64)`,"X-Goog-Api-Client":"google-genai-sdk/1.41.0 gl-node/v22.19.0",...t&&{Accept:"text/event-stream"}}}transformRequest(e,t,n,r){return this._currentModel=e||"","1"===process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE&&t?.project||r?.projectId&&(t.project=r.projectId),t}async refreshCredentials(e,t){if(!e.refreshToken)return null;try{let r=await fetch(n.OAUTH_ENDPOINTS.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!r.ok)return null;let o=await r.json();return t?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:o.access_token,refreshToken:o.refresh_token||e.refreshToken,expiresIn:o.expires_in,projectId:e.projectId}}catch(e){return t?.error?.("TOKEN",`Gemini CLI refresh error: ${e.message}`),null}}}e.s(["GeminiCLIExecutor",()=>r])},927219,e=>{"use strict";var t=e.i(511938),n=e.i(16023),r=e.i(878947);class o extends t.BaseExecutor{constructor(){super("github",n.PROVIDERS.github)}buildUrl(e,t,n=0){return"openai-responses"===(0,r.getModelTargetFormat)("gh",e)?this.config.responsesBaseUrl||this.config.baseUrl?.replace(/\/chat\/completions\/?$/,"/responses")||"https://api.githubcopilot.com/responses":this.config.baseUrl}buildHeaders(e,t=!0){let n=e.copilotToken||e.accessToken;return{Authorization:`Bearer ${n}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-request-id":crypto.randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:t?"text/event-stream":"application/json"}}async refreshCopilotToken(e,t){try{let n=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${e}`,"User-Agent":"GithubCopilot/1.0","Editor-Version":"vscode/1.100.0","Editor-Plugin-Version":"copilot/1.300.0",Accept:"application/json"}});if(!n.ok)return null;let r=await n.json();return t?.info?.("TOKEN","Copilot token refreshed"),{token:r.token,expiresAt:r.expires_at}}catch(e){return t?.error?.("TOKEN",`Copilot refresh error: ${e.message}`),null}}async refreshGitHubToken(e,t){try{let r=await fetch(n.OAUTH_ENDPOINTS.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!r.ok)return null;let o=await r.json();return t?.info?.("TOKEN","GitHub token refreshed"),{accessToken:o.access_token,refreshToken:o.refresh_token||e,expiresIn:o.expires_in}}catch(e){return t?.error?.("TOKEN",`GitHub refresh error: ${e.message}`),null}}async refreshCredentials(e,t){let n=await this.refreshCopilotToken(e.accessToken,t);if(!n&&e.refreshToken){let r=await this.refreshGitHubToken(e.refreshToken,t);if(r?.accessToken)return(n=await this.refreshCopilotToken(r.accessToken,t))?{...r,copilotToken:n.token,copilotTokenExpiresAt:n.expiresAt}:r}return n?{accessToken:e.accessToken,refreshToken:e.refreshToken,copilotToken:n.token,copilotTokenExpiresAt:n.expiresAt}:null}needsRefresh(e){if(!e.copilotToken)return!0;if(e.copilotTokenExpiresAt){let t=e.copilotTokenExpiresAt;if("number"==typeof t&&t<1e12?t*=1e3:"string"==typeof t&&(t=new Date(t).getTime()),t-Date.now()<3e5)return!0}return super.needsRefresh(e)}}e.s(["GithubExecutor",()=>o])},960059,e=>{"use strict";var t=e.i(254799),n=e.i(511938),r=e.i(16023);class o extends n.BaseExecutor{constructor(){super("iflow",r.PROVIDERS.iflow)}createIFlowSignature(e,n,r,o){if(!o)return"";let s=`${e}:${n}:${r}`,i=t.default.createHmac("sha256",o);return i.update(s),i.digest("hex")}buildHeaders(e,n=!0){let r=`session-${t.default.randomUUID()}`,o=Date.now(),s=this.config.headers?.["User-Agent"]||"iFlow-Cli",i=e.apiKey||e.accessToken||"",a=this.createIFlowSignature(s,r,o,i),l={"Content-Type":"application/json",...this.config.headers,"session-id":r,"x-iflow-timestamp":o.toString(),"x-iflow-signature":a};return e.apiKey?l.Authorization=`Bearer ${e.apiKey}`:e.accessToken&&(l.Authorization=`Bearer ${e.accessToken}`),n&&(l.Accept="text/event-stream"),l}buildUrl(e,t,n=0,r=null){return this.config.baseUrl}transformRequest(e,t,n,r){return t}}e.s(["IFlowExecutor",()=>o])},692428,e=>{"use strict";var t=e.i(511938),n=e.i(16023),r=e.i(689960),o=e.i(928602);let s=new Uint32Array(256);for(let e=0;e<256;e++){let t=e;for(let e=0;e<8;e++)t=1&t?0xedb88320^t>>>1:t>>>1;s[e]=t>>>0}function i(e){let t=0xffffffff;for(let n=0;n<e.length;n++)t=s[(t^e[n])&255]^t>>>8;return(0xffffffff^t)>>>0}class a extends t.BaseExecutor{constructor(){super("kiro",n.PROVIDERS.kiro)}buildHeaders(e,t=!0){let n={...this.config.headers,"Amz-Sdk-Request":"attempt=1; max=3","Amz-Sdk-Invocation-Id":(0,r.v4)()};return e.accessToken&&(n.Authorization=`Bearer ${e.accessToken}`),n}transformRequest(e,t,n,r){let{model:o,...s}=t;return s}async execute({model:e,body:t,stream:n,credentials:r,signal:o,log:s}){let i=this.buildUrl(e,n,0),a=this.buildHeaders(r,n),l=this.transformRequest(e,t,n,r),c=await fetch(i,{method:"POST",headers:a,body:JSON.stringify(l),signal:o});return c.ok?{response:this.transformEventStreamToSSE(c,e),url:i,headers:a,transformedBody:l}:{response:c,url:i,headers:a,transformedBody:l}}transformEventStreamToSSE(e,t){let n=new Uint8Array(0),r=0,o=`chatcmpl-${Date.now()}`,s=Math.floor(Date.now()/1e3),a={endDetected:!1,finishEmitted:!1,hasToolCalls:!1,toolCallIndex:0,seenToolIds:new Map},l=new TransformStream({async transform(e,l){let c=new Uint8Array(n.length+e.length);c.set(n),c.set(e,n.length),n=c;let u=0;for(;n.length>=16&&u<1e3;){u++;let e=new DataView(n.buffer,n.byteOffset).getUint32(0,!1);if(e<16||e>n.length||n.length<e)break;let c=n.slice(0,e);n=n.slice(e);let f=function(e){try{let t=new DataView(e.buffer,e.byteOffset);t.getUint32(0,!1);let n=t.getUint32(4,!1),r=t.getUint32(8,!1),o=i(e.slice(0,8));if(r!==o)return console.warn(`[Kiro] Prelude CRC mismatch: expected ${r}, got ${o} — skipping corrupted frame`),null;let s=t.getUint32(e.length-4,!1),a=i(e.slice(0,e.length-4));if(s!==a)return console.warn(`[Kiro] Message CRC mismatch: expected ${s}, got ${a} — skipping corrupted frame`),null;let l={},c=12,u=12+n;for(;c<u&&c<e.length;){let t=e[c];if(++c+t>e.length)break;let n=new TextDecoder().decode(e.slice(c,c+t)),r=e[c+=t];if(c++,7===r){let t=e[c]<<8|e[c+1];if((c+=2)+t>e.length)break;let r=new TextDecoder().decode(e.slice(c,c+t));c+=t,l[n]=r}else break}let f=12+n,h=e.length-4,p=null;if(h>f){let t=new TextDecoder().decode(e.slice(f,h));if(!t||!t.trim())return{headers:l,payload:null};try{p=JSON.parse(t)}catch(n){let e=n instanceof Error?n:Error(String(n));console.warn(`[Kiro] Failed to parse payload: ${e.message} | payload: ${t.substring(0,100)}`),p={raw:t}}}return{headers:l,payload:p}}catch(t){let e=t instanceof Error?t:Error(String(t));return console.warn(`[Kiro] Frame parse error: ${e.message}`),null}}(c);if(!f)continue;let h=f.headers[":event-type"]||"";if(a.totalContentLength||(a.totalContentLength=0),a.contextUsagePercentage||(a.contextUsagePercentage=0),"assistantResponseEvent"===h){let e="string"==typeof f.payload?.content?f.payload.content:"";if(!e)continue;a.totalContentLength+=e.length;let n={id:o,object:"chat.completion.chunk",created:s,model:t,choices:[{index:0,delta:0===r?{role:"assistant",content:e}:{content:e},finish_reason:null}]};r++,l.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(n)}
|
|
2
2
|
|
|
3
3
|
`))}if("codeEvent"===h&&f.payload?.content){let e={id:o,object:"chat.completion.chunk",created:s,model:t,choices:[{index:0,delta:{content:f.payload.content},finish_reason:null}]};r++,l.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(e)}
|
|
4
4
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},442315,(e,t,r)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,r)=>{"use strict";var n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a={},c={RequestCookies:()=>y,ResponseCookies:()=>f,parseCookie:()=>p,parseSetCookie:()=>u,stringifyCookie:()=>d};for(var l in c)n(a,l,{get:c[l],enumerable:!0});function d(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function p(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,s]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=s?s:"true"))}catch{}}return t}function u(e){if(!e)return;let[[t,r],...n]=p(e),{domain:s,expires:o,httponly:i,maxage:a,path:c,samesite:l,secure:d,partitioned:u,priority:y}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var f,g,v={name:t,value:decodeURIComponent(r),domain:s,...o&&{expires:new Date(o)},...i&&{httpOnly:!0},..."string"==typeof a&&{maxAge:Number(a)},path:c,...l&&{sameSite:m.includes(f=(f=l).toLowerCase())?f:void 0},...d&&{secure:!0},...y&&{priority:h.includes(g=(g=y).toLowerCase())?g:void 0},...u&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of o(t))i.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(a=s(t,r))||a.enumerable});return e})(n({},"__esModule",{value:!0}),a);var m=["strict","lax","none"],h=["low","medium","high"],y=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of p(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>d(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>d(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const s=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(s)?s:function(e){if(!e)return[];var t,r,n,s,o,i=[],a=0;function c(){for(;a<e.length&&/\s/.test(e.charAt(a));)a+=1;return a<e.length}for(;a<e.length;){for(t=a,o=!1;c();)if(","===(r=e.charAt(a))){for(n=a,a+=1,c(),s=a;a<e.length&&"="!==(r=e.charAt(a))&&";"!==r&&","!==r;)a+=1;a<e.length&&"="===e.charAt(a)?(o=!0,a=s,i.push(e.substring(t,n)),t=a):a=n+1}else a+=1;(!o||a>=e.length)&&i.push(e.substring(t,e.length))}return i}(s)){const t=u(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,s=this._parsed;return s.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=d(r);t.append("set-cookie",e)}}(s,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(d).join("; ")}}},804730,e=>{e.v({name:"omniroute",version:"2.8.0",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"]}})},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},663370,632802,e=>{"use strict";let t=new TextEncoder,r=new TextDecoder;function n(...e){let t=new Uint8Array(e.reduce((e,{length:t})=>e+t,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}function s(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n>127)throw TypeError("non-ASCII string encountered in encode()");t[r]=n}return t}function o(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:r.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=r.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/");try{var n=t;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(n);let e=atob(n),r=new Uint8Array(e.length);for(let t=0;t<e.length;t++)r[t]=e.charCodeAt(t);return r}catch{throw TypeError("The input to be decoded is not correctly encoded.")}}function i(e){let r=e;return("string"==typeof r&&(r=t.encode(r)),Uint8Array.prototype.toBase64)?r.toBase64({alphabet:"base64url",omitPadding:!0}):(function(e){if(Uint8Array.prototype.toBase64)return e.toBase64();let t=[];for(let r=0;r<e.length;r+=32768)t.push(String.fromCharCode.apply(null,e.subarray(r,r+32768)));return btoa(t.join(""))})(r).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}e.s(["concat",()=>n,"decoder",0,r,"encode",()=>s,"encoder",0,t],632802),e.s(["decode",()=>o,"encode",()=>i],663370)},865466,e=>{"use strict";class t extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class r extends t{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}}class n extends t{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}}class s extends t{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class o extends t{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class i extends t{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class a extends t{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class c extends t{[Symbol.asyncIterator];static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(e="multiple matching keys found in the JSON Web Key Set",t){super(e,t)}}class l extends t{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}}e.s(["JOSEAlgNotAllowed",()=>s,"JOSENotSupported",()=>o,"JWSInvalid",()=>i,"JWSSignatureVerificationFailed",()=>l,"JWTClaimValidationFailed",()=>r,"JWTExpired",()=>n,"JWTInvalid",()=>a])},177278,e=>{"use strict";function t(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function r(...e){let t,n=e.filter(Boolean);if(0===n.length||1===n.length)return!0;for(let e of n){let r=Object.keys(e);if(!t||0===t.size){t=new Set(r);continue}for(let e of r){if(t.has(e))return!1;t.add(e)}}return!0}e.s(["isDisjoint",()=>r,"isJWK",0,e=>t(e)&&"string"==typeof e.kty,"isObject",()=>t,"isPrivateJWK",0,e=>"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d),"isPublicJWK",0,e=>"oct"!==e.kty&&void 0===e.d&&void 0===e.priv,"isSecretJWK",0,e=>"oct"===e.kty&&"string"==typeof e.k])},709939,e=>{"use strict";var t=e.i(663370),r=e.i(293233),n=e.i(865466),s=e.i(632802),o=e.i(913658),i=e.i(177278),a=e.i(48215),c=e.i(252665),l=e.i(18083);async function d(e,d,p){if(!(0,i.isObject)(e))throw new n.JWSInvalid("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new n.JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new n.JWSInvalid("JWS Protected Header incorrect type");if(void 0===e.payload)throw new n.JWSInvalid("JWS Payload missing");if("string"!=typeof e.signature)throw new n.JWSInvalid("JWS Signature missing or incorrect type");if(void 0!==e.header&&!(0,i.isObject)(e.header))throw new n.JWSInvalid("JWS Unprotected Header incorrect type");let u={};if(e.protected)try{let r=(0,t.decode)(e.protected);u=JSON.parse(s.decoder.decode(r))}catch{throw new n.JWSInvalid("JWS Protected Header is invalid")}if(!(0,i.isDisjoint)(u,e.header))throw new n.JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let m={...u,...e.header},h=(0,c.validateCrit)(n.JWSInvalid,new Map([["b64",!0]]),p?.crit,u,m),y=!0;if(h.has("b64")&&"boolean"!=typeof(y=u.b64))throw new n.JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:f}=m;if("string"!=typeof f||!f)throw new n.JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');let g=p&&function(e,t){if(void 0!==t&&(!Array.isArray(t)||t.some(e=>"string"!=typeof e)))throw TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)}("algorithms",p.algorithms);if(g&&!g.has(f))throw new n.JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');if(y){if("string"!=typeof e.payload)throw new n.JWSInvalid("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new n.JWSInvalid("JWS Payload must be a string or an Uint8Array instance");let v=!1;"function"==typeof d&&(d=await d(u,e),v=!0),(0,a.checkKeyType)(f,d,"verify");let w=(0,s.concat)(void 0!==e.protected?(0,s.encode)(e.protected):new Uint8Array,(0,s.encode)("."),"string"==typeof e.payload?y?(0,s.encode)(e.payload):s.encoder.encode(e.payload):e.payload),x=(0,o.decodeBase64url)(e.signature,"signature",n.JWSInvalid),b=await (0,l.normalizeKey)(d,f);if(!await (0,r.verify)(f,b,x,w))throw new n.JWSSignatureVerificationFailed;let _={payload:y?(0,o.decodeBase64url)(e.payload,"payload",n.JWSInvalid):"string"==typeof e.payload?s.encoder.encode(e.payload):e.payload};return(void 0!==e.protected&&(_.protectedHeader=u),void 0!==e.header&&(_.unprotectedHeader=e.header),v)?{..._,key:b}:_}async function p(e,t,r){if(e instanceof Uint8Array&&(e=s.decoder.decode(e)),"string"!=typeof e)throw new n.JWSInvalid("Compact JWS must be a string or Uint8Array");let{0:o,1:i,2:a,length:c}=e.split(".");if(3!==c)throw new n.JWSInvalid("Invalid Compact JWS");let l=await d({payload:i,protected:o,signature:a},t,r),p={payload:l.payload,protectedHeader:l.protectedHeader};return"function"==typeof t?{...p,key:l.key}:p}var u=e.i(224472);async function m(e,t,r){let s=await p(e,t,r);if(s.protectedHeader.crit?.includes("b64")&&!1===s.protectedHeader.b64)throw new n.JWTInvalid("JWTs MUST NOT use unencoded payload");let o={payload:(0,u.validateClaimsSet)(s.protectedHeader,s.payload,r),protectedHeader:s.protectedHeader};return"function"==typeof t?{...o,key:s.key}:o}e.s(["jwtVerify",()=>m],709939)},235328,e=>{"use strict";var t=e.i(709939),r=e.i(493458);e.i(245272);var n=e.i(548941);async function s(n){let s=n.headers.get("authorization");if(s?.startsWith("Bearer ")){let t=s.slice(7);try{let{validateApiKey:r}=await e.A(734680);if(await r(t))return!0}catch{}}if(process.env.JWT_SECRET)try{let e=await (0,r.cookies)(),n=e.get("auth_token")?.value;if(n){let e=new TextEncoder().encode(process.env.JWT_SECRET);return await (0,t.jwtVerify)(n,e),!0}}catch{}return!1}async function o(){try{let e=await (0,n.getSettings)();if(!1===e.requireLogin||!e.password&&!process.env.INITIAL_PASSWORD)return!1;return!0}catch{return!0}}e.s(["isAuthRequired",()=>o,"isAuthenticated",()=>s])},526346,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),s=e.i(759756),o=e.i(561916),i=e.i(174677),a=e.i(869741),c=e.i(316795),l=e.i(487718),d=e.i(995169),p=e.i(47587),u=e.i(666012),m=e.i(570101),h=e.i(626937),y=e.i(10372),f=e.i(193695);e.i(52474);var g=e.i(600220),v=e.i(89171),w=e.i(233405),x=e.i(224361),b=e.i(235328);let _=(0,x.promisify)(w.execFile);async function R(){try{let{stdout:e}=await _("npm",["info","omniroute","version","--json"],{timeout:1e4}),t=JSON.parse(e.trim());return"string"==typeof t?t:null}catch{return null}}function S(){try{return e.r(804730).version}catch{return"unknown"}}function A(e,t){if(!e)return!1;let r=e=>e.split(".").map(Number),[n,s,o]=r(e),[i,a,c]=r(t);return n!==i?n>i:s!==a?s>a:o>c}async function E(e){if(!(0,b.isAuthenticated)(e))return v.NextResponse.json({error:"Unauthorized"},{status:401});let t=S(),r=await R(),n=A(r,t);return v.NextResponse.json({current:t,latest:r??"unavailable",updateAvailable:n,channel:"npm"})}async function j(e){if(!(0,b.isAuthenticated)(e))return v.NextResponse.json({error:"Unauthorized"},{status:401});let t=S(),r=await R();return r?A(r,t)?((async()=>{try{await _("npm",["install","-g",`omniroute@${r}`,"--ignore-scripts"],{timeout:3e5}),await _("pm2",["restart","omniroute"]).catch(()=>null),console.log(`[AutoUpdate] Successfully updated to v${r}`)}catch(e){console.error("[AutoUpdate] Update failed:",e)}})(),v.NextResponse.json({success:!0,message:`Update to v${r} started. Restarting in ~30 seconds.`,from:t,to:r})):v.NextResponse.json({success:!1,error:`Already on latest version (${t})`,current:t,latest:r}):v.NextResponse.json({success:!1,error:"Could not reach npm registry"},{status:503})}e.s(["GET",()=>E,"POST",()=>j,"dynamic",0,"force-dynamic"],550560);var I=e.i(550560);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/system/version/route",pathname:"/api/system/version",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/system/version/route.ts",nextConfigOutput:"standalone",userland:I}),{workAsyncStorage:O,workUnitAsyncStorage:C,serverHooks:T}=k;function J(){return(0,n.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:C})}async function W(e,t,n){k.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/system/version/route";v=v.replace(/\/index$/,"")||"/";let w=await k.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:x,params:b,nextConfig:_,parsedUrl:R,isDraftMode:S,prerenderManifest:A,routerServerContext:E,isOnDemandRevalidate:j,revalidateOnlyGenerated:I,resolvedPathname:O,clientReferenceManifest:C,serverActionsManifest:T}=w,J=(0,a.normalizeAppPath)(v),W=!!(A.dynamicRoutes[J]||A.routes[O]),P=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,R,!1):t.end("This page could not be found"),null);if(W&&!S){let e=!!A.routes[O],t=A.dynamicRoutes[J];if(t&&!1===t.fallback&&!e){if(_.experimental.adapterPath)return await P();throw new f.NoFallbackError}}let N=null;!W||k.isDev||S||(N="/index"===(N=O)?"/":N);let U=!0===k.isDev||!W,D=W&&!U;T&&C&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:C,serverActionsManifest:T});let H=e.method||"GET",L=(0,o.getTracer)(),q=L.getActiveScopeSpan(),$={params:b,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:_.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>k.onRequestError(e,t,n,s,E)},sharedContext:{buildId:x}},M=new c.NodeNextRequest(e),F=new c.NodeNextResponse(t),K=l.NextRequestAdapter.fromNodeNextRequest(M,(0,l.signalFromNodeResponse)(t));try{let i=async e=>k.handle(K,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.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 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} ${v}`)}),a=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!a&&j&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(s);e.fetchMetrics=$.renderOpts.fetchMetrics;let c=$.renderOpts.pendingWaitUntil;c&&n.waitUntil&&(n.waitUntil(c),c=void 0);let l=$.renderOpts.collectedTags;if(!W)return await (0,u.sendResponse)(M,F,o,$.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,E),t}},d=await k.handleResponse({req:e,nextConfig:_,cacheKey:N,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:a});if(!W)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});a||t.setHeader("x-nextjs-cache",j?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return a&&W||f.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,u.sendResponse)(M,F,new Response(d.value.body,{headers:f,status:d.value.status||200})),null};q?await c(q):await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},c))}catch(t){if(t instanceof f.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,E),W)throw t;return await (0,u.sendResponse)(M,F,new Response(null,{status:500})),null}}e.s(["handler",()=>W,"patchFetch",()=>J,"routeModule",()=>k,"serverHooks",()=>T,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>C],526346)},606102,e=>{e.v(e=>Promise.resolve().then(()=>e(548941)))},789543,e=>{e.v(e=>Promise.resolve().then(()=>e(385498)))},579042,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_utils_apiKey_ts_fa113e09._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_65de0558._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},734680,e=>{e.v(e=>Promise.resolve().then(()=>e(125852)))}];
|
|
1
|
+
module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},442315,(e,t,r)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,r)=>{"use strict";var n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a={},c={RequestCookies:()=>y,ResponseCookies:()=>f,parseCookie:()=>p,parseSetCookie:()=>u,stringifyCookie:()=>d};for(var l in c)n(a,l,{get:c[l],enumerable:!0});function d(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function p(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,s]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=s?s:"true"))}catch{}}return t}function u(e){if(!e)return;let[[t,r],...n]=p(e),{domain:s,expires:o,httponly:i,maxage:a,path:c,samesite:l,secure:d,partitioned:u,priority:y}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var f,g,v={name:t,value:decodeURIComponent(r),domain:s,...o&&{expires:new Date(o)},...i&&{httpOnly:!0},..."string"==typeof a&&{maxAge:Number(a)},path:c,...l&&{sameSite:m.includes(f=(f=l).toLowerCase())?f:void 0},...d&&{secure:!0},...y&&{priority:h.includes(g=(g=y).toLowerCase())?g:void 0},...u&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of o(t))i.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(a=s(t,r))||a.enumerable});return e})(n({},"__esModule",{value:!0}),a);var m=["strict","lax","none"],h=["low","medium","high"],y=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of p(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>d(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>d(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const s=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(s)?s:function(e){if(!e)return[];var t,r,n,s,o,i=[],a=0;function c(){for(;a<e.length&&/\s/.test(e.charAt(a));)a+=1;return a<e.length}for(;a<e.length;){for(t=a,o=!1;c();)if(","===(r=e.charAt(a))){for(n=a,a+=1,c(),s=a;a<e.length&&"="!==(r=e.charAt(a))&&";"!==r&&","!==r;)a+=1;a<e.length&&"="===e.charAt(a)?(o=!0,a=s,i.push(e.substring(t,n)),t=a):a=n+1}else a+=1;(!o||a>=e.length)&&i.push(e.substring(t,e.length))}return i}(s)){const t=u(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,s=this._parsed;return s.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=d(r);t.append("set-cookie",e)}}(s,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(d).join("; ")}}},804730,e=>{e.v({name:"omniroute",version:"2.8.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"]}})},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},663370,632802,e=>{"use strict";let t=new TextEncoder,r=new TextDecoder;function n(...e){let t=new Uint8Array(e.reduce((e,{length:t})=>e+t,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}function s(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n>127)throw TypeError("non-ASCII string encountered in encode()");t[r]=n}return t}function o(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:r.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=r.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/");try{var n=t;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(n);let e=atob(n),r=new Uint8Array(e.length);for(let t=0;t<e.length;t++)r[t]=e.charCodeAt(t);return r}catch{throw TypeError("The input to be decoded is not correctly encoded.")}}function i(e){let r=e;return("string"==typeof r&&(r=t.encode(r)),Uint8Array.prototype.toBase64)?r.toBase64({alphabet:"base64url",omitPadding:!0}):(function(e){if(Uint8Array.prototype.toBase64)return e.toBase64();let t=[];for(let r=0;r<e.length;r+=32768)t.push(String.fromCharCode.apply(null,e.subarray(r,r+32768)));return btoa(t.join(""))})(r).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}e.s(["concat",()=>n,"decoder",0,r,"encode",()=>s,"encoder",0,t],632802),e.s(["decode",()=>o,"encode",()=>i],663370)},865466,e=>{"use strict";class t extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class r extends t{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}}class n extends t{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}}class s extends t{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class o extends t{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class i extends t{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class a extends t{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class c extends t{[Symbol.asyncIterator];static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(e="multiple matching keys found in the JSON Web Key Set",t){super(e,t)}}class l extends t{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}}e.s(["JOSEAlgNotAllowed",()=>s,"JOSENotSupported",()=>o,"JWSInvalid",()=>i,"JWSSignatureVerificationFailed",()=>l,"JWTClaimValidationFailed",()=>r,"JWTExpired",()=>n,"JWTInvalid",()=>a])},177278,e=>{"use strict";function t(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function r(...e){let t,n=e.filter(Boolean);if(0===n.length||1===n.length)return!0;for(let e of n){let r=Object.keys(e);if(!t||0===t.size){t=new Set(r);continue}for(let e of r){if(t.has(e))return!1;t.add(e)}}return!0}e.s(["isDisjoint",()=>r,"isJWK",0,e=>t(e)&&"string"==typeof e.kty,"isObject",()=>t,"isPrivateJWK",0,e=>"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d),"isPublicJWK",0,e=>"oct"!==e.kty&&void 0===e.d&&void 0===e.priv,"isSecretJWK",0,e=>"oct"===e.kty&&"string"==typeof e.k])},709939,e=>{"use strict";var t=e.i(663370),r=e.i(293233),n=e.i(865466),s=e.i(632802),o=e.i(913658),i=e.i(177278),a=e.i(48215),c=e.i(252665),l=e.i(18083);async function d(e,d,p){if(!(0,i.isObject)(e))throw new n.JWSInvalid("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new n.JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new n.JWSInvalid("JWS Protected Header incorrect type");if(void 0===e.payload)throw new n.JWSInvalid("JWS Payload missing");if("string"!=typeof e.signature)throw new n.JWSInvalid("JWS Signature missing or incorrect type");if(void 0!==e.header&&!(0,i.isObject)(e.header))throw new n.JWSInvalid("JWS Unprotected Header incorrect type");let u={};if(e.protected)try{let r=(0,t.decode)(e.protected);u=JSON.parse(s.decoder.decode(r))}catch{throw new n.JWSInvalid("JWS Protected Header is invalid")}if(!(0,i.isDisjoint)(u,e.header))throw new n.JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let m={...u,...e.header},h=(0,c.validateCrit)(n.JWSInvalid,new Map([["b64",!0]]),p?.crit,u,m),y=!0;if(h.has("b64")&&"boolean"!=typeof(y=u.b64))throw new n.JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:f}=m;if("string"!=typeof f||!f)throw new n.JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');let g=p&&function(e,t){if(void 0!==t&&(!Array.isArray(t)||t.some(e=>"string"!=typeof e)))throw TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)}("algorithms",p.algorithms);if(g&&!g.has(f))throw new n.JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');if(y){if("string"!=typeof e.payload)throw new n.JWSInvalid("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new n.JWSInvalid("JWS Payload must be a string or an Uint8Array instance");let v=!1;"function"==typeof d&&(d=await d(u,e),v=!0),(0,a.checkKeyType)(f,d,"verify");let w=(0,s.concat)(void 0!==e.protected?(0,s.encode)(e.protected):new Uint8Array,(0,s.encode)("."),"string"==typeof e.payload?y?(0,s.encode)(e.payload):s.encoder.encode(e.payload):e.payload),x=(0,o.decodeBase64url)(e.signature,"signature",n.JWSInvalid),b=await (0,l.normalizeKey)(d,f);if(!await (0,r.verify)(f,b,x,w))throw new n.JWSSignatureVerificationFailed;let _={payload:y?(0,o.decodeBase64url)(e.payload,"payload",n.JWSInvalid):"string"==typeof e.payload?s.encoder.encode(e.payload):e.payload};return(void 0!==e.protected&&(_.protectedHeader=u),void 0!==e.header&&(_.unprotectedHeader=e.header),v)?{..._,key:b}:_}async function p(e,t,r){if(e instanceof Uint8Array&&(e=s.decoder.decode(e)),"string"!=typeof e)throw new n.JWSInvalid("Compact JWS must be a string or Uint8Array");let{0:o,1:i,2:a,length:c}=e.split(".");if(3!==c)throw new n.JWSInvalid("Invalid Compact JWS");let l=await d({payload:i,protected:o,signature:a},t,r),p={payload:l.payload,protectedHeader:l.protectedHeader};return"function"==typeof t?{...p,key:l.key}:p}var u=e.i(224472);async function m(e,t,r){let s=await p(e,t,r);if(s.protectedHeader.crit?.includes("b64")&&!1===s.protectedHeader.b64)throw new n.JWTInvalid("JWTs MUST NOT use unencoded payload");let o={payload:(0,u.validateClaimsSet)(s.protectedHeader,s.payload,r),protectedHeader:s.protectedHeader};return"function"==typeof t?{...o,key:s.key}:o}e.s(["jwtVerify",()=>m],709939)},235328,e=>{"use strict";var t=e.i(709939),r=e.i(493458);e.i(245272);var n=e.i(548941);async function s(n){let s=n.headers.get("authorization");if(s?.startsWith("Bearer ")){let t=s.slice(7);try{let{validateApiKey:r}=await e.A(734680);if(await r(t))return!0}catch{}}if(process.env.JWT_SECRET)try{let e=await (0,r.cookies)(),n=e.get("auth_token")?.value;if(n){let e=new TextEncoder().encode(process.env.JWT_SECRET);return await (0,t.jwtVerify)(n,e),!0}}catch{}return!1}async function o(){try{let e=await (0,n.getSettings)();if(!1===e.requireLogin||!e.password&&!process.env.INITIAL_PASSWORD)return!1;return!0}catch{return!0}}e.s(["isAuthRequired",()=>o,"isAuthenticated",()=>s])},526346,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),s=e.i(759756),o=e.i(561916),i=e.i(174677),a=e.i(869741),c=e.i(316795),l=e.i(487718),d=e.i(995169),p=e.i(47587),u=e.i(666012),m=e.i(570101),h=e.i(626937),y=e.i(10372),f=e.i(193695);e.i(52474);var g=e.i(600220),v=e.i(89171),w=e.i(233405),x=e.i(224361),b=e.i(235328);let _=(0,x.promisify)(w.execFile);async function R(){try{let{stdout:e}=await _("npm",["info","omniroute","version","--json"],{timeout:1e4}),t=JSON.parse(e.trim());return"string"==typeof t?t:null}catch{return null}}function S(){try{return e.r(804730).version}catch{return"unknown"}}function A(e,t){if(!e)return!1;let r=e=>e.split(".").map(Number),[n,s,o]=r(e),[i,a,c]=r(t);return n!==i?n>i:s!==a?s>a:o>c}async function E(e){if(!(0,b.isAuthenticated)(e))return v.NextResponse.json({error:"Unauthorized"},{status:401});let t=S(),r=await R(),n=A(r,t);return v.NextResponse.json({current:t,latest:r??"unavailable",updateAvailable:n,channel:"npm"})}async function j(e){if(!(0,b.isAuthenticated)(e))return v.NextResponse.json({error:"Unauthorized"},{status:401});let t=S(),r=await R();return r?A(r,t)?((async()=>{try{await _("npm",["install","-g",`omniroute@${r}`,"--ignore-scripts"],{timeout:3e5}),await _("pm2",["restart","omniroute"]).catch(()=>null),console.log(`[AutoUpdate] Successfully updated to v${r}`)}catch(e){console.error("[AutoUpdate] Update failed:",e)}})(),v.NextResponse.json({success:!0,message:`Update to v${r} started. Restarting in ~30 seconds.`,from:t,to:r})):v.NextResponse.json({success:!1,error:`Already on latest version (${t})`,current:t,latest:r}):v.NextResponse.json({success:!1,error:"Could not reach npm registry"},{status:503})}e.s(["GET",()=>E,"POST",()=>j,"dynamic",0,"force-dynamic"],550560);var I=e.i(550560);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/system/version/route",pathname:"/api/system/version",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/system/version/route.ts",nextConfigOutput:"standalone",userland:I}),{workAsyncStorage:O,workUnitAsyncStorage:C,serverHooks:T}=k;function J(){return(0,n.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:C})}async function W(e,t,n){k.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/system/version/route";v=v.replace(/\/index$/,"")||"/";let w=await k.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:x,params:b,nextConfig:_,parsedUrl:R,isDraftMode:S,prerenderManifest:A,routerServerContext:E,isOnDemandRevalidate:j,revalidateOnlyGenerated:I,resolvedPathname:O,clientReferenceManifest:C,serverActionsManifest:T}=w,J=(0,a.normalizeAppPath)(v),W=!!(A.dynamicRoutes[J]||A.routes[O]),P=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,R,!1):t.end("This page could not be found"),null);if(W&&!S){let e=!!A.routes[O],t=A.dynamicRoutes[J];if(t&&!1===t.fallback&&!e){if(_.experimental.adapterPath)return await P();throw new f.NoFallbackError}}let N=null;!W||k.isDev||S||(N="/index"===(N=O)?"/":N);let U=!0===k.isDev||!W,D=W&&!U;T&&C&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:C,serverActionsManifest:T});let H=e.method||"GET",L=(0,o.getTracer)(),q=L.getActiveScopeSpan(),$={params:b,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:_.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>k.onRequestError(e,t,n,s,E)},sharedContext:{buildId:x}},M=new c.NodeNextRequest(e),F=new c.NodeNextResponse(t),K=l.NextRequestAdapter.fromNodeNextRequest(M,(0,l.signalFromNodeResponse)(t));try{let i=async e=>k.handle(K,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.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 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} ${v}`)}),a=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!a&&j&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(s);e.fetchMetrics=$.renderOpts.fetchMetrics;let c=$.renderOpts.pendingWaitUntil;c&&n.waitUntil&&(n.waitUntil(c),c=void 0);let l=$.renderOpts.collectedTags;if(!W)return await (0,u.sendResponse)(M,F,o,$.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,E),t}},d=await k.handleResponse({req:e,nextConfig:_,cacheKey:N,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:a});if(!W)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});a||t.setHeader("x-nextjs-cache",j?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return a&&W||f.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,u.sendResponse)(M,F,new Response(d.value.body,{headers:f,status:d.value.status||200})),null};q?await c(q):await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},c))}catch(t){if(t instanceof f.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,E),W)throw t;return await (0,u.sendResponse)(M,F,new Response(null,{status:500})),null}}e.s(["handler",()=>W,"patchFetch",()=>J,"routeModule",()=>k,"serverHooks",()=>T,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>C],526346)},606102,e=>{e.v(e=>Promise.resolve().then(()=>e(548941)))},789543,e=>{e.v(e=>Promise.resolve().then(()=>e(385498)))},579042,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_utils_apiKey_ts_fa113e09._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_65de0558._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},734680,e=>{e.v(e=>Promise.resolve().then(()=>e(125852)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__db2f9fe0._.js.map
|