9router 0.3.71 → 0.3.72
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/app-path-routes-manifest.json +2 -2
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/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/console-log/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/mitm/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/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.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/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/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/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.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/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +3 -3
- package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next/server/app/dashboard/basic-chat.rsc +5 -5
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +5 -5
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +5 -5
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +5 -5
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +4 -4
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +5 -5
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +3 -3
- package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +4 -4
- package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +2 -2
- package/app/.next/server/chunks/2049.js +1 -1
- package/app/.next/server/chunks/242.js +1 -1
- package/app/.next/server/chunks/8202.js +1 -1
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/static/chunks/{4156-fc5bc8759f73e36d.js → 4156-f8e9c6334c5964b1.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-a8c26437a17c1428.js +1 -0
- package/app/.next/static/chunks/app/{layout-eef9affc86ced4e1.js → layout-76aaa65ecb33e97d.js} +1 -1
- package/app/package.json +1 -1
- package/app/src/mitm/server.js +1 -1
- package/package.json +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b69c5ffad6baca8c.js +0 -1
- /package/app/.next/static/{nQkQ_ms11m4F4Ie_RT--o → _qgNKf11lJ14fXVq78FHz}/_buildManifest.js +0 -0
- /package/app/.next/static/{nQkQ_ms11m4F4Ie_RT--o → _qgNKf11lJ14fXVq78FHz}/_ssgManifest.js +0 -0
package/app/.next/static/chunks/app/{layout-eef9affc86ced4e1.js → layout-76aaa65ecb33e97d.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{390:e=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="//"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},e.exports=t},2074:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(1521);let a=e=>{let t,r=new Set,n=(e,n)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=n?n:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,o={setState:n,getState:a,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(n,a,o);return o},o=e=>{let t=e?a(e):a,r=e=>(function(e,t=e=>e){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},i=e=>e?o(e):o},5074:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,43333,23)),Promise.resolve().then(r.bind(r,70339)),Promise.resolve().then(r.bind(r,98814)),Promise.resolve().then(r.t.bind(r,88276,23))},11472:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>a});let n=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>n(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>n(t)(e)}}},a=(e,t)=>(r,a,o)=>{let i,s={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var r;let n=e=>null===e?null:JSON.parse(e,void 0),a=null!=(r=t.getItem(e))?r:null;return a instanceof Promise?a.then(n):n(a)},setItem:(e,r)=>t.setItem(e,JSON.stringify(r,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},u=!1,l=0,c=new Set,d=new Set,m=s.storage;if(!m)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),r(...e)},a,o);let f=()=>{let e=s.partialize({...a()});return m.setItem(s.name,{state:e,version:s.version})},h=o.setState;o.setState=(e,t)=>(h(e,t),f());let p=e((...e)=>(r(...e),f()),a,o);o.getInitialState=()=>p;let v=()=>{var e,t;if(!m)return;let o=++l;u=!1,c.forEach(e=>{var t;return e(null!=(t=a())?t:p)});let h=(null==(t=s.onRehydrateStorage)?void 0:t.call(s,null!=(e=a())?e:p))||void 0;return n(m.getItem.bind(m))(s.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===s.version)return[!1,e.state];else{if(s.migrate){let t=s.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(o!==l)return;let[n,u]=e;if(r(i=s.merge(u,null!=(t=a())?t:p),!0),n)return f()}).then(()=>{o===l&&(null==h||h(a(),void 0),i=a(),u=!0,d.forEach(e=>e(i)))}).catch(e=>{o===l&&(null==h||h(void 0,e))})};return o.persist={setOptions:e=>{s={...s,...e},e.storage&&(m=e.storage)},clearStorage:()=>{null==m||m.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>v(),hasHydrated:()=>u,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(d.add(e),()=>{d.delete(e)})},s.skipHydration||v(),i||p}},29717:(e,t,r)=>{"use strict";var n=r(21505);r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},43202:(e,t,r)=>{"use strict";r.d(t,{Q2:()=>n.Q2,fg:()=>n.fg,vQ:()=>a,MA:()=>n.MA,UY:()=>i,zN:()=>n.zN,B2:()=>o});var n=r(82495);r(69633);let a={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{390:e=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="//"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},e.exports=t},2074:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(1521);let a=e=>{let t,r=new Set,n=(e,n)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=n?n:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,o={setState:n,getState:a,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(n,a,o);return o},o=e=>{let t=e?a(e):a,r=e=>(function(e,t=e=>e){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},i=e=>e?o(e):o},5074:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,43333,23)),Promise.resolve().then(r.bind(r,70339)),Promise.resolve().then(r.bind(r,98814)),Promise.resolve().then(r.t.bind(r,88276,23))},11472:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>a});let n=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>n(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>n(t)(e)}}},a=(e,t)=>(r,a,o)=>{let i,s={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var r;let n=e=>null===e?null:JSON.parse(e,void 0),a=null!=(r=t.getItem(e))?r:null;return a instanceof Promise?a.then(n):n(a)},setItem:(e,r)=>t.setItem(e,JSON.stringify(r,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},u=!1,l=0,c=new Set,d=new Set,m=s.storage;if(!m)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),r(...e)},a,o);let f=()=>{let e=s.partialize({...a()});return m.setItem(s.name,{state:e,version:s.version})},h=o.setState;o.setState=(e,t)=>(h(e,t),f());let p=e((...e)=>(r(...e),f()),a,o);o.getInitialState=()=>p;let v=()=>{var e,t;if(!m)return;let o=++l;u=!1,c.forEach(e=>{var t;return e(null!=(t=a())?t:p)});let h=(null==(t=s.onRehydrateStorage)?void 0:t.call(s,null!=(e=a())?e:p))||void 0;return n(m.getItem.bind(m))(s.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===s.version)return[!1,e.state];else{if(s.migrate){let t=s.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(o!==l)return;let[n,u]=e;if(r(i=s.merge(u,null!=(t=a())?t:p),!0),n)return f()}).then(()=>{o===l&&(null==h||h(a(),void 0),i=a(),u=!0,d.forEach(e=>e(i)))}).catch(e=>{o===l&&(null==h||h(void 0,e))})};return o.persist={setOptions:e=>{s={...s,...e},e.storage&&(m=e.storage)},clearStorage:()=>{null==m||m.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>v(),hasHydrated:()=>u,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(d.add(e),()=>{d.delete(e)})},s.skipHydration||v(),i||p}},29717:(e,t,r)=>{"use strict";var n=r(21505);r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},43202:(e,t,r)=>{"use strict";r.d(t,{Q2:()=>n.Q2,fg:()=>n.fg,vQ:()=>a,MA:()=>n.MA,UY:()=>i,zN:()=>n.zN,B2:()=>o});var n=r(82495);r(69633);let a={name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.72"},o={storageKey:"theme",defaultTheme:"system"},i={maxLines:200,pollIntervalMs:1e3}},43333:()=>{},55348:(e,t,r)=>{"use strict";r.d(t,{CL:()=>o,QC:()=>i,Xn:()=>a,YZ:()=>n});let n=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],a="en",o="locale";function i(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":a}},69633:(e,t,r)=>{"use strict";r.d(t,{KC:()=>n.KC,Xg:()=>n.Xg});var n=r(94718);Object.entries(r(82495).Q2).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(n.vq).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})))},70339:(e,t,r)=>{"use strict";r.d(t,{RuntimeI18nProvider:()=>s});var n=r(73365),a=r(1521),o=r(29717),i=r(84502);function s({children:e}){let t=(0,o.usePathname)();return(0,a.useEffect)(()=>{(0,i.FE)()},[]),(0,a.useEffect)(()=>{t&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{(0,i.wn)()})})},[t]),(0,n.jsx)(n.Fragment,{children:e})}},83789:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(2074),a=r(11472),o=r(43202);function i(e){let t=document.documentElement,r=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?r:e)?t.classList.add("dark"):t.classList.remove("dark")}let s=(0,n.v)((0,a.Zr)((e,t)=>({theme:o.B2.defaultTheme,setTheme:t=>{e({theme:t}),i(t)},toggleTheme:()=>{let r="dark"===t().theme?"light":"dark";e({theme:r}),i(r)},initTheme:()=>{i(t().theme)}}),{name:o.B2.storageKey}))},84502:(e,t,r)=>{"use strict";r.d(t,{FE:()=>m,Tl:()=>l,wn:()=>f});var n=r(55348);let a={},o=n.Xn,i=[];function s(){if("u"<typeof document)return n.Xn;let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${n.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):n.Xn;return(0,n.QC)(t)}async function u(e){if("en"===e){a={};return}try{let t=await fetch(`/i18n/literals/${e}.json`);a=await t.json()}catch(e){console.error("Failed to load translations:",e),a={}}}function l(e){if(!e||"string"!=typeof e)return e;let t=e.trim();return t&&"en"!==o&&a[t]||e}function c(e){if(!e.nodeValue||!e.nodeValue.trim())return;let t=e.parentElement;if(!t)return;let r=t;for(;r;){if(r.hasAttribute&&r.hasAttribute("data-i18n-skip"))return;r=r.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(t.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let n=l(e._originalText);n!==e.nodeValue&&(e.nodeValue=n)}function d(e){let t;if(!e)return;let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),n=[];for(;t=r.nextNode();)n.push(t);n.forEach(c)}async function m(){o=s(),await u(o),d(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?d(e):e.nodeType===Node.TEXT_NODE&&c(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function f(){o=s(),await u(o),i.forEach(e=>e()),d(document.body)}},88276:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}},98814:(e,t,r)=>{"use strict";r.d(t,{ThemeProvider:()=>i});var n=r(73365),a=r(1521),o=r(83789);function i({children:e}){let{initTheme:t}=(0,o.A)();return(0,a.useEffect)(()=>{t()},[t]),(0,n.jsx)(n.Fragment,{children:e})}}},e=>{e.O(0,[8424,5261,350,2347,5158,7358],()=>e(e.s=5074)),_N_E=e.O()}]);
|
package/app/package.json
CHANGED
package/app/src/mitm/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x4775b7=a0_0x13ce;(function(_0x4fd523,_0x13fad3){const _0x318f02=a0_0x13ce,_0x5b7375=_0x4fd523();while(!![]){try{const _0x4069ce=-parseInt(_0x318f02(0x22f))/0x1*(-parseInt(_0x318f02(0x236))/0x2)+-parseInt(_0x318f02(0x1ca))/0x3+-parseInt(_0x318f02(0x185))/0x4+-parseInt(_0x318f02(0x250))/0x5+parseInt(_0x318f02(0x18a))/0x6+-parseInt(_0x318f02(0x1a5))/0x7*(parseInt(_0x318f02(0x254))/0x8)+parseInt(_0x318f02(0x20c))/0x9*(parseInt(_0x318f02(0x19c))/0xa);if(_0x4069ce===_0x13fad3)break;else _0x5b7375['push'](_0x5b7375['shift']());}catch(_0x4e48d0){_0x5b7375['push'](_0x5b7375['shift']());}}}(a0_0xbe59,0x579fc));var __getOwnPropNames=Object[a0_0x4775b7(0x1cb)],__commonJS=(_0x34bf7b,_0x45fed7)=>function _0x516f03(){const _0x56596c=a0_0x4775b7;return _0x45fed7||(0x0,_0x34bf7b[__getOwnPropNames(_0x34bf7b)[0x0]])((_0x45fed7={'exports':{}})[_0x56596c(0x267)],_0x45fed7),_0x45fed7[_0x56596c(0x267)];},require_logger=__commonJS({'../app/src/mitm/logger.js'(_0x54fa2e,_0x373361){const _0x39084f=a0_0x4775b7;function _0x5877a3(){return new Date()['toLocaleTimeString']('en-US',{'hour12':![]});}var _0x51cacd=_0x1429bd=>console[_0x39084f(0x1de)]('['+_0x5877a3()+_0x39084f(0x1a1)+_0x1429bd),_0x3c0b31=_0x469ed6=>console[_0x39084f(0x1d0)]('['+_0x5877a3()+_0x39084f(0x1ed)+_0x469ed6);_0x373361[_0x39084f(0x267)]={'log':_0x51cacd,'err':_0x3c0b31};}}),require_config=__commonJS({'../app/src/mitm/config.js'(_0x92105d,_0x893b2b){const _0x12bdd9=a0_0x4775b7;var _0x43613=[_0x12bdd9(0x235),'cloudcode-pa.googleapis.com',_0x12bdd9(0x25d),_0x12bdd9(0x189),_0x12bdd9(0x257)],_0x52ac54={'antigravity':[_0x12bdd9(0x24b),_0x12bdd9(0x1db)],'copilot':[_0x12bdd9(0x1af),_0x12bdd9(0x23b),'/responses'],'kiro':[_0x12bdd9(0x1d3)],'cursor':[_0x12bdd9(0x238),_0x12bdd9(0x1c5),_0x12bdd9(0x1a9),'/Run']};function _0x1ba595(_0x1e2338){const _0x4b2a83=_0x12bdd9,_0x183446=(_0x1e2338||'')[_0x4b2a83(0x1c0)](':')[0x0];if(_0x183446===_0x4b2a83(0x25d))return _0x4b2a83(0x18f);if(_0x183446===_0x4b2a83(0x235)||_0x183446==='cloudcode-pa.googleapis.com')return'antigravity';if(_0x183446===_0x4b2a83(0x189))return _0x4b2a83(0x1c6);if(_0x183446===_0x4b2a83(0x257))return'cursor';return null;}_0x893b2b[_0x12bdd9(0x267)]={'TARGET_HOSTS':_0x43613,'URL_PATTERNS':_0x52ac54,'getToolForHost':_0x1ba595};}}),require_paths=__commonJS({'../app/src/mitm/paths.js'(_0x47fda3,_0x261c62){const _0x1ecaf1=a0_0x4775b7;var _0x4bc7f0=require(_0x1ecaf1(0x1d8)),_0x52c60e=require('os');function _0x1a0bda(){const _0x28c366=_0x1ecaf1;if(process.env.DATA_DIR)return process.env.DATA_DIR;if(process[_0x28c366(0x1c9)]===_0x28c366(0x1bf))return _0x4bc7f0[_0x28c366(0x1a8)](process.env.APPDATA||_0x4bc7f0[_0x28c366(0x1a8)](_0x52c60e['homedir'](),'AppData',_0x28c366(0x1be)),_0x28c366(0x263));return _0x4bc7f0['join'](_0x52c60e[_0x28c366(0x19a)](),_0x28c366(0x21e));}var _0x513913=_0x1a0bda(),_0x2a4061=_0x4bc7f0['join'](_0x513913,_0x1ecaf1(0x187));_0x261c62[_0x1ecaf1(0x267)]={'DATA_DIR':_0x513913,'MITM_DIR':_0x2a4061};}}),require_rootCA=__commonJS({'../app/src/mitm/cert/rootCA.js'(_0x2bdf6a,_0x50d230){const _0x1193b4=a0_0x4775b7;var _0xf70c4d=require(_0x1193b4(0x1d8)),_0x26b96e=require('fs'),_0x3354cb=require(_0x1193b4(0x1e4)),{MITM_DIR:_0x5dc5d1}=require_paths(),_0x18f254=_0xf70c4d[_0x1193b4(0x1a8)](_0x5dc5d1,_0x1193b4(0x1ff)),_0x2db5df=_0xf70c4d[_0x1193b4(0x1a8)](_0x5dc5d1,_0x1193b4(0x1f4));function _0x3a2c54(_0x5d60f7){const _0x4d81fc=_0x1193b4;try{const _0xe97ceb=_0x3354cb[_0x4d81fc(0x237)][_0x4d81fc(0x1fd)](_0x26b96e[_0x4d81fc(0x1b7)](_0x5d60f7,'utf8')),_0x5b656f=new Date(Date[_0x4d81fc(0x190)]()+0x1e*0x18*0x3c*0x3c*0x3e8);return _0xe97ceb[_0x4d81fc(0x1ae)]['notAfter']<_0x5b656f;}catch{return!![];}}async function _0x93f772(){const _0xdaa113=_0x1193b4,_0x2ff468=_0x26b96e['existsSync'](_0x18f254)&&_0x26b96e[_0xdaa113(0x223)](_0x2db5df);if(_0x2ff468&&!_0x3a2c54(_0x2db5df))return console[_0xdaa113(0x1de)](_0xdaa113(0x22d)),{'key':_0x18f254,'cert':_0x2db5df};if(_0x2ff468){console[_0xdaa113(0x1de)](_0xdaa113(0x220));try{_0x26b96e[_0xdaa113(0x269)](_0x18f254);}catch{}try{_0x26b96e[_0xdaa113(0x269)](_0x2db5df);}catch{}}!_0x26b96e[_0xdaa113(0x223)](_0x5dc5d1)&&_0x26b96e[_0xdaa113(0x262)](_0x5dc5d1,{'recursive':!![]});console[_0xdaa113(0x1de)]('🔐\x20Generating\x20Root\x20CA\x20certificate...');const _0x23ee20=_0x3354cb[_0xdaa113(0x237)][_0xdaa113(0x193)][_0xdaa113(0x1cf)](0x800),_0x4033d8=_0x3354cb[_0xdaa113(0x237)]['createCertificate']();_0x4033d8['publicKey']=_0x23ee20[_0xdaa113(0x1ef)],_0x4033d8[_0xdaa113(0x1ba)]='01',_0x4033d8[_0xdaa113(0x1ae)]['notBefore']=new Date(),_0x4033d8['validity'][_0xdaa113(0x1c8)]=new Date(),_0x4033d8['validity']['notAfter'][_0xdaa113(0x18c)](_0x4033d8[_0xdaa113(0x1ae)][_0xdaa113(0x233)][_0xdaa113(0x264)]()+0xa);const _0x23325b=[{'name':_0xdaa113(0x218),'value':'9Router\x20MITM\x20Root\x20CA'},{'name':_0xdaa113(0x24c),'value':_0xdaa113(0x215)},{'name':_0xdaa113(0x184),'value':'US'}];_0x4033d8['setSubject'](_0x23325b),_0x4033d8[_0xdaa113(0x26a)](_0x23325b),_0x4033d8['setExtensions']([{'name':_0xdaa113(0x22a),'cA':!![],'critical':!![]},{'name':_0xdaa113(0x1e3),'keyCertSign':!![],'cRLSign':!![],'critical':!![]},{'name':_0xdaa113(0x1f3)}]),_0x4033d8[_0xdaa113(0x1ad)](_0x23ee20[_0xdaa113(0x1f2)],_0x3354cb['md'][_0xdaa113(0x1e1)][_0xdaa113(0x1b9)]());const _0x225d20=_0x3354cb[_0xdaa113(0x237)]['privateKeyToPem'](_0x23ee20[_0xdaa113(0x1f2)]),_0x5377ba=_0x3354cb[_0xdaa113(0x237)]['certificateToPem'](_0x4033d8);return _0x26b96e[_0xdaa113(0x249)](_0x18f254,_0x225d20),_0x26b96e[_0xdaa113(0x249)](_0x2db5df,_0x5377ba),console[_0xdaa113(0x1de)](_0xdaa113(0x23d)),{'key':_0x18f254,'cert':_0x2db5df};}function _0x3353ef(){const _0x395496=_0x1193b4;if(!_0x26b96e[_0x395496(0x223)](_0x18f254)||!_0x26b96e[_0x395496(0x223)](_0x2db5df))throw new Error(_0x395496(0x216));const _0x1cc8f8=_0x26b96e[_0x395496(0x1b7)](_0x18f254,_0x395496(0x1ab)),_0xb6b7ac=_0x26b96e['readFileSync'](_0x2db5df,_0x395496(0x1ab));return{'key':_0x3354cb[_0x395496(0x237)][_0x395496(0x23e)](_0x1cc8f8),'cert':_0x3354cb[_0x395496(0x237)][_0x395496(0x1fd)](_0xb6b7ac)};}function _0x414cf0(_0xe5f4c2,_0x3a7e5b){const _0x4596a5=_0x1193b4,_0x2cfd8b=_0x3354cb['pki'][_0x4596a5(0x193)]['generateKeyPair'](0x800),_0x96e0c=_0x3354cb['pki']['createCertificate']();return _0x96e0c['publicKey']=_0x2cfd8b[_0x4596a5(0x1ef)],_0x96e0c[_0x4596a5(0x1ba)]=Math[_0x4596a5(0x25e)](Math[_0x4596a5(0x1e0)]()*0xf4240)[_0x4596a5(0x1ce)](),_0x96e0c[_0x4596a5(0x1ae)][_0x4596a5(0x233)]=new Date(),_0x96e0c[_0x4596a5(0x1ae)][_0x4596a5(0x1c8)]=new Date(),_0x96e0c[_0x4596a5(0x1ae)][_0x4596a5(0x1c8)]['setFullYear'](_0x96e0c['validity']['notBefore'][_0x4596a5(0x264)]()+0x1),_0x96e0c[_0x4596a5(0x1c7)]([{'name':_0x4596a5(0x218),'value':_0xe5f4c2}]),_0x96e0c[_0x4596a5(0x26a)](_0x3a7e5b[_0x4596a5(0x25f)][_0x4596a5(0x1e8)][_0x4596a5(0x21a)]),_0x96e0c['setExtensions']([{'name':_0x4596a5(0x22a),'cA':![]},{'name':_0x4596a5(0x1e3),'digitalSignature':!![],'keyEncipherment':!![]},{'name':_0x4596a5(0x1e6),'serverAuth':!![],'clientAuth':!![]},{'name':_0x4596a5(0x1bd),'altNames':[{'type':0x2,'value':_0xe5f4c2},{'type':0x2,'value':'*.'+_0xe5f4c2}]}]),_0x96e0c[_0x4596a5(0x1ad)](_0x3a7e5b[_0x4596a5(0x195)],_0x3354cb['md'][_0x4596a5(0x1e1)]['create']()),{'key':_0x3354cb['pki']['privateKeyToPem'](_0x2cfd8b[_0x4596a5(0x1f2)]),'cert':_0x3354cb['pki']['certificateToPem'](_0x96e0c)};}_0x50d230[_0x1193b4(0x267)]={'generateRootCA':_0x93f772,'loadRootCA':_0x3353ef,'generateLeafCert':_0x414cf0,'isCertExpired':_0x3a2c54,'ROOT_CA_CERT_PATH':_0x2db5df,'ROOT_CA_KEY_PATH':_0x18f254};}}),require_generate=__commonJS({'../app/src/mitm/cert/generate.js'(_0x5e251c,_0x3b64ea){const _0x1a6242=a0_0x4775b7;var _0x147ef7=require(_0x1a6242(0x1d8)),_0xe4b060=require('fs'),{MITM_DIR:_0x1d4cbf}=require_paths(),{generateRootCA:_0x21bc1f,loadRootCA:_0x386280,generateLeafCert:_0xa8e2ae}=require_rootCA();async function _0x310181(){return await _0x21bc1f();}function _0x168b89(_0x363a85){const _0x57ef31=_0x1a6242;try{const _0x456ef3=_0x386280(),_0x464162=_0xa8e2ae(_0x363a85,_0x456ef3);return{'key':_0x464162['key'],'cert':_0x464162[_0x57ef31(0x25f)]};}catch(_0x1b7a11){return console[_0x57ef31(0x1d0)](_0x57ef31(0x1da)+_0x363a85+':',_0x1b7a11[_0x57ef31(0x18d)]),null;}}_0x3b64ea[_0x1a6242(0x267)]={'generateCert':_0x310181,'getCertForDomain':_0x168b89};}}),require_base=__commonJS({'../app/src/mitm/handlers/base.js'(_0x383f5a,_0x38cfc4){const _0x6085c5=a0_0x4775b7;var {log:_0x40af7b,err:_0x29f064}=require_logger(),_0x28954e=_0x6085c5(0x24f),_0x200fa8=process.env.ROUTER_API_KEY;async function _0x1f461b(_0x1da670,_0x3ad83e=_0x6085c5(0x1bb)){const _0x56a040=_0x6085c5,_0xca8075=await fetch(''+_0x28954e+_0x3ad83e,{'method':_0x56a040(0x206),'headers':{'Content-Type':_0x56a040(0x205),..._0x200fa8&&{'Authorization':'Bearer\x20'+_0x200fa8}},'body':JSON[_0x56a040(0x1c1)](_0x1da670)});if(!_0xca8075['ok']){const _0x6da9d7=await _0xca8075[_0x56a040(0x202)]()['catch'](()=>'');throw new Error('['+_0xca8075[_0x56a040(0x222)]+_0x56a040(0x18b)+_0x6da9d7);}return _0xca8075;}async function _0x5abf5c(_0x37c114,_0x25b396){const _0x146eb5=_0x6085c5,_0x5d16e1=_0x37c114[_0x146eb5(0x199)]['get']('content-type')||_0x146eb5(0x205),_0x2a49c3={'Content-Type':_0x5d16e1,'Cache-Control':_0x146eb5(0x208),'Connection':'keep-alive'};if(_0x5d16e1[_0x146eb5(0x258)]('text/event-stream'))_0x2a49c3[_0x146eb5(0x18e)]='no';_0x25b396[_0x146eb5(0x1d6)](0xc8,_0x2a49c3);if(!_0x37c114[_0x146eb5(0x234)]){_0x25b396[_0x146eb5(0x1ea)](await _0x37c114['text']()[_0x146eb5(0x19e)](()=>''));return;}const _0x5d78cb=_0x37c114['body'][_0x146eb5(0x1ee)](),_0x1df974=new TextDecoder();while(!![]){const {done:_0x2eea9e,value:_0x26c73e}=await _0x5d78cb[_0x146eb5(0x253)]();if(_0x2eea9e){_0x25b396[_0x146eb5(0x1ea)]();break;}_0x25b396[_0x146eb5(0x261)](_0x1df974['decode'](_0x26c73e,{'stream':!![]}));}}_0x38cfc4[_0x6085c5(0x267)]={'fetchRouter':_0x1f461b,'pipeSSE':_0x5abf5c};}}),require_antigravity=__commonJS({'../app/src/mitm/handlers/antigravity.js'(_0x580da3,_0x33331e){const _0x145aad=a0_0x4775b7;var {err:_0x23f303}=require_logger(),{fetchRouter:_0x27c262,pipeSSE:_0x4b6e6d}=require_base();async function _0x28ed9f(_0x78e6dd,_0x377ad3,_0x473888,_0x365d4a){const _0x160a6=a0_0x13ce;try{const _0x22019a=JSON[_0x160a6(0x20a)](_0x473888[_0x160a6(0x1ce)]());_0x22019a[_0x160a6(0x23a)]=_0x365d4a;const _0x343761=await _0x27c262(_0x22019a);await _0x4b6e6d(_0x343761,_0x377ad3);}catch(_0x4b31f3){_0x23f303('[antigravity]\x20'+_0x4b31f3[_0x160a6(0x18d)]);if(!_0x377ad3[_0x160a6(0x226)])_0x377ad3[_0x160a6(0x1d6)](0x1f4,{'Content-Type':_0x160a6(0x205)});_0x377ad3['end'](JSON[_0x160a6(0x1c1)]({'error':{'message':_0x4b31f3[_0x160a6(0x18d)],'type':'mitm_error'}}));}}_0x33331e[_0x145aad(0x267)]={'intercept':_0x28ed9f};}}),require_copilot=__commonJS({'../app/src/mitm/handlers/copilot.js'(_0x59090c,_0x3394f5){const _0x35382c=a0_0x4775b7;var {err:_0xed23d9}=require_logger(),{fetchRouter:_0x486e1a,pipeSSE:_0x35fd98}=require_base(),_0x21c30e={'/chat/completions':_0x35382c(0x1bb),'/v1/messages':_0x35382c(0x23b),'/responses':'/v1/responses'};function _0x3fa1b8(_0x3413b6){const _0x44393a=_0x35382c;for(const [_0x44f8ef,_0x2dde0b]of Object[_0x44393a(0x1b5)](_0x21c30e)){if(_0x3413b6[_0x44393a(0x258)](_0x44f8ef))return _0x2dde0b;}return _0x44393a(0x1bb);}async function _0x2d38c0(_0xb3ab02,_0x452b7b,_0x41b689,_0x2539a6){const _0x2ff1fa=_0x35382c;try{const _0x18b0b3=JSON['parse'](_0x41b689[_0x2ff1fa(0x1ce)]());_0x18b0b3['model']=_0x2539a6;const _0x59f2f0=_0x3fa1b8(_0xb3ab02['url']),_0x365400=await _0x486e1a(_0x18b0b3,_0x59f2f0);await _0x35fd98(_0x365400,_0x452b7b);}catch(_0x32b025){_0xed23d9(_0x2ff1fa(0x22e)+_0x32b025[_0x2ff1fa(0x18d)]);if(!_0x452b7b[_0x2ff1fa(0x226)])_0x452b7b[_0x2ff1fa(0x1d6)](0x1f4,{'Content-Type':_0x2ff1fa(0x205)});_0x452b7b[_0x2ff1fa(0x1ea)](JSON[_0x2ff1fa(0x1c1)]({'error':{'message':_0x32b025[_0x2ff1fa(0x18d)],'type':_0x2ff1fa(0x20d)}}));}}_0x3394f5['exports']={'intercept':_0x2d38c0};}}),require_kiro=__commonJS({'../app/src/mitm/dev/kiro.js'(_0x5ceecc,_0x33b219){const _0x39a1f9=a0_0x4775b7;var _0x1e0a4a=require(_0x39a1f9(0x207)),{log:_0xface6,err:_0x2c9f4a}=require_logger(),{fetchRouter:_0x12c7fb}=require_base();function _0x3671ba(_0x2d933f){const _0x4d5c9f=_0x39a1f9;if(typeof _0x2d933f!==_0x4d5c9f(0x1d4))return![];return _0x2d933f[_0x4d5c9f(0x258)](_0x4d5c9f(0x256))||_0x2d933f[_0x4d5c9f(0x258)](_0x4d5c9f(0x259));}function _0x33116a(_0x3ce313,_0x56155b){const _0x5d56c0=_0x39a1f9,_0x36c4ed=_0x3ce313[_0x5d56c0(0x20f)]||{},_0x76b6ef=_0x36c4ed['history']||[],_0x698bf3=_0x36c4ed[_0x5d56c0(0x19b)]?.[_0x5d56c0(0x1c3)],_0x3bfa53=[];let _0x153aaa=![];for(const _0x2aa916 of _0x76b6ef){if(_0x2aa916['userInputMessage']){const _0x63f907=_0x2aa916['userInputMessage'],_0xbe70b0=(_0x63f907[_0x5d56c0(0x197)]||'')['trim'](),_0x326e5e=_0x63f907[_0x5d56c0(0x24e)]?.['toolResults'];if(!_0x153aaa&&_0x3671ba(_0xbe70b0)){_0x3bfa53[_0x5d56c0(0x1b0)]({'role':'system','content':_0xbe70b0}),_0x153aaa=!![];if(_0x326e5e?.[_0x5d56c0(0x1e2)]>0x0)for(const _0x13ac29 of _0x326e5e){_0x3bfa53[_0x5d56c0(0x1b0)]({'role':_0x5d56c0(0x247),'tool_call_id':_0x13ac29['toolUseId'],'content':_0x13ac29[_0x5d56c0(0x197)]?.['map'](_0x359d0c=>_0x359d0c[_0x5d56c0(0x202)])[_0x5d56c0(0x1a8)]('\x0a')||''});}continue;}if(_0x326e5e?.[_0x5d56c0(0x1e2)]>0x0)for(const _0x2fc45a of _0x326e5e){_0x3bfa53['push']({'role':_0x5d56c0(0x247),'tool_call_id':_0x2fc45a[_0x5d56c0(0x241)],'content':_0x2fc45a[_0x5d56c0(0x197)]?.[_0x5d56c0(0x214)](_0x157ee6=>_0x157ee6['text'])[_0x5d56c0(0x1a8)]('\x0a')||''});}if(_0xbe70b0)_0x3bfa53[_0x5d56c0(0x1b0)]({'role':_0x5d56c0(0x1d9),'content':_0xbe70b0});}else{if(_0x2aa916[_0x5d56c0(0x1a3)]){const _0x2211a6=_0x2aa916[_0x5d56c0(0x1a3)],_0xae71dd={'role':'assistant','content':_0x2211a6[_0x5d56c0(0x197)]||''};_0x2211a6[_0x5d56c0(0x1a6)]?.[_0x5d56c0(0x1e2)]>0x0&&(_0xae71dd[_0x5d56c0(0x1c4)]=_0x2211a6[_0x5d56c0(0x1a6)][_0x5d56c0(0x214)](_0x5b172a=>({'id':_0x5b172a[_0x5d56c0(0x241)],'type':_0x5d56c0(0x1fb),'function':{'name':_0x5b172a[_0x5d56c0(0x1a0)],'arguments':JSON[_0x5d56c0(0x1c1)](_0x5b172a[_0x5d56c0(0x1fe)]||{})}}))),_0x3bfa53[_0x5d56c0(0x1b0)](_0xae71dd);}}}if(_0x698bf3){const _0x153aa8=_0x698bf3[_0x5d56c0(0x24e)]?.['toolResults'];if(_0x153aa8?.[_0x5d56c0(0x1e2)]>0x0)for(const _0x37afb4 of _0x153aa8){_0x3bfa53['push']({'role':'tool','tool_call_id':_0x37afb4[_0x5d56c0(0x241)],'content':_0x37afb4[_0x5d56c0(0x197)]?.[_0x5d56c0(0x214)](_0x439505=>_0x439505[_0x5d56c0(0x202)])[_0x5d56c0(0x1a8)]('\x0a')||''});}const _0x3a23f5=(_0x698bf3['content']||'')[_0x5d56c0(0x260)]();if(_0x3a23f5)_0x3bfa53[_0x5d56c0(0x1b0)]({'role':_0x5d56c0(0x1d9),'content':_0x3a23f5});}const _0x170eb6={'model':_0x56155b,'messages':_0x3bfa53,'stream':!![],'stream_options':{'include_usage':!![]}},_0x36749a=_0x698bf3?.[_0x5d56c0(0x24e)]?.[_0x5d56c0(0x1f1)];return _0x36749a?.['length']>0x0&&(_0x170eb6['tools']=_0x36749a[_0x5d56c0(0x214)](_0x4d4751=>({'type':_0x5d56c0(0x1fb),'function':{'name':_0x4d4751[_0x5d56c0(0x212)][_0x5d56c0(0x1a0)],'description':_0x4d4751[_0x5d56c0(0x212)]['description']||_0x4d4751[_0x5d56c0(0x212)][_0x5d56c0(0x1a0)],'parameters':_0x4d4751[_0x5d56c0(0x212)][_0x5d56c0(0x1fa)]?.[_0x5d56c0(0x1f0)]||{'type':_0x5d56c0(0x24a),'properties':{}}}}))),_0x170eb6;}function _0x1af4da(_0x38f5bf,_0x29c727){const _0x405c6c=_0x39a1f9,_0x5a420e=Buffer['from'](JSON[_0x405c6c(0x1c1)](_0x29c727),_0x405c6c(0x1ab)),_0xc81ca9=[[_0x405c6c(0x255),_0x38f5bf],[_0x405c6c(0x227),_0x405c6c(0x205)],[':message-type','event']],_0x27b4f5=[];for(const [_0x590ce0,_0x3ecfba]of _0xc81ca9){const _0x17dddb=Buffer[_0x405c6c(0x1b4)](_0x590ce0,_0x405c6c(0x1ab)),_0x3e7210=Buffer[_0x405c6c(0x1b4)](_0x3ecfba,_0x405c6c(0x1ab)),_0x240ed7=Buffer[_0x405c6c(0x1c2)](0x1+_0x17dddb['length']+0x1+0x2+_0x3e7210['length']);let _0x2bdf75=0x0;_0x240ed7[_0x2bdf75++]=_0x17dddb[_0x405c6c(0x1e2)],_0x17dddb[_0x405c6c(0x198)](_0x240ed7,_0x2bdf75),_0x2bdf75+=_0x17dddb[_0x405c6c(0x1e2)],_0x240ed7[_0x2bdf75++]=0x7,_0x240ed7[_0x405c6c(0x22b)](_0x3e7210['length'],_0x2bdf75),_0x2bdf75+=0x2,_0x3e7210[_0x405c6c(0x198)](_0x240ed7,_0x2bdf75),_0x27b4f5[_0x405c6c(0x1b0)](_0x240ed7);}const _0x2a37a4=Buffer[_0x405c6c(0x21d)](_0x27b4f5),_0x499657=0x4+0x4+0x4+_0x2a37a4[_0x405c6c(0x1e2)]+_0x5a420e[_0x405c6c(0x1e2)]+0x4,_0x12ed37=Buffer[_0x405c6c(0x1c2)](_0x499657);let _0x5baab6=0x0;_0x12ed37[_0x405c6c(0x188)](_0x499657,_0x5baab6),_0x5baab6+=0x4,_0x12ed37[_0x405c6c(0x188)](_0x2a37a4[_0x405c6c(0x1e2)],_0x5baab6),_0x5baab6+=0x4;const _0x1289d6=_0x1e0a4a[_0x405c6c(0x19d)](_0x12ed37[_0x405c6c(0x213)](0x0,0x8));_0x12ed37[_0x405c6c(0x188)](_0x1289d6,_0x5baab6),_0x5baab6+=0x4,_0x2a37a4[_0x405c6c(0x198)](_0x12ed37,_0x5baab6),_0x5baab6+=_0x2a37a4[_0x405c6c(0x1e2)],_0x5a420e['copy'](_0x12ed37,_0x5baab6),_0x5baab6+=_0x5a420e['length'];const _0xb9a2dd=_0x1e0a4a['crc32'](_0x12ed37[_0x405c6c(0x213)](0x0,_0x499657-0x4));return _0x12ed37[_0x405c6c(0x188)](_0xb9a2dd,_0x5baab6),_0x12ed37;}async function _0x274de5(_0x552fd7,_0x36b720,_0x36ded0,_0x41b762,_0x4baac7){const _0x51daf0=_0x39a1f9;try{const _0x2a6e29=JSON[_0x51daf0(0x20a)](_0x36ded0['toString']()),_0x5936ad=_0x2a6e29[_0x51daf0(0x20f)]?.[_0x51daf0(0x192)]||'unknown';_0xface6('🔷\x20[KIRO]\x20intercept\x20|\x20conversationId='+_0x5936ad+'\x20|\x20model='+_0x41b762);const _0x5573cf=_0x33116a(_0x2a6e29,_0x41b762);_0xface6('🔷\x20[KIRO]\x20converted\x20|\x20messages='+_0x5573cf['messages'][_0x51daf0(0x1e2)]+_0x51daf0(0x1cd)+(_0x5573cf[_0x51daf0(0x1f1)]?.[_0x51daf0(0x1e2)]||0x0));_0x5573cf[_0x51daf0(0x1f1)]?.[_0x51daf0(0x1e2)]&&_0xface6(_0x51daf0(0x204)+_0x5573cf[_0x51daf0(0x1f1)][_0x51daf0(0x214)](_0x238e4c=>_0x238e4c[_0x51daf0(0x1fb)]['name'])[_0x51daf0(0x1a8)](',\x20'));if(!_0x5573cf[_0x51daf0(0x210)][_0x51daf0(0x1e2)])return _0x2c9f4a(_0x51daf0(0x1bc)),_0x4baac7(_0x552fd7,_0x36b720,_0x36ded0);const _0x406b05=await _0x12c7fb(_0x5573cf);_0x36b720[_0x51daf0(0x1d6)](0xc8,{'Content-Type':_0x51daf0(0x232),'Cache-Control':'no-cache','Connection':'keep-alive','Transfer-Encoding':_0x51daf0(0x1ac),'x-amzn-RequestId':_0x552fd7[_0x51daf0(0x199)][_0x51daf0(0x1a4)]||_0x5936ad,'x-amzn-codewhisperer-conversation-id':_0x5936ad,'X-XSS-Protection':_0x51daf0(0x23f),'X-Frame-Options':_0x51daf0(0x25c),'X-Content-Type-Options':'nosniff'});const _0x1a02b5=_0x406b05[_0x51daf0(0x234)][_0x51daf0(0x1ee)](),_0x48f638=new TextDecoder();let _0x506577='',_0x1f1a5f=![];const _0x29840b={};let _0x4220f5=null;while(!![]){const {done:_0xfb7411,value:_0x4029d6}=await _0x1a02b5[_0x51daf0(0x253)]();if(_0xfb7411)break;_0x506577+=_0x48f638[_0x51daf0(0x1d2)](_0x4029d6,{'stream':!![]});const _0x3fe92c=_0x506577[_0x51daf0(0x1c0)]('\x0a');_0x506577=_0x3fe92c[_0x51daf0(0x24d)]();for(const _0x2f23ea of _0x3fe92c){if(!_0x2f23ea[_0x51daf0(0x25a)](_0x51daf0(0x243)))continue;const _0x3bfb46=_0x2f23ea[_0x51daf0(0x213)](0x6)[_0x51daf0(0x260)]();if(_0x3bfb46===_0x51daf0(0x219))continue;let _0xf7eaa4;try{_0xf7eaa4=JSON[_0x51daf0(0x20a)](_0x3bfb46);}catch{continue;}if(_0xf7eaa4[_0x51daf0(0x1d1)])_0x4220f5=_0xf7eaa4[_0x51daf0(0x1d1)];const _0x547bbb=_0xf7eaa4[_0x51daf0(0x211)]?.[0x0];if(!_0x547bbb)continue;const _0x1d8003=_0x547bbb['delta']||{},_0x27dbd5=_0x547bbb[_0x51daf0(0x22c)];_0x1d8003[_0x51daf0(0x197)]&&_0x36b720[_0x51daf0(0x261)](_0x1af4da(_0x51daf0(0x1e5),{'content':_0x1d8003[_0x51daf0(0x197)],'modelId':_0x41b762}));if(_0x1d8003[_0x51daf0(0x1c4)]){_0x1f1a5f=!![];for(const _0x29d9da of _0x1d8003['tool_calls']){const _0x4f3dd1=_0x29d9da[_0x51daf0(0x1b3)]??0x0;if(!_0x29840b[_0x4f3dd1])_0x29840b[_0x4f3dd1]={'id':'','name':'','args':''};if(_0x29d9da['id'])_0x29840b[_0x4f3dd1]['id']=_0x29d9da['id'];if(_0x29d9da[_0x51daf0(0x1fb)]?.[_0x51daf0(0x1a0)])_0x29840b[_0x4f3dd1]['name']=_0x29d9da[_0x51daf0(0x1fb)][_0x51daf0(0x1a0)];if(_0x29d9da[_0x51daf0(0x1fb)]?.['arguments'])_0x29840b[_0x4f3dd1][_0x51daf0(0x245)]+=_0x29d9da[_0x51daf0(0x1fb)]['arguments'];}}if(_0x27dbd5){if(_0x1f1a5f){for(const _0x5affe7 of Object['values'](_0x29840b)){_0xface6('🔷\x20[KIRO]\x20toolUseEvent\x20|\x20id='+_0x5affe7['id']+_0x51daf0(0x20b)+_0x5affe7[_0x51daf0(0x1a0)]),_0x36b720[_0x51daf0(0x261)](_0x1af4da(_0x51daf0(0x248),{'name':_0x5affe7[_0x51daf0(0x1a0)],'toolUseId':_0x5affe7['id']}));const _0x434ed3=_0x5affe7[_0x51daf0(0x245)]||'{}',_0x370cbe=0x20;for(let _0x11ae27=0x0;_0x11ae27<_0x434ed3[_0x51daf0(0x1e2)];_0x11ae27+=_0x370cbe){_0x36b720['write'](_0x1af4da(_0x51daf0(0x248),{'input':_0x434ed3[_0x51daf0(0x213)](_0x11ae27,_0x11ae27+_0x370cbe),'name':_0x5affe7[_0x51daf0(0x1a0)],'toolUseId':_0x5affe7['id']}));}_0x36b720[_0x51daf0(0x261)](_0x1af4da(_0x51daf0(0x248),{'name':_0x5affe7['name'],'stop':!![],'toolUseId':_0x5affe7['id']}));}_0x36b720[_0x51daf0(0x261)](_0x1af4da(_0x51daf0(0x1e5),{'content':'','modelId':_0x41b762}));}const _0x1cd05b=_0x4220f5?.[_0x51daf0(0x1df)]||0x0,_0x5b6d20=_0x4220f5?.['total_tokens']||0x0,_0x29c8a6=_0x1cd05b>0x0?_0x1cd05b/0x30d40*0x64:1.5,_0x330682=_0x5b6d20>0x0?_0x5b6d20*0.000004:0.001;_0x36b720[_0x51daf0(0x261)](_0x1af4da(_0x51daf0(0x196),{'contextUsagePercentage':_0x29c8a6})),_0x36b720[_0x51daf0(0x261)](_0x1af4da(_0x51daf0(0x225),{'unit':_0x51daf0(0x191),'unitPlural':_0x51daf0(0x217),'usage':_0x330682})),_0xface6(_0x51daf0(0x265)+_0x27dbd5+'\x20hasToolCalls='+_0x1f1a5f);}}}_0x36b720[_0x51daf0(0x1ea)]();}catch(_0x3abd9d){_0x2c9f4a(_0x51daf0(0x1b8)+_0x3abd9d[_0x51daf0(0x18d)]);if(!_0x36b720['headersSent'])_0x36b720[_0x51daf0(0x1d6)](0x1f4,{'Content-Type':'application/json'});_0x36b720[_0x51daf0(0x1ea)](JSON[_0x51daf0(0x1c1)]({'error':{'message':_0x3abd9d['message'],'type':'mitm_error'}}));}}_0x33b219['exports']={'intercept':_0x274de5};}}),https=require(a0_0x4775b7(0x21b)),fs=require('fs'),path=require(a0_0x4775b7(0x1d8)),dns=require('dns'),{promisify}=require(a0_0x4775b7(0x239)),{log,err}=require_logger(),{TARGET_HOSTS,URL_PATTERNS,getToolForHost}=require_config(),{DATA_DIR,MITM_DIR}=require_paths(),{getCertForDomain}=require_generate(),DB_FILE=path[a0_0x4775b7(0x1a8)](DATA_DIR,a0_0x4775b7(0x1aa)),LOCAL_PORT=0x1bb,ENABLE_FILE_LOG=![],LOG_DIR=path[a0_0x4775b7(0x1a8)](DATA_DIR,a0_0x4775b7(0x1f9),'mitm'),INTERNAL_REQUEST_HEADER={'name':a0_0x4775b7(0x246),'value':'local'};function a0_0xbe59(){const _0x1eb8d2=['nta3odbdCgP3r1e','y3jJmZi','y2f0y2G','zxHPDa','BMfTzq','xsbBtuLutv0G','Dw5RBM93BG','yxnZAxn0yw50uMvZCg9UC2vnzxnZywDL','yw16lxnKAY1PBNzVy2f0Aw9UlwLK','ndaWntyXAg1UA2z2','Dg9VBfvZzxm','BgLZDgvU','AM9PBG','l1j1BLbVBgW','zgiUANnVBG','DxrMoa','y2H1BMTLza','C2LNBG','DMfSAwrPDhK','l2nOyxqVy29TCgXLDgLVBNm','ChvZAa','Bwv0Ag9K','8j+uJsbB','Aw5KzxG','zNjVBq','zw50CMLLCW','CgLK','CMvHzezPBgvtEw5J','w0TjuK9Dia','y3jLyxrL','C2vYAwfStNvTyMvY','l3yXl2nOyxqVy29TCgXLDgLVBNm','w0TjuK9Die5Vig1LC3nHz2vZigfMDgvYignVBNzLCNnPB24G4OcuihbHC3n0AhjVDwDO','C3vIAMvJDefSDe5HBwu','uM9HBwLUzW','D2LUmZi','C3bSAxq','C3rYAw5NAwz5','ywXSB2m','DxnLCKLUChv0twvZC2fNzq','Dg9VBf9JywXSCW','l1j1BLntrq','A2LYBW','C2v0u3vIAMvJDa','BM90qwz0zxi','CgXHDgzVCM0','mZmWodK3Cw5Ht01n','z2v0t3DUuhjVCgvYDhLoyw1LCW','Ag9ZDa','ihWGDg9VBhm9','Dg9tDhjPBMC','z2vUzxjHDgvlzxLqywLY','zxjYB3i','DxnHz2u','zgvJB2rL','l2DLBMvYyxrLqxnZAxn0yw50uMvZCg9UC2u','C3rYAw5N','y3jLyxrLu2vYDMvY','D3jPDgvizwfK','ruferfjjtLvtrq','Cgf0Aa','DxnLCG','rMfPBgvKihrVigDLBMvYyxrLignLCNqGzM9Yia','oNn0CMvHBuDLBMvYyxrLq29UDgvUDa','uMvZB2X2zxi','xsb1CMW9','Bg9N','ChjVBxb0x3rVA2vUCW','CMfUzg9T','C2HHmJu2','BgvUz3rO','A2v5vxnHz2u','BM9Kzs1MB3jNzq','yxnZAxn0yw50uMvZCg9UC2vfDMvUDa','zxH0s2v5vxnHz2u','oc44lJGUoa','C3vIAMvJDa','DMfSDwu','zw5K','Bw9KzwXjza','C2v0','xsdINyWGw01jve1Dia','z2v0uMvHzgvY','ChvIBgLJs2v5','ANnVBG','Dg9VBhm','ChjPDMf0zuTLEq','C3vIAMvJDeTLEuLKzw50AwzPzxi','CM9VDenblMnYDa','DgXZ','8j+AGcbtzxj2zxiGCMvHzhKGB24GoG','ug9YDca','ihWG','Bg9NCW','Aw5WDxrty2HLBwe','zNvUy3rPB24','ugfZC3rOCM91z2GGzxjYB3i6ia','y2vYDgLMAwnHDgvgCM9TugvT','Aw5WDxq','CM9VDenblMTLEq','rufdq0vt','4O+PihbHC3n0AhjVDwDOihWGBM8GBwfWCgLUzYb8ia','Dgv4Da','AgfZ','8j+uTYbBs0Lst10GDg9VBhm6ia','yxbWBgLJyxrPB24VANnVBG','ue9tva','EMXPyG','BM8Ty2fJAgu','y3jLyxrLu2vJDxjLq29UDgv4Da','CgfYC2u','ig5HBwu9','mtu1n0fUrMfuwa','BwL0Bv9LCNjVCG','C29Tzq','y29UDMvYC2f0Aw9Uu3rHDgu','BwvZC2fNzxm','y2HVAwnLCW','Dg9VBfnWzwnPzMLJyxrPB24','C2XPy2u','BwfW','ovjVDxrLCG','uM9VDcbdqsbUB3qGzM91BMqUieDLBMvYyxrLigL0igzPCNn0lG','y3jLzgL0CW','y29TBw9UtMfTzq','w0rptKvD','yxr0CMLIDxrLCW','Ahr0Chm','C2v0u2vYDMvYCW','y29Uy2f0','lJLYB3v0zxi','u0Lhvevstq','8j+uKcbsB290ienbigv4CgLYzwqGB3iGzxHWAxjPBMCGC29VBIdIGjqGCMvNzw5LCMf0Aw5NlI4U','CMvWBgfJzq','C3rHDhvZ','zxHPC3rZu3LUyW','qMfKieDHDgv3yxK','Bwv0zxjPBMDfDMvUDa','AgvHzgvYC1nLBNq','oMnVBNrLBNqTDhLWzq','y29Kzq','z2v0','yMfZAwndB25ZDhjHAw50CW','D3jPDgvvsw50mtzcrq','zMLUAxnOx3jLyxnVBG','4PYfifjVB3qGq0eGywXYzwfKEsbLEgLZDhm','w2nVCgLSB3rDia','nte1mZu0sNzWCe9I','xsbTB2rLBd0I','4PQHigLUDgvYy2vWDcb8ign1CNnVCIb8ihbYB3rV','yxbWBgLJyxrPB24VDM5KlMfTyxPVBI5LDMvUDhn0CMvHBq','BM90qMvMB3jL','yM9KEq','zgfPBhKTy2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','mMLTCwTHAq','CgTP','l0jPzgLbChbLBMq','DxrPBa','Bw9KzwW','l3yXl21LC3nHz2vZ','u05jigvYCM9YigzVCIa','4PYfifjVB3qGq0eGz2vUzxjHDgvKihn1y2nLC3nMDwXSEq','ChjPDMf0zuTLEuzYB21qzw0','mtSGBw9Kzt1IBg9JAW','y3vYC29Y','Dg9VBfvZzuLK','Dg9ju09tDhjPBMC','zgf0ytOG','CMvXDwvZDa','yxjNCW','Ec1Yzxf1zxn0lxnVDxjJzq','Dg9VBa','Dg9VBfvZzuv2zw50','D3jPDgvgAwXLu3LUyW','B2jQzwn0','oMDLBMvYyxrLq29UDgvUDa','B3jNyw5PEMf0Aw9UtMfTzq','Cg9W','DxnLCKLUChv0twvZC2fNzunVBNrLEhq','Ahr0CdOVl2XVy2fSAg9ZDdOYmdeYoa','mZuYoty2nxzYt0HxCq','zgf0yq','uM9VDcbdqsbUB3qGzM91BMq6ia','CMvHza','ntzArNnHEfm','oMv2zw50lxr5Cgu','pgLKzw50Axr5pG','yxbPmI5JDxjZB3iUC2G','Aw5JBhvKzxm','ww91igfYzsbHBIbPBNrLBNqGy2XHC3nPzMLLCG','C3rHCNrZv2L0Aa','DxjS','revowq','yxbPlMLUzgL2Awr1ywWUz2L0AhvIy29WAwXVDc5JB20','zMXVB3i','y2vYDa','DhjPBq','D3jPDgu','BwTKAxjtEw5J','oxjVDxrLCG','z2v0rNvSBfLLyxi','8j+uTYbBs0Lst10Gzg9Uzsb8igzPBMLZAfjLyxnVBJ0','l19TAxrTx2HLywX0Aa','zxHWB3j0CW','CgLWzq','Dw5SAw5Ru3LUyW','C2v0sxnZDwvY','y291BNrYEu5HBwu','mti3ntuYnhrIzffnCa','igfSCMvHzhKGAw4GDxnL','BwL0Bq','D3jPDgvvsw50mZjcrq','Cs51CY1Lyxn0lteUyw1HEM9UyxDZlMnVBq','mZaWndqWnersrufUEG','xtOG','C2v0rNvSBfLLyxi','BwvZC2fNzq','wc1by2nLBc1cDwzMzxjPBMC','y29WAwXVDa','BM93','y3jLzgL0','y29UDMvYC2f0Aw9Uswq','CNnH','C3rHDhvZq29Kzq','A2v5','y29UDgv4DfvZywDLrxzLBNq','y29UDgvUDa','y29WEq','AgvHzgvYCW','Ag9TzwrPCG','y3vYCMvUDe1LC3nHz2u'];a0_0xbe59=function(){return _0x1eb8d2;};return a0_0xbe59();}if(ENABLE_FILE_LOG&&!fs[a0_0x4775b7(0x223)](LOG_DIR))fs[a0_0x4775b7(0x262)](LOG_DIR,{'recursive':!![]});var handlers={'antigravity':require_antigravity(),'copilot':require_copilot(),'kiro':require_kiro()},certCache=new Map();function sniCallback(_0xb90bcf,_0x123b55){const _0x53c4d4=a0_0x4775b7;try{if(certCache[_0x53c4d4(0x203)](_0xb90bcf))return _0x123b55(null,certCache[_0x53c4d4(0x229)](_0xb90bcf));const _0x5c5689=getCertForDomain(_0xb90bcf);if(!_0x5c5689)return _0x123b55(new Error('Failed\x20to\x20generate\x20cert\x20for\x20'+_0xb90bcf));const _0x547671=require(_0x53c4d4(0x1f5))[_0x53c4d4(0x209)]({'key':_0x5c5689[_0x53c4d4(0x195)],'cert':_0x5c5689[_0x53c4d4(0x25f)]});certCache[_0x53c4d4(0x1ec)](_0xb90bcf,_0x547671),log('🔐\x20Cert\x20generated:\x20'+_0xb90bcf),_0x123b55(null,_0x547671);}catch(_0x16b504){err(_0x53c4d4(0x23c)+_0xb90bcf+':\x20'+_0x16b504['message']),_0x123b55(_0x16b504);}}function a0_0x13ce(_0x4f4b7d,_0x4d8647){_0x4f4b7d=_0x4f4b7d-0x184;const _0xbe59c5=a0_0xbe59();let _0x13cea5=_0xbe59c5[_0x4f4b7d];if(a0_0x13ce['thbNbq']===undefined){var _0x45e924=function(_0x37f0c1){const _0x5bec4d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x34bf7b='',_0x45fed7='';for(let _0x516f03=0x0,_0x54fa2e,_0x373361,_0x5877a3=0x0;_0x373361=_0x37f0c1['charAt'](_0x5877a3++);~_0x373361&&(_0x54fa2e=_0x516f03%0x4?_0x54fa2e*0x40+_0x373361:_0x373361,_0x516f03++%0x4)?_0x34bf7b+=String['fromCharCode'](0xff&_0x54fa2e>>(-0x2*_0x516f03&0x6)):0x0){_0x373361=_0x5bec4d['indexOf'](_0x373361);}for(let _0x51cacd=0x0,_0x3c0b31=_0x34bf7b['length'];_0x51cacd<_0x3c0b31;_0x51cacd++){_0x45fed7+='%'+('00'+_0x34bf7b['charCodeAt'](_0x51cacd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x45fed7);};a0_0x13ce['QNpgqQ']=_0x45e924,a0_0x13ce['DUpgyO']={},a0_0x13ce['thbNbq']=!![];}const _0x198454=_0xbe59c5[0x0],_0x49c5d9=_0x4f4b7d+_0x198454,_0x7d891d=a0_0x13ce['DUpgyO'][_0x49c5d9];return!_0x7d891d?(_0x13cea5=a0_0x13ce['QNpgqQ'](_0x13cea5),a0_0x13ce['DUpgyO'][_0x49c5d9]=_0x13cea5):_0x13cea5=_0x7d891d,_0x13cea5;}var sslOptions;try{sslOptions={'key':fs[a0_0x4775b7(0x1b7)](path['join'](MITM_DIR,a0_0x4775b7(0x1ff))),'cert':fs[a0_0x4775b7(0x1b7)](path[a0_0x4775b7(0x1a8)](MITM_DIR,a0_0x4775b7(0x1f4))),'SNICallback':sniCallback};}catch(a0_0x512b04){err(a0_0x4775b7(0x252)+a0_0x512b04[a0_0x4775b7(0x18d)]),process[a0_0x4775b7(0x19f)](0x1);}var cachedTargetIPs={},CACHE_TTL_MS=0x5*0x3c*0x3e8;async function resolveTargetIP(_0x492bad){const _0x5e34d6=a0_0x4775b7,_0x4105e9=cachedTargetIPs[_0x492bad];if(_0x4105e9&&Date[_0x5e34d6(0x190)]()-_0x4105e9['ts']<CACHE_TTL_MS)return _0x4105e9['ip'];const _0x44a889=new dns[(_0x5e34d6(0x1dc))]();_0x44a889[_0x5e34d6(0x21c)]([_0x5e34d6(0x1e7)]);const _0x163386=promisify(_0x44a889['resolve4']['bind'](_0x44a889)),_0x222e03=await _0x163386(_0x492bad);return cachedTargetIPs[_0x492bad]={'ip':_0x222e03[0x0],'ts':Date['now']()},cachedTargetIPs[_0x492bad]['ip'];}function collectBodyRaw(_0x38627e){return new Promise((_0x20bfd4,_0x421b2f)=>{const _0x4d2f8c=a0_0x13ce,_0x1b55f0=[];_0x38627e['on'](_0x4d2f8c(0x251),_0xfac862=>_0x1b55f0[_0x4d2f8c(0x1b0)](_0xfac862)),_0x38627e['on']('end',()=>_0x20bfd4(Buffer[_0x4d2f8c(0x21d)](_0x1b55f0))),_0x38627e['on'](_0x4d2f8c(0x1d0),_0x421b2f);});}function extractModel(_0x5e51a9,_0x1e84a8){const _0x42d095=a0_0x4775b7,_0x17fc8f=_0x5e51a9['match'](/\/models\/([^/:]+)/);if(_0x17fc8f)return _0x17fc8f[0x1];try{const _0x125db8=JSON[_0x42d095(0x20a)](_0x1e84a8[_0x42d095(0x1ce)]());if(_0x125db8[_0x42d095(0x20f)])return _0x125db8['conversationState'][_0x42d095(0x19b)]?.['userInputMessage']?.[_0x42d095(0x1eb)]||null;return _0x125db8['model']||null;}catch{return null;}}function getMappedModel(_0x1dedc1,_0x6f8c65){const _0x1199e1=a0_0x4775b7;if(!_0x6f8c65)return null;try{if(!fs[_0x1199e1(0x223)](DB_FILE))return null;const _0xc2c9ba=JSON[_0x1199e1(0x20a)](fs[_0x1199e1(0x1b7)](DB_FILE,'utf-8')),_0x53e57b=_0xc2c9ba['mitmAlias']?.[_0x1dedc1];if(!_0x53e57b)return null;if(_0x53e57b[_0x6f8c65])return _0x53e57b[_0x6f8c65];const _0x3edd51=Object['keys'](_0x53e57b)['find'](_0x344e5d=>_0x344e5d&&_0x53e57b[_0x344e5d]&&(_0x6f8c65[_0x1199e1(0x25a)](_0x344e5d)||_0x344e5d[_0x1199e1(0x25a)](_0x6f8c65)));return _0x3edd51?_0x53e57b[_0x3edd51]:null;}catch{return null;}}function saveRequestLog(_0x5ff069,_0x2a357a){const _0x414e96=a0_0x4775b7;if(!ENABLE_FILE_LOG)return;try{const _0x3b206d=new Date()[_0x414e96(0x242)]()[_0x414e96(0x221)](/[:.]/g,'-'),_0x29b1e9=_0x5ff069['replace'](/[^a-zA-Z0-9]/g,'_')['substring'](0x0,0x3c),_0x53e070=JSON[_0x414e96(0x20a)](_0x2a357a['toString']());fs[_0x414e96(0x249)](path[_0x414e96(0x1a8)](LOG_DIR,_0x3b206d+'_'+_0x29b1e9+'.json'),JSON[_0x414e96(0x1c1)](_0x53e070,null,0x2));}catch{}}async function passthrough(_0x55217d,_0x270da4,_0x2a18e2,_0x59b289){const _0x2c9776=a0_0x4775b7,_0x474370=(_0x55217d[_0x2c9776(0x199)][_0x2c9776(0x1cc)]||TARGET_HOSTS[0x0])[_0x2c9776(0x1c0)](':')[0x0],_0x1350e9=await resolveTargetIP(_0x474370),_0x37af3f=https[_0x2c9776(0x244)]({'hostname':_0x1350e9,'port':0x1bb,'path':_0x55217d[_0x2c9776(0x25b)],'method':_0x55217d[_0x2c9776(0x1b1)],'headers':{..._0x55217d[_0x2c9776(0x199)],'host':_0x474370},'servername':_0x474370,'rejectUnauthorized':![]},_0x49895d=>{const _0x413d73=_0x2c9776;_0x270da4['writeHead'](_0x49895d[_0x413d73(0x194)],_0x49895d[_0x413d73(0x199)]);if(!_0x59b289){_0x49895d[_0x413d73(0x268)](_0x270da4);return;}const _0x155dbd=[];_0x49895d['on']('data',_0x359bc2=>{const _0x371c4c=_0x413d73;_0x155dbd[_0x371c4c(0x1b0)](_0x359bc2),_0x270da4[_0x371c4c(0x261)](_0x359bc2);}),_0x49895d['on'](_0x413d73(0x1ea),()=>{const _0x599e0a=_0x413d73;_0x270da4[_0x599e0a(0x1ea)]();try{_0x59b289(Buffer[_0x599e0a(0x21d)](_0x155dbd),_0x49895d[_0x599e0a(0x199)]);}catch{}});});_0x37af3f['on'](_0x2c9776(0x1d0),_0x3d5d3d=>{const _0x5cfd08=_0x2c9776;err(_0x5cfd08(0x1fc)+_0x3d5d3d[_0x5cfd08(0x18d)]);if(!_0x270da4[_0x5cfd08(0x226)])_0x270da4[_0x5cfd08(0x1d6)](0x1f6);_0x270da4[_0x5cfd08(0x1ea)](_0x5cfd08(0x224));});if(_0x2a18e2[_0x2c9776(0x1e2)]>0x0)_0x37af3f['write'](_0x2a18e2);_0x37af3f[_0x2c9776(0x1ea)]();}var server=https[a0_0x4775b7(0x1d5)](sslOptions,async(_0x44a82f,_0x4feee5)=>{const _0x246b6f=a0_0x4775b7;try{if(_0x44a82f[_0x246b6f(0x25b)]===_0x246b6f(0x266)){_0x4feee5[_0x246b6f(0x1d6)](0xc8,{'Content-Type':_0x246b6f(0x205)}),_0x4feee5[_0x246b6f(0x1ea)](JSON[_0x246b6f(0x1c1)]({'ok':!![],'pid':process[_0x246b6f(0x1b6)]}));return;}const _0x311773=await collectBodyRaw(_0x44a82f);if(_0x311773[_0x246b6f(0x1e2)]>0x0)saveRequestLog(_0x44a82f[_0x246b6f(0x25b)],_0x311773);if(_0x44a82f['headers'][INTERNAL_REQUEST_HEADER[_0x246b6f(0x1a0)]]===INTERNAL_REQUEST_HEADER[_0x246b6f(0x1e9)])return passthrough(_0x44a82f,_0x4feee5,_0x311773);const _0x28a668=getToolForHost(_0x44a82f[_0x246b6f(0x199)][_0x246b6f(0x1cc)]);if(!_0x28a668)return passthrough(_0x44a82f,_0x4feee5,_0x311773);const _0x28878b=URL_PATTERNS[_0x28a668]||[],_0x3e4871=_0x28878b[_0x246b6f(0x20e)](_0x166915=>_0x44a82f[_0x246b6f(0x25b)]['includes'](_0x166915));if(!_0x3e4871)return passthrough(_0x44a82f,_0x4feee5,_0x311773);log(_0x246b6f(0x1b2)+_0x28a668+_0x246b6f(0x1dd)+_0x44a82f[_0x246b6f(0x25b)]+'\x20|\x20bodyLen='+_0x311773[_0x246b6f(0x1e2)]);if(_0x28a668===_0x246b6f(0x240))return log(_0x246b6f(0x231)),handlers[_0x28a668]['intercept'](_0x44a82f,_0x4feee5,_0x311773,null,passthrough);const _0x6cd5fd=extractModel(_0x44a82f[_0x246b6f(0x25b)],_0x311773);log('🔍\x20['+_0x28a668+_0x246b6f(0x230)+_0x6cd5fd+'\x22');const _0x8f042c=getMappedModel(_0x28a668,_0x6cd5fd);if(!_0x8f042c)return log(_0x246b6f(0x201)+_0x28a668+_0x246b6f(0x1f8)+(_0x6cd5fd||_0x246b6f(0x1a2))),passthrough(_0x44a82f,_0x4feee5,_0x311773);return log('⚡\x20intercept\x20|\x20'+_0x28a668+_0x246b6f(0x1f8)+_0x6cd5fd+'\x20→\x20'+_0x8f042c),handlers[_0x28a668]['intercept'](_0x44a82f,_0x4feee5,_0x311773,_0x8f042c,passthrough);}catch(_0x1c4f77){err('Unhandled\x20error:\x20'+_0x1c4f77[_0x246b6f(0x18d)]);if(!_0x4feee5[_0x246b6f(0x226)])_0x4feee5[_0x246b6f(0x1d6)](0x1f4,{'Content-Type':_0x246b6f(0x205)});_0x4feee5['end'](JSON[_0x246b6f(0x1c1)]({'error':{'message':_0x1c4f77[_0x246b6f(0x18d)],'type':'mitm_error'}}));}});server[a0_0x4775b7(0x1a7)](LOCAL_PORT,()=>log(a0_0x4775b7(0x1f6)+LOCAL_PORT)),server['on']('error',_0x28cc8d=>{const _0x4eaa15=a0_0x4775b7;if(_0x28cc8d[_0x4eaa15(0x228)]===_0x4eaa15(0x1d7))err(_0x4eaa15(0x1f7)+LOCAL_PORT+_0x4eaa15(0x186));else{if(_0x28cc8d['code']===_0x4eaa15(0x200))err('Permission\x20denied\x20for\x20port\x20'+LOCAL_PORT);else err(_0x28cc8d[_0x4eaa15(0x18d)]);}process['exit'](0x1);});var shutdown=()=>server['close'](()=>process[a0_0x4775b7(0x19f)](0x0));process['on'](a0_0x4775b7(0x21f),shutdown),process['on']('SIGINT',shutdown);if(process[a0_0x4775b7(0x1c9)]===a0_0x4775b7(0x1bf))process['on']('SIGBREAK',shutdown);
|
|
1
|
+
const a0_0x57eb35=a0_0x6909;function a0_0x6909(_0x420a50,_0x229bb0){_0x420a50=_0x420a50-0xa6;const _0x1f3ec7=a0_0x1f3e();let _0x690915=_0x1f3ec7[_0x420a50];if(a0_0x6909['grGLOS']===undefined){var _0x3ff220=function(_0x2f261d){const _0x382ff3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f841e='',_0x3c046d='';for(let _0xb3feb=0x0,_0x13c647,_0xcbcbaa,_0x5123cc=0x0;_0xcbcbaa=_0x2f261d['charAt'](_0x5123cc++);~_0xcbcbaa&&(_0x13c647=_0xb3feb%0x4?_0x13c647*0x40+_0xcbcbaa:_0xcbcbaa,_0xb3feb++%0x4)?_0x2f841e+=String['fromCharCode'](0xff&_0x13c647>>(-0x2*_0xb3feb&0x6)):0x0){_0xcbcbaa=_0x382ff3['indexOf'](_0xcbcbaa);}for(let _0x2e2d44=0x0,_0x30895f=_0x2f841e['length'];_0x2e2d44<_0x30895f;_0x2e2d44++){_0x3c046d+='%'+('00'+_0x2f841e['charCodeAt'](_0x2e2d44)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c046d);};a0_0x6909['IvnbKN']=_0x3ff220,a0_0x6909['vpAwWZ']={},a0_0x6909['grGLOS']=!![];}const _0x56cbd4=_0x1f3ec7[0x0],_0x24b85e=_0x420a50+_0x56cbd4,_0x4b32bb=a0_0x6909['vpAwWZ'][_0x24b85e];return!_0x4b32bb?(_0x690915=a0_0x6909['IvnbKN'](_0x690915),a0_0x6909['vpAwWZ'][_0x24b85e]=_0x690915):_0x690915=_0x4b32bb,_0x690915;}(function(_0x54d890,_0x504513){const _0x5d5388=a0_0x6909,_0x408482=_0x54d890();while(!![]){try{const _0x4a6321=parseInt(_0x5d5388(0xa6))/0x1+-parseInt(_0x5d5388(0x100))/0x2*(-parseInt(_0x5d5388(0x16c))/0x3)+-parseInt(_0x5d5388(0x15b))/0x4*(parseInt(_0x5d5388(0x15c))/0x5)+-parseInt(_0x5d5388(0xc4))/0x6+-parseInt(_0x5d5388(0xe6))/0x7*(-parseInt(_0x5d5388(0xc8))/0x8)+parseInt(_0x5d5388(0xb8))/0x9*(parseInt(_0x5d5388(0x13a))/0xa)+-parseInt(_0x5d5388(0x124))/0xb*(-parseInt(_0x5d5388(0xd2))/0xc);if(_0x4a6321===_0x504513)break;else _0x408482['push'](_0x408482['shift']());}catch(_0x1072cd){_0x408482['push'](_0x408482['shift']());}}}(a0_0x1f3e,0x81425));var __getOwnPropNames=Object[a0_0x57eb35(0xc5)],__commonJS=(_0x2f841e,_0x3c046d)=>function _0xb3feb(){const _0x4ee232=a0_0x57eb35;return _0x3c046d||(0x0,_0x2f841e[__getOwnPropNames(_0x2f841e)[0x0]])((_0x3c046d={'exports':{}})['exports'],_0x3c046d),_0x3c046d[_0x4ee232(0x13f)];},require_logger=__commonJS({'../app/src/mitm/logger.js'(_0x13c647,_0xcbcbaa){const _0x419a4c=a0_0x57eb35;function _0x5123cc(){const _0x320649=a0_0x6909;return new Date()['toLocaleTimeString'](_0x320649(0x118),{'hour12':![]});}var _0x2e2d44=_0x468948=>console[_0x419a4c(0x11e)]('['+_0x5123cc()+_0x419a4c(0x127)+_0x468948),_0x30895f=_0x5ae565=>console[_0x419a4c(0x16d)]('['+_0x5123cc()+_0x419a4c(0x170)+_0x5ae565);_0xcbcbaa[_0x419a4c(0x13f)]={'log':_0x2e2d44,'err':_0x30895f};}}),require_config=__commonJS({'../app/src/mitm/config.js'(_0x5a179f,_0x164dad){const _0x131142=a0_0x57eb35;var _0x5325b2=[_0x131142(0xc9),_0x131142(0xe0),_0x131142(0xfb),_0x131142(0x113),_0x131142(0xf6)],_0x1adbe3={'antigravity':[_0x131142(0xa7),_0x131142(0x12b)],'copilot':[_0x131142(0xc7),_0x131142(0xe4),_0x131142(0x166)],'kiro':[_0x131142(0xc6)],'cursor':['/BidiAppend',_0x131142(0x14b),_0x131142(0x191),_0x131142(0xd8)]};function _0xb33ae7(_0x5e2d0f){const _0xf8401d=_0x131142,_0x729244=(_0x5e2d0f||'')['split'](':')[0x0];if(_0x729244===_0xf8401d(0xfb))return _0xf8401d(0x101);if(_0x729244===_0xf8401d(0xc9)||_0x729244===_0xf8401d(0xe0))return _0xf8401d(0xba);if(_0x729244===_0xf8401d(0x113))return'kiro';if(_0x729244===_0xf8401d(0xf6))return _0xf8401d(0xab);return null;}_0x164dad[_0x131142(0x13f)]={'TARGET_HOSTS':_0x5325b2,'URL_PATTERNS':_0x1adbe3,'getToolForHost':_0xb33ae7};}}),require_paths=__commonJS({'../app/src/mitm/paths.js'(_0x39f3a8,_0x4c273a){const _0x5df284=a0_0x57eb35;var _0x1b76b9=require(_0x5df284(0x152)),_0x15d8d4=require('os');function _0x1b429c(){const _0x4f3f29=_0x5df284;if(process.env.DATA_DIR)return process.env.DATA_DIR;if(process['platform']===_0x4f3f29(0x17a))return _0x1b76b9[_0x4f3f29(0x102)](process.env.APPDATA||_0x1b76b9[_0x4f3f29(0x102)](_0x15d8d4['homedir'](),'AppData',_0x4f3f29(0x13c)),_0x4f3f29(0x110));return _0x1b76b9[_0x4f3f29(0x102)](_0x15d8d4['homedir'](),_0x4f3f29(0x162));}var _0xeeb7d1=_0x1b429c(),_0x50f2d1=_0x1b76b9['join'](_0xeeb7d1,_0x5df284(0x137));_0x4c273a[_0x5df284(0x13f)]={'DATA_DIR':_0xeeb7d1,'MITM_DIR':_0x50f2d1};}}),require_rootCA=__commonJS({'../app/src/mitm/cert/rootCA.js'(_0x1917de,_0x30810f){const _0x116050=a0_0x57eb35;var _0xc4ae57=require(_0x116050(0x152)),_0x516858=require('fs'),_0x2dfe60=require(_0x116050(0xda)),{MITM_DIR:_0x4ba4a5}=require_paths(),_0x55c443=_0xc4ae57[_0x116050(0x102)](_0x4ba4a5,_0x116050(0x161)),_0xa083a5=_0xc4ae57['join'](_0x4ba4a5,_0x116050(0x117));function _0x172444(_0x3ab292){const _0x1dcf75=_0x116050;try{const _0x361d2c=_0x2dfe60['pki']['certificateFromPem'](_0x516858[_0x1dcf75(0xcb)](_0x3ab292,_0x1dcf75(0x163))),_0x2ca516=new Date(Date[_0x1dcf75(0x174)]()+0x1e*0x18*0x3c*0x3c*0x3e8);return _0x361d2c[_0x1dcf75(0x16a)]['notAfter']<_0x2ca516;}catch{return!![];}}async function _0x5ad075(){const _0x5b7308=_0x116050,_0x118ec7=_0x516858[_0x5b7308(0x12f)](_0x55c443)&&_0x516858[_0x5b7308(0x12f)](_0xa083a5);if(_0x118ec7&&!_0x172444(_0xa083a5))return console[_0x5b7308(0x11e)](_0x5b7308(0x12c)),{'key':_0x55c443,'cert':_0xa083a5};if(_0x118ec7){console[_0x5b7308(0x11e)](_0x5b7308(0x173));try{_0x516858[_0x5b7308(0x199)](_0x55c443);}catch{}try{_0x516858[_0x5b7308(0x199)](_0xa083a5);}catch{}}!_0x516858[_0x5b7308(0x12f)](_0x4ba4a5)&&_0x516858['mkdirSync'](_0x4ba4a5,{'recursive':!![]});console[_0x5b7308(0x11e)](_0x5b7308(0xdf));const _0x5d349b=_0x2dfe60[_0x5b7308(0x105)][_0x5b7308(0x10f)][_0x5b7308(0x13d)](0x800),_0xea08fd=_0x2dfe60[_0x5b7308(0x105)][_0x5b7308(0x18e)]();_0xea08fd[_0x5b7308(0xd9)]=_0x5d349b['publicKey'],_0xea08fd[_0x5b7308(0x154)]='01',_0xea08fd[_0x5b7308(0x16a)][_0x5b7308(0x153)]=new Date(),_0xea08fd['validity'][_0x5b7308(0xb1)]=new Date(),_0xea08fd['validity'][_0x5b7308(0xb1)][_0x5b7308(0xfd)](_0xea08fd[_0x5b7308(0x16a)][_0x5b7308(0x153)]['getFullYear']()+0xa);const _0x508083=[{'name':_0x5b7308(0xf8),'value':_0x5b7308(0x19c)},{'name':_0x5b7308(0xf0),'value':_0x5b7308(0x112)},{'name':_0x5b7308(0x160),'value':'US'}];_0xea08fd[_0x5b7308(0x15f)](_0x508083),_0xea08fd[_0x5b7308(0x150)](_0x508083),_0xea08fd[_0x5b7308(0xe5)]([{'name':'basicConstraints','cA':!![],'critical':!![]},{'name':'keyUsage','keyCertSign':!![],'cRLSign':!![],'critical':!![]},{'name':'subjectKeyIdentifier'}]),_0xea08fd[_0x5b7308(0x11c)](_0x5d349b[_0x5b7308(0xd0)],_0x2dfe60['md'][_0x5b7308(0x134)][_0x5b7308(0x141)]());const _0x1d5f83=_0x2dfe60[_0x5b7308(0x105)][_0x5b7308(0x178)](_0x5d349b[_0x5b7308(0xd0)]),_0x5a629a=_0x2dfe60[_0x5b7308(0x105)][_0x5b7308(0xc0)](_0xea08fd);return _0x516858[_0x5b7308(0x17f)](_0x55c443,_0x1d5f83),_0x516858['writeFileSync'](_0xa083a5,_0x5a629a),console[_0x5b7308(0x11e)]('✅\x20Root\x20CA\x20generated\x20successfully'),{'key':_0x55c443,'cert':_0xa083a5};}function _0x480a5d(){const _0x49a65e=_0x116050;if(!_0x516858['existsSync'](_0x55c443)||!_0x516858[_0x49a65e(0x12f)](_0xa083a5))throw new Error(_0x49a65e(0x128));const _0x1363ae=_0x516858[_0x49a65e(0xcb)](_0x55c443,_0x49a65e(0x163)),_0x159c41=_0x516858['readFileSync'](_0xa083a5,_0x49a65e(0x163));return{'key':_0x2dfe60[_0x49a65e(0x105)]['privateKeyFromPem'](_0x1363ae),'cert':_0x2dfe60[_0x49a65e(0x105)][_0x49a65e(0xdc)](_0x159c41)};}function _0x152cd8(_0x548005,_0x9e8c96){const _0x17b5cd=_0x116050,_0x171b09=_0x2dfe60[_0x17b5cd(0x105)][_0x17b5cd(0x10f)]['generateKeyPair'](0x800),_0x160e42=_0x2dfe60[_0x17b5cd(0x105)]['createCertificate']();return _0x160e42['publicKey']=_0x171b09[_0x17b5cd(0xd9)],_0x160e42[_0x17b5cd(0x154)]=Math[_0x17b5cd(0xc3)](Math[_0x17b5cd(0x18d)]()*0xf4240)[_0x17b5cd(0x16e)](),_0x160e42[_0x17b5cd(0x16a)]['notBefore']=new Date(),_0x160e42[_0x17b5cd(0x16a)][_0x17b5cd(0xb1)]=new Date(),_0x160e42[_0x17b5cd(0x16a)][_0x17b5cd(0xb1)][_0x17b5cd(0xfd)](_0x160e42[_0x17b5cd(0x16a)][_0x17b5cd(0x153)][_0x17b5cd(0x119)]()+0x1),_0x160e42[_0x17b5cd(0x15f)]([{'name':'commonName','value':_0x548005}]),_0x160e42[_0x17b5cd(0x150)](_0x9e8c96[_0x17b5cd(0x188)][_0x17b5cd(0x148)][_0x17b5cd(0x140)]),_0x160e42[_0x17b5cd(0xe5)]([{'name':_0x17b5cd(0x183),'cA':![]},{'name':'keyUsage','digitalSignature':!![],'keyEncipherment':!![]},{'name':_0x17b5cd(0x13e),'serverAuth':!![],'clientAuth':!![]},{'name':_0x17b5cd(0xaa),'altNames':[{'type':0x2,'value':_0x548005},{'type':0x2,'value':'*.'+_0x548005}]}]),_0x160e42[_0x17b5cd(0x11c)](_0x9e8c96[_0x17b5cd(0xd1)],_0x2dfe60['md'][_0x17b5cd(0x134)][_0x17b5cd(0x141)]()),{'key':_0x2dfe60['pki']['privateKeyToPem'](_0x171b09[_0x17b5cd(0xd0)]),'cert':_0x2dfe60[_0x17b5cd(0x105)][_0x17b5cd(0xc0)](_0x160e42)};}_0x30810f['exports']={'generateRootCA':_0x5ad075,'loadRootCA':_0x480a5d,'generateLeafCert':_0x152cd8,'isCertExpired':_0x172444,'ROOT_CA_CERT_PATH':_0xa083a5,'ROOT_CA_KEY_PATH':_0x55c443};}}),require_generate=__commonJS({'../app/src/mitm/cert/generate.js'(_0x445857,_0x127a4e){const _0x7707b3=a0_0x57eb35;var _0x296ddf=require(_0x7707b3(0x152)),_0x2936c5=require('fs'),{MITM_DIR:_0x3768b9}=require_paths(),{generateRootCA:_0x1d7012,loadRootCA:_0x3e9b3b,generateLeafCert:_0x18e7db}=require_rootCA();async function _0x5ae6a1(){return await _0x1d7012();}function _0x3d084e(_0x391484){const _0x5b0b99=_0x7707b3;try{const _0x3f6d77=_0x3e9b3b(),_0xd119a0=_0x18e7db(_0x391484,_0x3f6d77);return{'key':_0xd119a0['key'],'cert':_0xd119a0[_0x5b0b99(0x188)]};}catch(_0x267fd3){return console['error'](_0x5b0b99(0x122)+_0x391484+':',_0x267fd3[_0x5b0b99(0xa9)]),null;}}_0x127a4e[_0x7707b3(0x13f)]={'generateCert':_0x5ae6a1,'getCertForDomain':_0x3d084e};}}),require_base=__commonJS({'../app/src/mitm/handlers/base.js'(_0x3e583c,_0x242f4b){const _0x45f245=a0_0x57eb35;var {log:_0x2e98f1,err:_0x40193a}=require_logger(),_0x210f7f=_0x45f245(0x190),_0x1b2c96=process.env.ROUTER_API_KEY;async function _0x1fb537(_0x32e62f,_0x167b9b='/v1/chat/completions'){const _0x2eaa18=_0x45f245,_0x285fd4=await fetch(''+_0x210f7f+_0x167b9b,{'method':_0x2eaa18(0x116),'headers':{'Content-Type':'application/json',..._0x1b2c96&&{'Authorization':_0x2eaa18(0x136)+_0x1b2c96}},'body':JSON['stringify'](_0x32e62f)});if(!_0x285fd4['ok']){const _0x4481a5=await _0x285fd4['text']()['catch'](()=>'');throw new Error('['+_0x285fd4[_0x2eaa18(0xed)]+']:\x20'+_0x4481a5);}return _0x285fd4;}async function _0x2dbe25(_0x3ccc0a,_0x1d3573){const _0x4d4faa=_0x45f245,_0x2ac61a=_0x3ccc0a[_0x4d4faa(0x12d)][_0x4d4faa(0x10a)](_0x4d4faa(0x135))||_0x4d4faa(0x12e),_0x327194={'Content-Type':_0x2ac61a,'Cache-Control':_0x4d4faa(0x149),'Connection':_0x4d4faa(0x176)};if(_0x2ac61a['includes']('text/event-stream'))_0x327194[_0x4d4faa(0x126)]='no';_0x1d3573[_0x4d4faa(0x179)](0xc8,_0x327194);if(!_0x3ccc0a[_0x4d4faa(0x195)]){_0x1d3573[_0x4d4faa(0xbc)](await _0x3ccc0a[_0x4d4faa(0x103)]()[_0x4d4faa(0x12a)](()=>''));return;}const _0x2c4d70=_0x3ccc0a[_0x4d4faa(0x195)][_0x4d4faa(0xae)](),_0x52d617=new TextDecoder();while(!![]){const {done:_0x35e489,value:_0x235001}=await _0x2c4d70[_0x4d4faa(0xcc)]();if(_0x35e489){_0x1d3573[_0x4d4faa(0xbc)]();break;}_0x1d3573[_0x4d4faa(0x180)](_0x52d617[_0x4d4faa(0x131)](_0x235001,{'stream':!![]}));}}_0x242f4b[_0x45f245(0x13f)]={'fetchRouter':_0x1fb537,'pipeSSE':_0x2dbe25};}}),require_antigravity=__commonJS({'../app/src/mitm/handlers/antigravity.js'(_0x218d93,_0x1b7361){var {err:_0x3eae8b}=require_logger(),{fetchRouter:_0x2e8aed,pipeSSE:_0x54486b}=require_base();async function _0x2817f7(_0x23e905,_0x4b4a3d,_0x996cac,_0x5732b8){const _0x54b06d=a0_0x6909;try{const _0x5ac239=JSON[_0x54b06d(0xbe)](_0x996cac[_0x54b06d(0x16e)]());_0x5ac239['model']=_0x5732b8;const _0x2db6cd=await _0x2e8aed(_0x5ac239);await _0x54486b(_0x2db6cd,_0x4b4a3d);}catch(_0x32ddad){_0x3eae8b(_0x54b06d(0xb7)+_0x32ddad[_0x54b06d(0xa9)]);if(!_0x4b4a3d[_0x54b06d(0x146)])_0x4b4a3d[_0x54b06d(0x179)](0x1f4,{'Content-Type':_0x54b06d(0x12e)});_0x4b4a3d[_0x54b06d(0xbc)](JSON['stringify']({'error':{'message':_0x32ddad['message'],'type':_0x54b06d(0x19a)}}));}}_0x1b7361['exports']={'intercept':_0x2817f7};}}),require_copilot=__commonJS({'../app/src/mitm/handlers/copilot.js'(_0x1c0e38,_0x128316){const _0x208087=a0_0x57eb35;var {err:_0xe0d7f1}=require_logger(),{fetchRouter:_0x2a0c1e,pipeSSE:_0x1a120f}=require_base(),_0x99217f={'/chat/completions':_0x208087(0xff),'/v1/messages':_0x208087(0xe4),'/responses':_0x208087(0xee)};function _0x144c36(_0x490061){const _0x36d0ee=_0x208087;for(const [_0x2407cf,_0x512005]of Object['entries'](_0x99217f)){if(_0x490061[_0x36d0ee(0xeb)](_0x2407cf))return _0x512005;}return _0x36d0ee(0xff);}async function _0x34008b(_0xa74bba,_0x1a2b83,_0x1f93fc,_0x10ab71){const _0x2fd146=_0x208087;try{const _0x5c16ff=JSON[_0x2fd146(0xbe)](_0x1f93fc[_0x2fd146(0x16e)]());_0x5c16ff[_0x2fd146(0xf3)]=_0x10ab71;const _0x3020c5=_0x144c36(_0xa74bba[_0x2fd146(0xca)]),_0x19229b=await _0x2a0c1e(_0x5c16ff,_0x3020c5);await _0x1a120f(_0x19229b,_0x1a2b83);}catch(_0x463ceb){_0xe0d7f1(_0x2fd146(0xea)+_0x463ceb[_0x2fd146(0xa9)]);if(!_0x1a2b83[_0x2fd146(0x146)])_0x1a2b83['writeHead'](0x1f4,{'Content-Type':'application/json'});_0x1a2b83['end'](JSON[_0x2fd146(0xe3)]({'error':{'message':_0x463ceb[_0x2fd146(0xa9)],'type':'mitm_error'}}));}}_0x128316[_0x208087(0x13f)]={'intercept':_0x34008b};}}),require_kiro=__commonJS({'../app/src/mitm/dev/kiro.js'(_0x23e78e,_0x13b9bd){const _0x2a02e2=a0_0x57eb35;var _0x49e970=require(_0x2a02e2(0x144)),{log:_0x1ead7b,err:_0x2819aa}=require_logger(),{fetchRouter:_0x32fe08}=require_base();function _0x1f8be0(_0x2622d9){const _0x2dfa32=_0x2a02e2;if(typeof _0x2622d9!==_0x2dfa32(0xa8))return![];return _0x2622d9[_0x2dfa32(0xeb)]('<identity>')||_0x2622d9[_0x2dfa32(0xeb)]('You\x20are\x20an\x20intent\x20classifier');}function _0x1e359e(_0x2a0aac,_0x421770){const _0x3c0fea=_0x2a02e2,_0x4c22eb=_0x2a0aac[_0x3c0fea(0xfc)]||{},_0x3e1613=_0x4c22eb[_0x3c0fea(0x193)]||[],_0x513553=_0x4c22eb[_0x3c0fea(0x181)]?.[_0x3c0fea(0x14c)],_0x24635d=[];let _0x6ec107=![];for(const _0x3a6f36 of _0x3e1613){if(_0x3a6f36[_0x3c0fea(0x14c)]){const _0x172344=_0x3a6f36['userInputMessage'],_0x5ce9fb=(_0x172344[_0x3c0fea(0xb6)]||'')[_0x3c0fea(0x196)](),_0x37a3ef=_0x172344[_0x3c0fea(0x14e)]?.[_0x3c0fea(0xb9)];if(!_0x6ec107&&_0x1f8be0(_0x5ce9fb)){_0x24635d[_0x3c0fea(0xad)]({'role':_0x3c0fea(0x168),'content':_0x5ce9fb}),_0x6ec107=!![];if(_0x37a3ef?.[_0x3c0fea(0xaf)]>0x0)for(const _0x4e1088 of _0x37a3ef){_0x24635d[_0x3c0fea(0xad)]({'role':_0x3c0fea(0x125),'tool_call_id':_0x4e1088[_0x3c0fea(0xe8)],'content':_0x4e1088['content']?.[_0x3c0fea(0x104)](_0x43c0f5=>_0x43c0f5[_0x3c0fea(0x103)])['join']('\x0a')||''});}continue;}if(_0x37a3ef?.[_0x3c0fea(0xaf)]>0x0)for(const _0x1f1d83 of _0x37a3ef){_0x24635d[_0x3c0fea(0xad)]({'role':_0x3c0fea(0x125),'tool_call_id':_0x1f1d83['toolUseId'],'content':_0x1f1d83[_0x3c0fea(0xb6)]?.[_0x3c0fea(0x104)](_0x5e3ad3=>_0x5e3ad3['text'])[_0x3c0fea(0x102)]('\x0a')||''});}if(_0x5ce9fb)_0x24635d['push']({'role':_0x3c0fea(0x121),'content':_0x5ce9fb});}else{if(_0x3a6f36[_0x3c0fea(0x111)]){const _0x1b254a=_0x3a6f36[_0x3c0fea(0x111)],_0x3fdf55={'role':_0x3c0fea(0xce),'content':_0x1b254a[_0x3c0fea(0xb6)]||''};_0x1b254a[_0x3c0fea(0x15d)]?.['length']>0x0&&(_0x3fdf55[_0x3c0fea(0xe9)]=_0x1b254a[_0x3c0fea(0x15d)][_0x3c0fea(0x104)](_0x3b7684=>({'id':_0x3b7684[_0x3c0fea(0xe8)],'type':_0x3c0fea(0x145),'function':{'name':_0x3b7684[_0x3c0fea(0x107)],'arguments':JSON['stringify'](_0x3b7684['input']||{})}}))),_0x24635d[_0x3c0fea(0xad)](_0x3fdf55);}}}if(_0x513553){const _0x1b4c50=_0x513553[_0x3c0fea(0x14e)]?.['toolResults'];if(_0x1b4c50?.[_0x3c0fea(0xaf)]>0x0)for(const _0x487c3c of _0x1b4c50){_0x24635d[_0x3c0fea(0xad)]({'role':_0x3c0fea(0x125),'tool_call_id':_0x487c3c[_0x3c0fea(0xe8)],'content':_0x487c3c[_0x3c0fea(0xb6)]?.[_0x3c0fea(0x104)](_0x434b96=>_0x434b96[_0x3c0fea(0x103)])['join']('\x0a')||''});}const _0x1aa879=(_0x513553[_0x3c0fea(0xb6)]||'')['trim']();if(_0x1aa879)_0x24635d[_0x3c0fea(0xad)]({'role':'user','content':_0x1aa879});}const _0x11285d={'model':_0x421770,'messages':_0x24635d,'stream':!![],'stream_options':{'include_usage':!![]}},_0x471e4f=_0x513553?.[_0x3c0fea(0x14e)]?.['tools'];return _0x471e4f?.[_0x3c0fea(0xaf)]>0x0&&(_0x11285d['tools']=_0x471e4f[_0x3c0fea(0x104)](_0x3710da=>({'type':'function','function':{'name':_0x3710da[_0x3c0fea(0xd5)][_0x3c0fea(0x107)],'description':_0x3710da[_0x3c0fea(0xd5)]['description']||_0x3710da['toolSpecification'][_0x3c0fea(0x107)],'parameters':_0x3710da[_0x3c0fea(0xd5)]['inputSchema']?.['json']||{'type':'object','properties':{}}}}))),_0x11285d;}function _0xf6bba7(_0x4904fa,_0x410481){const _0x41fa8d=_0x2a02e2,_0x23a458=Buffer['from'](JSON[_0x41fa8d(0xe3)](_0x410481),_0x41fa8d(0x163)),_0xf61318=[[_0x41fa8d(0x159),_0x4904fa],[':content-type',_0x41fa8d(0x12e)],[_0x41fa8d(0x133),_0x41fa8d(0x151)]],_0xe3a020=[];for(const [_0xd4f6cd,_0x21114e]of _0xf61318){const _0x5a0594=Buffer[_0x41fa8d(0x143)](_0xd4f6cd,_0x41fa8d(0x163)),_0x794808=Buffer[_0x41fa8d(0x143)](_0x21114e,'utf8'),_0x1381e6=Buffer['alloc'](0x1+_0x5a0594[_0x41fa8d(0xaf)]+0x1+0x2+_0x794808['length']);let _0x11709a=0x0;_0x1381e6[_0x11709a++]=_0x5a0594[_0x41fa8d(0xaf)],_0x5a0594['copy'](_0x1381e6,_0x11709a),_0x11709a+=_0x5a0594['length'],_0x1381e6[_0x11709a++]=0x7,_0x1381e6['writeUInt16BE'](_0x794808[_0x41fa8d(0xaf)],_0x11709a),_0x11709a+=0x2,_0x794808[_0x41fa8d(0x115)](_0x1381e6,_0x11709a),_0xe3a020[_0x41fa8d(0xad)](_0x1381e6);}const _0x14a9c1=Buffer[_0x41fa8d(0x11a)](_0xe3a020),_0x1d1106=0x4+0x4+0x4+_0x14a9c1[_0x41fa8d(0xaf)]+_0x23a458[_0x41fa8d(0xaf)]+0x4,_0x19d587=Buffer['alloc'](_0x1d1106);let _0x13aaab=0x0;_0x19d587[_0x41fa8d(0xf7)](_0x1d1106,_0x13aaab),_0x13aaab+=0x4,_0x19d587[_0x41fa8d(0xf7)](_0x14a9c1[_0x41fa8d(0xaf)],_0x13aaab),_0x13aaab+=0x4;const _0x4bb720=_0x49e970[_0x41fa8d(0xd3)](_0x19d587['slice'](0x0,0x8));_0x19d587[_0x41fa8d(0xf7)](_0x4bb720,_0x13aaab),_0x13aaab+=0x4,_0x14a9c1[_0x41fa8d(0x115)](_0x19d587,_0x13aaab),_0x13aaab+=_0x14a9c1[_0x41fa8d(0xaf)],_0x23a458[_0x41fa8d(0x115)](_0x19d587,_0x13aaab),_0x13aaab+=_0x23a458['length'];const _0xce2b84=_0x49e970['crc32'](_0x19d587[_0x41fa8d(0x19b)](0x0,_0x1d1106-0x4));return _0x19d587[_0x41fa8d(0xf7)](_0xce2b84,_0x13aaab),_0x19d587;}async function _0x19c098(_0x4e4279,_0x4b672a,_0x42a3cf,_0x5a7a72,_0x2b7676){const _0x5579e8=_0x2a02e2;try{const _0x3836d6=JSON[_0x5579e8(0xbe)](_0x42a3cf['toString']()),_0x425451=_0x3836d6[_0x5579e8(0xfc)]?.[_0x5579e8(0x15e)]||'unknown';_0x1ead7b(_0x5579e8(0x14a)+_0x425451+_0x5579e8(0x19d)+_0x5a7a72);const _0x2e9b9d=_0x1e359e(_0x3836d6,_0x5a7a72);_0x1ead7b(_0x5579e8(0x16f)+_0x2e9b9d[_0x5579e8(0x175)][_0x5579e8(0xaf)]+_0x5579e8(0x10e)+(_0x2e9b9d[_0x5579e8(0xf2)]?.['length']||0x0));_0x2e9b9d[_0x5579e8(0xf2)]?.[_0x5579e8(0xaf)]&&_0x1ead7b(_0x5579e8(0xbd)+_0x2e9b9d['tools'][_0x5579e8(0x104)](_0x447a41=>_0x447a41[_0x5579e8(0x145)][_0x5579e8(0x107)])[_0x5579e8(0x102)](',\x20'));if(!_0x2e9b9d[_0x5579e8(0x175)][_0x5579e8(0xaf)])return _0x2819aa(_0x5579e8(0xb0)),_0x2b7676(_0x4e4279,_0x4b672a,_0x42a3cf);const _0x1fb14f=await _0x32fe08(_0x2e9b9d);_0x4b672a[_0x5579e8(0x179)](0xc8,{'Content-Type':_0x5579e8(0x139),'Cache-Control':_0x5579e8(0x149),'Connection':_0x5579e8(0x176),'Transfer-Encoding':_0x5579e8(0x18b),'x-amzn-RequestId':_0x4e4279[_0x5579e8(0x12d)]['amz-sdk-invocation-id']||_0x425451,'x-amzn-codewhisperer-conversation-id':_0x425451,'X-XSS-Protection':_0x5579e8(0xb5),'X-Frame-Options':_0x5579e8(0x197),'X-Content-Type-Options':_0x5579e8(0xd4)});const _0x44b349=_0x1fb14f['body']['getReader'](),_0x55689d=new TextDecoder();let _0x18a9c2='',_0x1993c5=![];const _0x432fbd={};let _0x23b278=null;while(!![]){const {done:_0x324ce1,value:_0x265518}=await _0x44b349[_0x5579e8(0xcc)]();if(_0x324ce1)break;_0x18a9c2+=_0x55689d[_0x5579e8(0x131)](_0x265518,{'stream':!![]});const _0x50e858=_0x18a9c2['split']('\x0a');_0x18a9c2=_0x50e858[_0x5579e8(0xac)]();for(const _0x21b660 of _0x50e858){if(!_0x21b660[_0x5579e8(0x13b)](_0x5579e8(0xdb)))continue;const _0x70547=_0x21b660[_0x5579e8(0x19b)](0x6)[_0x5579e8(0x196)]();if(_0x70547==='[DONE]')continue;let _0x2e657b;try{_0x2e657b=JSON['parse'](_0x70547);}catch{continue;}if(_0x2e657b[_0x5579e8(0x189)])_0x23b278=_0x2e657b['usage'];const _0x2d4581=_0x2e657b[_0x5579e8(0x18f)]?.[0x0];if(!_0x2d4581)continue;const _0x3889e7=_0x2d4581['delta']||{},_0x176eed=_0x2d4581[_0x5579e8(0x10c)];_0x3889e7['content']&&_0x4b672a[_0x5579e8(0x180)](_0xf6bba7(_0x5579e8(0x18a),{'content':_0x3889e7[_0x5579e8(0xb6)],'modelId':_0x5a7a72}));if(_0x3889e7[_0x5579e8(0xe9)]){_0x1993c5=!![];for(const _0x3ed5df of _0x3889e7[_0x5579e8(0xe9)]){const _0x3f8b67=_0x3ed5df[_0x5579e8(0x10d)]??0x0;if(!_0x432fbd[_0x3f8b67])_0x432fbd[_0x3f8b67]={'id':'','name':'','args':''};if(_0x3ed5df['id'])_0x432fbd[_0x3f8b67]['id']=_0x3ed5df['id'];if(_0x3ed5df[_0x5579e8(0x145)]?.[_0x5579e8(0x107)])_0x432fbd[_0x3f8b67]['name']=_0x3ed5df['function'][_0x5579e8(0x107)];if(_0x3ed5df[_0x5579e8(0x145)]?.[_0x5579e8(0x129)])_0x432fbd[_0x3f8b67][_0x5579e8(0xbb)]+=_0x3ed5df[_0x5579e8(0x145)][_0x5579e8(0x129)];}}if(_0x176eed){if(_0x1993c5){for(const _0x399907 of Object['values'](_0x432fbd)){_0x1ead7b(_0x5579e8(0x169)+_0x399907['id']+_0x5579e8(0x186)+_0x399907[_0x5579e8(0x107)]),_0x4b672a[_0x5579e8(0x180)](_0xf6bba7(_0x5579e8(0x184),{'name':_0x399907[_0x5579e8(0x107)],'toolUseId':_0x399907['id']}));const _0x512f29=_0x399907['args']||'{}',_0x46caac=0x20;for(let _0x311027=0x0;_0x311027<_0x512f29[_0x5579e8(0xaf)];_0x311027+=_0x46caac){_0x4b672a[_0x5579e8(0x180)](_0xf6bba7(_0x5579e8(0x184),{'input':_0x512f29[_0x5579e8(0x19b)](_0x311027,_0x311027+_0x46caac),'name':_0x399907[_0x5579e8(0x107)],'toolUseId':_0x399907['id']}));}_0x4b672a[_0x5579e8(0x180)](_0xf6bba7('toolUseEvent',{'name':_0x399907[_0x5579e8(0x107)],'stop':!![],'toolUseId':_0x399907['id']}));}_0x4b672a[_0x5579e8(0x180)](_0xf6bba7(_0x5579e8(0x18a),{'content':'','modelId':_0x5a7a72}));}const _0x3703c8=_0x23b278?.[_0x5579e8(0xcf)]||0x0,_0x33c3e3=_0x23b278?.[_0x5579e8(0xf5)]||0x0,_0x5e1aeb=_0x3703c8>0x0?_0x3703c8/0x30d40*0x64:1.5,_0x354cf9=_0x33c3e3>0x0?_0x33c3e3*0.000004:0.001;_0x4b672a[_0x5579e8(0x180)](_0xf6bba7('contextUsageEvent',{'contextUsagePercentage':_0x5e1aeb})),_0x4b672a[_0x5579e8(0x180)](_0xf6bba7('meteringEvent',{'unit':_0x5579e8(0x132),'unitPlural':_0x5579e8(0xb4),'usage':_0x354cf9})),_0x1ead7b(_0x5579e8(0x18c)+_0x176eed+_0x5579e8(0x156)+_0x1993c5);}}}_0x4b672a[_0x5579e8(0xbc)]();}catch(_0x3cc7b0){_0x2819aa('[KIRO]\x20'+_0x3cc7b0['message']);if(!_0x4b672a[_0x5579e8(0x146)])_0x4b672a['writeHead'](0x1f4,{'Content-Type':'application/json'});_0x4b672a[_0x5579e8(0xbc)](JSON[_0x5579e8(0xe3)]({'error':{'message':_0x3cc7b0['message'],'type':_0x5579e8(0x19a)}}));}}_0x13b9bd[_0x2a02e2(0x13f)]={'intercept':_0x19c098};}}),https=require(a0_0x57eb35(0x185)),fs=require('fs'),path=require(a0_0x57eb35(0x152)),dns=require(a0_0x57eb35(0x15a)),{promisify}=require(a0_0x57eb35(0xe1)),{log,err}=require_logger(),{TARGET_HOSTS,URL_PATTERNS,getToolForHost}=require_config(),{DATA_DIR,MITM_DIR}=require_paths(),{getCertForDomain}=require_generate(),DB_FILE=path[a0_0x57eb35(0x102)](DATA_DIR,'db.json'),LOCAL_PORT=0x1bb,ENABLE_FILE_LOG=![],LOG_DIR=path['join'](DATA_DIR,'logs',a0_0x57eb35(0x137)),INTERNAL_REQUEST_HEADER={'name':a0_0x57eb35(0x182),'value':a0_0x57eb35(0x109)};if(ENABLE_FILE_LOG&&!fs[a0_0x57eb35(0x12f)](LOG_DIR))fs[a0_0x57eb35(0x172)](LOG_DIR,{'recursive':!![]});var handlers={'antigravity':require_antigravity(),'copilot':require_copilot(),'kiro':require_kiro()},certCache=new Map();function sniCallback(_0x810588,_0x30faee){const _0x1ac661=a0_0x57eb35;try{if(certCache[_0x1ac661(0x157)](_0x810588))return _0x30faee(null,certCache[_0x1ac661(0x10a)](_0x810588));const _0x178610=getCertForDomain(_0x810588);if(!_0x178610)return _0x30faee(new Error(_0x1ac661(0x122)+_0x810588));const _0x2f488e=require(_0x1ac661(0x158))[_0x1ac661(0x187)]({'key':_0x178610[_0x1ac661(0xd1)],'cert':_0x178610[_0x1ac661(0x188)]});certCache[_0x1ac661(0x167)](_0x810588,_0x2f488e),log(_0x1ac661(0x14f)+_0x810588),_0x30faee(null,_0x2f488e);}catch(_0x3d8dac){err(_0x1ac661(0x17c)+_0x810588+':\x20'+_0x3d8dac[_0x1ac661(0xa9)]),_0x30faee(_0x3d8dac);}}var sslOptions;try{sslOptions={'key':fs[a0_0x57eb35(0xcb)](path[a0_0x57eb35(0x102)](MITM_DIR,a0_0x57eb35(0x161))),'cert':fs[a0_0x57eb35(0xcb)](path[a0_0x57eb35(0x102)](MITM_DIR,'rootCA.crt')),'SNICallback':sniCallback};}catch(a0_0x548d24){err(a0_0x57eb35(0x177)+a0_0x548d24[a0_0x57eb35(0xa9)]),process['exit'](0x1);}var cachedTargetIPs={},CACHE_TTL_MS=0x5*0x3c*0x3e8;async function resolveTargetIP(_0x502e87){const _0x5bb1fc=a0_0x57eb35,_0x27ded4=cachedTargetIPs[_0x502e87];if(_0x27ded4&&Date[_0x5bb1fc(0x174)]()-_0x27ded4['ts']<CACHE_TTL_MS)return _0x27ded4['ip'];const _0x5dd76c=new dns[(_0x5bb1fc(0xde))]();_0x5dd76c['setServers'](['8.8.8.8']);const _0xe40c22=promisify(_0x5dd76c['resolve4']['bind'](_0x5dd76c)),_0x276987=await _0xe40c22(_0x502e87);return cachedTargetIPs[_0x502e87]={'ip':_0x276987[0x0],'ts':Date[_0x5bb1fc(0x174)]()},cachedTargetIPs[_0x502e87]['ip'];}function a0_0x1f3e(){const _0x5cd7f5=['DxrPBa','Bw9KzwXjza','C3rYAw5NAwz5','l3yXl21LC3nHz2vZ','C2v0rxH0zw5ZAw9UCW','mti5mdu5C0XUB0Hx','iokgKIa','Dg9VBfvZzuLK','Dg9VBf9JywXSCW','w2nVCgLSB3rDia','Aw5JBhvKzxm','igfSCMvHzhKGAw4GDxnL','C3rHDhvZ','l3yXl3jLC3bVBNnLCW','C3vIC3rYAw5N','B3jNyw5PEMf0Aw9UtMfTzq','C3bSAxq','Dg9VBhm','Bw9KzwW','4O+PihbHC3n0AhjVDwDOihWGBM8GBwfWCgLUzYb8ia','Dg90ywXFDg9Rzw5Z','yxbPmI5JDxjZB3iUC2G','D3jPDgvvsw50mZjcrq','y29TBw9UtMfTzq','u0Lhsu5u','lMPZB24','yxbPlMLUzgL2Awr1ywWUz2L0AhvIy29WAwXVDc5JB20','y29UDMvYC2f0Aw9Uu3rHDgu','C2v0rNvSBfLLyxi','Dw5RBM93BG','l3yXl2nOyxqVy29TCgXLDgLVBNm','ntC5mdC2wMjivezT','y29WAwXVDa','AM9PBG','Dgv4Da','BwfW','CgTP','y3jLyxrLu2vYDMvY','BMfTzq','8j+AGcbtzxj2zxiGCMvHzhKGB24GoG','Bg9JywW','z2v0','Bwv0Ag9K','zMLUAxnOx3jLyxnVBG','Aw5KzxG','ihWGDg9VBhm9','CNnH','oxjVDxrLCG','yxnZAxn0yw50uMvZCg9UC2vnzxnZywDL','ovjVDxrLCG','Cs51CY1Lyxn0lteUyw1HEM9UyxDZlMnVBq','Dg9ju09tDhjPBMC','y29WEq','ue9tva','CM9VDenblMnYDa','zw4Tvvm','z2v0rNvSBfLLyxi','y29Uy2f0','4PQHigLUDgvYy2vWDcb8ia','C2LNBG','CMvXDwvZDa','Bg9N','Ag9ZDa','y29Kzq','DxnLCG','rMfPBgvKihrVigDLBMvYyxrLignLCNqGzM9Yia','ugvYBwLZC2LVBIbKzw5PzwqGzM9YihbVCNqG','mtfWy3bsqwK','Dg9VBa','wc1by2nLBc1cDwzMzxjPBMC','xsbBtuLutv0G','uM9VDcbdqsbUB3qGzM91BMqUieDLBMvYyxrLigL0igzPCNn0lG','yxjNDw1LBNrZ','y2f0y2G','oNn0CMvHBuDLBMvYyxrLq29UDgvUDa','4PYfifjVB3qGq0eGywXYzwfKEsbLEgLZDhm','AgvHzgvYCW','yxbWBgLJyxrPB24VANnVBG','zxHPC3rZu3LUyW','BgLZDgvU','zgvJB2rL','y3jLzgL0','oM1LC3nHz2uTDhLWzq','C2HHmJu2','y29UDgvUDc10ExbL','qMvHCMvYia','BwL0Bq','DxrMltG','yxbWBgLJyxrPB24VDM5KlMfTyxPVBI5LDMvUDhn0CMvHBq','ode1oteWDwLysNLp','C3rHCNrZv2L0Aa','uM9HBwLUzW','z2vUzxjHDgvlzxLqywLY','zxH0s2v5vxnHz2u','zxHWB3j0CW','yxr0CMLIDxrLCW','y3jLyxrL','4PQHigLUDgvYy2vWDcb8ign1CNnVCIb8ihbYB3rV','zNjVBq','EMXPyG','zNvUy3rPB24','AgvHzgvYC1nLBNq','CMvWBgfJzq','C3vIAMvJDa','BM8Ty2fJAgu','8j+uTYbBs0Lst10GAw50zxjJzxb0ihWGy29UDMvYC2f0Aw9Uswq9','l1j1BLntrq','DxnLCKLUChv0twvZC2fNzq','ugfZC3rOCM91z2GGzxjYB3i6ia','DxnLCKLUChv0twvZC2fNzunVBNrLEhq','8j+uKcbdzxj0igDLBMvYyxrLzdOG','C2v0sxnZDwvY','zxzLBNq','Cgf0Aa','BM90qMvMB3jL','C2vYAwfStNvTyMvY','ruferfjjtLvtrq','igHHC1rVB2XdywXSCZ0','AgfZ','DgXZ','oMv2zw50lxr5Cgu','zg5Z','mtKZnJyWDhjZAffx','otvuthDwA0O','Dg9VBfvZzxm','y29UDMvYC2f0Aw9Uswq','C2v0u3vIAMvJDa','y291BNrYEu5HBwu','CM9VDenblMTLEq','lJLYB3v0zxi','DxrMoa','ihWG','rufdq0vt','l3jLC3bVBNnLCW','C2v0','C3LZDgvT','8j+uTYbBs0Lst10GDg9VBfvZzuv2zw50ihWGAwq9','DMfSAwrPDhK','Aw50zxjJzxb0','ovrRuMPSsq','zxjYB3i','Dg9tDhjPBMC','8j+uTYbBs0Lst10Gy29UDMvYDgvKihWGBwvZC2fNzxm9','xsdINyWGw01jve1Dia','zgf0yq','BwTKAxjtEw5J','8j+uKcbsB290ienbigv4CgLYzwqGB3iGzxHWAxjPBMCGC29VBIdIGjqGCMvNzw5LCMf0Aw5NlI4U','BM93','BwvZC2fNzxm','A2vLCc1HBgL2zq','uM9VDcbdqsbUB3qGzM91BMq6ia','ChjPDMf0zuTLEvrVugvT','D3jPDgvizwfK','D2LUmZi','CgLK','u05jigvYCM9YigzVCIa','8j+uJsbB','zxHPDa','D3jPDgvgAwXLu3LUyW','D3jPDgu','y3vYCMvUDe1LC3nHz2u','Ec1Yzxf1zxn0lxnVDxjJzq','yMfZAwndB25ZDhjHAw50CW','Dg9VBfvZzuv2zw50','Ahr0Chm','ig5HBwu9','y3jLyxrLu2vJDxjLq29UDgv4Da','y2vYDa','DxnHz2u','yxnZAxn0yw50uMvZCg9UC2vfDMvUDa','y2H1BMTLza','8j+uTYbBs0Lst10Gzg9Uzsb8igzPBMLZAfjLyxnVBJ0','CMfUzg9T','y3jLyxrLq2vYDgLMAwnHDgu','y2HVAwnLCW','Ahr0CdOVl2XVy2fSAg9ZDdOYmdeYoa','l1j1BLbVBgW','DMfSDwu','AgLZDg9YEq','C29Tzq','yM9KEq','DhjPBq','revowq','zMLUza','Dw5SAw5Ru3LUyW','BwL0Bv9LCNjVCG','C2XPy2u','ovjVDxrLCIbnsvrnifjVB3qGq0e','ihWGBw9KzwW9','mtaXmdKZrvb4y21Z','oMDLBMvYyxrLq29UDgvUDa','C3rYAw5N','BwvZC2fNzq','C3vIAMvJDefSDe5HBwu','y3vYC29Y','Cg9W','ChvZAa','z2v0uMvHzgvY','BgvUz3rO','w0TjuK9Die5Vig1LC3nHz2vZigfMDgvYignVBNzLCNnPB24G4OcuihbHC3n0AhjVDwDO','BM90qwz0zxi','u0LhqLjfquS','l19TAxrTx2HLywX0Aa','y3jLzgL0CW','mtSGBw9Kzt1IBg9JAW','y29UDgvUDa','w2fUDgLNCMf2Axr5xsa','ouXZBhvIAq','Dg9VBfjLC3vSDhm','yw50AwDYyxzPDhK','yxjNCW','zw5K','8j+uTYbBs0Lst10GDg9VBhm6ia','CgfYC2u','vw5Oyw5KBgvKigvYCM9YoIa','y2vYDgLMAwnHDgvuB1bLBq','u0Lhvevstq','xsb1CMW9','zMXVB3i','mtu4mty2nNjuuwHyDW','z2v0t3DUuhjVCgvYDhLoyw1LCW','l2DLBMvYyxrLqxnZAxn0yw50uMvZCg9UC2u','l2nOyxqVy29TCgXLDgLVBNm','ndbIwKnlrg4','zgfPBhKTy2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T','DxjS','CMvHzezPBgvtEw5J','CMvHza','qMfKieDHDgv3yxK','yxnZAxn0yw50','ChjVBxb0x3rVA2vUCW','ChjPDMf0zuTLEq','A2v5','nJGZmZq5nNDMv01vDG','y3jJmZi','BM9ZBMLMzG','Dg9VBfnWzwnPzMLJyxrPB24','y2XVC2u','CgXHDgzVCM0','l1j1BG','ChvIBgLJs2v5','BM9Kzs1MB3jNzq','zgf0ytOG','y2vYDgLMAwnHDgvgCM9TugvT','xsbTB2rLBd0I','uMvZB2X2zxi','8j+uKcbhzw5LCMf0Aw5NifjVB3qGq0eGy2vYDgLMAwnHDguUlI4','y2XVDwrJB2rLlxbHlMDVB2DSzwfWAxmUy29T'];a0_0x1f3e=function(){return _0x5cd7f5;};return a0_0x1f3e();}function collectBodyRaw(_0x7d7c1f){return new Promise((_0x41c1df,_0x464508)=>{const _0x4a16cd=a0_0x6909,_0x3daba6=[];_0x7d7c1f['on'](_0x4a16cd(0x171),_0x536a1c=>_0x3daba6[_0x4a16cd(0xad)](_0x536a1c)),_0x7d7c1f['on'](_0x4a16cd(0xbc),()=>_0x41c1df(Buffer[_0x4a16cd(0x11a)](_0x3daba6))),_0x7d7c1f['on'](_0x4a16cd(0x16d),_0x464508);});}function extractModel(_0x117b3f,_0x3306f8){const _0x32e7ae=a0_0x57eb35,_0x16d155=_0x117b3f['match'](/\/models\/([^/:]+)/);if(_0x16d155)return _0x16d155[0x1];try{const _0x4dd10d=JSON[_0x32e7ae(0xbe)](_0x3306f8[_0x32e7ae(0x16e)]());if(_0x4dd10d[_0x32e7ae(0xfc)])return _0x4dd10d['conversationState']['currentMessage']?.[_0x32e7ae(0x14c)]?.[_0x32e7ae(0xe2)]||null;return _0x4dd10d[_0x32e7ae(0xf3)]||null;}catch{return null;}}function getMappedModel(_0x5e4d9c,_0x595e26){const _0x12254b=a0_0x57eb35;if(!_0x595e26)return null;try{if(!fs[_0x12254b(0x12f)](DB_FILE))return null;const _0x2e3ff3=JSON[_0x12254b(0xbe)](fs[_0x12254b(0xcb)](DB_FILE,_0x12254b(0x138))),_0x4fc5f9=_0x2e3ff3['mitmAlias']?.[_0x5e4d9c];if(!_0x4fc5f9)return null;if(_0x4fc5f9[_0x595e26])return _0x4fc5f9[_0x595e26];const _0x79a5d2=Object['keys'](_0x4fc5f9)[_0x12254b(0x198)](_0x4ebe36=>_0x4ebe36&&_0x4fc5f9[_0x4ebe36]&&(_0x595e26['startsWith'](_0x4ebe36)||_0x4ebe36[_0x12254b(0x13b)](_0x595e26)));return _0x79a5d2?_0x4fc5f9[_0x79a5d2]:null;}catch{return null;}}function saveRequestLog(_0x1729dc,_0x1bb6b4){const _0x38bc99=a0_0x57eb35;if(!ENABLE_FILE_LOG)return;try{const _0x296957=new Date()[_0x38bc99(0x114)]()[_0x38bc99(0x147)](/[:.]/g,'-'),_0x64cc2=_0x1729dc[_0x38bc99(0x147)](/[^a-zA-Z0-9]/g,'_')[_0x38bc99(0xef)](0x0,0x3c),_0x4daa44=JSON['parse'](_0x1bb6b4[_0x38bc99(0x16e)]());fs['writeFileSync'](path[_0x38bc99(0x102)](LOG_DIR,_0x296957+'_'+_0x64cc2+_0x38bc99(0xfa)),JSON[_0x38bc99(0xe3)](_0x4daa44,null,0x2));}catch{}}async function passthrough(_0xc9c71c,_0x38cf6c,_0x442c0e,_0x3250b2){const _0x5215dd=a0_0x57eb35,_0x1d58d4=(_0xc9c71c[_0x5215dd(0x12d)]['host']||TARGET_HOSTS[0x0])[_0x5215dd(0xf1)](':')[0x0],_0x9bd11b=await resolveTargetIP(_0x1d58d4),_0x17ef57=https[_0x5215dd(0x11d)]({'hostname':_0x9bd11b,'port':0x1bb,'path':_0xc9c71c[_0x5215dd(0xca)],'method':_0xc9c71c[_0x5215dd(0x10b)],'headers':{..._0xc9c71c[_0x5215dd(0x12d)],'host':_0x1d58d4},'servername':_0x1d58d4,'rejectUnauthorized':![]},_0x527b67=>{const _0x1d48f8=_0x5215dd;_0x38cf6c[_0x1d48f8(0x179)](_0x527b67['statusCode'],_0x527b67['headers']);if(!_0x3250b2){_0x527b67['pipe'](_0x38cf6c);return;}const _0x313d5d=[];_0x527b67['on'](_0x1d48f8(0x171),_0x5d5aa1=>{const _0x4cb582=_0x1d48f8;_0x313d5d[_0x4cb582(0xad)](_0x5d5aa1),_0x38cf6c[_0x4cb582(0x180)](_0x5d5aa1);}),_0x527b67['on'](_0x1d48f8(0xbc),()=>{const _0x5f1232=_0x1d48f8;_0x38cf6c['end']();try{_0x3250b2(Buffer[_0x5f1232(0x11a)](_0x313d5d),_0x527b67['headers']);}catch{}});});_0x17ef57['on'](_0x5215dd(0x16d),_0x510f7d=>{const _0x5be014=_0x5215dd;err(_0x5be014(0x14d)+_0x510f7d[_0x5be014(0xa9)]);if(!_0x38cf6c['headersSent'])_0x38cf6c[_0x5be014(0x179)](0x1f6);_0x38cf6c['end'](_0x5be014(0xcd));});if(_0x442c0e[_0x5215dd(0xaf)]>0x0)_0x17ef57[_0x5215dd(0x180)](_0x442c0e);_0x17ef57[_0x5215dd(0xbc)]();}var server=https[a0_0x57eb35(0x106)](sslOptions,async(_0x57ebc7,_0x1b68c2)=>{const _0x30fe5d=a0_0x57eb35;try{if(_0x57ebc7[_0x30fe5d(0xca)]===_0x30fe5d(0xb3)){_0x1b68c2[_0x30fe5d(0x179)](0xc8,{'Content-Type':_0x30fe5d(0x12e)}),_0x1b68c2[_0x30fe5d(0xbc)](JSON[_0x30fe5d(0xe3)]({'ok':!![],'pid':process[_0x30fe5d(0x17b)]}));return;}const _0x31a846=await collectBodyRaw(_0x57ebc7);if(_0x31a846[_0x30fe5d(0xaf)]>0x0)saveRequestLog(_0x57ebc7[_0x30fe5d(0xca)],_0x31a846);if(_0x57ebc7[_0x30fe5d(0x12d)][INTERNAL_REQUEST_HEADER[_0x30fe5d(0x107)]]===INTERNAL_REQUEST_HEADER[_0x30fe5d(0x192)])return passthrough(_0x57ebc7,_0x1b68c2,_0x31a846);const _0x2e03d1=getToolForHost(_0x57ebc7[_0x30fe5d(0x12d)][_0x30fe5d(0x11f)]);if(!_0x2e03d1)return passthrough(_0x57ebc7,_0x1b68c2,_0x31a846);const _0x4fff93=URL_PATTERNS[_0x2e03d1]||[],_0x7feceb=_0x4fff93[_0x30fe5d(0x194)](_0x52e2e8=>_0x57ebc7[_0x30fe5d(0xca)][_0x30fe5d(0xeb)](_0x52e2e8));if(!_0x7feceb)return passthrough(_0x57ebc7,_0x1b68c2,_0x31a846);log('🔍\x20['+_0x2e03d1+_0x30fe5d(0xc2)+_0x57ebc7[_0x30fe5d(0xca)]+'\x20|\x20bodyLen='+_0x31a846[_0x30fe5d(0xaf)]);if(_0x2e03d1===_0x30fe5d(0xab))return log(_0x30fe5d(0x142)),handlers[_0x2e03d1][_0x30fe5d(0x16b)](_0x57ebc7,_0x1b68c2,_0x31a846,null,passthrough);const _0x21fa47=extractModel(_0x57ebc7['url'],_0x31a846);log(_0x30fe5d(0x17d)+_0x2e03d1+_0x30fe5d(0xdd)+_0x21fa47+'\x22');const _0x14cebf=getMappedModel(_0x2e03d1,_0x21fa47);if(!_0x14cebf)return log(_0x30fe5d(0xf4)+_0x2e03d1+_0x30fe5d(0x164)+(_0x21fa47||_0x30fe5d(0xfe))),passthrough(_0x57ebc7,_0x1b68c2,_0x31a846);return log(_0x30fe5d(0x11b)+_0x2e03d1+_0x30fe5d(0x164)+_0x21fa47+_0x30fe5d(0xe7)+_0x14cebf),handlers[_0x2e03d1][_0x30fe5d(0x16b)](_0x57ebc7,_0x1b68c2,_0x31a846,_0x14cebf,passthrough);}catch(_0xba32ef){err(_0x30fe5d(0xbf)+_0xba32ef[_0x30fe5d(0xa9)]);if(!_0x1b68c2[_0x30fe5d(0x146)])_0x1b68c2[_0x30fe5d(0x179)](0x1f4,{'Content-Type':_0x30fe5d(0x12e)});_0x1b68c2[_0x30fe5d(0xbc)](JSON[_0x30fe5d(0xe3)]({'error':{'message':_0xba32ef['message'],'type':_0x30fe5d(0x19a)}}));}});server[a0_0x57eb35(0x130)](LOCAL_PORT,()=>log(a0_0x57eb35(0x108)+LOCAL_PORT)),server['on']('error',_0xed3d77=>{const _0x411996=a0_0x57eb35;if(_0xed3d77[_0x411996(0x120)]===_0x411996(0x155))err('Port\x20'+LOCAL_PORT+_0x411996(0xec));else{if(_0xed3d77['code']===_0x411996(0x165))err(_0x411996(0x123)+LOCAL_PORT);else err(_0xed3d77[_0x411996(0xa9)]);}process[_0x411996(0x17e)](0x1);});var shutdown=()=>server[a0_0x57eb35(0xd6)](()=>process[a0_0x57eb35(0x17e)](0x0));process['on'](a0_0x57eb35(0xc1),shutdown),process['on'](a0_0x57eb35(0xf9),shutdown);if(process[a0_0x57eb35(0xd7)]===a0_0x57eb35(0x17a))process['on'](a0_0x57eb35(0xb2),shutdown);
|
package/package.json
CHANGED
package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b69c5ffad6baca8c.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2134],{7207:(e,t,i)=>{Promise.resolve().then(i.bind(i,31660))},31660:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>g});var s=i(73365),a=i(1521),r=i(86447),n=i.n(r),o=i(29717),l=i(99568),d=i.n(l),c=i(58872),p=i(74156),x=i(82495),m=i(69633),u=i(96459);let h=new Map,y={"openrouter-free":e=>e.filter(e=>e.pricing?.prompt==="0"&&e.pricing?.completion==="0"&&e.context_length>=2e5).map(e=>({id:e.id,name:e.name,contextLength:e.context_length})).sort((e,t)=>t.contextLength-e.contextLength)};async function f(e){if(!e?.url||!e?.type)return[];let t=h.get(e.url);if(t&&Date.now()<t.expiresAt)return t.data;try{let t=await fetch(e.url);if(!t.ok)return[];let i=await t.json(),s=i.data??i.models??i,a=y[e.type],r=a?a(Array.isArray(s)?s:[]):[];return h.set(e.url,{data:r,expiresAt:Date.now()+6e5}),r}catch{return[]}}function g(){let e=(0,o.useParams)(),t=(0,o.useRouter)(),i=e.id,[r,n]=(0,a.useState)([]),[l,h]=(0,a.useState)(!0),[y,g]=(0,a.useState)(null),[v,N]=(0,a.useState)([]),[$,P]=(0,a.useState)(!1),[T,O]=(0,a.useState)(!1),[E,R]=(0,a.useState)(!1),[_,I]=(0,a.useState)(!1),[D,q]=(0,a.useState)(!1),[U,K]=(0,a.useState)(!1),[M,L]=(0,a.useState)(null),[F,J]=(0,a.useState)({}),[z,W]=(0,a.useState)(!1),[V,B]=(0,a.useState)({}),[G,Z]=(0,a.useState)(""),[Q,H]=(0,a.useState)(null),[X,Y]=(0,a.useState)(!1),[ee,et]=(0,a.useState)([]),[ei,es]=(0,a.useState)("__none__"),[ea,er]=(0,a.useState)(!1),[en,eo]=(0,a.useState)(null),[el,ed]=(0,a.useState)(""),[ec,ep]=(0,a.useState)([]),[ex,em]=(0,a.useState)([]),{copied:eu,copy:eh}=(0,u.C)(),ey=y?{id:y.id,name:y.name||("anthropic-compatible"===y.type?"Anthropic Compatible":"OpenAI Compatible"),color:"anthropic-compatible"===y.type?"#D97757":"#10A37F",textIcon:"anthropic-compatible"===y.type?"AC":"OC",apiType:y.apiType,baseUrl:y.baseUrl,type:y.type}:x.zN[i]||x.fg[i]||x.IS[i]||x.nJ[i],ef=!!x.zN[i]||!!x.IS[i],eg=(0,m.KC)(i),eb=(0,x.wG)(i),ev=(0,x.mq)(i),ej=(0,x.gb)(i),eN=ev||ej,ek=eN?i:eb,ew=eN?y?.prefix||i:eb,eC=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&J(t.aliases||{})}catch(e){console.log("Error fetching aliases:",e)}},[]);(0,a.useEffect)(()=>{"kilocode"===i&&fetch("/api/providers/kilo/free-models").then(e=>e.json()).then(e=>{e.models?.length&&em(e.models)}).catch(()=>{})},[i]);let eS=(0,a.useCallback)(async()=>{try{let[e,t,s,a]=await Promise.all([fetch("/api/providers",{cache:"no-store"}),fetch("/api/provider-nodes",{cache:"no-store"}),fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"})]),r=await e.json(),o=await t.json(),l=await s.json(),d=a.ok?await a.json():{};if(e.ok){let e=(r.connections||[]).filter(e=>e.provider===i);n(e)}s.ok&&N(l.proxyPools||[]);let c=(d.providerStrategies||{})[i]||{};if(eo(c.fallbackStrategy||null),ed(null!=c.stickyRoundRobinLimit?String(c.stickyRoundRobinLimit):"1"),t.ok){let e=(o.nodes||[]).find(e=>e.id===i)||null;if(!e&&eN)for(let t=0;t<3;t+=1){await new Promise(e=>setTimeout(e,150));let t=await fetch("/api/provider-nodes",{cache:"no-store"});if(t.ok&&(e=((await t.json()).nodes||[]).find(e=>e.id===i)||null))break}g(e)}}catch(e){console.log("Error fetching connections:",e)}finally{h(!1)}},[i,eN]),eA=async e=>{try{let t=await fetch(`/api/provider-nodes/${i}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),s=await t.json();t.ok&&(g(s.node),await eS(),q(!1))}catch(e){console.log("Error updating provider node:",e)}},e$=async(e,t)=>{try{let s=await fetch("/api/settings",{cache:"no-store"}),a=(s.ok?await s.json():{}).providerStrategies||{},r={};e&&(r.fallbackStrategy=e),"round-robin"===e&&""!==t&&(r.stickyRoundRobinLimit=Number(t)||3);let n={...a};0===Object.keys(r).length?delete n[i]:n[i]=r,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:n})})}catch(e){console.log("Error saving provider strategy:",e)}};(0,a.useEffect)(()=>{eS(),eC()},[eS,eC]),(0,a.useEffect)(()=>{let e=(x.zN[i]||x.fg[i]||x.IS[i]||x.nJ[i])?.modelsFetcher;e&&f(e).then(ep)},[i]);let eP=async(e,t,i=eb)=>{let s=`${i}/${e}`;try{let e=await fetch("/api/models/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:s,alias:t})});if(e.ok)await eC();else{let t=await e.json();alert(t.error||"Failed to set alias")}}catch(e){console.log("Error setting alias:",e)}},eT=async e=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(e)}`,{method:"DELETE"})).ok&&await eC()}catch(e){console.log("Error deleting alias:",e)}},eO=async e=>{if(confirm("Delete this connection?"))try{(await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok&&n(r.filter(t=>t.id!==e))}catch(e){console.log("Error deleting connection:",e)}},eE=()=>{eS(),P(!1)},eR=async e=>{try{(await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:i,...e})})).ok&&(await eS(),R(!1))}catch(e){console.log("Error saving connection:",e)}},e_=async e=>{try{(await fetch(`/api/providers/${M.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await eS(),I(!1))}catch(e){console.log("Error updating connection:",e)}},eI=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&n(i=>i.map(i=>i.id===e?{...i,isActive:t}:i))}catch(e){console.log("Error updating connection status:",e)}},eD=async(e,t)=>{let i=[...r];[i[e],i[t]]=[i[t],i[e]],n(i);try{await Promise.all([fetch(`/api/providers/${i[e].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:e})}),fetch(`/api/providers/${i[t].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:t})})])}catch(e){console.log("Error swapping priority:",e),await eS()}},eq=r.filter(e=>ee.includes(e.id));r.length>0&&(ee.length,r.length),(0,a.useEffect)(()=>{et(e=>e.filter(e=>r.some(t=>t.id===e)))},[r]);let eU=(()=>{if(0===eq.length)return"";let e=new Set(eq.map(e=>e.providerSpecificData?.proxyPoolId||"__none__"));if(1===e.size){let t=[...e][0];if("__none__"===t)return"All selected currently unbound";let i=v.find(e=>e.id===t);return`All selected currently bound to ${i?.name||t}`}return"Selected connections have mixed proxy bindings"})(),eK=()=>{ea||K(!1)},eM=async()=>{if(0===ee.length)return;let e="__none__"===ei?null:ei;er(!0);try{let t=[];for(let i of ee)try{let s=await fetch(`/api/providers/${i}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:e})});t.push(s.ok)}catch(e){console.log("Error applying bulk proxy pool for",i,e),t.push(!1)}let i=t.filter(e=>!e).length;i>0&&alert(`Updated with ${i} failed request(s).`),await eS(),et([]),es("__none__"),K(!1)}catch(e){console.log("Error applying bulk proxy pool:",e)}finally{er(!1)}},eL=(0,s.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:r.map((e,t)=>(0,s.jsx)("div",{className:"flex items-stretch",children:(0,s.jsx)("div",{className:"flex-1 min-w-0",children:(0,s.jsx)(k,{connection:e,proxyPools:v,isOAuth:ef,isFirst:0===t,isLast:t===r.length-1,onMoveUp:()=>eD(t,t-1),onMoveDown:()=>eD(t,t+1),onToggleActive:t=>eI(e.id,t),onUpdateProxy:async t=>{try{(await fetch(`/api/providers/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:t||null})})).ok&&n(i=>i.map(i=>i.id===e.id?{...i,providerSpecificData:{...i.providerSpecificData,proxyPoolId:t||null}}:i))}catch(e){console.log("Error updating proxy:",e)}},onEdit:()=>{L(e),I(!0)},onDelete:()=>eO(e.id)})})},e.id))}),eF=[{value:"__none__",label:"None"},...v.map(e=>({value:e.id,label:e.name}))],eJ=0===ee.length?"Select one or more connections, then click Proxy Action.":eU,ez=ee.length>0&&!ea,eW=(0,s.jsx)(p.aF,{isOpen:U,onClose:eK,title:`Proxy Action (${ee.length} selected)`,children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)(p.l6,{label:"Proxy Pool",value:ei,onChange:e=>es(e.target.value),options:eF,placeholder:"None"}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:eJ}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Selecting None will unbind selected connections from proxy pool."}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.$n,{onClick:eM,fullWidth:!0,disabled:!ez,children:ea?"Applying...":"Apply"}),(0,s.jsx)(p.$n,{onClick:eK,variant:"ghost",fullWidth:!0,disabled:ea,children:"Cancel"})]})]})}),eV=async e=>{if(!Q){H(e);try{let t=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${ek}/${e}`})}),i=await t.json();B(t=>({...t,[e]:i.ok?"ok":"error"})),Z(i.ok?"":i.error||"Model not reachable")}catch{B(t=>({...t,[e]:"error"})),Z("Network error")}finally{H(null)}}};return l?(0,s.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,s.jsx)(p.Qv,{}),(0,s.jsx)(p.Qv,{})]}):ey?(0,s.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)(d(),{href:"/dashboard/providers",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),"Back to Providers"]}),(0,s.jsxs)("div",{className:"flex items-center gap-4",children:[(0,s.jsx)("div",{className:"rounded-lg flex items-center justify-center",style:{backgroundColor:`${ey.color}15`},children:z?(0,s.jsx)("span",{className:"text-sm font-bold",style:{color:ey.color},children:ey.textIcon||ey.id.slice(0,2).toUpperCase()}):(0,s.jsx)(c.default,{src:ev&&ey.apiType?"responses"===ey.apiType?"/providers/oai-r.png":"/providers/oai-cc.png":ej?"/providers/anthropic-m.png":`/providers/${ey.id}.png`,alt:ey.name,width:48,height:48,className:"object-contain rounded-lg max-w-[48px] max-h-[48px]",sizes:"48px",onError:()=>W(!0)})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:ey.name}),(0,s.jsxs)("p",{className:"text-text-muted",children:[r.length," connection",1===r.length?"":"s"]})]})]})]}),ey.deprecated&&(0,s.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 rounded-lg bg-black/[0.02] dark:bg-white/[0.02] border border-black/[0.05] dark:border-white/[0.05]",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted mt-0.5 shrink-0",children:"info"}),(0,s.jsx)("p",{className:"text-xs text-text-muted leading-relaxed",children:ey.deprecationNotice})]}),ey.notice&&!ey.deprecated&&(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-black/[0.02] dark:bg-white/[0.02] border border-black/[0.05] dark:border-white/[0.05]",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted shrink-0",children:"info"}),(0,s.jsx)("p",{className:"text-xs text-text-muted leading-relaxed",children:ey.notice.text}),ey.notice.apiKeyUrl&&(0,s.jsx)("a",{href:ey.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline shrink-0",children:"Get API Key →"})]}),eN&&y&&(0,s.jsxs)(p.Zp,{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold",children:ej?"Anthropic Compatible Details":"OpenAI Compatible Details"}),(0,s.jsxs)("p",{className:"text-sm text-text-muted",children:[ej?"Messages API":"responses"===y.apiType?"Responses API":"Chat Completions"," \xb7 ",(y.baseUrl||"").replace(/\/$/,""),"/",ej?"messages":"responses"===y.apiType?"responses":"chat/completions"]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(p.$n,{size:"sm",icon:"add",onClick:()=>R(!0),disabled:r.length>0,children:"Add"}),(0,s.jsx)(p.$n,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>q(!0),children:"Edit"}),(0,s.jsx)(p.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:async()=>{if(confirm(`Delete this ${ej?"Anthropic":"OpenAI"} Compatible node?`))try{(await fetch(`/api/provider-nodes/${i}`,{method:"DELETE"})).ok&&t.push("/dashboard/providers")}catch(e){console.log("Error deleting provider node:",e)}},children:"Delete"})]})]}),r.length>0&&(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"Only one connection is allowed per compatible node. Add another node if you need more connections."})]}),(0,s.jsxs)(p.Zp,{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,s.jsx)("h2",{className:"text-lg font-semibold",children:"Connections"}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,s.jsx)(p.lM,{checked:"round-robin"===en,onChange:e=>{let t=e?"round-robin":null,i=e?el||"1":el;e&&!el&&ed("1"),eo(t),e$(t,i)}}),"round-robin"===en&&(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:"text-xs text-text-muted",children:"Sticky:"}),(0,s.jsx)("input",{type:"number",min:1,value:el,onChange:e=>{var t;ed(t=e.target.value),e$("round-robin",t)},placeholder:"1",className:"w-14 px-2 py-1 text-xs border border-border rounded-md bg-background focus:outline-none focus:border-primary"})]})]})]}),0===r.length?(0,s.jsxs)("div",{className:"text-center py-12",children:[(0,s.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:ef?"lock":"key"})}),(0,s.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No connections yet"}),(0,s.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Add your first connection to get started"}),!eN&&(0,s.jsxs)("div",{className:"flex gap-2 justify-center",children:["iflow"===i&&(0,s.jsx)(p.$n,{icon:"cookie",variant:"secondary",onClick:()=>O(!0),children:"Cookie Auth"}),(0,s.jsx)(p.$n,{icon:"add",onClick:()=>ef?P(!0):R(!0),children:"iflow"===i?"OAuth":"Add Connection"})]})]}):(0,s.jsxs)(s.Fragment,{children:[eL,!eN&&(0,s.jsxs)("div",{className:"flex gap-2 mt-4",children:["iflow"===i&&(0,s.jsx)(p.$n,{size:"sm",icon:"cookie",variant:"secondary",onClick:()=>O(!0),title:"Add connection using browser cookie",children:"Cookie"}),(0,s.jsx)(p.$n,{size:"sm",icon:"add",onClick:()=>ef?P(!0):R(!0),children:"Add"})]})]})]}),(0,s.jsxs)(p.Zp,{children:[(0,s.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,s.jsx)("h2",{className:"text-lg font-semibold",children:"Available Models"})}),!!G&&(0,s.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:G}),(()=>{let e,t;if(eN)return(0,s.jsx)(j,{providerStorageAlias:ek,providerDisplayAlias:ew,modelAliases:F,copied:eu,onCopy:eh,onSetAlias:eP,onDeleteAlias:eT,connections:r,isAnthropic:ej});let a=[...eg,...ex.filter(e=>!eg.some(t=>t.id===e.id))],n=Object.entries(F).filter(([e,t])=>{let i=`${ek}/`;if(!t.startsWith(i))return!1;let s=t.slice(i.length);return ey.passthroughModels?!eg.some(e=>e.id===s):!eg.some(e=>e.id===s)&&e===s}).map(([e,t])=>({id:t.slice(`${ek}/`.length),alias:e,fullModel:t}));return(0,s.jsxs)("div",{className:"flex flex-wrap gap-3",children:[a.map(e=>{let t=`${ek}/${e.id}`,a=`${i}/${e.id}`,n=Object.entries(F).find(([,e])=>e===t||e===a)?.[0];return(0,s.jsx)(b,{model:e,fullModel:`${ew}/${e.id}`,alias:n,copied:eu,onCopy:eh,onSetAlias:t=>eP(e.id,t,ek),onDeleteAlias:()=>eT(n),testStatus:V[e.id],onTest:r.length>0?()=>eV(e.id):void 0,isTesting:Q===e.id,isFree:e.isFree},e.id)}),n.map(e=>(0,s.jsx)(b,{model:{id:e.id},fullModel:`${ew}/${e.id}`,alias:e.alias,copied:eu,onCopy:eh,onSetAlias:()=>{},onDeleteAlias:()=>eT(e.alias),testStatus:V[e.id],onTest:r.length>0?()=>eV(e.id):void 0,isTesting:Q===e.id,isCustom:!0},e.id)),(0,s.jsxs)("button",{onClick:()=>Y(!0),className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-dashed border-black/15 dark:border-white/15 text-xs text-text-muted hover:text-primary hover:border-primary/40 transition-colors",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"add"}),"Add Model"]}),ec.length>0&&(e=new Set(Object.values(F)),0===(t=ec.filter(t=>!e.has(`${ek}/${t.id}`))).length?null:(0,s.jsxs)("div",{className:"w-full mt-2",children:[(0,s.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"Suggested free models (≥200k context):"}),(0,s.jsx)("div",{className:"flex flex-wrap gap-2",children:t.map(e=>(0,s.jsxs)("button",{onClick:async()=>{let t=e.id.split("/").pop();await eP(e.id,t,ek)},className:"flex items-center gap-1 px-2.5 py-1.5 rounded-lg border border-black/10 dark:border-white/10 text-xs text-text-muted hover:text-primary hover:border-primary/40 hover:bg-primary/5 transition-colors",title:`${e.name} \xb7 ${(e.contextLength/1e3).toFixed(0)}k ctx`,children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"add"}),e.id.split("/").pop()]},e.id))})]}))]})})()]}),eW,"kiro"===i?(0,s.jsx)(p.Mh,{isOpen:$,providerInfo:ey,onSuccess:eE,onClose:()=>P(!1)}):"cursor"===i?(0,s.jsx)(p.G9,{isOpen:$,onSuccess:eE,onClose:()=>P(!1)}):"gitlab"===i?(0,s.jsx)(p.vj,{isOpen:$,providerInfo:ey,onSuccess:eE,onClose:()=>P(!1)}):(0,s.jsx)(p.LF,{isOpen:$,provider:i,providerInfo:ey,onSuccess:eE,onClose:()=>P(!1)}),"iflow"===i&&(0,s.jsx)(p.vE,{isOpen:T,onSuccess:()=>{eS(),O(!1)},onClose:()=>O(!1)}),(0,s.jsx)(w,{isOpen:E,provider:i,providerName:ey.name,isCompatible:eN,isAnthropic:ej,proxyPools:v,onSave:eR,onClose:()=>R(!1)}),(0,s.jsx)(C,{isOpen:_,connection:M,proxyPools:v,onSave:e_,onClose:()=>I(!1)}),eN&&(0,s.jsx)(S,{isOpen:D,node:y,onSave:eA,onClose:()=>q(!1),isAnthropic:ej}),!eN&&(0,s.jsx)(A,{isOpen:X,providerAlias:ek,providerDisplayAlias:ew,onSave:async e=>{let t=ey?.passthroughModels?e.split("/").pop():e;await eP(e,t,ek),Y(!1)},onClose:()=>Y(!1)})]}):(0,s.jsxs)("div",{className:"text-center py-20",children:[(0,s.jsx)("p",{className:"text-text-muted",children:"Provider not found"}),(0,s.jsx)(d(),{href:"/dashboard/providers",className:"text-primary mt-4 inline-block",children:"Back to Providers"})]})}function b({model:e,fullModel:t,alias:i,copied:a,onCopy:r,testStatus:n,isCustom:o,isFree:l,onDeleteAlias:d,onTest:c,isTesting:p}){let x="ok"===n?"#22c55e":"error"===n?"#ef4444":void 0;return(0,s.jsx)("div",{className:`group px-3 py-2 rounded-lg border ${"ok"===n?"border-green-500/40":"error"===n?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-base",style:x?{color:x}:void 0,children:"ok"===n?"check_circle":"error"===n?"cancel":"smart_toy"}),(0,s.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),c&&(0,s.jsxs)("div",{className:"relative group/btn",children:[(0,s.jsx)("button",{onClick:c,disabled:p,className:`p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-opacity ${p?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",style:p?{animation:"spin 1s linear infinite"}:void 0,children:p?"progress_activity":"science"})}),(0,s.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:p?"Testing...":"Test"})]}),(0,s.jsxs)("div",{className:"relative group/btn",children:[(0,s.jsx)("button",{onClick:()=>r(t,`model-${e.id}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:a===`model-${e.id}`?"check":"content_copy"})}),(0,s.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:a===`model-${e.id}`?"Copied!":"Copy"})]}),o&&(0,s.jsx)("button",{onClick:d,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 opacity-0 group-hover:opacity-100 transition-opacity ml-auto",title:"Remove custom model",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})})]})})}function v({modelId:e,fullModel:t,copied:i,onCopy:a,onDeleteAlias:r,onTest:n,testStatus:o,isTesting:l}){let d="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,s.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg border ${"ok"===o?"border-green-500/40":"error"===o?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",style:d?{color:d}:void 0,children:"ok"===o?"check_circle":"error"===o?"cancel":"smart_toy"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium truncate",children:e}),(0,s.jsxs)("div",{className:"flex items-center gap-1 mt-1",children:[(0,s.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),isFree&&(0,s.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded bg-green-500/10 text-green-600 dark:text-green-400",children:"Free"}),(0,s.jsxs)("div",{className:"relative group/btn",children:[(0,s.jsx)("button",{onClick:()=>a(t,`model-${e}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:i===`model-${e}`?"check":"content_copy"})}),(0,s.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:i===`model-${e}`?"Copied!":"Copy"})]}),n&&(0,s.jsxs)("div",{className:"relative group/btn",children:[(0,s.jsx)("button",{onClick:n,disabled:l,className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-colors",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",style:l?{animation:"spin 1s linear infinite"}:void 0,children:l?"progress_activity":"science"})}),(0,s.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:l?"Testing...":"Test"})]})]})]}),(0,s.jsx)("button",{onClick:r,className:"p-1 hover:bg-red-50 rounded text-red-500",title:"Remove model",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"delete"})})]})}function j({providerStorageAlias:e,providerDisplayAlias:t,modelAliases:i,copied:r,onCopy:n,onSetAlias:o,onDeleteAlias:l,connections:d,isAnthropic:c}){let[x,m]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1),[y,f]=(0,a.useState)(!1),[g,b]=(0,a.useState)(null),[N,k]=(0,a.useState)({}),w=async t=>{if(!g){b(t);try{let i=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${e}/${t}`})}),s=await i.json();k(e=>({...e,[t]:s.ok?"ok":"error"}))}catch{k(e=>({...e,[t]:"error"}))}finally{b(null)}}},C=Object.entries(i).filter(([,t])=>t.startsWith(`${e}/`)).map(([t,i])=>({modelId:i.replace(`${e}/`,""),fullModel:i,alias:t})),S=s=>{let a,r=`${e}/${s}`;if(Object.values(i).includes(r))return null;let n=(a=s.split("/"))[a.length-1];if(!i[n])return n;let o=`${t}-${n}`;return i[o]?null:o},A=async()=>{if(!x.trim()||u)return;let t=x.trim(),i=S(t);if(!i)return void alert("All suggested aliases already exist. Please choose a different model or remove conflicting aliases.");h(!0);try{await o(t,i,e),m("")}catch(e){console.log("Error adding model:",e)}finally{h(!1)}},$=async()=>{if(y)return;let t=d.find(e=>!1!==e.isActive);if(t){f(!0);try{let i=await fetch(`/api/providers/${t.id}/models`),s=await i.json();if(!i.ok)return void alert(s.error||"Failed to import models");let a=s.models||[];if(0===a.length)return void alert("No models returned from /models.");let r=0;for(let t of a){let i=t.id||t.name||t.model;if(!i)continue;let s=S(i);s&&(await o(i,s,e),r+=1)}0===r&&alert("No new models were added.")}catch(e){console.log("Error importing models:",e)}finally{f(!1)}}},P=d.some(e=>!1!==e.isActive);return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("p",{className:"text-sm text-text-muted",children:["Add ",c?"Anthropic":"OpenAI","-compatible models manually or import them from the /models endpoint."]}),(0,s.jsxs)("div",{className:"flex items-end gap-2 flex-wrap",children:[(0,s.jsxs)("div",{className:"flex-1 min-w-[240px]",children:[(0,s.jsx)("label",{htmlFor:"new-compatible-model-input",className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,s.jsx)("input",{id:"new-compatible-model-input",type:"text",value:x,onChange:e=>m(e.target.value),onKeyDown:e=>"Enter"===e.key&&A(),placeholder:c?"claude-3-opus-20240229":"gpt-4o",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})]}),(0,s.jsx)(p.$n,{size:"sm",icon:"add",onClick:A,disabled:!x.trim()||u,children:u?"Adding...":"Add"}),(0,s.jsx)(p.$n,{size:"sm",variant:"secondary",icon:"download",onClick:$,disabled:!P||y,children:y?"Importing...":"Import from /models"})]}),!P&&(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Add a connection to enable importing models."}),C.length>0&&(0,s.jsx)("div",{className:"flex flex-col gap-3",children:C.map(({modelId:e,fullModel:i,alias:a})=>(0,s.jsx)(v,{modelId:e,fullModel:`${t}/${e}`,copied:r,onCopy:n,onDeleteAlias:()=>l(a),onTest:d.length>0?()=>w(e):void 0,testStatus:N[e],isTesting:g===e},i))})]})}function N({until:e}){let[t,i]=(0,a.useState)("");return((0,a.useEffect)(()=>{let t=()=>{let t=new Date(e).getTime()-Date.now();if(t<=0)return void i("");let s=Math.floor(t/1e3);if(s<60)i(`${s}s`);else if(s<3600)i(`${Math.floor(s/60)}m ${s%60}s`);else{let e=Math.floor(s/3600),t=Math.floor(s%3600/60);i(`${e}h ${t}m`)}};t();let s=setInterval(t,1e3);return()=>clearInterval(s)},[e]),t)?(0,s.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",t]}):null}function k({connection:e,proxyPools:t,isOAuth:i,isFirst:r,isLast:n,onMoveUp:o,onMoveDown:l,onToggleActive:d,onUpdateProxy:c,onEdit:x,onDelete:m}){let[u,h]=(0,a.useState)(!1),[y,f]=(0,a.useState)(!1),g=(0,a.useRef)(null),b=new Map((t||[]).map(e=>[e.id,e])),v=e.providerSpecificData?.proxyPoolId||null,j=v?b.get(v):null,w=e.providerSpecificData?.connectionProxyEnabled===!0&&!!e.providerSpecificData?.connectionProxyUrl,C=!!v||w,S=j?`Pool: ${j.name}`:v?`Pool: ${v} (inactive/missing)`:w?`Legacy: ${e.providerSpecificData?.connectionProxyUrl}`:"",A="";if(j?.proxyUrl||e.providerSpecificData?.connectionProxyUrl){let t=j?.proxyUrl||e.providerSpecificData?.connectionProxyUrl;try{let e=new URL(t);A=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}`}catch{A=t}}let $=j?.noProxy||e.providerSpecificData?.connectionNoProxy||"",P="default";j?.isActive===!0?P="success":(v||w)&&(P="error"),(0,a.useEffect)(()=>{if(!u)return;let e=e=>{g.current&&!g.current.contains(e.target)&&h(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[u]);let T=async e=>{f(!0);try{await c("__none__"===e?null:e)}finally{f(!1),h(!1)}},O=i?e.name||e.email||e.displayName||"OAuth Account":e.name,[E,R]=(0,a.useState)(!1),_=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>!!e).sort()[0]||null;(0,a.useEffect)(()=>{let t=()=>{R(!!Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>e&&new Date(e).getTime()>Date.now()).sort()[0])};t();let i=_?setInterval(t,1e3):null;return()=>{i&&clearInterval(i)}},[_]);let I="unavailable"!==e.testStatus||E?e.testStatus:"active";return(0,s.jsxs)("div",{className:`group flex items-center justify-between p-3 rounded-lg hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors ${!1===e.isActive?"opacity-60":""}`,children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsx)("button",{onClick:o,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,s.jsx)("button",{onClick:l,disabled:n,className:`p-0.5 rounded ${n?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,s.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,s.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",children:i?"lock":"key"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium truncate",children:O}),(0,s.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,s.jsx)(p.Ex,{variant:!1===e.isActive?"default":"active"===I||"success"===I?"success":"error"===I||"expired"===I||"unavailable"===I?"error":"default",size:"sm",dot:!0,children:!1===e.isActive?"disabled":I||"Unknown"}),C&&(0,s.jsx)(p.Ex,{variant:P,size:"sm",children:"Proxy"}),E&&!1!==e.isActive&&(0,s.jsx)(N,{until:_}),e.lastError&&!1!==e.isActive&&(0,s.jsx)("span",{className:"text-xs text-red-500 truncate max-w-[300px]",title:e.lastError,children:e.lastError}),(0,s.jsxs)("span",{className:"text-xs text-text-muted",children:["#",e.priority]}),e.globalPriority&&(0,s.jsxs)("span",{className:"text-xs text-text-muted",children:["Auto: ",e.globalPriority]})]}),C&&(0,s.jsxs)("div",{className:"mt-1 flex items-center gap-2 flex-wrap",children:[(0,s.jsx)("span",{className:"text-[11px] text-text-muted truncate max-w-[420px]",title:S,children:S}),A&&(0,s.jsx)("code",{className:"text-[10px] font-mono bg-black/5 dark:bg-white/5 px-1 py-0.5 rounded text-text-muted",children:A}),$&&(0,s.jsxs)("span",{className:"text-[11px] text-text-muted truncate max-w-[320px]",title:$,children:["no_proxy: ",$]})]})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("div",{className:"flex gap-1",children:[(t||[]).length>0&&(0,s.jsxs)("div",{className:"relative",ref:g,children:[(0,s.jsxs)("button",{onClick:()=>h(e=>!e),className:`flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 transition-colors ${C?"text-primary":"text-text-muted hover:text-primary"}`,disabled:y,children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:y?"progress_activity":"lan"}),(0,s.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),u&&(0,s.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 bg-bg border border-border rounded-lg shadow-lg py-1 min-w-[160px]",children:[(0,s.jsx)("button",{onClick:()=>T("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!v?"text-primary font-medium":"text-text-main"}`,children:"None"}),(t||[]).map(e=>(0,s.jsx)("button",{onClick:()=>T(e.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${v===e.id?"text-primary font-medium":"text-text-main"}`,children:e.name},e.id))]})]}),(0,s.jsxs)("button",{onClick:x,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,s.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,s.jsxs)("button",{onClick:m,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-red-500/10 text-red-500",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,s.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,s.jsx)(p.lM,{size:"sm",checked:e.isActive??!0,onChange:d,title:e.isActive??!0?"Disable connection":"Enable connection"})]})]})}function w({isOpen:e,provider:t,providerName:i,isCompatible:r,isAnthropic:n,proxyPools:o,onSave:l,onClose:d}){let c="__none__",[x,m]=(0,a.useState)({name:"",apiKey:"",priority:1,proxyPoolId:c}),[u,h]=(0,a.useState)(!1),[y,f]=(0,a.useState)(null),[g,b]=(0,a.useState)(!1),v=async()=>{h(!0);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:x.apiKey})}),i=await e.json();f(i.valid?"success":"failed")}catch{f("failed")}finally{h(!1)}},j=async()=>{if(t&&x.apiKey){b(!0);try{let e=!1;try{h(!0),f(null);let i=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:x.apiKey})});e=!!(await i.json()).valid,f(e?"success":"failed")}catch{f("failed")}finally{h(!1)}await l({name:x.name,apiKey:x.apiKey,priority:x.priority,proxyPoolId:x.proxyPoolId===c?null:x.proxyPoolId,testStatus:e?"active":"unknown",providerSpecificData:void 0})}finally{b(!1)}}};return t?(0,s.jsx)(p.aF,{isOpen:e,title:`Add ${i||t} API Key`,onClose:d,children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)(p.pd,{label:"Name",value:x.name,onChange:e=>m({...x,name:e.target.value}),placeholder:"Production Key"}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.pd,{label:"API Key",type:"password",value:x.apiKey,onChange:e=>m({...x,apiKey:e.target.value}),className:"flex-1"}),(0,s.jsx)("div",{className:"pt-6",children:(0,s.jsx)(p.$n,{onClick:v,disabled:!x.apiKey||u||g,variant:"secondary",children:u?"Checking...":"Check"})})]}),y&&(0,s.jsx)(p.Ex,{variant:"success"===y?"success":"error",children:"success"===y?"Valid":"Invalid"}),r&&(0,s.jsx)("p",{className:"text-xs text-text-muted",children:n?`Validation checks ${i||"Anthropic Compatible"} by verifying the API key.`:`Validation checks ${i||"OpenAI Compatible"} via /models on your base URL.`}),(0,s.jsx)(p.pd,{label:"Priority",type:"number",value:x.priority,onChange:e=>m({...x,priority:Number.parseInt(e.target.value)||1})}),(0,s.jsx)(p.l6,{label:"Proxy Pool",value:x.proxyPoolId,onChange:e=>m({...x,proxyPoolId:e.target.value}),options:[{value:c,label:"None"},...(o||[]).map(e=>({value:e.id,label:e.name}))],placeholder:"None"}),0===(o||[]).length&&(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"No active proxy pools available. Create one in Proxy Pools page first."}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Legacy manual proxy fields are still accepted by API for backward compatibility."}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.$n,{onClick:j,fullWidth:!0,disabled:!x.name||!x.apiKey||g,children:g?"Saving...":"Save"}),(0,s.jsx)(p.$n,{onClick:d,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function C({isOpen:e,connection:t,proxyPools:i,onSave:r,onClose:n}){let[o,l]=(0,a.useState)({name:"",priority:1,apiKey:""}),[d,c]=(0,a.useState)(!1),[m,u]=(0,a.useState)(null),[h,y]=(0,a.useState)(!1),[f,g]=(0,a.useState)(null),[b,v]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t&&(l({name:t.name||"",priority:t.priority||1,apiKey:""}),u(null),g(null))},[t]);let j=async()=>{if(t?.provider){c(!0),u(null);try{let e=await fetch(`/api/providers/${t.id}/test`,{method:"POST"}),i=await e.json();u(i.valid?"success":"failed")}catch{u("failed")}finally{c(!1)}}},N=async()=>{if(t?.provider&&o.apiKey){y(!0),g(null);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t.provider,apiKey:o.apiKey})}),i=await e.json();g(i.valid?"success":"failed")}catch{g("failed")}finally{y(!1)}}},k=async()=>{v(!0);try{let e={name:o.name,priority:o.priority};if(!w&&o.apiKey){e.apiKey=o.apiKey;let i="success"===f;if(!i)try{y(!0),g(null);let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t.provider,apiKey:o.apiKey})});i=!!(await e.json()).valid,g(i?"success":"failed")}catch{g("failed")}finally{y(!1)}i&&(e.testStatus="active",e.lastError=null,e.lastErrorAt=null)}await r(e)}finally{v(!1)}};if(!t)return null;let w="oauth"===t.authType,S=(0,x.mq)(t.provider)||(0,x.gb)(t.provider);return(0,s.jsx)(p.aF,{isOpen:e,title:"Edit Connection",onClose:n,children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)(p.pd,{label:"Name",value:o.name,onChange:e=>l({...o,name:e.target.value}),placeholder:w?"Account name":"Production Key"}),w&&t.email&&(0,s.jsxs)("div",{className:"bg-sidebar/50 p-3 rounded-lg",children:[(0,s.jsx)("p",{className:"text-sm text-text-muted mb-1",children:"Email"}),(0,s.jsx)("p",{className:"font-medium",children:t.email})]}),(0,s.jsx)(p.pd,{label:"Priority",type:"number",value:o.priority,onChange:e=>l({...o,priority:Number.parseInt(e.target.value)||1})}),!w&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.pd,{label:"API Key",type:"password",value:o.apiKey,onChange:e=>l({...o,apiKey:e.target.value}),placeholder:"Enter new API key",hint:"Leave blank to keep the current API key.",className:"flex-1"}),(0,s.jsx)("div",{className:"pt-6",children:(0,s.jsx)(p.$n,{onClick:N,disabled:!o.apiKey||h||b,variant:"secondary",children:h?"Checking...":"Check"})})]}),f&&(0,s.jsx)(p.Ex,{variant:"success"===f?"success":"error",children:"success"===f?"Valid":"Invalid"})]}),!S&&(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(p.$n,{onClick:j,variant:"secondary",disabled:d,children:d?"Testing...":"Test Connection"}),m&&(0,s.jsx)(p.Ex,{variant:"success"===m?"success":"error",children:"success"===m?"Valid":"Failed"})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.$n,{onClick:k,fullWidth:!0,disabled:b,children:b?"Saving...":"Save"}),(0,s.jsx)(p.$n,{onClick:n,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function S({isOpen:e,node:t,onSave:i,onClose:r,isAnthropic:n}){let[o,l]=(0,a.useState)({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),[d,c]=(0,a.useState)(!1),[x,m]=(0,a.useState)(""),[u,h]=(0,a.useState)(""),[y,f]=(0,a.useState)(!1),[g,b]=(0,a.useState)(null);(0,a.useEffect)(()=>{t&&l({name:t.name||"",prefix:t.prefix||"",apiType:t.apiType||"chat",baseUrl:t.baseUrl||(n?"https://api.anthropic.com/v1":"https://api.openai.com/v1")})},[t,n]);let v=async()=>{if(o.name.trim()&&o.prefix.trim()&&o.baseUrl.trim()){c(!0);try{let e={name:o.name,prefix:o.prefix,baseUrl:o.baseUrl};n||(e.apiType=o.apiType),await i(e)}finally{c(!1)}}},j=async()=>{f(!0);try{let e=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:o.baseUrl,apiKey:x,type:n?"anthropic-compatible":"openai-compatible",modelId:u.trim()||void 0})}),t=await e.json();b(t.valid?"success":"failed")}catch{b("failed")}finally{f(!1)}};return t?(0,s.jsx)(p.aF,{isOpen:e,title:`Edit ${n?"Anthropic":"OpenAI"} Compatible`,onClose:r,children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)(p.pd,{label:"Name",value:o.name,onChange:e=>l({...o,name:e.target.value}),placeholder:`${n?"Anthropic":"OpenAI"} Compatible (Prod)`,hint:"Required. A friendly label for this node."}),(0,s.jsx)(p.pd,{label:"Prefix",value:o.prefix,onChange:e=>l({...o,prefix:e.target.value}),placeholder:n?"ac-prod":"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),!n&&(0,s.jsx)(p.l6,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:o.apiType,onChange:e=>l({...o,apiType:e.target.value})}),(0,s.jsx)(p.pd,{label:"Base URL",value:o.baseUrl,onChange:e=>l({...o,baseUrl:e.target.value}),placeholder:n?"https://api.anthropic.com/v1":"https://api.openai.com/v1",hint:`Use the base URL (ending in /v1) for your ${n?"Anthropic":"OpenAI"}-compatible API.`}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.pd,{label:"API Key (for Check)",type:"password",value:x,onChange:e=>m(e.target.value),className:"flex-1"}),(0,s.jsx)("div",{className:"pt-6",children:(0,s.jsx)(p.$n,{onClick:j,disabled:!x||y||!o.baseUrl.trim(),variant:"secondary",children:y?"Checking...":"Check"})})]}),(0,s.jsx)(p.pd,{label:"Model ID (optional)",value:u,onChange:e=>h(e.target.value),placeholder:"e.g. my-model-id",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),g&&(0,s.jsx)(p.Ex,{variant:"success"===g?"success":"error",children:"success"===g?"Valid":"Invalid"}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(p.$n,{onClick:v,fullWidth:!0,disabled:!o.name.trim()||!o.prefix.trim()||!o.baseUrl.trim()||d,children:d?"Saving...":"Save"}),(0,s.jsx)(p.$n,{onClick:r,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function A({isOpen:e,providerAlias:t,providerDisplayAlias:i,onSave:r,onClose:n}){let[o,l]=(0,a.useState)(""),[d,c]=(0,a.useState)(null),[x,m]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1);(0,a.useEffect)(()=>{e&&(l(""),c(null),m(""))},[e]);let y=async()=>{if(o.trim()){c("testing"),m("");try{let e=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${t}/${o.trim()}`})}),i=await e.json();c(i.ok?"ok":"error"),m(i.error||"")}catch(e){c("error"),m(e.message)}}},f=async()=>{if(o.trim()&&!u){h(!0);try{await r(o.trim())}finally{h(!1)}}};return(0,s.jsx)(p.aF,{isOpen:e,onClose:n,title:"Add Custom Model",children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Model ID"}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{type:"text",value:o,onChange:e=>{l(e.target.value),c(null),m("")},onKeyDown:e=>{"Enter"===e.key&&y()},placeholder:"e.g. claude-opus-4-5",className:"flex-1 px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",autoFocus:!0}),(0,s.jsx)(p.$n,{variant:"secondary",icon:"science",loading:"testing"===d,onClick:y,disabled:!o.trim()||"testing"===d,children:"testing"===d?"Testing...":"Test"})]}),(0,s.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Sent to provider as: ",(0,s.jsx)("code",{className:"font-mono bg-sidebar px-1 rounded",children:o.trim()||"model-id"})]})]}),"ok"===d&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-base",children:"check_circle"}),"Model is reachable"]}),"error"===d&&(0,s.jsxs)("div",{className:"flex items-start gap-2 text-sm text-red-500",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-base shrink-0",children:"cancel"}),(0,s.jsx)("span",{children:x||"Model not reachable"})]}),(0,s.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,s.jsx)(p.$n,{onClick:n,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,s.jsx)(p.$n,{onClick:f,fullWidth:!0,size:"sm",disabled:!o.trim()||u,children:u?"Adding...":"Add Model"})]})]})})}b.propTypes={model:n().shape({id:n().string.isRequired}).isRequired,fullModel:n().string.isRequired,alias:n().string,copied:n().string,onCopy:n().func.isRequired,testStatus:n().oneOf(["ok","error"]),isCustom:n().bool,isFree:n().bool,onDeleteAlias:n().func,onTest:n().func,isTesting:n().bool},n().string.isRequired,n().object.isRequired,n().string,n().func.isRequired,n().func.isRequired,n().func.isRequired,v.propTypes={modelId:n().string.isRequired,fullModel:n().string.isRequired,copied:n().string,onCopy:n().func.isRequired,onDeleteAlias:n().func.isRequired,onTest:n().func,testStatus:n().oneOf(["ok","error"]),isTesting:n().bool},j.propTypes={providerStorageAlias:n().string.isRequired,providerDisplayAlias:n().string.isRequired,modelAliases:n().object.isRequired,copied:n().string,onCopy:n().func.isRequired,onSetAlias:n().func.isRequired,onDeleteAlias:n().func.isRequired,connections:n().arrayOf(n().shape({id:n().string,isActive:n().bool})).isRequired,isAnthropic:n().bool},N.propTypes={until:n().string.isRequired},k.propTypes={connection:n().shape({id:n().string,name:n().string,email:n().string,displayName:n().string,modelLockUntil:n().string,testStatus:n().string,isActive:n().bool,lastError:n().string,priority:n().number,globalPriority:n().number}).isRequired,proxyPools:n().arrayOf(n().shape({id:n().string,name:n().string,proxyUrl:n().string,noProxy:n().string,isActive:n().bool})),isOAuth:n().bool.isRequired,isFirst:n().bool.isRequired,isLast:n().bool.isRequired,onMoveUp:n().func.isRequired,onMoveDown:n().func.isRequired,onToggleActive:n().func.isRequired,onUpdateProxy:n().func,onEdit:n().func.isRequired,onDelete:n().func.isRequired},w.propTypes={isOpen:n().bool.isRequired,provider:n().string,providerName:n().string,isCompatible:n().bool,isAnthropic:n().bool,proxyPools:n().arrayOf(n().shape({id:n().string,name:n().string})),onSave:n().func.isRequired,onClose:n().func.isRequired},C.propTypes={isOpen:n().bool.isRequired,connection:n().shape({id:n().string,name:n().string,email:n().string,priority:n().number,authType:n().string,provider:n().string,providerSpecificData:n().object}),proxyPools:n().arrayOf(n().shape({id:n().string,name:n().string})),onSave:n().func.isRequired,onClose:n().func.isRequired},S.propTypes={isOpen:n().bool.isRequired,node:n().shape({id:n().string,name:n().string,prefix:n().string,apiType:n().string,baseUrl:n().string}),onSave:n().func.isRequired,onClose:n().func.isRequired,isAnthropic:n().bool},A.propTypes={isOpen:n().bool.isRequired,providerAlias:n().string.isRequired,providerDisplayAlias:n().string.isRequired,onSave:n().func.isRequired,onClose:n().func.isRequired}}},e=>{e.O(0,[7848,4335,2599,8872,350,4156,2347,5158,7358],()=>e(e.s=7207)),_N_E=e.O()}]);
|
|
File without changes
|
|
File without changes
|