omniroute 2.7.4 → 2.7.5
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]__134baf4c._.js +4 -4
- package/app/.next/server/chunks/[root-of-the-server]__167585da._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__7d9b23e7._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__87186578._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__92cb0def._.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 +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__f31b4656._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__fb5eab8e._.js +1 -1
- package/app/.next/server/chunks/_05c48915._.js +1 -1
- package/app/.next/server/chunks/_2115d8de._.js +1 -1
- package/app/.next/server/chunks/_3ac953eb._.js +1 -1
- package/app/.next/server/chunks/_4b8fd853._.js +1 -1
- package/app/.next/server/chunks/_68683848._.js +1 -1
- package/app/.next/server/chunks/_ee9b677b._.js +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__8d4a4da8._.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/src_i18n_messages_en_json_c3d5c412._.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/{4eac29888657dde8.css → 194dbd564ba7150b.css} +1 -1
- package/app/.next/static/chunks/{840a6d1e104f97ba.js → 2e988c0457b1a25f.js} +1 -1
- package/app/.next/static/chunks/{3f1871e2a825ff98.js → 78578600bdb6c280.js} +1 -1
- package/app/CHANGELOG.md +11 -0
- package/app/docs/openapi.yaml +1 -1
- package/app/package-lock.json +2 -2
- package/app/package.json +1 -1
- package/app/src/app/login/page.tsx +1 -0
- package/app/src/i18n/messages/en.json +2 -1
- package/app/src/shared/services/cliRuntime.ts +8 -1
- package/package.json +1 -1
- /package/app/.next/static/{hm_opvSDhYD2AkdUG_zpy → sr8mILxXxauNpSSzV2kMh}/_buildManifest.js +0 -0
- /package/app/.next/static/{hm_opvSDhYD2AkdUG_zpy → sr8mILxXxauNpSSzV2kMh}/_clientMiddlewareManifest.json +0 -0
- /package/app/.next/static/{hm_opvSDhYD2AkdUG_zpy → sr8mILxXxauNpSSzV2kMh}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,565650,e=>{"use strict";e.i(342923),e.i(80173),e.i(907714),e.i(393718),e.i(703166),e.i(454149),e.i(822124),e.i(969353),e.i(635055),e.i(897844),e.i(450222),e.i(647829),e.i(6998),e.i(982131),e.i(116016),e.i(279743),e.i(193464),e.i(548036),e.i(566770),e.i(953789),e.i(8839),e.i(227404),e.i(621745),e.i(567955),e.i(17517),e.i(419947),e.i(323060),e.i(642440),e.i(629342),e.i(816062),e.i(690777),e.i(563201),e.i(115243),e.i(165149),e.i(359505),e.s([],565650)},474078,e=>{"use strict";var t=e.i(342923);e.s(["Button",()=>t.default])},339971,e=>{"use strict";var t=e.i(80173);e.s(["Input",()=>t.default])},594542,e=>{"use strict";var t=e.i(843476),s=e.i(948148),a=e.i(271645);e.i(565650);var i=e.i(474078),r=e.i(339971),l=e.i(618566);function n(){let e=(0,s.useTranslations)("auth"),[n,d]=(0,a.useState)(""),[c,o]=(0,a.useState)(""),[m,x]=(0,a.useState)(!1),[u,h]=(0,a.useState)(null),[p,f]=(0,a.useState)(null),[b,j]=(0,a.useState)(!1),g=(0,l.useRouter)();(0,a.useEffect)(()=>{j(!0),async function(){let e=new AbortController,t=setTimeout(()=>e.abort(),5e3),s=window.location.origin;try{let a=await fetch(`${s}/api/settings/require-login`,{signal:e.signal});if(clearTimeout(t),a.ok){let e=await a.json();if(!1===e.requireLogin){g.push("/dashboard"),g.refresh();return}h(!!e.hasPassword),f(!!e.setupComplete)}else h(!0),f(!0)}catch(e){clearTimeout(t),h(!0),f(!0)}}()},[g]);let y=async t=>{t.preventDefault(),x(!0),o("");try{let t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:n})});if(t.ok)sessionStorage.setItem("omniroute_login_time",String(Date.now())),g.push("/dashboard"),g.refresh();else{let s=await t.json();o(s.error||e("invalidPassword"))}}catch(t){o(e("errorOccurredRetry"))}finally{x(!1)}};return null===u||null===p?(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"w-10 h-10 border-2 border-primary/20 rounded-full"}),(0,t.jsx)("div",{className:"absolute inset-0 w-10 h-10 border-2 border-primary border-t-transparent rounded-full animate-spin"})]}),(0,t.jsx)("span",{className:"text-sm text-text-muted",children:e("loading")})]})}):u||p?!u&&p?(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-6",children:(0,t.jsxs)("div",{className:`w-full max-w-md transition-all duration-700 ease-out ${b?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,children:[(0,t.jsxs)("div",{className:"text-center mb-10",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-20 h-20 rounded-3xl bg-gradient-to-br from-amber-500/10 to-amber-500/5 border border-amber-500/10 mb-6",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-amber-500 text-[40px]",children:"shield_person"})}),(0,t.jsx)("h1",{className:"text-3xl font-bold text-text-main tracking-tight",children:e("secureYourInstance")}),(0,t.jsx)("p",{className:"text-text-muted mt-2",children:e("passwordNotEnabled")})]}),(0,t.jsx)("div",{className:"bg-surface border border-border rounded-2xl p-8 shadow-soft",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-text-muted leading-relaxed mb-6",children:e("setPasswordDescription")}),(0,t.jsx)(i.Button,{variant:"primary",className:"w-full h-11 text-sm font-medium",onClick:()=>g.push("/dashboard/settings?tab=security"),children:e("configurePassword")})]})}),(0,t.jsxs)("p",{className:"text-center text-xs text-text-muted/60 mt-8",children:["OmniRoute — ",e("unifiedAiApiProxy")]})]})}):(0,t.jsxs)("div",{className:"min-h-screen flex bg-bg",children:[(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center p-6",children:(0,t.jsxs)("div",{className:`w-full max-w-sm transition-all duration-700 ease-out ${b?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,children:[(0,t.jsxs)("div",{className:"mb-10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-8",children:[(0,t.jsx)("div",{className:"w-10 h-10 rounded-xl bg-gradient-to-br from-primary to-primary-hover flex items-center justify-center",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-white text-[20px]",children:"hub"})}),(0,t.jsx)("span",{className:"text-xl font-semibold text-text-main tracking-tight",children:"OmniRoute"})]}),(0,t.jsx)("h1",{className:"text-2xl font-bold text-text-main tracking-tight",children:e("signIn")}),(0,t.jsx)("p",{className:"text-text-muted mt-1.5",children:e("enterPassword")})]}),(0,t.jsxs)("form",{onSubmit:y,className:"space-y-5",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-text-main",children:e("password")}),(0,t.jsx)(r.Input,{type:"password",placeholder:e("enterPassword"),value:n,onChange:e=>d(e.target.value),required:!0,autoFocus:!0,className:"h-11"}),c&&(0,t.jsxs)("p",{className:"text-sm text-red-500 flex items-center gap-1.5 pt-1",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-base",children:"error"}),c]})]}),(0,t.jsx)(i.Button,{type:"submit",variant:"primary",className:"w-full h-11 text-sm font-medium",loading:m,children:e("continue")})]}),(0,t.jsx)("div",{className:"mt-6 pt-6 border-t border-border",children:(0,t.jsx)("a",{href:"/forgot-password",className:"text-sm text-text-muted hover:text-primary transition-colors",children:e("forgotPassword")})})]})}),(0,t.jsx)("div",{className:"hidden lg:flex lg:w-1/2 bg-gradient-to-br from-primary/5 via-primary/3 to-transparent items-center justify-center p-12",children:(0,t.jsx)("div",{className:`max-w-md transition-all duration-700 delay-200 ease-out ${b?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,children:(0,t.jsxs)("div",{className:"space-y-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-text-main mb-3",children:e("unifiedAiApiProxy")}),(0,t.jsx)("p",{className:"text-text-muted leading-relaxed",children:e("unifiedAiApiProxyDesc")})]}),(0,t.jsx)("div",{className:"space-y-4",children:[{icon:"swap_horiz",title:e("featureMultiProviderTitle"),desc:e("featureMultiProviderDesc")},{icon:"speed",title:e("featureLoadBalancingTitle"),desc:e("featureLoadBalancingDesc")},{icon:"analytics",title:e("featureUsageTrackingTitle"),desc:e("featureUsageTrackingDesc")}].map(e=>(0,t.jsxs)("div",{className:"flex items-start gap-4 p-4 rounded-xl bg-surface/50 border border-border",children:[(0,t.jsx)("div",{className:"w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center flex-shrink-0",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-primary text-[20px]",children:e.icon})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"font-medium text-text-main",children:e.title}),(0,t.jsx)("p",{className:"text-sm text-text-muted",children:e.desc})]})]},e.icon))})]})})})]}):(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-6",children:(0,t.jsxs)("div",{className:`w-full max-w-md transition-all duration-700 ease-out ${b?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,children:[(0,t.jsxs)("div",{className:"text-center mb-10",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-20 h-20 rounded-3xl bg-gradient-to-br from-primary/10 to-primary/5 border border-primary/10 mb-6",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-primary text-[40px]",children:"rocket_launch"})}),(0,t.jsx)("h1",{className:"text-3xl font-bold text-text-main tracking-tight",children:e("welcome")}),(0,t.jsx)("p",{className:"text-text-muted mt-2",children:e("configureInstance")})]}),(0,t.jsx)("div",{className:"bg-surface border border-border rounded-2xl p-8 shadow-soft",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-text-muted leading-relaxed mb-6",children:e("runOnboardingWizard")}),(0,t.jsx)(i.Button,{variant:"primary",className:"w-full h-11 text-sm font-medium",onClick:()=>g.push("/dashboard/onboarding"),children:e("startOnboarding")})]})}),(0,t.jsxs)("p",{className:"text-center text-xs text-text-muted/60 mt-8",children:["OmniRoute — ",e("unifiedProxy")]})]})})}e.s(["default",()=>n])}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,565650,e=>{"use strict";e.i(342923),e.i(80173),e.i(907714),e.i(393718),e.i(703166),e.i(454149),e.i(822124),e.i(969353),e.i(635055),e.i(897844),e.i(450222),e.i(647829),e.i(6998),e.i(982131),e.i(116016),e.i(279743),e.i(193464),e.i(548036),e.i(566770),e.i(953789),e.i(8839),e.i(227404),e.i(621745),e.i(567955),e.i(17517),e.i(419947),e.i(323060),e.i(642440),e.i(629342),e.i(816062),e.i(690777),e.i(563201),e.i(115243),e.i(165149),e.i(359505),e.s([],565650)},474078,e=>{"use strict";var t=e.i(342923);e.s(["Button",()=>t.default])},339971,e=>{"use strict";var t=e.i(80173);e.s(["Input",()=>t.default])},594542,e=>{"use strict";var t=e.i(843476),s=e.i(948148),a=e.i(271645);e.i(565650);var i=e.i(474078),r=e.i(339971),l=e.i(618566);function n(){let e=(0,s.useTranslations)("auth"),[n,d]=(0,a.useState)(""),[c,o]=(0,a.useState)(""),[m,x]=(0,a.useState)(!1),[u,h]=(0,a.useState)(null),[p,f]=(0,a.useState)(null),[b,j]=(0,a.useState)(!1),g=(0,l.useRouter)();(0,a.useEffect)(()=>{j(!0),async function(){let e=new AbortController,t=setTimeout(()=>e.abort(),5e3),s=window.location.origin;try{let a=await fetch(`${s}/api/settings/require-login`,{signal:e.signal});if(clearTimeout(t),a.ok){let e=await a.json();if(!1===e.requireLogin){g.push("/dashboard"),g.refresh();return}h(!!e.hasPassword),f(!!e.setupComplete)}else h(!0),f(!0)}catch(e){clearTimeout(t),h(!0),f(!0)}}()},[g]);let y=async t=>{t.preventDefault(),x(!0),o("");try{let t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:n})});if(t.ok)sessionStorage.setItem("omniroute_login_time",String(Date.now())),g.push("/dashboard"),g.refresh();else{let s=await t.json();o(s.error||e("invalidPassword"))}}catch(t){o(e("errorOccurredRetry"))}finally{x(!1)}};return null===u||null===p?(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"w-10 h-10 border-2 border-primary/20 rounded-full"}),(0,t.jsx)("div",{className:"absolute inset-0 w-10 h-10 border-2 border-primary border-t-transparent rounded-full animate-spin"})]}),(0,t.jsx)("span",{className:"text-sm text-text-muted",children:e("loading")})]})}):u||p?!u&&p?(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-6",children:(0,t.jsxs)("div",{className:`w-full max-w-md transition-all duration-700 ease-out ${b?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,children:[(0,t.jsxs)("div",{className:"text-center mb-10",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-20 h-20 rounded-3xl bg-gradient-to-br from-amber-500/10 to-amber-500/5 border border-amber-500/10 mb-6",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-amber-500 text-[40px]",children:"shield_person"})}),(0,t.jsx)("h1",{className:"text-3xl font-bold text-text-main tracking-tight",children:e("secureYourInstance")}),(0,t.jsx)("p",{className:"text-text-muted mt-2",children:e("passwordNotEnabled")})]}),(0,t.jsx)("div",{className:"bg-surface border border-border rounded-2xl p-8 shadow-soft",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-text-muted leading-relaxed mb-6",children:e("setPasswordDescription")}),(0,t.jsx)(i.Button,{variant:"primary",className:"w-full h-11 text-sm font-medium",onClick:()=>g.push("/dashboard/settings?tab=security"),children:e("configurePassword")})]})}),(0,t.jsxs)("p",{className:"text-center text-xs text-text-muted/60 mt-8",children:["OmniRoute — ",e("unifiedAiApiProxy")]})]})}):(0,t.jsxs)("div",{className:"min-h-screen flex bg-bg",children:[(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center p-6",children:(0,t.jsxs)("div",{className:`w-full max-w-sm transition-all duration-700 ease-out ${b?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,children:[(0,t.jsxs)("div",{className:"mb-10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-8",children:[(0,t.jsx)("div",{className:"w-10 h-10 rounded-xl bg-gradient-to-br from-primary to-primary-hover flex items-center justify-center",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-white text-[20px]",children:"hub"})}),(0,t.jsx)("span",{className:"text-xl font-semibold text-text-main tracking-tight",children:"OmniRoute"})]}),(0,t.jsx)("h1",{className:"text-2xl font-bold text-text-main tracking-tight",children:e("signIn")}),(0,t.jsx)("p",{className:"text-text-muted mt-1.5",children:e("enterPassword")})]}),(0,t.jsxs)("form",{onSubmit:y,className:"space-y-5",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-text-main",children:e("password")}),(0,t.jsx)(r.Input,{type:"password",placeholder:e("enterPassword"),value:n,onChange:e=>d(e.target.value),required:!0,autoFocus:!0,className:"h-11"}),c&&(0,t.jsxs)("p",{className:"text-sm text-red-500 flex items-center gap-1.5 pt-1",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-base",children:"error"}),c]}),(0,t.jsx)("p",{className:"text-xs text-text-muted/60 pt-0.5",children:e("defaultPasswordHint")})]}),(0,t.jsx)(i.Button,{type:"submit",variant:"primary",className:"w-full h-11 text-sm font-medium",loading:m,children:e("continue")})]}),(0,t.jsx)("div",{className:"mt-6 pt-6 border-t border-border",children:(0,t.jsx)("a",{href:"/forgot-password",className:"text-sm text-text-muted hover:text-primary transition-colors",children:e("forgotPassword")})})]})}),(0,t.jsx)("div",{className:"hidden lg:flex lg:w-1/2 bg-gradient-to-br from-primary/5 via-primary/3 to-transparent items-center justify-center p-12",children:(0,t.jsx)("div",{className:`max-w-md transition-all duration-700 delay-200 ease-out ${b?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,children:(0,t.jsxs)("div",{className:"space-y-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-text-main mb-3",children:e("unifiedAiApiProxy")}),(0,t.jsx)("p",{className:"text-text-muted leading-relaxed",children:e("unifiedAiApiProxyDesc")})]}),(0,t.jsx)("div",{className:"space-y-4",children:[{icon:"swap_horiz",title:e("featureMultiProviderTitle"),desc:e("featureMultiProviderDesc")},{icon:"speed",title:e("featureLoadBalancingTitle"),desc:e("featureLoadBalancingDesc")},{icon:"analytics",title:e("featureUsageTrackingTitle"),desc:e("featureUsageTrackingDesc")}].map(e=>(0,t.jsxs)("div",{className:"flex items-start gap-4 p-4 rounded-xl bg-surface/50 border border-border",children:[(0,t.jsx)("div",{className:"w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center flex-shrink-0",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-primary text-[20px]",children:e.icon})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"font-medium text-text-main",children:e.title}),(0,t.jsx)("p",{className:"text-sm text-text-muted",children:e.desc})]})]},e.icon))})]})})})]}):(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-6",children:(0,t.jsxs)("div",{className:`w-full max-w-md transition-all duration-700 ease-out ${b?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,children:[(0,t.jsxs)("div",{className:"text-center mb-10",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-20 h-20 rounded-3xl bg-gradient-to-br from-primary/10 to-primary/5 border border-primary/10 mb-6",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-primary text-[40px]",children:"rocket_launch"})}),(0,t.jsx)("h1",{className:"text-3xl font-bold text-text-main tracking-tight",children:e("welcome")}),(0,t.jsx)("p",{className:"text-text-muted mt-2",children:e("configureInstance")})]}),(0,t.jsx)("div",{className:"bg-surface border border-border rounded-2xl p-8 shadow-soft",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-text-muted leading-relaxed mb-6",children:e("runOnboardingWizard")}),(0,t.jsx)(i.Button,{variant:"primary",className:"w-full h-11 text-sm font-medium",onClick:()=>g.push("/dashboard/onboarding"),children:e("startOnboarding")})]})}),(0,t.jsxs)("p",{className:"text-center text-xs text-text-muted/60 mt-8",children:["OmniRoute — ",e("unifiedProxy")]})]})})}e.s(["default",()=>n])}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,804730,t=>{t.v({name:"omniroute",version:"2.7.
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,804730,t=>{t.v({name:"omniroute",version:"2.7.5",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"next build","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"16.1.6",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]}})},175696,t=>{"use strict";var e=t.i(861745),s=t.i(843476);function n({locale:t,...n}){if(!t)throw Error(void 0);return(0,s.jsx)(e.IntlProvider,{locale:t,...n})}t.s(["default",()=>n])}]);
|
package/app/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [2.7.5] — 2026-03-18
|
|
8
|
+
|
|
9
|
+
> Sprint: UX improvements and Windows CLI healthcheck fix.
|
|
10
|
+
|
|
11
|
+
### 🐛 Bug Fixes
|
|
12
|
+
|
|
13
|
+
- **fix(ux)**: Show default password hint on login page — new users now see `"Default password: 123456"` below the password input (#437)
|
|
14
|
+
- **fix(cli)**: Claude CLI and other npm-installed tools now correctly detected as runnable on Windows — spawn uses `shell:true` to resolve `.cmd` wrappers via PATHEXT (#447)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
7
18
|
## [2.7.4] — 2026-03-18
|
|
8
19
|
|
|
9
20
|
> Sprint: Search Tools dashboard, i18n fixes, Copilot limits, Serper validation fix.
|
package/app/docs/openapi.yaml
CHANGED
package/app/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omniroute",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.5",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omniroute",
|
|
9
|
-
"version": "2.7.
|
|
9
|
+
"version": "2.7.5",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"workspaces": [
|
package/app/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omniroute",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.5",
|
|
4
4
|
"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.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -2293,7 +2293,8 @@
|
|
|
2293
2293
|
"orRemovePasswordHashField": "or remove the passwordHash field",
|
|
2294
2294
|
"restartServerWithNewPassword": "Restart the server - it will use the new password",
|
|
2295
2295
|
"backToLogin": "Back to Login",
|
|
2296
|
-
"forgotPassword": "Forgot password?"
|
|
2296
|
+
"forgotPassword": "Forgot password?",
|
|
2297
|
+
"defaultPasswordHint": "Default password: 123456 (unless INITIAL_PASSWORD was set)"
|
|
2297
2298
|
},
|
|
2298
2299
|
"landing": {
|
|
2299
2300
|
"brandName": "OmniRoute",
|
|
@@ -121,7 +121,14 @@ const runProcess = (
|
|
|
121
121
|
let timedOut = false;
|
|
122
122
|
let settled = false;
|
|
123
123
|
|
|
124
|
-
const child = spawn(command, args, {
|
|
124
|
+
const child = spawn(command, args, {
|
|
125
|
+
env,
|
|
126
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
127
|
+
// On Windows, npm installs CLI wrappers as .cmd scripts (e.g. claude.cmd).
|
|
128
|
+
// Without shell:true, spawn cannot resolve them via PATHEXT and the
|
|
129
|
+
// healthcheck fails even when the CLI is correctly installed (#447).
|
|
130
|
+
...(isWindows() ? { shell: true } : {}),
|
|
131
|
+
});
|
|
125
132
|
const timer = setTimeout(() => {
|
|
126
133
|
timedOut = true;
|
|
127
134
|
child.kill("SIGKILL");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omniroute",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.5",
|
|
4
4
|
"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.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|