omniroute 3.3.10 → 3.3.11
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/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/cache/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/api/system/version/route.js.nft.json +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]__112a90be._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__46e00e59._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__5c021c68._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__6fba99f4._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__745fa111._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__78f7009e._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__7ace0fcd._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__7d4ffdb3._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__8c57851d._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__9096d2fa._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__a1f12196._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__a32d3818._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__b39d0020._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__bc251fbe._.js +1 -1
- package/app/.next/server/chunks/_05c48915._.js +1 -1
- package/app/.next/server/chunks/_06515a8a._.js +1 -1
- package/app/.next/server/chunks/_2115d8de._.js +1 -1
- package/app/.next/server/chunks/_3ac953eb._.js +1 -1
- package/app/.next/server/chunks/_4b8fd853._.js +1 -1
- package/app/.next/server/chunks/_68683848._.js +1 -1
- package/app/.next/server/chunks/_7badaddf._.js +2 -2
- package/app/.next/server/chunks/_ee9b677b._.js +1 -1
- package/app/.next/server/chunks/open-sse_config_providerModels_ts_04541468._.js +1 -1
- package/app/.next/server/chunks/open-sse_config_providerRegistry_ts_2f74ec2a._.js +1 -1
- package/app/.next/server/chunks/open-sse_config_providerRegistry_ts_dec0f840._.js +1 -1
- package/app/.next/server/chunks/open-sse_executors_01c3e95e._.js +1 -1
- package/app/.next/server/chunks/open-sse_executors_codex_ts_6d18ec4b._.js +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__9ef96d20._.js +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
- package/app/.next/server/chunks/ssr/_19b3d5b1._.js +1 -1
- package/app/.next/server/chunks/ssr/_31f623fe._.js +1 -1
- package/app/.next/server/chunks/ssr/open-sse_config_providerModels_ts_4cac55e2._.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/{c7acff0f25f46281.js → 7c68da7fb645b441.js} +1 -1
- package/app/.next/static/chunks/{aa0bfbc0b2eb7658.js → 93854a469fd935c2.js} +1 -1
- package/app/.next/static/chunks/{5a0cb6640589f4fa.js → af07e5bb4e2fd5ef.js} +1 -1
- package/app/CHANGELOG.md +24 -0
- package/app/docs/openapi.yaml +1 -1
- package/app/open-sse/config/providerRegistry.ts +2 -1
- package/app/open-sse/executors/codex.ts +5 -0
- package/app/open-sse/handlers/chatCore.ts +35 -13
- package/app/open-sse/package.json +1 -1
- package/app/package-lock.json +3 -3
- package/app/package.json +1 -1
- package/app/src/shared/components/OAuthModal.tsx +6 -1
- package/app/src/shared/services/cliRuntime.ts +7 -3
- package/app/tests/unit/cli-runtime-detection.test.mjs +15 -6
- package/app/tests/unit/t28-model-catalog-updates.test.mjs +2 -2
- package/package.json +1 -1
- /package/app/.next/static/{JHXiVG41z1UrA7MsRLXGd → wq1Ii1uhsKllCHQoeqLBt}/_buildManifest.js +0 -0
- /package/app/.next/static/{JHXiVG41z1UrA7MsRLXGd → wq1Ii1uhsKllCHQoeqLBt}/_clientMiddlewareManifest.json +0 -0
- /package/app/.next/static/{JHXiVG41z1UrA7MsRLXGd → wq1Ii1uhsKllCHQoeqLBt}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[918622,(e,t,a)=>{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,a)=>{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,a)=>{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,a)=>{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,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,a)=>{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,a)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,a)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,a)=>{"use strict";var o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,s={},l={RequestCookies:()=>f,ResponseCookies:()=>g,parseCookie:()=>u,parseSetCookie:()=>p,stringifyCookie:()=>d};for(var c in l)o(s,c,{get:l[c],enumerable:!0});function d(e){var t;let a=["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),o=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===a.length?o:`${o}; ${a.join("; ")}`}function u(e){let t=new Map;for(let a of e.split(/; */)){if(!a)continue;let e=a.indexOf("=");if(-1===e){t.set(a,"true");continue}let[o,i]=[a.slice(0,e),a.slice(e+1)];try{t.set(o,decodeURIComponent(null!=i?i:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,a],...o]=u(e),{domain:i,expires:r,httponly:n,maxage:s,path:l,samesite:c,secure:d,partitioned:p,priority:f}=Object.fromEntries(o.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,x={name:t,value:decodeURIComponent(a),domain:i,...r&&{expires:new Date(r)},...n&&{httpOnly:!0},..."string"==typeof s&&{maxAge:Number(s)},path:l,...c&&{sameSite:m.includes(g=(g=c).toLowerCase())?g:void 0},...d&&{secure:!0},...f&&{priority:h.includes(y=(y=f).toLowerCase())?y:void 0},...p&&{partitioned:!0}};let e={};for(let t in x)x[t]&&(e[t]=x[t]);return e}}t.exports=((e,t,a,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of r(t))n.call(e,a)||void 0===a||o(e,a,{get:()=>t[a],enumerable:!(s=i(t,a))||s.enumerable});return e})(o({},"__esModule",{value:!0}),s);var m=["strict","lax","none"],h=["low","medium","high"],f=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,a]of u(t))this._parsed.set(e,{name:e,value:a})}[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 a=Array.from(this._parsed);if(!e.length)return a.map(([e,t])=>t);let o="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return a.filter(([e])=>e===o).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,a]=1===e.length?[e[0].name,e[0].value]:e,o=this._parsed;return o.set(t,{name:t,value:a}),this._headers.set("cookie",Array.from(o).map(([e,t])=>d(t)).join("; ")),this}delete(e){let t=this._parsed,a=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("; ")),a}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,a,o;this._parsed=new Map,this._headers=e;const i=null!=(o=null!=(a=null==(t=e.getSetCookie)?void 0:t.call(e))?a:e.get("set-cookie"))?o:[];for(const e of Array.isArray(i)?i:function(e){if(!e)return[];var t,a,o,i,r,n=[],s=0;function l(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,r=!1;l();)if(","===(a=e.charAt(s))){for(o=s,s+=1,l(),i=s;s<e.length&&"="!==(a=e.charAt(s))&&";"!==a&&","!==a;)s+=1;s<e.length&&"="===e.charAt(s)?(r=!0,s=i,n.push(e.substring(t,o)),t=s):s=o+1}else s+=1;(!r||s>=e.length)&&n.push(e.substring(t,e.length))}return n}(i)){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 a=Array.from(this._parsed.values());if(!e.length)return a;let o="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return a.filter(e=>e.name===o)}has(e){return this._parsed.has(e)}set(...e){let[t,a,o]=1===e.length?[e[0].name,e[0].value,e[0]]:e,i=this._parsed;return i.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:a,...o})),function(e,t){for(let[,a]of(t.delete("set-cookie"),e)){let e=d(a);t.append("set-cookie",e)}}(i,this._headers),this}delete(...e){let[t,a]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...a,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("; ")}}},677850,e=>e.a(async(t,a)=>{try{let t=await e.y("zod");e.n(t),a()}catch(e){a(e)}},!0),200392,e=>e.a(async(t,a)=>{try{var o=e.i(677850),i=t([o]);function r(e,t){let a=e.safeParse(t);if(a.success)return{success:!0,data:a.data};let o=Array.isArray(a.error?.issues)?a.error.issues:[];return{success:!1,error:{message:"Invalid request",details:o.map(e=>({field:e.path.join("."),message:e.message}))}}}function n(e){return!1===e.success}[o]=i.then?(await i)():i,o.z.object({password:o.z.string().min(1,"Password is required").max(200)}),e.s(["isValidationFailure",()=>n,"validateBody",()=>r]),a()}catch(e){a(e)}},!1),41244,e=>{"use strict";e.s(["HIDEABLE_SIDEBAR_ITEM_IDS",0,["home","endpoints","api-manager","providers","combos","costs","analytics","limits","cache","cli-tools","agents","translator","playground","media","search-tools","health","logs","audit","settings","docs","issues"]])},180725,e=>{"use strict";e.i(245272),e.s([])},233405,(e,t,a)=>{t.exports=e.x("child_process",()=>require("child_process"))},250875,e=>{"use strict";var t=e.i(233405),a=e.i(522734);async function o(i=null){let r=i||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let o=function(){try{let e=process.env.SystemRoot||process.env.windir||"C:\\Windows",o=`${e}\\System32\\REG.exe`;if((0,a.existsSync)(o)){let e=(0,t.execFileSync)(o,["QUERY","HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography","/v","MachineGuid"],{encoding:"utf8",timeout:5e3}),a=e.split("REG_SZ")[1]?.replace(/\r+|\n+|\s+/gi,"")?.toLowerCase();if(a&&a.length>8)return a}}catch{}try{let e=(0,t.execSync)("ioreg -rd1 -c IOPlatformExpertDevice",{encoding:"utf8",timeout:5e3});if(e.includes("IOPlatformUUID")){let t=e.split("IOPlatformUUID")[1]?.split("\n")[0]?.replace(/=|\s+|"/gi,"")?.toLowerCase();if(t&&t.length>8)return t}}catch{}try{for(let e of["/etc/machine-id","/var/lib/dbus/machine-id"])if((0,a.existsSync)(e)){let t=(0,a.readFileSync)(e,"utf8").trim().toLowerCase();if(t.length>8)return t}}catch{}try{let e=(0,t.execSync)("hostname",{encoding:"utf8",timeout:5e3}).trim().toLowerCase();if(e)return e}catch{}try{return e.r(446786).hostname().toLowerCase()}catch{}return"unknown-machine"}();return(await e.A(485685)).createHash("sha256").update(o+r).digest("hex").substring(0,16)}catch(t){console.log("Error getting machine ID:",t);try{return(await e.A(485685)).randomUUID()}catch{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})}}}e.s(["getConsistentMachineId",()=>o])},639173,e=>{"use strict";e.i(245272);var t=e.i(385498),a=e.i(186920),o=e.i(151205),i=e.i(125852);let r=process.env.CLOUD_URL||process.env.NEXT_PUBLIC_CLOUD_URL,n=Number(process.env.CLOUD_SYNC_TIMEOUT_MS||12e3);function s(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function l(e){if("string"==typeof e||"number"==typeof e||e instanceof Date){let t=new Date(e).getTime();return Number.isFinite(t)?t:0}return 0}async function c(e,t={},a=n){let o=new AbortController,i=setTimeout(()=>o.abort(),a);try{return await fetch(e,{...t,signal:o.signal})}finally{clearTimeout(i)}}async function d(e,n=null){let s;if(!r)return{error:"NEXT_PUBLIC_CLOUD_URL is not configured"};let l=await (0,t.getProviderConnections)(),p=await (0,a.getModelAliases)(),m=await (0,o.getCombos)(),h=await (0,i.getApiKeys)();try{s=await c(`${r}/sync/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providers:l,modelAliases:p,combos:m,apiKeys:h})})}catch(e){return{error:e?.name==="AbortError"?"Cloud sync timeout":"Cloud sync request failed"}}if(!s.ok){let e=await s.text(),t=e.length>200?e.slice(0,200)+"…":e;return console.log(`Cloud sync failed (${s.status}):`,t),{error:"Cloud sync failed"}}let f=await s.json();f.data&&f.data.providers&&await u(f.data.providers);let g={success:!0,message:"Synced successfully",changes:f.changes};return n&&(g.createdKey=n),g}async function u(e){let a=s(e);for(let e of(await (0,t.getProviderConnections)())){var o;let i=s(e),r="string"==typeof(o=i.id)&&o.trim().length>0?o:null;if(!r)continue;let n=s(a[r]);if(0!==Object.keys(n).length){if(l(n.updatedAt)>l(i.updatedAt)){let e={accessToken:n.accessToken,refreshToken:n.refreshToken,expiresAt:n.expiresAt,expiresIn:n.expiresIn,providerSpecificData:n.providerSpecificData||i.providerSpecificData,testStatus:n.status||"active",lastError:n.lastError,lastErrorAt:n.lastErrorAt,errorCode:n.errorCode,rateLimitedUntil:n.rateLimitedUntil,updatedAt:n.updatedAt};await (0,t.updateProviderConnection)(r,e)}}}}e.s(["CLOUD_URL",()=>r,"fetchWithTimeout",()=>c,"syncToCloud",()=>d])},924868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},266240,e=>{"use strict";let t,a,o,i,r,n,s,l,c;var d=e.i(924868),u=e.i(522734),p=e.i(446786),m=e.i(814747),h=e.i(233405);let f=new Set(["auto","host","container"]),g=new Set(["0","false","no","off"]),y={claude:{defaultCommand:"claude",envBinKey:"CLI_CLAUDE_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{settings:".claude/settings.json"}},codex:{defaultCommand:"codex",envBinKey:"CLI_CODEX_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{config:".codex/config.toml",auth:".codex/auth.json"}},droid:{defaultCommand:"droid",envBinKey:"CLI_DROID_BIN",requiresBinary:!0,healthcheckTimeoutMs:8e3,paths:{settings:".factory/settings.json"}},openclaw:{defaultCommand:"openclaw",envBinKey:"CLI_OPENCLAW_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{settings:".openclaw/openclaw.json"}},cursor:{defaultCommands:["agent","cursor"],envBinKey:"CLI_CURSOR_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".cursor/cli-config.json",auth:".config/cursor/auth.json",state:".cursor/agent-cli-state.json"}},windsurf:{defaultCommand:null,envBinKey:"CLI_WINDSURF_BIN",requiresBinary:!1,healthcheckTimeoutMs:4e3,paths:{}},cline:{defaultCommand:"cline",envBinKey:"CLI_CLINE_BIN",requiresBinary:!0,healthcheckTimeoutMs:12e3,paths:{globalState:".cline/data/globalState.json",secrets:".cline/data/secrets.json"}},kilo:{defaultCommand:"kilocode",envBinKey:"CLI_KILO_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{auth:".local/share/kilo/auth.json"}},continue:{defaultCommand:null,envBinKey:"CLI_CONTINUE_BIN",requiresBinary:!1,healthcheckTimeoutMs:15e3,paths:{settings:".continue/config.json"}},opencode:{defaultCommand:"opencode",envBinKey:"CLI_OPENCODE_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".config/opencode/opencode.json"}}},x=(e,t,{env:a,timeoutMs:o=3e3}={})=>new Promise(i=>{let r="",n="",s=!1,l=!1,c=(0,h.spawn)(e,t,{env:a,stdio:["ignore","pipe","pipe"],..."win32"===process.platform?"TURBOPACK unreachable":{}}),d=setTimeout(()=>{s=!0,c.kill("SIGKILL")},o),u=e=>{l||(l=!0,clearTimeout(d),i(e))};c.stdout.on("data",e=>{r+=e.toString()}),c.stderr.on("data",e=>{n+=e.toString()}),c.on("error",e=>{u({ok:!1,code:null,stdout:r.trim(),stderr:n.trim(),timedOut:s,error:e?.message||"spawn_error"})}),c.on("close",e=>{u({ok:!s&&0===e,code:e,stdout:r.trim(),stderr:n.trim(),timedOut:s,error:s?"timeout":null})})}),b=["&","|",";","<",">","(",")","`","$","^","%","!"],v=(e,t)=>{let a=e=>m.default.normalize(e).toLowerCase().replace(/\\/g,"/"),o=a(e),i=a(t);if(o===i)return!0;let r=i.endsWith("/")?i:i+"/";return o.startsWith(r)},w=e=>!(!e||!m.default.isAbsolute(e)||b.some(t=>e.includes(t))),I=(e,t)=>{if(!e)return"";let a=e.trim();if(!m.default.isAbsolute(a)||b.some(e=>a.includes(e)))return"";let o=m.default.normalize(a);return o.includes("..")||t.length>0&&!t.some(e=>v(o,e))?"":o},A=()=>{if(void 0!==t)return t;let e=String(process.env.npm_config_prefix||"").trim();if(e&&m.default.isAbsolute(e))return t=e;try{let e=(0,h.execFileSync)("npm",["config","get","prefix"],{timeout:5e3,encoding:"utf8",stdio:["ignore","pipe","ignore"],..."win32"===process.platform?"TURBOPACK unreachable":{}}).trim();if(e&&m.default.isAbsolute(e)&&!b.some(t=>e.includes(t)))return t=e}catch{}return t=""},C=(a=p.default.homedir(),o=process.env.USERPROFILE||a,i=I(process.env.APPDATA,[a,o]),r=I(process.env.LOCALAPPDATA,[m.default.join(a,"AppData","Local"),m.default.join(o,"AppData","Local"),o]),n=I(process.env.ProgramFiles,["C:\\Program Files","C:\\Program Files (x86)"]),s=I(process.env["ProgramFiles(x86)"],["C:\\Program Files","C:\\Program Files (x86)"]),l=A(),c=[m.default.join(a,"bin"),m.default.join(a,".local","bin")],[a,...c,o,i,r,n,s,l].filter(Boolean)),_=async e=>{if(!w(e))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{await d.default.access(e,d.default.constants.F_OK)}catch{return{installed:!1,commandPath:null,reason:"not_found"}}try{return await d.default.access(e,d.default.constants.X_OK),{installed:!0,commandPath:e,reason:null}}catch{return{installed:!0,commandPath:e,reason:"not_executable"}}},P=async(e,t)=>{if(!e)return{installed:!1,commandPath:null,reason:"missing_command"};if(e.includes("/")||e.includes("\\"))return _(e);process.platform;let a=await x("sh",["-c",'command -v -- "$1"',"sh",e],{env:t,timeoutMs:3e3});if(!a.ok||!a.stdout)return{installed:!1,commandPath:null,reason:"not_found"};let o=a.stdout.split(/\r?\n/).map(e=>(e=>{if(!e||"win32"!==process.platform)return e})(e.trim())).find(Boolean)||null;return{installed:!!o,commandPath:o,reason:o?null:"not_found"}},E=async e=>{if(!m.default.isAbsolute(e))return{installed:!1,commandPath:null,reason:"not_absolute"};if(!w(e))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{let t=await d.default.realpath(e);if(!C.some(e=>v(t,e)))return{installed:!1,commandPath:null,reason:"symlink_escape"};let a=await d.default.stat(t);if(!a.isFile())return{installed:!1,commandPath:null,reason:"not_file"};if(a.size<30||a.size>0x6400000)return{installed:!1,commandPath:null,reason:"suspicious_size"}}catch(t){let e=t.code;if("ENOENT"===e)return{installed:!1,commandPath:null,reason:"not_found"};if("EINVAL"===e)return{installed:!1,commandPath:null,reason:"invalid_path"};return{installed:!1,commandPath:null,reason:"access_error"}}try{return await d.default.access(e,d.default.constants.X_OK),{installed:!0,commandPath:e,reason:null}}catch{return{installed:!0,commandPath:e,reason:"not_executable"}}},k=async(e,t,a)=>{if(!Array.isArray(e)||0===e.length)return{command:null,installed:!1,commandPath:null,reason:"missing_command"};if(a)for(let t of(e=>{let t=p.default.homedir(),a=[],o=A();if(process.execPath.toLowerCase().includes("nvm")&&m.default.dirname(process.execPath),"win32"===process.platform);else for(let[,i]of({claude:[["claude.cmd","claude"],["claude.exe","claude"]],codex:[["codex.cmd","codex"]],droid:[["droid.cmd","droid"],["droid.exe","droid"]],openclaw:[["openclaw.cmd","openclaw"]],cursor:[["agent.cmd","agent"],["cursor.cmd","cursor"]],cline:[["cline.cmd","cline"]],kilo:[["kilocode.cmd","kilocode"]],opencode:[["opencode.cmd","opencode"]]})[e]||[]){let r=m.default.dirname(process.execPath);a.push(m.default.join(r,i)),o&&a.push(m.default.join(o,"bin",i)),a.push(m.default.join(t,".local","bin",i)),u.default.existsSync("/usr/local/bin")&&a.push(m.default.join("/usr","local","bin",i)),u.default.existsSync("/usr/bin")&&a.push(m.default.join("/usr","bin",i)),"opencode"===e&&a.push(m.default.join(t,".opencode","bin",i)),"claude"===e&&a.push(m.default.join(t,".claude","bin",i))}return a})(a)){let a=await E(t);if(a.installed&&null===a.reason)return{command:e[0],installed:!0,commandPath:a.commandPath,reason:null}}for(let a of e){let e=await P(a,t);if(e.installed||"not_found"!==e.reason)return{command:a,...e}}return{command:e[0],installed:!1,commandPath:null,reason:"not_found"}},R=async(e,t,a=4e3)=>{let o={PATH:t.PATH,HOME:t.HOME||t.USERPROFILE,SystemRoot:t.SystemRoot,PATHEXT:t.PATHEXT};for(let t of[["--version"],["-v"]]){let i=await x(e,t,{env:o,timeoutMs:a});if(i.ok&&i.stdout.length>0&&i.stdout.length<4096)return{runnable:!0,reason:null,version:i.stdout.trim()}}return{runnable:!1,reason:"healthcheck_failed"}},S=()=>((e=process.platform,t=process.env,a=p.default.homedir())=>m.default.join(((e=process.platform,t=process.env,a=p.default.homedir())=>"win32"===e?String(t.APPDATA||"").trim()||m.default.join(a,"AppData","Roaming"):String(t.XDG_CONFIG_HOME||"").trim()||m.default.join(a,".config"))(e,t,a),"opencode","opencode.json"))(),O=e=>{let t=y[e];if(!t)return null;if("opencode"===e)return{config:S()};let a=(()=>{let e=String(process.env.CLI_CONFIG_HOME||"").trim();if(!e||!m.default.isAbsolute(e)||b.some(t=>e.includes(t))||m.default.normalize(e).includes(".."))return p.default.homedir();let t=p.default.homedir(),a=m.default.normalize(e);return v(a,t)?a:t})();return Object.fromEntries(Object.entries(t.paths).map(([e,t])=>[e,m.default.join(a,t)]))},F=async e=>{let t,a,o,i=y[e],r=(t=String(process.env.CLI_MODE||"auto").trim().toLowerCase(),f.has(t)?t:"auto");if(!i)return{installed:!1,runnable:!1,command:null,commandPath:null,reason:"unknown_tool",runtimeMode:r,requiresBinary:!1};let n=(a={...process.env},(o=String(process.env.CLI_EXTRA_PATHS||"").split(m.default.delimiter).map(e=>e.trim()).filter(Boolean).filter(e=>!(!m.default.isAbsolute(e)||b.some(t=>e.includes(t))||m.default.normalize(e).includes("..")))).length>0&&(a.PATH=[...o,a.PATH||""].filter(Boolean).join(m.default.delimiter)),a),s=(e=>{let t=y[e];if(!t)return[];let a=String(process.env[t.envBinKey]||"").trim();return a?[a]:Array.isArray(t.defaultCommands)&&t.defaultCommands.length>0?t.defaultCommands.filter(Boolean):t.defaultCommand?[t.defaultCommand]:[]})(e),l=!1!==i.requiresBinary;if(!l&&0===s.length)return{installed:!0,runnable:!0,command:null,commandPath:null,reason:"not_required",runtimeMode:r,requiresBinary:l};let c=await k(s,n,e),d=c.command;if(!c.installed)return{installed:!1,runnable:!1,command:d,commandPath:null,reason:c.reason||"not_found",runtimeMode:r,requiresBinary:l};if("not_executable"===c.reason)return{installed:!0,runnable:!1,command:d,commandPath:c.commandPath,reason:"not_executable",runtimeMode:r,requiresBinary:l};let u=await R(c.commandPath,n,Number(i.healthcheckTimeoutMs||4e3));return{installed:!0,runnable:u.runnable,command:d,commandPath:c.commandPath,reason:u.reason,runtimeMode:r,requiresBinary:l}},T=Object.keys(y);e.s(["CLI_TOOL_IDS",0,T,"ensureCliConfigWriteAllowed",0,()=>((e,t=!0)=>null==e||""===e?t:!g.has(String(e).trim().toLowerCase()))(process.env.CLI_ALLOW_CONFIG_WRITES,!0)?null:"CLI config writes are disabled (CLI_ALLOW_CONFIG_WRITES=false)","getCliConfigPaths",0,O,"getCliPrimaryConfigPath",0,e=>{let t=O(e);if(!t)return null;let a=Object.keys(t)[0];return a?t[a]:null},"getCliRuntimeStatus",0,F,"getOpenCodeConfigPath",0,S])},102835,e=>e.a(async(t,a)=>{try{var o=e.i(677850),i=t([o]);[o]=i.then?(await i)():i;let n=o.z.object({id:o.z.string().min(1),alias:o.z.string().min(1),name:o.z.string().min(1),icon:o.z.string().min(1),color:o.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:o.z.string().optional(),website:o.z.string().url().optional(),passthroughModels:o.z.boolean().optional(),deprecated:o.z.boolean().optional(),deprecationReason:o.z.string().optional(),hasFree:o.z.boolean().optional(),freeNote:o.z.string().optional(),authHint:o.z.string().optional(),apiHint:o.z.string().optional()}),s=o.z.record(o.z.string(),n);function r(e,t){let a=s.safeParse(e);if(!a.success){let e=a.error.issues.map(e=>` ${e.path.join(".")}: ${e.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${t} has invalid entries:
|
|
2
|
-
${e}`),Error(`Provider validation failed for ${t}`)}}e.s(["validateProviders",()=>r]),a()}catch(e){a(e)}},!1),963219,e=>e.a(async(t,a)=>{try{var o=e.i(102835),i=t([o]);[o]=i.then?(await i)():i;let l={qoder:{id:"qoder",alias:"if",name:"Qoder AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gemini-cli",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationReason:"Google restricts third-party OAuth usage for Gemini CLI (Mar 2026). Pro models require paid plans. Use 'gemini' (API key) provider instead."},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},c={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},d={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"bailian-coding-plan":{id:"bailian-coding-plan",alias:"bcp",name:"Alibaba Coding Plan",icon:"code",color:"#FF6A00",textIcon:"BCP",website:"https://www.alibabacloud.com/help/en/model-studio/coding-plan"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},"kimi-coding-apikey":{id:"kimi-coding-apikey",alias:"kmca",name:"Kimi Coding (API Key)",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.com"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini (Google AI Studio)",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",hasFree:!0,freeNote:"Free forever: 1,500 req/day for Gemini 2.5 Flash — no credit card, get key at aistudio.google.com"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",hasFree:!0,freeNote:"$25 signup credits + 3 permanently free models: Llama 3.3 70B, Vision, DeepSeek-R1 distill"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",hasFree:!0,freeNote:"Free Inference API for thousands of models (Whisper, VITS, SDXL…)"},synthetic:{id:"synthetic",alias:"synthetic",name:"Synthetic",icon:"verified_user",color:"#6366F1",textIcon:"SY",website:"https://synthetic.new",passthroughModels:!0},"kilo-gateway":{id:"kilo-gateway",alias:"kg",name:"Kilo Gateway",icon:"hub",color:"#617A91",textIcon:"KG",website:"https://kilo.ai",passthroughModels:!0},vertex:{id:"vertex",alias:"vertex",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VA",website:"https://cloud.google.com/vertex-ai",authHint:"Provide Service Account JSON or OAuth access_token"},zai:{id:"zai",alias:"zai",name:"Z.AI",icon:"psychology",color:"#2563EB",textIcon:"ZA",website:"https://open.bigmodel.cn",apiHint:"API key from https://open.bigmodel.cn/usercenter/apikeys"},"perplexity-search":{id:"perplexity-search",alias:"pplx-search",name:"Perplexity Search",icon:"search",color:"#20808D",textIcon:"PS",website:"https://docs.perplexity.ai/guides/search-quickstart",authHint:"Same API key as Perplexity (pplx-...)"},"serper-search":{id:"serper-search",alias:"serper-search",name:"Serper Search",icon:"search",color:"#4285F4",textIcon:"SP",website:"https://serper.dev",authHint:"API key from serper.dev dashboard"},"brave-search":{id:"brave-search",alias:"brave-search",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",authHint:"Subscription token from Brave Search API dashboard"},"exa-search":{id:"exa-search",alias:"exa-search",name:"Exa Search",icon:"neurology",color:"#1E40AF",textIcon:"EX",website:"https://exa.ai",authHint:"API key from dashboard.exa.ai"},"tavily-search":{id:"tavily-search",alias:"tavily-search",name:"Tavily Search",icon:"manage_search",color:"#5B4FDB",textIcon:"TV",website:"https://tavily.com",authHint:"API key from app.tavily.com (format: tvly-...)"},"opencode-zen":{id:"opencode-zen",alias:"opencode-zen",name:"OpenCode Zen",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen"},"opencode-go":{id:"opencode-go",alias:"opencode-go",name:"OpenCode Go",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen/go"},alibaba:{id:"alibaba",alias:"ali",name:"Alibaba Cloud (DashScope)",icon:"cloud_queue",color:"#FF6600",textIcon:"AL",website:"https://dashscope-intl.aliyuncs.com",hasFree:!1},longcat:{id:"longcat",alias:"lc",name:"LongCat AI",icon:"auto_awesome",color:"#FF6B9D",textIcon:"LC",website:"https://longcat.chat",hasFree:!0,freeNote:"50M tokens/day (Flash-Lite) + 500K/day (Chat/Thinking) — 100% free while public beta"},pollinations:{id:"pollinations",alias:"pol",name:"Pollinations AI",icon:"local_florist",color:"#4CAF50",textIcon:"PO",website:"https://pollinations.ai",hasFree:!0,freeNote:"No API key needed — access GPT-5, Claude, Gemini, DeepSeek V3, Llama 4 free (1 req/15s)"},puter:{id:"puter",alias:"pu",name:"Puter AI",icon:"cloud_circle",color:"#6366F1",textIcon:"PU",website:"https://puter.com",hasFree:!0,freeNote:"500+ models (GPT-5, Claude Opus 4, Gemini 3 Pro, Grok 4, DeepSeek V3...) — Users pay via free Puter account",passthroughModels:!0,authHint:"Get token at puter.com/dashboard → Copy Auth Token"},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare Workers AI",icon:"cloud",color:"#F48120",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",hasFree:!0,freeNote:"Free 10K Neurons/day: ~150 LLM responses or 500s Whisper audio — edge inference globally",authHint:"Requires API Token AND Account ID (found at dash.cloudflare.com)"},scaleway:{id:"scaleway",alias:"scw",name:"Scaleway AI",icon:"cloud",color:"#4F0599",textIcon:"SCW",website:"https://www.scaleway.com/en/ai/generative-apis/",hasFree:!0,freeNote:"1M free tokens for new accounts — EU/GDPR compliant (Paris), Qwen3 235B & Llama 70B"},aimlapi:{id:"aimlapi",alias:"aiml",name:"AI/ML API",icon:"hub",color:"#6366F1",textIcon:"AI",website:"https://aimlapi.com",hasFree:!0,freeNote:"$0.025/day free credits — 200+ models (GPT-4o, Claude, Gemini, Llama) via single endpoint",passthroughModels:!0}},u="openai-compatible-",p="anthropic-compatible-";function r(e){return"string"==typeof e&&e.startsWith(u)}function n(e){return"string"==typeof e&&e.startsWith(p)}let m={...l,...c,...d};function s(e){let t=m[e];return t?.alias||e}let h=Object.values(m).reduce((e,t)=>(e[t.alias]=t.id,e),{});Object.values(m).reduce((e,t)=>(e[t.id]=t.alias,e),{}),(0,o.validateProviders)(l,"FREE_PROVIDERS"),(0,o.validateProviders)(c,"OAUTH_PROVIDERS"),(0,o.validateProviders)(d,"APIKEY_PROVIDERS"),e.s(["AI_PROVIDERS",0,m,"ALIAS_TO_ID",0,h,"ANTHROPIC_COMPATIBLE_PREFIX",0,p,"APIKEY_PROVIDERS",0,d,"FREE_PROVIDERS",0,l,"OAUTH_PROVIDERS",0,c,"OPENAI_COMPATIBLE_PREFIX",0,u,"getProviderAlias",()=>s,"isAnthropicCompatibleProvider",()=>n,"isOpenAICompatibleProvider",()=>r]),a()}catch(e){a(e)}},!1),239394,e=>e.a(async(t,a)=>{try{var o=e.i(89171);e.i(180725);var i=e.i(385498),r=e.i(963219),n=e.i(910660),s=e.i(676088),l=e.i(200392),c=t([r,n,s,l]);function d(e){return r.FREE_PROVIDERS[e]?"free":r.OAUTH_PROVIDERS[e]?"oauth":r.APIKEY_PROVIDERS[e]?"apikey":"string"==typeof e&&(e.startsWith(r.OPENAI_COMPATIBLE_PREFIX)||e.startsWith(r.ANTHROPIC_COMPATIBLE_PREFIX))?"compatible":"apikey"}async function u(e){let t;try{t=await e.json()}catch{return o.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,l.validateBody)(s.providersBatchTestSchema,t);if((0,l.isValidationFailure)(e))return o.NextResponse.json({error:e.error},{status:400});let{mode:a,providerId:c}=e.data,u=await (0,i.getProviderConnections)({isActive:!0}),p=[];if("provider"===a&&c)p=u.filter(e=>e.provider===c);else if("oauth"===a)p=u.filter(e=>"oauth"===d(e.provider));else if("free"===a)p=u.filter(e=>"free"===d(e.provider));else if("apikey"===a)p=u.filter(e=>"apikey"===d(e.provider));else if("compatible"===a)p=u.filter(e=>{var t;return t=e.provider,"string"==typeof t&&(t.startsWith(r.OPENAI_COMPATIBLE_PREFIX)||t.startsWith(r.ANTHROPIC_COMPATIBLE_PREFIX))});else{if("all"!==a)return o.NextResponse.json({error:"Invalid mode. Use: provider, oauth, free, apikey, compatible, all"},{status:400});p=u}if(0===p.length)return o.NextResponse.json({mode:a,providerId:c||null,results:[],testedAt:new Date().toISOString()});let m=async e=>{try{let t=await Promise.race([(0,n.testSingleConnection)(e.id),new Promise((e,t)=>setTimeout(()=>t(Error("Connection test timed out after 30s")),3e4))]);return{provider:e.provider,connectionId:e.id,connectionName:e.name||e.email||e.provider,authType:e.authType||d(e.provider),valid:t.valid,latencyMs:t.latencyMs||0,error:t.error||null,diagnosis:t.diagnosis||null,statusCode:t.statusCode||null,testedAt:t.testedAt||new Date().toISOString()}}catch(t){return{provider:e.provider,connectionId:e.id,connectionName:e.name||e.email||e.provider,authType:e.authType||d(e.provider),valid:!1,latencyMs:0,error:t.message,diagnosis:{type:"network_error",source:"local",code:null,message:t.message},statusCode:null,testedAt:new Date().toISOString()}}},h=[];for(let e=0;e<p.length;e+=5){let t=p.slice(e,e+5);for(let e of(await Promise.allSettled(t.map(m))))h.push("fulfilled"===e.status?e.value:{provider:"unknown",connectionId:"unknown",connectionName:"unknown",authType:"unknown",valid:!1,latencyMs:0,error:e.reason?.message||"Test failed",diagnosis:{type:"network_error",source:"local",code:null,message:e.reason?.message||"Test failed"},statusCode:null,testedAt:new Date().toISOString()})}return o.NextResponse.json({mode:a,providerId:c||null,results:h,testedAt:new Date().toISOString(),summary:{total:h.length,passed:h.filter(e=>e.valid).length,failed:h.filter(e=>!e.valid).length}})}catch(e){return console.log("Error in batch test:",e),o.NextResponse.json({error:"Batch test failed"},{status:500})}}[r,n,s,l]=c.then?(await c)():c,e.s(["POST",()=>u]),a()}catch(e){a(e)}},!1),613089,e=>e.a(async(t,a)=>{try{var o=e.i(747909),i=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),l=e.i(174677),c=e.i(869741),d=e.i(316795),u=e.i(487718),p=e.i(995169),m=e.i(47587),h=e.i(666012),f=e.i(570101),g=e.i(626937),y=e.i(10372),x=e.i(193695);e.i(52474);var b=e.i(600220),v=e.i(239394),w=t([v]);[v]=w.then?(await w)():w;let C=new o.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/providers/test-batch/route",pathname:"/api/providers/test-batch",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/providers/test-batch/route.ts",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:_,workUnitAsyncStorage:P,serverHooks:E}=C;function I(){return(0,r.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:P})}async function A(e,t,a){C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let o="/api/providers/test-batch/route";o=o.replace(/\/index$/,"")||"/";let r=await C.prepare(e,t,{srcPage:o,multiZoneDraftMode:!1});if(!r)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:w,nextConfig:I,parsedUrl:A,isDraftMode:_,prerenderManifest:P,routerServerContext:E,isOnDemandRevalidate:k,revalidateOnlyGenerated:R,resolvedPathname:S,clientReferenceManifest:O,serverActionsManifest:F}=r,T=(0,c.normalizeAppPath)(o),D=!!(P.dynamicRoutes[T]||P.routes[S]),N=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!_){let e=!!P.routes[S],t=P.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await N();throw new x.NoFallbackError}}let L=null;!D||C.isDev||_||(L=S,L="/index"===L?"/":L);let B=!0===C.isDev||!D,j=D&&!B;F&&O&&(0,l.setManifestsSingleton)({page:o,clientReferenceManifest:O,serverActionsManifest:F});let M=e.method||"GET",U=(0,s.getTracer)(),q=U.getActiveScopeSpan(),H={params:w,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:B,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,o,i)=>C.onRequestError(e,t,o,i,E)},sharedContext:{buildId:v}},K=new d.NodeNextRequest(e),G=new d.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let r=async e=>C.handle(z,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=U.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=a.get("next.route");if(i){let t=`${M} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${o}`)}),l=!!(0,n.getRequestMeta)(e,"minimalMode"),c=async n=>{var s,c;let d=async({previousCacheEntry:i})=>{try{if(!l&&k&&R&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await r(n);e.fetchMetrics=H.renderOpts.fetchMetrics;let s=H.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let c=H.renderOpts.collectedTags;if(!D)return await (0,h.sendResponse)(K,G,o,H.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);c&&(t[y.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,i=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:b.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:i}}}}catch(t){throw(null==i?void 0:i.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:o,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:k})},!1,E),t}},u=await C.handleResponse({req:e,nextConfig:I,cacheKey:L,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:R,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:l});if(!D)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==b.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(c=u.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return l&&D||p.delete(y.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(K,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};q?await c(q):await U.withPropagatedContext(e.headers,()=>U.trace(p.BaseServerSpan.handleRequest,{spanName:`${M} ${o}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},c))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:k})},!1,E),D)throw t;return await (0,h.sendResponse)(K,G,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>I,"routeModule",()=>C,"serverHooks",()=>E,"workAsyncStorage",()=>_,"workUnitAsyncStorage",()=>P]),a()}catch(e){a(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)))},485685,e=>{e.v(e=>Promise.resolve().then(()=>e(254799)))},605589,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_localDb_ts_83220848._.js"].map(t=>e.l(t))).then(()=>t(969738)))}];
|
|
1
|
+
module.exports=[918622,(e,t,a)=>{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,a)=>{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,a)=>{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,a)=>{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,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,a)=>{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,a)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,a)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,a)=>{"use strict";var o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,s={},l={RequestCookies:()=>f,ResponseCookies:()=>g,parseCookie:()=>u,parseSetCookie:()=>p,stringifyCookie:()=>d};for(var c in l)o(s,c,{get:l[c],enumerable:!0});function d(e){var t;let a=["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),o=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===a.length?o:`${o}; ${a.join("; ")}`}function u(e){let t=new Map;for(let a of e.split(/; */)){if(!a)continue;let e=a.indexOf("=");if(-1===e){t.set(a,"true");continue}let[o,i]=[a.slice(0,e),a.slice(e+1)];try{t.set(o,decodeURIComponent(null!=i?i:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,a],...o]=u(e),{domain:i,expires:r,httponly:n,maxage:s,path:l,samesite:c,secure:d,partitioned:p,priority:f}=Object.fromEntries(o.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,x={name:t,value:decodeURIComponent(a),domain:i,...r&&{expires:new Date(r)},...n&&{httpOnly:!0},..."string"==typeof s&&{maxAge:Number(s)},path:l,...c&&{sameSite:m.includes(g=(g=c).toLowerCase())?g:void 0},...d&&{secure:!0},...f&&{priority:h.includes(y=(y=f).toLowerCase())?y:void 0},...p&&{partitioned:!0}};let e={};for(let t in x)x[t]&&(e[t]=x[t]);return e}}t.exports=((e,t,a,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of r(t))n.call(e,a)||void 0===a||o(e,a,{get:()=>t[a],enumerable:!(s=i(t,a))||s.enumerable});return e})(o({},"__esModule",{value:!0}),s);var m=["strict","lax","none"],h=["low","medium","high"],f=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,a]of u(t))this._parsed.set(e,{name:e,value:a})}[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 a=Array.from(this._parsed);if(!e.length)return a.map(([e,t])=>t);let o="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return a.filter(([e])=>e===o).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,a]=1===e.length?[e[0].name,e[0].value]:e,o=this._parsed;return o.set(t,{name:t,value:a}),this._headers.set("cookie",Array.from(o).map(([e,t])=>d(t)).join("; ")),this}delete(e){let t=this._parsed,a=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("; ")),a}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,a,o;this._parsed=new Map,this._headers=e;const i=null!=(o=null!=(a=null==(t=e.getSetCookie)?void 0:t.call(e))?a:e.get("set-cookie"))?o:[];for(const e of Array.isArray(i)?i:function(e){if(!e)return[];var t,a,o,i,r,n=[],s=0;function l(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,r=!1;l();)if(","===(a=e.charAt(s))){for(o=s,s+=1,l(),i=s;s<e.length&&"="!==(a=e.charAt(s))&&";"!==a&&","!==a;)s+=1;s<e.length&&"="===e.charAt(s)?(r=!0,s=i,n.push(e.substring(t,o)),t=s):s=o+1}else s+=1;(!r||s>=e.length)&&n.push(e.substring(t,e.length))}return n}(i)){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 a=Array.from(this._parsed.values());if(!e.length)return a;let o="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return a.filter(e=>e.name===o)}has(e){return this._parsed.has(e)}set(...e){let[t,a,o]=1===e.length?[e[0].name,e[0].value,e[0]]:e,i=this._parsed;return i.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:a,...o})),function(e,t){for(let[,a]of(t.delete("set-cookie"),e)){let e=d(a);t.append("set-cookie",e)}}(i,this._headers),this}delete(...e){let[t,a]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...a,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("; ")}}},677850,e=>e.a(async(t,a)=>{try{let t=await e.y("zod");e.n(t),a()}catch(e){a(e)}},!0),200392,e=>e.a(async(t,a)=>{try{var o=e.i(677850),i=t([o]);function r(e,t){let a=e.safeParse(t);if(a.success)return{success:!0,data:a.data};let o=Array.isArray(a.error?.issues)?a.error.issues:[];return{success:!1,error:{message:"Invalid request",details:o.map(e=>({field:e.path.join("."),message:e.message}))}}}function n(e){return!1===e.success}[o]=i.then?(await i)():i,o.z.object({password:o.z.string().min(1,"Password is required").max(200)}),e.s(["isValidationFailure",()=>n,"validateBody",()=>r]),a()}catch(e){a(e)}},!1),41244,e=>{"use strict";e.s(["HIDEABLE_SIDEBAR_ITEM_IDS",0,["home","endpoints","api-manager","providers","combos","costs","analytics","limits","cache","cli-tools","agents","translator","playground","media","search-tools","health","logs","audit","settings","docs","issues"]])},180725,e=>{"use strict";e.i(245272),e.s([])},233405,(e,t,a)=>{t.exports=e.x("child_process",()=>require("child_process"))},250875,e=>{"use strict";var t=e.i(233405),a=e.i(522734);async function o(i=null){let r=i||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let o=function(){try{let e=process.env.SystemRoot||process.env.windir||"C:\\Windows",o=`${e}\\System32\\REG.exe`;if((0,a.existsSync)(o)){let e=(0,t.execFileSync)(o,["QUERY","HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography","/v","MachineGuid"],{encoding:"utf8",timeout:5e3}),a=e.split("REG_SZ")[1]?.replace(/\r+|\n+|\s+/gi,"")?.toLowerCase();if(a&&a.length>8)return a}}catch{}try{let e=(0,t.execSync)("ioreg -rd1 -c IOPlatformExpertDevice",{encoding:"utf8",timeout:5e3});if(e.includes("IOPlatformUUID")){let t=e.split("IOPlatformUUID")[1]?.split("\n")[0]?.replace(/=|\s+|"/gi,"")?.toLowerCase();if(t&&t.length>8)return t}}catch{}try{for(let e of["/etc/machine-id","/var/lib/dbus/machine-id"])if((0,a.existsSync)(e)){let t=(0,a.readFileSync)(e,"utf8").trim().toLowerCase();if(t.length>8)return t}}catch{}try{let e=(0,t.execSync)("hostname",{encoding:"utf8",timeout:5e3}).trim().toLowerCase();if(e)return e}catch{}try{return e.r(446786).hostname().toLowerCase()}catch{}return"unknown-machine"}();return(await e.A(485685)).createHash("sha256").update(o+r).digest("hex").substring(0,16)}catch(t){console.log("Error getting machine ID:",t);try{return(await e.A(485685)).randomUUID()}catch{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})}}}e.s(["getConsistentMachineId",()=>o])},639173,e=>{"use strict";e.i(245272);var t=e.i(385498),a=e.i(186920),o=e.i(151205),i=e.i(125852);let r=process.env.CLOUD_URL||process.env.NEXT_PUBLIC_CLOUD_URL,n=Number(process.env.CLOUD_SYNC_TIMEOUT_MS||12e3);function s(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function l(e){if("string"==typeof e||"number"==typeof e||e instanceof Date){let t=new Date(e).getTime();return Number.isFinite(t)?t:0}return 0}async function c(e,t={},a=n){let o=new AbortController,i=setTimeout(()=>o.abort(),a);try{return await fetch(e,{...t,signal:o.signal})}finally{clearTimeout(i)}}async function d(e,n=null){let s;if(!r)return{error:"NEXT_PUBLIC_CLOUD_URL is not configured"};let l=await (0,t.getProviderConnections)(),p=await (0,a.getModelAliases)(),m=await (0,o.getCombos)(),h=await (0,i.getApiKeys)();try{s=await c(`${r}/sync/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providers:l,modelAliases:p,combos:m,apiKeys:h})})}catch(e){return{error:e?.name==="AbortError"?"Cloud sync timeout":"Cloud sync request failed"}}if(!s.ok){let e=await s.text(),t=e.length>200?e.slice(0,200)+"…":e;return console.log(`Cloud sync failed (${s.status}):`,t),{error:"Cloud sync failed"}}let f=await s.json();f.data&&f.data.providers&&await u(f.data.providers);let g={success:!0,message:"Synced successfully",changes:f.changes};return n&&(g.createdKey=n),g}async function u(e){let a=s(e);for(let e of(await (0,t.getProviderConnections)())){var o;let i=s(e),r="string"==typeof(o=i.id)&&o.trim().length>0?o:null;if(!r)continue;let n=s(a[r]);if(0!==Object.keys(n).length){if(l(n.updatedAt)>l(i.updatedAt)){let e={accessToken:n.accessToken,refreshToken:n.refreshToken,expiresAt:n.expiresAt,expiresIn:n.expiresIn,providerSpecificData:n.providerSpecificData||i.providerSpecificData,testStatus:n.status||"active",lastError:n.lastError,lastErrorAt:n.lastErrorAt,errorCode:n.errorCode,rateLimitedUntil:n.rateLimitedUntil,updatedAt:n.updatedAt};await (0,t.updateProviderConnection)(r,e)}}}}e.s(["CLOUD_URL",()=>r,"fetchWithTimeout",()=>c,"syncToCloud",()=>d])},924868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},266240,e=>{"use strict";let t,a,o,i,r,n,s,l,c;var d=e.i(924868),u=e.i(522734),p=e.i(446786),m=e.i(814747),h=e.i(233405);let f=new Set(["auto","host","container"]),g=new Set(["0","false","no","off"]),y={claude:{defaultCommand:"claude",envBinKey:"CLI_CLAUDE_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{settings:".claude/settings.json"}},codex:{defaultCommand:"codex",envBinKey:"CLI_CODEX_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{config:".codex/config.toml",auth:".codex/auth.json"}},droid:{defaultCommand:"droid",envBinKey:"CLI_DROID_BIN",requiresBinary:!0,healthcheckTimeoutMs:8e3,paths:{settings:".factory/settings.json"}},openclaw:{defaultCommand:"openclaw",envBinKey:"CLI_OPENCLAW_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{settings:".openclaw/openclaw.json"}},cursor:{defaultCommands:["agent","cursor"],envBinKey:"CLI_CURSOR_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".cursor/cli-config.json",auth:".config/cursor/auth.json",state:".cursor/agent-cli-state.json"}},windsurf:{defaultCommand:null,envBinKey:"CLI_WINDSURF_BIN",requiresBinary:!1,healthcheckTimeoutMs:4e3,paths:{}},cline:{defaultCommand:"cline",envBinKey:"CLI_CLINE_BIN",requiresBinary:!0,healthcheckTimeoutMs:12e3,paths:{globalState:".cline/data/globalState.json",secrets:".cline/data/secrets.json"}},kilo:{defaultCommand:"kilocode",envBinKey:"CLI_KILO_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{auth:".local/share/kilo/auth.json"}},continue:{defaultCommand:null,envBinKey:"CLI_CONTINUE_BIN",requiresBinary:!1,healthcheckTimeoutMs:15e3,paths:{settings:".continue/config.json"}},opencode:{defaultCommand:"opencode",envBinKey:"CLI_OPENCODE_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".config/opencode/opencode.json"}}},x=(e,t,{env:a,timeoutMs:o=3e3}={})=>new Promise(i=>{let r="",n="",s=!1,l=!1,c=(0,h.spawn)(e,t,{env:a,stdio:["ignore","pipe","pipe"],..."win32"===process.platform?"TURBOPACK unreachable":{}}),d=setTimeout(()=>{s=!0,c.kill("SIGKILL")},o),u=e=>{l||(l=!0,clearTimeout(d),i(e))};c.stdout.on("data",e=>{r+=e.toString()}),c.stderr.on("data",e=>{n+=e.toString()}),c.on("error",e=>{u({ok:!1,code:null,stdout:r.trim(),stderr:n.trim(),timedOut:s,error:e?.message||"spawn_error"})}),c.on("close",e=>{u({ok:!s&&0===e,code:e,stdout:r.trim(),stderr:n.trim(),timedOut:s,error:s?"timeout":null})})}),b=["&","|",";","<",">","(",")","`","$","^","%","!"],v=(e,t)=>{let a=e=>m.default.normalize(e).toLowerCase().replace(/\\/g,"/"),o=a(e),i=a(t);if(o===i)return!0;let r=i.endsWith("/")?i:i+"/";return o.startsWith(r)},w=e=>!(!e||!m.default.isAbsolute(e)||b.some(t=>e.includes(t))),I=(e,t)=>{if(!e)return"";let a=e.trim();if(!m.default.isAbsolute(a)||b.some(e=>a.includes(e)))return"";let o=m.default.normalize(a);return o.includes("..")||t.length>0&&!t.some(e=>v(o,e))?"":o},A=()=>{if(void 0!==t)return t;let e=String(process.env.npm_config_prefix||"").trim();if(e&&m.default.isAbsolute(e))return t=e;try{let e=(0,h.execFileSync)("npm",["config","get","prefix"],{timeout:5e3,encoding:"utf8",stdio:["ignore","pipe","ignore"],..."win32"===process.platform?"TURBOPACK unreachable":{}}).trim();if(e&&m.default.isAbsolute(e)&&!b.some(t=>e.includes(t)))return t=e}catch{}return t=""},C=(a=p.default.homedir(),o=process.env.USERPROFILE||a,i=I(process.env.APPDATA,[a,o]),r=I(process.env.LOCALAPPDATA,[m.default.join(a,"AppData","Local"),m.default.join(o,"AppData","Local"),o]),n=I(process.env.ProgramFiles,["C:\\Program Files","C:\\Program Files (x86)"]),s=I(process.env["ProgramFiles(x86)"],["C:\\Program Files","C:\\Program Files (x86)"]),l=A(),c=[m.default.join(a,"bin"),m.default.join(a,".local","bin")],[a,...c,o,i,r,n,s,l].filter(Boolean)),_=async e=>{if(!w(e))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{await d.default.access(e,d.default.constants.F_OK)}catch{return{installed:!1,commandPath:null,reason:"not_found"}}try{return await d.default.access(e,d.default.constants.X_OK),{installed:!0,commandPath:e,reason:null}}catch{return{installed:!0,commandPath:e,reason:"not_executable"}}},P=async(e,t)=>{if(!e)return{installed:!1,commandPath:null,reason:"missing_command"};if(e.includes("/")||e.includes("\\"))return _(e);process.platform;let a=await x("sh",["-c",'command -v -- "$1"',"sh",e],{env:t,timeoutMs:3e3});if(!a.ok||!a.stdout)return{installed:!1,commandPath:null,reason:"not_found"};let o=a.stdout.split(/\r?\n/).map(e=>(e=>{if(!e||"win32"!==process.platform)return e})(e.trim())).find(Boolean)||null;return{installed:!!o,commandPath:o,reason:o?null:"not_found"}},E=async e=>{if(!m.default.isAbsolute(e))return{installed:!1,commandPath:null,reason:"not_absolute"};if(!w(e))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{let t=await d.default.realpath(e);if(!C.some(e=>v(t,e)))return{installed:!1,commandPath:null,reason:"symlink_escape"};let a=await d.default.stat(t);if(!a.isFile())return{installed:!1,commandPath:null,reason:"not_file"};if(a.size<30||a.size>0x15e00000)return{installed:!1,commandPath:null,reason:"suspicious_size"}}catch(t){let e=t.code;if("ENOENT"===e)return{installed:!1,commandPath:null,reason:"not_found"};if("EINVAL"===e)return{installed:!1,commandPath:null,reason:"invalid_path"};return{installed:!1,commandPath:null,reason:"access_error"}}try{return await d.default.access(e,d.default.constants.X_OK),{installed:!0,commandPath:e,reason:null}}catch{return{installed:!0,commandPath:e,reason:"not_executable"}}},k=async(e,t,a)=>{if(!Array.isArray(e)||0===e.length)return{command:null,installed:!1,commandPath:null,reason:"missing_command"};if(a)for(let t of(e=>{let t=p.default.homedir(),a=[],o=A();if(process.execPath.toLowerCase().includes("nvm")&&m.default.dirname(process.execPath),"win32"===process.platform);else for(let[,i]of({claude:[["claude.cmd","claude"],["claude.exe","claude"]],codex:[["codex.cmd","codex"]],droid:[["droid.cmd","droid"],["droid.exe","droid"]],openclaw:[["openclaw.cmd","openclaw"]],cursor:[["agent.cmd","agent"],["cursor.cmd","cursor"]],cline:[["cline.cmd","cline"]],kilo:[["kilocode.cmd","kilocode"]],opencode:[["opencode.cmd","opencode"]]})[e]||[]){let r=m.default.dirname(process.execPath);a.push(m.default.join(r,i)),o&&a.push(m.default.join(o,"bin",i)),a.push(m.default.join(t,".local","bin",i)),u.default.existsSync("/usr/local/bin")&&a.push(m.default.join("/usr","local","bin",i)),u.default.existsSync("/usr/bin")&&a.push(m.default.join("/usr","bin",i)),"opencode"===e&&a.push(m.default.join(t,".opencode","bin",i)),"claude"===e&&a.push(m.default.join(t,".claude","bin",i))}return a})(a)){let a=await E(t);if(a.installed&&null===a.reason)return{command:e[0],installed:!0,commandPath:a.commandPath,reason:null}}for(let a of e){let e=await P(a,t);if(e.installed||"not_found"!==e.reason)return{command:a,...e}}return{command:e[0],installed:!1,commandPath:null,reason:"not_found"}},S=async(e,t,a=4e3)=>{let o={PATH:t.PATH,HOME:t.HOME||t.USERPROFILE,SystemRoot:t.SystemRoot,PATHEXT:t.PATHEXT};for(let t of[["--version"],["-v"]]){let i=await x(e,t,{env:o,timeoutMs:a});if(i.ok&&i.stdout.length>0&&i.stdout.length<4096)return{runnable:!0,reason:null,version:i.stdout.trim()}}return{runnable:!1,reason:"healthcheck_failed"}},R=()=>((e=process.platform,t=process.env,a=p.default.homedir())=>m.default.join(((e=process.platform,t=process.env,a=p.default.homedir())=>"win32"===e?String(t.APPDATA||"").trim()||m.default.join(a,"AppData","Roaming"):String(t.XDG_CONFIG_HOME||"").trim()||m.default.join(a,".config"))(e,t,a),"opencode","opencode.json"))(),O=e=>{let t=y[e];if(!t)return null;if("opencode"===e)return{config:R()};let a=(()=>{let e=String(process.env.CLI_CONFIG_HOME||"").trim();if(!e||!m.default.isAbsolute(e)||b.some(t=>e.includes(t))||m.default.normalize(e).includes(".."))return p.default.homedir();let t=p.default.homedir(),a=m.default.normalize(e);return v(a,t)?a:t})();return Object.fromEntries(Object.entries(t.paths).map(([e,t])=>[e,m.default.join(a,t)]))},F=async e=>{let t,a,o,i=y[e],r=(t=String(process.env.CLI_MODE||"auto").trim().toLowerCase(),f.has(t)?t:"auto");if(!i)return{installed:!1,runnable:!1,command:null,commandPath:null,reason:"unknown_tool",runtimeMode:r,requiresBinary:!1};let n=(a={...process.env},(o=String(process.env.CLI_EXTRA_PATHS||"").split(m.default.delimiter).map(e=>e.trim()).filter(Boolean).filter(e=>!(!m.default.isAbsolute(e)||b.some(t=>e.includes(t))||m.default.normalize(e).includes("..")))).length>0&&(a.PATH=[...o,a.PATH||""].filter(Boolean).join(m.default.delimiter)),a),s=(e=>{let t=y[e];if(!t)return[];let a=String(process.env[t.envBinKey]||"").trim();return a?[a]:Array.isArray(t.defaultCommands)&&t.defaultCommands.length>0?t.defaultCommands.filter(Boolean):t.defaultCommand?[t.defaultCommand]:[]})(e),l=!1!==i.requiresBinary;if(!l&&0===s.length)return{installed:!0,runnable:!0,command:null,commandPath:null,reason:"not_required",runtimeMode:r,requiresBinary:l};let c=String(process.env[i.envBinKey]||"").trim(),d=await k(s,n,c?void 0:e),u=d.command;if(!d.installed)return{installed:!1,runnable:!1,command:u,commandPath:null,reason:d.reason||"not_found",runtimeMode:r,requiresBinary:l};if("not_executable"===d.reason)return{installed:!0,runnable:!1,command:u,commandPath:d.commandPath,reason:"not_executable",runtimeMode:r,requiresBinary:l};let p=await S(d.commandPath,n,Number(i.healthcheckTimeoutMs||4e3));return{installed:!0,runnable:p.runnable,command:u,commandPath:d.commandPath,reason:p.reason,runtimeMode:r,requiresBinary:l}},T=Object.keys(y);e.s(["CLI_TOOL_IDS",0,T,"ensureCliConfigWriteAllowed",0,()=>((e,t=!0)=>null==e||""===e?t:!g.has(String(e).trim().toLowerCase()))(process.env.CLI_ALLOW_CONFIG_WRITES,!0)?null:"CLI config writes are disabled (CLI_ALLOW_CONFIG_WRITES=false)","getCliConfigPaths",0,O,"getCliPrimaryConfigPath",0,e=>{let t=O(e);if(!t)return null;let a=Object.keys(t)[0];return a?t[a]:null},"getCliRuntimeStatus",0,F,"getOpenCodeConfigPath",0,R])},102835,e=>e.a(async(t,a)=>{try{var o=e.i(677850),i=t([o]);[o]=i.then?(await i)():i;let n=o.z.object({id:o.z.string().min(1),alias:o.z.string().min(1),name:o.z.string().min(1),icon:o.z.string().min(1),color:o.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:o.z.string().optional(),website:o.z.string().url().optional(),passthroughModels:o.z.boolean().optional(),deprecated:o.z.boolean().optional(),deprecationReason:o.z.string().optional(),hasFree:o.z.boolean().optional(),freeNote:o.z.string().optional(),authHint:o.z.string().optional(),apiHint:o.z.string().optional()}),s=o.z.record(o.z.string(),n);function r(e,t){let a=s.safeParse(e);if(!a.success){let e=a.error.issues.map(e=>` ${e.path.join(".")}: ${e.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${t} has invalid entries:
|
|
2
|
+
${e}`),Error(`Provider validation failed for ${t}`)}}e.s(["validateProviders",()=>r]),a()}catch(e){a(e)}},!1),963219,e=>e.a(async(t,a)=>{try{var o=e.i(102835),i=t([o]);[o]=i.then?(await i)():i;let l={qoder:{id:"qoder",alias:"if",name:"Qoder AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gemini-cli",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationReason:"Google restricts third-party OAuth usage for Gemini CLI (Mar 2026). Pro models require paid plans. Use 'gemini' (API key) provider instead."},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},c={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},d={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"bailian-coding-plan":{id:"bailian-coding-plan",alias:"bcp",name:"Alibaba Coding Plan",icon:"code",color:"#FF6A00",textIcon:"BCP",website:"https://www.alibabacloud.com/help/en/model-studio/coding-plan"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},"kimi-coding-apikey":{id:"kimi-coding-apikey",alias:"kmca",name:"Kimi Coding (API Key)",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.com"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini (Google AI Studio)",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",hasFree:!0,freeNote:"Free forever: 1,500 req/day for Gemini 2.5 Flash — no credit card, get key at aistudio.google.com"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",hasFree:!0,freeNote:"$25 signup credits + 3 permanently free models: Llama 3.3 70B, Vision, DeepSeek-R1 distill"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",hasFree:!0,freeNote:"Free Inference API for thousands of models (Whisper, VITS, SDXL…)"},synthetic:{id:"synthetic",alias:"synthetic",name:"Synthetic",icon:"verified_user",color:"#6366F1",textIcon:"SY",website:"https://synthetic.new",passthroughModels:!0},"kilo-gateway":{id:"kilo-gateway",alias:"kg",name:"Kilo Gateway",icon:"hub",color:"#617A91",textIcon:"KG",website:"https://kilo.ai",passthroughModels:!0},vertex:{id:"vertex",alias:"vertex",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VA",website:"https://cloud.google.com/vertex-ai",authHint:"Provide Service Account JSON or OAuth access_token"},zai:{id:"zai",alias:"zai",name:"Z.AI",icon:"psychology",color:"#2563EB",textIcon:"ZA",website:"https://open.bigmodel.cn",apiHint:"API key from https://open.bigmodel.cn/usercenter/apikeys"},"perplexity-search":{id:"perplexity-search",alias:"pplx-search",name:"Perplexity Search",icon:"search",color:"#20808D",textIcon:"PS",website:"https://docs.perplexity.ai/guides/search-quickstart",authHint:"Same API key as Perplexity (pplx-...)"},"serper-search":{id:"serper-search",alias:"serper-search",name:"Serper Search",icon:"search",color:"#4285F4",textIcon:"SP",website:"https://serper.dev",authHint:"API key from serper.dev dashboard"},"brave-search":{id:"brave-search",alias:"brave-search",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",authHint:"Subscription token from Brave Search API dashboard"},"exa-search":{id:"exa-search",alias:"exa-search",name:"Exa Search",icon:"neurology",color:"#1E40AF",textIcon:"EX",website:"https://exa.ai",authHint:"API key from dashboard.exa.ai"},"tavily-search":{id:"tavily-search",alias:"tavily-search",name:"Tavily Search",icon:"manage_search",color:"#5B4FDB",textIcon:"TV",website:"https://tavily.com",authHint:"API key from app.tavily.com (format: tvly-...)"},"opencode-zen":{id:"opencode-zen",alias:"opencode-zen",name:"OpenCode Zen",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen"},"opencode-go":{id:"opencode-go",alias:"opencode-go",name:"OpenCode Go",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen/go"},alibaba:{id:"alibaba",alias:"ali",name:"Alibaba Cloud (DashScope)",icon:"cloud_queue",color:"#FF6600",textIcon:"AL",website:"https://dashscope-intl.aliyuncs.com",hasFree:!1},longcat:{id:"longcat",alias:"lc",name:"LongCat AI",icon:"auto_awesome",color:"#FF6B9D",textIcon:"LC",website:"https://longcat.chat",hasFree:!0,freeNote:"50M tokens/day (Flash-Lite) + 500K/day (Chat/Thinking) — 100% free while public beta"},pollinations:{id:"pollinations",alias:"pol",name:"Pollinations AI",icon:"local_florist",color:"#4CAF50",textIcon:"PO",website:"https://pollinations.ai",hasFree:!0,freeNote:"No API key needed — access GPT-5, Claude, Gemini, DeepSeek V3, Llama 4 free (1 req/15s)"},puter:{id:"puter",alias:"pu",name:"Puter AI",icon:"cloud_circle",color:"#6366F1",textIcon:"PU",website:"https://puter.com",hasFree:!0,freeNote:"500+ models (GPT-5, Claude Opus 4, Gemini 3 Pro, Grok 4, DeepSeek V3...) — Users pay via free Puter account",passthroughModels:!0,authHint:"Get token at puter.com/dashboard → Copy Auth Token"},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare Workers AI",icon:"cloud",color:"#F48120",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",hasFree:!0,freeNote:"Free 10K Neurons/day: ~150 LLM responses or 500s Whisper audio — edge inference globally",authHint:"Requires API Token AND Account ID (found at dash.cloudflare.com)"},scaleway:{id:"scaleway",alias:"scw",name:"Scaleway AI",icon:"cloud",color:"#4F0599",textIcon:"SCW",website:"https://www.scaleway.com/en/ai/generative-apis/",hasFree:!0,freeNote:"1M free tokens for new accounts — EU/GDPR compliant (Paris), Qwen3 235B & Llama 70B"},aimlapi:{id:"aimlapi",alias:"aiml",name:"AI/ML API",icon:"hub",color:"#6366F1",textIcon:"AI",website:"https://aimlapi.com",hasFree:!0,freeNote:"$0.025/day free credits — 200+ models (GPT-4o, Claude, Gemini, Llama) via single endpoint",passthroughModels:!0}},u="openai-compatible-",p="anthropic-compatible-";function r(e){return"string"==typeof e&&e.startsWith(u)}function n(e){return"string"==typeof e&&e.startsWith(p)}let m={...l,...c,...d};function s(e){let t=m[e];return t?.alias||e}let h=Object.values(m).reduce((e,t)=>(e[t.alias]=t.id,e),{});Object.values(m).reduce((e,t)=>(e[t.id]=t.alias,e),{}),(0,o.validateProviders)(l,"FREE_PROVIDERS"),(0,o.validateProviders)(c,"OAUTH_PROVIDERS"),(0,o.validateProviders)(d,"APIKEY_PROVIDERS"),e.s(["AI_PROVIDERS",0,m,"ALIAS_TO_ID",0,h,"ANTHROPIC_COMPATIBLE_PREFIX",0,p,"APIKEY_PROVIDERS",0,d,"FREE_PROVIDERS",0,l,"OAUTH_PROVIDERS",0,c,"OPENAI_COMPATIBLE_PREFIX",0,u,"getProviderAlias",()=>s,"isAnthropicCompatibleProvider",()=>n,"isOpenAICompatibleProvider",()=>r]),a()}catch(e){a(e)}},!1),239394,e=>e.a(async(t,a)=>{try{var o=e.i(89171);e.i(180725);var i=e.i(385498),r=e.i(963219),n=e.i(910660),s=e.i(676088),l=e.i(200392),c=t([r,n,s,l]);function d(e){return r.FREE_PROVIDERS[e]?"free":r.OAUTH_PROVIDERS[e]?"oauth":r.APIKEY_PROVIDERS[e]?"apikey":"string"==typeof e&&(e.startsWith(r.OPENAI_COMPATIBLE_PREFIX)||e.startsWith(r.ANTHROPIC_COMPATIBLE_PREFIX))?"compatible":"apikey"}async function u(e){let t;try{t=await e.json()}catch{return o.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,l.validateBody)(s.providersBatchTestSchema,t);if((0,l.isValidationFailure)(e))return o.NextResponse.json({error:e.error},{status:400});let{mode:a,providerId:c}=e.data,u=await (0,i.getProviderConnections)({isActive:!0}),p=[];if("provider"===a&&c)p=u.filter(e=>e.provider===c);else if("oauth"===a)p=u.filter(e=>"oauth"===d(e.provider));else if("free"===a)p=u.filter(e=>"free"===d(e.provider));else if("apikey"===a)p=u.filter(e=>"apikey"===d(e.provider));else if("compatible"===a)p=u.filter(e=>{var t;return t=e.provider,"string"==typeof t&&(t.startsWith(r.OPENAI_COMPATIBLE_PREFIX)||t.startsWith(r.ANTHROPIC_COMPATIBLE_PREFIX))});else{if("all"!==a)return o.NextResponse.json({error:"Invalid mode. Use: provider, oauth, free, apikey, compatible, all"},{status:400});p=u}if(0===p.length)return o.NextResponse.json({mode:a,providerId:c||null,results:[],testedAt:new Date().toISOString()});let m=async e=>{try{let t=await Promise.race([(0,n.testSingleConnection)(e.id),new Promise((e,t)=>setTimeout(()=>t(Error("Connection test timed out after 30s")),3e4))]);return{provider:e.provider,connectionId:e.id,connectionName:e.name||e.email||e.provider,authType:e.authType||d(e.provider),valid:t.valid,latencyMs:t.latencyMs||0,error:t.error||null,diagnosis:t.diagnosis||null,statusCode:t.statusCode||null,testedAt:t.testedAt||new Date().toISOString()}}catch(t){return{provider:e.provider,connectionId:e.id,connectionName:e.name||e.email||e.provider,authType:e.authType||d(e.provider),valid:!1,latencyMs:0,error:t.message,diagnosis:{type:"network_error",source:"local",code:null,message:t.message},statusCode:null,testedAt:new Date().toISOString()}}},h=[];for(let e=0;e<p.length;e+=5){let t=p.slice(e,e+5);for(let e of(await Promise.allSettled(t.map(m))))h.push("fulfilled"===e.status?e.value:{provider:"unknown",connectionId:"unknown",connectionName:"unknown",authType:"unknown",valid:!1,latencyMs:0,error:e.reason?.message||"Test failed",diagnosis:{type:"network_error",source:"local",code:null,message:e.reason?.message||"Test failed"},statusCode:null,testedAt:new Date().toISOString()})}return o.NextResponse.json({mode:a,providerId:c||null,results:h,testedAt:new Date().toISOString(),summary:{total:h.length,passed:h.filter(e=>e.valid).length,failed:h.filter(e=>!e.valid).length}})}catch(e){return console.log("Error in batch test:",e),o.NextResponse.json({error:"Batch test failed"},{status:500})}}[r,n,s,l]=c.then?(await c)():c,e.s(["POST",()=>u]),a()}catch(e){a(e)}},!1),613089,e=>e.a(async(t,a)=>{try{var o=e.i(747909),i=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),l=e.i(174677),c=e.i(869741),d=e.i(316795),u=e.i(487718),p=e.i(995169),m=e.i(47587),h=e.i(666012),f=e.i(570101),g=e.i(626937),y=e.i(10372),x=e.i(193695);e.i(52474);var b=e.i(600220),v=e.i(239394),w=t([v]);[v]=w.then?(await w)():w;let C=new o.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/providers/test-batch/route",pathname:"/api/providers/test-batch",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/providers/test-batch/route.ts",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:_,workUnitAsyncStorage:P,serverHooks:E}=C;function I(){return(0,r.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:P})}async function A(e,t,a){C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let o="/api/providers/test-batch/route";o=o.replace(/\/index$/,"")||"/";let r=await C.prepare(e,t,{srcPage:o,multiZoneDraftMode:!1});if(!r)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:w,nextConfig:I,parsedUrl:A,isDraftMode:_,prerenderManifest:P,routerServerContext:E,isOnDemandRevalidate:k,revalidateOnlyGenerated:S,resolvedPathname:R,clientReferenceManifest:O,serverActionsManifest:F}=r,T=(0,c.normalizeAppPath)(o),D=!!(P.dynamicRoutes[T]||P.routes[R]),N=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!_){let e=!!P.routes[R],t=P.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await N();throw new x.NoFallbackError}}let L=null;!D||C.isDev||_||(L=R,L="/index"===L?"/":L);let B=!0===C.isDev||!D,j=D&&!B;F&&O&&(0,l.setManifestsSingleton)({page:o,clientReferenceManifest:O,serverActionsManifest:F});let M=e.method||"GET",U=(0,s.getTracer)(),q=U.getActiveScopeSpan(),H={params:w,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:B,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,o,i)=>C.onRequestError(e,t,o,i,E)},sharedContext:{buildId:v}},K=new d.NodeNextRequest(e),G=new d.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let r=async e=>C.handle(z,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=U.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=a.get("next.route");if(i){let t=`${M} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${o}`)}),l=!!(0,n.getRequestMeta)(e,"minimalMode"),c=async n=>{var s,c;let d=async({previousCacheEntry:i})=>{try{if(!l&&k&&S&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await r(n);e.fetchMetrics=H.renderOpts.fetchMetrics;let s=H.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let c=H.renderOpts.collectedTags;if(!D)return await (0,h.sendResponse)(K,G,o,H.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);c&&(t[y.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,i=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:b.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:i}}}}catch(t){throw(null==i?void 0:i.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:o,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:k})},!1,E),t}},u=await C.handleResponse({req:e,nextConfig:I,cacheKey:L,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:l});if(!D)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==b.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(c=u.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return l&&D||p.delete(y.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(K,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};q?await c(q):await U.withPropagatedContext(e.headers,()=>U.trace(p.BaseServerSpan.handleRequest,{spanName:`${M} ${o}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},c))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:k})},!1,E),D)throw t;return await (0,h.sendResponse)(K,G,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>I,"routeModule",()=>C,"serverHooks",()=>E,"workAsyncStorage",()=>_,"workUnitAsyncStorage",()=>P]),a()}catch(e){a(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)))},485685,e=>{e.v(e=>Promise.resolve().then(()=>e(254799)))},605589,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_localDb_ts_83220848._.js"].map(t=>e.l(t))).then(()=>t(969738)))}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__b39d0020._.js.map
|
|
@@ -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,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i={},l={RequestCookies:()=>h,ResponseCookies:()=>g,parseCookie:()=>c,parseSetCookie:()=>p,stringifyCookie:()=>d};for(var u in l)n(i,u,{get:l[u],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 c(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,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,r],...n]=c(e),{domain:a,expires:s,httponly:o,maxage:i,path:l,samesite:u,secure:d,partitioned:p,priority:h}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,v={name:t,value:decodeURIComponent(r),domain:a,...s&&{expires:new Date(s)},...o&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...u&&{sameSite:m.includes(g=(g=u).toLowerCase())?g:void 0},...d&&{secure:!0},...h&&{priority:f.includes(y=(y=h).toLowerCase())?y:void 0},...p&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))o.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(i=a(t,r))||i.enumerable});return e})(n({},"__esModule",{value:!0}),i);var m=["strict","lax","none"],f=["low","medium","high"],h=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of c(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("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=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(a)?a:function(e){if(!e)return[];var t,r,n,a,s,o=[],i=0;function l(){for(;i<e.length&&/\s/.test(e.charAt(i));)i+=1;return i<e.length}for(;i<e.length;){for(t=i,s=!1;l();)if(","===(r=e.charAt(i))){for(n=i,i+=1,l(),a=i;i<e.length&&"="!==(r=e.charAt(i))&&";"!==r&&","!==r;)i+=1;i<e.length&&"="===e.charAt(i)?(s=!0,i=a,o.push(e.substring(t,n)),t=i):i=n+1}else i+=1;(!s||i>=e.length)&&o.push(e.substring(t,e.length))}return o}(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 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,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,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=d(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(d).join("; ")}}},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},97793,e=>{"use strict";let t=new Set(["host","connection","content-length","keep-alive","proxy-connection","transfer-encoding","te","trailer","upgrade"].map(e=>e.toLowerCase()));function r(e){return t.has(String(e).trim().toLowerCase())}e.s(["isForbiddenUpstreamHeaderName",()=>r])},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 n=e.i(677850),a=t([n]);function s(e,t){let r=e.safeParse(t);if(r.success)return{success:!0,data:r.data};let n=Array.isArray(r.error?.issues)?r.error.issues:[];return{success:!1,error:{message:"Invalid request",details:n.map(e=>({field:e.path.join("."),message:e.message}))}}}function o(e){return!1===e.success}[n]=a.then?(await a)():a,n.z.object({password:n.z.string().min(1,"Password is required").max(200)}),e.s(["isValidationFailure",()=>o,"validateBody",()=>s]),r()}catch(e){r(e)}},!1),41244,e=>{"use strict";e.s(["HIDEABLE_SIDEBAR_ITEM_IDS",0,["home","endpoints","api-manager","providers","combos","costs","analytics","limits","cache","cli-tools","agents","translator","playground","media","search-tools","health","logs","audit","settings","docs","issues"]])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},266240,e=>{"use strict";let t,r,n,a,s,o,i,l,u;var d=e.i(924868),c=e.i(522734),p=e.i(446786),m=e.i(814747),f=e.i(233405);let h=new Set(["auto","host","container"]),g=new Set(["0","false","no","off"]),y={claude:{defaultCommand:"claude",envBinKey:"CLI_CLAUDE_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{settings:".claude/settings.json"}},codex:{defaultCommand:"codex",envBinKey:"CLI_CODEX_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{config:".codex/config.toml",auth:".codex/auth.json"}},droid:{defaultCommand:"droid",envBinKey:"CLI_DROID_BIN",requiresBinary:!0,healthcheckTimeoutMs:8e3,paths:{settings:".factory/settings.json"}},openclaw:{defaultCommand:"openclaw",envBinKey:"CLI_OPENCLAW_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{settings:".openclaw/openclaw.json"}},cursor:{defaultCommands:["agent","cursor"],envBinKey:"CLI_CURSOR_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".cursor/cli-config.json",auth:".config/cursor/auth.json",state:".cursor/agent-cli-state.json"}},windsurf:{defaultCommand:null,envBinKey:"CLI_WINDSURF_BIN",requiresBinary:!1,healthcheckTimeoutMs:4e3,paths:{}},cline:{defaultCommand:"cline",envBinKey:"CLI_CLINE_BIN",requiresBinary:!0,healthcheckTimeoutMs:12e3,paths:{globalState:".cline/data/globalState.json",secrets:".cline/data/secrets.json"}},kilo:{defaultCommand:"kilocode",envBinKey:"CLI_KILO_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{auth:".local/share/kilo/auth.json"}},continue:{defaultCommand:null,envBinKey:"CLI_CONTINUE_BIN",requiresBinary:!1,healthcheckTimeoutMs:15e3,paths:{settings:".continue/config.json"}},opencode:{defaultCommand:"opencode",envBinKey:"CLI_OPENCODE_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".config/opencode/opencode.json"}}},v=(e,t,{env:r,timeoutMs:n=3e3}={})=>new Promise(a=>{let s="",o="",i=!1,l=!1,u=(0,f.spawn)(e,t,{env:r,stdio:["ignore","pipe","pipe"],..."win32"===process.platform?"TURBOPACK unreachable":{}}),d=setTimeout(()=>{i=!0,u.kill("SIGKILL")},n),c=e=>{l||(l=!0,clearTimeout(d),a(e))};u.stdout.on("data",e=>{s+=e.toString()}),u.stderr.on("data",e=>{o+=e.toString()}),u.on("error",e=>{c({ok:!1,code:null,stdout:s.trim(),stderr:o.trim(),timedOut:i,error:e?.message||"spawn_error"})}),u.on("close",e=>{c({ok:!i&&0===e,code:e,stdout:s.trim(),stderr:o.trim(),timedOut:i,error:i?"timeout":null})})}),x=["&","|",";","<",">","(",")","`","$","^","%","!"],C=(e,t)=>{let r=e=>m.default.normalize(e).toLowerCase().replace(/\\/g,"/"),n=r(e),a=r(t);if(n===a)return!0;let s=a.endsWith("/")?a:a+"/";return n.startsWith(s)},_=e=>!(!e||!m.default.isAbsolute(e)||x.some(t=>e.includes(t))),w=(e,t)=>{if(!e)return"";let r=e.trim();if(!m.default.isAbsolute(r)||x.some(e=>r.includes(e)))return"";let n=m.default.normalize(r);return n.includes("..")||t.length>0&&!t.some(e=>C(n,e))?"":n},P=()=>{if(void 0!==t)return t;let e=String(process.env.npm_config_prefix||"").trim();if(e&&m.default.isAbsolute(e))return t=e;try{let e=(0,f.execFileSync)("npm",["config","get","prefix"],{timeout:5e3,encoding:"utf8",stdio:["ignore","pipe","ignore"],..."win32"===process.platform?"TURBOPACK unreachable":{}}).trim();if(e&&m.default.isAbsolute(e)&&!x.some(t=>e.includes(t)))return t=e}catch{}return t=""},A=(r=p.default.homedir(),n=process.env.USERPROFILE||r,a=w(process.env.APPDATA,[r,n]),s=w(process.env.LOCALAPPDATA,[m.default.join(r,"AppData","Local"),m.default.join(n,"AppData","Local"),n]),o=w(process.env.ProgramFiles,["C:\\Program Files","C:\\Program Files (x86)"]),i=w(process.env["ProgramFiles(x86)"],["C:\\Program Files","C:\\Program Files (x86)"]),l=P(),u=[m.default.join(r,"bin"),m.default.join(r,".local","bin")],[r,...u,n,a,s,o,i,l].filter(Boolean)),R=async e=>{if(!_(e))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{await d.default.access(e,d.default.constants.F_OK)}catch{return{installed:!1,commandPath:null,reason:"not_found"}}try{return await d.default.access(e,d.default.constants.X_OK),{installed:!0,commandPath:e,reason:null}}catch{return{installed:!0,commandPath:e,reason:"not_executable"}}},b=async(e,t)=>{if(!e)return{installed:!1,commandPath:null,reason:"missing_command"};if(e.includes("/")||e.includes("\\"))return R(e);process.platform;let r=await v("sh",["-c",'command -v -- "$1"',"sh",e],{env:t,timeoutMs:3e3});if(!r.ok||!r.stdout)return{installed:!1,commandPath:null,reason:"not_found"};let n=r.stdout.split(/\r?\n/).map(e=>(e=>{if(!e||"win32"!==process.platform)return e})(e.trim())).find(Boolean)||null;return{installed:!!n,commandPath:n,reason:n?null:"not_found"}},O=async e=>{if(!m.default.isAbsolute(e))return{installed:!1,commandPath:null,reason:"not_absolute"};if(!_(e))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{let t=await d.default.realpath(e);if(!A.some(e=>C(t,e)))return{installed:!1,commandPath:null,reason:"symlink_escape"};let r=await d.default.stat(t);if(!r.isFile())return{installed:!1,commandPath:null,reason:"not_file"};if(r.size<30||r.size>0x6400000)return{installed:!1,commandPath:null,reason:"suspicious_size"}}catch(t){let e=t.code;if("ENOENT"===e)return{installed:!1,commandPath:null,reason:"not_found"};if("EINVAL"===e)return{installed:!1,commandPath:null,reason:"invalid_path"};return{installed:!1,commandPath:null,reason:"access_error"}}try{return await d.default.access(e,d.default.constants.X_OK),{installed:!0,commandPath:e,reason:null}}catch{return{installed:!0,commandPath:e,reason:"not_executable"}}},S=async(e,t,r)=>{if(!Array.isArray(e)||0===e.length)return{command:null,installed:!1,commandPath:null,reason:"missing_command"};if(r)for(let t of(e=>{let t=p.default.homedir(),r=[],n=P();if(process.execPath.toLowerCase().includes("nvm")&&m.default.dirname(process.execPath),"win32"===process.platform);else for(let[,a]of({claude:[["claude.cmd","claude"],["claude.exe","claude"]],codex:[["codex.cmd","codex"]],droid:[["droid.cmd","droid"],["droid.exe","droid"]],openclaw:[["openclaw.cmd","openclaw"]],cursor:[["agent.cmd","agent"],["cursor.cmd","cursor"]],cline:[["cline.cmd","cline"]],kilo:[["kilocode.cmd","kilocode"]],opencode:[["opencode.cmd","opencode"]]})[e]||[]){let s=m.default.dirname(process.execPath);r.push(m.default.join(s,a)),n&&r.push(m.default.join(n,"bin",a)),r.push(m.default.join(t,".local","bin",a)),c.default.existsSync("/usr/local/bin")&&r.push(m.default.join("/usr","local","bin",a)),c.default.existsSync("/usr/bin")&&r.push(m.default.join("/usr","bin",a)),"opencode"===e&&r.push(m.default.join(t,".opencode","bin",a)),"claude"===e&&r.push(m.default.join(t,".claude","bin",a))}return r})(r)){let r=await O(t);if(r.installed&&null===r.reason)return{command:e[0],installed:!0,commandPath:r.commandPath,reason:null}}for(let r of e){let e=await b(r,t);if(e.installed||"not_found"!==e.reason)return{command:r,...e}}return{command:e[0],installed:!1,commandPath:null,reason:"not_found"}},I=async(e,t,r=4e3)=>{let n={PATH:t.PATH,HOME:t.HOME||t.USERPROFILE,SystemRoot:t.SystemRoot,PATHEXT:t.PATHEXT};for(let t of[["--version"],["-v"]]){let a=await v(e,t,{env:n,timeoutMs:r});if(a.ok&&a.stdout.length>0&&a.stdout.length<4096)return{runnable:!0,reason:null,version:a.stdout.trim()}}return{runnable:!1,reason:"healthcheck_failed"}},j=()=>((e=process.platform,t=process.env,r=p.default.homedir())=>m.default.join(((e=process.platform,t=process.env,r=p.default.homedir())=>"win32"===e?String(t.APPDATA||"").trim()||m.default.join(r,"AppData","Roaming"):String(t.XDG_CONFIG_HOME||"").trim()||m.default.join(r,".config"))(e,t,r),"opencode","opencode.json"))(),E=e=>{let t=y[e];if(!t)return null;if("opencode"===e)return{config:j()};let r=(()=>{let e=String(process.env.CLI_CONFIG_HOME||"").trim();if(!e||!m.default.isAbsolute(e)||x.some(t=>e.includes(t))||m.default.normalize(e).includes(".."))return p.default.homedir();let t=p.default.homedir(),r=m.default.normalize(e);return C(r,t)?r:t})();return Object.fromEntries(Object.entries(t.paths).map(([e,t])=>[e,m.default.join(r,t)]))},k=async e=>{let t,r,n,a=y[e],s=(t=String(process.env.CLI_MODE||"auto").trim().toLowerCase(),h.has(t)?t:"auto");if(!a)return{installed:!1,runnable:!1,command:null,commandPath:null,reason:"unknown_tool",runtimeMode:s,requiresBinary:!1};let o=(r={...process.env},(n=String(process.env.CLI_EXTRA_PATHS||"").split(m.default.delimiter).map(e=>e.trim()).filter(Boolean).filter(e=>!(!m.default.isAbsolute(e)||x.some(t=>e.includes(t))||m.default.normalize(e).includes("..")))).length>0&&(r.PATH=[...n,r.PATH||""].filter(Boolean).join(m.default.delimiter)),r),i=(e=>{let t=y[e];if(!t)return[];let r=String(process.env[t.envBinKey]||"").trim();return r?[r]:Array.isArray(t.defaultCommands)&&t.defaultCommands.length>0?t.defaultCommands.filter(Boolean):t.defaultCommand?[t.defaultCommand]:[]})(e),l=!1!==a.requiresBinary;if(!l&&0===i.length)return{installed:!0,runnable:!0,command:null,commandPath:null,reason:"not_required",runtimeMode:s,requiresBinary:l};let u=await S(i,o,e),d=u.command;if(!u.installed)return{installed:!1,runnable:!1,command:d,commandPath:null,reason:u.reason||"not_found",runtimeMode:s,requiresBinary:l};if("not_executable"===u.reason)return{installed:!0,runnable:!1,command:d,commandPath:u.commandPath,reason:"not_executable",runtimeMode:s,requiresBinary:l};let c=await I(u.commandPath,o,Number(a.healthcheckTimeoutMs||4e3));return{installed:!0,runnable:c.runnable,command:d,commandPath:u.commandPath,reason:c.reason,runtimeMode:s,requiresBinary:l}},T=Object.keys(y);e.s(["CLI_TOOL_IDS",0,T,"ensureCliConfigWriteAllowed",0,()=>((e,t=!0)=>null==e||""===e?t:!g.has(String(e).trim().toLowerCase()))(process.env.CLI_ALLOW_CONFIG_WRITES,!0)?null:"CLI config writes are disabled (CLI_ALLOW_CONFIG_WRITES=false)","getCliConfigPaths",0,E,"getCliPrimaryConfigPath",0,e=>{let t=E(e);if(!t)return null;let r=Object.keys(t)[0];return r?t[r]:null},"getCliRuntimeStatus",0,k,"getOpenCodeConfigPath",0,j])},90100,e=>{"use strict";function t(e,t){if(!e)return t;let r=Number.parseInt(String(e),10);return!Number.isFinite(r)||r<1||r>65535?t:r}function r(){let e=t(process.env.OMNIROUTE_PORT||process.env.PORT,20128),r=!!process.env.API_PORT,n=!!process.env.DASHBOARD_PORT;return{port:e,apiPort:t(process.env.API_PORT,e),dashboardPort:t(process.env.DASHBOARD_PORT,e),apiPortExplicit:r,dashboardPortExplicit:n}}e.s(["getRuntimePorts",()=>r])},424590,e=>{"use strict";let t=["claude-opus-4-5-thinking","claude-sonnet-4-5-thinking","gemini-3.1-pro-high","gemini-3-flash"];e.s(["mergeOpenCodeConfig",0,(e,r)=>{let n=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{...n,provider:{...n.provider||{},omniroute:(({baseUrl:e,apiKey:r,model:n})=>{let a=String(e||"").trim().replace(/\/+$/,""),s=[...new Set([String(n||"").trim().replace(/^\/+/,""),...t].filter(Boolean))],o={};for(let e of s)e&&(o[e]={name:e});return{npm:"@ai-sdk/openai-compatible",name:"OmniRoute",options:{baseURL:a,apiKey:r||"sk_omniroute"},models:o}})(r)}}}])},151282,e=>e.a(async(t,r)=>{try{var n=e.i(89171),a=e.i(924868),s=e.i(814747),o=e.i(446786),i=e.i(90100),l=e.i(266240),u=e.i(424590),d=e.i(676088),c=e.i(200392),p=t([d,c]);async function m(e,{params:t}){let r;try{r=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}let{toolId:a}=await t,s=(0,c.validateBody)(d.guideSettingsSaveSchema,r);if((0,c.isValidationFailure)(s))return n.NextResponse.json({error:s.error},{status:400});let{baseUrl:o,apiKey:i,model:l}=s.data;try{switch(a){case"continue":return await f({baseUrl:o,apiKey:i,model:l});case"opencode":return await h({baseUrl:o,apiKey:i,model:l});default:return n.NextResponse.json({error:`Direct config save not supported for: ${a}`},{status:400})}}catch(e){return n.NextResponse.json({error:e.message},{status:500})}}async function f({baseUrl:e,apiKey:t,model:r}){let{apiPort:l}=(0,i.getRuntimePorts)(),u=s.default.join(o.default.homedir(),".continue","config.json"),d=s.default.dirname(u);await a.default.mkdir(d,{recursive:!0});let c={};try{let e=await a.default.readFile(u,"utf-8");c=JSON.parse(e)}catch{}let p=String(e||"").trim().replace(/\/+$/,""),m={apiBase:p,title:r,model:r,provider:"openai",apiKey:t||"sk_omniroute",omnirouteManaged:!0},f=c.models||[];function h(e){return String(e||"").trim().replace(/\/+$/,"").toLowerCase()}let g=f.findIndex(e=>e&&(!0===e.omnirouteManaged||h(e.apiBase)===p.toLowerCase()||h(e.apiBase).includes("omniroute")||h(e.apiBase).includes(`localhost:${l}`)||h(e.apiBase).includes(`127.0.0.1:${l}`)||String(e.apiKey||"").toLowerCase().includes("sk_omniroute")));return g>=0?f[g]=m:f.push(m),c.models=f,await a.default.writeFile(u,JSON.stringify(c,null,2),"utf-8"),n.NextResponse.json({success:!0,message:`Continue config saved to ${u}`,configPath:u})}async function h({baseUrl:e,apiKey:t,model:r}){let o=(0,l.getOpenCodeConfigPath)(),i=s.default.dirname(o);await a.default.mkdir(i,{recursive:!0});let d=String(e||"").trim().replace(/\/+$/,""),c={};try{let e=await a.default.readFile(o,"utf-8");c=JSON.parse(e)}catch{}let p=(0,u.mergeOpenCodeConfig)(c,{baseUrl:d,apiKey:t,model:r});return await a.default.writeFile(o,JSON.stringify(p,null,2),"utf-8"),n.NextResponse.json({success:!0,message:`OpenCode config saved to ${o}`,configPath:o})}[d,c]=p.then?(await p)():p,e.s(["POST",()=>m]),r()}catch(e){r(e)}},!1),678570,e=>e.a(async(t,r)=>{try{var n=e.i(747909),a=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),p=e.i(995169),m=e.i(47587),f=e.i(666012),h=e.i(570101),g=e.i(626937),y=e.i(10372),v=e.i(193695);e.i(52474);var x=e.i(600220),C=e.i(151282),_=t([C]);[C]=_.then?(await _)():_;let A=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/cli-tools/guide-settings/[toolId]/route",pathname:"/api/cli-tools/guide-settings/[toolId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/guide-settings/[toolId]/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:R,workUnitAsyncStorage:b,serverHooks:O}=A;function w(){return(0,s.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:b})}async function P(e,t,r){A.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/cli-tools/guide-settings/[toolId]/route";n=n.replace(/\/index$/,"")||"/";let s=await A.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,params:_,nextConfig:w,parsedUrl:P,isDraftMode:R,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:S,revalidateOnlyGenerated:I,resolvedPathname:j,clientReferenceManifest:E,serverActionsManifest:k}=s,T=(0,u.normalizeAppPath)(n),N=!!(b.dynamicRoutes[T]||b.routes[j]),B=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,P,!1):t.end("This page could not be found"),null);if(N&&!R){let e=!!b.routes[j],t=b.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(w.experimental.adapterPath)return await B();throw new v.NoFallbackError}}let L=null;!N||A.isDev||R||(L=j,L="/index"===L?"/":L);let D=!0===A.isDev||!N,q=N&&!D;k&&E&&(0,l.setManifestsSingleton)({page:n,clientReferenceManifest:E,serverActionsManifest:k});let M=e.method||"GET",$=(0,i.getTracer)(),H=$.getActiveScopeSpan(),U={params:_,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:w.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>A.onRequestError(e,t,n,a,O)},sharedContext:{buildId:C}},F=new d.NodeNextRequest(e),K=new d.NodeNextResponse(t),z=c.NextRequestAdapter.fromNodeNextRequest(F,(0,c.signalFromNodeResponse)(t));try{let s=async e=>A.handle(z,U).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.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=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${n}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),u=async o=>{var i,u;let d=async({previousCacheEntry:a})=>{try{if(!l&&S&&I&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(o);e.fetchMetrics=U.renderOpts.fetchMetrics;let i=U.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let u=U.renderOpts.collectedTags;if(!N)return await (0,f.sendResponse)(F,K,n,U.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[y.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,a=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==a?void 0:a.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:S})},!1,O),t}},c=await A.handleResponse({req:e,nextConfig:w,cacheKey:L,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:I,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:l});if(!N)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&N||p.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(F,K,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};H?await u(H):await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${M} ${n}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},u))}catch(t){if(t instanceof v.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:S})},!1,O),N)throw t;return await (0,f.sendResponse)(F,K,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>w,"routeModule",()=>A,"serverHooks",()=>O,"workAsyncStorage",()=>R,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
|
|
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,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i={},l={RequestCookies:()=>h,ResponseCookies:()=>g,parseCookie:()=>c,parseSetCookie:()=>p,stringifyCookie:()=>d};for(var u in l)n(i,u,{get:l[u],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 c(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,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,r],...n]=c(e),{domain:a,expires:s,httponly:o,maxage:i,path:l,samesite:u,secure:d,partitioned:p,priority:h}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,v={name:t,value:decodeURIComponent(r),domain:a,...s&&{expires:new Date(s)},...o&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...u&&{sameSite:m.includes(g=(g=u).toLowerCase())?g:void 0},...d&&{secure:!0},...h&&{priority:f.includes(y=(y=h).toLowerCase())?y:void 0},...p&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))o.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(i=a(t,r))||i.enumerable});return e})(n({},"__esModule",{value:!0}),i);var m=["strict","lax","none"],f=["low","medium","high"],h=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of c(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("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=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(a)?a:function(e){if(!e)return[];var t,r,n,a,s,o=[],i=0;function l(){for(;i<e.length&&/\s/.test(e.charAt(i));)i+=1;return i<e.length}for(;i<e.length;){for(t=i,s=!1;l();)if(","===(r=e.charAt(i))){for(n=i,i+=1,l(),a=i;i<e.length&&"="!==(r=e.charAt(i))&&";"!==r&&","!==r;)i+=1;i<e.length&&"="===e.charAt(i)?(s=!0,i=a,o.push(e.substring(t,n)),t=i):i=n+1}else i+=1;(!s||i>=e.length)&&o.push(e.substring(t,e.length))}return o}(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 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,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,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=d(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(d).join("; ")}}},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},97793,e=>{"use strict";let t=new Set(["host","connection","content-length","keep-alive","proxy-connection","transfer-encoding","te","trailer","upgrade"].map(e=>e.toLowerCase()));function r(e){return t.has(String(e).trim().toLowerCase())}e.s(["isForbiddenUpstreamHeaderName",()=>r])},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 n=e.i(677850),a=t([n]);function s(e,t){let r=e.safeParse(t);if(r.success)return{success:!0,data:r.data};let n=Array.isArray(r.error?.issues)?r.error.issues:[];return{success:!1,error:{message:"Invalid request",details:n.map(e=>({field:e.path.join("."),message:e.message}))}}}function o(e){return!1===e.success}[n]=a.then?(await a)():a,n.z.object({password:n.z.string().min(1,"Password is required").max(200)}),e.s(["isValidationFailure",()=>o,"validateBody",()=>s]),r()}catch(e){r(e)}},!1),41244,e=>{"use strict";e.s(["HIDEABLE_SIDEBAR_ITEM_IDS",0,["home","endpoints","api-manager","providers","combos","costs","analytics","limits","cache","cli-tools","agents","translator","playground","media","search-tools","health","logs","audit","settings","docs","issues"]])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},266240,e=>{"use strict";let t,r,n,a,s,o,i,l,u;var d=e.i(924868),c=e.i(522734),p=e.i(446786),m=e.i(814747),f=e.i(233405);let h=new Set(["auto","host","container"]),g=new Set(["0","false","no","off"]),y={claude:{defaultCommand:"claude",envBinKey:"CLI_CLAUDE_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{settings:".claude/settings.json"}},codex:{defaultCommand:"codex",envBinKey:"CLI_CODEX_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{config:".codex/config.toml",auth:".codex/auth.json"}},droid:{defaultCommand:"droid",envBinKey:"CLI_DROID_BIN",requiresBinary:!0,healthcheckTimeoutMs:8e3,paths:{settings:".factory/settings.json"}},openclaw:{defaultCommand:"openclaw",envBinKey:"CLI_OPENCLAW_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{settings:".openclaw/openclaw.json"}},cursor:{defaultCommands:["agent","cursor"],envBinKey:"CLI_CURSOR_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".cursor/cli-config.json",auth:".config/cursor/auth.json",state:".cursor/agent-cli-state.json"}},windsurf:{defaultCommand:null,envBinKey:"CLI_WINDSURF_BIN",requiresBinary:!1,healthcheckTimeoutMs:4e3,paths:{}},cline:{defaultCommand:"cline",envBinKey:"CLI_CLINE_BIN",requiresBinary:!0,healthcheckTimeoutMs:12e3,paths:{globalState:".cline/data/globalState.json",secrets:".cline/data/secrets.json"}},kilo:{defaultCommand:"kilocode",envBinKey:"CLI_KILO_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{auth:".local/share/kilo/auth.json"}},continue:{defaultCommand:null,envBinKey:"CLI_CONTINUE_BIN",requiresBinary:!1,healthcheckTimeoutMs:15e3,paths:{settings:".continue/config.json"}},opencode:{defaultCommand:"opencode",envBinKey:"CLI_OPENCODE_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".config/opencode/opencode.json"}}},v=(e,t,{env:r,timeoutMs:n=3e3}={})=>new Promise(a=>{let s="",o="",i=!1,l=!1,u=(0,f.spawn)(e,t,{env:r,stdio:["ignore","pipe","pipe"],..."win32"===process.platform?"TURBOPACK unreachable":{}}),d=setTimeout(()=>{i=!0,u.kill("SIGKILL")},n),c=e=>{l||(l=!0,clearTimeout(d),a(e))};u.stdout.on("data",e=>{s+=e.toString()}),u.stderr.on("data",e=>{o+=e.toString()}),u.on("error",e=>{c({ok:!1,code:null,stdout:s.trim(),stderr:o.trim(),timedOut:i,error:e?.message||"spawn_error"})}),u.on("close",e=>{c({ok:!i&&0===e,code:e,stdout:s.trim(),stderr:o.trim(),timedOut:i,error:i?"timeout":null})})}),x=["&","|",";","<",">","(",")","`","$","^","%","!"],C=(e,t)=>{let r=e=>m.default.normalize(e).toLowerCase().replace(/\\/g,"/"),n=r(e),a=r(t);if(n===a)return!0;let s=a.endsWith("/")?a:a+"/";return n.startsWith(s)},_=e=>!(!e||!m.default.isAbsolute(e)||x.some(t=>e.includes(t))),w=(e,t)=>{if(!e)return"";let r=e.trim();if(!m.default.isAbsolute(r)||x.some(e=>r.includes(e)))return"";let n=m.default.normalize(r);return n.includes("..")||t.length>0&&!t.some(e=>C(n,e))?"":n},P=()=>{if(void 0!==t)return t;let e=String(process.env.npm_config_prefix||"").trim();if(e&&m.default.isAbsolute(e))return t=e;try{let e=(0,f.execFileSync)("npm",["config","get","prefix"],{timeout:5e3,encoding:"utf8",stdio:["ignore","pipe","ignore"],..."win32"===process.platform?"TURBOPACK unreachable":{}}).trim();if(e&&m.default.isAbsolute(e)&&!x.some(t=>e.includes(t)))return t=e}catch{}return t=""},A=(r=p.default.homedir(),n=process.env.USERPROFILE||r,a=w(process.env.APPDATA,[r,n]),s=w(process.env.LOCALAPPDATA,[m.default.join(r,"AppData","Local"),m.default.join(n,"AppData","Local"),n]),o=w(process.env.ProgramFiles,["C:\\Program Files","C:\\Program Files (x86)"]),i=w(process.env["ProgramFiles(x86)"],["C:\\Program Files","C:\\Program Files (x86)"]),l=P(),u=[m.default.join(r,"bin"),m.default.join(r,".local","bin")],[r,...u,n,a,s,o,i,l].filter(Boolean)),R=async e=>{if(!_(e))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{await d.default.access(e,d.default.constants.F_OK)}catch{return{installed:!1,commandPath:null,reason:"not_found"}}try{return await d.default.access(e,d.default.constants.X_OK),{installed:!0,commandPath:e,reason:null}}catch{return{installed:!0,commandPath:e,reason:"not_executable"}}},b=async(e,t)=>{if(!e)return{installed:!1,commandPath:null,reason:"missing_command"};if(e.includes("/")||e.includes("\\"))return R(e);process.platform;let r=await v("sh",["-c",'command -v -- "$1"',"sh",e],{env:t,timeoutMs:3e3});if(!r.ok||!r.stdout)return{installed:!1,commandPath:null,reason:"not_found"};let n=r.stdout.split(/\r?\n/).map(e=>(e=>{if(!e||"win32"!==process.platform)return e})(e.trim())).find(Boolean)||null;return{installed:!!n,commandPath:n,reason:n?null:"not_found"}},O=async e=>{if(!m.default.isAbsolute(e))return{installed:!1,commandPath:null,reason:"not_absolute"};if(!_(e))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{let t=await d.default.realpath(e);if(!A.some(e=>C(t,e)))return{installed:!1,commandPath:null,reason:"symlink_escape"};let r=await d.default.stat(t);if(!r.isFile())return{installed:!1,commandPath:null,reason:"not_file"};if(r.size<30||r.size>0x15e00000)return{installed:!1,commandPath:null,reason:"suspicious_size"}}catch(t){let e=t.code;if("ENOENT"===e)return{installed:!1,commandPath:null,reason:"not_found"};if("EINVAL"===e)return{installed:!1,commandPath:null,reason:"invalid_path"};return{installed:!1,commandPath:null,reason:"access_error"}}try{return await d.default.access(e,d.default.constants.X_OK),{installed:!0,commandPath:e,reason:null}}catch{return{installed:!0,commandPath:e,reason:"not_executable"}}},S=async(e,t,r)=>{if(!Array.isArray(e)||0===e.length)return{command:null,installed:!1,commandPath:null,reason:"missing_command"};if(r)for(let t of(e=>{let t=p.default.homedir(),r=[],n=P();if(process.execPath.toLowerCase().includes("nvm")&&m.default.dirname(process.execPath),"win32"===process.platform);else for(let[,a]of({claude:[["claude.cmd","claude"],["claude.exe","claude"]],codex:[["codex.cmd","codex"]],droid:[["droid.cmd","droid"],["droid.exe","droid"]],openclaw:[["openclaw.cmd","openclaw"]],cursor:[["agent.cmd","agent"],["cursor.cmd","cursor"]],cline:[["cline.cmd","cline"]],kilo:[["kilocode.cmd","kilocode"]],opencode:[["opencode.cmd","opencode"]]})[e]||[]){let s=m.default.dirname(process.execPath);r.push(m.default.join(s,a)),n&&r.push(m.default.join(n,"bin",a)),r.push(m.default.join(t,".local","bin",a)),c.default.existsSync("/usr/local/bin")&&r.push(m.default.join("/usr","local","bin",a)),c.default.existsSync("/usr/bin")&&r.push(m.default.join("/usr","bin",a)),"opencode"===e&&r.push(m.default.join(t,".opencode","bin",a)),"claude"===e&&r.push(m.default.join(t,".claude","bin",a))}return r})(r)){let r=await O(t);if(r.installed&&null===r.reason)return{command:e[0],installed:!0,commandPath:r.commandPath,reason:null}}for(let r of e){let e=await b(r,t);if(e.installed||"not_found"!==e.reason)return{command:r,...e}}return{command:e[0],installed:!1,commandPath:null,reason:"not_found"}},I=async(e,t,r=4e3)=>{let n={PATH:t.PATH,HOME:t.HOME||t.USERPROFILE,SystemRoot:t.SystemRoot,PATHEXT:t.PATHEXT};for(let t of[["--version"],["-v"]]){let a=await v(e,t,{env:n,timeoutMs:r});if(a.ok&&a.stdout.length>0&&a.stdout.length<4096)return{runnable:!0,reason:null,version:a.stdout.trim()}}return{runnable:!1,reason:"healthcheck_failed"}},j=()=>((e=process.platform,t=process.env,r=p.default.homedir())=>m.default.join(((e=process.platform,t=process.env,r=p.default.homedir())=>"win32"===e?String(t.APPDATA||"").trim()||m.default.join(r,"AppData","Roaming"):String(t.XDG_CONFIG_HOME||"").trim()||m.default.join(r,".config"))(e,t,r),"opencode","opencode.json"))(),E=e=>{let t=y[e];if(!t)return null;if("opencode"===e)return{config:j()};let r=(()=>{let e=String(process.env.CLI_CONFIG_HOME||"").trim();if(!e||!m.default.isAbsolute(e)||x.some(t=>e.includes(t))||m.default.normalize(e).includes(".."))return p.default.homedir();let t=p.default.homedir(),r=m.default.normalize(e);return C(r,t)?r:t})();return Object.fromEntries(Object.entries(t.paths).map(([e,t])=>[e,m.default.join(r,t)]))},k=async e=>{let t,r,n,a=y[e],s=(t=String(process.env.CLI_MODE||"auto").trim().toLowerCase(),h.has(t)?t:"auto");if(!a)return{installed:!1,runnable:!1,command:null,commandPath:null,reason:"unknown_tool",runtimeMode:s,requiresBinary:!1};let o=(r={...process.env},(n=String(process.env.CLI_EXTRA_PATHS||"").split(m.default.delimiter).map(e=>e.trim()).filter(Boolean).filter(e=>!(!m.default.isAbsolute(e)||x.some(t=>e.includes(t))||m.default.normalize(e).includes("..")))).length>0&&(r.PATH=[...n,r.PATH||""].filter(Boolean).join(m.default.delimiter)),r),i=(e=>{let t=y[e];if(!t)return[];let r=String(process.env[t.envBinKey]||"").trim();return r?[r]:Array.isArray(t.defaultCommands)&&t.defaultCommands.length>0?t.defaultCommands.filter(Boolean):t.defaultCommand?[t.defaultCommand]:[]})(e),l=!1!==a.requiresBinary;if(!l&&0===i.length)return{installed:!0,runnable:!0,command:null,commandPath:null,reason:"not_required",runtimeMode:s,requiresBinary:l};let u=String(process.env[a.envBinKey]||"").trim(),d=await S(i,o,u?void 0:e),c=d.command;if(!d.installed)return{installed:!1,runnable:!1,command:c,commandPath:null,reason:d.reason||"not_found",runtimeMode:s,requiresBinary:l};if("not_executable"===d.reason)return{installed:!0,runnable:!1,command:c,commandPath:d.commandPath,reason:"not_executable",runtimeMode:s,requiresBinary:l};let p=await I(d.commandPath,o,Number(a.healthcheckTimeoutMs||4e3));return{installed:!0,runnable:p.runnable,command:c,commandPath:d.commandPath,reason:p.reason,runtimeMode:s,requiresBinary:l}},T=Object.keys(y);e.s(["CLI_TOOL_IDS",0,T,"ensureCliConfigWriteAllowed",0,()=>((e,t=!0)=>null==e||""===e?t:!g.has(String(e).trim().toLowerCase()))(process.env.CLI_ALLOW_CONFIG_WRITES,!0)?null:"CLI config writes are disabled (CLI_ALLOW_CONFIG_WRITES=false)","getCliConfigPaths",0,E,"getCliPrimaryConfigPath",0,e=>{let t=E(e);if(!t)return null;let r=Object.keys(t)[0];return r?t[r]:null},"getCliRuntimeStatus",0,k,"getOpenCodeConfigPath",0,j])},90100,e=>{"use strict";function t(e,t){if(!e)return t;let r=Number.parseInt(String(e),10);return!Number.isFinite(r)||r<1||r>65535?t:r}function r(){let e=t(process.env.OMNIROUTE_PORT||process.env.PORT,20128),r=!!process.env.API_PORT,n=!!process.env.DASHBOARD_PORT;return{port:e,apiPort:t(process.env.API_PORT,e),dashboardPort:t(process.env.DASHBOARD_PORT,e),apiPortExplicit:r,dashboardPortExplicit:n}}e.s(["getRuntimePorts",()=>r])},424590,e=>{"use strict";let t=["claude-opus-4-5-thinking","claude-sonnet-4-5-thinking","gemini-3.1-pro-high","gemini-3-flash"];e.s(["mergeOpenCodeConfig",0,(e,r)=>{let n=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{...n,provider:{...n.provider||{},omniroute:(({baseUrl:e,apiKey:r,model:n})=>{let a=String(e||"").trim().replace(/\/+$/,""),s=[...new Set([String(n||"").trim().replace(/^\/+/,""),...t].filter(Boolean))],o={};for(let e of s)e&&(o[e]={name:e});return{npm:"@ai-sdk/openai-compatible",name:"OmniRoute",options:{baseURL:a,apiKey:r||"sk_omniroute"},models:o}})(r)}}}])},151282,e=>e.a(async(t,r)=>{try{var n=e.i(89171),a=e.i(924868),s=e.i(814747),o=e.i(446786),i=e.i(90100),l=e.i(266240),u=e.i(424590),d=e.i(676088),c=e.i(200392),p=t([d,c]);async function m(e,{params:t}){let r;try{r=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}let{toolId:a}=await t,s=(0,c.validateBody)(d.guideSettingsSaveSchema,r);if((0,c.isValidationFailure)(s))return n.NextResponse.json({error:s.error},{status:400});let{baseUrl:o,apiKey:i,model:l}=s.data;try{switch(a){case"continue":return await f({baseUrl:o,apiKey:i,model:l});case"opencode":return await h({baseUrl:o,apiKey:i,model:l});default:return n.NextResponse.json({error:`Direct config save not supported for: ${a}`},{status:400})}}catch(e){return n.NextResponse.json({error:e.message},{status:500})}}async function f({baseUrl:e,apiKey:t,model:r}){let{apiPort:l}=(0,i.getRuntimePorts)(),u=s.default.join(o.default.homedir(),".continue","config.json"),d=s.default.dirname(u);await a.default.mkdir(d,{recursive:!0});let c={};try{let e=await a.default.readFile(u,"utf-8");c=JSON.parse(e)}catch{}let p=String(e||"").trim().replace(/\/+$/,""),m={apiBase:p,title:r,model:r,provider:"openai",apiKey:t||"sk_omniroute",omnirouteManaged:!0},f=c.models||[];function h(e){return String(e||"").trim().replace(/\/+$/,"").toLowerCase()}let g=f.findIndex(e=>e&&(!0===e.omnirouteManaged||h(e.apiBase)===p.toLowerCase()||h(e.apiBase).includes("omniroute")||h(e.apiBase).includes(`localhost:${l}`)||h(e.apiBase).includes(`127.0.0.1:${l}`)||String(e.apiKey||"").toLowerCase().includes("sk_omniroute")));return g>=0?f[g]=m:f.push(m),c.models=f,await a.default.writeFile(u,JSON.stringify(c,null,2),"utf-8"),n.NextResponse.json({success:!0,message:`Continue config saved to ${u}`,configPath:u})}async function h({baseUrl:e,apiKey:t,model:r}){let o=(0,l.getOpenCodeConfigPath)(),i=s.default.dirname(o);await a.default.mkdir(i,{recursive:!0});let d=String(e||"").trim().replace(/\/+$/,""),c={};try{let e=await a.default.readFile(o,"utf-8");c=JSON.parse(e)}catch{}let p=(0,u.mergeOpenCodeConfig)(c,{baseUrl:d,apiKey:t,model:r});return await a.default.writeFile(o,JSON.stringify(p,null,2),"utf-8"),n.NextResponse.json({success:!0,message:`OpenCode config saved to ${o}`,configPath:o})}[d,c]=p.then?(await p)():p,e.s(["POST",()=>m]),r()}catch(e){r(e)}},!1),678570,e=>e.a(async(t,r)=>{try{var n=e.i(747909),a=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),p=e.i(995169),m=e.i(47587),f=e.i(666012),h=e.i(570101),g=e.i(626937),y=e.i(10372),v=e.i(193695);e.i(52474);var x=e.i(600220),C=e.i(151282),_=t([C]);[C]=_.then?(await _)():_;let A=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/cli-tools/guide-settings/[toolId]/route",pathname:"/api/cli-tools/guide-settings/[toolId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/guide-settings/[toolId]/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:R,workUnitAsyncStorage:b,serverHooks:O}=A;function w(){return(0,s.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:b})}async function P(e,t,r){A.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/cli-tools/guide-settings/[toolId]/route";n=n.replace(/\/index$/,"")||"/";let s=await A.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,params:_,nextConfig:w,parsedUrl:P,isDraftMode:R,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:S,revalidateOnlyGenerated:I,resolvedPathname:j,clientReferenceManifest:E,serverActionsManifest:k}=s,T=(0,u.normalizeAppPath)(n),N=!!(b.dynamicRoutes[T]||b.routes[j]),B=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,P,!1):t.end("This page could not be found"),null);if(N&&!R){let e=!!b.routes[j],t=b.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(w.experimental.adapterPath)return await B();throw new v.NoFallbackError}}let L=null;!N||A.isDev||R||(L=j,L="/index"===L?"/":L);let D=!0===A.isDev||!N,q=N&&!D;k&&E&&(0,l.setManifestsSingleton)({page:n,clientReferenceManifest:E,serverActionsManifest:k});let M=e.method||"GET",$=(0,i.getTracer)(),H=$.getActiveScopeSpan(),U={params:_,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:w.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>A.onRequestError(e,t,n,a,O)},sharedContext:{buildId:C}},F=new d.NodeNextRequest(e),K=new d.NodeNextResponse(t),z=c.NextRequestAdapter.fromNodeNextRequest(F,(0,c.signalFromNodeResponse)(t));try{let s=async e=>A.handle(z,U).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.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=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${n}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),u=async o=>{var i,u;let d=async({previousCacheEntry:a})=>{try{if(!l&&S&&I&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(o);e.fetchMetrics=U.renderOpts.fetchMetrics;let i=U.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let u=U.renderOpts.collectedTags;if(!N)return await (0,f.sendResponse)(F,K,n,U.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[y.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,a=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==a?void 0:a.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:S})},!1,O),t}},c=await A.handleResponse({req:e,nextConfig:w,cacheKey:L,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:I,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:l});if(!N)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&N||p.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(F,K,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};H?await u(H):await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${M} ${n}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},u))}catch(t){if(t instanceof v.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:S})},!1,O),N)throw t;return await (0,f.sendResponse)(F,K,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>w,"routeModule",()=>A,"serverHooks",()=>O,"workAsyncStorage",()=>R,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__bc251fbe._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[467388,e=>e.a(async(t,a)=>{try{var n=e.i(745015),r=e.i(89171),i=e.i(924868),o=e.i(814747),l=e.i(446786),s=e.i(266240),d=e.i(841788),u=e.i(197892),c=e.i(676088),p=e.i(200392);e.i(245272);var f=e.i(125852),h=e.i(195975),g=t([c,p]);[c,p]=g.then?(await g)():g;let w=o.default.join(l.default.homedir(),".cline","data"),y=o.default.join(w,"globalState.json"),A=o.default.join(w,"secrets.json"),E=async()=>{try{let e=await i.default.readFile(y,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return null;throw e}},N=async()=>{try{let e=await i.default.readFile(A,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return{};throw e}};async function R(){try{let e=await (0,s.getCliRuntimeStatus)("cline");if(!e.installed||!e.runnable)return r.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Cline CLI is installed but not runnable":"Cline CLI is not installed"});let t=await E();return await N(),r.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:{actModeApiProvider:t?.actModeApiProvider,planModeApiProvider:t?.planModeApiProvider,openAiBaseUrl:t?.openAiBaseUrl,openAiModelId:t?.openAiModelId,planModeOpenAiModelId:t?.planModeOpenAiModelId},hasOmniRoute:(e=>{if(!e)return!1;let t="openai"===e.actModeApiProvider||"openai"===e.planModeApiProvider,a=e.openAiBaseUrl||"";return t&&(a.includes("localhost")||a.includes("127.0.0.1")||a.includes("omniroute"))})(t),globalStatePath:y,secretsPath:A})}catch(e){return console.log("Error checking cline settings:",e),r.NextResponse.json({error:"Failed to check cline settings"},{status:500})}}async function m(e){let t;try{t=await e.json()}catch{return r.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,s.ensureCliConfigWriteAllowed)();if(e)return r.NextResponse.json({error:e},{status:403});let a=(0,p.validateBody)(c.cliModelConfigSchema,t);if((0,p.isValidationFailure)(a))return r.NextResponse.json({error:a.error},{status:400});let{baseUrl:n,apiKey:o,model:l}=a.data,h="string"==typeof t?.keyId?t.keyId.trim():null;if(h)try{let e=await (0,f.getApiKeyById)(h);e?.key&&(o=e.key)}catch{}await i.default.mkdir(w,{recursive:!0}),await (0,d.createBackup)("cline",y),await (0,d.createBackup)("cline",A);let g={};try{let e=await i.default.readFile(y,"utf-8");g=JSON.parse(e)}catch{}let R=n.endsWith("/v1")?n.slice(0,-3):n;g.actModeApiProvider="openai",g.planModeApiProvider="openai",g.openAiBaseUrl=R,g.openAiModelId=l,g.planModeOpenAiModelId=l,await i.default.writeFile(y,JSON.stringify(g,null,2));let m={};try{let e=await i.default.readFile(A,"utf-8");m=JSON.parse(e)}catch{}m.openAiApiKey=o||"sk_omniroute",await i.default.writeFile(A,JSON.stringify(m,null,2));try{(0,u.saveCliToolLastConfigured)("cline")}catch{}return r.NextResponse.json({success:!0,message:"Cline settings applied successfully!",globalStatePath:y})}catch(e){return console.log("Error updating cline settings:",e),r.NextResponse.json({error:"Failed to update cline settings"},{status:500})}}async function v(){try{let e=(0,s.ensureCliConfigWriteAllowed)();if(e)return r.NextResponse.json({error:e},{status:403});await (0,d.createBackup)("cline",y),await (0,d.createBackup)("cline",A);let t={};try{let e=await i.default.readFile(y,"utf-8");t=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return r.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}"openai"===t.actModeApiProvider&&(delete t.openAiBaseUrl,delete t.openAiModelId,delete t.planModeOpenAiModelId,t.actModeApiProvider="cline",t.planModeApiProvider="cline"),await i.default.writeFile(y,JSON.stringify(t,null,2));let a={};try{let e=await i.default.readFile(A,"utf-8");a=JSON.parse(e)}catch{}delete a.openAiApiKey,await i.default.writeFile(A,JSON.stringify(a,null,2));try{(0,u.deleteCliToolLastConfigured)("cline")}catch{}return r.NextResponse.json({success:!0,message:"OmniRoute settings removed from Cline"})}catch(e){return console.log("Error resetting cline settings:",e),r.NextResponse.json({error:"Failed to reset cline settings"},{status:500})}}(0,h.ensureServerEntryExports)([R,m,v]),(0,n.registerServerReference)(R,"008caae5e5edbe4104f3643807e67b7f0368862fea",null),(0,n.registerServerReference)(m,"402d2e62df0d45d9c0f33b841234d42b7a536fcebd",null),(0,n.registerServerReference)(v,"00a8daa62d055a76afb1efb124ac0991b0b4f9aaf0",null),e.s(["DELETE",()=>v,"GET",()=>R,"POST",()=>m]),a()}catch(e){a(e)}},!1),169552,e=>e.a(async(t,a)=>{try{var n=e.i(747909),r=e.i(174017),i=e.i(996250),o=e.i(759756),l=e.i(561916),s=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),g=e.i(570101),R=e.i(626937),m=e.i(10372),v=e.i(193695);e.i(52474);var w=e.i(600220),y=e.i(467388),A=t([y]);[y]=A.then?(await A)():A;let C=new n.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-tools/cline-settings/route",pathname:"/api/cli-tools/cline-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/cline-settings/route.ts",nextConfigOutput:"standalone",userland:y}),{workAsyncStorage:x,workUnitAsyncStorage:b,serverHooks:O}=C;function E(){return(0,i.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:b})}async function N(e,t,a){C.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/cli-tools/cline-settings/route";n=n.replace(/\/index$/,"")||"/";let i=await C.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:A,nextConfig:E,parsedUrl:N,isDraftMode:x,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:P,revalidateOnlyGenerated:M,resolvedPathname:S,clientReferenceManifest:T,serverActionsManifest:I}=i,j=(0,d.normalizeAppPath)(n),k=!!(b.dynamicRoutes[j]||b.routes[S]),F=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,N,!1):t.end("This page could not be found"),null);if(k&&!x){let e=!!b.routes[S],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await F();throw new v.NoFallbackError}}let U=null;!k||C.isDev||x||(U=S,U="/index"===U?"/":U);let _=!0===C.isDev||!k,H=k&&!_;I&&T&&(0,s.setManifestsSingleton)({page:n,clientReferenceManifest:T,serverActionsManifest:I});let B=e.method||"GET",q=(0,l.getTracer)(),D=q.getActiveScopeSpan(),J={params:A,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:_,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>C.onRequestError(e,t,n,r,O)},sharedContext:{buildId:y}},K=new u.NodeNextRequest(e),L=new u.NodeNextResponse(t),$=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let i=async e=>C.handle($,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=q.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${B} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${B} ${n}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var l,d;let u=async({previousCacheEntry:r})=>{try{if(!s&&P&&M&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(o);e.fetchMetrics=J.renderOpts.fetchMetrics;let l=J.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=J.renderOpts.collectedTags;if(!k)return await (0,h.sendResponse)(K,L,n,J.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,r=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,O),t}},c=await C.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:M,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!k)return null;if((null==c||null==(l=c.value)?void 0:l.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",P?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&k||p.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,R.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(K,L,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};D?await d(D):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${n}`,kind:l.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},d))}catch(t){if(t instanceof v.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,O),k)throw t;return await (0,h.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>E,"routeModule",()=>C,"serverHooks",()=>O,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>b]),a()}catch(e){a(e)}},!1)];
|
|
1
|
+
module.exports=[467388,e=>e.a(async(t,a)=>{try{var n=e.i(745015),r=e.i(89171),i=e.i(924868),o=e.i(814747),l=e.i(446786),s=e.i(266240),d=e.i(841788),u=e.i(197892),c=e.i(676088),p=e.i(200392);e.i(245272);var h=e.i(125852),f=e.i(195975),g=t([c,p]);[c,p]=g.then?(await g)():g;let w=o.default.join(l.default.homedir(),".cline","data"),y=o.default.join(w,"globalState.json"),A=o.default.join(w,"secrets.json"),E=async()=>{try{let e=await i.default.readFile(y,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return null;throw e}},N=async()=>{try{let e=await i.default.readFile(A,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return{};throw e}};async function R(){try{let e=await (0,s.getCliRuntimeStatus)("cline");if(!e.installed||!e.runnable)return r.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Cline CLI is installed but not runnable":"Cline CLI is not installed"});let t=await E();return await N(),r.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:{actModeApiProvider:t?.actModeApiProvider,planModeApiProvider:t?.planModeApiProvider,openAiBaseUrl:t?.openAiBaseUrl,openAiModelId:t?.openAiModelId,planModeOpenAiModelId:t?.planModeOpenAiModelId},hasOmniRoute:(e=>{if(!e)return!1;let t="openai"===e.actModeApiProvider||"openai"===e.planModeApiProvider,a=e.openAiBaseUrl||"";return t&&(a.includes("localhost")||a.includes("127.0.0.1")||a.includes("omniroute"))})(t),globalStatePath:y,secretsPath:A})}catch(e){return console.log("Error checking cline settings:",e),r.NextResponse.json({error:"Failed to check cline settings"},{status:500})}}async function m(e){let t;try{t=await e.json()}catch{return r.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,s.ensureCliConfigWriteAllowed)();if(e)return r.NextResponse.json({error:e},{status:403});let a=(0,p.validateBody)(c.cliModelConfigSchema,t);if((0,p.isValidationFailure)(a))return r.NextResponse.json({error:a.error},{status:400});let{baseUrl:n,apiKey:o,model:l}=a.data,f="string"==typeof t?.keyId?t.keyId.trim():null;if(f)try{let e=await (0,h.getApiKeyById)(f);e?.key&&(o=e.key)}catch{}await i.default.mkdir(w,{recursive:!0}),await (0,d.createBackup)("cline",y),await (0,d.createBackup)("cline",A);let g={};try{let e=await i.default.readFile(y,"utf-8");g=JSON.parse(e)}catch{}let R=n.endsWith("/v1")?n.slice(0,-3):n;g.actModeApiProvider="openai",g.planModeApiProvider="openai",g.openAiBaseUrl=R,g.openAiModelId=l,g.planModeOpenAiModelId=l,await i.default.writeFile(y,JSON.stringify(g,null,2));let m={};try{let e=await i.default.readFile(A,"utf-8");m=JSON.parse(e)}catch{}m.openAiApiKey=o||"sk_omniroute",await i.default.writeFile(A,JSON.stringify(m,null,2));try{(0,u.saveCliToolLastConfigured)("cline")}catch{}return r.NextResponse.json({success:!0,message:"Cline settings applied successfully!",globalStatePath:y})}catch(e){return console.log("Error updating cline settings:",e),r.NextResponse.json({error:"Failed to update cline settings"},{status:500})}}async function v(){try{let e=(0,s.ensureCliConfigWriteAllowed)();if(e)return r.NextResponse.json({error:e},{status:403});await (0,d.createBackup)("cline",y),await (0,d.createBackup)("cline",A);let t={};try{let e=await i.default.readFile(y,"utf-8");t=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return r.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}"openai"===t.actModeApiProvider&&(delete t.openAiBaseUrl,delete t.openAiModelId,delete t.planModeOpenAiModelId,t.actModeApiProvider="cline",t.planModeApiProvider="cline"),await i.default.writeFile(y,JSON.stringify(t,null,2));let a={};try{let e=await i.default.readFile(A,"utf-8");a=JSON.parse(e)}catch{}delete a.openAiApiKey,await i.default.writeFile(A,JSON.stringify(a,null,2));try{(0,u.deleteCliToolLastConfigured)("cline")}catch{}return r.NextResponse.json({success:!0,message:"OmniRoute settings removed from Cline"})}catch(e){return console.log("Error resetting cline settings:",e),r.NextResponse.json({error:"Failed to reset cline settings"},{status:500})}}(0,f.ensureServerEntryExports)([R,m,v]),(0,n.registerServerReference)(R,"00015f36fa8e5a20d74d2ab6554e3cab85406862ca",null),(0,n.registerServerReference)(m,"40776c33b9bdda6b67a770ea75ea4b61d6710fb910",null),(0,n.registerServerReference)(v,"00151f455f937ab0346da92b8e3c45055752b06bef",null),e.s(["DELETE",()=>v,"GET",()=>R,"POST",()=>m]),a()}catch(e){a(e)}},!1),169552,e=>e.a(async(t,a)=>{try{var n=e.i(747909),r=e.i(174017),i=e.i(996250),o=e.i(759756),l=e.i(561916),s=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),h=e.i(47587),f=e.i(666012),g=e.i(570101),R=e.i(626937),m=e.i(10372),v=e.i(193695);e.i(52474);var w=e.i(600220),y=e.i(467388),A=t([y]);[y]=A.then?(await A)():A;let C=new n.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-tools/cline-settings/route",pathname:"/api/cli-tools/cline-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/cline-settings/route.ts",nextConfigOutput:"standalone",userland:y}),{workAsyncStorage:b,workUnitAsyncStorage:x,serverHooks:O}=C;function E(){return(0,i.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:x})}async function N(e,t,a){C.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/cli-tools/cline-settings/route";n=n.replace(/\/index$/,"")||"/";let i=await C.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:A,nextConfig:E,parsedUrl:N,isDraftMode:b,prerenderManifest:x,routerServerContext:O,isOnDemandRevalidate:P,revalidateOnlyGenerated:M,resolvedPathname:S,clientReferenceManifest:T,serverActionsManifest:I}=i,j=(0,d.normalizeAppPath)(n),k=!!(x.dynamicRoutes[j]||x.routes[S]),F=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,N,!1):t.end("This page could not be found"),null);if(k&&!b){let e=!!x.routes[S],t=x.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await F();throw new v.NoFallbackError}}let U=null;!k||C.isDev||b||(U=S,U="/index"===U?"/":U);let _=!0===C.isDev||!k,H=k&&!_;I&&T&&(0,s.setManifestsSingleton)({page:n,clientReferenceManifest:T,serverActionsManifest:I});let B=e.method||"GET",q=(0,l.getTracer)(),D=q.getActiveScopeSpan(),J={params:A,prerenderManifest:x,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:_,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>C.onRequestError(e,t,n,r,O)},sharedContext:{buildId:y}},K=new u.NodeNextRequest(e),L=new u.NodeNextResponse(t),$=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let i=async e=>C.handle($,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=q.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${B} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${B} ${n}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var l,d;let u=async({previousCacheEntry:r})=>{try{if(!s&&P&&M&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(o);e.fetchMetrics=J.renderOpts.fetchMetrics;let l=J.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=J.renderOpts.collectedTags;if(!k)return await (0,f.sendResponse)(K,L,n,J.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,r=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,O),t}},c=await C.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:M,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!k)return null;if((null==c||null==(l=c.value)?void 0:l.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",P?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&k||p.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,R.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(K,L,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};D?await d(D):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${n}`,kind:l.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},d))}catch(t){if(t instanceof v.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,O),k)throw t;return await (0,f.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>E,"routeModule",()=>C,"serverHooks",()=>O,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>x]),a()}catch(e){a(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_05c48915._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[522051,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),s=e.i(924868),i=e.i(814747),o=e.i(266240),l=e.i(841788),u=e.i(197892),d=e.i(676088),c=e.i(200392);e.i(245272);var p=e.i(125852),h=e.i(195975),R=t([d,c]);[d,c]=R.then?(await R)():R;let m=()=>(0,o.getCliPrimaryConfigPath)("claude"),v=async()=>{try{let e=m(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function f(){try{let e=await (0,o.getCliRuntimeStatus)("claude");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Claude CLI is installed but not runnable":"Claude CLI is not installed"});let t=await v(),a=!!t?.env?.ANTHROPIC_BASE_URL;return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:t,hasOmniRoute:a,settingsPath:m()})}catch(e){return console.log("Error checking claude settings:",e),n.NextResponse.json({error:"Failed to check claude settings"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,o.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,c.validateBody)(d.cliSettingsEnvSchema,t);if((0,c.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{env:r}=a.data,h="string"==typeof t?.keyId?t.keyId.trim():null;if(h)try{let e=await (0,p.getApiKeyById)(h);e?.key&&(r.ANTHROPIC_AUTH_TOKEN=e.key)}catch{}let R=m(),f=i.default.dirname(R);await s.default.mkdir(f,{recursive:!0}),await (0,l.createBackup)("claude",R);let g={};try{let e=await s.default.readFile(R,"utf-8");g=JSON.parse(e)}catch(e){if("ENOENT"!==e.code)throw e}r.ANTHROPIC_BASE_URL&&(r.ANTHROPIC_BASE_URL=r.ANTHROPIC_BASE_URL.endsWith("/v1")?r.ANTHROPIC_BASE_URL:`${r.ANTHROPIC_BASE_URL}/v1`);let E={...g,env:{...g.env||{},...r}};await s.default.writeFile(R,JSON.stringify(E,null,2));try{(0,u.saveCliToolLastConfigured)("claude")}catch{}return n.NextResponse.json({success:!0,message:"Settings updated successfully"})}catch(e){return console.log("Error updating claude settings:",e),n.NextResponse.json({error:"Failed to update claude settings"},{status:500})}}let N=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","API_TIMEOUT_MS"];async function E(){try{let e=(0,o.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=m(),a={};try{let e=await s.default.readFile(t,"utf-8");a=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}await (0,l.createBackup)("claude",t),a.env&&(N.forEach(e=>{delete a.env[e]}),0===Object.keys(a.env).length&&delete a.env),await s.default.writeFile(t,JSON.stringify(a,null,2));try{(0,u.deleteCliToolLastConfigured)("claude")}catch{}return n.NextResponse.json({success:!0,message:"Settings reset successfully"})}catch(e){return console.log("Error resetting claude settings:",e),n.NextResponse.json({error:"Failed to reset claude settings"},{status:500})}}(0,h.ensureServerEntryExports)([f,g,E]),(0,r.registerServerReference)(f,"
|
|
1
|
+
module.exports=[522051,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),s=e.i(924868),i=e.i(814747),o=e.i(266240),l=e.i(841788),u=e.i(197892),d=e.i(676088),c=e.i(200392);e.i(245272);var p=e.i(125852),h=e.i(195975),R=t([d,c]);[d,c]=R.then?(await R)():R;let m=()=>(0,o.getCliPrimaryConfigPath)("claude"),v=async()=>{try{let e=m(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function f(){try{let e=await (0,o.getCliRuntimeStatus)("claude");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Claude CLI is installed but not runnable":"Claude CLI is not installed"});let t=await v(),a=!!t?.env?.ANTHROPIC_BASE_URL;return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:t,hasOmniRoute:a,settingsPath:m()})}catch(e){return console.log("Error checking claude settings:",e),n.NextResponse.json({error:"Failed to check claude settings"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,o.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,c.validateBody)(d.cliSettingsEnvSchema,t);if((0,c.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{env:r}=a.data,h="string"==typeof t?.keyId?t.keyId.trim():null;if(h)try{let e=await (0,p.getApiKeyById)(h);e?.key&&(r.ANTHROPIC_AUTH_TOKEN=e.key)}catch{}let R=m(),f=i.default.dirname(R);await s.default.mkdir(f,{recursive:!0}),await (0,l.createBackup)("claude",R);let g={};try{let e=await s.default.readFile(R,"utf-8");g=JSON.parse(e)}catch(e){if("ENOENT"!==e.code)throw e}r.ANTHROPIC_BASE_URL&&(r.ANTHROPIC_BASE_URL=r.ANTHROPIC_BASE_URL.endsWith("/v1")?r.ANTHROPIC_BASE_URL:`${r.ANTHROPIC_BASE_URL}/v1`);let E={...g,env:{...g.env||{},...r}};await s.default.writeFile(R,JSON.stringify(E,null,2));try{(0,u.saveCliToolLastConfigured)("claude")}catch{}return n.NextResponse.json({success:!0,message:"Settings updated successfully"})}catch(e){return console.log("Error updating claude settings:",e),n.NextResponse.json({error:"Failed to update claude settings"},{status:500})}}let N=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","API_TIMEOUT_MS"];async function E(){try{let e=(0,o.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=m(),a={};try{let e=await s.default.readFile(t,"utf-8");a=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}await (0,l.createBackup)("claude",t),a.env&&(N.forEach(e=>{delete a.env[e]}),0===Object.keys(a.env).length&&delete a.env),await s.default.writeFile(t,JSON.stringify(a,null,2));try{(0,u.deleteCliToolLastConfigured)("claude")}catch{}return n.NextResponse.json({success:!0,message:"Settings reset successfully"})}catch(e){return console.log("Error resetting claude settings:",e),n.NextResponse.json({error:"Failed to reset claude settings"},{status:500})}}(0,h.ensureServerEntryExports)([f,g,E]),(0,r.registerServerReference)(f,"004f726d40d274285be0206c60c1ef674fe3a67098",null),(0,r.registerServerReference)(g,"4018cd8eaaec4427361e587b2ed1eb77ba94815acb",null),(0,r.registerServerReference)(E,"00301f63f1362771089752a1f572e817f827cc1001",null),e.s(["DELETE",()=>E,"GET",()=>f,"POST",()=>g]),a()}catch(e){a(e)}},!1),825593,e=>e.a(async(t,a)=>{try{var r=e.i(747909),n=e.i(174017),s=e.i(996250),i=e.i(759756),o=e.i(561916),l=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),p=e.i(995169),h=e.i(47587),R=e.i(666012),f=e.i(570101),g=e.i(626937),E=e.i(10372),m=e.i(193695);e.i(52474);var v=e.i(600220),N=e.i(522051),C=t([N]);[N]=C.then?(await C)():C;let w=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/claude-settings/route",pathname:"/api/cli-tools/claude-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/claude-settings/route.ts",nextConfigOutput:"standalone",userland:N}),{workAsyncStorage:T,workUnitAsyncStorage:O,serverHooks:_}=w;function y(){return(0,s.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:O})}async function A(e,t,a){w.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/claude-settings/route";r=r.replace(/\/index$/,"")||"/";let s=await w.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:N,params:C,nextConfig:y,parsedUrl:A,isDraftMode:T,prerenderManifest:O,routerServerContext:_,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,resolvedPathname:x,clientReferenceManifest:b,serverActionsManifest:I}=s,H=(0,u.normalizeAppPath)(r),U=!!(O.dynamicRoutes[H]||O.routes[x]),k=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,A,!1):t.end("This page could not be found"),null);if(U&&!T){let e=!!O.routes[x],t=O.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await k();throw new m.NoFallbackError}}let L=null;!U||w.isDev||T||(L=x,L="/index"===L?"/":L);let j=!0===w.isDev||!U,M=U&&!j;I&&b&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:b,serverActionsManifest:I});let D=e.method||"GET",F=(0,o.getTracer)(),B=F.getActiveScopeSpan(),q={params:C,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>w.onRequestError(e,t,r,n,_)},sharedContext:{buildId:N}},K=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let s=async e=>w.handle(J,q).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${D} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${r}`)}),l=!!(0,i.getRequestMeta)(e,"minimalMode"),u=async i=>{var o,u;let d=async({previousCacheEntry:n})=>{try{if(!l&&P&&S&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await s(i);e.fetchMetrics=q.renderOpts.fetchMetrics;let o=q.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let u=q.renderOpts.collectedTags;if(!U)return await (0,R.sendResponse)(K,$,r,q.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(r.headers);u&&(t[E.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==q.renderOpts.collectedRevalidate&&!(q.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&q.renderOpts.collectedRevalidate,n=void 0===q.renderOpts.collectedExpire||q.renderOpts.collectedExpire>=E.INFINITE_CACHE?void 0:q.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:P})},!1,_),t}},c=await w.handleResponse({req:e,nextConfig:y,cacheKey:L,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:l});if(!U)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",P?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&U||p.delete(E.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,R.sendResponse)(K,$,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};B?await u(B):await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${D} ${r}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},u))}catch(t){if(t instanceof m.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:P})},!1,_),U)throw t;return await (0,R.sendResponse)(K,$,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>y,"routeModule",()=>w,"serverHooks",()=>_,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>O]),a()}catch(e){a(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_06515a8a._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[495767,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),s=e.i(924868),o=e.i(814747),i=e.i(266240),l=e.i(841788),d=e.i(197892),u=e.i(676088),c=e.i(200392);e.i(245272);var p=e.i(125852),m=e.i(195975),h=t([u,c]);[u,c]=h.then?(await h)():h;let R=()=>(0,i.getCliPrimaryConfigPath)("openclaw"),v=async()=>{try{let e=R(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function f(){try{let e=await (0,i.getCliRuntimeStatus)("openclaw");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Open Claw CLI is installed but not runnable":"Open Claw CLI is not installed"});let t=await v();return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:t,hasOmniRoute:!!t&&!!t.models&&!!t.models.providers&&!!t.models.providers.omniroute,settingsPath:R()})}catch(e){return console.log("Error checking openclaw settings:",e),n.NextResponse.json({error:"Failed to check openclaw settings"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,c.validateBody)(u.cliModelConfigSchema,t);if((0,c.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{baseUrl:r,apiKey:m,model:h}=a.data,f="string"==typeof t?.keyId?t.keyId.trim():null;if(f)try{let e=await (0,p.getApiKeyById)(f);e?.key&&(m=e.key)}catch{}let g=o.default.dirname(R()),w=R();await s.default.mkdir(g,{recursive:!0}),await (0,l.createBackup)("openclaw",w);let v={};try{let e=await s.default.readFile(w,"utf-8");v=JSON.parse(e)}catch{}v.agents||(v.agents={}),v.agents.defaults||(v.agents.defaults={}),v.agents.defaults.model||(v.agents.defaults.model={}),v.models||(v.models={}),v.models.providers||(v.models.providers={});let y=r.endsWith("/v1")?r:`${r}/v1`;v.agents.defaults.model.primary=`omniroute/${h}`,v.models.providers.omniroute={baseUrl:y,apiKey:m||"your_api_key",api:"openai-completions",models:[{id:h,name:h.split("/").pop()||h}]},await s.default.writeFile(w,JSON.stringify(v,null,2));try{(0,d.saveCliToolLastConfigured)("openclaw")}catch{}return n.NextResponse.json({success:!0,message:"Open Claw settings applied successfully!",settingsPath:w})}catch(e){return console.log("Error updating openclaw settings:",e),n.NextResponse.json({error:"Failed to update openclaw settings"},{status:500})}}async function w(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=R();await (0,l.createBackup)("openclaw",t);let a={};try{let e=await s.default.readFile(t,"utf-8");a=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}a.models&&a.models.providers&&(delete a.models.providers.omniroute,0===Object.keys(a.models.providers).length&&delete a.models.providers),a.agents?.defaults?.model?.primary?.startsWith("omniroute/")&&delete a.agents.defaults.model.primary,await s.default.writeFile(t,JSON.stringify(a,null,2));try{(0,d.deleteCliToolLastConfigured)("openclaw")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting openclaw settings:",e),n.NextResponse.json({error:"Failed to reset openclaw settings"},{status:500})}}(0,m.ensureServerEntryExports)([f,g,w]),(0,r.registerServerReference)(f,"004aab638f2b25445dc89d39775ccb09f30ed939e4",null),(0,r.registerServerReference)(g,"40389a3def1aa13941a3930977f9a6b2ebb4f86d65",null),(0,r.registerServerReference)(w,"00bdbc093700d2c43443d78976f520b27c35242010",null),e.s(["DELETE",()=>w,"GET",()=>f,"POST",()=>g]),a()}catch(e){a(e)}},!1),128142,e=>e.a(async(t,a)=>{try{var r=e.i(747909),n=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),m=e.i(47587),h=e.i(666012),f=e.i(570101),g=e.i(626937),w=e.i(10372),R=e.i(193695);e.i(52474);var v=e.i(600220),y=e.i(495767),E=t([y]);[y]=E.then?(await E)():E;let x=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/openclaw-settings/route",pathname:"/api/cli-tools/openclaw-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/openclaw-settings/route.ts",nextConfigOutput:"standalone",userland:y}),{workAsyncStorage:b,workUnitAsyncStorage:O,serverHooks:A}=x;function C(){return(0,s.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:O})}async function N(e,t,a){x.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/openclaw-settings/route";r=r.replace(/\/index$/,"")||"/";let s=await x.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:E,nextConfig:C,parsedUrl:N,isDraftMode:b,prerenderManifest:O,routerServerContext:A,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,resolvedPathname:T,clientReferenceManifest:k,serverActionsManifest:I}=s,_=(0,d.normalizeAppPath)(r),j=!!(O.dynamicRoutes[_]||O.routes[T]),F=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,N,!1):t.end("This page could not be found"),null);if(j&&!b){let e=!!O.routes[T],t=O.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await F();throw new R.NoFallbackError}}let H=null;!j||x.isDev||b||(H=T,H="/index"===H?"/":H);let M=!0===x.isDev||!j,U=j&&!M;I&&k&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:k,serverActionsManifest:I});let q=e.method||"GET",D=(0,i.getTracer)(),$=D.getActiveScopeSpan(),K={params:E,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>x.onRequestError(e,t,r,n,A)},sharedContext:{buildId:y}},L=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let s=async e=>x.handle(J,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=D.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var i,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&S&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await s(o);e.fetchMetrics=K.renderOpts.fetchMetrics;let i=K.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let d=K.renderOpts.collectedTags;if(!j)return await (0,h.sendResponse)(L,B,r,K.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(r.headers);d&&(t[w.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,A),t}},c=await x.handleResponse({req:e,nextConfig:C,cacheKey:H,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:l});if(!j)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&j||p.delete(w.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(L,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};$?await d($):await D.withPropagatedContext(e.headers,()=>D.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:i.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof R.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,A),j)throw t;return await (0,h.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>C,"routeModule",()=>x,"serverHooks",()=>A,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>O]),a()}catch(e){a(e)}},!1)];
|
|
1
|
+
module.exports=[495767,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),s=e.i(924868),o=e.i(814747),i=e.i(266240),l=e.i(841788),d=e.i(197892),u=e.i(676088),c=e.i(200392);e.i(245272);var p=e.i(125852),m=e.i(195975),f=t([u,c]);[u,c]=f.then?(await f)():f;let R=()=>(0,i.getCliPrimaryConfigPath)("openclaw"),v=async()=>{try{let e=R(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function h(){try{let e=await (0,i.getCliRuntimeStatus)("openclaw");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Open Claw CLI is installed but not runnable":"Open Claw CLI is not installed"});let t=await v();return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:t,hasOmniRoute:!!t&&!!t.models&&!!t.models.providers&&!!t.models.providers.omniroute,settingsPath:R()})}catch(e){return console.log("Error checking openclaw settings:",e),n.NextResponse.json({error:"Failed to check openclaw settings"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,c.validateBody)(u.cliModelConfigSchema,t);if((0,c.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{baseUrl:r,apiKey:m,model:f}=a.data,h="string"==typeof t?.keyId?t.keyId.trim():null;if(h)try{let e=await (0,p.getApiKeyById)(h);e?.key&&(m=e.key)}catch{}let g=o.default.dirname(R()),w=R();await s.default.mkdir(g,{recursive:!0}),await (0,l.createBackup)("openclaw",w);let v={};try{let e=await s.default.readFile(w,"utf-8");v=JSON.parse(e)}catch{}v.agents||(v.agents={}),v.agents.defaults||(v.agents.defaults={}),v.agents.defaults.model||(v.agents.defaults.model={}),v.models||(v.models={}),v.models.providers||(v.models.providers={});let y=r.endsWith("/v1")?r:`${r}/v1`;v.agents.defaults.model.primary=`omniroute/${f}`,v.models.providers.omniroute={baseUrl:y,apiKey:m||"your_api_key",api:"openai-completions",models:[{id:f,name:f.split("/").pop()||f}]},await s.default.writeFile(w,JSON.stringify(v,null,2));try{(0,d.saveCliToolLastConfigured)("openclaw")}catch{}return n.NextResponse.json({success:!0,message:"Open Claw settings applied successfully!",settingsPath:w})}catch(e){return console.log("Error updating openclaw settings:",e),n.NextResponse.json({error:"Failed to update openclaw settings"},{status:500})}}async function w(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=R();await (0,l.createBackup)("openclaw",t);let a={};try{let e=await s.default.readFile(t,"utf-8");a=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}a.models&&a.models.providers&&(delete a.models.providers.omniroute,0===Object.keys(a.models.providers).length&&delete a.models.providers),a.agents?.defaults?.model?.primary?.startsWith("omniroute/")&&delete a.agents.defaults.model.primary,await s.default.writeFile(t,JSON.stringify(a,null,2));try{(0,d.deleteCliToolLastConfigured)("openclaw")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting openclaw settings:",e),n.NextResponse.json({error:"Failed to reset openclaw settings"},{status:500})}}(0,m.ensureServerEntryExports)([h,g,w]),(0,r.registerServerReference)(h,"009fd00ee3d2c53e67fa3f6118984296c21bb7cc94",null),(0,r.registerServerReference)(g,"40a9a4e55a5f95fedd7eb57a51366ec2deabbdfa32",null),(0,r.registerServerReference)(w,"009eb79d0895bc64cfdd969e8753ff8269a73aea27",null),e.s(["DELETE",()=>w,"GET",()=>h,"POST",()=>g]),a()}catch(e){a(e)}},!1),128142,e=>e.a(async(t,a)=>{try{var r=e.i(747909),n=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),m=e.i(47587),f=e.i(666012),h=e.i(570101),g=e.i(626937),w=e.i(10372),R=e.i(193695);e.i(52474);var v=e.i(600220),y=e.i(495767),E=t([y]);[y]=E.then?(await E)():E;let x=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/openclaw-settings/route",pathname:"/api/cli-tools/openclaw-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/openclaw-settings/route.ts",nextConfigOutput:"standalone",userland:y}),{workAsyncStorage:b,workUnitAsyncStorage:O,serverHooks:A}=x;function C(){return(0,s.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:O})}async function N(e,t,a){x.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/openclaw-settings/route";r=r.replace(/\/index$/,"")||"/";let s=await x.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:E,nextConfig:C,parsedUrl:N,isDraftMode:b,prerenderManifest:O,routerServerContext:A,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,resolvedPathname:T,clientReferenceManifest:k,serverActionsManifest:I}=s,_=(0,d.normalizeAppPath)(r),j=!!(O.dynamicRoutes[_]||O.routes[T]),F=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,N,!1):t.end("This page could not be found"),null);if(j&&!b){let e=!!O.routes[T],t=O.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await F();throw new R.NoFallbackError}}let H=null;!j||x.isDev||b||(H=T,H="/index"===H?"/":H);let M=!0===x.isDev||!j,U=j&&!M;I&&k&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:k,serverActionsManifest:I});let q=e.method||"GET",D=(0,i.getTracer)(),$=D.getActiveScopeSpan(),K={params:E,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>x.onRequestError(e,t,r,n,A)},sharedContext:{buildId:y}},L=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let s=async e=>x.handle(J,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=D.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var i,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&S&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await s(o);e.fetchMetrics=K.renderOpts.fetchMetrics;let i=K.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let d=K.renderOpts.collectedTags;if(!j)return await (0,f.sendResponse)(L,B,r,K.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(r.headers);d&&(t[w.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,A),t}},c=await x.handleResponse({req:e,nextConfig:C,cacheKey:H,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:l});if(!j)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&j||p.delete(w.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(L,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};$?await d($):await D.withPropagatedContext(e.headers,()=>D.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:i.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof R.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,A),j)throw t;return await (0,f.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>C,"routeModule",()=>x,"serverHooks",()=>A,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>O]),a()}catch(e){a(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_2115d8de._.js.map
|