@rulemetric/local 0.13.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,147 +0,0 @@
1
- var xb=es=>{throw TypeError(es)};var aj=(es,$,ts)=>$.has(es)||xb("Cannot "+ts);var Ja=(es,$,ts)=>(aj(es,$,"read from private field"),ts?ts.call(es):$.get(es)),Hl=(es,$,ts)=>$.has(es)?xb("Cannot add the same private member more than once"):$ instanceof WeakSet?$.add(es):$.set(es,ts),Pl=(es,$,ts,is)=>(aj(es,$,"write to private field"),is?is.call(es,ts):$.set(es,ts),ts),Xl=(es,$,ts)=>(aj(es,$,"access private method"),ts);var Gp=(es,$,ts,is)=>({set _(Kr){Pl(es,$,Kr,ts)},get _(){return Ja(es,$,is)}});import{r as requireReact,a as requireReactDom,b as reactExports,j as jsxRuntimeExports,R as React,c as ReactDOM,L as LoaderCircle,O as OctagonX,T as TriangleAlert,I as Info,C as CircleCheck,B as Button,_ as __awaiter,d as __rest,e as cn$1,N as Navigate,f as Outlet,g as getAugmentedNamespace,u as useLocation,h as Root,i as LayoutDashboard,P as Plug,A as Activity,k as Layers,F as FlaskConical,l as TrendingUp,m as Brain,D as DollarSign,S as Sparkles,G as Globe,n as Lightbulb,o as TestTube,p as SlidersHorizontal,q as BookOpen,s as Link,t as Shield,M as Megaphone,v as Root2,w as Trigger,x as Portal2,y as Content2,z as Item2,E as Separator2,H as Label2,J as Root$1,K as Fallback,Q as Root$2,U as Content,V as Close,X as X$1,W as Title,Y as Description,Z as Trigger$1,$ as Portal,a0 as Overlay,a1 as useNavigate,a2 as Bell,a3 as CheckCheck,a4 as CircleAlert,a5 as ClipboardList,a6 as BadgeCheck,a7 as BellRing,a8 as Menu,a9 as User,aa as LogOut,ab as CircleArrowUp,ac as UPDATE_CLI_SHORT,ad as CircleX,ae as INSTALL_CLI,af as useCopyToClipboard,ag as Check,ah as Copy,ai as INSTALL_CLI_LATEST,aj as Hourglass,ak as RefreshCw,al as Badge,am as PartyPopper,an as Radar,ao as Send,ap as ClipboardCheck,aq as ArrowRight,ar as ChartColumn,as as ShieldCheck,at as History,au as HardDrive,av as Lock,aw as Terminal,ax as GraduationCap,ay as Zap,az as Cpu,aA as CodeXml,aB as TrendingDown,aC as Github,aD as Root$3,aE as useSearchParams,aF as Card,aG as CardHeader,aH as CardTitle,aI as CardDescription,aJ as CardContent,aK as CardFooter,aL as Provider,aM as Root3,aN as Trigger$2,aO as Portal$1,aP as Content2$1,aQ as Arrow2,aR as MessageSquare,aS as GitCommitHorizontal,aT as Clock,aU as FileText,aV as ChevronRight,aW as useTabParam,aX as Tabs,aY as TabsList,aZ as TabsTrigger,a_ as TabsContent,a$ as Download,b0 as Wifi,b1 as WifiOff,b2 as Key,b3 as EyeOff,b4 as Eye,b5 as Plus,b6 as Trash2,b7 as FileJson,b8 as ChevronDown,b9 as ArrowUp,ba as ArrowDown,bb as ArrowUpDown,bc as useParams,bd as ArrowLeft,be as GitBranch,bf as CircleHelp,bg as Root2$1,bh as Trigger$3,bi as Icon,bj as Value,bk as Portal$2,bl as Content2$2,bm as Viewport,bn as Item,bo as ItemIndicator,bp as ItemText,bq as ScrollUpButton,br as ChevronUp,bs as ScrollDownButton,bt as Rocket,bu as Folder,bv as Play,bw as ThumbsUp,bx as ThumbsDown,by as Square,bz as DocsPage,bA as CircleDashed,bB as Package,bC as Wrench,bD as ExternalLink,bE as Upload,bF as Search,bG as Pencil,bH as RotateCcw,bI as Archive,bJ as Star,bK as CircleMinus,bL as Ban,bM as Gauge,bN as Building2,bO as Users,bP as Mail,bQ as UserPlus,bR as Ellipsis,bS as ArrowRightLeft,bT as Database,bU as UserCheck,bV as ShieldAlert,bW as BrowserRouter,bX as Routes,bY as Route}from"./docs-CP7YCEUM.js";(function(){const $=document.createElement("link").relList;if($&&$.supports&&$.supports("modulepreload"))return;for(const Kr of document.querySelectorAll('link[rel="modulepreload"]'))is(Kr);new MutationObserver(Kr=>{for(const Qr of Kr)if(Qr.type==="childList")for(const ja of Qr.addedNodes)ja.tagName==="LINK"&&ja.rel==="modulepreload"&&is(ja)}).observe(document,{childList:!0,subtree:!0});function ts(Kr){const Qr={};return Kr.integrity&&(Qr.integrity=Kr.integrity),Kr.referrerPolicy&&(Qr.referrerPolicy=Kr.referrerPolicy),Kr.crossOrigin==="use-credentials"?Qr.credentials="include":Kr.crossOrigin==="anonymous"?Qr.credentials="omit":Qr.credentials="same-origin",Qr}function is(Kr){if(Kr.ep)return;Kr.ep=!0;const Qr=ts(Kr);fetch(Kr.href,Qr)}})();var client={exports:{}},reactDomClient_production={},scheduler={exports:{}},scheduler_production={};/**
2
- * @license React
3
- * scheduler.production.js
4
- *
5
- * Copyright (c) Meta Platforms, Inc. and affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var hasRequiredScheduler_production;function requireScheduler_production(){return hasRequiredScheduler_production||(hasRequiredScheduler_production=1,(function(es){function $(ul,hl){var jl=ul.length;ul.push(hl);e:for(;0<jl;){var Nl=jl-1>>>1,zl=ul[Nl];if(0<Kr(zl,hl))ul[Nl]=hl,ul[jl]=zl,jl=Nl;else break e}}function ts(ul){return ul.length===0?null:ul[0]}function is(ul){if(ul.length===0)return null;var hl=ul[0],jl=ul.pop();if(jl!==hl){ul[0]=jl;e:for(var Nl=0,zl=ul.length,Zl=zl>>>1;Nl<Zl;){var $l=2*(Nl+1)-1,Il=ul[$l],ql=$l+1,Fl=ul[ql];if(0>Kr(Il,jl))ql<zl&&0>Kr(Fl,Il)?(ul[Nl]=Fl,ul[ql]=jl,Nl=ql):(ul[Nl]=Il,ul[$l]=jl,Nl=$l);else if(ql<zl&&0>Kr(Fl,jl))ul[Nl]=Fl,ul[ql]=jl,Nl=ql;else break e}}return hl}function Kr(ul,hl){var jl=ul.sortIndex-hl.sortIndex;return jl!==0?jl:ul.id-hl.id}if(es.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var Qr=performance;es.unstable_now=function(){return Qr.now()}}else{var ja=Date,Ca=ja.now();es.unstable_now=function(){return ja.now()-Ca}}var Aa=[],Oa=[],Ia=1,Da=null,Ba=3,Ma=!1,Fa=!1,qa=!1,Ha=!1,Ka=typeof setTimeout=="function"?setTimeout:null,Qa=typeof clearTimeout=="function"?clearTimeout:null,Va=typeof setImmediate<"u"?setImmediate:null;function Ya(ul){for(var hl=ts(Oa);hl!==null;){if(hl.callback===null)is(Oa);else if(hl.startTime<=ul)is(Oa),hl.sortIndex=hl.expirationTime,$(Aa,hl);else break;hl=ts(Oa)}}function Wa(ul){if(qa=!1,Ya(ul),!Fa)if(ts(Aa)!==null)Fa=!0,el||(el=!0,nl());else{var hl=ts(Oa);hl!==null&&Tl(Wa,hl.startTime-ul)}}var el=!1,tl=-1,rl=5,cl=-1;function dl(){return Ha?!0:!(es.unstable_now()-cl<rl)}function fl(){if(Ha=!1,el){var ul=es.unstable_now();cl=ul;var hl=!0;try{e:{Fa=!1,qa&&(qa=!1,Qa(tl),tl=-1),Ma=!0;var jl=Ba;try{t:{for(Ya(ul),Da=ts(Aa);Da!==null&&!(Da.expirationTime>ul&&dl());){var Nl=Da.callback;if(typeof Nl=="function"){Da.callback=null,Ba=Da.priorityLevel;var zl=Nl(Da.expirationTime<=ul);if(ul=es.unstable_now(),typeof zl=="function"){Da.callback=zl,Ya(ul),hl=!0;break t}Da===ts(Aa)&&is(Aa),Ya(ul)}else is(Aa);Da=ts(Aa)}if(Da!==null)hl=!0;else{var Zl=ts(Oa);Zl!==null&&Tl(Wa,Zl.startTime-ul),hl=!1}}break e}finally{Da=null,Ba=jl,Ma=!1}hl=void 0}}finally{hl?nl():el=!1}}}var nl;if(typeof Va=="function")nl=function(){Va(fl)};else if(typeof MessageChannel<"u"){var ol=new MessageChannel,pl=ol.port2;ol.port1.onmessage=fl,nl=function(){pl.postMessage(null)}}else nl=function(){Ka(fl,0)};function Tl(ul,hl){tl=Ka(function(){ul(es.unstable_now())},hl)}es.unstable_IdlePriority=5,es.unstable_ImmediatePriority=1,es.unstable_LowPriority=4,es.unstable_NormalPriority=3,es.unstable_Profiling=null,es.unstable_UserBlockingPriority=2,es.unstable_cancelCallback=function(ul){ul.callback=null},es.unstable_forceFrameRate=function(ul){0>ul||125<ul?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):rl=0<ul?Math.floor(1e3/ul):5},es.unstable_getCurrentPriorityLevel=function(){return Ba},es.unstable_next=function(ul){switch(Ba){case 1:case 2:case 3:var hl=3;break;default:hl=Ba}var jl=Ba;Ba=hl;try{return ul()}finally{Ba=jl}},es.unstable_requestPaint=function(){Ha=!0},es.unstable_runWithPriority=function(ul,hl){switch(ul){case 1:case 2:case 3:case 4:case 5:break;default:ul=3}var jl=Ba;Ba=ul;try{return hl()}finally{Ba=jl}},es.unstable_scheduleCallback=function(ul,hl,jl){var Nl=es.unstable_now();switch(typeof jl=="object"&&jl!==null?(jl=jl.delay,jl=typeof jl=="number"&&0<jl?Nl+jl:Nl):jl=Nl,ul){case 1:var zl=-1;break;case 2:zl=250;break;case 5:zl=1073741823;break;case 4:zl=1e4;break;default:zl=5e3}return zl=jl+zl,ul={id:Ia++,callback:hl,priorityLevel:ul,startTime:jl,expirationTime:zl,sortIndex:-1},jl>Nl?(ul.sortIndex=jl,$(Oa,ul),ts(Aa)===null&&ul===ts(Oa)&&(qa?(Qa(tl),tl=-1):qa=!0,Tl(Wa,jl-Nl))):(ul.sortIndex=zl,$(Aa,ul),Fa||Ma||(Fa=!0,el||(el=!0,nl()))),ul},es.unstable_shouldYield=dl,es.unstable_wrapCallback=function(ul){var hl=Ba;return function(){var jl=Ba;Ba=hl;try{return ul.apply(this,arguments)}finally{Ba=jl}}}})(scheduler_production)),scheduler_production}var hasRequiredScheduler;function requireScheduler(){return hasRequiredScheduler||(hasRequiredScheduler=1,scheduler.exports=requireScheduler_production()),scheduler.exports}/**
10
- * @license React
11
- * react-dom-client.production.js
12
- *
13
- * Copyright (c) Meta Platforms, Inc. and affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */var hasRequiredReactDomClient_production;function requireReactDomClient_production(){if(hasRequiredReactDomClient_production)return reactDomClient_production;hasRequiredReactDomClient_production=1;var es=requireScheduler(),$=requireReact(),ts=requireReactDom();function is(os){var cs="https://react.dev/errors/"+os;if(1<arguments.length){cs+="?args[]="+encodeURIComponent(arguments[1]);for(var Xr=2;Xr<arguments.length;Xr++)cs+="&args[]="+encodeURIComponent(arguments[Xr])}return"Minified React error #"+os+"; visit "+cs+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function Kr(os){return!(!os||os.nodeType!==1&&os.nodeType!==9&&os.nodeType!==11)}function Qr(os){var cs=os,Xr=os;if(os.alternate)for(;cs.return;)cs=cs.return;else{os=cs;do cs=os,(cs.flags&4098)!==0&&(Xr=cs.return),os=cs.return;while(os)}return cs.tag===3?Xr:null}function ja(os){if(os.tag===13){var cs=os.memoizedState;if(cs===null&&(os=os.alternate,os!==null&&(cs=os.memoizedState)),cs!==null)return cs.dehydrated}return null}function Ca(os){if(os.tag===31){var cs=os.memoizedState;if(cs===null&&(os=os.alternate,os!==null&&(cs=os.memoizedState)),cs!==null)return cs.dehydrated}return null}function Aa(os){if(Qr(os)!==os)throw Error(is(188))}function Oa(os){var cs=os.alternate;if(!cs){if(cs=Qr(os),cs===null)throw Error(is(188));return cs!==os?null:os}for(var Xr=os,Na=cs;;){var La=Xr.return;if(La===null)break;var Pa=La.alternate;if(Pa===null){if(Na=La.return,Na!==null){Xr=Na;continue}break}if(La.child===Pa.child){for(Pa=La.child;Pa;){if(Pa===Xr)return Aa(La),os;if(Pa===Na)return Aa(La),cs;Pa=Pa.sibling}throw Error(is(188))}if(Xr.return!==Na.return)Xr=La,Na=Pa;else{for(var za=!1,Za=La.child;Za;){if(Za===Xr){za=!0,Xr=La,Na=Pa;break}if(Za===Na){za=!0,Na=La,Xr=Pa;break}Za=Za.sibling}if(!za){for(Za=Pa.child;Za;){if(Za===Xr){za=!0,Xr=Pa,Na=La;break}if(Za===Na){za=!0,Na=Pa,Xr=La;break}Za=Za.sibling}if(!za)throw Error(is(189))}}if(Xr.alternate!==Na)throw Error(is(190))}if(Xr.tag!==3)throw Error(is(188));return Xr.stateNode.current===Xr?os:cs}function Ia(os){var cs=os.tag;if(cs===5||cs===26||cs===27||cs===6)return os;for(os=os.child;os!==null;){if(cs=Ia(os),cs!==null)return cs;os=os.sibling}return null}var Da=Object.assign,Ba=Symbol.for("react.element"),Ma=Symbol.for("react.transitional.element"),Fa=Symbol.for("react.portal"),qa=Symbol.for("react.fragment"),Ha=Symbol.for("react.strict_mode"),Ka=Symbol.for("react.profiler"),Qa=Symbol.for("react.consumer"),Va=Symbol.for("react.context"),Ya=Symbol.for("react.forward_ref"),Wa=Symbol.for("react.suspense"),el=Symbol.for("react.suspense_list"),tl=Symbol.for("react.memo"),rl=Symbol.for("react.lazy"),cl=Symbol.for("react.activity"),dl=Symbol.for("react.memo_cache_sentinel"),fl=Symbol.iterator;function nl(os){return os===null||typeof os!="object"?null:(os=fl&&os[fl]||os["@@iterator"],typeof os=="function"?os:null)}var ol=Symbol.for("react.client.reference");function pl(os){if(os==null)return null;if(typeof os=="function")return os.$$typeof===ol?null:os.displayName||os.name||null;if(typeof os=="string")return os;switch(os){case qa:return"Fragment";case Ka:return"Profiler";case Ha:return"StrictMode";case Wa:return"Suspense";case el:return"SuspenseList";case cl:return"Activity"}if(typeof os=="object")switch(os.$$typeof){case Fa:return"Portal";case Va:return os.displayName||"Context";case Qa:return(os._context.displayName||"Context")+".Consumer";case Ya:var cs=os.render;return os=os.displayName,os||(os=cs.displayName||cs.name||"",os=os!==""?"ForwardRef("+os+")":"ForwardRef"),os;case tl:return cs=os.displayName||null,cs!==null?cs:pl(os.type)||"Memo";case rl:cs=os._payload,os=os._init;try{return pl(os(cs))}catch{}}return null}var Tl=Array.isArray,ul=$.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,hl=ts.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,jl={pending:!1,data:null,method:null,action:null},Nl=[],zl=-1;function Zl(os){return{current:os}}function $l(os){0>zl||(os.current=Nl[zl],Nl[zl]=null,zl--)}function Il(os,cs){zl++,Nl[zl]=os.current,os.current=cs}var ql=Zl(null),Fl=Zl(null),ru=Zl(null),Gl=Zl(null);function cu(os,cs){switch(Il(ru,cs),Il(Fl,os),Il(ql,null),cs.nodeType){case 9:case 11:os=(os=cs.documentElement)&&(os=os.namespaceURI)?PE(os):0;break;default:if(os=cs.tagName,cs=cs.namespaceURI)cs=PE(cs),os=$E(cs,os);else switch(os){case"svg":os=1;break;case"math":os=2;break;default:os=0}}$l(ql),Il(ql,os)}function Al(){$l(ql),$l(Fl),$l(ru)}function Ml(os){os.memoizedState!==null&&Il(Gl,os);var cs=ql.current,Xr=$E(cs,os.type);cs!==Xr&&(Il(Fl,os),Il(ql,Xr))}function Ql(os){Fl.current===os&&($l(ql),$l(Fl)),Gl.current===os&&($l(Gl),vh._currentValue=jl)}var eu,xu;function fu(os){if(eu===void 0)try{throw Error()}catch(Xr){var cs=Xr.stack.trim().match(/\n( *(at )?)/);eu=cs&&cs[1]||"",xu=-1<Xr.stack.indexOf(`
18
- at`)?" (<anonymous>)":-1<Xr.stack.indexOf("@")?"@unknown:0:0":""}return`
19
- `+eu+os+xu}var Iu=!1;function yu(os,cs){if(!os||Iu)return"";Iu=!0;var Xr=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var Na={DetermineComponentFrameRoot:function(){try{if(cs){var Cl=function(){throw Error()};if(Object.defineProperty(Cl.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Cl,[])}catch(vl){var gl=vl}Reflect.construct(os,[],Cl)}else{try{Cl.call()}catch(vl){gl=vl}os.call(Cl.prototype)}}else{try{throw Error()}catch(vl){gl=vl}(Cl=os())&&typeof Cl.catch=="function"&&Cl.catch(function(){})}}catch(vl){if(vl&&gl&&typeof vl.stack=="string")return[vl.stack,gl.stack]}return[null,null]}};Na.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var La=Object.getOwnPropertyDescriptor(Na.DetermineComponentFrameRoot,"name");La&&La.configurable&&Object.defineProperty(Na.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var Pa=Na.DetermineComponentFrameRoot(),za=Pa[0],Za=Pa[1];if(za&&Za){var Xa=za.split(`
20
- `),xl=Za.split(`
21
- `);for(La=Na=0;Na<Xa.length&&!Xa[Na].includes("DetermineComponentFrameRoot");)Na++;for(;La<xl.length&&!xl[La].includes("DetermineComponentFrameRoot");)La++;if(Na===Xa.length||La===xl.length)for(Na=Xa.length-1,La=xl.length-1;1<=Na&&0<=La&&Xa[Na]!==xl[La];)La--;for(;1<=Na&&0<=La;Na--,La--)if(Xa[Na]!==xl[La]){if(Na!==1||La!==1)do if(Na--,La--,0>La||Xa[Na]!==xl[La]){var wl=`
22
- `+Xa[Na].replace(" at new "," at ");return os.displayName&&wl.includes("<anonymous>")&&(wl=wl.replace("<anonymous>",os.displayName)),wl}while(1<=Na&&0<=La);break}}}finally{Iu=!1,Error.prepareStackTrace=Xr}return(Xr=os?os.displayName||os.name:"")?fu(Xr):""}function ic(os,cs){switch(os.tag){case 26:case 27:case 5:return fu(os.type);case 16:return fu("Lazy");case 13:return os.child!==cs&&cs!==null?fu("Suspense Fallback"):fu("Suspense");case 19:return fu("SuspenseList");case 0:case 15:return yu(os.type,!1);case 11:return yu(os.type.render,!1);case 1:return yu(os.type,!0);case 31:return fu("Activity");default:return""}}function Lu(os){try{var cs="",Xr=null;do cs+=ic(os,Xr),Xr=os,os=os.return;while(os);return cs}catch(Na){return`
23
- Error generating stack: `+Na.message+`
24
- `+Na.stack}}var Bl=Object.prototype.hasOwnProperty,su=es.unstable_scheduleCallback,Eu=es.unstable_cancelCallback,lc=es.unstable_shouldYield,ku=es.unstable_requestPaint,bu=es.unstable_now,Ua=es.unstable_getCurrentPriorityLevel,ll=es.unstable_ImmediatePriority,yl=es.unstable_UserBlockingPriority,Dl=es.unstable_NormalPriority,kl=es.unstable_LowPriority,Ga=es.unstable_IdlePriority,al=es.log,El=es.unstable_setDisableYieldValue,bl=null,_l=null;function Ol(os){if(typeof al=="function"&&El(os),_l&&typeof _l.setStrictMode=="function")try{_l.setStrictMode(bl,os)}catch{}}var Rl=Math.clz32?Math.clz32:Yl,Ul=Math.log,Ll=Math.LN2;function Yl(os){return os>>>=0,os===0?32:31-(Ul(os)/Ll|0)|0}var au=256,nu=262144,Du=4194304;function ac(os){var cs=os&42;if(cs!==0)return cs;switch(os&-os){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return os&261888;case 262144:case 524288:case 1048576:case 2097152:return os&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return os&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return os}}function Lm(os,cs,Xr){var Na=os.pendingLanes;if(Na===0)return 0;var La=0,Pa=os.suspendedLanes,za=os.pingedLanes;os=os.warmLanes;var Za=Na&134217727;return Za!==0?(Na=Za&~Pa,Na!==0?La=ac(Na):(za&=Za,za!==0?La=ac(za):Xr||(Xr=Za&~os,Xr!==0&&(La=ac(Xr))))):(Za=Na&~Pa,Za!==0?La=ac(Za):za!==0?La=ac(za):Xr||(Xr=Na&~os,Xr!==0&&(La=ac(Xr)))),La===0?0:cs!==0&&cs!==La&&(cs&Pa)===0&&(Pa=La&-La,Xr=cs&-cs,Pa>=Xr||Pa===32&&(Xr&4194048)!==0)?cs:La}function tu(os,cs){return(os.pendingLanes&~(os.suspendedLanes&~os.pingedLanes)&cs)===0}function Ru(os,cs){switch(os){case 1:case 2:case 4:case 8:case 64:return cs+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return cs+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Au(){var os=Du;return Du<<=1,(Du&62914560)===0&&(Du=4194304),os}function uc(os){for(var cs=[],Xr=0;31>Xr;Xr++)cs.push(os);return cs}function Ju(os,cs){os.pendingLanes|=cs,cs!==268435456&&(os.suspendedLanes=0,os.pingedLanes=0,os.warmLanes=0)}function Vc(os,cs,Xr,Na,La,Pa){var za=os.pendingLanes;os.pendingLanes=Xr,os.suspendedLanes=0,os.pingedLanes=0,os.warmLanes=0,os.expiredLanes&=Xr,os.entangledLanes&=Xr,os.errorRecoveryDisabledLanes&=Xr,os.shellSuspendCounter=0;var Za=os.entanglements,Xa=os.expirationTimes,xl=os.hiddenUpdates;for(Xr=za&~Xr;0<Xr;){var wl=31-Rl(Xr),Cl=1<<wl;Za[wl]=0,Xa[wl]=-1;var gl=xl[wl];if(gl!==null)for(xl[wl]=null,wl=0;wl<gl.length;wl++){var vl=gl[wl];vl!==null&&(vl.lane&=-536870913)}Xr&=~Cl}Na!==0&&Qc(os,Na,0),Pa!==0&&La===0&&os.tag!==0&&(os.suspendedLanes|=Pa&~(za&~cs))}function Qc(os,cs,Xr){os.pendingLanes|=cs,os.suspendedLanes&=~cs;var Na=31-Rl(cs);os.entangledLanes|=cs,os.entanglements[Na]=os.entanglements[Na]|1073741824|Xr&261930}function mc(os,cs){var Xr=os.entangledLanes|=cs;for(os=os.entanglements;Xr;){var Na=31-Rl(Xr),La=1<<Na;La&cs|os[Na]&cs&&(os[Na]|=cs),Xr&=~La}}function qc(os,cs){var Xr=cs&-cs;return Xr=(Xr&42)!==0?1:Vp(Xr),(Xr&(os.suspendedLanes|cs))!==0?0:Xr}function Vp(os){switch(os){case 2:os=1;break;case 8:os=4;break;case 32:os=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:os=128;break;case 268435456:os=134217728;break;default:os=0}return os}function Qp(os){return os&=-os,2<os?8<os?(os&134217727)!==0?32:268435456:8:2}function Ej(){var os=hl.p;return os!==0?os:(os=window.event,os===void 0?32:ab(os.type))}function bj(os,cs){var Xr=hl.p;try{return hl.p=os,cs()}finally{hl.p=Xr}}var Sd=Math.random().toString(36).slice(2),Xu="__reactFiber$"+Sd,xc="__reactProps$"+Sd,Dm="__reactContainer$"+Sd,Yp="__reactEvents$"+Sd,Cb="__reactListeners$"+Sd,Tb="__reactHandles$"+Sd,Rj="__reactResources$"+Sd,Lx="__reactMarker$"+Sd;function Wp(os){delete os[Xu],delete os[xc],delete os[Yp],delete os[Cb],delete os[Tb]}function Pm(os){var cs=os[Xu];if(cs)return cs;for(var Xr=os.parentNode;Xr;){if(cs=Xr[Dm]||Xr[Xu]){if(Xr=cs.alternate,cs.child!==null||Xr!==null&&Xr.child!==null)for(os=HE(os);os!==null;){if(Xr=os[Xu])return Xr;os=HE(os)}return cs}os=Xr,Xr=os.parentNode}return null}function $m(os){if(os=os[Xu]||os[Dm]){var cs=os.tag;if(cs===5||cs===6||cs===13||cs===31||cs===26||cs===27||cs===3)return os}return null}function Dx(os){var cs=os.tag;if(cs===5||cs===26||cs===27||cs===6)return os.stateNode;throw Error(is(33))}function Mm(os){var cs=os[Rj];return cs||(cs=os[Rj]={hoistableStyles:new Map,hoistableScripts:new Map}),cs}function Qu(os){os[Lx]=!0}var _j=new Set,wj={};function lm(os,cs){Bm(os,cs),Bm(os+"Capture",cs)}function Bm(os,cs){for(wj[os]=cs,os=0;os<cs.length;os++)_j.add(cs[os])}var kb=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Nj={},Sj={};function Ab(os){return Bl.call(Sj,os)?!0:Bl.call(Nj,os)?!1:kb.test(os)?Sj[os]=!0:(Nj[os]=!0,!1)}function Ih(os,cs,Xr){if(Ab(cs))if(Xr===null)os.removeAttribute(cs);else{switch(typeof Xr){case"undefined":case"function":case"symbol":os.removeAttribute(cs);return;case"boolean":var Na=cs.toLowerCase().slice(0,5);if(Na!=="data-"&&Na!=="aria-"){os.removeAttribute(cs);return}}os.setAttribute(cs,""+Xr)}}function Lh(os,cs,Xr){if(Xr===null)os.removeAttribute(cs);else{switch(typeof Xr){case"undefined":case"function":case"symbol":case"boolean":os.removeAttribute(cs);return}os.setAttribute(cs,""+Xr)}}function nd(os,cs,Xr,Na){if(Na===null)os.removeAttribute(Xr);else{switch(typeof Na){case"undefined":case"function":case"symbol":case"boolean":os.removeAttribute(Xr);return}os.setAttributeNS(cs,Xr,""+Na)}}function kc(os){switch(typeof os){case"bigint":case"boolean":case"number":case"string":case"undefined":return os;case"object":return os;default:return""}}function Cj(os){var cs=os.type;return(os=os.nodeName)&&os.toLowerCase()==="input"&&(cs==="checkbox"||cs==="radio")}function Ob(os,cs,Xr){var Na=Object.getOwnPropertyDescriptor(os.constructor.prototype,cs);if(!os.hasOwnProperty(cs)&&typeof Na<"u"&&typeof Na.get=="function"&&typeof Na.set=="function"){var La=Na.get,Pa=Na.set;return Object.defineProperty(os,cs,{configurable:!0,get:function(){return La.call(this)},set:function(za){Xr=""+za,Pa.call(this,za)}}),Object.defineProperty(os,cs,{enumerable:Na.enumerable}),{getValue:function(){return Xr},setValue:function(za){Xr=""+za},stopTracking:function(){os._valueTracker=null,delete os[cs]}}}}function Jp(os){if(!os._valueTracker){var cs=Cj(os)?"checked":"value";os._valueTracker=Ob(os,cs,""+os[cs])}}function Tj(os){if(!os)return!1;var cs=os._valueTracker;if(!cs)return!0;var Xr=cs.getValue(),Na="";return os&&(Na=Cj(os)?os.checked?"true":"false":os.value),os=Na,os!==Xr?(cs.setValue(os),!0):!1}function Dh(os){if(os=os||(typeof document<"u"?document:void 0),typeof os>"u")return null;try{return os.activeElement||os.body}catch{return os.body}}var Ib=/[\n"\\]/g;function Ac(os){return os.replace(Ib,function(cs){return"\\"+cs.charCodeAt(0).toString(16)+" "})}function Xp(os,cs,Xr,Na,La,Pa,za,Za){os.name="",za!=null&&typeof za!="function"&&typeof za!="symbol"&&typeof za!="boolean"?os.type=za:os.removeAttribute("type"),cs!=null?za==="number"?(cs===0&&os.value===""||os.value!=cs)&&(os.value=""+kc(cs)):os.value!==""+kc(cs)&&(os.value=""+kc(cs)):za!=="submit"&&za!=="reset"||os.removeAttribute("value"),cs!=null?ef(os,za,kc(cs)):Xr!=null?ef(os,za,kc(Xr)):Na!=null&&os.removeAttribute("value"),La==null&&Pa!=null&&(os.defaultChecked=!!Pa),La!=null&&(os.checked=La&&typeof La!="function"&&typeof La!="symbol"),Za!=null&&typeof Za!="function"&&typeof Za!="symbol"&&typeof Za!="boolean"?os.name=""+kc(Za):os.removeAttribute("name")}function kj(os,cs,Xr,Na,La,Pa,za,Za){if(Pa!=null&&typeof Pa!="function"&&typeof Pa!="symbol"&&typeof Pa!="boolean"&&(os.type=Pa),cs!=null||Xr!=null){if(!(Pa!=="submit"&&Pa!=="reset"||cs!=null)){Jp(os);return}Xr=Xr!=null?""+kc(Xr):"",cs=cs!=null?""+kc(cs):Xr,Za||cs===os.value||(os.value=cs),os.defaultValue=cs}Na=Na??La,Na=typeof Na!="function"&&typeof Na!="symbol"&&!!Na,os.checked=Za?os.checked:!!Na,os.defaultChecked=!!Na,za!=null&&typeof za!="function"&&typeof za!="symbol"&&typeof za!="boolean"&&(os.name=za),Jp(os)}function ef(os,cs,Xr){cs==="number"&&Dh(os.ownerDocument)===os||os.defaultValue===""+Xr||(os.defaultValue=""+Xr)}function Um(os,cs,Xr,Na){if(os=os.options,cs){cs={};for(var La=0;La<Xr.length;La++)cs["$"+Xr[La]]=!0;for(Xr=0;Xr<os.length;Xr++)La=cs.hasOwnProperty("$"+os[Xr].value),os[Xr].selected!==La&&(os[Xr].selected=La),La&&Na&&(os[Xr].defaultSelected=!0)}else{for(Xr=""+kc(Xr),cs=null,La=0;La<os.length;La++){if(os[La].value===Xr){os[La].selected=!0,Na&&(os[La].defaultSelected=!0);return}cs!==null||os[La].disabled||(cs=os[La])}cs!==null&&(cs.selected=!0)}}function Aj(os,cs,Xr){if(cs!=null&&(cs=""+kc(cs),cs!==os.value&&(os.value=cs),Xr==null)){os.defaultValue!==cs&&(os.defaultValue=cs);return}os.defaultValue=Xr!=null?""+kc(Xr):""}function Oj(os,cs,Xr,Na){if(cs==null){if(Na!=null){if(Xr!=null)throw Error(is(92));if(Tl(Na)){if(1<Na.length)throw Error(is(93));Na=Na[0]}Xr=Na}Xr==null&&(Xr=""),cs=Xr}Xr=kc(cs),os.defaultValue=Xr,Na=os.textContent,Na===Xr&&Na!==""&&Na!==null&&(os.value=Na),Jp(os)}function Fm(os,cs){if(cs){var Xr=os.firstChild;if(Xr&&Xr===os.lastChild&&Xr.nodeType===3){Xr.nodeValue=cs;return}}os.textContent=cs}var Lb=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Ij(os,cs,Xr){var Na=cs.indexOf("--")===0;Xr==null||typeof Xr=="boolean"||Xr===""?Na?os.setProperty(cs,""):cs==="float"?os.cssFloat="":os[cs]="":Na?os.setProperty(cs,Xr):typeof Xr!="number"||Xr===0||Lb.has(cs)?cs==="float"?os.cssFloat=Xr:os[cs]=(""+Xr).trim():os[cs]=Xr+"px"}function Lj(os,cs,Xr){if(cs!=null&&typeof cs!="object")throw Error(is(62));if(os=os.style,Xr!=null){for(var Na in Xr)!Xr.hasOwnProperty(Na)||cs!=null&&cs.hasOwnProperty(Na)||(Na.indexOf("--")===0?os.setProperty(Na,""):Na==="float"?os.cssFloat="":os[Na]="");for(var La in cs)Na=cs[La],cs.hasOwnProperty(La)&&Xr[La]!==Na&&Ij(os,La,Na)}else for(var Pa in cs)cs.hasOwnProperty(Pa)&&Ij(os,Pa,cs[Pa])}function tf(os){if(os.indexOf("-")===-1)return!1;switch(os){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Db=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Pb=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Ph(os){return Pb.test(""+os)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":os}function rd(){}var sf=null;function nf(os){return os=os.target||os.srcElement||window,os.correspondingUseElement&&(os=os.correspondingUseElement),os.nodeType===3?os.parentNode:os}var qm=null,zm=null;function Dj(os){var cs=$m(os);if(cs&&(os=cs.stateNode)){var Xr=os[xc]||null;e:switch(os=cs.stateNode,cs.type){case"input":if(Xp(os,Xr.value,Xr.defaultValue,Xr.defaultValue,Xr.checked,Xr.defaultChecked,Xr.type,Xr.name),cs=Xr.name,Xr.type==="radio"&&cs!=null){for(Xr=os;Xr.parentNode;)Xr=Xr.parentNode;for(Xr=Xr.querySelectorAll('input[name="'+Ac(""+cs)+'"][type="radio"]'),cs=0;cs<Xr.length;cs++){var Na=Xr[cs];if(Na!==os&&Na.form===os.form){var La=Na[xc]||null;if(!La)throw Error(is(90));Xp(Na,La.value,La.defaultValue,La.defaultValue,La.checked,La.defaultChecked,La.type,La.name)}}for(cs=0;cs<Xr.length;cs++)Na=Xr[cs],Na.form===os.form&&Tj(Na)}break e;case"textarea":Aj(os,Xr.value,Xr.defaultValue);break e;case"select":cs=Xr.value,cs!=null&&Um(os,!!Xr.multiple,cs,!1)}}}var rf=!1;function Pj(os,cs,Xr){if(rf)return os(cs,Xr);rf=!0;try{var Na=os(cs);return Na}finally{if(rf=!1,(qm!==null||zm!==null)&&(_p(),qm&&(cs=qm,os=zm,zm=qm=null,Dj(cs),os)))for(cs=0;cs<os.length;cs++)Dj(os[cs])}}function Px(os,cs){var Xr=os.stateNode;if(Xr===null)return null;var Na=Xr[xc]||null;if(Na===null)return null;Xr=Na[cs];e:switch(cs){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(Na=!Na.disabled)||(os=os.type,Na=!(os==="button"||os==="input"||os==="select"||os==="textarea")),os=!Na;break e;default:os=!1}if(os)return null;if(Xr&&typeof Xr!="function")throw Error(is(231,cs,typeof Xr));return Xr}var id=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),af=!1;if(id)try{var $x={};Object.defineProperty($x,"passive",{get:function(){af=!0}}),window.addEventListener("test",$x,$x),window.removeEventListener("test",$x,$x)}catch{af=!1}var Cd=null,of=null,$h=null;function $j(){if($h)return $h;var os,cs=of,Xr=cs.length,Na,La="value"in Cd?Cd.value:Cd.textContent,Pa=La.length;for(os=0;os<Xr&&cs[os]===La[os];os++);var za=Xr-os;for(Na=1;Na<=za&&cs[Xr-Na]===La[Pa-Na];Na++);return $h=La.slice(os,1<Na?1-Na:void 0)}function Mh(os){var cs=os.keyCode;return"charCode"in os?(os=os.charCode,os===0&&cs===13&&(os=13)):os=cs,os===10&&(os=13),32<=os||os===13?os:0}function Bh(){return!0}function Mj(){return!1}function hc(os){function cs(Xr,Na,La,Pa,za){this._reactName=Xr,this._targetInst=La,this.type=Na,this.nativeEvent=Pa,this.target=za,this.currentTarget=null;for(var Za in os)os.hasOwnProperty(Za)&&(Xr=os[Za],this[Za]=Xr?Xr(Pa):Pa[Za]);return this.isDefaultPrevented=(Pa.defaultPrevented!=null?Pa.defaultPrevented:Pa.returnValue===!1)?Bh:Mj,this.isPropagationStopped=Mj,this}return Da(cs.prototype,{preventDefault:function(){this.defaultPrevented=!0;var Xr=this.nativeEvent;Xr&&(Xr.preventDefault?Xr.preventDefault():typeof Xr.returnValue!="unknown"&&(Xr.returnValue=!1),this.isDefaultPrevented=Bh)},stopPropagation:function(){var Xr=this.nativeEvent;Xr&&(Xr.stopPropagation?Xr.stopPropagation():typeof Xr.cancelBubble!="unknown"&&(Xr.cancelBubble=!0),this.isPropagationStopped=Bh)},persist:function(){},isPersistent:Bh}),cs}var um={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(os){return os.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Uh=hc(um),Mx=Da({},um,{view:0,detail:0}),$b=hc(Mx),lf,uf,Bx,Fh=Da({},Mx,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:df,button:0,buttons:0,relatedTarget:function(os){return os.relatedTarget===void 0?os.fromElement===os.srcElement?os.toElement:os.fromElement:os.relatedTarget},movementX:function(os){return"movementX"in os?os.movementX:(os!==Bx&&(Bx&&os.type==="mousemove"?(lf=os.screenX-Bx.screenX,uf=os.screenY-Bx.screenY):uf=lf=0,Bx=os),lf)},movementY:function(os){return"movementY"in os?os.movementY:uf}}),Bj=hc(Fh),Mb=Da({},Fh,{dataTransfer:0}),Bb=hc(Mb),Ub=Da({},Mx,{relatedTarget:0}),cf=hc(Ub),Fb=Da({},um,{animationName:0,elapsedTime:0,pseudoElement:0}),qb=hc(Fb),zb=Da({},um,{clipboardData:function(os){return"clipboardData"in os?os.clipboardData:window.clipboardData}}),Hb=hc(zb),Kb=Da({},um,{data:0}),Uj=hc(Kb),Gb={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Zb={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Vb={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Qb(os){var cs=this.nativeEvent;return cs.getModifierState?cs.getModifierState(os):(os=Vb[os])?!!cs[os]:!1}function df(){return Qb}var Yb=Da({},Mx,{key:function(os){if(os.key){var cs=Gb[os.key]||os.key;if(cs!=="Unidentified")return cs}return os.type==="keypress"?(os=Mh(os),os===13?"Enter":String.fromCharCode(os)):os.type==="keydown"||os.type==="keyup"?Zb[os.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:df,charCode:function(os){return os.type==="keypress"?Mh(os):0},keyCode:function(os){return os.type==="keydown"||os.type==="keyup"?os.keyCode:0},which:function(os){return os.type==="keypress"?Mh(os):os.type==="keydown"||os.type==="keyup"?os.keyCode:0}}),Wb=hc(Yb),Jb=Da({},Fh,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Fj=hc(Jb),Xb=Da({},Mx,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:df}),eR=hc(Xb),tR=Da({},um,{propertyName:0,elapsedTime:0,pseudoElement:0}),sR=hc(tR),nR=Da({},Fh,{deltaX:function(os){return"deltaX"in os?os.deltaX:"wheelDeltaX"in os?-os.wheelDeltaX:0},deltaY:function(os){return"deltaY"in os?os.deltaY:"wheelDeltaY"in os?-os.wheelDeltaY:"wheelDelta"in os?-os.wheelDelta:0},deltaZ:0,deltaMode:0}),rR=hc(nR),iR=Da({},um,{newState:0,oldState:0}),aR=hc(iR),oR=[9,13,27,32],mf=id&&"CompositionEvent"in window,Ux=null;id&&"documentMode"in document&&(Ux=document.documentMode);var lR=id&&"TextEvent"in window&&!Ux,qj=id&&(!mf||Ux&&8<Ux&&11>=Ux),zj=" ",Hj=!1;function Kj(os,cs){switch(os){case"keyup":return oR.indexOf(cs.keyCode)!==-1;case"keydown":return cs.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gj(os){return os=os.detail,typeof os=="object"&&"data"in os?os.data:null}var Hm=!1;function uR(os,cs){switch(os){case"compositionend":return Gj(cs);case"keypress":return cs.which!==32?null:(Hj=!0,zj);case"textInput":return os=cs.data,os===zj&&Hj?null:os;default:return null}}function cR(os,cs){if(Hm)return os==="compositionend"||!mf&&Kj(os,cs)?(os=$j(),$h=of=Cd=null,Hm=!1,os):null;switch(os){case"paste":return null;case"keypress":if(!(cs.ctrlKey||cs.altKey||cs.metaKey)||cs.ctrlKey&&cs.altKey){if(cs.char&&1<cs.char.length)return cs.char;if(cs.which)return String.fromCharCode(cs.which)}return null;case"compositionend":return qj&&cs.locale!=="ko"?null:cs.data;default:return null}}var dR={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zj(os){var cs=os&&os.nodeName&&os.nodeName.toLowerCase();return cs==="input"?!!dR[os.type]:cs==="textarea"}function Vj(os,cs,Xr,Na){qm?zm?zm.push(Na):zm=[Na]:qm=Na,cs=Ap(cs,"onChange"),0<cs.length&&(Xr=new Uh("onChange","change",null,Xr,Na),os.push({event:Xr,listeners:cs}))}var Fx=null,qx=null;function mR(os){kE(os,0)}function qh(os){var cs=Dx(os);if(Tj(cs))return os}function Qj(os,cs){if(os==="change")return cs}var Yj=!1;if(id){var xf;if(id){var hf="oninput"in document;if(!hf){var Wj=document.createElement("div");Wj.setAttribute("oninput","return;"),hf=typeof Wj.oninput=="function"}xf=hf}else xf=!1;Yj=xf&&(!document.documentMode||9<document.documentMode)}function Jj(){Fx&&(Fx.detachEvent("onpropertychange",Xj),qx=Fx=null)}function Xj(os){if(os.propertyName==="value"&&qh(qx)){var cs=[];Vj(cs,qx,os,nf(os)),Pj(mR,cs)}}function xR(os,cs,Xr){os==="focusin"?(Jj(),Fx=cs,qx=Xr,Fx.attachEvent("onpropertychange",Xj)):os==="focusout"&&Jj()}function hR(os){if(os==="selectionchange"||os==="keyup"||os==="keydown")return qh(qx)}function pR(os,cs){if(os==="click")return qh(cs)}function fR(os,cs){if(os==="input"||os==="change")return qh(cs)}function gR(os,cs){return os===cs&&(os!==0||1/os===1/cs)||os!==os&&cs!==cs}var bc=typeof Object.is=="function"?Object.is:gR;function zx(os,cs){if(bc(os,cs))return!0;if(typeof os!="object"||os===null||typeof cs!="object"||cs===null)return!1;var Xr=Object.keys(os),Na=Object.keys(cs);if(Xr.length!==Na.length)return!1;for(Na=0;Na<Xr.length;Na++){var La=Xr[Na];if(!Bl.call(cs,La)||!bc(os[La],cs[La]))return!1}return!0}function ev(os){for(;os&&os.firstChild;)os=os.firstChild;return os}function tv(os,cs){var Xr=ev(os);os=0;for(var Na;Xr;){if(Xr.nodeType===3){if(Na=os+Xr.textContent.length,os<=cs&&Na>=cs)return{node:Xr,offset:cs-os};os=Na}e:{for(;Xr;){if(Xr.nextSibling){Xr=Xr.nextSibling;break e}Xr=Xr.parentNode}Xr=void 0}Xr=ev(Xr)}}function sv(os,cs){return os&&cs?os===cs?!0:os&&os.nodeType===3?!1:cs&&cs.nodeType===3?sv(os,cs.parentNode):"contains"in os?os.contains(cs):os.compareDocumentPosition?!!(os.compareDocumentPosition(cs)&16):!1:!1}function nv(os){os=os!=null&&os.ownerDocument!=null&&os.ownerDocument.defaultView!=null?os.ownerDocument.defaultView:window;for(var cs=Dh(os.document);cs instanceof os.HTMLIFrameElement;){try{var Xr=typeof cs.contentWindow.location.href=="string"}catch{Xr=!1}if(Xr)os=cs.contentWindow;else break;cs=Dh(os.document)}return cs}function pf(os){var cs=os&&os.nodeName&&os.nodeName.toLowerCase();return cs&&(cs==="input"&&(os.type==="text"||os.type==="search"||os.type==="tel"||os.type==="url"||os.type==="password")||cs==="textarea"||os.contentEditable==="true")}var jR=id&&"documentMode"in document&&11>=document.documentMode,Km=null,ff=null,Hx=null,gf=!1;function rv(os,cs,Xr){var Na=Xr.window===Xr?Xr.document:Xr.nodeType===9?Xr:Xr.ownerDocument;gf||Km==null||Km!==Dh(Na)||(Na=Km,"selectionStart"in Na&&pf(Na)?Na={start:Na.selectionStart,end:Na.selectionEnd}:(Na=(Na.ownerDocument&&Na.ownerDocument.defaultView||window).getSelection(),Na={anchorNode:Na.anchorNode,anchorOffset:Na.anchorOffset,focusNode:Na.focusNode,focusOffset:Na.focusOffset}),Hx&&zx(Hx,Na)||(Hx=Na,Na=Ap(ff,"onSelect"),0<Na.length&&(cs=new Uh("onSelect","select",null,cs,Xr),os.push({event:cs,listeners:Na}),cs.target=Km)))}function cm(os,cs){var Xr={};return Xr[os.toLowerCase()]=cs.toLowerCase(),Xr["Webkit"+os]="webkit"+cs,Xr["Moz"+os]="moz"+cs,Xr}var Gm={animationend:cm("Animation","AnimationEnd"),animationiteration:cm("Animation","AnimationIteration"),animationstart:cm("Animation","AnimationStart"),transitionrun:cm("Transition","TransitionRun"),transitionstart:cm("Transition","TransitionStart"),transitioncancel:cm("Transition","TransitionCancel"),transitionend:cm("Transition","TransitionEnd")},jf={},iv={};id&&(iv=document.createElement("div").style,"AnimationEvent"in window||(delete Gm.animationend.animation,delete Gm.animationiteration.animation,delete Gm.animationstart.animation),"TransitionEvent"in window||delete Gm.transitionend.transition);function dm(os){if(jf[os])return jf[os];if(!Gm[os])return os;var cs=Gm[os],Xr;for(Xr in cs)if(cs.hasOwnProperty(Xr)&&Xr in iv)return jf[os]=cs[Xr];return os}var av=dm("animationend"),ov=dm("animationiteration"),lv=dm("animationstart"),vR=dm("transitionrun"),yR=dm("transitionstart"),ER=dm("transitioncancel"),uv=dm("transitionend"),cv=new Map,vf="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");vf.push("scrollEnd");function zc(os,cs){cv.set(os,cs),lm(cs,[os])}var zh=typeof reportError=="function"?reportError:function(os){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var cs=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof os=="object"&&os!==null&&typeof os.message=="string"?String(os.message):String(os),error:os});if(!window.dispatchEvent(cs))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",os);return}console.error(os)},Oc=[],Zm=0,yf=0;function Hh(){for(var os=Zm,cs=yf=Zm=0;cs<os;){var Xr=Oc[cs];Oc[cs++]=null;var Na=Oc[cs];Oc[cs++]=null;var La=Oc[cs];Oc[cs++]=null;var Pa=Oc[cs];if(Oc[cs++]=null,Na!==null&&La!==null){var za=Na.pending;za===null?La.next=La:(La.next=za.next,za.next=La),Na.pending=La}Pa!==0&&dv(Xr,La,Pa)}}function Kh(os,cs,Xr,Na){Oc[Zm++]=os,Oc[Zm++]=cs,Oc[Zm++]=Xr,Oc[Zm++]=Na,yf|=Na,os.lanes|=Na,os=os.alternate,os!==null&&(os.lanes|=Na)}function Ef(os,cs,Xr,Na){return Kh(os,cs,Xr,Na),Gh(os)}function mm(os,cs){return Kh(os,null,null,cs),Gh(os)}function dv(os,cs,Xr){os.lanes|=Xr;var Na=os.alternate;Na!==null&&(Na.lanes|=Xr);for(var La=!1,Pa=os.return;Pa!==null;)Pa.childLanes|=Xr,Na=Pa.alternate,Na!==null&&(Na.childLanes|=Xr),Pa.tag===22&&(os=Pa.stateNode,os===null||os._visibility&1||(La=!0)),os=Pa,Pa=Pa.return;return os.tag===3?(Pa=os.stateNode,La&&cs!==null&&(La=31-Rl(Xr),os=Pa.hiddenUpdates,Na=os[La],Na===null?os[La]=[cs]:Na.push(cs),cs.lane=Xr|536870912),Pa):null}function Gh(os){if(50<mh)throw mh=0,kg=null,Error(is(185));for(var cs=os.return;cs!==null;)os=cs,cs=os.return;return os.tag===3?os.stateNode:null}var Vm={};function bR(os,cs,Xr,Na){this.tag=os,this.key=Xr,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=cs,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=Na,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Rc(os,cs,Xr,Na){return new bR(os,cs,Xr,Na)}function bf(os){return os=os.prototype,!(!os||!os.isReactComponent)}function ad(os,cs){var Xr=os.alternate;return Xr===null?(Xr=Rc(os.tag,cs,os.key,os.mode),Xr.elementType=os.elementType,Xr.type=os.type,Xr.stateNode=os.stateNode,Xr.alternate=os,os.alternate=Xr):(Xr.pendingProps=cs,Xr.type=os.type,Xr.flags=0,Xr.subtreeFlags=0,Xr.deletions=null),Xr.flags=os.flags&65011712,Xr.childLanes=os.childLanes,Xr.lanes=os.lanes,Xr.child=os.child,Xr.memoizedProps=os.memoizedProps,Xr.memoizedState=os.memoizedState,Xr.updateQueue=os.updateQueue,cs=os.dependencies,Xr.dependencies=cs===null?null:{lanes:cs.lanes,firstContext:cs.firstContext},Xr.sibling=os.sibling,Xr.index=os.index,Xr.ref=os.ref,Xr.refCleanup=os.refCleanup,Xr}function mv(os,cs){os.flags&=65011714;var Xr=os.alternate;return Xr===null?(os.childLanes=0,os.lanes=cs,os.child=null,os.subtreeFlags=0,os.memoizedProps=null,os.memoizedState=null,os.updateQueue=null,os.dependencies=null,os.stateNode=null):(os.childLanes=Xr.childLanes,os.lanes=Xr.lanes,os.child=Xr.child,os.subtreeFlags=0,os.deletions=null,os.memoizedProps=Xr.memoizedProps,os.memoizedState=Xr.memoizedState,os.updateQueue=Xr.updateQueue,os.type=Xr.type,cs=Xr.dependencies,os.dependencies=cs===null?null:{lanes:cs.lanes,firstContext:cs.firstContext}),os}function Zh(os,cs,Xr,Na,La,Pa){var za=0;if(Na=os,typeof os=="function")bf(os)&&(za=1);else if(typeof os=="string")za=S0(os,Xr,ql.current)?26:os==="html"||os==="head"||os==="body"?27:5;else e:switch(os){case cl:return os=Rc(31,Xr,cs,La),os.elementType=cl,os.lanes=Pa,os;case qa:return xm(Xr.children,La,Pa,cs);case Ha:za=8,La|=24;break;case Ka:return os=Rc(12,Xr,cs,La|2),os.elementType=Ka,os.lanes=Pa,os;case Wa:return os=Rc(13,Xr,cs,La),os.elementType=Wa,os.lanes=Pa,os;case el:return os=Rc(19,Xr,cs,La),os.elementType=el,os.lanes=Pa,os;default:if(typeof os=="object"&&os!==null)switch(os.$$typeof){case Va:za=10;break e;case Qa:za=9;break e;case Ya:za=11;break e;case tl:za=14;break e;case rl:za=16,Na=null;break e}za=29,Xr=Error(is(130,os===null?"null":typeof os,"")),Na=null}return cs=Rc(za,Xr,cs,La),cs.elementType=os,cs.type=Na,cs.lanes=Pa,cs}function xm(os,cs,Xr,Na){return os=Rc(7,os,Na,cs),os.lanes=Xr,os}function Rf(os,cs,Xr){return os=Rc(6,os,null,cs),os.lanes=Xr,os}function xv(os){var cs=Rc(18,null,null,0);return cs.stateNode=os,cs}function _f(os,cs,Xr){return cs=Rc(4,os.children!==null?os.children:[],os.key,cs),cs.lanes=Xr,cs.stateNode={containerInfo:os.containerInfo,pendingChildren:null,implementation:os.implementation},cs}var hv=new WeakMap;function Ic(os,cs){if(typeof os=="object"&&os!==null){var Xr=hv.get(os);return Xr!==void 0?Xr:(cs={value:os,source:cs,stack:Lu(cs)},hv.set(os,cs),cs)}return{value:os,source:cs,stack:Lu(cs)}}var Qm=[],Ym=0,Vh=null,Kx=0,Lc=[],Dc=0,Td=null,Yc=1,Wc="";function od(os,cs){Qm[Ym++]=Kx,Qm[Ym++]=Vh,Vh=os,Kx=cs}function pv(os,cs,Xr){Lc[Dc++]=Yc,Lc[Dc++]=Wc,Lc[Dc++]=Td,Td=os;var Na=Yc;os=Wc;var La=32-Rl(Na)-1;Na&=~(1<<La),Xr+=1;var Pa=32-Rl(cs)+La;if(30<Pa){var za=La-La%5;Pa=(Na&(1<<za)-1).toString(32),Na>>=za,La-=za,Yc=1<<32-Rl(cs)+La|Xr<<La|Na,Wc=Pa+os}else Yc=1<<Pa|Xr<<La|Na,Wc=os}function wf(os){os.return!==null&&(od(os,1),pv(os,1,0))}function Nf(os){for(;os===Vh;)Vh=Qm[--Ym],Qm[Ym]=null,Kx=Qm[--Ym],Qm[Ym]=null;for(;os===Td;)Td=Lc[--Dc],Lc[Dc]=null,Wc=Lc[--Dc],Lc[Dc]=null,Yc=Lc[--Dc],Lc[Dc]=null}function fv(os,cs){Lc[Dc++]=Yc,Lc[Dc++]=Wc,Lc[Dc++]=Td,Yc=cs.id,Wc=cs.overflow,Td=os}var ec=null,Pu=null,hu=!1,kd=null,Pc=!1,Sf=Error(is(519));function Ad(os){var cs=Error(is(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Gx(Ic(cs,os)),Sf}function gv(os){var cs=os.stateNode,Xr=os.type,Na=os.memoizedProps;switch(cs[Xu]=os,cs[xc]=Na,Xr){case"dialog":uu("cancel",cs),uu("close",cs);break;case"iframe":case"object":case"embed":uu("load",cs);break;case"video":case"audio":for(Xr=0;Xr<hh.length;Xr++)uu(hh[Xr],cs);break;case"source":uu("error",cs);break;case"img":case"image":case"link":uu("error",cs),uu("load",cs);break;case"details":uu("toggle",cs);break;case"input":uu("invalid",cs),kj(cs,Na.value,Na.defaultValue,Na.checked,Na.defaultChecked,Na.type,Na.name,!0);break;case"select":uu("invalid",cs);break;case"textarea":uu("invalid",cs),Oj(cs,Na.value,Na.defaultValue,Na.children)}Xr=Na.children,typeof Xr!="string"&&typeof Xr!="number"&&typeof Xr!="bigint"||cs.textContent===""+Xr||Na.suppressHydrationWarning===!0||LE(cs.textContent,Xr)?(Na.popover!=null&&(uu("beforetoggle",cs),uu("toggle",cs)),Na.onScroll!=null&&uu("scroll",cs),Na.onScrollEnd!=null&&uu("scrollend",cs),Na.onClick!=null&&(cs.onclick=rd),cs=!0):cs=!1,cs||Ad(os,!0)}function jv(os){for(ec=os.return;ec;)switch(ec.tag){case 5:case 31:case 13:Pc=!1;return;case 27:case 3:Pc=!0;return;default:ec=ec.return}}function Wm(os){if(os!==ec)return!1;if(!hu)return jv(os),hu=!0,!1;var cs=os.tag,Xr;if((Xr=cs!==3&&cs!==27)&&((Xr=cs===5)&&(Xr=os.type,Xr=!(Xr!=="form"&&Xr!=="button")||Kg(os.type,os.memoizedProps)),Xr=!Xr),Xr&&Pu&&Ad(os),jv(os),cs===13){if(os=os.memoizedState,os=os!==null?os.dehydrated:null,!os)throw Error(is(317));Pu=zE(os)}else if(cs===31){if(os=os.memoizedState,os=os!==null?os.dehydrated:null,!os)throw Error(is(317));Pu=zE(os)}else cs===27?(cs=Pu,Kd(os.type)?(os=Yg,Yg=null,Pu=os):Pu=cs):Pu=ec?Mc(os.stateNode.nextSibling):null;return!0}function hm(){Pu=ec=null,hu=!1}function Cf(){var os=kd;return os!==null&&(jc===null?jc=os:jc.push.apply(jc,os),kd=null),os}function Gx(os){kd===null?kd=[os]:kd.push(os)}var Tf=Zl(null),pm=null,ld=null;function Od(os,cs,Xr){Il(Tf,cs._currentValue),cs._currentValue=Xr}function ud(os){os._currentValue=Tf.current,$l(Tf)}function kf(os,cs,Xr){for(;os!==null;){var Na=os.alternate;if((os.childLanes&cs)!==cs?(os.childLanes|=cs,Na!==null&&(Na.childLanes|=cs)):Na!==null&&(Na.childLanes&cs)!==cs&&(Na.childLanes|=cs),os===Xr)break;os=os.return}}function Af(os,cs,Xr,Na){var La=os.child;for(La!==null&&(La.return=os);La!==null;){var Pa=La.dependencies;if(Pa!==null){var za=La.child;Pa=Pa.firstContext;e:for(;Pa!==null;){var Za=Pa;Pa=La;for(var Xa=0;Xa<cs.length;Xa++)if(Za.context===cs[Xa]){Pa.lanes|=Xr,Za=Pa.alternate,Za!==null&&(Za.lanes|=Xr),kf(Pa.return,Xr,os),Na||(za=null);break e}Pa=Za.next}}else if(La.tag===18){if(za=La.return,za===null)throw Error(is(341));za.lanes|=Xr,Pa=za.alternate,Pa!==null&&(Pa.lanes|=Xr),kf(za,Xr,os),za=null}else za=La.child;if(za!==null)za.return=La;else for(za=La;za!==null;){if(za===os){za=null;break}if(La=za.sibling,La!==null){La.return=za.return,za=La;break}za=za.return}La=za}}function Jm(os,cs,Xr,Na){os=null;for(var La=cs,Pa=!1;La!==null;){if(!Pa){if((La.flags&524288)!==0)Pa=!0;else if((La.flags&262144)!==0)break}if(La.tag===10){var za=La.alternate;if(za===null)throw Error(is(387));if(za=za.memoizedProps,za!==null){var Za=La.type;bc(La.pendingProps.value,za.value)||(os!==null?os.push(Za):os=[Za])}}else if(La===Gl.current){if(za=La.alternate,za===null)throw Error(is(387));za.memoizedState.memoizedState!==La.memoizedState.memoizedState&&(os!==null?os.push(vh):os=[vh])}La=La.return}os!==null&&Af(cs,os,Xr,Na),cs.flags|=262144}function Qh(os){for(os=os.firstContext;os!==null;){if(!bc(os.context._currentValue,os.memoizedValue))return!0;os=os.next}return!1}function fm(os){pm=os,ld=null,os=os.dependencies,os!==null&&(os.firstContext=null)}function tc(os){return vv(pm,os)}function Yh(os,cs){return pm===null&&fm(os),vv(os,cs)}function vv(os,cs){var Xr=cs._currentValue;if(cs={context:cs,memoizedValue:Xr,next:null},ld===null){if(os===null)throw Error(is(308));ld=cs,os.dependencies={lanes:0,firstContext:cs},os.flags|=524288}else ld=ld.next=cs;return Xr}var RR=typeof AbortController<"u"?AbortController:function(){var os=[],cs=this.signal={aborted:!1,addEventListener:function(Xr,Na){os.push(Na)}};this.abort=function(){cs.aborted=!0,os.forEach(function(Xr){return Xr()})}},_R=es.unstable_scheduleCallback,wR=es.unstable_NormalPriority,Hu={$$typeof:Va,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Of(){return{controller:new RR,data:new Map,refCount:0}}function Zx(os){os.refCount--,os.refCount===0&&_R(wR,function(){os.controller.abort()})}var Vx=null,If=0,Xm=0,ex=null;function NR(os,cs){if(Vx===null){var Xr=Vx=[];If=0,Xm=Pg(),ex={status:"pending",value:void 0,then:function(Na){Xr.push(Na)}}}return If++,cs.then(yv,yv),cs}function yv(){if(--If===0&&Vx!==null){ex!==null&&(ex.status="fulfilled");var os=Vx;Vx=null,Xm=0,ex=null;for(var cs=0;cs<os.length;cs++)(0,os[cs])()}}function SR(os,cs){var Xr=[],Na={status:"pending",value:null,reason:null,then:function(La){Xr.push(La)}};return os.then(function(){Na.status="fulfilled",Na.value=cs;for(var La=0;La<Xr.length;La++)(0,Xr[La])(cs)},function(La){for(Na.status="rejected",Na.reason=La,La=0;La<Xr.length;La++)(0,Xr[La])(void 0)}),Na}var Ev=ul.S;ul.S=function(os,cs){rE=bu(),typeof cs=="object"&&cs!==null&&typeof cs.then=="function"&&NR(os,cs),Ev!==null&&Ev(os,cs)};var gm=Zl(null);function Lf(){var os=gm.current;return os!==null?os:Ou.pooledCache}function Wh(os,cs){cs===null?Il(gm,gm.current):Il(gm,cs.pool)}function bv(){var os=Lf();return os===null?null:{parent:Hu._currentValue,pool:os}}var tx=Error(is(460)),Df=Error(is(474)),Jh=Error(is(542)),Xh={then:function(){}};function Rv(os){return os=os.status,os==="fulfilled"||os==="rejected"}function _v(os,cs,Xr){switch(Xr=os[Xr],Xr===void 0?os.push(cs):Xr!==cs&&(cs.then(rd,rd),cs=Xr),cs.status){case"fulfilled":return cs.value;case"rejected":throw os=cs.reason,Nv(os),os;default:if(typeof cs.status=="string")cs.then(rd,rd);else{if(os=Ou,os!==null&&100<os.shellSuspendCounter)throw Error(is(482));os=cs,os.status="pending",os.then(function(Na){if(cs.status==="pending"){var La=cs;La.status="fulfilled",La.value=Na}},function(Na){if(cs.status==="pending"){var La=cs;La.status="rejected",La.reason=Na}})}switch(cs.status){case"fulfilled":return cs.value;case"rejected":throw os=cs.reason,Nv(os),os}throw vm=cs,tx}}function jm(os){try{var cs=os._init;return cs(os._payload)}catch(Xr){throw Xr!==null&&typeof Xr=="object"&&typeof Xr.then=="function"?(vm=Xr,tx):Xr}}var vm=null;function wv(){if(vm===null)throw Error(is(459));var os=vm;return vm=null,os}function Nv(os){if(os===tx||os===Jh)throw Error(is(483))}var sx=null,Qx=0;function ep(os){var cs=Qx;return Qx+=1,sx===null&&(sx=[]),_v(sx,os,cs)}function Yx(os,cs){cs=cs.props.ref,os.ref=cs!==void 0?cs:null}function tp(os,cs){throw cs.$$typeof===Ba?Error(is(525)):(os=Object.prototype.toString.call(cs),Error(is(31,os==="[object Object]"?"object with keys {"+Object.keys(cs).join(", ")+"}":os)))}function Sv(os){function cs(il,sl){if(os){var ml=il.deletions;ml===null?(il.deletions=[sl],il.flags|=16):ml.push(sl)}}function Xr(il,sl){if(!os)return null;for(;sl!==null;)cs(il,sl),sl=sl.sibling;return null}function Na(il){for(var sl=new Map;il!==null;)il.key!==null?sl.set(il.key,il):sl.set(il.index,il),il=il.sibling;return sl}function La(il,sl){return il=ad(il,sl),il.index=0,il.sibling=null,il}function Pa(il,sl,ml){return il.index=ml,os?(ml=il.alternate,ml!==null?(ml=ml.index,ml<sl?(il.flags|=67108866,sl):ml):(il.flags|=67108866,sl)):(il.flags|=1048576,sl)}function za(il){return os&&il.alternate===null&&(il.flags|=67108866),il}function Za(il,sl,ml,Sl){return sl===null||sl.tag!==6?(sl=Rf(ml,il.mode,Sl),sl.return=il,sl):(sl=La(sl,ml),sl.return=il,sl)}function Xa(il,sl,ml,Sl){var Wl=ml.type;return Wl===qa?wl(il,sl,ml.props.children,Sl,ml.key):sl!==null&&(sl.elementType===Wl||typeof Wl=="object"&&Wl!==null&&Wl.$$typeof===rl&&jm(Wl)===sl.type)?(sl=La(sl,ml.props),Yx(sl,ml),sl.return=il,sl):(sl=Zh(ml.type,ml.key,ml.props,null,il.mode,Sl),Yx(sl,ml),sl.return=il,sl)}function xl(il,sl,ml,Sl){return sl===null||sl.tag!==4||sl.stateNode.containerInfo!==ml.containerInfo||sl.stateNode.implementation!==ml.implementation?(sl=_f(ml,il.mode,Sl),sl.return=il,sl):(sl=La(sl,ml.children||[]),sl.return=il,sl)}function wl(il,sl,ml,Sl,Wl){return sl===null||sl.tag!==7?(sl=xm(ml,il.mode,Sl,Wl),sl.return=il,sl):(sl=La(sl,ml),sl.return=il,sl)}function Cl(il,sl,ml){if(typeof sl=="string"&&sl!==""||typeof sl=="number"||typeof sl=="bigint")return sl=Rf(""+sl,il.mode,ml),sl.return=il,sl;if(typeof sl=="object"&&sl!==null){switch(sl.$$typeof){case Ma:return ml=Zh(sl.type,sl.key,sl.props,null,il.mode,ml),Yx(ml,sl),ml.return=il,ml;case Fa:return sl=_f(sl,il.mode,ml),sl.return=il,sl;case rl:return sl=jm(sl),Cl(il,sl,ml)}if(Tl(sl)||nl(sl))return sl=xm(sl,il.mode,ml,null),sl.return=il,sl;if(typeof sl.then=="function")return Cl(il,ep(sl),ml);if(sl.$$typeof===Va)return Cl(il,Yh(il,sl),ml);tp(il,sl)}return null}function gl(il,sl,ml,Sl){var Wl=sl!==null?sl.key:null;if(typeof ml=="string"&&ml!==""||typeof ml=="number"||typeof ml=="bigint")return Wl!==null?null:Za(il,sl,""+ml,Sl);if(typeof ml=="object"&&ml!==null){switch(ml.$$typeof){case Ma:return ml.key===Wl?Xa(il,sl,ml,Sl):null;case Fa:return ml.key===Wl?xl(il,sl,ml,Sl):null;case rl:return ml=jm(ml),gl(il,sl,ml,Sl)}if(Tl(ml)||nl(ml))return Wl!==null?null:wl(il,sl,ml,Sl,null);if(typeof ml.then=="function")return gl(il,sl,ep(ml),Sl);if(ml.$$typeof===Va)return gl(il,sl,Yh(il,ml),Sl);tp(il,ml)}return null}function vl(il,sl,ml,Sl,Wl){if(typeof Sl=="string"&&Sl!==""||typeof Sl=="number"||typeof Sl=="bigint")return il=il.get(ml)||null,Za(sl,il,""+Sl,Wl);if(typeof Sl=="object"&&Sl!==null){switch(Sl.$$typeof){case Ma:return il=il.get(Sl.key===null?ml:Sl.key)||null,Xa(sl,il,Sl,Wl);case Fa:return il=il.get(Sl.key===null?ml:Sl.key)||null,xl(sl,il,Sl,Wl);case rl:return Sl=jm(Sl),vl(il,sl,ml,Sl,Wl)}if(Tl(Sl)||nl(Sl))return il=il.get(ml)||null,wl(sl,il,Sl,Wl,null);if(typeof Sl.then=="function")return vl(il,sl,ml,ep(Sl),Wl);if(Sl.$$typeof===Va)return vl(il,sl,ml,Yh(sl,Sl),Wl);tp(sl,Sl)}return null}function Kl(il,sl,ml,Sl){for(var Wl=null,gu=null,Vl=sl,ou=sl=0,mu=null;Vl!==null&&ou<ml.length;ou++){Vl.index>ou?(mu=Vl,Vl=null):mu=Vl.sibling;var ju=gl(il,Vl,ml[ou],Sl);if(ju===null){Vl===null&&(Vl=mu);break}os&&Vl&&ju.alternate===null&&cs(il,Vl),sl=Pa(ju,sl,ou),gu===null?Wl=ju:gu.sibling=ju,gu=ju,Vl=mu}if(ou===ml.length)return Xr(il,Vl),hu&&od(il,ou),Wl;if(Vl===null){for(;ou<ml.length;ou++)Vl=Cl(il,ml[ou],Sl),Vl!==null&&(sl=Pa(Vl,sl,ou),gu===null?Wl=Vl:gu.sibling=Vl,gu=Vl);return hu&&od(il,ou),Wl}for(Vl=Na(Vl);ou<ml.length;ou++)mu=vl(Vl,il,ou,ml[ou],Sl),mu!==null&&(os&&mu.alternate!==null&&Vl.delete(mu.key===null?ou:mu.key),sl=Pa(mu,sl,ou),gu===null?Wl=mu:gu.sibling=mu,gu=mu);return os&&Vl.forEach(function(Yd){return cs(il,Yd)}),hu&&od(il,ou),Wl}function Jl(il,sl,ml,Sl){if(ml==null)throw Error(is(151));for(var Wl=null,gu=null,Vl=sl,ou=sl=0,mu=null,ju=ml.next();Vl!==null&&!ju.done;ou++,ju=ml.next()){Vl.index>ou?(mu=Vl,Vl=null):mu=Vl.sibling;var Yd=gl(il,Vl,ju.value,Sl);if(Yd===null){Vl===null&&(Vl=mu);break}os&&Vl&&Yd.alternate===null&&cs(il,Vl),sl=Pa(Yd,sl,ou),gu===null?Wl=Yd:gu.sibling=Yd,gu=Yd,Vl=mu}if(ju.done)return Xr(il,Vl),hu&&od(il,ou),Wl;if(Vl===null){for(;!ju.done;ou++,ju=ml.next())ju=Cl(il,ju.value,Sl),ju!==null&&(sl=Pa(ju,sl,ou),gu===null?Wl=ju:gu.sibling=ju,gu=ju);return hu&&od(il,ou),Wl}for(Vl=Na(Vl);!ju.done;ou++,ju=ml.next())ju=vl(Vl,il,ou,ju.value,Sl),ju!==null&&(os&&ju.alternate!==null&&Vl.delete(ju.key===null?ou:ju.key),sl=Pa(ju,sl,ou),gu===null?Wl=ju:gu.sibling=ju,gu=ju);return os&&Vl.forEach(function(M0){return cs(il,M0)}),hu&&od(il,ou),Wl}function Tu(il,sl,ml,Sl){if(typeof ml=="object"&&ml!==null&&ml.type===qa&&ml.key===null&&(ml=ml.props.children),typeof ml=="object"&&ml!==null){switch(ml.$$typeof){case Ma:e:{for(var Wl=ml.key;sl!==null;){if(sl.key===Wl){if(Wl=ml.type,Wl===qa){if(sl.tag===7){Xr(il,sl.sibling),Sl=La(sl,ml.props.children),Sl.return=il,il=Sl;break e}}else if(sl.elementType===Wl||typeof Wl=="object"&&Wl!==null&&Wl.$$typeof===rl&&jm(Wl)===sl.type){Xr(il,sl.sibling),Sl=La(sl,ml.props),Yx(Sl,ml),Sl.return=il,il=Sl;break e}Xr(il,sl);break}else cs(il,sl);sl=sl.sibling}ml.type===qa?(Sl=xm(ml.props.children,il.mode,Sl,ml.key),Sl.return=il,il=Sl):(Sl=Zh(ml.type,ml.key,ml.props,null,il.mode,Sl),Yx(Sl,ml),Sl.return=il,il=Sl)}return za(il);case Fa:e:{for(Wl=ml.key;sl!==null;){if(sl.key===Wl)if(sl.tag===4&&sl.stateNode.containerInfo===ml.containerInfo&&sl.stateNode.implementation===ml.implementation){Xr(il,sl.sibling),Sl=La(sl,ml.children||[]),Sl.return=il,il=Sl;break e}else{Xr(il,sl);break}else cs(il,sl);sl=sl.sibling}Sl=_f(ml,il.mode,Sl),Sl.return=il,il=Sl}return za(il);case rl:return ml=jm(ml),Tu(il,sl,ml,Sl)}if(Tl(ml))return Kl(il,sl,ml,Sl);if(nl(ml)){if(Wl=nl(ml),typeof Wl!="function")throw Error(is(150));return ml=Wl.call(ml),Jl(il,sl,ml,Sl)}if(typeof ml.then=="function")return Tu(il,sl,ep(ml),Sl);if(ml.$$typeof===Va)return Tu(il,sl,Yh(il,ml),Sl);tp(il,ml)}return typeof ml=="string"&&ml!==""||typeof ml=="number"||typeof ml=="bigint"?(ml=""+ml,sl!==null&&sl.tag===6?(Xr(il,sl.sibling),Sl=La(sl,ml),Sl.return=il,il=Sl):(Xr(il,sl),Sl=Rf(ml,il.mode,Sl),Sl.return=il,il=Sl),za(il)):Xr(il,sl)}return function(il,sl,ml,Sl){try{Qx=0;var Wl=Tu(il,sl,ml,Sl);return sx=null,Wl}catch(Vl){if(Vl===tx||Vl===Jh)throw Vl;var gu=Rc(29,Vl,null,il.mode);return gu.lanes=Sl,gu.return=il,gu}finally{}}}var ym=Sv(!0),Cv=Sv(!1),Id=!1;function Pf(os){os.updateQueue={baseState:os.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function $f(os,cs){os=os.updateQueue,cs.updateQueue===os&&(cs.updateQueue={baseState:os.baseState,firstBaseUpdate:os.firstBaseUpdate,lastBaseUpdate:os.lastBaseUpdate,shared:os.shared,callbacks:null})}function Ld(os){return{lane:os,tag:0,payload:null,callback:null,next:null}}function Dd(os,cs,Xr){var Na=os.updateQueue;if(Na===null)return null;if(Na=Na.shared,(vu&2)!==0){var La=Na.pending;return La===null?cs.next=cs:(cs.next=La.next,La.next=cs),Na.pending=cs,cs=Gh(os),dv(os,null,Xr),cs}return Kh(os,Na,cs,Xr),Gh(os)}function Wx(os,cs,Xr){if(cs=cs.updateQueue,cs!==null&&(cs=cs.shared,(Xr&4194048)!==0)){var Na=cs.lanes;Na&=os.pendingLanes,Xr|=Na,cs.lanes=Xr,mc(os,Xr)}}function Mf(os,cs){var Xr=os.updateQueue,Na=os.alternate;if(Na!==null&&(Na=Na.updateQueue,Xr===Na)){var La=null,Pa=null;if(Xr=Xr.firstBaseUpdate,Xr!==null){do{var za={lane:Xr.lane,tag:Xr.tag,payload:Xr.payload,callback:null,next:null};Pa===null?La=Pa=za:Pa=Pa.next=za,Xr=Xr.next}while(Xr!==null);Pa===null?La=Pa=cs:Pa=Pa.next=cs}else La=Pa=cs;Xr={baseState:Na.baseState,firstBaseUpdate:La,lastBaseUpdate:Pa,shared:Na.shared,callbacks:Na.callbacks},os.updateQueue=Xr;return}os=Xr.lastBaseUpdate,os===null?Xr.firstBaseUpdate=cs:os.next=cs,Xr.lastBaseUpdate=cs}var Bf=!1;function Jx(){if(Bf){var os=ex;if(os!==null)throw os}}function Xx(os,cs,Xr,Na){Bf=!1;var La=os.updateQueue;Id=!1;var Pa=La.firstBaseUpdate,za=La.lastBaseUpdate,Za=La.shared.pending;if(Za!==null){La.shared.pending=null;var Xa=Za,xl=Xa.next;Xa.next=null,za===null?Pa=xl:za.next=xl,za=Xa;var wl=os.alternate;wl!==null&&(wl=wl.updateQueue,Za=wl.lastBaseUpdate,Za!==za&&(Za===null?wl.firstBaseUpdate=xl:Za.next=xl,wl.lastBaseUpdate=Xa))}if(Pa!==null){var Cl=La.baseState;za=0,wl=xl=Xa=null,Za=Pa;do{var gl=Za.lane&-536870913,vl=gl!==Za.lane;if(vl?(du&gl)===gl:(Na&gl)===gl){gl!==0&&gl===Xm&&(Bf=!0),wl!==null&&(wl=wl.next={lane:0,tag:Za.tag,payload:Za.payload,callback:null,next:null});e:{var Kl=os,Jl=Za;gl=cs;var Tu=Xr;switch(Jl.tag){case 1:if(Kl=Jl.payload,typeof Kl=="function"){Cl=Kl.call(Tu,Cl,gl);break e}Cl=Kl;break e;case 3:Kl.flags=Kl.flags&-65537|128;case 0:if(Kl=Jl.payload,gl=typeof Kl=="function"?Kl.call(Tu,Cl,gl):Kl,gl==null)break e;Cl=Da({},Cl,gl);break e;case 2:Id=!0}}gl=Za.callback,gl!==null&&(os.flags|=64,vl&&(os.flags|=8192),vl=La.callbacks,vl===null?La.callbacks=[gl]:vl.push(gl))}else vl={lane:gl,tag:Za.tag,payload:Za.payload,callback:Za.callback,next:null},wl===null?(xl=wl=vl,Xa=Cl):wl=wl.next=vl,za|=gl;if(Za=Za.next,Za===null){if(Za=La.shared.pending,Za===null)break;vl=Za,Za=vl.next,vl.next=null,La.lastBaseUpdate=vl,La.shared.pending=null}}while(!0);wl===null&&(Xa=Cl),La.baseState=Xa,La.firstBaseUpdate=xl,La.lastBaseUpdate=wl,Pa===null&&(La.shared.lanes=0),Ud|=za,os.lanes=za,os.memoizedState=Cl}}function Tv(os,cs){if(typeof os!="function")throw Error(is(191,os));os.call(cs)}function kv(os,cs){var Xr=os.callbacks;if(Xr!==null)for(os.callbacks=null,os=0;os<Xr.length;os++)Tv(Xr[os],cs)}var nx=Zl(null),sp=Zl(0);function Av(os,cs){os=jd,Il(sp,os),Il(nx,cs),jd=os|cs.baseLanes}function Uf(){Il(sp,jd),Il(nx,nx.current)}function Ff(){jd=sp.current,$l(nx),$l(sp)}var _c=Zl(null),$c=null;function Pd(os){var cs=os.alternate;Il(qu,qu.current&1),Il(_c,os),$c===null&&(cs===null||nx.current!==null||cs.memoizedState!==null)&&($c=os)}function qf(os){Il(qu,qu.current),Il(_c,os),$c===null&&($c=os)}function Ov(os){os.tag===22?(Il(qu,qu.current),Il(_c,os),$c===null&&($c=os)):$d()}function $d(){Il(qu,qu.current),Il(_c,_c.current)}function wc(os){$l(_c),$c===os&&($c=null),$l(qu)}var qu=Zl(0);function np(os){for(var cs=os;cs!==null;){if(cs.tag===13){var Xr=cs.memoizedState;if(Xr!==null&&(Xr=Xr.dehydrated,Xr===null||Vg(Xr)||Qg(Xr)))return cs}else if(cs.tag===19&&(cs.memoizedProps.revealOrder==="forwards"||cs.memoizedProps.revealOrder==="backwards"||cs.memoizedProps.revealOrder==="unstable_legacy-backwards"||cs.memoizedProps.revealOrder==="together")){if((cs.flags&128)!==0)return cs}else if(cs.child!==null){cs.child.return=cs,cs=cs.child;continue}if(cs===os)break;for(;cs.sibling===null;){if(cs.return===null||cs.return===os)return null;cs=cs.return}cs.sibling.return=cs.return,cs=cs.sibling}return null}var cd=0,iu=null,Su=null,Ku=null,rp=!1,rx=!1,Em=!1,ip=0,eh=0,ix=null,CR=0;function Bu(){throw Error(is(321))}function zf(os,cs){if(cs===null)return!1;for(var Xr=0;Xr<cs.length&&Xr<os.length;Xr++)if(!bc(os[Xr],cs[Xr]))return!1;return!0}function Hf(os,cs,Xr,Na,La,Pa){return cd=Pa,iu=cs,cs.memoizedState=null,cs.updateQueue=null,cs.lanes=0,ul.H=os===null||os.memoizedState===null?py:ig,Em=!1,Pa=Xr(Na,La),Em=!1,rx&&(Pa=Lv(cs,Xr,Na,La)),Iv(os),Pa}function Iv(os){ul.H=nh;var cs=Su!==null&&Su.next!==null;if(cd=0,Ku=Su=iu=null,rp=!1,eh=0,ix=null,cs)throw Error(is(300));os===null||Gu||(os=os.dependencies,os!==null&&Qh(os)&&(Gu=!0))}function Lv(os,cs,Xr,Na){iu=os;var La=0;do{if(rx&&(ix=null),eh=0,rx=!1,25<=La)throw Error(is(301));if(La+=1,Ku=Su=null,os.updateQueue!=null){var Pa=os.updateQueue;Pa.lastEffect=null,Pa.events=null,Pa.stores=null,Pa.memoCache!=null&&(Pa.memoCache.index=0)}ul.H=fy,Pa=cs(Xr,Na)}while(rx);return Pa}function TR(){var os=ul.H,cs=os.useState()[0];return cs=typeof cs.then=="function"?th(cs):cs,os=os.useState()[0],(Su!==null?Su.memoizedState:null)!==os&&(iu.flags|=1024),cs}function Kf(){var os=ip!==0;return ip=0,os}function Gf(os,cs,Xr){cs.updateQueue=os.updateQueue,cs.flags&=-2053,os.lanes&=~Xr}function Zf(os){if(rp){for(os=os.memoizedState;os!==null;){var cs=os.queue;cs!==null&&(cs.pending=null),os=os.next}rp=!1}cd=0,Ku=Su=iu=null,rx=!1,eh=ip=0,ix=null}function cc(){var os={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ku===null?iu.memoizedState=Ku=os:Ku=Ku.next=os,Ku}function zu(){if(Su===null){var os=iu.alternate;os=os!==null?os.memoizedState:null}else os=Su.next;var cs=Ku===null?iu.memoizedState:Ku.next;if(cs!==null)Ku=cs,Su=os;else{if(os===null)throw iu.alternate===null?Error(is(467)):Error(is(310));Su=os,os={memoizedState:Su.memoizedState,baseState:Su.baseState,baseQueue:Su.baseQueue,queue:Su.queue,next:null},Ku===null?iu.memoizedState=Ku=os:Ku=Ku.next=os}return Ku}function ap(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function th(os){var cs=eh;return eh+=1,ix===null&&(ix=[]),os=_v(ix,os,cs),cs=iu,(Ku===null?cs.memoizedState:Ku.next)===null&&(cs=cs.alternate,ul.H=cs===null||cs.memoizedState===null?py:ig),os}function op(os){if(os!==null&&typeof os=="object"){if(typeof os.then=="function")return th(os);if(os.$$typeof===Va)return tc(os)}throw Error(is(438,String(os)))}function Vf(os){var cs=null,Xr=iu.updateQueue;if(Xr!==null&&(cs=Xr.memoCache),cs==null){var Na=iu.alternate;Na!==null&&(Na=Na.updateQueue,Na!==null&&(Na=Na.memoCache,Na!=null&&(cs={data:Na.data.map(function(La){return La.slice()}),index:0})))}if(cs==null&&(cs={data:[],index:0}),Xr===null&&(Xr=ap(),iu.updateQueue=Xr),Xr.memoCache=cs,Xr=cs.data[cs.index],Xr===void 0)for(Xr=cs.data[cs.index]=Array(os),Na=0;Na<os;Na++)Xr[Na]=dl;return cs.index++,Xr}function dd(os,cs){return typeof cs=="function"?cs(os):cs}function lp(os){var cs=zu();return Qf(cs,Su,os)}function Qf(os,cs,Xr){var Na=os.queue;if(Na===null)throw Error(is(311));Na.lastRenderedReducer=Xr;var La=os.baseQueue,Pa=Na.pending;if(Pa!==null){if(La!==null){var za=La.next;La.next=Pa.next,Pa.next=za}cs.baseQueue=La=Pa,Na.pending=null}if(Pa=os.baseState,La===null)os.memoizedState=Pa;else{cs=La.next;var Za=za=null,Xa=null,xl=cs,wl=!1;do{var Cl=xl.lane&-536870913;if(Cl!==xl.lane?(du&Cl)===Cl:(cd&Cl)===Cl){var gl=xl.revertLane;if(gl===0)Xa!==null&&(Xa=Xa.next={lane:0,revertLane:0,gesture:null,action:xl.action,hasEagerState:xl.hasEagerState,eagerState:xl.eagerState,next:null}),Cl===Xm&&(wl=!0);else if((cd&gl)===gl){xl=xl.next,gl===Xm&&(wl=!0);continue}else Cl={lane:0,revertLane:xl.revertLane,gesture:null,action:xl.action,hasEagerState:xl.hasEagerState,eagerState:xl.eagerState,next:null},Xa===null?(Za=Xa=Cl,za=Pa):Xa=Xa.next=Cl,iu.lanes|=gl,Ud|=gl;Cl=xl.action,Em&&Xr(Pa,Cl),Pa=xl.hasEagerState?xl.eagerState:Xr(Pa,Cl)}else gl={lane:Cl,revertLane:xl.revertLane,gesture:xl.gesture,action:xl.action,hasEagerState:xl.hasEagerState,eagerState:xl.eagerState,next:null},Xa===null?(Za=Xa=gl,za=Pa):Xa=Xa.next=gl,iu.lanes|=Cl,Ud|=Cl;xl=xl.next}while(xl!==null&&xl!==cs);if(Xa===null?za=Pa:Xa.next=Za,!bc(Pa,os.memoizedState)&&(Gu=!0,wl&&(Xr=ex,Xr!==null)))throw Xr;os.memoizedState=Pa,os.baseState=za,os.baseQueue=Xa,Na.lastRenderedState=Pa}return La===null&&(Na.lanes=0),[os.memoizedState,Na.dispatch]}function Yf(os){var cs=zu(),Xr=cs.queue;if(Xr===null)throw Error(is(311));Xr.lastRenderedReducer=os;var Na=Xr.dispatch,La=Xr.pending,Pa=cs.memoizedState;if(La!==null){Xr.pending=null;var za=La=La.next;do Pa=os(Pa,za.action),za=za.next;while(za!==La);bc(Pa,cs.memoizedState)||(Gu=!0),cs.memoizedState=Pa,cs.baseQueue===null&&(cs.baseState=Pa),Xr.lastRenderedState=Pa}return[Pa,Na]}function Dv(os,cs,Xr){var Na=iu,La=zu(),Pa=hu;if(Pa){if(Xr===void 0)throw Error(is(407));Xr=Xr()}else Xr=cs();var za=!bc((Su||La).memoizedState,Xr);if(za&&(La.memoizedState=Xr,Gu=!0),La=La.queue,Xf(Mv.bind(null,Na,La,os),[os]),La.getSnapshot!==cs||za||Ku!==null&&Ku.memoizedState.tag&1){if(Na.flags|=2048,ax(9,{destroy:void 0},$v.bind(null,Na,La,Xr,cs),null),Ou===null)throw Error(is(349));Pa||(cd&127)!==0||Pv(Na,cs,Xr)}return Xr}function Pv(os,cs,Xr){os.flags|=16384,os={getSnapshot:cs,value:Xr},cs=iu.updateQueue,cs===null?(cs=ap(),iu.updateQueue=cs,cs.stores=[os]):(Xr=cs.stores,Xr===null?cs.stores=[os]:Xr.push(os))}function $v(os,cs,Xr,Na){cs.value=Xr,cs.getSnapshot=Na,Bv(cs)&&Uv(os)}function Mv(os,cs,Xr){return Xr(function(){Bv(cs)&&Uv(os)})}function Bv(os){var cs=os.getSnapshot;os=os.value;try{var Xr=cs();return!bc(os,Xr)}catch{return!0}}function Uv(os){var cs=mm(os,2);cs!==null&&vc(cs,os,2)}function Wf(os){var cs=cc();if(typeof os=="function"){var Xr=os;if(os=Xr(),Em){Ol(!0);try{Xr()}finally{Ol(!1)}}}return cs.memoizedState=cs.baseState=os,cs.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:dd,lastRenderedState:os},cs}function Fv(os,cs,Xr,Na){return os.baseState=Xr,Qf(os,Su,typeof Na=="function"?Na:dd)}function kR(os,cs,Xr,Na,La){if(dp(os))throw Error(is(485));if(os=cs.action,os!==null){var Pa={payload:La,action:os,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(za){Pa.listeners.push(za)}};ul.T!==null?Xr(!0):Pa.isTransition=!1,Na(Pa),Xr=cs.pending,Xr===null?(Pa.next=cs.pending=Pa,qv(cs,Pa)):(Pa.next=Xr.next,cs.pending=Xr.next=Pa)}}function qv(os,cs){var Xr=cs.action,Na=cs.payload,La=os.state;if(cs.isTransition){var Pa=ul.T,za={};ul.T=za;try{var Za=Xr(La,Na),Xa=ul.S;Xa!==null&&Xa(za,Za),zv(os,cs,Za)}catch(xl){Jf(os,cs,xl)}finally{Pa!==null&&za.types!==null&&(Pa.types=za.types),ul.T=Pa}}else try{Pa=Xr(La,Na),zv(os,cs,Pa)}catch(xl){Jf(os,cs,xl)}}function zv(os,cs,Xr){Xr!==null&&typeof Xr=="object"&&typeof Xr.then=="function"?Xr.then(function(Na){Hv(os,cs,Na)},function(Na){return Jf(os,cs,Na)}):Hv(os,cs,Xr)}function Hv(os,cs,Xr){cs.status="fulfilled",cs.value=Xr,Kv(cs),os.state=Xr,cs=os.pending,cs!==null&&(Xr=cs.next,Xr===cs?os.pending=null:(Xr=Xr.next,cs.next=Xr,qv(os,Xr)))}function Jf(os,cs,Xr){var Na=os.pending;if(os.pending=null,Na!==null){Na=Na.next;do cs.status="rejected",cs.reason=Xr,Kv(cs),cs=cs.next;while(cs!==Na)}os.action=null}function Kv(os){os=os.listeners;for(var cs=0;cs<os.length;cs++)(0,os[cs])()}function Gv(os,cs){return cs}function Zv(os,cs){if(hu){var Xr=Ou.formState;if(Xr!==null){e:{var Na=iu;if(hu){if(Pu){t:{for(var La=Pu,Pa=Pc;La.nodeType!==8;){if(!Pa){La=null;break t}if(La=Mc(La.nextSibling),La===null){La=null;break t}}Pa=La.data,La=Pa==="F!"||Pa==="F"?La:null}if(La){Pu=Mc(La.nextSibling),Na=La.data==="F!";break e}}Ad(Na)}Na=!1}Na&&(cs=Xr[0])}}return Xr=cc(),Xr.memoizedState=Xr.baseState=cs,Na={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gv,lastRenderedState:cs},Xr.queue=Na,Xr=my.bind(null,iu,Na),Na.dispatch=Xr,Na=Wf(!1),Pa=rg.bind(null,iu,!1,Na.queue),Na=cc(),La={state:cs,dispatch:null,action:os,pending:null},Na.queue=La,Xr=kR.bind(null,iu,La,Pa,Xr),La.dispatch=Xr,Na.memoizedState=os,[cs,Xr,!1]}function Vv(os){var cs=zu();return Qv(cs,Su,os)}function Qv(os,cs,Xr){if(cs=Qf(os,cs,Gv)[0],os=lp(dd)[0],typeof cs=="object"&&cs!==null&&typeof cs.then=="function")try{var Na=th(cs)}catch(za){throw za===tx?Jh:za}else Na=cs;cs=zu();var La=cs.queue,Pa=La.dispatch;return Xr!==cs.memoizedState&&(iu.flags|=2048,ax(9,{destroy:void 0},AR.bind(null,La,Xr),null)),[Na,Pa,os]}function AR(os,cs){os.action=cs}function Yv(os){var cs=zu(),Xr=Su;if(Xr!==null)return Qv(cs,Xr,os);zu(),cs=cs.memoizedState,Xr=zu();var Na=Xr.queue.dispatch;return Xr.memoizedState=os,[cs,Na,!1]}function ax(os,cs,Xr,Na){return os={tag:os,create:Xr,deps:Na,inst:cs,next:null},cs=iu.updateQueue,cs===null&&(cs=ap(),iu.updateQueue=cs),Xr=cs.lastEffect,Xr===null?cs.lastEffect=os.next=os:(Na=Xr.next,Xr.next=os,os.next=Na,cs.lastEffect=os),os}function Wv(){return zu().memoizedState}function up(os,cs,Xr,Na){var La=cc();iu.flags|=os,La.memoizedState=ax(1|cs,{destroy:void 0},Xr,Na===void 0?null:Na)}function cp(os,cs,Xr,Na){var La=zu();Na=Na===void 0?null:Na;var Pa=La.memoizedState.inst;Su!==null&&Na!==null&&zf(Na,Su.memoizedState.deps)?La.memoizedState=ax(cs,Pa,Xr,Na):(iu.flags|=os,La.memoizedState=ax(1|cs,Pa,Xr,Na))}function Jv(os,cs){up(8390656,8,os,cs)}function Xf(os,cs){cp(2048,8,os,cs)}function OR(os){iu.flags|=4;var cs=iu.updateQueue;if(cs===null)cs=ap(),iu.updateQueue=cs,cs.events=[os];else{var Xr=cs.events;Xr===null?cs.events=[os]:Xr.push(os)}}function Xv(os){var cs=zu().memoizedState;return OR({ref:cs,nextImpl:os}),function(){if((vu&2)!==0)throw Error(is(440));return cs.impl.apply(void 0,arguments)}}function ey(os,cs){return cp(4,2,os,cs)}function ty(os,cs){return cp(4,4,os,cs)}function sy(os,cs){if(typeof cs=="function"){os=os();var Xr=cs(os);return function(){typeof Xr=="function"?Xr():cs(null)}}if(cs!=null)return os=os(),cs.current=os,function(){cs.current=null}}function ny(os,cs,Xr){Xr=Xr!=null?Xr.concat([os]):null,cp(4,4,sy.bind(null,cs,os),Xr)}function eg(){}function ry(os,cs){var Xr=zu();cs=cs===void 0?null:cs;var Na=Xr.memoizedState;return cs!==null&&zf(cs,Na[1])?Na[0]:(Xr.memoizedState=[os,cs],os)}function iy(os,cs){var Xr=zu();cs=cs===void 0?null:cs;var Na=Xr.memoizedState;if(cs!==null&&zf(cs,Na[1]))return Na[0];if(Na=os(),Em){Ol(!0);try{os()}finally{Ol(!1)}}return Xr.memoizedState=[Na,cs],Na}function tg(os,cs,Xr){return Xr===void 0||(cd&1073741824)!==0&&(du&261930)===0?os.memoizedState=cs:(os.memoizedState=Xr,os=aE(),iu.lanes|=os,Ud|=os,Xr)}function ay(os,cs,Xr,Na){return bc(Xr,cs)?Xr:nx.current!==null?(os=tg(os,Xr,Na),bc(os,cs)||(Gu=!0),os):(cd&42)===0||(cd&1073741824)!==0&&(du&261930)===0?(Gu=!0,os.memoizedState=Xr):(os=aE(),iu.lanes|=os,Ud|=os,cs)}function oy(os,cs,Xr,Na,La){var Pa=hl.p;hl.p=Pa!==0&&8>Pa?Pa:8;var za=ul.T,Za={};ul.T=Za,rg(os,!1,cs,Xr);try{var Xa=La(),xl=ul.S;if(xl!==null&&xl(Za,Xa),Xa!==null&&typeof Xa=="object"&&typeof Xa.then=="function"){var wl=SR(Xa,Na);sh(os,cs,wl,Cc(os))}else sh(os,cs,Na,Cc(os))}catch(Cl){sh(os,cs,{then:function(){},status:"rejected",reason:Cl},Cc())}finally{hl.p=Pa,za!==null&&Za.types!==null&&(za.types=Za.types),ul.T=za}}function IR(){}function sg(os,cs,Xr,Na){if(os.tag!==5)throw Error(is(476));var La=ly(os).queue;oy(os,La,cs,jl,Xr===null?IR:function(){return uy(os),Xr(Na)})}function ly(os){var cs=os.memoizedState;if(cs!==null)return cs;cs={memoizedState:jl,baseState:jl,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dd,lastRenderedState:jl},next:null};var Xr={};return cs.next={memoizedState:Xr,baseState:Xr,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dd,lastRenderedState:Xr},next:null},os.memoizedState=cs,os=os.alternate,os!==null&&(os.memoizedState=cs),cs}function uy(os){var cs=ly(os);cs.next===null&&(cs=os.alternate.memoizedState),sh(os,cs.next.queue,{},Cc())}function ng(){return tc(vh)}function cy(){return zu().memoizedState}function dy(){return zu().memoizedState}function LR(os){for(var cs=os.return;cs!==null;){switch(cs.tag){case 24:case 3:var Xr=Cc();os=Ld(Xr);var Na=Dd(cs,os,Xr);Na!==null&&(vc(Na,cs,Xr),Wx(Na,cs,Xr)),cs={cache:Of()},os.payload=cs;return}cs=cs.return}}function DR(os,cs,Xr){var Na=Cc();Xr={lane:Na,revertLane:0,gesture:null,action:Xr,hasEagerState:!1,eagerState:null,next:null},dp(os)?xy(cs,Xr):(Xr=Ef(os,cs,Xr,Na),Xr!==null&&(vc(Xr,os,Na),hy(Xr,cs,Na)))}function my(os,cs,Xr){var Na=Cc();sh(os,cs,Xr,Na)}function sh(os,cs,Xr,Na){var La={lane:Na,revertLane:0,gesture:null,action:Xr,hasEagerState:!1,eagerState:null,next:null};if(dp(os))xy(cs,La);else{var Pa=os.alternate;if(os.lanes===0&&(Pa===null||Pa.lanes===0)&&(Pa=cs.lastRenderedReducer,Pa!==null))try{var za=cs.lastRenderedState,Za=Pa(za,Xr);if(La.hasEagerState=!0,La.eagerState=Za,bc(Za,za))return Kh(os,cs,La,0),Ou===null&&Hh(),!1}catch{}finally{}if(Xr=Ef(os,cs,La,Na),Xr!==null)return vc(Xr,os,Na),hy(Xr,cs,Na),!0}return!1}function rg(os,cs,Xr,Na){if(Na={lane:2,revertLane:Pg(),gesture:null,action:Na,hasEagerState:!1,eagerState:null,next:null},dp(os)){if(cs)throw Error(is(479))}else cs=Ef(os,Xr,Na,2),cs!==null&&vc(cs,os,2)}function dp(os){var cs=os.alternate;return os===iu||cs!==null&&cs===iu}function xy(os,cs){rx=rp=!0;var Xr=os.pending;Xr===null?cs.next=cs:(cs.next=Xr.next,Xr.next=cs),os.pending=cs}function hy(os,cs,Xr){if((Xr&4194048)!==0){var Na=cs.lanes;Na&=os.pendingLanes,Xr|=Na,cs.lanes=Xr,mc(os,Xr)}}var nh={readContext:tc,use:op,useCallback:Bu,useContext:Bu,useEffect:Bu,useImperativeHandle:Bu,useLayoutEffect:Bu,useInsertionEffect:Bu,useMemo:Bu,useReducer:Bu,useRef:Bu,useState:Bu,useDebugValue:Bu,useDeferredValue:Bu,useTransition:Bu,useSyncExternalStore:Bu,useId:Bu,useHostTransitionStatus:Bu,useFormState:Bu,useActionState:Bu,useOptimistic:Bu,useMemoCache:Bu,useCacheRefresh:Bu};nh.useEffectEvent=Bu;var py={readContext:tc,use:op,useCallback:function(os,cs){return cc().memoizedState=[os,cs===void 0?null:cs],os},useContext:tc,useEffect:Jv,useImperativeHandle:function(os,cs,Xr){Xr=Xr!=null?Xr.concat([os]):null,up(4194308,4,sy.bind(null,cs,os),Xr)},useLayoutEffect:function(os,cs){return up(4194308,4,os,cs)},useInsertionEffect:function(os,cs){up(4,2,os,cs)},useMemo:function(os,cs){var Xr=cc();cs=cs===void 0?null:cs;var Na=os();if(Em){Ol(!0);try{os()}finally{Ol(!1)}}return Xr.memoizedState=[Na,cs],Na},useReducer:function(os,cs,Xr){var Na=cc();if(Xr!==void 0){var La=Xr(cs);if(Em){Ol(!0);try{Xr(cs)}finally{Ol(!1)}}}else La=cs;return Na.memoizedState=Na.baseState=La,os={pending:null,lanes:0,dispatch:null,lastRenderedReducer:os,lastRenderedState:La},Na.queue=os,os=os.dispatch=DR.bind(null,iu,os),[Na.memoizedState,os]},useRef:function(os){var cs=cc();return os={current:os},cs.memoizedState=os},useState:function(os){os=Wf(os);var cs=os.queue,Xr=my.bind(null,iu,cs);return cs.dispatch=Xr,[os.memoizedState,Xr]},useDebugValue:eg,useDeferredValue:function(os,cs){var Xr=cc();return tg(Xr,os,cs)},useTransition:function(){var os=Wf(!1);return os=oy.bind(null,iu,os.queue,!0,!1),cc().memoizedState=os,[!1,os]},useSyncExternalStore:function(os,cs,Xr){var Na=iu,La=cc();if(hu){if(Xr===void 0)throw Error(is(407));Xr=Xr()}else{if(Xr=cs(),Ou===null)throw Error(is(349));(du&127)!==0||Pv(Na,cs,Xr)}La.memoizedState=Xr;var Pa={value:Xr,getSnapshot:cs};return La.queue=Pa,Jv(Mv.bind(null,Na,Pa,os),[os]),Na.flags|=2048,ax(9,{destroy:void 0},$v.bind(null,Na,Pa,Xr,cs),null),Xr},useId:function(){var os=cc(),cs=Ou.identifierPrefix;if(hu){var Xr=Wc,Na=Yc;Xr=(Na&~(1<<32-Rl(Na)-1)).toString(32)+Xr,cs="_"+cs+"R_"+Xr,Xr=ip++,0<Xr&&(cs+="H"+Xr.toString(32)),cs+="_"}else Xr=CR++,cs="_"+cs+"r_"+Xr.toString(32)+"_";return os.memoizedState=cs},useHostTransitionStatus:ng,useFormState:Zv,useActionState:Zv,useOptimistic:function(os){var cs=cc();cs.memoizedState=cs.baseState=os;var Xr={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return cs.queue=Xr,cs=rg.bind(null,iu,!0,Xr),Xr.dispatch=cs,[os,cs]},useMemoCache:Vf,useCacheRefresh:function(){return cc().memoizedState=LR.bind(null,iu)},useEffectEvent:function(os){var cs=cc(),Xr={impl:os};return cs.memoizedState=Xr,function(){if((vu&2)!==0)throw Error(is(440));return Xr.impl.apply(void 0,arguments)}}},ig={readContext:tc,use:op,useCallback:ry,useContext:tc,useEffect:Xf,useImperativeHandle:ny,useInsertionEffect:ey,useLayoutEffect:ty,useMemo:iy,useReducer:lp,useRef:Wv,useState:function(){return lp(dd)},useDebugValue:eg,useDeferredValue:function(os,cs){var Xr=zu();return ay(Xr,Su.memoizedState,os,cs)},useTransition:function(){var os=lp(dd)[0],cs=zu().memoizedState;return[typeof os=="boolean"?os:th(os),cs]},useSyncExternalStore:Dv,useId:cy,useHostTransitionStatus:ng,useFormState:Vv,useActionState:Vv,useOptimistic:function(os,cs){var Xr=zu();return Fv(Xr,Su,os,cs)},useMemoCache:Vf,useCacheRefresh:dy};ig.useEffectEvent=Xv;var fy={readContext:tc,use:op,useCallback:ry,useContext:tc,useEffect:Xf,useImperativeHandle:ny,useInsertionEffect:ey,useLayoutEffect:ty,useMemo:iy,useReducer:Yf,useRef:Wv,useState:function(){return Yf(dd)},useDebugValue:eg,useDeferredValue:function(os,cs){var Xr=zu();return Su===null?tg(Xr,os,cs):ay(Xr,Su.memoizedState,os,cs)},useTransition:function(){var os=Yf(dd)[0],cs=zu().memoizedState;return[typeof os=="boolean"?os:th(os),cs]},useSyncExternalStore:Dv,useId:cy,useHostTransitionStatus:ng,useFormState:Yv,useActionState:Yv,useOptimistic:function(os,cs){var Xr=zu();return Su!==null?Fv(Xr,Su,os,cs):(Xr.baseState=os,[os,Xr.queue.dispatch])},useMemoCache:Vf,useCacheRefresh:dy};fy.useEffectEvent=Xv;function ag(os,cs,Xr,Na){cs=os.memoizedState,Xr=Xr(Na,cs),Xr=Xr==null?cs:Da({},cs,Xr),os.memoizedState=Xr,os.lanes===0&&(os.updateQueue.baseState=Xr)}var og={enqueueSetState:function(os,cs,Xr){os=os._reactInternals;var Na=Cc(),La=Ld(Na);La.payload=cs,Xr!=null&&(La.callback=Xr),cs=Dd(os,La,Na),cs!==null&&(vc(cs,os,Na),Wx(cs,os,Na))},enqueueReplaceState:function(os,cs,Xr){os=os._reactInternals;var Na=Cc(),La=Ld(Na);La.tag=1,La.payload=cs,Xr!=null&&(La.callback=Xr),cs=Dd(os,La,Na),cs!==null&&(vc(cs,os,Na),Wx(cs,os,Na))},enqueueForceUpdate:function(os,cs){os=os._reactInternals;var Xr=Cc(),Na=Ld(Xr);Na.tag=2,cs!=null&&(Na.callback=cs),cs=Dd(os,Na,Xr),cs!==null&&(vc(cs,os,Xr),Wx(cs,os,Xr))}};function gy(os,cs,Xr,Na,La,Pa,za){return os=os.stateNode,typeof os.shouldComponentUpdate=="function"?os.shouldComponentUpdate(Na,Pa,za):cs.prototype&&cs.prototype.isPureReactComponent?!zx(Xr,Na)||!zx(La,Pa):!0}function jy(os,cs,Xr,Na){os=cs.state,typeof cs.componentWillReceiveProps=="function"&&cs.componentWillReceiveProps(Xr,Na),typeof cs.UNSAFE_componentWillReceiveProps=="function"&&cs.UNSAFE_componentWillReceiveProps(Xr,Na),cs.state!==os&&og.enqueueReplaceState(cs,cs.state,null)}function bm(os,cs){var Xr=cs;if("ref"in cs){Xr={};for(var Na in cs)Na!=="ref"&&(Xr[Na]=cs[Na])}if(os=os.defaultProps){Xr===cs&&(Xr=Da({},Xr));for(var La in os)Xr[La]===void 0&&(Xr[La]=os[La])}return Xr}function vy(os){zh(os)}function yy(os){console.error(os)}function Ey(os){zh(os)}function mp(os,cs){try{var Xr=os.onUncaughtError;Xr(cs.value,{componentStack:cs.stack})}catch(Na){setTimeout(function(){throw Na})}}function by(os,cs,Xr){try{var Na=os.onCaughtError;Na(Xr.value,{componentStack:Xr.stack,errorBoundary:cs.tag===1?cs.stateNode:null})}catch(La){setTimeout(function(){throw La})}}function lg(os,cs,Xr){return Xr=Ld(Xr),Xr.tag=3,Xr.payload={element:null},Xr.callback=function(){mp(os,cs)},Xr}function Ry(os){return os=Ld(os),os.tag=3,os}function _y(os,cs,Xr,Na){var La=Xr.type.getDerivedStateFromError;if(typeof La=="function"){var Pa=Na.value;os.payload=function(){return La(Pa)},os.callback=function(){by(cs,Xr,Na)}}var za=Xr.stateNode;za!==null&&typeof za.componentDidCatch=="function"&&(os.callback=function(){by(cs,Xr,Na),typeof La!="function"&&(Fd===null?Fd=new Set([this]):Fd.add(this));var Za=Na.stack;this.componentDidCatch(Na.value,{componentStack:Za!==null?Za:""})})}function PR(os,cs,Xr,Na,La){if(Xr.flags|=32768,Na!==null&&typeof Na=="object"&&typeof Na.then=="function"){if(cs=Xr.alternate,cs!==null&&Jm(cs,Xr,La,!0),Xr=_c.current,Xr!==null){switch(Xr.tag){case 31:case 13:return $c===null?wp():Xr.alternate===null&&Uu===0&&(Uu=3),Xr.flags&=-257,Xr.flags|=65536,Xr.lanes=La,Na===Xh?Xr.flags|=16384:(cs=Xr.updateQueue,cs===null?Xr.updateQueue=new Set([Na]):cs.add(Na),Ig(os,Na,La)),!1;case 22:return Xr.flags|=65536,Na===Xh?Xr.flags|=16384:(cs=Xr.updateQueue,cs===null?(cs={transitions:null,markerInstances:null,retryQueue:new Set([Na])},Xr.updateQueue=cs):(Xr=cs.retryQueue,Xr===null?cs.retryQueue=new Set([Na]):Xr.add(Na)),Ig(os,Na,La)),!1}throw Error(is(435,Xr.tag))}return Ig(os,Na,La),wp(),!1}if(hu)return cs=_c.current,cs!==null?((cs.flags&65536)===0&&(cs.flags|=256),cs.flags|=65536,cs.lanes=La,Na!==Sf&&(os=Error(is(422),{cause:Na}),Gx(Ic(os,Xr)))):(Na!==Sf&&(cs=Error(is(423),{cause:Na}),Gx(Ic(cs,Xr))),os=os.current.alternate,os.flags|=65536,La&=-La,os.lanes|=La,Na=Ic(Na,Xr),La=lg(os.stateNode,Na,La),Mf(os,La),Uu!==4&&(Uu=2)),!1;var Pa=Error(is(520),{cause:Na});if(Pa=Ic(Pa,Xr),dh===null?dh=[Pa]:dh.push(Pa),Uu!==4&&(Uu=2),cs===null)return!0;Na=Ic(Na,Xr),Xr=cs;do{switch(Xr.tag){case 3:return Xr.flags|=65536,os=La&-La,Xr.lanes|=os,os=lg(Xr.stateNode,Na,os),Mf(Xr,os),!1;case 1:if(cs=Xr.type,Pa=Xr.stateNode,(Xr.flags&128)===0&&(typeof cs.getDerivedStateFromError=="function"||Pa!==null&&typeof Pa.componentDidCatch=="function"&&(Fd===null||!Fd.has(Pa))))return Xr.flags|=65536,La&=-La,Xr.lanes|=La,La=Ry(La),_y(La,os,Xr,Na),Mf(Xr,La),!1}Xr=Xr.return}while(Xr!==null);return!1}var ug=Error(is(461)),Gu=!1;function sc(os,cs,Xr,Na){cs.child=os===null?Cv(cs,null,Xr,Na):ym(cs,os.child,Xr,Na)}function wy(os,cs,Xr,Na,La){Xr=Xr.render;var Pa=cs.ref;if("ref"in Na){var za={};for(var Za in Na)Za!=="ref"&&(za[Za]=Na[Za])}else za=Na;return fm(cs),Na=Hf(os,cs,Xr,za,Pa,La),Za=Kf(),os!==null&&!Gu?(Gf(os,cs,La),md(os,cs,La)):(hu&&Za&&wf(cs),cs.flags|=1,sc(os,cs,Na,La),cs.child)}function Ny(os,cs,Xr,Na,La){if(os===null){var Pa=Xr.type;return typeof Pa=="function"&&!bf(Pa)&&Pa.defaultProps===void 0&&Xr.compare===null?(cs.tag=15,cs.type=Pa,Sy(os,cs,Pa,Na,La)):(os=Zh(Xr.type,null,Na,cs,cs.mode,La),os.ref=cs.ref,os.return=cs,cs.child=os)}if(Pa=os.child,!gg(os,La)){var za=Pa.memoizedProps;if(Xr=Xr.compare,Xr=Xr!==null?Xr:zx,Xr(za,Na)&&os.ref===cs.ref)return md(os,cs,La)}return cs.flags|=1,os=ad(Pa,Na),os.ref=cs.ref,os.return=cs,cs.child=os}function Sy(os,cs,Xr,Na,La){if(os!==null){var Pa=os.memoizedProps;if(zx(Pa,Na)&&os.ref===cs.ref)if(Gu=!1,cs.pendingProps=Na=Pa,gg(os,La))(os.flags&131072)!==0&&(Gu=!0);else return cs.lanes=os.lanes,md(os,cs,La)}return cg(os,cs,Xr,Na,La)}function Cy(os,cs,Xr,Na){var La=Na.children,Pa=os!==null?os.memoizedState:null;if(os===null&&cs.stateNode===null&&(cs.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),Na.mode==="hidden"){if((cs.flags&128)!==0){if(Pa=Pa!==null?Pa.baseLanes|Xr:Xr,os!==null){for(Na=cs.child=os.child,La=0;Na!==null;)La=La|Na.lanes|Na.childLanes,Na=Na.sibling;Na=La&~Pa}else Na=0,cs.child=null;return Ty(os,cs,Pa,Xr,Na)}if((Xr&536870912)!==0)cs.memoizedState={baseLanes:0,cachePool:null},os!==null&&Wh(cs,Pa!==null?Pa.cachePool:null),Pa!==null?Av(cs,Pa):Uf(),Ov(cs);else return Na=cs.lanes=536870912,Ty(os,cs,Pa!==null?Pa.baseLanes|Xr:Xr,Xr,Na)}else Pa!==null?(Wh(cs,Pa.cachePool),Av(cs,Pa),$d(),cs.memoizedState=null):(os!==null&&Wh(cs,null),Uf(),$d());return sc(os,cs,La,Xr),cs.child}function rh(os,cs){return os!==null&&os.tag===22||cs.stateNode!==null||(cs.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),cs.sibling}function Ty(os,cs,Xr,Na,La){var Pa=Lf();return Pa=Pa===null?null:{parent:Hu._currentValue,pool:Pa},cs.memoizedState={baseLanes:Xr,cachePool:Pa},os!==null&&Wh(cs,null),Uf(),Ov(cs),os!==null&&Jm(os,cs,Na,!0),cs.childLanes=La,null}function xp(os,cs){return cs=fp({mode:cs.mode,children:cs.children},os.mode),cs.ref=os.ref,os.child=cs,cs.return=os,cs}function ky(os,cs,Xr){return ym(cs,os.child,null,Xr),os=xp(cs,cs.pendingProps),os.flags|=2,wc(cs),cs.memoizedState=null,os}function $R(os,cs,Xr){var Na=cs.pendingProps,La=(cs.flags&128)!==0;if(cs.flags&=-129,os===null){if(hu){if(Na.mode==="hidden")return os=xp(cs,Na),cs.lanes=536870912,rh(null,os);if(qf(cs),(os=Pu)?(os=qE(os,Pc),os=os!==null&&os.data==="&"?os:null,os!==null&&(cs.memoizedState={dehydrated:os,treeContext:Td!==null?{id:Yc,overflow:Wc}:null,retryLane:536870912,hydrationErrors:null},Xr=xv(os),Xr.return=cs,cs.child=Xr,ec=cs,Pu=null)):os=null,os===null)throw Ad(cs);return cs.lanes=536870912,null}return xp(cs,Na)}var Pa=os.memoizedState;if(Pa!==null){var za=Pa.dehydrated;if(qf(cs),La)if(cs.flags&256)cs.flags&=-257,cs=ky(os,cs,Xr);else if(cs.memoizedState!==null)cs.child=os.child,cs.flags|=128,cs=null;else throw Error(is(558));else if(Gu||Jm(os,cs,Xr,!1),La=(Xr&os.childLanes)!==0,Gu||La){if(Na=Ou,Na!==null&&(za=qc(Na,Xr),za!==0&&za!==Pa.retryLane))throw Pa.retryLane=za,mm(os,za),vc(Na,os,za),ug;wp(),cs=ky(os,cs,Xr)}else os=Pa.treeContext,Pu=Mc(za.nextSibling),ec=cs,hu=!0,kd=null,Pc=!1,os!==null&&fv(cs,os),cs=xp(cs,Na),cs.flags|=4096;return cs}return os=ad(os.child,{mode:Na.mode,children:Na.children}),os.ref=cs.ref,cs.child=os,os.return=cs,os}function hp(os,cs){var Xr=cs.ref;if(Xr===null)os!==null&&os.ref!==null&&(cs.flags|=4194816);else{if(typeof Xr!="function"&&typeof Xr!="object")throw Error(is(284));(os===null||os.ref!==Xr)&&(cs.flags|=4194816)}}function cg(os,cs,Xr,Na,La){return fm(cs),Xr=Hf(os,cs,Xr,Na,void 0,La),Na=Kf(),os!==null&&!Gu?(Gf(os,cs,La),md(os,cs,La)):(hu&&Na&&wf(cs),cs.flags|=1,sc(os,cs,Xr,La),cs.child)}function Ay(os,cs,Xr,Na,La,Pa){return fm(cs),cs.updateQueue=null,Xr=Lv(cs,Na,Xr,La),Iv(os),Na=Kf(),os!==null&&!Gu?(Gf(os,cs,Pa),md(os,cs,Pa)):(hu&&Na&&wf(cs),cs.flags|=1,sc(os,cs,Xr,Pa),cs.child)}function Oy(os,cs,Xr,Na,La){if(fm(cs),cs.stateNode===null){var Pa=Vm,za=Xr.contextType;typeof za=="object"&&za!==null&&(Pa=tc(za)),Pa=new Xr(Na,Pa),cs.memoizedState=Pa.state!==null&&Pa.state!==void 0?Pa.state:null,Pa.updater=og,cs.stateNode=Pa,Pa._reactInternals=cs,Pa=cs.stateNode,Pa.props=Na,Pa.state=cs.memoizedState,Pa.refs={},Pf(cs),za=Xr.contextType,Pa.context=typeof za=="object"&&za!==null?tc(za):Vm,Pa.state=cs.memoizedState,za=Xr.getDerivedStateFromProps,typeof za=="function"&&(ag(cs,Xr,za,Na),Pa.state=cs.memoizedState),typeof Xr.getDerivedStateFromProps=="function"||typeof Pa.getSnapshotBeforeUpdate=="function"||typeof Pa.UNSAFE_componentWillMount!="function"&&typeof Pa.componentWillMount!="function"||(za=Pa.state,typeof Pa.componentWillMount=="function"&&Pa.componentWillMount(),typeof Pa.UNSAFE_componentWillMount=="function"&&Pa.UNSAFE_componentWillMount(),za!==Pa.state&&og.enqueueReplaceState(Pa,Pa.state,null),Xx(cs,Na,Pa,La),Jx(),Pa.state=cs.memoizedState),typeof Pa.componentDidMount=="function"&&(cs.flags|=4194308),Na=!0}else if(os===null){Pa=cs.stateNode;var Za=cs.memoizedProps,Xa=bm(Xr,Za);Pa.props=Xa;var xl=Pa.context,wl=Xr.contextType;za=Vm,typeof wl=="object"&&wl!==null&&(za=tc(wl));var Cl=Xr.getDerivedStateFromProps;wl=typeof Cl=="function"||typeof Pa.getSnapshotBeforeUpdate=="function",Za=cs.pendingProps!==Za,wl||typeof Pa.UNSAFE_componentWillReceiveProps!="function"&&typeof Pa.componentWillReceiveProps!="function"||(Za||xl!==za)&&jy(cs,Pa,Na,za),Id=!1;var gl=cs.memoizedState;Pa.state=gl,Xx(cs,Na,Pa,La),Jx(),xl=cs.memoizedState,Za||gl!==xl||Id?(typeof Cl=="function"&&(ag(cs,Xr,Cl,Na),xl=cs.memoizedState),(Xa=Id||gy(cs,Xr,Xa,Na,gl,xl,za))?(wl||typeof Pa.UNSAFE_componentWillMount!="function"&&typeof Pa.componentWillMount!="function"||(typeof Pa.componentWillMount=="function"&&Pa.componentWillMount(),typeof Pa.UNSAFE_componentWillMount=="function"&&Pa.UNSAFE_componentWillMount()),typeof Pa.componentDidMount=="function"&&(cs.flags|=4194308)):(typeof Pa.componentDidMount=="function"&&(cs.flags|=4194308),cs.memoizedProps=Na,cs.memoizedState=xl),Pa.props=Na,Pa.state=xl,Pa.context=za,Na=Xa):(typeof Pa.componentDidMount=="function"&&(cs.flags|=4194308),Na=!1)}else{Pa=cs.stateNode,$f(os,cs),za=cs.memoizedProps,wl=bm(Xr,za),Pa.props=wl,Cl=cs.pendingProps,gl=Pa.context,xl=Xr.contextType,Xa=Vm,typeof xl=="object"&&xl!==null&&(Xa=tc(xl)),Za=Xr.getDerivedStateFromProps,(xl=typeof Za=="function"||typeof Pa.getSnapshotBeforeUpdate=="function")||typeof Pa.UNSAFE_componentWillReceiveProps!="function"&&typeof Pa.componentWillReceiveProps!="function"||(za!==Cl||gl!==Xa)&&jy(cs,Pa,Na,Xa),Id=!1,gl=cs.memoizedState,Pa.state=gl,Xx(cs,Na,Pa,La),Jx();var vl=cs.memoizedState;za!==Cl||gl!==vl||Id||os!==null&&os.dependencies!==null&&Qh(os.dependencies)?(typeof Za=="function"&&(ag(cs,Xr,Za,Na),vl=cs.memoizedState),(wl=Id||gy(cs,Xr,wl,Na,gl,vl,Xa)||os!==null&&os.dependencies!==null&&Qh(os.dependencies))?(xl||typeof Pa.UNSAFE_componentWillUpdate!="function"&&typeof Pa.componentWillUpdate!="function"||(typeof Pa.componentWillUpdate=="function"&&Pa.componentWillUpdate(Na,vl,Xa),typeof Pa.UNSAFE_componentWillUpdate=="function"&&Pa.UNSAFE_componentWillUpdate(Na,vl,Xa)),typeof Pa.componentDidUpdate=="function"&&(cs.flags|=4),typeof Pa.getSnapshotBeforeUpdate=="function"&&(cs.flags|=1024)):(typeof Pa.componentDidUpdate!="function"||za===os.memoizedProps&&gl===os.memoizedState||(cs.flags|=4),typeof Pa.getSnapshotBeforeUpdate!="function"||za===os.memoizedProps&&gl===os.memoizedState||(cs.flags|=1024),cs.memoizedProps=Na,cs.memoizedState=vl),Pa.props=Na,Pa.state=vl,Pa.context=Xa,Na=wl):(typeof Pa.componentDidUpdate!="function"||za===os.memoizedProps&&gl===os.memoizedState||(cs.flags|=4),typeof Pa.getSnapshotBeforeUpdate!="function"||za===os.memoizedProps&&gl===os.memoizedState||(cs.flags|=1024),Na=!1)}return Pa=Na,hp(os,cs),Na=(cs.flags&128)!==0,Pa||Na?(Pa=cs.stateNode,Xr=Na&&typeof Xr.getDerivedStateFromError!="function"?null:Pa.render(),cs.flags|=1,os!==null&&Na?(cs.child=ym(cs,os.child,null,La),cs.child=ym(cs,null,Xr,La)):sc(os,cs,Xr,La),cs.memoizedState=Pa.state,os=cs.child):os=md(os,cs,La),os}function Iy(os,cs,Xr,Na){return hm(),cs.flags|=256,sc(os,cs,Xr,Na),cs.child}var dg={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function mg(os){return{baseLanes:os,cachePool:bv()}}function xg(os,cs,Xr){return os=os!==null?os.childLanes&~Xr:0,cs&&(os|=Sc),os}function Ly(os,cs,Xr){var Na=cs.pendingProps,La=!1,Pa=(cs.flags&128)!==0,za;if((za=Pa)||(za=os!==null&&os.memoizedState===null?!1:(qu.current&2)!==0),za&&(La=!0,cs.flags&=-129),za=(cs.flags&32)!==0,cs.flags&=-33,os===null){if(hu){if(La?Pd(cs):$d(),(os=Pu)?(os=qE(os,Pc),os=os!==null&&os.data!=="&"?os:null,os!==null&&(cs.memoizedState={dehydrated:os,treeContext:Td!==null?{id:Yc,overflow:Wc}:null,retryLane:536870912,hydrationErrors:null},Xr=xv(os),Xr.return=cs,cs.child=Xr,ec=cs,Pu=null)):os=null,os===null)throw Ad(cs);return Qg(os)?cs.lanes=32:cs.lanes=536870912,null}var Za=Na.children;return Na=Na.fallback,La?($d(),La=cs.mode,Za=fp({mode:"hidden",children:Za},La),Na=xm(Na,La,Xr,null),Za.return=cs,Na.return=cs,Za.sibling=Na,cs.child=Za,Na=cs.child,Na.memoizedState=mg(Xr),Na.childLanes=xg(os,za,Xr),cs.memoizedState=dg,rh(null,Na)):(Pd(cs),hg(cs,Za))}var Xa=os.memoizedState;if(Xa!==null&&(Za=Xa.dehydrated,Za!==null)){if(Pa)cs.flags&256?(Pd(cs),cs.flags&=-257,cs=pg(os,cs,Xr)):cs.memoizedState!==null?($d(),cs.child=os.child,cs.flags|=128,cs=null):($d(),Za=Na.fallback,La=cs.mode,Na=fp({mode:"visible",children:Na.children},La),Za=xm(Za,La,Xr,null),Za.flags|=2,Na.return=cs,Za.return=cs,Na.sibling=Za,cs.child=Na,ym(cs,os.child,null,Xr),Na=cs.child,Na.memoizedState=mg(Xr),Na.childLanes=xg(os,za,Xr),cs.memoizedState=dg,cs=rh(null,Na));else if(Pd(cs),Qg(Za)){if(za=Za.nextSibling&&Za.nextSibling.dataset,za)var xl=za.dgst;za=xl,Na=Error(is(419)),Na.stack="",Na.digest=za,Gx({value:Na,source:null,stack:null}),cs=pg(os,cs,Xr)}else if(Gu||Jm(os,cs,Xr,!1),za=(Xr&os.childLanes)!==0,Gu||za){if(za=Ou,za!==null&&(Na=qc(za,Xr),Na!==0&&Na!==Xa.retryLane))throw Xa.retryLane=Na,mm(os,Na),vc(za,os,Na),ug;Vg(Za)||wp(),cs=pg(os,cs,Xr)}else Vg(Za)?(cs.flags|=192,cs.child=os.child,cs=null):(os=Xa.treeContext,Pu=Mc(Za.nextSibling),ec=cs,hu=!0,kd=null,Pc=!1,os!==null&&fv(cs,os),cs=hg(cs,Na.children),cs.flags|=4096);return cs}return La?($d(),Za=Na.fallback,La=cs.mode,Xa=os.child,xl=Xa.sibling,Na=ad(Xa,{mode:"hidden",children:Na.children}),Na.subtreeFlags=Xa.subtreeFlags&65011712,xl!==null?Za=ad(xl,Za):(Za=xm(Za,La,Xr,null),Za.flags|=2),Za.return=cs,Na.return=cs,Na.sibling=Za,cs.child=Na,rh(null,Na),Na=cs.child,Za=os.child.memoizedState,Za===null?Za=mg(Xr):(La=Za.cachePool,La!==null?(Xa=Hu._currentValue,La=La.parent!==Xa?{parent:Xa,pool:Xa}:La):La=bv(),Za={baseLanes:Za.baseLanes|Xr,cachePool:La}),Na.memoizedState=Za,Na.childLanes=xg(os,za,Xr),cs.memoizedState=dg,rh(os.child,Na)):(Pd(cs),Xr=os.child,os=Xr.sibling,Xr=ad(Xr,{mode:"visible",children:Na.children}),Xr.return=cs,Xr.sibling=null,os!==null&&(za=cs.deletions,za===null?(cs.deletions=[os],cs.flags|=16):za.push(os)),cs.child=Xr,cs.memoizedState=null,Xr)}function hg(os,cs){return cs=fp({mode:"visible",children:cs},os.mode),cs.return=os,os.child=cs}function fp(os,cs){return os=Rc(22,os,null,cs),os.lanes=0,os}function pg(os,cs,Xr){return ym(cs,os.child,null,Xr),os=hg(cs,cs.pendingProps.children),os.flags|=2,cs.memoizedState=null,os}function Dy(os,cs,Xr){os.lanes|=cs;var Na=os.alternate;Na!==null&&(Na.lanes|=cs),kf(os.return,cs,Xr)}function fg(os,cs,Xr,Na,La,Pa){var za=os.memoizedState;za===null?os.memoizedState={isBackwards:cs,rendering:null,renderingStartTime:0,last:Na,tail:Xr,tailMode:La,treeForkCount:Pa}:(za.isBackwards=cs,za.rendering=null,za.renderingStartTime=0,za.last=Na,za.tail=Xr,za.tailMode=La,za.treeForkCount=Pa)}function Py(os,cs,Xr){var Na=cs.pendingProps,La=Na.revealOrder,Pa=Na.tail;Na=Na.children;var za=qu.current,Za=(za&2)!==0;if(Za?(za=za&1|2,cs.flags|=128):za&=1,Il(qu,za),sc(os,cs,Na,Xr),Na=hu?Kx:0,!Za&&os!==null&&(os.flags&128)!==0)e:for(os=cs.child;os!==null;){if(os.tag===13)os.memoizedState!==null&&Dy(os,Xr,cs);else if(os.tag===19)Dy(os,Xr,cs);else if(os.child!==null){os.child.return=os,os=os.child;continue}if(os===cs)break e;for(;os.sibling===null;){if(os.return===null||os.return===cs)break e;os=os.return}os.sibling.return=os.return,os=os.sibling}switch(La){case"forwards":for(Xr=cs.child,La=null;Xr!==null;)os=Xr.alternate,os!==null&&np(os)===null&&(La=Xr),Xr=Xr.sibling;Xr=La,Xr===null?(La=cs.child,cs.child=null):(La=Xr.sibling,Xr.sibling=null),fg(cs,!1,La,Xr,Pa,Na);break;case"backwards":case"unstable_legacy-backwards":for(Xr=null,La=cs.child,cs.child=null;La!==null;){if(os=La.alternate,os!==null&&np(os)===null){cs.child=La;break}os=La.sibling,La.sibling=Xr,Xr=La,La=os}fg(cs,!0,Xr,null,Pa,Na);break;case"together":fg(cs,!1,null,null,void 0,Na);break;default:cs.memoizedState=null}return cs.child}function md(os,cs,Xr){if(os!==null&&(cs.dependencies=os.dependencies),Ud|=cs.lanes,(Xr&cs.childLanes)===0)if(os!==null){if(Jm(os,cs,Xr,!1),(Xr&cs.childLanes)===0)return null}else return null;if(os!==null&&cs.child!==os.child)throw Error(is(153));if(cs.child!==null){for(os=cs.child,Xr=ad(os,os.pendingProps),cs.child=Xr,Xr.return=cs;os.sibling!==null;)os=os.sibling,Xr=Xr.sibling=ad(os,os.pendingProps),Xr.return=cs;Xr.sibling=null}return cs.child}function gg(os,cs){return(os.lanes&cs)!==0?!0:(os=os.dependencies,!!(os!==null&&Qh(os)))}function MR(os,cs,Xr){switch(cs.tag){case 3:cu(cs,cs.stateNode.containerInfo),Od(cs,Hu,os.memoizedState.cache),hm();break;case 27:case 5:Ml(cs);break;case 4:cu(cs,cs.stateNode.containerInfo);break;case 10:Od(cs,cs.type,cs.memoizedProps.value);break;case 31:if(cs.memoizedState!==null)return cs.flags|=128,qf(cs),null;break;case 13:var Na=cs.memoizedState;if(Na!==null)return Na.dehydrated!==null?(Pd(cs),cs.flags|=128,null):(Xr&cs.child.childLanes)!==0?Ly(os,cs,Xr):(Pd(cs),os=md(os,cs,Xr),os!==null?os.sibling:null);Pd(cs);break;case 19:var La=(os.flags&128)!==0;if(Na=(Xr&cs.childLanes)!==0,Na||(Jm(os,cs,Xr,!1),Na=(Xr&cs.childLanes)!==0),La){if(Na)return Py(os,cs,Xr);cs.flags|=128}if(La=cs.memoizedState,La!==null&&(La.rendering=null,La.tail=null,La.lastEffect=null),Il(qu,qu.current),Na)break;return null;case 22:return cs.lanes=0,Cy(os,cs,Xr,cs.pendingProps);case 24:Od(cs,Hu,os.memoizedState.cache)}return md(os,cs,Xr)}function $y(os,cs,Xr){if(os!==null)if(os.memoizedProps!==cs.pendingProps)Gu=!0;else{if(!gg(os,Xr)&&(cs.flags&128)===0)return Gu=!1,MR(os,cs,Xr);Gu=(os.flags&131072)!==0}else Gu=!1,hu&&(cs.flags&1048576)!==0&&pv(cs,Kx,cs.index);switch(cs.lanes=0,cs.tag){case 16:e:{var Na=cs.pendingProps;if(os=jm(cs.elementType),cs.type=os,typeof os=="function")bf(os)?(Na=bm(os,Na),cs.tag=1,cs=Oy(null,cs,os,Na,Xr)):(cs.tag=0,cs=cg(null,cs,os,Na,Xr));else{if(os!=null){var La=os.$$typeof;if(La===Ya){cs.tag=11,cs=wy(null,cs,os,Na,Xr);break e}else if(La===tl){cs.tag=14,cs=Ny(null,cs,os,Na,Xr);break e}}throw cs=pl(os)||os,Error(is(306,cs,""))}}return cs;case 0:return cg(os,cs,cs.type,cs.pendingProps,Xr);case 1:return Na=cs.type,La=bm(Na,cs.pendingProps),Oy(os,cs,Na,La,Xr);case 3:e:{if(cu(cs,cs.stateNode.containerInfo),os===null)throw Error(is(387));Na=cs.pendingProps;var Pa=cs.memoizedState;La=Pa.element,$f(os,cs),Xx(cs,Na,null,Xr);var za=cs.memoizedState;if(Na=za.cache,Od(cs,Hu,Na),Na!==Pa.cache&&Af(cs,[Hu],Xr,!0),Jx(),Na=za.element,Pa.isDehydrated)if(Pa={element:Na,isDehydrated:!1,cache:za.cache},cs.updateQueue.baseState=Pa,cs.memoizedState=Pa,cs.flags&256){cs=Iy(os,cs,Na,Xr);break e}else if(Na!==La){La=Ic(Error(is(424)),cs),Gx(La),cs=Iy(os,cs,Na,Xr);break e}else{switch(os=cs.stateNode.containerInfo,os.nodeType){case 9:os=os.body;break;default:os=os.nodeName==="HTML"?os.ownerDocument.body:os}for(Pu=Mc(os.firstChild),ec=cs,hu=!0,kd=null,Pc=!0,Xr=Cv(cs,null,Na,Xr),cs.child=Xr;Xr;)Xr.flags=Xr.flags&-3|4096,Xr=Xr.sibling}else{if(hm(),Na===La){cs=md(os,cs,Xr);break e}sc(os,cs,Na,Xr)}cs=cs.child}return cs;case 26:return hp(os,cs),os===null?(Xr=VE(cs.type,null,cs.pendingProps,null))?cs.memoizedState=Xr:hu||(Xr=cs.type,os=cs.pendingProps,Na=Op(ru.current).createElement(Xr),Na[Xu]=cs,Na[xc]=os,nc(Na,Xr,os),Qu(Na),cs.stateNode=Na):cs.memoizedState=VE(cs.type,os.memoizedProps,cs.pendingProps,os.memoizedState),null;case 27:return Ml(cs),os===null&&hu&&(Na=cs.stateNode=KE(cs.type,cs.pendingProps,ru.current),ec=cs,Pc=!0,La=Pu,Kd(cs.type)?(Yg=La,Pu=Mc(Na.firstChild)):Pu=La),sc(os,cs,cs.pendingProps.children,Xr),hp(os,cs),os===null&&(cs.flags|=4194304),cs.child;case 5:return os===null&&hu&&((La=Na=Pu)&&(Na=h0(Na,cs.type,cs.pendingProps,Pc),Na!==null?(cs.stateNode=Na,ec=cs,Pu=Mc(Na.firstChild),Pc=!1,La=!0):La=!1),La||Ad(cs)),Ml(cs),La=cs.type,Pa=cs.pendingProps,za=os!==null?os.memoizedProps:null,Na=Pa.children,Kg(La,Pa)?Na=null:za!==null&&Kg(La,za)&&(cs.flags|=32),cs.memoizedState!==null&&(La=Hf(os,cs,TR,null,null,Xr),vh._currentValue=La),hp(os,cs),sc(os,cs,Na,Xr),cs.child;case 6:return os===null&&hu&&((os=Xr=Pu)&&(Xr=p0(Xr,cs.pendingProps,Pc),Xr!==null?(cs.stateNode=Xr,ec=cs,Pu=null,os=!0):os=!1),os||Ad(cs)),null;case 13:return Ly(os,cs,Xr);case 4:return cu(cs,cs.stateNode.containerInfo),Na=cs.pendingProps,os===null?cs.child=ym(cs,null,Na,Xr):sc(os,cs,Na,Xr),cs.child;case 11:return wy(os,cs,cs.type,cs.pendingProps,Xr);case 7:return sc(os,cs,cs.pendingProps,Xr),cs.child;case 8:return sc(os,cs,cs.pendingProps.children,Xr),cs.child;case 12:return sc(os,cs,cs.pendingProps.children,Xr),cs.child;case 10:return Na=cs.pendingProps,Od(cs,cs.type,Na.value),sc(os,cs,Na.children,Xr),cs.child;case 9:return La=cs.type._context,Na=cs.pendingProps.children,fm(cs),La=tc(La),Na=Na(La),cs.flags|=1,sc(os,cs,Na,Xr),cs.child;case 14:return Ny(os,cs,cs.type,cs.pendingProps,Xr);case 15:return Sy(os,cs,cs.type,cs.pendingProps,Xr);case 19:return Py(os,cs,Xr);case 31:return $R(os,cs,Xr);case 22:return Cy(os,cs,Xr,cs.pendingProps);case 24:return fm(cs),Na=tc(Hu),os===null?(La=Lf(),La===null&&(La=Ou,Pa=Of(),La.pooledCache=Pa,Pa.refCount++,Pa!==null&&(La.pooledCacheLanes|=Xr),La=Pa),cs.memoizedState={parent:Na,cache:La},Pf(cs),Od(cs,Hu,La)):((os.lanes&Xr)!==0&&($f(os,cs),Xx(cs,null,null,Xr),Jx()),La=os.memoizedState,Pa=cs.memoizedState,La.parent!==Na?(La={parent:Na,cache:Na},cs.memoizedState=La,cs.lanes===0&&(cs.memoizedState=cs.updateQueue.baseState=La),Od(cs,Hu,Na)):(Na=Pa.cache,Od(cs,Hu,Na),Na!==La.cache&&Af(cs,[Hu],Xr,!0))),sc(os,cs,cs.pendingProps.children,Xr),cs.child;case 29:throw cs.pendingProps}throw Error(is(156,cs.tag))}function xd(os){os.flags|=4}function jg(os,cs,Xr,Na,La){if((cs=(os.mode&32)!==0)&&(cs=!1),cs){if(os.flags|=16777216,(La&335544128)===La)if(os.stateNode.complete)os.flags|=8192;else if(cE())os.flags|=8192;else throw vm=Xh,Df}else os.flags&=-16777217}function My(os,cs){if(cs.type!=="stylesheet"||(cs.state.loading&4)!==0)os.flags&=-16777217;else if(os.flags|=16777216,!XE(cs))if(cE())os.flags|=8192;else throw vm=Xh,Df}function gp(os,cs){cs!==null&&(os.flags|=4),os.flags&16384&&(cs=os.tag!==22?Au():536870912,os.lanes|=cs,cx|=cs)}function ih(os,cs){if(!hu)switch(os.tailMode){case"hidden":cs=os.tail;for(var Xr=null;cs!==null;)cs.alternate!==null&&(Xr=cs),cs=cs.sibling;Xr===null?os.tail=null:Xr.sibling=null;break;case"collapsed":Xr=os.tail;for(var Na=null;Xr!==null;)Xr.alternate!==null&&(Na=Xr),Xr=Xr.sibling;Na===null?cs||os.tail===null?os.tail=null:os.tail.sibling=null:Na.sibling=null}}function $u(os){var cs=os.alternate!==null&&os.alternate.child===os.child,Xr=0,Na=0;if(cs)for(var La=os.child;La!==null;)Xr|=La.lanes|La.childLanes,Na|=La.subtreeFlags&65011712,Na|=La.flags&65011712,La.return=os,La=La.sibling;else for(La=os.child;La!==null;)Xr|=La.lanes|La.childLanes,Na|=La.subtreeFlags,Na|=La.flags,La.return=os,La=La.sibling;return os.subtreeFlags|=Na,os.childLanes=Xr,cs}function BR(os,cs,Xr){var Na=cs.pendingProps;switch(Nf(cs),cs.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return $u(cs),null;case 1:return $u(cs),null;case 3:return Xr=cs.stateNode,Na=null,os!==null&&(Na=os.memoizedState.cache),cs.memoizedState.cache!==Na&&(cs.flags|=2048),ud(Hu),Al(),Xr.pendingContext&&(Xr.context=Xr.pendingContext,Xr.pendingContext=null),(os===null||os.child===null)&&(Wm(cs)?xd(cs):os===null||os.memoizedState.isDehydrated&&(cs.flags&256)===0||(cs.flags|=1024,Cf())),$u(cs),null;case 26:var La=cs.type,Pa=cs.memoizedState;return os===null?(xd(cs),Pa!==null?($u(cs),My(cs,Pa)):($u(cs),jg(cs,La,null,Na,Xr))):Pa?Pa!==os.memoizedState?(xd(cs),$u(cs),My(cs,Pa)):($u(cs),cs.flags&=-16777217):(os=os.memoizedProps,os!==Na&&xd(cs),$u(cs),jg(cs,La,os,Na,Xr)),null;case 27:if(Ql(cs),Xr=ru.current,La=cs.type,os!==null&&cs.stateNode!=null)os.memoizedProps!==Na&&xd(cs);else{if(!Na){if(cs.stateNode===null)throw Error(is(166));return $u(cs),null}os=ql.current,Wm(cs)?gv(cs):(os=KE(La,Na,Xr),cs.stateNode=os,xd(cs))}return $u(cs),null;case 5:if(Ql(cs),La=cs.type,os!==null&&cs.stateNode!=null)os.memoizedProps!==Na&&xd(cs);else{if(!Na){if(cs.stateNode===null)throw Error(is(166));return $u(cs),null}if(Pa=ql.current,Wm(cs))gv(cs);else{var za=Op(ru.current);switch(Pa){case 1:Pa=za.createElementNS("http://www.w3.org/2000/svg",La);break;case 2:Pa=za.createElementNS("http://www.w3.org/1998/Math/MathML",La);break;default:switch(La){case"svg":Pa=za.createElementNS("http://www.w3.org/2000/svg",La);break;case"math":Pa=za.createElementNS("http://www.w3.org/1998/Math/MathML",La);break;case"script":Pa=za.createElement("div"),Pa.innerHTML="<script><\/script>",Pa=Pa.removeChild(Pa.firstChild);break;case"select":Pa=typeof Na.is=="string"?za.createElement("select",{is:Na.is}):za.createElement("select"),Na.multiple?Pa.multiple=!0:Na.size&&(Pa.size=Na.size);break;default:Pa=typeof Na.is=="string"?za.createElement(La,{is:Na.is}):za.createElement(La)}}Pa[Xu]=cs,Pa[xc]=Na;e:for(za=cs.child;za!==null;){if(za.tag===5||za.tag===6)Pa.appendChild(za.stateNode);else if(za.tag!==4&&za.tag!==27&&za.child!==null){za.child.return=za,za=za.child;continue}if(za===cs)break e;for(;za.sibling===null;){if(za.return===null||za.return===cs)break e;za=za.return}za.sibling.return=za.return,za=za.sibling}cs.stateNode=Pa;e:switch(nc(Pa,La,Na),La){case"button":case"input":case"select":case"textarea":Na=!!Na.autoFocus;break e;case"img":Na=!0;break e;default:Na=!1}Na&&xd(cs)}}return $u(cs),jg(cs,cs.type,os===null?null:os.memoizedProps,cs.pendingProps,Xr),null;case 6:if(os&&cs.stateNode!=null)os.memoizedProps!==Na&&xd(cs);else{if(typeof Na!="string"&&cs.stateNode===null)throw Error(is(166));if(os=ru.current,Wm(cs)){if(os=cs.stateNode,Xr=cs.memoizedProps,Na=null,La=ec,La!==null)switch(La.tag){case 27:case 5:Na=La.memoizedProps}os[Xu]=cs,os=!!(os.nodeValue===Xr||Na!==null&&Na.suppressHydrationWarning===!0||LE(os.nodeValue,Xr)),os||Ad(cs,!0)}else os=Op(os).createTextNode(Na),os[Xu]=cs,cs.stateNode=os}return $u(cs),null;case 31:if(Xr=cs.memoizedState,os===null||os.memoizedState!==null){if(Na=Wm(cs),Xr!==null){if(os===null){if(!Na)throw Error(is(318));if(os=cs.memoizedState,os=os!==null?os.dehydrated:null,!os)throw Error(is(557));os[Xu]=cs}else hm(),(cs.flags&128)===0&&(cs.memoizedState=null),cs.flags|=4;$u(cs),os=!1}else Xr=Cf(),os!==null&&os.memoizedState!==null&&(os.memoizedState.hydrationErrors=Xr),os=!0;if(!os)return cs.flags&256?(wc(cs),cs):(wc(cs),null);if((cs.flags&128)!==0)throw Error(is(558))}return $u(cs),null;case 13:if(Na=cs.memoizedState,os===null||os.memoizedState!==null&&os.memoizedState.dehydrated!==null){if(La=Wm(cs),Na!==null&&Na.dehydrated!==null){if(os===null){if(!La)throw Error(is(318));if(La=cs.memoizedState,La=La!==null?La.dehydrated:null,!La)throw Error(is(317));La[Xu]=cs}else hm(),(cs.flags&128)===0&&(cs.memoizedState=null),cs.flags|=4;$u(cs),La=!1}else La=Cf(),os!==null&&os.memoizedState!==null&&(os.memoizedState.hydrationErrors=La),La=!0;if(!La)return cs.flags&256?(wc(cs),cs):(wc(cs),null)}return wc(cs),(cs.flags&128)!==0?(cs.lanes=Xr,cs):(Xr=Na!==null,os=os!==null&&os.memoizedState!==null,Xr&&(Na=cs.child,La=null,Na.alternate!==null&&Na.alternate.memoizedState!==null&&Na.alternate.memoizedState.cachePool!==null&&(La=Na.alternate.memoizedState.cachePool.pool),Pa=null,Na.memoizedState!==null&&Na.memoizedState.cachePool!==null&&(Pa=Na.memoizedState.cachePool.pool),Pa!==La&&(Na.flags|=2048)),Xr!==os&&Xr&&(cs.child.flags|=8192),gp(cs,cs.updateQueue),$u(cs),null);case 4:return Al(),os===null&&Ug(cs.stateNode.containerInfo),$u(cs),null;case 10:return ud(cs.type),$u(cs),null;case 19:if($l(qu),Na=cs.memoizedState,Na===null)return $u(cs),null;if(La=(cs.flags&128)!==0,Pa=Na.rendering,Pa===null)if(La)ih(Na,!1);else{if(Uu!==0||os!==null&&(os.flags&128)!==0)for(os=cs.child;os!==null;){if(Pa=np(os),Pa!==null){for(cs.flags|=128,ih(Na,!1),os=Pa.updateQueue,cs.updateQueue=os,gp(cs,os),cs.subtreeFlags=0,os=Xr,Xr=cs.child;Xr!==null;)mv(Xr,os),Xr=Xr.sibling;return Il(qu,qu.current&1|2),hu&&od(cs,Na.treeForkCount),cs.child}os=os.sibling}Na.tail!==null&&bu()>bp&&(cs.flags|=128,La=!0,ih(Na,!1),cs.lanes=4194304)}else{if(!La)if(os=np(Pa),os!==null){if(cs.flags|=128,La=!0,os=os.updateQueue,cs.updateQueue=os,gp(cs,os),ih(Na,!0),Na.tail===null&&Na.tailMode==="hidden"&&!Pa.alternate&&!hu)return $u(cs),null}else 2*bu()-Na.renderingStartTime>bp&&Xr!==536870912&&(cs.flags|=128,La=!0,ih(Na,!1),cs.lanes=4194304);Na.isBackwards?(Pa.sibling=cs.child,cs.child=Pa):(os=Na.last,os!==null?os.sibling=Pa:cs.child=Pa,Na.last=Pa)}return Na.tail!==null?(os=Na.tail,Na.rendering=os,Na.tail=os.sibling,Na.renderingStartTime=bu(),os.sibling=null,Xr=qu.current,Il(qu,La?Xr&1|2:Xr&1),hu&&od(cs,Na.treeForkCount),os):($u(cs),null);case 22:case 23:return wc(cs),Ff(),Na=cs.memoizedState!==null,os!==null?os.memoizedState!==null!==Na&&(cs.flags|=8192):Na&&(cs.flags|=8192),Na?(Xr&536870912)!==0&&(cs.flags&128)===0&&($u(cs),cs.subtreeFlags&6&&(cs.flags|=8192)):$u(cs),Xr=cs.updateQueue,Xr!==null&&gp(cs,Xr.retryQueue),Xr=null,os!==null&&os.memoizedState!==null&&os.memoizedState.cachePool!==null&&(Xr=os.memoizedState.cachePool.pool),Na=null,cs.memoizedState!==null&&cs.memoizedState.cachePool!==null&&(Na=cs.memoizedState.cachePool.pool),Na!==Xr&&(cs.flags|=2048),os!==null&&$l(gm),null;case 24:return Xr=null,os!==null&&(Xr=os.memoizedState.cache),cs.memoizedState.cache!==Xr&&(cs.flags|=2048),ud(Hu),$u(cs),null;case 25:return null;case 30:return null}throw Error(is(156,cs.tag))}function UR(os,cs){switch(Nf(cs),cs.tag){case 1:return os=cs.flags,os&65536?(cs.flags=os&-65537|128,cs):null;case 3:return ud(Hu),Al(),os=cs.flags,(os&65536)!==0&&(os&128)===0?(cs.flags=os&-65537|128,cs):null;case 26:case 27:case 5:return Ql(cs),null;case 31:if(cs.memoizedState!==null){if(wc(cs),cs.alternate===null)throw Error(is(340));hm()}return os=cs.flags,os&65536?(cs.flags=os&-65537|128,cs):null;case 13:if(wc(cs),os=cs.memoizedState,os!==null&&os.dehydrated!==null){if(cs.alternate===null)throw Error(is(340));hm()}return os=cs.flags,os&65536?(cs.flags=os&-65537|128,cs):null;case 19:return $l(qu),null;case 4:return Al(),null;case 10:return ud(cs.type),null;case 22:case 23:return wc(cs),Ff(),os!==null&&$l(gm),os=cs.flags,os&65536?(cs.flags=os&-65537|128,cs):null;case 24:return ud(Hu),null;case 25:return null;default:return null}}function By(os,cs){switch(Nf(cs),cs.tag){case 3:ud(Hu),Al();break;case 26:case 27:case 5:Ql(cs);break;case 4:Al();break;case 31:cs.memoizedState!==null&&wc(cs);break;case 13:wc(cs);break;case 19:$l(qu);break;case 10:ud(cs.type);break;case 22:case 23:wc(cs),Ff(),os!==null&&$l(gm);break;case 24:ud(Hu)}}function ah(os,cs){try{var Xr=cs.updateQueue,Na=Xr!==null?Xr.lastEffect:null;if(Na!==null){var La=Na.next;Xr=La;do{if((Xr.tag&os)===os){Na=void 0;var Pa=Xr.create,za=Xr.inst;Na=Pa(),za.destroy=Na}Xr=Xr.next}while(Xr!==La)}}catch(Za){Nu(cs,cs.return,Za)}}function Md(os,cs,Xr){try{var Na=cs.updateQueue,La=Na!==null?Na.lastEffect:null;if(La!==null){var Pa=La.next;Na=Pa;do{if((Na.tag&os)===os){var za=Na.inst,Za=za.destroy;if(Za!==void 0){za.destroy=void 0,La=cs;var Xa=Xr,xl=Za;try{xl()}catch(wl){Nu(La,Xa,wl)}}}Na=Na.next}while(Na!==Pa)}}catch(wl){Nu(cs,cs.return,wl)}}function Uy(os){var cs=os.updateQueue;if(cs!==null){var Xr=os.stateNode;try{kv(cs,Xr)}catch(Na){Nu(os,os.return,Na)}}}function Fy(os,cs,Xr){Xr.props=bm(os.type,os.memoizedProps),Xr.state=os.memoizedState;try{Xr.componentWillUnmount()}catch(Na){Nu(os,cs,Na)}}function oh(os,cs){try{var Xr=os.ref;if(Xr!==null){switch(os.tag){case 26:case 27:case 5:var Na=os.stateNode;break;case 30:Na=os.stateNode;break;default:Na=os.stateNode}typeof Xr=="function"?os.refCleanup=Xr(Na):Xr.current=Na}}catch(La){Nu(os,cs,La)}}function Jc(os,cs){var Xr=os.ref,Na=os.refCleanup;if(Xr!==null)if(typeof Na=="function")try{Na()}catch(La){Nu(os,cs,La)}finally{os.refCleanup=null,os=os.alternate,os!=null&&(os.refCleanup=null)}else if(typeof Xr=="function")try{Xr(null)}catch(La){Nu(os,cs,La)}else Xr.current=null}function qy(os){var cs=os.type,Xr=os.memoizedProps,Na=os.stateNode;try{e:switch(cs){case"button":case"input":case"select":case"textarea":Xr.autoFocus&&Na.focus();break e;case"img":Xr.src?Na.src=Xr.src:Xr.srcSet&&(Na.srcset=Xr.srcSet)}}catch(La){Nu(os,os.return,La)}}function vg(os,cs,Xr){try{var Na=os.stateNode;l0(Na,os.type,Xr,cs),Na[xc]=cs}catch(La){Nu(os,os.return,La)}}function zy(os){return os.tag===5||os.tag===3||os.tag===26||os.tag===27&&Kd(os.type)||os.tag===4}function yg(os){e:for(;;){for(;os.sibling===null;){if(os.return===null||zy(os.return))return null;os=os.return}for(os.sibling.return=os.return,os=os.sibling;os.tag!==5&&os.tag!==6&&os.tag!==18;){if(os.tag===27&&Kd(os.type)||os.flags&2||os.child===null||os.tag===4)continue e;os.child.return=os,os=os.child}if(!(os.flags&2))return os.stateNode}}function Eg(os,cs,Xr){var Na=os.tag;if(Na===5||Na===6)os=os.stateNode,cs?(Xr.nodeType===9?Xr.body:Xr.nodeName==="HTML"?Xr.ownerDocument.body:Xr).insertBefore(os,cs):(cs=Xr.nodeType===9?Xr.body:Xr.nodeName==="HTML"?Xr.ownerDocument.body:Xr,cs.appendChild(os),Xr=Xr._reactRootContainer,Xr!=null||cs.onclick!==null||(cs.onclick=rd));else if(Na!==4&&(Na===27&&Kd(os.type)&&(Xr=os.stateNode,cs=null),os=os.child,os!==null))for(Eg(os,cs,Xr),os=os.sibling;os!==null;)Eg(os,cs,Xr),os=os.sibling}function jp(os,cs,Xr){var Na=os.tag;if(Na===5||Na===6)os=os.stateNode,cs?Xr.insertBefore(os,cs):Xr.appendChild(os);else if(Na!==4&&(Na===27&&Kd(os.type)&&(Xr=os.stateNode),os=os.child,os!==null))for(jp(os,cs,Xr),os=os.sibling;os!==null;)jp(os,cs,Xr),os=os.sibling}function Hy(os){var cs=os.stateNode,Xr=os.memoizedProps;try{for(var Na=os.type,La=cs.attributes;La.length;)cs.removeAttributeNode(La[0]);nc(cs,Na,Xr),cs[Xu]=os,cs[xc]=Xr}catch(Pa){Nu(os,os.return,Pa)}}var hd=!1,Zu=!1,bg=!1,Ky=typeof WeakSet=="function"?WeakSet:Set,Yu=null;function FR(os,cs){if(os=os.containerInfo,zg=Bp,os=nv(os),pf(os)){if("selectionStart"in os)var Xr={start:os.selectionStart,end:os.selectionEnd};else e:{Xr=(Xr=os.ownerDocument)&&Xr.defaultView||window;var Na=Xr.getSelection&&Xr.getSelection();if(Na&&Na.rangeCount!==0){Xr=Na.anchorNode;var La=Na.anchorOffset,Pa=Na.focusNode;Na=Na.focusOffset;try{Xr.nodeType,Pa.nodeType}catch{Xr=null;break e}var za=0,Za=-1,Xa=-1,xl=0,wl=0,Cl=os,gl=null;t:for(;;){for(var vl;Cl!==Xr||La!==0&&Cl.nodeType!==3||(Za=za+La),Cl!==Pa||Na!==0&&Cl.nodeType!==3||(Xa=za+Na),Cl.nodeType===3&&(za+=Cl.nodeValue.length),(vl=Cl.firstChild)!==null;)gl=Cl,Cl=vl;for(;;){if(Cl===os)break t;if(gl===Xr&&++xl===La&&(Za=za),gl===Pa&&++wl===Na&&(Xa=za),(vl=Cl.nextSibling)!==null)break;Cl=gl,gl=Cl.parentNode}Cl=vl}Xr=Za===-1||Xa===-1?null:{start:Za,end:Xa}}else Xr=null}Xr=Xr||{start:0,end:0}}else Xr=null;for(Hg={focusedElem:os,selectionRange:Xr},Bp=!1,Yu=cs;Yu!==null;)if(cs=Yu,os=cs.child,(cs.subtreeFlags&1028)!==0&&os!==null)os.return=cs,Yu=os;else for(;Yu!==null;){switch(cs=Yu,Pa=cs.alternate,os=cs.flags,cs.tag){case 0:if((os&4)!==0&&(os=cs.updateQueue,os=os!==null?os.events:null,os!==null))for(Xr=0;Xr<os.length;Xr++)La=os[Xr],La.ref.impl=La.nextImpl;break;case 11:case 15:break;case 1:if((os&1024)!==0&&Pa!==null){os=void 0,Xr=cs,La=Pa.memoizedProps,Pa=Pa.memoizedState,Na=Xr.stateNode;try{var Kl=bm(Xr.type,La);os=Na.getSnapshotBeforeUpdate(Kl,Pa),Na.__reactInternalSnapshotBeforeUpdate=os}catch(Jl){Nu(Xr,Xr.return,Jl)}}break;case 3:if((os&1024)!==0){if(os=cs.stateNode.containerInfo,Xr=os.nodeType,Xr===9)Zg(os);else if(Xr===1)switch(os.nodeName){case"HEAD":case"HTML":case"BODY":Zg(os);break;default:os.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((os&1024)!==0)throw Error(is(163))}if(os=cs.sibling,os!==null){os.return=cs.return,Yu=os;break}Yu=cs.return}}function Gy(os,cs,Xr){var Na=Xr.flags;switch(Xr.tag){case 0:case 11:case 15:fd(os,Xr),Na&4&&ah(5,Xr);break;case 1:if(fd(os,Xr),Na&4)if(os=Xr.stateNode,cs===null)try{os.componentDidMount()}catch(za){Nu(Xr,Xr.return,za)}else{var La=bm(Xr.type,cs.memoizedProps);cs=cs.memoizedState;try{os.componentDidUpdate(La,cs,os.__reactInternalSnapshotBeforeUpdate)}catch(za){Nu(Xr,Xr.return,za)}}Na&64&&Uy(Xr),Na&512&&oh(Xr,Xr.return);break;case 3:if(fd(os,Xr),Na&64&&(os=Xr.updateQueue,os!==null)){if(cs=null,Xr.child!==null)switch(Xr.child.tag){case 27:case 5:cs=Xr.child.stateNode;break;case 1:cs=Xr.child.stateNode}try{kv(os,cs)}catch(za){Nu(Xr,Xr.return,za)}}break;case 27:cs===null&&Na&4&&Hy(Xr);case 26:case 5:fd(os,Xr),cs===null&&Na&4&&qy(Xr),Na&512&&oh(Xr,Xr.return);break;case 12:fd(os,Xr);break;case 31:fd(os,Xr),Na&4&&Qy(os,Xr);break;case 13:fd(os,Xr),Na&4&&Yy(os,Xr),Na&64&&(os=Xr.memoizedState,os!==null&&(os=os.dehydrated,os!==null&&(Xr=YR.bind(null,Xr),f0(os,Xr))));break;case 22:if(Na=Xr.memoizedState!==null||hd,!Na){cs=cs!==null&&cs.memoizedState!==null||Zu,La=hd;var Pa=Zu;hd=Na,(Zu=cs)&&!Pa?gd(os,Xr,(Xr.subtreeFlags&8772)!==0):fd(os,Xr),hd=La,Zu=Pa}break;case 30:break;default:fd(os,Xr)}}function Zy(os){var cs=os.alternate;cs!==null&&(os.alternate=null,Zy(cs)),os.child=null,os.deletions=null,os.sibling=null,os.tag===5&&(cs=os.stateNode,cs!==null&&Wp(cs)),os.stateNode=null,os.return=null,os.dependencies=null,os.memoizedProps=null,os.memoizedState=null,os.pendingProps=null,os.stateNode=null,os.updateQueue=null}var Mu=null,pc=!1;function pd(os,cs,Xr){for(Xr=Xr.child;Xr!==null;)Vy(os,cs,Xr),Xr=Xr.sibling}function Vy(os,cs,Xr){if(_l&&typeof _l.onCommitFiberUnmount=="function")try{_l.onCommitFiberUnmount(bl,Xr)}catch{}switch(Xr.tag){case 26:Zu||Jc(Xr,cs),pd(os,cs,Xr),Xr.memoizedState?Xr.memoizedState.count--:Xr.stateNode&&(Xr=Xr.stateNode,Xr.parentNode.removeChild(Xr));break;case 27:Zu||Jc(Xr,cs);var Na=Mu,La=pc;Kd(Xr.type)&&(Mu=Xr.stateNode,pc=!1),pd(os,cs,Xr),fh(Xr.stateNode),Mu=Na,pc=La;break;case 5:Zu||Jc(Xr,cs);case 6:if(Na=Mu,La=pc,Mu=null,pd(os,cs,Xr),Mu=Na,pc=La,Mu!==null)if(pc)try{(Mu.nodeType===9?Mu.body:Mu.nodeName==="HTML"?Mu.ownerDocument.body:Mu).removeChild(Xr.stateNode)}catch(Pa){Nu(Xr,cs,Pa)}else try{Mu.removeChild(Xr.stateNode)}catch(Pa){Nu(Xr,cs,Pa)}break;case 18:Mu!==null&&(pc?(os=Mu,UE(os.nodeType===9?os.body:os.nodeName==="HTML"?os.ownerDocument.body:os,Xr.stateNode),jx(os)):UE(Mu,Xr.stateNode));break;case 4:Na=Mu,La=pc,Mu=Xr.stateNode.containerInfo,pc=!0,pd(os,cs,Xr),Mu=Na,pc=La;break;case 0:case 11:case 14:case 15:Md(2,Xr,cs),Zu||Md(4,Xr,cs),pd(os,cs,Xr);break;case 1:Zu||(Jc(Xr,cs),Na=Xr.stateNode,typeof Na.componentWillUnmount=="function"&&Fy(Xr,cs,Na)),pd(os,cs,Xr);break;case 21:pd(os,cs,Xr);break;case 22:Zu=(Na=Zu)||Xr.memoizedState!==null,pd(os,cs,Xr),Zu=Na;break;default:pd(os,cs,Xr)}}function Qy(os,cs){if(cs.memoizedState===null&&(os=cs.alternate,os!==null&&(os=os.memoizedState,os!==null))){os=os.dehydrated;try{jx(os)}catch(Xr){Nu(cs,cs.return,Xr)}}}function Yy(os,cs){if(cs.memoizedState===null&&(os=cs.alternate,os!==null&&(os=os.memoizedState,os!==null&&(os=os.dehydrated,os!==null))))try{jx(os)}catch(Xr){Nu(cs,cs.return,Xr)}}function qR(os){switch(os.tag){case 31:case 13:case 19:var cs=os.stateNode;return cs===null&&(cs=os.stateNode=new Ky),cs;case 22:return os=os.stateNode,cs=os._retryCache,cs===null&&(cs=os._retryCache=new Ky),cs;default:throw Error(is(435,os.tag))}}function vp(os,cs){var Xr=qR(os);cs.forEach(function(Na){if(!Xr.has(Na)){Xr.add(Na);var La=WR.bind(null,os,Na);Na.then(La,La)}})}function fc(os,cs){var Xr=cs.deletions;if(Xr!==null)for(var Na=0;Na<Xr.length;Na++){var La=Xr[Na],Pa=os,za=cs,Za=za;e:for(;Za!==null;){switch(Za.tag){case 27:if(Kd(Za.type)){Mu=Za.stateNode,pc=!1;break e}break;case 5:Mu=Za.stateNode,pc=!1;break e;case 3:case 4:Mu=Za.stateNode.containerInfo,pc=!0;break e}Za=Za.return}if(Mu===null)throw Error(is(160));Vy(Pa,za,La),Mu=null,pc=!1,Pa=La.alternate,Pa!==null&&(Pa.return=null),La.return=null}if(cs.subtreeFlags&13886)for(cs=cs.child;cs!==null;)Wy(cs,os),cs=cs.sibling}var Hc=null;function Wy(os,cs){var Xr=os.alternate,Na=os.flags;switch(os.tag){case 0:case 11:case 14:case 15:fc(cs,os),gc(os),Na&4&&(Md(3,os,os.return),ah(3,os),Md(5,os,os.return));break;case 1:fc(cs,os),gc(os),Na&512&&(Zu||Xr===null||Jc(Xr,Xr.return)),Na&64&&hd&&(os=os.updateQueue,os!==null&&(Na=os.callbacks,Na!==null&&(Xr=os.shared.hiddenCallbacks,os.shared.hiddenCallbacks=Xr===null?Na:Xr.concat(Na))));break;case 26:var La=Hc;if(fc(cs,os),gc(os),Na&512&&(Zu||Xr===null||Jc(Xr,Xr.return)),Na&4){var Pa=Xr!==null?Xr.memoizedState:null;if(Na=os.memoizedState,Xr===null)if(Na===null)if(os.stateNode===null){e:{Na=os.type,Xr=os.memoizedProps,La=La.ownerDocument||La;t:switch(Na){case"title":Pa=La.getElementsByTagName("title")[0],(!Pa||Pa[Lx]||Pa[Xu]||Pa.namespaceURI==="http://www.w3.org/2000/svg"||Pa.hasAttribute("itemprop"))&&(Pa=La.createElement(Na),La.head.insertBefore(Pa,La.querySelector("head > title"))),nc(Pa,Na,Xr),Pa[Xu]=os,Qu(Pa),Na=Pa;break e;case"link":var za=WE("link","href",La).get(Na+(Xr.href||""));if(za){for(var Za=0;Za<za.length;Za++)if(Pa=za[Za],Pa.getAttribute("href")===(Xr.href==null||Xr.href===""?null:Xr.href)&&Pa.getAttribute("rel")===(Xr.rel==null?null:Xr.rel)&&Pa.getAttribute("title")===(Xr.title==null?null:Xr.title)&&Pa.getAttribute("crossorigin")===(Xr.crossOrigin==null?null:Xr.crossOrigin)){za.splice(Za,1);break t}}Pa=La.createElement(Na),nc(Pa,Na,Xr),La.head.appendChild(Pa);break;case"meta":if(za=WE("meta","content",La).get(Na+(Xr.content||""))){for(Za=0;Za<za.length;Za++)if(Pa=za[Za],Pa.getAttribute("content")===(Xr.content==null?null:""+Xr.content)&&Pa.getAttribute("name")===(Xr.name==null?null:Xr.name)&&Pa.getAttribute("property")===(Xr.property==null?null:Xr.property)&&Pa.getAttribute("http-equiv")===(Xr.httpEquiv==null?null:Xr.httpEquiv)&&Pa.getAttribute("charset")===(Xr.charSet==null?null:Xr.charSet)){za.splice(Za,1);break t}}Pa=La.createElement(Na),nc(Pa,Na,Xr),La.head.appendChild(Pa);break;default:throw Error(is(468,Na))}Pa[Xu]=os,Qu(Pa),Na=Pa}os.stateNode=Na}else JE(La,os.type,os.stateNode);else os.stateNode=YE(La,Na,os.memoizedProps);else Pa!==Na?(Pa===null?Xr.stateNode!==null&&(Xr=Xr.stateNode,Xr.parentNode.removeChild(Xr)):Pa.count--,Na===null?JE(La,os.type,os.stateNode):YE(La,Na,os.memoizedProps)):Na===null&&os.stateNode!==null&&vg(os,os.memoizedProps,Xr.memoizedProps)}break;case 27:fc(cs,os),gc(os),Na&512&&(Zu||Xr===null||Jc(Xr,Xr.return)),Xr!==null&&Na&4&&vg(os,os.memoizedProps,Xr.memoizedProps);break;case 5:if(fc(cs,os),gc(os),Na&512&&(Zu||Xr===null||Jc(Xr,Xr.return)),os.flags&32){La=os.stateNode;try{Fm(La,"")}catch(Kl){Nu(os,os.return,Kl)}}Na&4&&os.stateNode!=null&&(La=os.memoizedProps,vg(os,La,Xr!==null?Xr.memoizedProps:La)),Na&1024&&(bg=!0);break;case 6:if(fc(cs,os),gc(os),Na&4){if(os.stateNode===null)throw Error(is(162));Na=os.memoizedProps,Xr=os.stateNode;try{Xr.nodeValue=Na}catch(Kl){Nu(os,os.return,Kl)}}break;case 3:if(Dp=null,La=Hc,Hc=Ip(cs.containerInfo),fc(cs,os),Hc=La,gc(os),Na&4&&Xr!==null&&Xr.memoizedState.isDehydrated)try{jx(cs.containerInfo)}catch(Kl){Nu(os,os.return,Kl)}bg&&(bg=!1,Jy(os));break;case 4:Na=Hc,Hc=Ip(os.stateNode.containerInfo),fc(cs,os),gc(os),Hc=Na;break;case 12:fc(cs,os),gc(os);break;case 31:fc(cs,os),gc(os),Na&4&&(Na=os.updateQueue,Na!==null&&(os.updateQueue=null,vp(os,Na)));break;case 13:fc(cs,os),gc(os),os.child.flags&8192&&os.memoizedState!==null!=(Xr!==null&&Xr.memoizedState!==null)&&(Ep=bu()),Na&4&&(Na=os.updateQueue,Na!==null&&(os.updateQueue=null,vp(os,Na)));break;case 22:La=os.memoizedState!==null;var Xa=Xr!==null&&Xr.memoizedState!==null,xl=hd,wl=Zu;if(hd=xl||La,Zu=wl||Xa,fc(cs,os),Zu=wl,hd=xl,gc(os),Na&8192)e:for(cs=os.stateNode,cs._visibility=La?cs._visibility&-2:cs._visibility|1,La&&(Xr===null||Xa||hd||Zu||Rm(os)),Xr=null,cs=os;;){if(cs.tag===5||cs.tag===26){if(Xr===null){Xa=Xr=cs;try{if(Pa=Xa.stateNode,La)za=Pa.style,typeof za.setProperty=="function"?za.setProperty("display","none","important"):za.display="none";else{Za=Xa.stateNode;var Cl=Xa.memoizedProps.style,gl=Cl!=null&&Cl.hasOwnProperty("display")?Cl.display:null;Za.style.display=gl==null||typeof gl=="boolean"?"":(""+gl).trim()}}catch(Kl){Nu(Xa,Xa.return,Kl)}}}else if(cs.tag===6){if(Xr===null){Xa=cs;try{Xa.stateNode.nodeValue=La?"":Xa.memoizedProps}catch(Kl){Nu(Xa,Xa.return,Kl)}}}else if(cs.tag===18){if(Xr===null){Xa=cs;try{var vl=Xa.stateNode;La?FE(vl,!0):FE(Xa.stateNode,!1)}catch(Kl){Nu(Xa,Xa.return,Kl)}}}else if((cs.tag!==22&&cs.tag!==23||cs.memoizedState===null||cs===os)&&cs.child!==null){cs.child.return=cs,cs=cs.child;continue}if(cs===os)break e;for(;cs.sibling===null;){if(cs.return===null||cs.return===os)break e;Xr===cs&&(Xr=null),cs=cs.return}Xr===cs&&(Xr=null),cs.sibling.return=cs.return,cs=cs.sibling}Na&4&&(Na=os.updateQueue,Na!==null&&(Xr=Na.retryQueue,Xr!==null&&(Na.retryQueue=null,vp(os,Xr))));break;case 19:fc(cs,os),gc(os),Na&4&&(Na=os.updateQueue,Na!==null&&(os.updateQueue=null,vp(os,Na)));break;case 30:break;case 21:break;default:fc(cs,os),gc(os)}}function gc(os){var cs=os.flags;if(cs&2){try{for(var Xr,Na=os.return;Na!==null;){if(zy(Na)){Xr=Na;break}Na=Na.return}if(Xr==null)throw Error(is(160));switch(Xr.tag){case 27:var La=Xr.stateNode,Pa=yg(os);jp(os,Pa,La);break;case 5:var za=Xr.stateNode;Xr.flags&32&&(Fm(za,""),Xr.flags&=-33);var Za=yg(os);jp(os,Za,za);break;case 3:case 4:var Xa=Xr.stateNode.containerInfo,xl=yg(os);Eg(os,xl,Xa);break;default:throw Error(is(161))}}catch(wl){Nu(os,os.return,wl)}os.flags&=-3}cs&4096&&(os.flags&=-4097)}function Jy(os){if(os.subtreeFlags&1024)for(os=os.child;os!==null;){var cs=os;Jy(cs),cs.tag===5&&cs.flags&1024&&cs.stateNode.reset(),os=os.sibling}}function fd(os,cs){if(cs.subtreeFlags&8772)for(cs=cs.child;cs!==null;)Gy(os,cs.alternate,cs),cs=cs.sibling}function Rm(os){for(os=os.child;os!==null;){var cs=os;switch(cs.tag){case 0:case 11:case 14:case 15:Md(4,cs,cs.return),Rm(cs);break;case 1:Jc(cs,cs.return);var Xr=cs.stateNode;typeof Xr.componentWillUnmount=="function"&&Fy(cs,cs.return,Xr),Rm(cs);break;case 27:fh(cs.stateNode);case 26:case 5:Jc(cs,cs.return),Rm(cs);break;case 22:cs.memoizedState===null&&Rm(cs);break;case 30:Rm(cs);break;default:Rm(cs)}os=os.sibling}}function gd(os,cs,Xr){for(Xr=Xr&&(cs.subtreeFlags&8772)!==0,cs=cs.child;cs!==null;){var Na=cs.alternate,La=os,Pa=cs,za=Pa.flags;switch(Pa.tag){case 0:case 11:case 15:gd(La,Pa,Xr),ah(4,Pa);break;case 1:if(gd(La,Pa,Xr),Na=Pa,La=Na.stateNode,typeof La.componentDidMount=="function")try{La.componentDidMount()}catch(xl){Nu(Na,Na.return,xl)}if(Na=Pa,La=Na.updateQueue,La!==null){var Za=Na.stateNode;try{var Xa=La.shared.hiddenCallbacks;if(Xa!==null)for(La.shared.hiddenCallbacks=null,La=0;La<Xa.length;La++)Tv(Xa[La],Za)}catch(xl){Nu(Na,Na.return,xl)}}Xr&&za&64&&Uy(Pa),oh(Pa,Pa.return);break;case 27:Hy(Pa);case 26:case 5:gd(La,Pa,Xr),Xr&&Na===null&&za&4&&qy(Pa),oh(Pa,Pa.return);break;case 12:gd(La,Pa,Xr);break;case 31:gd(La,Pa,Xr),Xr&&za&4&&Qy(La,Pa);break;case 13:gd(La,Pa,Xr),Xr&&za&4&&Yy(La,Pa);break;case 22:Pa.memoizedState===null&&gd(La,Pa,Xr),oh(Pa,Pa.return);break;case 30:break;default:gd(La,Pa,Xr)}cs=cs.sibling}}function Rg(os,cs){var Xr=null;os!==null&&os.memoizedState!==null&&os.memoizedState.cachePool!==null&&(Xr=os.memoizedState.cachePool.pool),os=null,cs.memoizedState!==null&&cs.memoizedState.cachePool!==null&&(os=cs.memoizedState.cachePool.pool),os!==Xr&&(os!=null&&os.refCount++,Xr!=null&&Zx(Xr))}function _g(os,cs){os=null,cs.alternate!==null&&(os=cs.alternate.memoizedState.cache),cs=cs.memoizedState.cache,cs!==os&&(cs.refCount++,os!=null&&Zx(os))}function Kc(os,cs,Xr,Na){if(cs.subtreeFlags&10256)for(cs=cs.child;cs!==null;)Xy(os,cs,Xr,Na),cs=cs.sibling}function Xy(os,cs,Xr,Na){var La=cs.flags;switch(cs.tag){case 0:case 11:case 15:Kc(os,cs,Xr,Na),La&2048&&ah(9,cs);break;case 1:Kc(os,cs,Xr,Na);break;case 3:Kc(os,cs,Xr,Na),La&2048&&(os=null,cs.alternate!==null&&(os=cs.alternate.memoizedState.cache),cs=cs.memoizedState.cache,cs!==os&&(cs.refCount++,os!=null&&Zx(os)));break;case 12:if(La&2048){Kc(os,cs,Xr,Na),os=cs.stateNode;try{var Pa=cs.memoizedProps,za=Pa.id,Za=Pa.onPostCommit;typeof Za=="function"&&Za(za,cs.alternate===null?"mount":"update",os.passiveEffectDuration,-0)}catch(Xa){Nu(cs,cs.return,Xa)}}else Kc(os,cs,Xr,Na);break;case 31:Kc(os,cs,Xr,Na);break;case 13:Kc(os,cs,Xr,Na);break;case 23:break;case 22:Pa=cs.stateNode,za=cs.alternate,cs.memoizedState!==null?Pa._visibility&2?Kc(os,cs,Xr,Na):lh(os,cs):Pa._visibility&2?Kc(os,cs,Xr,Na):(Pa._visibility|=2,ox(os,cs,Xr,Na,(cs.subtreeFlags&10256)!==0||!1)),La&2048&&Rg(za,cs);break;case 24:Kc(os,cs,Xr,Na),La&2048&&_g(cs.alternate,cs);break;default:Kc(os,cs,Xr,Na)}}function ox(os,cs,Xr,Na,La){for(La=La&&((cs.subtreeFlags&10256)!==0||!1),cs=cs.child;cs!==null;){var Pa=os,za=cs,Za=Xr,Xa=Na,xl=za.flags;switch(za.tag){case 0:case 11:case 15:ox(Pa,za,Za,Xa,La),ah(8,za);break;case 23:break;case 22:var wl=za.stateNode;za.memoizedState!==null?wl._visibility&2?ox(Pa,za,Za,Xa,La):lh(Pa,za):(wl._visibility|=2,ox(Pa,za,Za,Xa,La)),La&&xl&2048&&Rg(za.alternate,za);break;case 24:ox(Pa,za,Za,Xa,La),La&&xl&2048&&_g(za.alternate,za);break;default:ox(Pa,za,Za,Xa,La)}cs=cs.sibling}}function lh(os,cs){if(cs.subtreeFlags&10256)for(cs=cs.child;cs!==null;){var Xr=os,Na=cs,La=Na.flags;switch(Na.tag){case 22:lh(Xr,Na),La&2048&&Rg(Na.alternate,Na);break;case 24:lh(Xr,Na),La&2048&&_g(Na.alternate,Na);break;default:lh(Xr,Na)}cs=cs.sibling}}var uh=8192;function lx(os,cs,Xr){if(os.subtreeFlags&uh)for(os=os.child;os!==null;)eE(os,cs,Xr),os=os.sibling}function eE(os,cs,Xr){switch(os.tag){case 26:lx(os,cs,Xr),os.flags&uh&&os.memoizedState!==null&&C0(Xr,Hc,os.memoizedState,os.memoizedProps);break;case 5:lx(os,cs,Xr);break;case 3:case 4:var Na=Hc;Hc=Ip(os.stateNode.containerInfo),lx(os,cs,Xr),Hc=Na;break;case 22:os.memoizedState===null&&(Na=os.alternate,Na!==null&&Na.memoizedState!==null?(Na=uh,uh=16777216,lx(os,cs,Xr),uh=Na):lx(os,cs,Xr));break;default:lx(os,cs,Xr)}}function tE(os){var cs=os.alternate;if(cs!==null&&(os=cs.child,os!==null)){cs.child=null;do cs=os.sibling,os.sibling=null,os=cs;while(os!==null)}}function ch(os){var cs=os.deletions;if((os.flags&16)!==0){if(cs!==null)for(var Xr=0;Xr<cs.length;Xr++){var Na=cs[Xr];Yu=Na,nE(Na,os)}tE(os)}if(os.subtreeFlags&10256)for(os=os.child;os!==null;)sE(os),os=os.sibling}function sE(os){switch(os.tag){case 0:case 11:case 15:ch(os),os.flags&2048&&Md(9,os,os.return);break;case 3:ch(os);break;case 12:ch(os);break;case 22:var cs=os.stateNode;os.memoizedState!==null&&cs._visibility&2&&(os.return===null||os.return.tag!==13)?(cs._visibility&=-3,yp(os)):ch(os);break;default:ch(os)}}function yp(os){var cs=os.deletions;if((os.flags&16)!==0){if(cs!==null)for(var Xr=0;Xr<cs.length;Xr++){var Na=cs[Xr];Yu=Na,nE(Na,os)}tE(os)}for(os=os.child;os!==null;){switch(cs=os,cs.tag){case 0:case 11:case 15:Md(8,cs,cs.return),yp(cs);break;case 22:Xr=cs.stateNode,Xr._visibility&2&&(Xr._visibility&=-3,yp(cs));break;default:yp(cs)}os=os.sibling}}function nE(os,cs){for(;Yu!==null;){var Xr=Yu;switch(Xr.tag){case 0:case 11:case 15:Md(8,Xr,cs);break;case 23:case 22:if(Xr.memoizedState!==null&&Xr.memoizedState.cachePool!==null){var Na=Xr.memoizedState.cachePool.pool;Na!=null&&Na.refCount++}break;case 24:Zx(Xr.memoizedState.cache)}if(Na=Xr.child,Na!==null)Na.return=Xr,Yu=Na;else e:for(Xr=os;Yu!==null;){Na=Yu;var La=Na.sibling,Pa=Na.return;if(Zy(Na),Na===Xr){Yu=null;break e}if(La!==null){La.return=Pa,Yu=La;break e}Yu=Pa}}}var zR={getCacheForType:function(os){var cs=tc(Hu),Xr=cs.data.get(os);return Xr===void 0&&(Xr=os(),cs.data.set(os,Xr)),Xr},cacheSignal:function(){return tc(Hu).controller.signal}},HR=typeof WeakMap=="function"?WeakMap:Map,vu=0,Ou=null,lu=null,du=0,wu=0,Nc=null,Bd=!1,ux=!1,wg=!1,jd=0,Uu=0,Ud=0,_m=0,Ng=0,Sc=0,cx=0,dh=null,jc=null,Sg=!1,Ep=0,rE=0,bp=1/0,Rp=null,Fd=null,Vu=0,qd=null,dx=null,vd=0,Cg=0,Tg=null,iE=null,mh=0,kg=null;function Cc(){return(vu&2)!==0&&du!==0?du&-du:ul.T!==null?Pg():Ej()}function aE(){if(Sc===0)if((du&536870912)===0||hu){var os=nu;nu<<=1,(nu&3932160)===0&&(nu=262144),Sc=os}else Sc=536870912;return os=_c.current,os!==null&&(os.flags|=32),Sc}function vc(os,cs,Xr){(os===Ou&&(wu===2||wu===9)||os.cancelPendingCommit!==null)&&(mx(os,0),zd(os,du,Sc,!1)),Ju(os,Xr),((vu&2)===0||os!==Ou)&&(os===Ou&&((vu&2)===0&&(_m|=Xr),Uu===4&&zd(os,du,Sc,!1)),Xc(os))}function oE(os,cs,Xr){if((vu&6)!==0)throw Error(is(327));var Na=!Xr&&(cs&127)===0&&(cs&os.expiredLanes)===0||tu(os,cs),La=Na?ZR(os,cs):Og(os,cs,!0),Pa=Na;do{if(La===0){ux&&!Na&&zd(os,cs,0,!1);break}else{if(Xr=os.current.alternate,Pa&&!KR(Xr)){La=Og(os,cs,!1),Pa=!1;continue}if(La===2){if(Pa=cs,os.errorRecoveryDisabledLanes&Pa)var za=0;else za=os.pendingLanes&-536870913,za=za!==0?za:za&536870912?536870912:0;if(za!==0){cs=za;e:{var Za=os;La=dh;var Xa=Za.current.memoizedState.isDehydrated;if(Xa&&(mx(Za,za).flags|=256),za=Og(Za,za,!1),za!==2){if(wg&&!Xa){Za.errorRecoveryDisabledLanes|=Pa,_m|=Pa,La=4;break e}Pa=jc,jc=La,Pa!==null&&(jc===null?jc=Pa:jc.push.apply(jc,Pa))}La=za}if(Pa=!1,La!==2)continue}}if(La===1){mx(os,0),zd(os,cs,0,!0);break}e:{switch(Na=os,Pa=La,Pa){case 0:case 1:throw Error(is(345));case 4:if((cs&4194048)!==cs)break;case 6:zd(Na,cs,Sc,!Bd);break e;case 2:jc=null;break;case 3:case 5:break;default:throw Error(is(329))}if((cs&62914560)===cs&&(La=Ep+300-bu(),10<La)){if(zd(Na,cs,Sc,!Bd),Lm(Na,0,!0)!==0)break e;vd=cs,Na.timeoutHandle=ME(lE.bind(null,Na,Xr,jc,Rp,Sg,cs,Sc,_m,cx,Bd,Pa,"Throttled",-0,0),La);break e}lE(Na,Xr,jc,Rp,Sg,cs,Sc,_m,cx,Bd,Pa,null,-0,0)}}break}while(!0);Xc(os)}function lE(os,cs,Xr,Na,La,Pa,za,Za,Xa,xl,wl,Cl,gl,vl){if(os.timeoutHandle=-1,Cl=cs.subtreeFlags,Cl&8192||(Cl&16785408)===16785408){Cl={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:rd},eE(cs,Pa,Cl);var Kl=(Pa&62914560)===Pa?Ep-bu():(Pa&4194048)===Pa?rE-bu():0;if(Kl=T0(Cl,Kl),Kl!==null){vd=Pa,os.cancelPendingCommit=Kl(fE.bind(null,os,cs,Pa,Xr,Na,La,za,Za,Xa,wl,Cl,null,gl,vl)),zd(os,Pa,za,!xl);return}}fE(os,cs,Pa,Xr,Na,La,za,Za,Xa)}function KR(os){for(var cs=os;;){var Xr=cs.tag;if((Xr===0||Xr===11||Xr===15)&&cs.flags&16384&&(Xr=cs.updateQueue,Xr!==null&&(Xr=Xr.stores,Xr!==null)))for(var Na=0;Na<Xr.length;Na++){var La=Xr[Na],Pa=La.getSnapshot;La=La.value;try{if(!bc(Pa(),La))return!1}catch{return!1}}if(Xr=cs.child,cs.subtreeFlags&16384&&Xr!==null)Xr.return=cs,cs=Xr;else{if(cs===os)break;for(;cs.sibling===null;){if(cs.return===null||cs.return===os)return!0;cs=cs.return}cs.sibling.return=cs.return,cs=cs.sibling}}return!0}function zd(os,cs,Xr,Na){cs&=~Ng,cs&=~_m,os.suspendedLanes|=cs,os.pingedLanes&=~cs,Na&&(os.warmLanes|=cs),Na=os.expirationTimes;for(var La=cs;0<La;){var Pa=31-Rl(La),za=1<<Pa;Na[Pa]=-1,La&=~za}Xr!==0&&Qc(os,Xr,cs)}function _p(){return(vu&6)===0?(xh(0),!1):!0}function Ag(){if(lu!==null){if(wu===0)var os=lu.return;else os=lu,ld=pm=null,Zf(os),sx=null,Qx=0,os=lu;for(;os!==null;)By(os.alternate,os),os=os.return;lu=null}}function mx(os,cs){var Xr=os.timeoutHandle;Xr!==-1&&(os.timeoutHandle=-1,d0(Xr)),Xr=os.cancelPendingCommit,Xr!==null&&(os.cancelPendingCommit=null,Xr()),vd=0,Ag(),Ou=os,lu=Xr=ad(os.current,null),du=cs,wu=0,Nc=null,Bd=!1,ux=tu(os,cs),wg=!1,cx=Sc=Ng=_m=Ud=Uu=0,jc=dh=null,Sg=!1,(cs&8)!==0&&(cs|=cs&32);var Na=os.entangledLanes;if(Na!==0)for(os=os.entanglements,Na&=cs;0<Na;){var La=31-Rl(Na),Pa=1<<La;cs|=os[La],Na&=~Pa}return jd=cs,Hh(),Xr}function uE(os,cs){iu=null,ul.H=nh,cs===tx||cs===Jh?(cs=wv(),wu=3):cs===Df?(cs=wv(),wu=4):wu=cs===ug?8:cs!==null&&typeof cs=="object"&&typeof cs.then=="function"?6:1,Nc=cs,lu===null&&(Uu=1,mp(os,Ic(cs,os.current)))}function cE(){var os=_c.current;return os===null?!0:(du&4194048)===du?$c===null:(du&62914560)===du||(du&536870912)!==0?os===$c:!1}function dE(){var os=ul.H;return ul.H=nh,os===null?nh:os}function mE(){var os=ul.A;return ul.A=zR,os}function wp(){Uu=4,Bd||(du&4194048)!==du&&_c.current!==null||(ux=!0),(Ud&134217727)===0&&(_m&134217727)===0||Ou===null||zd(Ou,du,Sc,!1)}function Og(os,cs,Xr){var Na=vu;vu|=2;var La=dE(),Pa=mE();(Ou!==os||du!==cs)&&(Rp=null,mx(os,cs)),cs=!1;var za=Uu;e:do try{if(wu!==0&&lu!==null){var Za=lu,Xa=Nc;switch(wu){case 8:Ag(),za=6;break e;case 3:case 2:case 9:case 6:_c.current===null&&(cs=!0);var xl=wu;if(wu=0,Nc=null,xx(os,Za,Xa,xl),Xr&&ux){za=0;break e}break;default:xl=wu,wu=0,Nc=null,xx(os,Za,Xa,xl)}}GR(),za=Uu;break}catch(wl){uE(os,wl)}while(!0);return cs&&os.shellSuspendCounter++,ld=pm=null,vu=Na,ul.H=La,ul.A=Pa,lu===null&&(Ou=null,du=0,Hh()),za}function GR(){for(;lu!==null;)xE(lu)}function ZR(os,cs){var Xr=vu;vu|=2;var Na=dE(),La=mE();Ou!==os||du!==cs?(Rp=null,bp=bu()+500,mx(os,cs)):ux=tu(os,cs);e:do try{if(wu!==0&&lu!==null){cs=lu;var Pa=Nc;t:switch(wu){case 1:wu=0,Nc=null,xx(os,cs,Pa,1);break;case 2:case 9:if(Rv(Pa)){wu=0,Nc=null,hE(cs);break}cs=function(){wu!==2&&wu!==9||Ou!==os||(wu=7),Xc(os)},Pa.then(cs,cs);break e;case 3:wu=7;break e;case 4:wu=5;break e;case 7:Rv(Pa)?(wu=0,Nc=null,hE(cs)):(wu=0,Nc=null,xx(os,cs,Pa,7));break;case 5:var za=null;switch(lu.tag){case 26:za=lu.memoizedState;case 5:case 27:var Za=lu;if(za?XE(za):Za.stateNode.complete){wu=0,Nc=null;var Xa=Za.sibling;if(Xa!==null)lu=Xa;else{var xl=Za.return;xl!==null?(lu=xl,Np(xl)):lu=null}break t}}wu=0,Nc=null,xx(os,cs,Pa,5);break;case 6:wu=0,Nc=null,xx(os,cs,Pa,6);break;case 8:Ag(),Uu=6;break e;default:throw Error(is(462))}}VR();break}catch(wl){uE(os,wl)}while(!0);return ld=pm=null,ul.H=Na,ul.A=La,vu=Xr,lu!==null?0:(Ou=null,du=0,Hh(),Uu)}function VR(){for(;lu!==null&&!lc();)xE(lu)}function xE(os){var cs=$y(os.alternate,os,jd);os.memoizedProps=os.pendingProps,cs===null?Np(os):lu=cs}function hE(os){var cs=os,Xr=cs.alternate;switch(cs.tag){case 15:case 0:cs=Ay(Xr,cs,cs.pendingProps,cs.type,void 0,du);break;case 11:cs=Ay(Xr,cs,cs.pendingProps,cs.type.render,cs.ref,du);break;case 5:Zf(cs);default:By(Xr,cs),cs=lu=mv(cs,jd),cs=$y(Xr,cs,jd)}os.memoizedProps=os.pendingProps,cs===null?Np(os):lu=cs}function xx(os,cs,Xr,Na){ld=pm=null,Zf(cs),sx=null,Qx=0;var La=cs.return;try{if(PR(os,La,cs,Xr,du)){Uu=1,mp(os,Ic(Xr,os.current)),lu=null;return}}catch(Pa){if(La!==null)throw lu=La,Pa;Uu=1,mp(os,Ic(Xr,os.current)),lu=null;return}cs.flags&32768?(hu||Na===1?os=!0:ux||(du&536870912)!==0?os=!1:(Bd=os=!0,(Na===2||Na===9||Na===3||Na===6)&&(Na=_c.current,Na!==null&&Na.tag===13&&(Na.flags|=16384))),pE(cs,os)):Np(cs)}function Np(os){var cs=os;do{if((cs.flags&32768)!==0){pE(cs,Bd);return}os=cs.return;var Xr=BR(cs.alternate,cs,jd);if(Xr!==null){lu=Xr;return}if(cs=cs.sibling,cs!==null){lu=cs;return}lu=cs=os}while(cs!==null);Uu===0&&(Uu=5)}function pE(os,cs){do{var Xr=UR(os.alternate,os);if(Xr!==null){Xr.flags&=32767,lu=Xr;return}if(Xr=os.return,Xr!==null&&(Xr.flags|=32768,Xr.subtreeFlags=0,Xr.deletions=null),!cs&&(os=os.sibling,os!==null)){lu=os;return}lu=os=Xr}while(os!==null);Uu=6,lu=null}function fE(os,cs,Xr,Na,La,Pa,za,Za,Xa){os.cancelPendingCommit=null;do Sp();while(Vu!==0);if((vu&6)!==0)throw Error(is(327));if(cs!==null){if(cs===os.current)throw Error(is(177));if(Pa=cs.lanes|cs.childLanes,Pa|=yf,Vc(os,Xr,Pa,za,Za,Xa),os===Ou&&(lu=Ou=null,du=0),dx=cs,qd=os,vd=Xr,Cg=Pa,Tg=La,iE=Na,(cs.subtreeFlags&10256)!==0||(cs.flags&10256)!==0?(os.callbackNode=null,os.callbackPriority=0,JR(Dl,function(){return EE(),null})):(os.callbackNode=null,os.callbackPriority=0),Na=(cs.flags&13878)!==0,(cs.subtreeFlags&13878)!==0||Na){Na=ul.T,ul.T=null,La=hl.p,hl.p=2,za=vu,vu|=4;try{FR(os,cs,Xr)}finally{vu=za,hl.p=La,ul.T=Na}}Vu=1,gE(),jE(),vE()}}function gE(){if(Vu===1){Vu=0;var os=qd,cs=dx,Xr=(cs.flags&13878)!==0;if((cs.subtreeFlags&13878)!==0||Xr){Xr=ul.T,ul.T=null;var Na=hl.p;hl.p=2;var La=vu;vu|=4;try{Wy(cs,os);var Pa=Hg,za=nv(os.containerInfo),Za=Pa.focusedElem,Xa=Pa.selectionRange;if(za!==Za&&Za&&Za.ownerDocument&&sv(Za.ownerDocument.documentElement,Za)){if(Xa!==null&&pf(Za)){var xl=Xa.start,wl=Xa.end;if(wl===void 0&&(wl=xl),"selectionStart"in Za)Za.selectionStart=xl,Za.selectionEnd=Math.min(wl,Za.value.length);else{var Cl=Za.ownerDocument||document,gl=Cl&&Cl.defaultView||window;if(gl.getSelection){var vl=gl.getSelection(),Kl=Za.textContent.length,Jl=Math.min(Xa.start,Kl),Tu=Xa.end===void 0?Jl:Math.min(Xa.end,Kl);!vl.extend&&Jl>Tu&&(za=Tu,Tu=Jl,Jl=za);var il=tv(Za,Jl),sl=tv(Za,Tu);if(il&&sl&&(vl.rangeCount!==1||vl.anchorNode!==il.node||vl.anchorOffset!==il.offset||vl.focusNode!==sl.node||vl.focusOffset!==sl.offset)){var ml=Cl.createRange();ml.setStart(il.node,il.offset),vl.removeAllRanges(),Jl>Tu?(vl.addRange(ml),vl.extend(sl.node,sl.offset)):(ml.setEnd(sl.node,sl.offset),vl.addRange(ml))}}}}for(Cl=[],vl=Za;vl=vl.parentNode;)vl.nodeType===1&&Cl.push({element:vl,left:vl.scrollLeft,top:vl.scrollTop});for(typeof Za.focus=="function"&&Za.focus(),Za=0;Za<Cl.length;Za++){var Sl=Cl[Za];Sl.element.scrollLeft=Sl.left,Sl.element.scrollTop=Sl.top}}Bp=!!zg,Hg=zg=null}finally{vu=La,hl.p=Na,ul.T=Xr}}os.current=cs,Vu=2}}function jE(){if(Vu===2){Vu=0;var os=qd,cs=dx,Xr=(cs.flags&8772)!==0;if((cs.subtreeFlags&8772)!==0||Xr){Xr=ul.T,ul.T=null;var Na=hl.p;hl.p=2;var La=vu;vu|=4;try{Gy(os,cs.alternate,cs)}finally{vu=La,hl.p=Na,ul.T=Xr}}Vu=3}}function vE(){if(Vu===4||Vu===3){Vu=0,ku();var os=qd,cs=dx,Xr=vd,Na=iE;(cs.subtreeFlags&10256)!==0||(cs.flags&10256)!==0?Vu=5:(Vu=0,dx=qd=null,yE(os,os.pendingLanes));var La=os.pendingLanes;if(La===0&&(Fd=null),Qp(Xr),cs=cs.stateNode,_l&&typeof _l.onCommitFiberRoot=="function")try{_l.onCommitFiberRoot(bl,cs,void 0,(cs.current.flags&128)===128)}catch{}if(Na!==null){cs=ul.T,La=hl.p,hl.p=2,ul.T=null;try{for(var Pa=os.onRecoverableError,za=0;za<Na.length;za++){var Za=Na[za];Pa(Za.value,{componentStack:Za.stack})}}finally{ul.T=cs,hl.p=La}}(vd&3)!==0&&Sp(),Xc(os),La=os.pendingLanes,(Xr&261930)!==0&&(La&42)!==0?os===kg?mh++:(mh=0,kg=os):mh=0,xh(0)}}function yE(os,cs){(os.pooledCacheLanes&=cs)===0&&(cs=os.pooledCache,cs!=null&&(os.pooledCache=null,Zx(cs)))}function Sp(){return gE(),jE(),vE(),EE()}function EE(){if(Vu!==5)return!1;var os=qd,cs=Cg;Cg=0;var Xr=Qp(vd),Na=ul.T,La=hl.p;try{hl.p=32>Xr?32:Xr,ul.T=null,Xr=Tg,Tg=null;var Pa=qd,za=vd;if(Vu=0,dx=qd=null,vd=0,(vu&6)!==0)throw Error(is(331));var Za=vu;if(vu|=4,sE(Pa.current),Xy(Pa,Pa.current,za,Xr),vu=Za,xh(0,!1),_l&&typeof _l.onPostCommitFiberRoot=="function")try{_l.onPostCommitFiberRoot(bl,Pa)}catch{}return!0}finally{hl.p=La,ul.T=Na,yE(os,cs)}}function bE(os,cs,Xr){cs=Ic(Xr,cs),cs=lg(os.stateNode,cs,2),os=Dd(os,cs,2),os!==null&&(Ju(os,2),Xc(os))}function Nu(os,cs,Xr){if(os.tag===3)bE(os,os,Xr);else for(;cs!==null;){if(cs.tag===3){bE(cs,os,Xr);break}else if(cs.tag===1){var Na=cs.stateNode;if(typeof cs.type.getDerivedStateFromError=="function"||typeof Na.componentDidCatch=="function"&&(Fd===null||!Fd.has(Na))){os=Ic(Xr,os),Xr=Ry(2),Na=Dd(cs,Xr,2),Na!==null&&(_y(Xr,Na,cs,os),Ju(Na,2),Xc(Na));break}}cs=cs.return}}function Ig(os,cs,Xr){var Na=os.pingCache;if(Na===null){Na=os.pingCache=new HR;var La=new Set;Na.set(cs,La)}else La=Na.get(cs),La===void 0&&(La=new Set,Na.set(cs,La));La.has(Xr)||(wg=!0,La.add(Xr),os=QR.bind(null,os,cs,Xr),cs.then(os,os))}function QR(os,cs,Xr){var Na=os.pingCache;Na!==null&&Na.delete(cs),os.pingedLanes|=os.suspendedLanes&Xr,os.warmLanes&=~Xr,Ou===os&&(du&Xr)===Xr&&(Uu===4||Uu===3&&(du&62914560)===du&&300>bu()-Ep?(vu&2)===0&&mx(os,0):Ng|=Xr,cx===du&&(cx=0)),Xc(os)}function RE(os,cs){cs===0&&(cs=Au()),os=mm(os,cs),os!==null&&(Ju(os,cs),Xc(os))}function YR(os){var cs=os.memoizedState,Xr=0;cs!==null&&(Xr=cs.retryLane),RE(os,Xr)}function WR(os,cs){var Xr=0;switch(os.tag){case 31:case 13:var Na=os.stateNode,La=os.memoizedState;La!==null&&(Xr=La.retryLane);break;case 19:Na=os.stateNode;break;case 22:Na=os.stateNode._retryCache;break;default:throw Error(is(314))}Na!==null&&Na.delete(cs),RE(os,Xr)}function JR(os,cs){return su(os,cs)}var Cp=null,hx=null,Lg=!1,Tp=!1,Dg=!1,Hd=0;function Xc(os){os!==hx&&os.next===null&&(hx===null?Cp=hx=os:hx=hx.next=os),Tp=!0,Lg||(Lg=!0,e0())}function xh(os,cs){if(!Dg&&Tp){Dg=!0;do for(var Xr=!1,Na=Cp;Na!==null;){if(os!==0){var La=Na.pendingLanes;if(La===0)var Pa=0;else{var za=Na.suspendedLanes,Za=Na.pingedLanes;Pa=(1<<31-Rl(42|os)+1)-1,Pa&=La&~(za&~Za),Pa=Pa&201326741?Pa&201326741|1:Pa?Pa|2:0}Pa!==0&&(Xr=!0,SE(Na,Pa))}else Pa=du,Pa=Lm(Na,Na===Ou?Pa:0,Na.cancelPendingCommit!==null||Na.timeoutHandle!==-1),(Pa&3)===0||tu(Na,Pa)||(Xr=!0,SE(Na,Pa));Na=Na.next}while(Xr);Dg=!1}}function XR(){_E()}function _E(){Tp=Lg=!1;var os=0;Hd!==0&&c0()&&(os=Hd);for(var cs=bu(),Xr=null,Na=Cp;Na!==null;){var La=Na.next,Pa=wE(Na,cs);Pa===0?(Na.next=null,Xr===null?Cp=La:Xr.next=La,La===null&&(hx=Xr)):(Xr=Na,(os!==0||(Pa&3)!==0)&&(Tp=!0)),Na=La}Vu!==0&&Vu!==5||xh(os),Hd!==0&&(Hd=0)}function wE(os,cs){for(var Xr=os.suspendedLanes,Na=os.pingedLanes,La=os.expirationTimes,Pa=os.pendingLanes&-62914561;0<Pa;){var za=31-Rl(Pa),Za=1<<za,Xa=La[za];Xa===-1?((Za&Xr)===0||(Za&Na)!==0)&&(La[za]=Ru(Za,cs)):Xa<=cs&&(os.expiredLanes|=Za),Pa&=~Za}if(cs=Ou,Xr=du,Xr=Lm(os,os===cs?Xr:0,os.cancelPendingCommit!==null||os.timeoutHandle!==-1),Na=os.callbackNode,Xr===0||os===cs&&(wu===2||wu===9)||os.cancelPendingCommit!==null)return Na!==null&&Na!==null&&Eu(Na),os.callbackNode=null,os.callbackPriority=0;if((Xr&3)===0||tu(os,Xr)){if(cs=Xr&-Xr,cs===os.callbackPriority)return cs;switch(Na!==null&&Eu(Na),Qp(Xr)){case 2:case 8:Xr=yl;break;case 32:Xr=Dl;break;case 268435456:Xr=Ga;break;default:Xr=Dl}return Na=NE.bind(null,os),Xr=su(Xr,Na),os.callbackPriority=cs,os.callbackNode=Xr,cs}return Na!==null&&Na!==null&&Eu(Na),os.callbackPriority=2,os.callbackNode=null,2}function NE(os,cs){if(Vu!==0&&Vu!==5)return os.callbackNode=null,os.callbackPriority=0,null;var Xr=os.callbackNode;if(Sp()&&os.callbackNode!==Xr)return null;var Na=du;return Na=Lm(os,os===Ou?Na:0,os.cancelPendingCommit!==null||os.timeoutHandle!==-1),Na===0?null:(oE(os,Na,cs),wE(os,bu()),os.callbackNode!=null&&os.callbackNode===Xr?NE.bind(null,os):null)}function SE(os,cs){if(Sp())return null;oE(os,cs,!0)}function e0(){m0(function(){(vu&6)!==0?su(ll,XR):_E()})}function Pg(){if(Hd===0){var os=Xm;os===0&&(os=au,au<<=1,(au&261888)===0&&(au=256)),Hd=os}return Hd}function CE(os){return os==null||typeof os=="symbol"||typeof os=="boolean"?null:typeof os=="function"?os:Ph(""+os)}function TE(os,cs){var Xr=cs.ownerDocument.createElement("input");return Xr.name=cs.name,Xr.value=cs.value,os.id&&Xr.setAttribute("form",os.id),cs.parentNode.insertBefore(Xr,cs),os=new FormData(os),Xr.parentNode.removeChild(Xr),os}function t0(os,cs,Xr,Na,La){if(cs==="submit"&&Xr&&Xr.stateNode===La){var Pa=CE((La[xc]||null).action),za=Na.submitter;za&&(cs=(cs=za[xc]||null)?CE(cs.formAction):za.getAttribute("formAction"),cs!==null&&(Pa=cs,za=null));var Za=new Uh("action","action",null,Na,La);os.push({event:Za,listeners:[{instance:null,listener:function(){if(Na.defaultPrevented){if(Hd!==0){var Xa=za?TE(La,za):new FormData(La);sg(Xr,{pending:!0,data:Xa,method:La.method,action:Pa},null,Xa)}}else typeof Pa=="function"&&(Za.preventDefault(),Xa=za?TE(La,za):new FormData(La),sg(Xr,{pending:!0,data:Xa,method:La.method,action:Pa},Pa,Xa))},currentTarget:La}]})}}for(var $g=0;$g<vf.length;$g++){var Mg=vf[$g],s0=Mg.toLowerCase(),n0=Mg[0].toUpperCase()+Mg.slice(1);zc(s0,"on"+n0)}zc(av,"onAnimationEnd"),zc(ov,"onAnimationIteration"),zc(lv,"onAnimationStart"),zc("dblclick","onDoubleClick"),zc("focusin","onFocus"),zc("focusout","onBlur"),zc(vR,"onTransitionRun"),zc(yR,"onTransitionStart"),zc(ER,"onTransitionCancel"),zc(uv,"onTransitionEnd"),Bm("onMouseEnter",["mouseout","mouseover"]),Bm("onMouseLeave",["mouseout","mouseover"]),Bm("onPointerEnter",["pointerout","pointerover"]),Bm("onPointerLeave",["pointerout","pointerover"]),lm("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),lm("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),lm("onBeforeInput",["compositionend","keypress","textInput","paste"]),lm("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),lm("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),lm("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var hh="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),r0=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(hh));function kE(os,cs){cs=(cs&4)!==0;for(var Xr=0;Xr<os.length;Xr++){var Na=os[Xr],La=Na.event;Na=Na.listeners;e:{var Pa=void 0;if(cs)for(var za=Na.length-1;0<=za;za--){var Za=Na[za],Xa=Za.instance,xl=Za.currentTarget;if(Za=Za.listener,Xa!==Pa&&La.isPropagationStopped())break e;Pa=Za,La.currentTarget=xl;try{Pa(La)}catch(wl){zh(wl)}La.currentTarget=null,Pa=Xa}else for(za=0;za<Na.length;za++){if(Za=Na[za],Xa=Za.instance,xl=Za.currentTarget,Za=Za.listener,Xa!==Pa&&La.isPropagationStopped())break e;Pa=Za,La.currentTarget=xl;try{Pa(La)}catch(wl){zh(wl)}La.currentTarget=null,Pa=Xa}}}}function uu(os,cs){var Xr=cs[Yp];Xr===void 0&&(Xr=cs[Yp]=new Set);var Na=os+"__bubble";Xr.has(Na)||(AE(cs,os,2,!1),Xr.add(Na))}function Bg(os,cs,Xr){var Na=0;cs&&(Na|=4),AE(Xr,os,Na,cs)}var kp="_reactListening"+Math.random().toString(36).slice(2);function Ug(os){if(!os[kp]){os[kp]=!0,_j.forEach(function(Xr){Xr!=="selectionchange"&&(r0.has(Xr)||Bg(Xr,!1,os),Bg(Xr,!0,os))});var cs=os.nodeType===9?os:os.ownerDocument;cs===null||cs[kp]||(cs[kp]=!0,Bg("selectionchange",!1,cs))}}function AE(os,cs,Xr,Na){switch(ab(cs)){case 2:var La=O0;break;case 8:La=I0;break;default:La=tj}Xr=La.bind(null,cs,Xr,os),La=void 0,!af||cs!=="touchstart"&&cs!=="touchmove"&&cs!=="wheel"||(La=!0),Na?La!==void 0?os.addEventListener(cs,Xr,{capture:!0,passive:La}):os.addEventListener(cs,Xr,!0):La!==void 0?os.addEventListener(cs,Xr,{passive:La}):os.addEventListener(cs,Xr,!1)}function Fg(os,cs,Xr,Na,La){var Pa=Na;if((cs&1)===0&&(cs&2)===0&&Na!==null)e:for(;;){if(Na===null)return;var za=Na.tag;if(za===3||za===4){var Za=Na.stateNode.containerInfo;if(Za===La)break;if(za===4)for(za=Na.return;za!==null;){var Xa=za.tag;if((Xa===3||Xa===4)&&za.stateNode.containerInfo===La)return;za=za.return}for(;Za!==null;){if(za=Pm(Za),za===null)return;if(Xa=za.tag,Xa===5||Xa===6||Xa===26||Xa===27){Na=Pa=za;continue e}Za=Za.parentNode}}Na=Na.return}Pj(function(){var xl=Pa,wl=nf(Xr),Cl=[];e:{var gl=cv.get(os);if(gl!==void 0){var vl=Uh,Kl=os;switch(os){case"keypress":if(Mh(Xr)===0)break e;case"keydown":case"keyup":vl=Wb;break;case"focusin":Kl="focus",vl=cf;break;case"focusout":Kl="blur",vl=cf;break;case"beforeblur":case"afterblur":vl=cf;break;case"click":if(Xr.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":vl=Bj;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":vl=Bb;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":vl=eR;break;case av:case ov:case lv:vl=qb;break;case uv:vl=sR;break;case"scroll":case"scrollend":vl=$b;break;case"wheel":vl=rR;break;case"copy":case"cut":case"paste":vl=Hb;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":vl=Fj;break;case"toggle":case"beforetoggle":vl=aR}var Jl=(cs&4)!==0,Tu=!Jl&&(os==="scroll"||os==="scrollend"),il=Jl?gl!==null?gl+"Capture":null:gl;Jl=[];for(var sl=xl,ml;sl!==null;){var Sl=sl;if(ml=Sl.stateNode,Sl=Sl.tag,Sl!==5&&Sl!==26&&Sl!==27||ml===null||il===null||(Sl=Px(sl,il),Sl!=null&&Jl.push(ph(sl,Sl,ml))),Tu)break;sl=sl.return}0<Jl.length&&(gl=new vl(gl,Kl,null,Xr,wl),Cl.push({event:gl,listeners:Jl}))}}if((cs&7)===0){e:{if(gl=os==="mouseover"||os==="pointerover",vl=os==="mouseout"||os==="pointerout",gl&&Xr!==sf&&(Kl=Xr.relatedTarget||Xr.fromElement)&&(Pm(Kl)||Kl[Dm]))break e;if((vl||gl)&&(gl=wl.window===wl?wl:(gl=wl.ownerDocument)?gl.defaultView||gl.parentWindow:window,vl?(Kl=Xr.relatedTarget||Xr.toElement,vl=xl,Kl=Kl?Pm(Kl):null,Kl!==null&&(Tu=Qr(Kl),Jl=Kl.tag,Kl!==Tu||Jl!==5&&Jl!==27&&Jl!==6)&&(Kl=null)):(vl=null,Kl=xl),vl!==Kl)){if(Jl=Bj,Sl="onMouseLeave",il="onMouseEnter",sl="mouse",(os==="pointerout"||os==="pointerover")&&(Jl=Fj,Sl="onPointerLeave",il="onPointerEnter",sl="pointer"),Tu=vl==null?gl:Dx(vl),ml=Kl==null?gl:Dx(Kl),gl=new Jl(Sl,sl+"leave",vl,Xr,wl),gl.target=Tu,gl.relatedTarget=ml,Sl=null,Pm(wl)===xl&&(Jl=new Jl(il,sl+"enter",Kl,Xr,wl),Jl.target=ml,Jl.relatedTarget=Tu,Sl=Jl),Tu=Sl,vl&&Kl)t:{for(Jl=i0,il=vl,sl=Kl,ml=0,Sl=il;Sl;Sl=Jl(Sl))ml++;Sl=0;for(var Wl=sl;Wl;Wl=Jl(Wl))Sl++;for(;0<ml-Sl;)il=Jl(il),ml--;for(;0<Sl-ml;)sl=Jl(sl),Sl--;for(;ml--;){if(il===sl||sl!==null&&il===sl.alternate){Jl=il;break t}il=Jl(il),sl=Jl(sl)}Jl=null}else Jl=null;vl!==null&&OE(Cl,gl,vl,Jl,!1),Kl!==null&&Tu!==null&&OE(Cl,Tu,Kl,Jl,!0)}}e:{if(gl=xl?Dx(xl):window,vl=gl.nodeName&&gl.nodeName.toLowerCase(),vl==="select"||vl==="input"&&gl.type==="file")var gu=Qj;else if(Zj(gl))if(Yj)gu=fR;else{gu=hR;var Vl=xR}else vl=gl.nodeName,!vl||vl.toLowerCase()!=="input"||gl.type!=="checkbox"&&gl.type!=="radio"?xl&&tf(xl.elementType)&&(gu=Qj):gu=pR;if(gu&&(gu=gu(os,xl))){Vj(Cl,gu,Xr,wl);break e}Vl&&Vl(os,gl,xl),os==="focusout"&&xl&&gl.type==="number"&&xl.memoizedProps.value!=null&&ef(gl,"number",gl.value)}switch(Vl=xl?Dx(xl):window,os){case"focusin":(Zj(Vl)||Vl.contentEditable==="true")&&(Km=Vl,ff=xl,Hx=null);break;case"focusout":Hx=ff=Km=null;break;case"mousedown":gf=!0;break;case"contextmenu":case"mouseup":case"dragend":gf=!1,rv(Cl,Xr,wl);break;case"selectionchange":if(jR)break;case"keydown":case"keyup":rv(Cl,Xr,wl)}var ou;if(mf)e:{switch(os){case"compositionstart":var mu="onCompositionStart";break e;case"compositionend":mu="onCompositionEnd";break e;case"compositionupdate":mu="onCompositionUpdate";break e}mu=void 0}else Hm?Kj(os,Xr)&&(mu="onCompositionEnd"):os==="keydown"&&Xr.keyCode===229&&(mu="onCompositionStart");mu&&(qj&&Xr.locale!=="ko"&&(Hm||mu!=="onCompositionStart"?mu==="onCompositionEnd"&&Hm&&(ou=$j()):(Cd=wl,of="value"in Cd?Cd.value:Cd.textContent,Hm=!0)),Vl=Ap(xl,mu),0<Vl.length&&(mu=new Uj(mu,os,null,Xr,wl),Cl.push({event:mu,listeners:Vl}),ou?mu.data=ou:(ou=Gj(Xr),ou!==null&&(mu.data=ou)))),(ou=lR?uR(os,Xr):cR(os,Xr))&&(mu=Ap(xl,"onBeforeInput"),0<mu.length&&(Vl=new Uj("onBeforeInput","beforeinput",null,Xr,wl),Cl.push({event:Vl,listeners:mu}),Vl.data=ou)),t0(Cl,os,xl,Xr,wl)}kE(Cl,cs)})}function ph(os,cs,Xr){return{instance:os,listener:cs,currentTarget:Xr}}function Ap(os,cs){for(var Xr=cs+"Capture",Na=[];os!==null;){var La=os,Pa=La.stateNode;if(La=La.tag,La!==5&&La!==26&&La!==27||Pa===null||(La=Px(os,Xr),La!=null&&Na.unshift(ph(os,La,Pa)),La=Px(os,cs),La!=null&&Na.push(ph(os,La,Pa))),os.tag===3)return Na;os=os.return}return[]}function i0(os){if(os===null)return null;do os=os.return;while(os&&os.tag!==5&&os.tag!==27);return os||null}function OE(os,cs,Xr,Na,La){for(var Pa=cs._reactName,za=[];Xr!==null&&Xr!==Na;){var Za=Xr,Xa=Za.alternate,xl=Za.stateNode;if(Za=Za.tag,Xa!==null&&Xa===Na)break;Za!==5&&Za!==26&&Za!==27||xl===null||(Xa=xl,La?(xl=Px(Xr,Pa),xl!=null&&za.unshift(ph(Xr,xl,Xa))):La||(xl=Px(Xr,Pa),xl!=null&&za.push(ph(Xr,xl,Xa)))),Xr=Xr.return}za.length!==0&&os.push({event:cs,listeners:za})}var a0=/\r\n?/g,o0=/\u0000|\uFFFD/g;function IE(os){return(typeof os=="string"?os:""+os).replace(a0,`
25
- `).replace(o0,"")}function LE(os,cs){return cs=IE(cs),IE(os)===cs}function Cu(os,cs,Xr,Na,La,Pa){switch(Xr){case"children":typeof Na=="string"?cs==="body"||cs==="textarea"&&Na===""||Fm(os,Na):(typeof Na=="number"||typeof Na=="bigint")&&cs!=="body"&&Fm(os,""+Na);break;case"className":Lh(os,"class",Na);break;case"tabIndex":Lh(os,"tabindex",Na);break;case"dir":case"role":case"viewBox":case"width":case"height":Lh(os,Xr,Na);break;case"style":Lj(os,Na,Pa);break;case"data":if(cs!=="object"){Lh(os,"data",Na);break}case"src":case"href":if(Na===""&&(cs!=="a"||Xr!=="href")){os.removeAttribute(Xr);break}if(Na==null||typeof Na=="function"||typeof Na=="symbol"||typeof Na=="boolean"){os.removeAttribute(Xr);break}Na=Ph(""+Na),os.setAttribute(Xr,Na);break;case"action":case"formAction":if(typeof Na=="function"){os.setAttribute(Xr,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof Pa=="function"&&(Xr==="formAction"?(cs!=="input"&&Cu(os,cs,"name",La.name,La,null),Cu(os,cs,"formEncType",La.formEncType,La,null),Cu(os,cs,"formMethod",La.formMethod,La,null),Cu(os,cs,"formTarget",La.formTarget,La,null)):(Cu(os,cs,"encType",La.encType,La,null),Cu(os,cs,"method",La.method,La,null),Cu(os,cs,"target",La.target,La,null)));if(Na==null||typeof Na=="symbol"||typeof Na=="boolean"){os.removeAttribute(Xr);break}Na=Ph(""+Na),os.setAttribute(Xr,Na);break;case"onClick":Na!=null&&(os.onclick=rd);break;case"onScroll":Na!=null&&uu("scroll",os);break;case"onScrollEnd":Na!=null&&uu("scrollend",os);break;case"dangerouslySetInnerHTML":if(Na!=null){if(typeof Na!="object"||!("__html"in Na))throw Error(is(61));if(Xr=Na.__html,Xr!=null){if(La.children!=null)throw Error(is(60));os.innerHTML=Xr}}break;case"multiple":os.multiple=Na&&typeof Na!="function"&&typeof Na!="symbol";break;case"muted":os.muted=Na&&typeof Na!="function"&&typeof Na!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(Na==null||typeof Na=="function"||typeof Na=="boolean"||typeof Na=="symbol"){os.removeAttribute("xlink:href");break}Xr=Ph(""+Na),os.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",Xr);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":Na!=null&&typeof Na!="function"&&typeof Na!="symbol"?os.setAttribute(Xr,""+Na):os.removeAttribute(Xr);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":Na&&typeof Na!="function"&&typeof Na!="symbol"?os.setAttribute(Xr,""):os.removeAttribute(Xr);break;case"capture":case"download":Na===!0?os.setAttribute(Xr,""):Na!==!1&&Na!=null&&typeof Na!="function"&&typeof Na!="symbol"?os.setAttribute(Xr,Na):os.removeAttribute(Xr);break;case"cols":case"rows":case"size":case"span":Na!=null&&typeof Na!="function"&&typeof Na!="symbol"&&!isNaN(Na)&&1<=Na?os.setAttribute(Xr,Na):os.removeAttribute(Xr);break;case"rowSpan":case"start":Na==null||typeof Na=="function"||typeof Na=="symbol"||isNaN(Na)?os.removeAttribute(Xr):os.setAttribute(Xr,Na);break;case"popover":uu("beforetoggle",os),uu("toggle",os),Ih(os,"popover",Na);break;case"xlinkActuate":nd(os,"http://www.w3.org/1999/xlink","xlink:actuate",Na);break;case"xlinkArcrole":nd(os,"http://www.w3.org/1999/xlink","xlink:arcrole",Na);break;case"xlinkRole":nd(os,"http://www.w3.org/1999/xlink","xlink:role",Na);break;case"xlinkShow":nd(os,"http://www.w3.org/1999/xlink","xlink:show",Na);break;case"xlinkTitle":nd(os,"http://www.w3.org/1999/xlink","xlink:title",Na);break;case"xlinkType":nd(os,"http://www.w3.org/1999/xlink","xlink:type",Na);break;case"xmlBase":nd(os,"http://www.w3.org/XML/1998/namespace","xml:base",Na);break;case"xmlLang":nd(os,"http://www.w3.org/XML/1998/namespace","xml:lang",Na);break;case"xmlSpace":nd(os,"http://www.w3.org/XML/1998/namespace","xml:space",Na);break;case"is":Ih(os,"is",Na);break;case"innerText":case"textContent":break;default:(!(2<Xr.length)||Xr[0]!=="o"&&Xr[0]!=="O"||Xr[1]!=="n"&&Xr[1]!=="N")&&(Xr=Db.get(Xr)||Xr,Ih(os,Xr,Na))}}function qg(os,cs,Xr,Na,La,Pa){switch(Xr){case"style":Lj(os,Na,Pa);break;case"dangerouslySetInnerHTML":if(Na!=null){if(typeof Na!="object"||!("__html"in Na))throw Error(is(61));if(Xr=Na.__html,Xr!=null){if(La.children!=null)throw Error(is(60));os.innerHTML=Xr}}break;case"children":typeof Na=="string"?Fm(os,Na):(typeof Na=="number"||typeof Na=="bigint")&&Fm(os,""+Na);break;case"onScroll":Na!=null&&uu("scroll",os);break;case"onScrollEnd":Na!=null&&uu("scrollend",os);break;case"onClick":Na!=null&&(os.onclick=rd);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!wj.hasOwnProperty(Xr))e:{if(Xr[0]==="o"&&Xr[1]==="n"&&(La=Xr.endsWith("Capture"),cs=Xr.slice(2,La?Xr.length-7:void 0),Pa=os[xc]||null,Pa=Pa!=null?Pa[Xr]:null,typeof Pa=="function"&&os.removeEventListener(cs,Pa,La),typeof Na=="function")){typeof Pa!="function"&&Pa!==null&&(Xr in os?os[Xr]=null:os.hasAttribute(Xr)&&os.removeAttribute(Xr)),os.addEventListener(cs,Na,La);break e}Xr in os?os[Xr]=Na:Na===!0?os.setAttribute(Xr,""):Ih(os,Xr,Na)}}}function nc(os,cs,Xr){switch(cs){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":uu("error",os),uu("load",os);var Na=!1,La=!1,Pa;for(Pa in Xr)if(Xr.hasOwnProperty(Pa)){var za=Xr[Pa];if(za!=null)switch(Pa){case"src":Na=!0;break;case"srcSet":La=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(is(137,cs));default:Cu(os,cs,Pa,za,Xr,null)}}La&&Cu(os,cs,"srcSet",Xr.srcSet,Xr,null),Na&&Cu(os,cs,"src",Xr.src,Xr,null);return;case"input":uu("invalid",os);var Za=Pa=za=La=null,Xa=null,xl=null;for(Na in Xr)if(Xr.hasOwnProperty(Na)){var wl=Xr[Na];if(wl!=null)switch(Na){case"name":La=wl;break;case"type":za=wl;break;case"checked":Xa=wl;break;case"defaultChecked":xl=wl;break;case"value":Pa=wl;break;case"defaultValue":Za=wl;break;case"children":case"dangerouslySetInnerHTML":if(wl!=null)throw Error(is(137,cs));break;default:Cu(os,cs,Na,wl,Xr,null)}}kj(os,Pa,Za,Xa,xl,za,La,!1);return;case"select":uu("invalid",os),Na=za=Pa=null;for(La in Xr)if(Xr.hasOwnProperty(La)&&(Za=Xr[La],Za!=null))switch(La){case"value":Pa=Za;break;case"defaultValue":za=Za;break;case"multiple":Na=Za;default:Cu(os,cs,La,Za,Xr,null)}cs=Pa,Xr=za,os.multiple=!!Na,cs!=null?Um(os,!!Na,cs,!1):Xr!=null&&Um(os,!!Na,Xr,!0);return;case"textarea":uu("invalid",os),Pa=La=Na=null;for(za in Xr)if(Xr.hasOwnProperty(za)&&(Za=Xr[za],Za!=null))switch(za){case"value":Na=Za;break;case"defaultValue":La=Za;break;case"children":Pa=Za;break;case"dangerouslySetInnerHTML":if(Za!=null)throw Error(is(91));break;default:Cu(os,cs,za,Za,Xr,null)}Oj(os,Na,La,Pa);return;case"option":for(Xa in Xr)if(Xr.hasOwnProperty(Xa)&&(Na=Xr[Xa],Na!=null))switch(Xa){case"selected":os.selected=Na&&typeof Na!="function"&&typeof Na!="symbol";break;default:Cu(os,cs,Xa,Na,Xr,null)}return;case"dialog":uu("beforetoggle",os),uu("toggle",os),uu("cancel",os),uu("close",os);break;case"iframe":case"object":uu("load",os);break;case"video":case"audio":for(Na=0;Na<hh.length;Na++)uu(hh[Na],os);break;case"image":uu("error",os),uu("load",os);break;case"details":uu("toggle",os);break;case"embed":case"source":case"link":uu("error",os),uu("load",os);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(xl in Xr)if(Xr.hasOwnProperty(xl)&&(Na=Xr[xl],Na!=null))switch(xl){case"children":case"dangerouslySetInnerHTML":throw Error(is(137,cs));default:Cu(os,cs,xl,Na,Xr,null)}return;default:if(tf(cs)){for(wl in Xr)Xr.hasOwnProperty(wl)&&(Na=Xr[wl],Na!==void 0&&qg(os,cs,wl,Na,Xr,void 0));return}}for(Za in Xr)Xr.hasOwnProperty(Za)&&(Na=Xr[Za],Na!=null&&Cu(os,cs,Za,Na,Xr,null))}function l0(os,cs,Xr,Na){switch(cs){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var La=null,Pa=null,za=null,Za=null,Xa=null,xl=null,wl=null;for(vl in Xr){var Cl=Xr[vl];if(Xr.hasOwnProperty(vl)&&Cl!=null)switch(vl){case"checked":break;case"value":break;case"defaultValue":Xa=Cl;default:Na.hasOwnProperty(vl)||Cu(os,cs,vl,null,Na,Cl)}}for(var gl in Na){var vl=Na[gl];if(Cl=Xr[gl],Na.hasOwnProperty(gl)&&(vl!=null||Cl!=null))switch(gl){case"type":Pa=vl;break;case"name":La=vl;break;case"checked":xl=vl;break;case"defaultChecked":wl=vl;break;case"value":za=vl;break;case"defaultValue":Za=vl;break;case"children":case"dangerouslySetInnerHTML":if(vl!=null)throw Error(is(137,cs));break;default:vl!==Cl&&Cu(os,cs,gl,vl,Na,Cl)}}Xp(os,za,Za,Xa,xl,wl,Pa,La);return;case"select":vl=za=Za=gl=null;for(Pa in Xr)if(Xa=Xr[Pa],Xr.hasOwnProperty(Pa)&&Xa!=null)switch(Pa){case"value":break;case"multiple":vl=Xa;default:Na.hasOwnProperty(Pa)||Cu(os,cs,Pa,null,Na,Xa)}for(La in Na)if(Pa=Na[La],Xa=Xr[La],Na.hasOwnProperty(La)&&(Pa!=null||Xa!=null))switch(La){case"value":gl=Pa;break;case"defaultValue":Za=Pa;break;case"multiple":za=Pa;default:Pa!==Xa&&Cu(os,cs,La,Pa,Na,Xa)}cs=Za,Xr=za,Na=vl,gl!=null?Um(os,!!Xr,gl,!1):!!Na!=!!Xr&&(cs!=null?Um(os,!!Xr,cs,!0):Um(os,!!Xr,Xr?[]:"",!1));return;case"textarea":vl=gl=null;for(Za in Xr)if(La=Xr[Za],Xr.hasOwnProperty(Za)&&La!=null&&!Na.hasOwnProperty(Za))switch(Za){case"value":break;case"children":break;default:Cu(os,cs,Za,null,Na,La)}for(za in Na)if(La=Na[za],Pa=Xr[za],Na.hasOwnProperty(za)&&(La!=null||Pa!=null))switch(za){case"value":gl=La;break;case"defaultValue":vl=La;break;case"children":break;case"dangerouslySetInnerHTML":if(La!=null)throw Error(is(91));break;default:La!==Pa&&Cu(os,cs,za,La,Na,Pa)}Aj(os,gl,vl);return;case"option":for(var Kl in Xr)if(gl=Xr[Kl],Xr.hasOwnProperty(Kl)&&gl!=null&&!Na.hasOwnProperty(Kl))switch(Kl){case"selected":os.selected=!1;break;default:Cu(os,cs,Kl,null,Na,gl)}for(Xa in Na)if(gl=Na[Xa],vl=Xr[Xa],Na.hasOwnProperty(Xa)&&gl!==vl&&(gl!=null||vl!=null))switch(Xa){case"selected":os.selected=gl&&typeof gl!="function"&&typeof gl!="symbol";break;default:Cu(os,cs,Xa,gl,Na,vl)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Jl in Xr)gl=Xr[Jl],Xr.hasOwnProperty(Jl)&&gl!=null&&!Na.hasOwnProperty(Jl)&&Cu(os,cs,Jl,null,Na,gl);for(xl in Na)if(gl=Na[xl],vl=Xr[xl],Na.hasOwnProperty(xl)&&gl!==vl&&(gl!=null||vl!=null))switch(xl){case"children":case"dangerouslySetInnerHTML":if(gl!=null)throw Error(is(137,cs));break;default:Cu(os,cs,xl,gl,Na,vl)}return;default:if(tf(cs)){for(var Tu in Xr)gl=Xr[Tu],Xr.hasOwnProperty(Tu)&&gl!==void 0&&!Na.hasOwnProperty(Tu)&&qg(os,cs,Tu,void 0,Na,gl);for(wl in Na)gl=Na[wl],vl=Xr[wl],!Na.hasOwnProperty(wl)||gl===vl||gl===void 0&&vl===void 0||qg(os,cs,wl,gl,Na,vl);return}}for(var il in Xr)gl=Xr[il],Xr.hasOwnProperty(il)&&gl!=null&&!Na.hasOwnProperty(il)&&Cu(os,cs,il,null,Na,gl);for(Cl in Na)gl=Na[Cl],vl=Xr[Cl],!Na.hasOwnProperty(Cl)||gl===vl||gl==null&&vl==null||Cu(os,cs,Cl,gl,Na,vl)}function DE(os){switch(os){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function u0(){if(typeof performance.getEntriesByType=="function"){for(var os=0,cs=0,Xr=performance.getEntriesByType("resource"),Na=0;Na<Xr.length;Na++){var La=Xr[Na],Pa=La.transferSize,za=La.initiatorType,Za=La.duration;if(Pa&&Za&&DE(za)){for(za=0,Za=La.responseEnd,Na+=1;Na<Xr.length;Na++){var Xa=Xr[Na],xl=Xa.startTime;if(xl>Za)break;var wl=Xa.transferSize,Cl=Xa.initiatorType;wl&&DE(Cl)&&(Xa=Xa.responseEnd,za+=wl*(Xa<Za?1:(Za-xl)/(Xa-xl)))}if(--Na,cs+=8*(Pa+za)/(La.duration/1e3),os++,10<os)break}}if(0<os)return cs/os/1e6}return navigator.connection&&(os=navigator.connection.downlink,typeof os=="number")?os:5}var zg=null,Hg=null;function Op(os){return os.nodeType===9?os:os.ownerDocument}function PE(os){switch(os){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function $E(os,cs){if(os===0)switch(cs){case"svg":return 1;case"math":return 2;default:return 0}return os===1&&cs==="foreignObject"?0:os}function Kg(os,cs){return os==="textarea"||os==="noscript"||typeof cs.children=="string"||typeof cs.children=="number"||typeof cs.children=="bigint"||typeof cs.dangerouslySetInnerHTML=="object"&&cs.dangerouslySetInnerHTML!==null&&cs.dangerouslySetInnerHTML.__html!=null}var Gg=null;function c0(){var os=window.event;return os&&os.type==="popstate"?os===Gg?!1:(Gg=os,!0):(Gg=null,!1)}var ME=typeof setTimeout=="function"?setTimeout:void 0,d0=typeof clearTimeout=="function"?clearTimeout:void 0,BE=typeof Promise=="function"?Promise:void 0,m0=typeof queueMicrotask=="function"?queueMicrotask:typeof BE<"u"?function(os){return BE.resolve(null).then(os).catch(x0)}:ME;function x0(os){setTimeout(function(){throw os})}function Kd(os){return os==="head"}function UE(os,cs){var Xr=cs,Na=0;do{var La=Xr.nextSibling;if(os.removeChild(Xr),La&&La.nodeType===8)if(Xr=La.data,Xr==="/$"||Xr==="/&"){if(Na===0){os.removeChild(La),jx(cs);return}Na--}else if(Xr==="$"||Xr==="$?"||Xr==="$~"||Xr==="$!"||Xr==="&")Na++;else if(Xr==="html")fh(os.ownerDocument.documentElement);else if(Xr==="head"){Xr=os.ownerDocument.head,fh(Xr);for(var Pa=Xr.firstChild;Pa;){var za=Pa.nextSibling,Za=Pa.nodeName;Pa[Lx]||Za==="SCRIPT"||Za==="STYLE"||Za==="LINK"&&Pa.rel.toLowerCase()==="stylesheet"||Xr.removeChild(Pa),Pa=za}}else Xr==="body"&&fh(os.ownerDocument.body);Xr=La}while(Xr);jx(cs)}function FE(os,cs){var Xr=os;os=0;do{var Na=Xr.nextSibling;if(Xr.nodeType===1?cs?(Xr._stashedDisplay=Xr.style.display,Xr.style.display="none"):(Xr.style.display=Xr._stashedDisplay||"",Xr.getAttribute("style")===""&&Xr.removeAttribute("style")):Xr.nodeType===3&&(cs?(Xr._stashedText=Xr.nodeValue,Xr.nodeValue=""):Xr.nodeValue=Xr._stashedText||""),Na&&Na.nodeType===8)if(Xr=Na.data,Xr==="/$"){if(os===0)break;os--}else Xr!=="$"&&Xr!=="$?"&&Xr!=="$~"&&Xr!=="$!"||os++;Xr=Na}while(Xr)}function Zg(os){var cs=os.firstChild;for(cs&&cs.nodeType===10&&(cs=cs.nextSibling);cs;){var Xr=cs;switch(cs=cs.nextSibling,Xr.nodeName){case"HTML":case"HEAD":case"BODY":Zg(Xr),Wp(Xr);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(Xr.rel.toLowerCase()==="stylesheet")continue}os.removeChild(Xr)}}function h0(os,cs,Xr,Na){for(;os.nodeType===1;){var La=Xr;if(os.nodeName.toLowerCase()!==cs.toLowerCase()){if(!Na&&(os.nodeName!=="INPUT"||os.type!=="hidden"))break}else if(Na){if(!os[Lx])switch(cs){case"meta":if(!os.hasAttribute("itemprop"))break;return os;case"link":if(Pa=os.getAttribute("rel"),Pa==="stylesheet"&&os.hasAttribute("data-precedence"))break;if(Pa!==La.rel||os.getAttribute("href")!==(La.href==null||La.href===""?null:La.href)||os.getAttribute("crossorigin")!==(La.crossOrigin==null?null:La.crossOrigin)||os.getAttribute("title")!==(La.title==null?null:La.title))break;return os;case"style":if(os.hasAttribute("data-precedence"))break;return os;case"script":if(Pa=os.getAttribute("src"),(Pa!==(La.src==null?null:La.src)||os.getAttribute("type")!==(La.type==null?null:La.type)||os.getAttribute("crossorigin")!==(La.crossOrigin==null?null:La.crossOrigin))&&Pa&&os.hasAttribute("async")&&!os.hasAttribute("itemprop"))break;return os;default:return os}}else if(cs==="input"&&os.type==="hidden"){var Pa=La.name==null?null:""+La.name;if(La.type==="hidden"&&os.getAttribute("name")===Pa)return os}else return os;if(os=Mc(os.nextSibling),os===null)break}return null}function p0(os,cs,Xr){if(cs==="")return null;for(;os.nodeType!==3;)if((os.nodeType!==1||os.nodeName!=="INPUT"||os.type!=="hidden")&&!Xr||(os=Mc(os.nextSibling),os===null))return null;return os}function qE(os,cs){for(;os.nodeType!==8;)if((os.nodeType!==1||os.nodeName!=="INPUT"||os.type!=="hidden")&&!cs||(os=Mc(os.nextSibling),os===null))return null;return os}function Vg(os){return os.data==="$?"||os.data==="$~"}function Qg(os){return os.data==="$!"||os.data==="$?"&&os.ownerDocument.readyState!=="loading"}function f0(os,cs){var Xr=os.ownerDocument;if(os.data==="$~")os._reactRetry=cs;else if(os.data!=="$?"||Xr.readyState!=="loading")cs();else{var Na=function(){cs(),Xr.removeEventListener("DOMContentLoaded",Na)};Xr.addEventListener("DOMContentLoaded",Na),os._reactRetry=Na}}function Mc(os){for(;os!=null;os=os.nextSibling){var cs=os.nodeType;if(cs===1||cs===3)break;if(cs===8){if(cs=os.data,cs==="$"||cs==="$!"||cs==="$?"||cs==="$~"||cs==="&"||cs==="F!"||cs==="F")break;if(cs==="/$"||cs==="/&")return null}}return os}var Yg=null;function zE(os){os=os.nextSibling;for(var cs=0;os;){if(os.nodeType===8){var Xr=os.data;if(Xr==="/$"||Xr==="/&"){if(cs===0)return Mc(os.nextSibling);cs--}else Xr!=="$"&&Xr!=="$!"&&Xr!=="$?"&&Xr!=="$~"&&Xr!=="&"||cs++}os=os.nextSibling}return null}function HE(os){os=os.previousSibling;for(var cs=0;os;){if(os.nodeType===8){var Xr=os.data;if(Xr==="$"||Xr==="$!"||Xr==="$?"||Xr==="$~"||Xr==="&"){if(cs===0)return os;cs--}else Xr!=="/$"&&Xr!=="/&"||cs++}os=os.previousSibling}return null}function KE(os,cs,Xr){switch(cs=Op(Xr),os){case"html":if(os=cs.documentElement,!os)throw Error(is(452));return os;case"head":if(os=cs.head,!os)throw Error(is(453));return os;case"body":if(os=cs.body,!os)throw Error(is(454));return os;default:throw Error(is(451))}}function fh(os){for(var cs=os.attributes;cs.length;)os.removeAttributeNode(cs[0]);Wp(os)}var Bc=new Map,GE=new Set;function Ip(os){return typeof os.getRootNode=="function"?os.getRootNode():os.nodeType===9?os:os.ownerDocument}var yd=hl.d;hl.d={f:g0,r:j0,D:v0,C:y0,L:E0,m:b0,X:_0,S:R0,M:w0};function g0(){var os=yd.f(),cs=_p();return os||cs}function j0(os){var cs=$m(os);cs!==null&&cs.tag===5&&cs.type==="form"?uy(cs):yd.r(os)}var px=typeof document>"u"?null:document;function ZE(os,cs,Xr){var Na=px;if(Na&&typeof cs=="string"&&cs){var La=Ac(cs);La='link[rel="'+os+'"][href="'+La+'"]',typeof Xr=="string"&&(La+='[crossorigin="'+Xr+'"]'),GE.has(La)||(GE.add(La),os={rel:os,crossOrigin:Xr,href:cs},Na.querySelector(La)===null&&(cs=Na.createElement("link"),nc(cs,"link",os),Qu(cs),Na.head.appendChild(cs)))}}function v0(os){yd.D(os),ZE("dns-prefetch",os,null)}function y0(os,cs){yd.C(os,cs),ZE("preconnect",os,cs)}function E0(os,cs,Xr){yd.L(os,cs,Xr);var Na=px;if(Na&&os&&cs){var La='link[rel="preload"][as="'+Ac(cs)+'"]';cs==="image"&&Xr&&Xr.imageSrcSet?(La+='[imagesrcset="'+Ac(Xr.imageSrcSet)+'"]',typeof Xr.imageSizes=="string"&&(La+='[imagesizes="'+Ac(Xr.imageSizes)+'"]')):La+='[href="'+Ac(os)+'"]';var Pa=La;switch(cs){case"style":Pa=fx(os);break;case"script":Pa=gx(os)}Bc.has(Pa)||(os=Da({rel:"preload",href:cs==="image"&&Xr&&Xr.imageSrcSet?void 0:os,as:cs},Xr),Bc.set(Pa,os),Na.querySelector(La)!==null||cs==="style"&&Na.querySelector(gh(Pa))||cs==="script"&&Na.querySelector(jh(Pa))||(cs=Na.createElement("link"),nc(cs,"link",os),Qu(cs),Na.head.appendChild(cs)))}}function b0(os,cs){yd.m(os,cs);var Xr=px;if(Xr&&os){var Na=cs&&typeof cs.as=="string"?cs.as:"script",La='link[rel="modulepreload"][as="'+Ac(Na)+'"][href="'+Ac(os)+'"]',Pa=La;switch(Na){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":Pa=gx(os)}if(!Bc.has(Pa)&&(os=Da({rel:"modulepreload",href:os},cs),Bc.set(Pa,os),Xr.querySelector(La)===null)){switch(Na){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(Xr.querySelector(jh(Pa)))return}Na=Xr.createElement("link"),nc(Na,"link",os),Qu(Na),Xr.head.appendChild(Na)}}}function R0(os,cs,Xr){yd.S(os,cs,Xr);var Na=px;if(Na&&os){var La=Mm(Na).hoistableStyles,Pa=fx(os);cs=cs||"default";var za=La.get(Pa);if(!za){var Za={loading:0,preload:null};if(za=Na.querySelector(gh(Pa)))Za.loading=5;else{os=Da({rel:"stylesheet",href:os,"data-precedence":cs},Xr),(Xr=Bc.get(Pa))&&Wg(os,Xr);var Xa=za=Na.createElement("link");Qu(Xa),nc(Xa,"link",os),Xa._p=new Promise(function(xl,wl){Xa.onload=xl,Xa.onerror=wl}),Xa.addEventListener("load",function(){Za.loading|=1}),Xa.addEventListener("error",function(){Za.loading|=2}),Za.loading|=4,Lp(za,cs,Na)}za={type:"stylesheet",instance:za,count:1,state:Za},La.set(Pa,za)}}}function _0(os,cs){yd.X(os,cs);var Xr=px;if(Xr&&os){var Na=Mm(Xr).hoistableScripts,La=gx(os),Pa=Na.get(La);Pa||(Pa=Xr.querySelector(jh(La)),Pa||(os=Da({src:os,async:!0},cs),(cs=Bc.get(La))&&Jg(os,cs),Pa=Xr.createElement("script"),Qu(Pa),nc(Pa,"link",os),Xr.head.appendChild(Pa)),Pa={type:"script",instance:Pa,count:1,state:null},Na.set(La,Pa))}}function w0(os,cs){yd.M(os,cs);var Xr=px;if(Xr&&os){var Na=Mm(Xr).hoistableScripts,La=gx(os),Pa=Na.get(La);Pa||(Pa=Xr.querySelector(jh(La)),Pa||(os=Da({src:os,async:!0,type:"module"},cs),(cs=Bc.get(La))&&Jg(os,cs),Pa=Xr.createElement("script"),Qu(Pa),nc(Pa,"link",os),Xr.head.appendChild(Pa)),Pa={type:"script",instance:Pa,count:1,state:null},Na.set(La,Pa))}}function VE(os,cs,Xr,Na){var La=(La=ru.current)?Ip(La):null;if(!La)throw Error(is(446));switch(os){case"meta":case"title":return null;case"style":return typeof Xr.precedence=="string"&&typeof Xr.href=="string"?(cs=fx(Xr.href),Xr=Mm(La).hoistableStyles,Na=Xr.get(cs),Na||(Na={type:"style",instance:null,count:0,state:null},Xr.set(cs,Na)),Na):{type:"void",instance:null,count:0,state:null};case"link":if(Xr.rel==="stylesheet"&&typeof Xr.href=="string"&&typeof Xr.precedence=="string"){os=fx(Xr.href);var Pa=Mm(La).hoistableStyles,za=Pa.get(os);if(za||(La=La.ownerDocument||La,za={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},Pa.set(os,za),(Pa=La.querySelector(gh(os)))&&!Pa._p&&(za.instance=Pa,za.state.loading=5),Bc.has(os)||(Xr={rel:"preload",as:"style",href:Xr.href,crossOrigin:Xr.crossOrigin,integrity:Xr.integrity,media:Xr.media,hrefLang:Xr.hrefLang,referrerPolicy:Xr.referrerPolicy},Bc.set(os,Xr),Pa||N0(La,os,Xr,za.state))),cs&&Na===null)throw Error(is(528,""));return za}if(cs&&Na!==null)throw Error(is(529,""));return null;case"script":return cs=Xr.async,Xr=Xr.src,typeof Xr=="string"&&cs&&typeof cs!="function"&&typeof cs!="symbol"?(cs=gx(Xr),Xr=Mm(La).hoistableScripts,Na=Xr.get(cs),Na||(Na={type:"script",instance:null,count:0,state:null},Xr.set(cs,Na)),Na):{type:"void",instance:null,count:0,state:null};default:throw Error(is(444,os))}}function fx(os){return'href="'+Ac(os)+'"'}function gh(os){return'link[rel="stylesheet"]['+os+"]"}function QE(os){return Da({},os,{"data-precedence":os.precedence,precedence:null})}function N0(os,cs,Xr,Na){os.querySelector('link[rel="preload"][as="style"]['+cs+"]")?Na.loading=1:(cs=os.createElement("link"),Na.preload=cs,cs.addEventListener("load",function(){return Na.loading|=1}),cs.addEventListener("error",function(){return Na.loading|=2}),nc(cs,"link",Xr),Qu(cs),os.head.appendChild(cs))}function gx(os){return'[src="'+Ac(os)+'"]'}function jh(os){return"script[async]"+os}function YE(os,cs,Xr){if(cs.count++,cs.instance===null)switch(cs.type){case"style":var Na=os.querySelector('style[data-href~="'+Ac(Xr.href)+'"]');if(Na)return cs.instance=Na,Qu(Na),Na;var La=Da({},Xr,{"data-href":Xr.href,"data-precedence":Xr.precedence,href:null,precedence:null});return Na=(os.ownerDocument||os).createElement("style"),Qu(Na),nc(Na,"style",La),Lp(Na,Xr.precedence,os),cs.instance=Na;case"stylesheet":La=fx(Xr.href);var Pa=os.querySelector(gh(La));if(Pa)return cs.state.loading|=4,cs.instance=Pa,Qu(Pa),Pa;Na=QE(Xr),(La=Bc.get(La))&&Wg(Na,La),Pa=(os.ownerDocument||os).createElement("link"),Qu(Pa);var za=Pa;return za._p=new Promise(function(Za,Xa){za.onload=Za,za.onerror=Xa}),nc(Pa,"link",Na),cs.state.loading|=4,Lp(Pa,Xr.precedence,os),cs.instance=Pa;case"script":return Pa=gx(Xr.src),(La=os.querySelector(jh(Pa)))?(cs.instance=La,Qu(La),La):(Na=Xr,(La=Bc.get(Pa))&&(Na=Da({},Xr),Jg(Na,La)),os=os.ownerDocument||os,La=os.createElement("script"),Qu(La),nc(La,"link",Na),os.head.appendChild(La),cs.instance=La);case"void":return null;default:throw Error(is(443,cs.type))}else cs.type==="stylesheet"&&(cs.state.loading&4)===0&&(Na=cs.instance,cs.state.loading|=4,Lp(Na,Xr.precedence,os));return cs.instance}function Lp(os,cs,Xr){for(var Na=Xr.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),La=Na.length?Na[Na.length-1]:null,Pa=La,za=0;za<Na.length;za++){var Za=Na[za];if(Za.dataset.precedence===cs)Pa=Za;else if(Pa!==La)break}Pa?Pa.parentNode.insertBefore(os,Pa.nextSibling):(cs=Xr.nodeType===9?Xr.head:Xr,cs.insertBefore(os,cs.firstChild))}function Wg(os,cs){os.crossOrigin==null&&(os.crossOrigin=cs.crossOrigin),os.referrerPolicy==null&&(os.referrerPolicy=cs.referrerPolicy),os.title==null&&(os.title=cs.title)}function Jg(os,cs){os.crossOrigin==null&&(os.crossOrigin=cs.crossOrigin),os.referrerPolicy==null&&(os.referrerPolicy=cs.referrerPolicy),os.integrity==null&&(os.integrity=cs.integrity)}var Dp=null;function WE(os,cs,Xr){if(Dp===null){var Na=new Map,La=Dp=new Map;La.set(Xr,Na)}else La=Dp,Na=La.get(Xr),Na||(Na=new Map,La.set(Xr,Na));if(Na.has(os))return Na;for(Na.set(os,null),Xr=Xr.getElementsByTagName(os),La=0;La<Xr.length;La++){var Pa=Xr[La];if(!(Pa[Lx]||Pa[Xu]||os==="link"&&Pa.getAttribute("rel")==="stylesheet")&&Pa.namespaceURI!=="http://www.w3.org/2000/svg"){var za=Pa.getAttribute(cs)||"";za=os+za;var Za=Na.get(za);Za?Za.push(Pa):Na.set(za,[Pa])}}return Na}function JE(os,cs,Xr){os=os.ownerDocument||os,os.head.insertBefore(Xr,cs==="title"?os.querySelector("head > title"):null)}function S0(os,cs,Xr){if(Xr===1||cs.itemProp!=null)return!1;switch(os){case"meta":case"title":return!0;case"style":if(typeof cs.precedence!="string"||typeof cs.href!="string"||cs.href==="")break;return!0;case"link":if(typeof cs.rel!="string"||typeof cs.href!="string"||cs.href===""||cs.onLoad||cs.onError)break;switch(cs.rel){case"stylesheet":return os=cs.disabled,typeof cs.precedence=="string"&&os==null;default:return!0}case"script":if(cs.async&&typeof cs.async!="function"&&typeof cs.async!="symbol"&&!cs.onLoad&&!cs.onError&&cs.src&&typeof cs.src=="string")return!0}return!1}function XE(os){return!(os.type==="stylesheet"&&(os.state.loading&3)===0)}function C0(os,cs,Xr,Na){if(Xr.type==="stylesheet"&&(typeof Na.media!="string"||matchMedia(Na.media).matches!==!1)&&(Xr.state.loading&4)===0){if(Xr.instance===null){var La=fx(Na.href),Pa=cs.querySelector(gh(La));if(Pa){cs=Pa._p,cs!==null&&typeof cs=="object"&&typeof cs.then=="function"&&(os.count++,os=Pp.bind(os),cs.then(os,os)),Xr.state.loading|=4,Xr.instance=Pa,Qu(Pa);return}Pa=cs.ownerDocument||cs,Na=QE(Na),(La=Bc.get(La))&&Wg(Na,La),Pa=Pa.createElement("link"),Qu(Pa);var za=Pa;za._p=new Promise(function(Za,Xa){za.onload=Za,za.onerror=Xa}),nc(Pa,"link",Na),Xr.instance=Pa}os.stylesheets===null&&(os.stylesheets=new Map),os.stylesheets.set(Xr,cs),(cs=Xr.state.preload)&&(Xr.state.loading&3)===0&&(os.count++,Xr=Pp.bind(os),cs.addEventListener("load",Xr),cs.addEventListener("error",Xr))}}var Xg=0;function T0(os,cs){return os.stylesheets&&os.count===0&&Mp(os,os.stylesheets),0<os.count||0<os.imgCount?function(Xr){var Na=setTimeout(function(){if(os.stylesheets&&Mp(os,os.stylesheets),os.unsuspend){var Pa=os.unsuspend;os.unsuspend=null,Pa()}},6e4+cs);0<os.imgBytes&&Xg===0&&(Xg=62500*u0());var La=setTimeout(function(){if(os.waitingForImages=!1,os.count===0&&(os.stylesheets&&Mp(os,os.stylesheets),os.unsuspend)){var Pa=os.unsuspend;os.unsuspend=null,Pa()}},(os.imgBytes>Xg?50:800)+cs);return os.unsuspend=Xr,function(){os.unsuspend=null,clearTimeout(Na),clearTimeout(La)}}:null}function Pp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Mp(this,this.stylesheets);else if(this.unsuspend){var os=this.unsuspend;this.unsuspend=null,os()}}}var $p=null;function Mp(os,cs){os.stylesheets=null,os.unsuspend!==null&&(os.count++,$p=new Map,cs.forEach(k0,os),$p=null,Pp.call(os))}function k0(os,cs){if(!(cs.state.loading&4)){var Xr=$p.get(os);if(Xr)var Na=Xr.get(null);else{Xr=new Map,$p.set(os,Xr);for(var La=os.querySelectorAll("link[data-precedence],style[data-precedence]"),Pa=0;Pa<La.length;Pa++){var za=La[Pa];(za.nodeName==="LINK"||za.getAttribute("media")!=="not all")&&(Xr.set(za.dataset.precedence,za),Na=za)}Na&&Xr.set(null,Na)}La=cs.instance,za=La.getAttribute("data-precedence"),Pa=Xr.get(za)||Na,Pa===Na&&Xr.set(null,La),Xr.set(za,La),this.count++,Na=Pp.bind(this),La.addEventListener("load",Na),La.addEventListener("error",Na),Pa?Pa.parentNode.insertBefore(La,Pa.nextSibling):(os=os.nodeType===9?os.head:os,os.insertBefore(La,os.firstChild)),cs.state.loading|=4}}var vh={$$typeof:Va,Provider:null,Consumer:null,_currentValue:jl,_currentValue2:jl,_threadCount:0};function A0(os,cs,Xr,Na,La,Pa,za,Za,Xa){this.tag=1,this.containerInfo=os,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=uc(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=uc(0),this.hiddenUpdates=uc(null),this.identifierPrefix=Na,this.onUncaughtError=La,this.onCaughtError=Pa,this.onRecoverableError=za,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=Xa,this.incompleteTransitions=new Map}function eb(os,cs,Xr,Na,La,Pa,za,Za,Xa,xl,wl,Cl){return os=new A0(os,cs,Xr,za,Xa,xl,wl,Cl,Za),cs=1,Pa===!0&&(cs|=24),Pa=Rc(3,null,null,cs),os.current=Pa,Pa.stateNode=os,cs=Of(),cs.refCount++,os.pooledCache=cs,cs.refCount++,Pa.memoizedState={element:Na,isDehydrated:Xr,cache:cs},Pf(Pa),os}function tb(os){return os?(os=Vm,os):Vm}function sb(os,cs,Xr,Na,La,Pa){La=tb(La),Na.context===null?Na.context=La:Na.pendingContext=La,Na=Ld(cs),Na.payload={element:Xr},Pa=Pa===void 0?null:Pa,Pa!==null&&(Na.callback=Pa),Xr=Dd(os,Na,cs),Xr!==null&&(vc(Xr,os,cs),Wx(Xr,os,cs))}function nb(os,cs){if(os=os.memoizedState,os!==null&&os.dehydrated!==null){var Xr=os.retryLane;os.retryLane=Xr!==0&&Xr<cs?Xr:cs}}function ej(os,cs){nb(os,cs),(os=os.alternate)&&nb(os,cs)}function rb(os){if(os.tag===13||os.tag===31){var cs=mm(os,67108864);cs!==null&&vc(cs,os,67108864),ej(os,67108864)}}function ib(os){if(os.tag===13||os.tag===31){var cs=Cc();cs=Vp(cs);var Xr=mm(os,cs);Xr!==null&&vc(Xr,os,cs),ej(os,cs)}}var Bp=!0;function O0(os,cs,Xr,Na){var La=ul.T;ul.T=null;var Pa=hl.p;try{hl.p=2,tj(os,cs,Xr,Na)}finally{hl.p=Pa,ul.T=La}}function I0(os,cs,Xr,Na){var La=ul.T;ul.T=null;var Pa=hl.p;try{hl.p=8,tj(os,cs,Xr,Na)}finally{hl.p=Pa,ul.T=La}}function tj(os,cs,Xr,Na){if(Bp){var La=sj(Na);if(La===null)Fg(os,cs,Na,Up,Xr),ob(os,Na);else if(D0(La,os,cs,Xr,Na))Na.stopPropagation();else if(ob(os,Na),cs&4&&-1<L0.indexOf(os)){for(;La!==null;){var Pa=$m(La);if(Pa!==null)switch(Pa.tag){case 3:if(Pa=Pa.stateNode,Pa.current.memoizedState.isDehydrated){var za=ac(Pa.pendingLanes);if(za!==0){var Za=Pa;for(Za.pendingLanes|=2,Za.entangledLanes|=2;za;){var Xa=1<<31-Rl(za);Za.entanglements[1]|=Xa,za&=~Xa}Xc(Pa),(vu&6)===0&&(bp=bu()+500,xh(0))}}break;case 31:case 13:Za=mm(Pa,2),Za!==null&&vc(Za,Pa,2),_p(),ej(Pa,2)}if(Pa=sj(Na),Pa===null&&Fg(os,cs,Na,Up,Xr),Pa===La)break;La=Pa}La!==null&&Na.stopPropagation()}else Fg(os,cs,Na,null,Xr)}}function sj(os){return os=nf(os),nj(os)}var Up=null;function nj(os){if(Up=null,os=Pm(os),os!==null){var cs=Qr(os);if(cs===null)os=null;else{var Xr=cs.tag;if(Xr===13){if(os=ja(cs),os!==null)return os;os=null}else if(Xr===31){if(os=Ca(cs),os!==null)return os;os=null}else if(Xr===3){if(cs.stateNode.current.memoizedState.isDehydrated)return cs.tag===3?cs.stateNode.containerInfo:null;os=null}else cs!==os&&(os=null)}}return Up=os,null}function ab(os){switch(os){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Ua()){case ll:return 2;case yl:return 8;case Dl:case kl:return 32;case Ga:return 268435456;default:return 32}default:return 32}}var rj=!1,Gd=null,Zd=null,Vd=null,yh=new Map,Eh=new Map,Qd=[],L0="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function ob(os,cs){switch(os){case"focusin":case"focusout":Gd=null;break;case"dragenter":case"dragleave":Zd=null;break;case"mouseover":case"mouseout":Vd=null;break;case"pointerover":case"pointerout":yh.delete(cs.pointerId);break;case"gotpointercapture":case"lostpointercapture":Eh.delete(cs.pointerId)}}function bh(os,cs,Xr,Na,La,Pa){return os===null||os.nativeEvent!==Pa?(os={blockedOn:cs,domEventName:Xr,eventSystemFlags:Na,nativeEvent:Pa,targetContainers:[La]},cs!==null&&(cs=$m(cs),cs!==null&&rb(cs)),os):(os.eventSystemFlags|=Na,cs=os.targetContainers,La!==null&&cs.indexOf(La)===-1&&cs.push(La),os)}function D0(os,cs,Xr,Na,La){switch(cs){case"focusin":return Gd=bh(Gd,os,cs,Xr,Na,La),!0;case"dragenter":return Zd=bh(Zd,os,cs,Xr,Na,La),!0;case"mouseover":return Vd=bh(Vd,os,cs,Xr,Na,La),!0;case"pointerover":var Pa=La.pointerId;return yh.set(Pa,bh(yh.get(Pa)||null,os,cs,Xr,Na,La)),!0;case"gotpointercapture":return Pa=La.pointerId,Eh.set(Pa,bh(Eh.get(Pa)||null,os,cs,Xr,Na,La)),!0}return!1}function lb(os){var cs=Pm(os.target);if(cs!==null){var Xr=Qr(cs);if(Xr!==null){if(cs=Xr.tag,cs===13){if(cs=ja(Xr),cs!==null){os.blockedOn=cs,bj(os.priority,function(){ib(Xr)});return}}else if(cs===31){if(cs=Ca(Xr),cs!==null){os.blockedOn=cs,bj(os.priority,function(){ib(Xr)});return}}else if(cs===3&&Xr.stateNode.current.memoizedState.isDehydrated){os.blockedOn=Xr.tag===3?Xr.stateNode.containerInfo:null;return}}}os.blockedOn=null}function Fp(os){if(os.blockedOn!==null)return!1;for(var cs=os.targetContainers;0<cs.length;){var Xr=sj(os.nativeEvent);if(Xr===null){Xr=os.nativeEvent;var Na=new Xr.constructor(Xr.type,Xr);sf=Na,Xr.target.dispatchEvent(Na),sf=null}else return cs=$m(Xr),cs!==null&&rb(cs),os.blockedOn=Xr,!1;cs.shift()}return!0}function ub(os,cs,Xr){Fp(os)&&Xr.delete(cs)}function P0(){rj=!1,Gd!==null&&Fp(Gd)&&(Gd=null),Zd!==null&&Fp(Zd)&&(Zd=null),Vd!==null&&Fp(Vd)&&(Vd=null),yh.forEach(ub),Eh.forEach(ub)}function qp(os,cs){os.blockedOn===cs&&(os.blockedOn=null,rj||(rj=!0,es.unstable_scheduleCallback(es.unstable_NormalPriority,P0)))}var zp=null;function cb(os){zp!==os&&(zp=os,es.unstable_scheduleCallback(es.unstable_NormalPriority,function(){zp===os&&(zp=null);for(var cs=0;cs<os.length;cs+=3){var Xr=os[cs],Na=os[cs+1],La=os[cs+2];if(typeof Na!="function"){if(nj(Na||Xr)===null)continue;break}var Pa=$m(Xr);Pa!==null&&(os.splice(cs,3),cs-=3,sg(Pa,{pending:!0,data:La,method:Xr.method,action:Na},Na,La))}}))}function jx(os){function cs(Xa){return qp(Xa,os)}Gd!==null&&qp(Gd,os),Zd!==null&&qp(Zd,os),Vd!==null&&qp(Vd,os),yh.forEach(cs),Eh.forEach(cs);for(var Xr=0;Xr<Qd.length;Xr++){var Na=Qd[Xr];Na.blockedOn===os&&(Na.blockedOn=null)}for(;0<Qd.length&&(Xr=Qd[0],Xr.blockedOn===null);)lb(Xr),Xr.blockedOn===null&&Qd.shift();if(Xr=(os.ownerDocument||os).$$reactFormReplay,Xr!=null)for(Na=0;Na<Xr.length;Na+=3){var La=Xr[Na],Pa=Xr[Na+1],za=La[xc]||null;if(typeof Pa=="function")za||cb(Xr);else if(za){var Za=null;if(Pa&&Pa.hasAttribute("formAction")){if(La=Pa,za=Pa[xc]||null)Za=za.formAction;else if(nj(La)!==null)continue}else Za=za.action;typeof Za=="function"?Xr[Na+1]=Za:(Xr.splice(Na,3),Na-=3),cb(Xr)}}}function db(){function os(Pa){Pa.canIntercept&&Pa.info==="react-transition"&&Pa.intercept({handler:function(){return new Promise(function(za){return La=za})},focusReset:"manual",scroll:"manual"})}function cs(){La!==null&&(La(),La=null),Na||setTimeout(Xr,20)}function Xr(){if(!Na&&!navigation.transition){var Pa=navigation.currentEntry;Pa&&Pa.url!=null&&navigation.navigate(Pa.url,{state:Pa.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var Na=!1,La=null;return navigation.addEventListener("navigate",os),navigation.addEventListener("navigatesuccess",cs),navigation.addEventListener("navigateerror",cs),setTimeout(Xr,100),function(){Na=!0,navigation.removeEventListener("navigate",os),navigation.removeEventListener("navigatesuccess",cs),navigation.removeEventListener("navigateerror",cs),La!==null&&(La(),La=null)}}}function ij(os){this._internalRoot=os}Hp.prototype.render=ij.prototype.render=function(os){var cs=this._internalRoot;if(cs===null)throw Error(is(409));var Xr=cs.current,Na=Cc();sb(Xr,Na,os,cs,null,null)},Hp.prototype.unmount=ij.prototype.unmount=function(){var os=this._internalRoot;if(os!==null){this._internalRoot=null;var cs=os.containerInfo;sb(os.current,2,null,os,null,null),_p(),cs[Dm]=null}};function Hp(os){this._internalRoot=os}Hp.prototype.unstable_scheduleHydration=function(os){if(os){var cs=Ej();os={blockedOn:null,target:os,priority:cs};for(var Xr=0;Xr<Qd.length&&cs!==0&&cs<Qd[Xr].priority;Xr++);Qd.splice(Xr,0,os),Xr===0&&lb(os)}};var mb=$.version;if(mb!=="19.2.4")throw Error(is(527,mb,"19.2.4"));hl.findDOMNode=function(os){var cs=os._reactInternals;if(cs===void 0)throw typeof os.render=="function"?Error(is(188)):(os=Object.keys(os).join(","),Error(is(268,os)));return os=Oa(cs),os=os!==null?Ia(os):null,os=os===null?null:os.stateNode,os};var $0={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:ul,reconcilerVersion:"19.2.4"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Kp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Kp.isDisabled&&Kp.supportsFiber)try{bl=Kp.inject($0),_l=Kp}catch{}}return reactDomClient_production.createRoot=function(os,cs){if(!Kr(os))throw Error(is(299));var Xr=!1,Na="",La=vy,Pa=yy,za=Ey;return cs!=null&&(cs.unstable_strictMode===!0&&(Xr=!0),cs.identifierPrefix!==void 0&&(Na=cs.identifierPrefix),cs.onUncaughtError!==void 0&&(La=cs.onUncaughtError),cs.onCaughtError!==void 0&&(Pa=cs.onCaughtError),cs.onRecoverableError!==void 0&&(za=cs.onRecoverableError)),cs=eb(os,1,!1,null,null,Xr,Na,null,La,Pa,za,db),os[Dm]=cs.current,Ug(os),new ij(cs)},reactDomClient_production.hydrateRoot=function(os,cs,Xr){if(!Kr(os))throw Error(is(299));var Na=!1,La="",Pa=vy,za=yy,Za=Ey,Xa=null;return Xr!=null&&(Xr.unstable_strictMode===!0&&(Na=!0),Xr.identifierPrefix!==void 0&&(La=Xr.identifierPrefix),Xr.onUncaughtError!==void 0&&(Pa=Xr.onUncaughtError),Xr.onCaughtError!==void 0&&(za=Xr.onCaughtError),Xr.onRecoverableError!==void 0&&(Za=Xr.onRecoverableError),Xr.formState!==void 0&&(Xa=Xr.formState)),cs=eb(os,1,!0,cs,Xr??null,Na,La,Xa,Pa,za,Za,db),cs.context=tb(null),Xr=cs.current,Na=Cc(),Na=Vp(Na),La=Ld(Na),La.callback=null,Dd(Xr,La,Na),Xr=Na,cs.current.lanes=Xr,Ju(cs,Xr),Xc(cs),os[Dm]=cs.current,Ug(os),new Hp(cs)},reactDomClient_production.version="19.2.4",reactDomClient_production}var hasRequiredClient;function requireClient(){if(hasRequiredClient)return client.exports;hasRequiredClient=1;function es(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(es)}catch($){console.error($)}}return es(),client.exports=requireReactDomClient_production(),client.exports}var clientExports=requireClient(),Subscribable=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(es){return this.listeners.add(es),this.onSubscribe(),()=>{this.listeners.delete(es),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},defaultTimeoutProvider={setTimeout:(es,$)=>setTimeout(es,$),clearTimeout:es=>clearTimeout(es),setInterval:(es,$)=>setInterval(es,$),clearInterval:es=>clearInterval(es)},Jd,yj,hb,TimeoutManager=(hb=class{constructor(){Hl(this,Jd,defaultTimeoutProvider);Hl(this,yj,!1)}setTimeoutProvider(es){Pl(this,Jd,es)}setTimeout(es,$){return Ja(this,Jd).setTimeout(es,$)}clearTimeout(es){Ja(this,Jd).clearTimeout(es)}setInterval(es,$){return Ja(this,Jd).setInterval(es,$)}clearInterval(es){Ja(this,Jd).clearInterval(es)}},Jd=new WeakMap,yj=new WeakMap,hb),timeoutManager=new TimeoutManager;function systemSetTimeoutZero(es){setTimeout(es,0)}var isServer=typeof window>"u"||"Deno"in globalThis;function noop$2(){}function functionalUpdate(es,$){return typeof es=="function"?es($):es}function isValidTimeout(es){return typeof es=="number"&&es>=0&&es!==1/0}function timeUntilStale(es,$){return Math.max(es+($||0)-Date.now(),0)}function resolveStaleTime(es,$){return typeof es=="function"?es($):es}function resolveEnabled(es,$){return typeof es=="function"?es($):es}function matchQuery(es,$){const{type:ts="all",exact:is,fetchStatus:Kr,predicate:Qr,queryKey:ja,stale:Ca}=es;if(ja){if(is){if($.queryHash!==hashQueryKeyByOptions(ja,$.options))return!1}else if(!partialMatchKey($.queryKey,ja))return!1}if(ts!=="all"){const Aa=$.isActive();if(ts==="active"&&!Aa||ts==="inactive"&&Aa)return!1}return!(typeof Ca=="boolean"&&$.isStale()!==Ca||Kr&&Kr!==$.state.fetchStatus||Qr&&!Qr($))}function matchMutation(es,$){const{exact:ts,status:is,predicate:Kr,mutationKey:Qr}=es;if(Qr){if(!$.options.mutationKey)return!1;if(ts){if(hashKey($.options.mutationKey)!==hashKey(Qr))return!1}else if(!partialMatchKey($.options.mutationKey,Qr))return!1}return!(is&&$.state.status!==is||Kr&&!Kr($))}function hashQueryKeyByOptions(es,$){return(($==null?void 0:$.queryKeyHashFn)||hashKey)(es)}function hashKey(es){return JSON.stringify(es,($,ts)=>isPlainObject$1(ts)?Object.keys(ts).sort().reduce((is,Kr)=>(is[Kr]=ts[Kr],is),{}):ts)}function partialMatchKey(es,$){return es===$?!0:typeof es!=typeof $?!1:es&&$&&typeof es=="object"&&typeof $=="object"?Object.keys($).every(ts=>partialMatchKey(es[ts],$[ts])):!1}var hasOwn=Object.prototype.hasOwnProperty;function replaceEqualDeep(es,$,ts=0){if(es===$)return es;if(ts>500)return $;const is=isPlainArray(es)&&isPlainArray($);if(!is&&!(isPlainObject$1(es)&&isPlainObject$1($)))return $;const Qr=(is?es:Object.keys(es)).length,ja=is?$:Object.keys($),Ca=ja.length,Aa=is?new Array(Ca):{};let Oa=0;for(let Ia=0;Ia<Ca;Ia++){const Da=is?Ia:ja[Ia],Ba=es[Da],Ma=$[Da];if(Ba===Ma){Aa[Da]=Ba,(is?Ia<Qr:hasOwn.call(es,Da))&&Oa++;continue}if(Ba===null||Ma===null||typeof Ba!="object"||typeof Ma!="object"){Aa[Da]=Ma;continue}const Fa=replaceEqualDeep(Ba,Ma,ts+1);Aa[Da]=Fa,Fa===Ba&&Oa++}return Qr===Ca&&Oa===Qr?es:Aa}function shallowEqualObjects(es,$){if(!$||Object.keys(es).length!==Object.keys($).length)return!1;for(const ts in es)if(es[ts]!==$[ts])return!1;return!0}function isPlainArray(es){return Array.isArray(es)&&es.length===Object.keys(es).length}function isPlainObject$1(es){if(!hasObjectPrototype(es))return!1;const $=es.constructor;if($===void 0)return!0;const ts=$.prototype;return!(!hasObjectPrototype(ts)||!ts.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(es)!==Object.prototype)}function hasObjectPrototype(es){return Object.prototype.toString.call(es)==="[object Object]"}function sleep$1(es){return new Promise($=>{timeoutManager.setTimeout($,es)})}function replaceData(es,$,ts){return typeof ts.structuralSharing=="function"?ts.structuralSharing(es,$):ts.structuralSharing!==!1?replaceEqualDeep(es,$):$}function addToEnd(es,$,ts=0){const is=[...es,$];return ts&&is.length>ts?is.slice(1):is}function addToStart(es,$,ts=0){const is=[$,...es];return ts&&is.length>ts?is.slice(0,-1):is}var skipToken=Symbol();function ensureQueryFn(es,$){return!es.queryFn&&($!=null&&$.initialPromise)?()=>$.initialPromise:!es.queryFn||es.queryFn===skipToken?()=>Promise.reject(new Error(`Missing queryFn: '${es.queryHash}'`)):es.queryFn}function shouldThrowError(es,$){return typeof es=="function"?es(...$):!!es}function addConsumeAwareSignal(es,$,ts){let is=!1,Kr;return Object.defineProperty(es,"signal",{enumerable:!0,get:()=>(Kr??(Kr=$()),is||(is=!0,Kr.aborted?ts():Kr.addEventListener("abort",ts,{once:!0})),Kr)}),es}var wm,Xd,vx,pb,FocusManager=(pb=class extends Subscribable{constructor(){super();Hl(this,wm);Hl(this,Xd);Hl(this,vx);Pl(this,vx,$=>{if(!isServer&&window.addEventListener){const ts=()=>$();return window.addEventListener("visibilitychange",ts,!1),()=>{window.removeEventListener("visibilitychange",ts)}}})}onSubscribe(){Ja(this,Xd)||this.setEventListener(Ja(this,vx))}onUnsubscribe(){var $;this.hasListeners()||(($=Ja(this,Xd))==null||$.call(this),Pl(this,Xd,void 0))}setEventListener($){var ts;Pl(this,vx,$),(ts=Ja(this,Xd))==null||ts.call(this),Pl(this,Xd,$(is=>{typeof is=="boolean"?this.setFocused(is):this.onFocus()}))}setFocused($){Ja(this,wm)!==$&&(Pl(this,wm,$),this.onFocus())}onFocus(){const $=this.isFocused();this.listeners.forEach(ts=>{ts($)})}isFocused(){var $;return typeof Ja(this,wm)=="boolean"?Ja(this,wm):(($=globalThis.document)==null?void 0:$.visibilityState)!=="hidden"}},wm=new WeakMap,Xd=new WeakMap,vx=new WeakMap,pb),focusManager=new FocusManager;function pendingThenable(){let es,$;const ts=new Promise((Kr,Qr)=>{es=Kr,$=Qr});ts.status="pending",ts.catch(()=>{});function is(Kr){Object.assign(ts,Kr),delete ts.resolve,delete ts.reject}return ts.resolve=Kr=>{is({status:"fulfilled",value:Kr}),es(Kr)},ts.reject=Kr=>{is({status:"rejected",reason:Kr}),$(Kr)},ts}var defaultScheduler=systemSetTimeoutZero;function createNotifyManager(){let es=[],$=0,ts=Ca=>{Ca()},is=Ca=>{Ca()},Kr=defaultScheduler;const Qr=Ca=>{$?es.push(Ca):Kr(()=>{ts(Ca)})},ja=()=>{const Ca=es;es=[],Ca.length&&Kr(()=>{is(()=>{Ca.forEach(Aa=>{ts(Aa)})})})};return{batch:Ca=>{let Aa;$++;try{Aa=Ca()}finally{$--,$||ja()}return Aa},batchCalls:Ca=>(...Aa)=>{Qr(()=>{Ca(...Aa)})},schedule:Qr,setNotifyFunction:Ca=>{ts=Ca},setBatchNotifyFunction:Ca=>{is=Ca},setScheduler:Ca=>{Kr=Ca}}}var notifyManager=createNotifyManager(),yx,em,Ex,fb,OnlineManager=(fb=class extends Subscribable{constructor(){super();Hl(this,yx,!0);Hl(this,em);Hl(this,Ex);Pl(this,Ex,$=>{if(!isServer&&window.addEventListener){const ts=()=>$(!0),is=()=>$(!1);return window.addEventListener("online",ts,!1),window.addEventListener("offline",is,!1),()=>{window.removeEventListener("online",ts),window.removeEventListener("offline",is)}}})}onSubscribe(){Ja(this,em)||this.setEventListener(Ja(this,Ex))}onUnsubscribe(){var $;this.hasListeners()||(($=Ja(this,em))==null||$.call(this),Pl(this,em,void 0))}setEventListener($){var ts;Pl(this,Ex,$),(ts=Ja(this,em))==null||ts.call(this),Pl(this,em,$(this.setOnline.bind(this)))}setOnline($){Ja(this,yx)!==$&&(Pl(this,yx,$),this.listeners.forEach(is=>{is($)}))}isOnline(){return Ja(this,yx)}},yx=new WeakMap,em=new WeakMap,Ex=new WeakMap,fb),onlineManager=new OnlineManager;function defaultRetryDelay(es){return Math.min(1e3*2**es,3e4)}function canFetch(es){return(es??"online")==="online"?onlineManager.isOnline():!0}var CancelledError=class extends Error{constructor(es){super("CancelledError"),this.revert=es==null?void 0:es.revert,this.silent=es==null?void 0:es.silent}};function createRetryer(es){let $=!1,ts=0,is;const Kr=pendingThenable(),Qr=()=>Kr.status!=="pending",ja=qa=>{var Ha;if(!Qr()){const Ka=new CancelledError(qa);Ba(Ka),(Ha=es.onCancel)==null||Ha.call(es,Ka)}},Ca=()=>{$=!0},Aa=()=>{$=!1},Oa=()=>focusManager.isFocused()&&(es.networkMode==="always"||onlineManager.isOnline())&&es.canRun(),Ia=()=>canFetch(es.networkMode)&&es.canRun(),Da=qa=>{Qr()||(is==null||is(),Kr.resolve(qa))},Ba=qa=>{Qr()||(is==null||is(),Kr.reject(qa))},Ma=()=>new Promise(qa=>{var Ha;is=Ka=>{(Qr()||Oa())&&qa(Ka)},(Ha=es.onPause)==null||Ha.call(es)}).then(()=>{var qa;is=void 0,Qr()||(qa=es.onContinue)==null||qa.call(es)}),Fa=()=>{if(Qr())return;let qa;const Ha=ts===0?es.initialPromise:void 0;try{qa=Ha??es.fn()}catch(Ka){qa=Promise.reject(Ka)}Promise.resolve(qa).then(Da).catch(Ka=>{var el;if(Qr())return;const Qa=es.retry??(isServer?0:3),Va=es.retryDelay??defaultRetryDelay,Ya=typeof Va=="function"?Va(ts,Ka):Va,Wa=Qa===!0||typeof Qa=="number"&&ts<Qa||typeof Qa=="function"&&Qa(ts,Ka);if($||!Wa){Ba(Ka);return}ts++,(el=es.onFail)==null||el.call(es,ts,Ka),sleep$1(Ya).then(()=>Oa()?void 0:Ma()).then(()=>{$?Ba(Ka):Fa()})})};return{promise:Kr,status:()=>Kr.status,cancel:ja,continue:()=>(is==null||is(),Kr),cancelRetry:Ca,continueRetry:Aa,canStart:Ia,start:()=>(Ia()?Fa():Ma().then(Fa),Kr)}}var Nm,gb,Removable=(gb=class{constructor(){Hl(this,Nm)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),isValidTimeout(this.gcTime)&&Pl(this,Nm,timeoutManager.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(es){this.gcTime=Math.max(this.gcTime||0,es??(isServer?1/0:300*1e3))}clearGcTimeout(){Ja(this,Nm)&&(timeoutManager.clearTimeout(Ja(this,Nm)),Pl(this,Nm,void 0))}},Nm=new WeakMap,gb),Sm,bx,Uc,Cm,Wu,_h,Tm,Gc,Ed,jb,Query=(jb=class extends Removable{constructor($){super();Hl(this,Gc);Hl(this,Sm);Hl(this,bx);Hl(this,Uc);Hl(this,Cm);Hl(this,Wu);Hl(this,_h);Hl(this,Tm);Pl(this,Tm,!1),Pl(this,_h,$.defaultOptions),this.setOptions($.options),this.observers=[],Pl(this,Cm,$.client),Pl(this,Uc,Ja(this,Cm).getQueryCache()),this.queryKey=$.queryKey,this.queryHash=$.queryHash,Pl(this,Sm,getDefaultState$1(this.options)),this.state=$.state??Ja(this,Sm),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var $;return($=Ja(this,Wu))==null?void 0:$.promise}setOptions($){if(this.options={...Ja(this,_h),...$},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const ts=getDefaultState$1(this.options);ts.data!==void 0&&(this.setState(successState(ts.data,ts.dataUpdatedAt)),Pl(this,Sm,ts))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&Ja(this,Uc).remove(this)}setData($,ts){const is=replaceData(this.state.data,$,this.options);return Xl(this,Gc,Ed).call(this,{data:is,type:"success",dataUpdatedAt:ts==null?void 0:ts.updatedAt,manual:ts==null?void 0:ts.manual}),is}setState($,ts){Xl(this,Gc,Ed).call(this,{type:"setState",state:$,setStateOptions:ts})}cancel($){var is,Kr;const ts=(is=Ja(this,Wu))==null?void 0:is.promise;return(Kr=Ja(this,Wu))==null||Kr.cancel($),ts?ts.then(noop$2).catch(noop$2):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(Ja(this,Sm))}isActive(){return this.observers.some($=>resolveEnabled($.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===skipToken||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some($=>resolveStaleTime($.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some($=>$.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime($=0){return this.state.data===void 0?!0:$==="static"?!1:this.state.isInvalidated?!0:!timeUntilStale(this.state.dataUpdatedAt,$)}onFocus(){var ts;const $=this.observers.find(is=>is.shouldFetchOnWindowFocus());$==null||$.refetch({cancelRefetch:!1}),(ts=Ja(this,Wu))==null||ts.continue()}onOnline(){var ts;const $=this.observers.find(is=>is.shouldFetchOnReconnect());$==null||$.refetch({cancelRefetch:!1}),(ts=Ja(this,Wu))==null||ts.continue()}addObserver($){this.observers.includes($)||(this.observers.push($),this.clearGcTimeout(),Ja(this,Uc).notify({type:"observerAdded",query:this,observer:$}))}removeObserver($){this.observers.includes($)&&(this.observers=this.observers.filter(ts=>ts!==$),this.observers.length||(Ja(this,Wu)&&(Ja(this,Tm)?Ja(this,Wu).cancel({revert:!0}):Ja(this,Wu).cancelRetry()),this.scheduleGc()),Ja(this,Uc).notify({type:"observerRemoved",query:this,observer:$}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Xl(this,Gc,Ed).call(this,{type:"invalidate"})}async fetch($,ts){var Aa,Oa,Ia,Da,Ba,Ma,Fa,qa,Ha,Ka,Qa,Va;if(this.state.fetchStatus!=="idle"&&((Aa=Ja(this,Wu))==null?void 0:Aa.status())!=="rejected"){if(this.state.data!==void 0&&(ts!=null&&ts.cancelRefetch))this.cancel({silent:!0});else if(Ja(this,Wu))return Ja(this,Wu).continueRetry(),Ja(this,Wu).promise}if($&&this.setOptions($),!this.options.queryFn){const Ya=this.observers.find(Wa=>Wa.options.queryFn);Ya&&this.setOptions(Ya.options)}const is=new AbortController,Kr=Ya=>{Object.defineProperty(Ya,"signal",{enumerable:!0,get:()=>(Pl(this,Tm,!0),is.signal)})},Qr=()=>{const Ya=ensureQueryFn(this.options,ts),el=(()=>{const tl={client:Ja(this,Cm),queryKey:this.queryKey,meta:this.meta};return Kr(tl),tl})();return Pl(this,Tm,!1),this.options.persister?this.options.persister(Ya,el,this):Ya(el)},Ca=(()=>{const Ya={fetchOptions:ts,options:this.options,queryKey:this.queryKey,client:Ja(this,Cm),state:this.state,fetchFn:Qr};return Kr(Ya),Ya})();(Oa=this.options.behavior)==null||Oa.onFetch(Ca,this),Pl(this,bx,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((Ia=Ca.fetchOptions)==null?void 0:Ia.meta))&&Xl(this,Gc,Ed).call(this,{type:"fetch",meta:(Da=Ca.fetchOptions)==null?void 0:Da.meta}),Pl(this,Wu,createRetryer({initialPromise:ts==null?void 0:ts.initialPromise,fn:Ca.fetchFn,onCancel:Ya=>{Ya instanceof CancelledError&&Ya.revert&&this.setState({...Ja(this,bx),fetchStatus:"idle"}),is.abort()},onFail:(Ya,Wa)=>{Xl(this,Gc,Ed).call(this,{type:"failed",failureCount:Ya,error:Wa})},onPause:()=>{Xl(this,Gc,Ed).call(this,{type:"pause"})},onContinue:()=>{Xl(this,Gc,Ed).call(this,{type:"continue"})},retry:Ca.options.retry,retryDelay:Ca.options.retryDelay,networkMode:Ca.options.networkMode,canRun:()=>!0}));try{const Ya=await Ja(this,Wu).start();if(Ya===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(Ya),(Ma=(Ba=Ja(this,Uc).config).onSuccess)==null||Ma.call(Ba,Ya,this),(qa=(Fa=Ja(this,Uc).config).onSettled)==null||qa.call(Fa,Ya,this.state.error,this),Ya}catch(Ya){if(Ya instanceof CancelledError){if(Ya.silent)return Ja(this,Wu).promise;if(Ya.revert){if(this.state.data===void 0)throw Ya;return this.state.data}}throw Xl(this,Gc,Ed).call(this,{type:"error",error:Ya}),(Ka=(Ha=Ja(this,Uc).config).onError)==null||Ka.call(Ha,Ya,this),(Va=(Qa=Ja(this,Uc).config).onSettled)==null||Va.call(Qa,this.state.data,Ya,this),Ya}finally{this.scheduleGc()}}},Sm=new WeakMap,bx=new WeakMap,Uc=new WeakMap,Cm=new WeakMap,Wu=new WeakMap,_h=new WeakMap,Tm=new WeakMap,Gc=new WeakSet,Ed=function($){const ts=is=>{switch($.type){case"failed":return{...is,fetchFailureCount:$.failureCount,fetchFailureReason:$.error};case"pause":return{...is,fetchStatus:"paused"};case"continue":return{...is,fetchStatus:"fetching"};case"fetch":return{...is,...fetchState(is.data,this.options),fetchMeta:$.meta??null};case"success":const Kr={...is,...successState($.data,$.dataUpdatedAt),dataUpdateCount:is.dataUpdateCount+1,...!$.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return Pl(this,bx,$.manual?Kr:void 0),Kr;case"error":const Qr=$.error;return{...is,error:Qr,errorUpdateCount:is.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:is.fetchFailureCount+1,fetchFailureReason:Qr,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...is,isInvalidated:!0};case"setState":return{...is,...$.state}}};this.state=ts(this.state),notifyManager.batch(()=>{this.observers.forEach(is=>{is.onQueryUpdate()}),Ja(this,Uc).notify({query:this,type:"updated",action:$})})},jb);function fetchState(es,$){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:canFetch($.networkMode)?"fetching":"paused",...es===void 0&&{error:null,status:"pending"}}}function successState(es,$){return{data:es,dataUpdatedAt:$??Date.now(),error:null,isInvalidated:!1,status:"success"}}function getDefaultState$1(es){const $=typeof es.initialData=="function"?es.initialData():es.initialData,ts=$!==void 0,is=ts?typeof es.initialDataUpdatedAt=="function"?es.initialDataUpdatedAt():es.initialDataUpdatedAt:0;return{data:$,dataUpdateCount:0,dataUpdatedAt:ts?is??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:ts?"success":"pending",fetchStatus:"idle"}}var yc,pu,wh,dc,km,Rx,bd,tm,Nh,_x,wx,Am,Om,sm,Nx,_u,Rh,oj,lj,uj,cj,dj,mj,xj,Nb,vb,QueryObserver=(vb=class extends Subscribable{constructor($,ts){super();Hl(this,_u);Hl(this,yc);Hl(this,pu);Hl(this,wh);Hl(this,dc);Hl(this,km);Hl(this,Rx);Hl(this,bd);Hl(this,tm);Hl(this,Nh);Hl(this,_x);Hl(this,wx);Hl(this,Am);Hl(this,Om);Hl(this,sm);Hl(this,Nx,new Set);this.options=ts,Pl(this,yc,$),Pl(this,tm,null),Pl(this,bd,pendingThenable()),this.bindMethods(),this.setOptions(ts)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(Ja(this,pu).addObserver(this),shouldFetchOnMount(Ja(this,pu),this.options)?Xl(this,_u,Rh).call(this):this.updateResult(),Xl(this,_u,cj).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return shouldFetchOn(Ja(this,pu),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return shouldFetchOn(Ja(this,pu),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Xl(this,_u,dj).call(this),Xl(this,_u,mj).call(this),Ja(this,pu).removeObserver(this)}setOptions($){const ts=this.options,is=Ja(this,pu);if(this.options=Ja(this,yc).defaultQueryOptions($),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof resolveEnabled(this.options.enabled,Ja(this,pu))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");Xl(this,_u,xj).call(this),Ja(this,pu).setOptions(this.options),ts._defaulted&&!shallowEqualObjects(this.options,ts)&&Ja(this,yc).getQueryCache().notify({type:"observerOptionsUpdated",query:Ja(this,pu),observer:this});const Kr=this.hasListeners();Kr&&shouldFetchOptionally(Ja(this,pu),is,this.options,ts)&&Xl(this,_u,Rh).call(this),this.updateResult(),Kr&&(Ja(this,pu)!==is||resolveEnabled(this.options.enabled,Ja(this,pu))!==resolveEnabled(ts.enabled,Ja(this,pu))||resolveStaleTime(this.options.staleTime,Ja(this,pu))!==resolveStaleTime(ts.staleTime,Ja(this,pu)))&&Xl(this,_u,oj).call(this);const Qr=Xl(this,_u,lj).call(this);Kr&&(Ja(this,pu)!==is||resolveEnabled(this.options.enabled,Ja(this,pu))!==resolveEnabled(ts.enabled,Ja(this,pu))||Qr!==Ja(this,sm))&&Xl(this,_u,uj).call(this,Qr)}getOptimisticResult($){const ts=Ja(this,yc).getQueryCache().build(Ja(this,yc),$),is=this.createResult(ts,$);return shouldAssignObserverCurrentProperties(this,is)&&(Pl(this,dc,is),Pl(this,Rx,this.options),Pl(this,km,Ja(this,pu).state)),is}getCurrentResult(){return Ja(this,dc)}trackResult($,ts){return new Proxy($,{get:(is,Kr)=>(this.trackProp(Kr),ts==null||ts(Kr),Kr==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&Ja(this,bd).status==="pending"&&Ja(this,bd).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(is,Kr))})}trackProp($){Ja(this,Nx).add($)}getCurrentQuery(){return Ja(this,pu)}refetch({...$}={}){return this.fetch({...$})}fetchOptimistic($){const ts=Ja(this,yc).defaultQueryOptions($),is=Ja(this,yc).getQueryCache().build(Ja(this,yc),ts);return is.fetch().then(()=>this.createResult(is,ts))}fetch($){return Xl(this,_u,Rh).call(this,{...$,cancelRefetch:$.cancelRefetch??!0}).then(()=>(this.updateResult(),Ja(this,dc)))}createResult($,ts){var cl;const is=Ja(this,pu),Kr=this.options,Qr=Ja(this,dc),ja=Ja(this,km),Ca=Ja(this,Rx),Oa=$!==is?$.state:Ja(this,wh),{state:Ia}=$;let Da={...Ia},Ba=!1,Ma;if(ts._optimisticResults){const dl=this.hasListeners(),fl=!dl&&shouldFetchOnMount($,ts),nl=dl&&shouldFetchOptionally($,is,ts,Kr);(fl||nl)&&(Da={...Da,...fetchState(Ia.data,$.options)}),ts._optimisticResults==="isRestoring"&&(Da.fetchStatus="idle")}let{error:Fa,errorUpdatedAt:qa,status:Ha}=Da;Ma=Da.data;let Ka=!1;if(ts.placeholderData!==void 0&&Ma===void 0&&Ha==="pending"){let dl;Qr!=null&&Qr.isPlaceholderData&&ts.placeholderData===(Ca==null?void 0:Ca.placeholderData)?(dl=Qr.data,Ka=!0):dl=typeof ts.placeholderData=="function"?ts.placeholderData((cl=Ja(this,wx))==null?void 0:cl.state.data,Ja(this,wx)):ts.placeholderData,dl!==void 0&&(Ha="success",Ma=replaceData(Qr==null?void 0:Qr.data,dl,ts),Ba=!0)}if(ts.select&&Ma!==void 0&&!Ka)if(Qr&&Ma===(ja==null?void 0:ja.data)&&ts.select===Ja(this,Nh))Ma=Ja(this,_x);else try{Pl(this,Nh,ts.select),Ma=ts.select(Ma),Ma=replaceData(Qr==null?void 0:Qr.data,Ma,ts),Pl(this,_x,Ma),Pl(this,tm,null)}catch(dl){Pl(this,tm,dl)}Ja(this,tm)&&(Fa=Ja(this,tm),Ma=Ja(this,_x),qa=Date.now(),Ha="error");const Qa=Da.fetchStatus==="fetching",Va=Ha==="pending",Ya=Ha==="error",Wa=Va&&Qa,el=Ma!==void 0,rl={status:Ha,fetchStatus:Da.fetchStatus,isPending:Va,isSuccess:Ha==="success",isError:Ya,isInitialLoading:Wa,isLoading:Wa,data:Ma,dataUpdatedAt:Da.dataUpdatedAt,error:Fa,errorUpdatedAt:qa,failureCount:Da.fetchFailureCount,failureReason:Da.fetchFailureReason,errorUpdateCount:Da.errorUpdateCount,isFetched:Da.dataUpdateCount>0||Da.errorUpdateCount>0,isFetchedAfterMount:Da.dataUpdateCount>Oa.dataUpdateCount||Da.errorUpdateCount>Oa.errorUpdateCount,isFetching:Qa,isRefetching:Qa&&!Va,isLoadingError:Ya&&!el,isPaused:Da.fetchStatus==="paused",isPlaceholderData:Ba,isRefetchError:Ya&&el,isStale:isStale($,ts),refetch:this.refetch,promise:Ja(this,bd),isEnabled:resolveEnabled(ts.enabled,$)!==!1};if(this.options.experimental_prefetchInRender){const dl=rl.data!==void 0,fl=rl.status==="error"&&!dl,nl=Tl=>{fl?Tl.reject(rl.error):dl&&Tl.resolve(rl.data)},ol=()=>{const Tl=Pl(this,bd,rl.promise=pendingThenable());nl(Tl)},pl=Ja(this,bd);switch(pl.status){case"pending":$.queryHash===is.queryHash&&nl(pl);break;case"fulfilled":(fl||rl.data!==pl.value)&&ol();break;case"rejected":(!fl||rl.error!==pl.reason)&&ol();break}}return rl}updateResult(){const $=Ja(this,dc),ts=this.createResult(Ja(this,pu),this.options);if(Pl(this,km,Ja(this,pu).state),Pl(this,Rx,this.options),Ja(this,km).data!==void 0&&Pl(this,wx,Ja(this,pu)),shallowEqualObjects(ts,$))return;Pl(this,dc,ts);const is=()=>{if(!$)return!0;const{notifyOnChangeProps:Kr}=this.options,Qr=typeof Kr=="function"?Kr():Kr;if(Qr==="all"||!Qr&&!Ja(this,Nx).size)return!0;const ja=new Set(Qr??Ja(this,Nx));return this.options.throwOnError&&ja.add("error"),Object.keys(Ja(this,dc)).some(Ca=>{const Aa=Ca;return Ja(this,dc)[Aa]!==$[Aa]&&ja.has(Aa)})};Xl(this,_u,Nb).call(this,{listeners:is()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Xl(this,_u,cj).call(this)}},yc=new WeakMap,pu=new WeakMap,wh=new WeakMap,dc=new WeakMap,km=new WeakMap,Rx=new WeakMap,bd=new WeakMap,tm=new WeakMap,Nh=new WeakMap,_x=new WeakMap,wx=new WeakMap,Am=new WeakMap,Om=new WeakMap,sm=new WeakMap,Nx=new WeakMap,_u=new WeakSet,Rh=function($){Xl(this,_u,xj).call(this);let ts=Ja(this,pu).fetch(this.options,$);return $!=null&&$.throwOnError||(ts=ts.catch(noop$2)),ts},oj=function(){Xl(this,_u,dj).call(this);const $=resolveStaleTime(this.options.staleTime,Ja(this,pu));if(isServer||Ja(this,dc).isStale||!isValidTimeout($))return;const is=timeUntilStale(Ja(this,dc).dataUpdatedAt,$)+1;Pl(this,Am,timeoutManager.setTimeout(()=>{Ja(this,dc).isStale||this.updateResult()},is))},lj=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(Ja(this,pu)):this.options.refetchInterval)??!1},uj=function($){Xl(this,_u,mj).call(this),Pl(this,sm,$),!(isServer||resolveEnabled(this.options.enabled,Ja(this,pu))===!1||!isValidTimeout(Ja(this,sm))||Ja(this,sm)===0)&&Pl(this,Om,timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||focusManager.isFocused())&&Xl(this,_u,Rh).call(this)},Ja(this,sm)))},cj=function(){Xl(this,_u,oj).call(this),Xl(this,_u,uj).call(this,Xl(this,_u,lj).call(this))},dj=function(){Ja(this,Am)&&(timeoutManager.clearTimeout(Ja(this,Am)),Pl(this,Am,void 0))},mj=function(){Ja(this,Om)&&(timeoutManager.clearInterval(Ja(this,Om)),Pl(this,Om,void 0))},xj=function(){const $=Ja(this,yc).getQueryCache().build(Ja(this,yc),this.options);if($===Ja(this,pu))return;const ts=Ja(this,pu);Pl(this,pu,$),Pl(this,wh,$.state),this.hasListeners()&&(ts==null||ts.removeObserver(this),$.addObserver(this))},Nb=function($){notifyManager.batch(()=>{$.listeners&&this.listeners.forEach(ts=>{ts(Ja(this,dc))}),Ja(this,yc).getQueryCache().notify({query:Ja(this,pu),type:"observerResultsUpdated"})})},vb);function shouldLoadOnMount(es,$){return resolveEnabled($.enabled,es)!==!1&&es.state.data===void 0&&!(es.state.status==="error"&&$.retryOnMount===!1)}function shouldFetchOnMount(es,$){return shouldLoadOnMount(es,$)||es.state.data!==void 0&&shouldFetchOn(es,$,$.refetchOnMount)}function shouldFetchOn(es,$,ts){if(resolveEnabled($.enabled,es)!==!1&&resolveStaleTime($.staleTime,es)!=="static"){const is=typeof ts=="function"?ts(es):ts;return is==="always"||is!==!1&&isStale(es,$)}return!1}function shouldFetchOptionally(es,$,ts,is){return(es!==$||resolveEnabled(is.enabled,es)===!1)&&(!ts.suspense||es.state.status!=="error")&&isStale(es,ts)}function isStale(es,$){return resolveEnabled($.enabled,es)!==!1&&es.isStaleByTime(resolveStaleTime($.staleTime,es))}function shouldAssignObserverCurrentProperties(es,$){return!shallowEqualObjects(es.getCurrentResult(),$)}function infiniteQueryBehavior(es){return{onFetch:($,ts)=>{var Ia,Da,Ba,Ma,Fa;const is=$.options,Kr=(Ba=(Da=(Ia=$.fetchOptions)==null?void 0:Ia.meta)==null?void 0:Da.fetchMore)==null?void 0:Ba.direction,Qr=((Ma=$.state.data)==null?void 0:Ma.pages)||[],ja=((Fa=$.state.data)==null?void 0:Fa.pageParams)||[];let Ca={pages:[],pageParams:[]},Aa=0;const Oa=async()=>{let qa=!1;const Ha=Va=>{addConsumeAwareSignal(Va,()=>$.signal,()=>qa=!0)},Ka=ensureQueryFn($.options,$.fetchOptions),Qa=async(Va,Ya,Wa)=>{if(qa)return Promise.reject();if(Ya==null&&Va.pages.length)return Promise.resolve(Va);const tl=(()=>{const fl={client:$.client,queryKey:$.queryKey,pageParam:Ya,direction:Wa?"backward":"forward",meta:$.options.meta};return Ha(fl),fl})(),rl=await Ka(tl),{maxPages:cl}=$.options,dl=Wa?addToStart:addToEnd;return{pages:dl(Va.pages,rl,cl),pageParams:dl(Va.pageParams,Ya,cl)}};if(Kr&&Qr.length){const Va=Kr==="backward",Ya=Va?getPreviousPageParam:getNextPageParam,Wa={pages:Qr,pageParams:ja},el=Ya(is,Wa);Ca=await Qa(Wa,el,Va)}else{const Va=es??Qr.length;do{const Ya=Aa===0?ja[0]??is.initialPageParam:getNextPageParam(is,Ca);if(Aa>0&&Ya==null)break;Ca=await Qa(Ca,Ya),Aa++}while(Aa<Va)}return Ca};$.options.persister?$.fetchFn=()=>{var qa,Ha;return(Ha=(qa=$.options).persister)==null?void 0:Ha.call(qa,Oa,{client:$.client,queryKey:$.queryKey,meta:$.options.meta,signal:$.signal},ts)}:$.fetchFn=Oa}}}function getNextPageParam(es,{pages:$,pageParams:ts}){const is=$.length-1;return $.length>0?es.getNextPageParam($[is],$,ts[is],ts):void 0}function getPreviousPageParam(es,{pages:$,pageParams:ts}){var is;return $.length>0?(is=es.getPreviousPageParam)==null?void 0:is.call(es,$[0],$,ts[0],ts):void 0}function hasNextPage(es,$){return $?getNextPageParam(es,$)!=null:!1}function hasPreviousPage(es,$){return!$||!es.getPreviousPageParam?!1:getPreviousPageParam(es,$)!=null}var InfiniteQueryObserver=class extends QueryObserver{constructor(es,$){super(es,$)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(es){super.setOptions({...es,behavior:infiniteQueryBehavior()})}getOptimisticResult(es){return es.behavior=infiniteQueryBehavior(),super.getOptimisticResult(es)}fetchNextPage(es){return this.fetch({...es,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(es){return this.fetch({...es,meta:{fetchMore:{direction:"backward"}}})}createResult(es,$){var Fa,qa;const{state:ts}=es,is=super.createResult(es,$),{isFetching:Kr,isRefetching:Qr,isError:ja,isRefetchError:Ca}=is,Aa=(qa=(Fa=ts.fetchMeta)==null?void 0:Fa.fetchMore)==null?void 0:qa.direction,Oa=ja&&Aa==="forward",Ia=Kr&&Aa==="forward",Da=ja&&Aa==="backward",Ba=Kr&&Aa==="backward";return{...is,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:hasNextPage($,ts.data),hasPreviousPage:hasPreviousPage($,ts.data),isFetchNextPageError:Oa,isFetchingNextPage:Ia,isFetchPreviousPageError:Da,isFetchingPreviousPage:Ba,isRefetchError:Ca&&!Oa&&!Da,isRefetching:Qr&&!Ia&&!Ba}}},Sh,ed,oc,Im,td,Wd,yb,Mutation=(yb=class extends Removable{constructor($){super();Hl(this,td);Hl(this,Sh);Hl(this,ed);Hl(this,oc);Hl(this,Im);Pl(this,Sh,$.client),this.mutationId=$.mutationId,Pl(this,oc,$.mutationCache),Pl(this,ed,[]),this.state=$.state||getDefaultState(),this.setOptions($.options),this.scheduleGc()}setOptions($){this.options=$,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver($){Ja(this,ed).includes($)||(Ja(this,ed).push($),this.clearGcTimeout(),Ja(this,oc).notify({type:"observerAdded",mutation:this,observer:$}))}removeObserver($){Pl(this,ed,Ja(this,ed).filter(ts=>ts!==$)),this.scheduleGc(),Ja(this,oc).notify({type:"observerRemoved",mutation:this,observer:$})}optionalRemove(){Ja(this,ed).length||(this.state.status==="pending"?this.scheduleGc():Ja(this,oc).remove(this))}continue(){var $;return(($=Ja(this,Im))==null?void 0:$.continue())??this.execute(this.state.variables)}async execute($){var ja,Ca,Aa,Oa,Ia,Da,Ba,Ma,Fa,qa,Ha,Ka,Qa,Va,Ya,Wa,el,tl;const ts=()=>{Xl(this,td,Wd).call(this,{type:"continue"})},is={client:Ja(this,Sh),meta:this.options.meta,mutationKey:this.options.mutationKey};Pl(this,Im,createRetryer({fn:()=>this.options.mutationFn?this.options.mutationFn($,is):Promise.reject(new Error("No mutationFn found")),onFail:(rl,cl)=>{Xl(this,td,Wd).call(this,{type:"failed",failureCount:rl,error:cl})},onPause:()=>{Xl(this,td,Wd).call(this,{type:"pause"})},onContinue:ts,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>Ja(this,oc).canRun(this)}));const Kr=this.state.status==="pending",Qr=!Ja(this,Im).canStart();try{if(Kr)ts();else{Xl(this,td,Wd).call(this,{type:"pending",variables:$,isPaused:Qr}),Ja(this,oc).config.onMutate&&await Ja(this,oc).config.onMutate($,this,is);const cl=await((Ca=(ja=this.options).onMutate)==null?void 0:Ca.call(ja,$,is));cl!==this.state.context&&Xl(this,td,Wd).call(this,{type:"pending",context:cl,variables:$,isPaused:Qr})}const rl=await Ja(this,Im).start();return await((Oa=(Aa=Ja(this,oc).config).onSuccess)==null?void 0:Oa.call(Aa,rl,$,this.state.context,this,is)),await((Da=(Ia=this.options).onSuccess)==null?void 0:Da.call(Ia,rl,$,this.state.context,is)),await((Ma=(Ba=Ja(this,oc).config).onSettled)==null?void 0:Ma.call(Ba,rl,null,this.state.variables,this.state.context,this,is)),await((qa=(Fa=this.options).onSettled)==null?void 0:qa.call(Fa,rl,null,$,this.state.context,is)),Xl(this,td,Wd).call(this,{type:"success",data:rl}),rl}catch(rl){try{await((Ka=(Ha=Ja(this,oc).config).onError)==null?void 0:Ka.call(Ha,rl,$,this.state.context,this,is))}catch(cl){Promise.reject(cl)}try{await((Va=(Qa=this.options).onError)==null?void 0:Va.call(Qa,rl,$,this.state.context,is))}catch(cl){Promise.reject(cl)}try{await((Wa=(Ya=Ja(this,oc).config).onSettled)==null?void 0:Wa.call(Ya,void 0,rl,this.state.variables,this.state.context,this,is))}catch(cl){Promise.reject(cl)}try{await((tl=(el=this.options).onSettled)==null?void 0:tl.call(el,void 0,rl,$,this.state.context,is))}catch(cl){Promise.reject(cl)}throw Xl(this,td,Wd).call(this,{type:"error",error:rl}),rl}finally{Ja(this,oc).runNext(this)}}},Sh=new WeakMap,ed=new WeakMap,oc=new WeakMap,Im=new WeakMap,td=new WeakSet,Wd=function($){const ts=is=>{switch($.type){case"failed":return{...is,failureCount:$.failureCount,failureReason:$.error};case"pause":return{...is,isPaused:!0};case"continue":return{...is,isPaused:!1};case"pending":return{...is,context:$.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:$.isPaused,status:"pending",variables:$.variables,submittedAt:Date.now()};case"success":return{...is,data:$.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...is,data:void 0,error:$.error,failureCount:is.failureCount+1,failureReason:$.error,isPaused:!1,status:"error"}}};this.state=ts(this.state),notifyManager.batch(()=>{Ja(this,ed).forEach(is=>{is.onMutationUpdate($)}),Ja(this,oc).notify({mutation:this,type:"updated",action:$})})},yb);function getDefaultState(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Rd,Zc,Ch,Eb,MutationCache=(Eb=class extends Subscribable{constructor($={}){super();Hl(this,Rd);Hl(this,Zc);Hl(this,Ch);this.config=$,Pl(this,Rd,new Set),Pl(this,Zc,new Map),Pl(this,Ch,0)}build($,ts,is){const Kr=new Mutation({client:$,mutationCache:this,mutationId:++Gp(this,Ch)._,options:$.defaultMutationOptions(ts),state:is});return this.add(Kr),Kr}add($){Ja(this,Rd).add($);const ts=scopeFor($);if(typeof ts=="string"){const is=Ja(this,Zc).get(ts);is?is.push($):Ja(this,Zc).set(ts,[$])}this.notify({type:"added",mutation:$})}remove($){if(Ja(this,Rd).delete($)){const ts=scopeFor($);if(typeof ts=="string"){const is=Ja(this,Zc).get(ts);if(is)if(is.length>1){const Kr=is.indexOf($);Kr!==-1&&is.splice(Kr,1)}else is[0]===$&&Ja(this,Zc).delete(ts)}}this.notify({type:"removed",mutation:$})}canRun($){const ts=scopeFor($);if(typeof ts=="string"){const is=Ja(this,Zc).get(ts),Kr=is==null?void 0:is.find(Qr=>Qr.state.status==="pending");return!Kr||Kr===$}else return!0}runNext($){var is;const ts=scopeFor($);if(typeof ts=="string"){const Kr=(is=Ja(this,Zc).get(ts))==null?void 0:is.find(Qr=>Qr!==$&&Qr.state.isPaused);return(Kr==null?void 0:Kr.continue())??Promise.resolve()}else return Promise.resolve()}clear(){notifyManager.batch(()=>{Ja(this,Rd).forEach($=>{this.notify({type:"removed",mutation:$})}),Ja(this,Rd).clear(),Ja(this,Zc).clear()})}getAll(){return Array.from(Ja(this,Rd))}find($){const ts={exact:!0,...$};return this.getAll().find(is=>matchMutation(ts,is))}findAll($={}){return this.getAll().filter(ts=>matchMutation($,ts))}notify($){notifyManager.batch(()=>{this.listeners.forEach(ts=>{ts($)})})}resumePausedMutations(){const $=this.getAll().filter(ts=>ts.state.isPaused);return notifyManager.batch(()=>Promise.all($.map(ts=>ts.continue().catch(noop$2))))}},Rd=new WeakMap,Zc=new WeakMap,Ch=new WeakMap,Eb);function scopeFor(es){var $;return($=es.options.scope)==null?void 0:$.id}var _d,nm,Ec,wd,Nd,Zp,hj,bb,MutationObserver$1=(bb=class extends Subscribable{constructor(ts,is){super();Hl(this,Nd);Hl(this,_d);Hl(this,nm);Hl(this,Ec);Hl(this,wd);Pl(this,_d,ts),this.setOptions(is),this.bindMethods(),Xl(this,Nd,Zp).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(ts){var Kr;const is=this.options;this.options=Ja(this,_d).defaultMutationOptions(ts),shallowEqualObjects(this.options,is)||Ja(this,_d).getMutationCache().notify({type:"observerOptionsUpdated",mutation:Ja(this,Ec),observer:this}),is!=null&&is.mutationKey&&this.options.mutationKey&&hashKey(is.mutationKey)!==hashKey(this.options.mutationKey)?this.reset():((Kr=Ja(this,Ec))==null?void 0:Kr.state.status)==="pending"&&Ja(this,Ec).setOptions(this.options)}onUnsubscribe(){var ts;this.hasListeners()||(ts=Ja(this,Ec))==null||ts.removeObserver(this)}onMutationUpdate(ts){Xl(this,Nd,Zp).call(this),Xl(this,Nd,hj).call(this,ts)}getCurrentResult(){return Ja(this,nm)}reset(){var ts;(ts=Ja(this,Ec))==null||ts.removeObserver(this),Pl(this,Ec,void 0),Xl(this,Nd,Zp).call(this),Xl(this,Nd,hj).call(this)}mutate(ts,is){var Kr;return Pl(this,wd,is),(Kr=Ja(this,Ec))==null||Kr.removeObserver(this),Pl(this,Ec,Ja(this,_d).getMutationCache().build(Ja(this,_d),this.options)),Ja(this,Ec).addObserver(this),Ja(this,Ec).execute(ts)}},_d=new WeakMap,nm=new WeakMap,Ec=new WeakMap,wd=new WeakMap,Nd=new WeakSet,Zp=function(){var is;const ts=((is=Ja(this,Ec))==null?void 0:is.state)??getDefaultState();Pl(this,nm,{...ts,isPending:ts.status==="pending",isSuccess:ts.status==="success",isError:ts.status==="error",isIdle:ts.status==="idle",mutate:this.mutate,reset:this.reset})},hj=function(ts){notifyManager.batch(()=>{var is,Kr,Qr,ja,Ca,Aa,Oa,Ia;if(Ja(this,wd)&&this.hasListeners()){const Da=Ja(this,nm).variables,Ba=Ja(this,nm).context,Ma={client:Ja(this,_d),meta:this.options.meta,mutationKey:this.options.mutationKey};if((ts==null?void 0:ts.type)==="success"){try{(Kr=(is=Ja(this,wd)).onSuccess)==null||Kr.call(is,ts.data,Da,Ba,Ma)}catch(Fa){Promise.reject(Fa)}try{(ja=(Qr=Ja(this,wd)).onSettled)==null||ja.call(Qr,ts.data,null,Da,Ba,Ma)}catch(Fa){Promise.reject(Fa)}}else if((ts==null?void 0:ts.type)==="error"){try{(Aa=(Ca=Ja(this,wd)).onError)==null||Aa.call(Ca,ts.error,Da,Ba,Ma)}catch(Fa){Promise.reject(Fa)}try{(Ia=(Oa=Ja(this,wd)).onSettled)==null||Ia.call(Oa,void 0,ts.error,Da,Ba,Ma)}catch(Fa){Promise.reject(Fa)}}}this.listeners.forEach(Da=>{Da(Ja(this,nm))})})},bb);function difference(es,$){const ts=new Set($);return es.filter(is=>!ts.has(is))}function replaceAt(es,$,ts){const is=es.slice(0);return is[$]=ts,is}var Sx,Tc,Cx,Tx,Fc,rm,Th,kh,Ah,Oh,rc,pj,fj,gj,jj,vj,Rb,QueriesObserver=(Rb=class extends Subscribable{constructor($,ts,is){super();Hl(this,rc);Hl(this,Sx);Hl(this,Tc);Hl(this,Cx);Hl(this,Tx);Hl(this,Fc);Hl(this,rm);Hl(this,Th);Hl(this,kh);Hl(this,Ah);Hl(this,Oh,[]);Pl(this,Sx,$),Pl(this,Tx,is),Pl(this,Cx,[]),Pl(this,Fc,[]),Pl(this,Tc,[]),this.setQueries(ts)}onSubscribe(){this.listeners.size===1&&Ja(this,Fc).forEach($=>{$.subscribe(ts=>{Xl(this,rc,jj).call(this,$,ts)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,Ja(this,Fc).forEach($=>{$.destroy()})}setQueries($,ts){Pl(this,Cx,$),Pl(this,Tx,ts),notifyManager.batch(()=>{const is=Ja(this,Fc),Kr=Xl(this,rc,gj).call(this,Ja(this,Cx));Kr.forEach(Da=>Da.observer.setOptions(Da.defaultedQueryOptions));const Qr=Kr.map(Da=>Da.observer),ja=Qr.map(Da=>Da.getCurrentResult()),Ca=is.length!==Qr.length,Aa=Qr.some((Da,Ba)=>Da!==is[Ba]),Oa=Ca||Aa,Ia=Oa?!0:ja.some((Da,Ba)=>{const Ma=Ja(this,Tc)[Ba];return!Ma||!shallowEqualObjects(Da,Ma)});!Oa&&!Ia||(Oa&&(Pl(this,Oh,Kr),Pl(this,Fc,Qr)),Pl(this,Tc,ja),this.hasListeners()&&(Oa&&(difference(is,Qr).forEach(Da=>{Da.destroy()}),difference(Qr,is).forEach(Da=>{Da.subscribe(Ba=>{Xl(this,rc,jj).call(this,Da,Ba)})})),Xl(this,rc,vj).call(this)))})}getCurrentResult(){return Ja(this,Tc)}getQueries(){return Ja(this,Fc).map($=>$.getCurrentQuery())}getObservers(){return Ja(this,Fc)}getOptimisticResult($,ts){const is=Xl(this,rc,gj).call(this,$),Kr=is.map(ja=>ja.observer.getOptimisticResult(ja.defaultedQueryOptions)),Qr=is.map(ja=>ja.defaultedQueryOptions.queryHash);return[Kr,ja=>Xl(this,rc,fj).call(this,ja??Kr,ts,Qr),()=>Xl(this,rc,pj).call(this,Kr,is)]}},Sx=new WeakMap,Tc=new WeakMap,Cx=new WeakMap,Tx=new WeakMap,Fc=new WeakMap,rm=new WeakMap,Th=new WeakMap,kh=new WeakMap,Ah=new WeakMap,Oh=new WeakMap,rc=new WeakSet,pj=function($,ts){return ts.map((is,Kr)=>{const Qr=$[Kr];return is.defaultedQueryOptions.notifyOnChangeProps?Qr:is.observer.trackResult(Qr,ja=>{ts.forEach(Ca=>{Ca.observer.trackProp(ja)})})})},fj=function($,ts,is){if(ts){const Kr=Ja(this,Ah),Qr=is!==void 0&&Kr!==void 0&&(Kr.length!==is.length||is.some((ja,Ca)=>ja!==Kr[Ca]));return(!Ja(this,rm)||Ja(this,Tc)!==Ja(this,kh)||Qr||ts!==Ja(this,Th))&&(Pl(this,Th,ts),Pl(this,kh,Ja(this,Tc)),is!==void 0&&Pl(this,Ah,is),Pl(this,rm,replaceEqualDeep(Ja(this,rm),ts($)))),Ja(this,rm)}return $},gj=function($){const ts=new Map;Ja(this,Fc).forEach(Kr=>{const Qr=Kr.options.queryHash;if(!Qr)return;const ja=ts.get(Qr);ja?ja.push(Kr):ts.set(Qr,[Kr])});const is=[];return $.forEach(Kr=>{var Aa;const Qr=Ja(this,Sx).defaultQueryOptions(Kr),Ca=((Aa=ts.get(Qr.queryHash))==null?void 0:Aa.shift())??new QueryObserver(Ja(this,Sx),Qr);is.push({defaultedQueryOptions:Qr,observer:Ca})}),is},jj=function($,ts){const is=Ja(this,Fc).indexOf($);is!==-1&&(Pl(this,Tc,replaceAt(Ja(this,Tc),is,ts)),Xl(this,rc,vj).call(this))},vj=function(){var $;if(this.hasListeners()){const ts=Ja(this,rm),is=Xl(this,rc,pj).call(this,Ja(this,Tc),Ja(this,Oh)),Kr=Xl(this,rc,fj).call(this,is,($=Ja(this,Tx))==null?void 0:$.combine);ts!==Kr&&notifyManager.batch(()=>{this.listeners.forEach(Qr=>{Qr(Ja(this,Tc))})})}},Rb),sd,_b,QueryCache=(_b=class extends Subscribable{constructor($={}){super();Hl(this,sd);this.config=$,Pl(this,sd,new Map)}build($,ts,is){const Kr=ts.queryKey,Qr=ts.queryHash??hashQueryKeyByOptions(Kr,ts);let ja=this.get(Qr);return ja||(ja=new Query({client:$,queryKey:Kr,queryHash:Qr,options:$.defaultQueryOptions(ts),state:is,defaultOptions:$.getQueryDefaults(Kr)}),this.add(ja)),ja}add($){Ja(this,sd).has($.queryHash)||(Ja(this,sd).set($.queryHash,$),this.notify({type:"added",query:$}))}remove($){const ts=Ja(this,sd).get($.queryHash);ts&&($.destroy(),ts===$&&Ja(this,sd).delete($.queryHash),this.notify({type:"removed",query:$}))}clear(){notifyManager.batch(()=>{this.getAll().forEach($=>{this.remove($)})})}get($){return Ja(this,sd).get($)}getAll(){return[...Ja(this,sd).values()]}find($){const ts={exact:!0,...$};return this.getAll().find(is=>matchQuery(ts,is))}findAll($={}){const ts=this.getAll();return Object.keys($).length>0?ts.filter(is=>matchQuery($,is)):ts}notify($){notifyManager.batch(()=>{this.listeners.forEach(ts=>{ts($)})})}onFocus(){notifyManager.batch(()=>{this.getAll().forEach($=>{$.onFocus()})})}onOnline(){notifyManager.batch(()=>{this.getAll().forEach($=>{$.onOnline()})})}},sd=new WeakMap,_b),Fu,im,am,kx,Ax,om,Ox,Ix,wb,QueryClient=(wb=class{constructor(es={}){Hl(this,Fu);Hl(this,im);Hl(this,am);Hl(this,kx);Hl(this,Ax);Hl(this,om);Hl(this,Ox);Hl(this,Ix);Pl(this,Fu,es.queryCache||new QueryCache),Pl(this,im,es.mutationCache||new MutationCache),Pl(this,am,es.defaultOptions||{}),Pl(this,kx,new Map),Pl(this,Ax,new Map),Pl(this,om,0)}mount(){Gp(this,om)._++,Ja(this,om)===1&&(Pl(this,Ox,focusManager.subscribe(async es=>{es&&(await this.resumePausedMutations(),Ja(this,Fu).onFocus())})),Pl(this,Ix,onlineManager.subscribe(async es=>{es&&(await this.resumePausedMutations(),Ja(this,Fu).onOnline())})))}unmount(){var es,$;Gp(this,om)._--,Ja(this,om)===0&&((es=Ja(this,Ox))==null||es.call(this),Pl(this,Ox,void 0),($=Ja(this,Ix))==null||$.call(this),Pl(this,Ix,void 0))}isFetching(es){return Ja(this,Fu).findAll({...es,fetchStatus:"fetching"}).length}isMutating(es){return Ja(this,im).findAll({...es,status:"pending"}).length}getQueryData(es){var ts;const $=this.defaultQueryOptions({queryKey:es});return(ts=Ja(this,Fu).get($.queryHash))==null?void 0:ts.state.data}ensureQueryData(es){const $=this.defaultQueryOptions(es),ts=Ja(this,Fu).build(this,$),is=ts.state.data;return is===void 0?this.fetchQuery(es):(es.revalidateIfStale&&ts.isStaleByTime(resolveStaleTime($.staleTime,ts))&&this.prefetchQuery($),Promise.resolve(is))}getQueriesData(es){return Ja(this,Fu).findAll(es).map(({queryKey:$,state:ts})=>{const is=ts.data;return[$,is]})}setQueryData(es,$,ts){const is=this.defaultQueryOptions({queryKey:es}),Kr=Ja(this,Fu).get(is.queryHash),Qr=Kr==null?void 0:Kr.state.data,ja=functionalUpdate($,Qr);if(ja!==void 0)return Ja(this,Fu).build(this,is).setData(ja,{...ts,manual:!0})}setQueriesData(es,$,ts){return notifyManager.batch(()=>Ja(this,Fu).findAll(es).map(({queryKey:is})=>[is,this.setQueryData(is,$,ts)]))}getQueryState(es){var ts;const $=this.defaultQueryOptions({queryKey:es});return(ts=Ja(this,Fu).get($.queryHash))==null?void 0:ts.state}removeQueries(es){const $=Ja(this,Fu);notifyManager.batch(()=>{$.findAll(es).forEach(ts=>{$.remove(ts)})})}resetQueries(es,$){const ts=Ja(this,Fu);return notifyManager.batch(()=>(ts.findAll(es).forEach(is=>{is.reset()}),this.refetchQueries({type:"active",...es},$)))}cancelQueries(es,$={}){const ts={revert:!0,...$},is=notifyManager.batch(()=>Ja(this,Fu).findAll(es).map(Kr=>Kr.cancel(ts)));return Promise.all(is).then(noop$2).catch(noop$2)}invalidateQueries(es,$={}){return notifyManager.batch(()=>(Ja(this,Fu).findAll(es).forEach(ts=>{ts.invalidate()}),(es==null?void 0:es.refetchType)==="none"?Promise.resolve():this.refetchQueries({...es,type:(es==null?void 0:es.refetchType)??(es==null?void 0:es.type)??"active"},$)))}refetchQueries(es,$={}){const ts={...$,cancelRefetch:$.cancelRefetch??!0},is=notifyManager.batch(()=>Ja(this,Fu).findAll(es).filter(Kr=>!Kr.isDisabled()&&!Kr.isStatic()).map(Kr=>{let Qr=Kr.fetch(void 0,ts);return ts.throwOnError||(Qr=Qr.catch(noop$2)),Kr.state.fetchStatus==="paused"?Promise.resolve():Qr}));return Promise.all(is).then(noop$2)}fetchQuery(es){const $=this.defaultQueryOptions(es);$.retry===void 0&&($.retry=!1);const ts=Ja(this,Fu).build(this,$);return ts.isStaleByTime(resolveStaleTime($.staleTime,ts))?ts.fetch($):Promise.resolve(ts.state.data)}prefetchQuery(es){return this.fetchQuery(es).then(noop$2).catch(noop$2)}fetchInfiniteQuery(es){return es.behavior=infiniteQueryBehavior(es.pages),this.fetchQuery(es)}prefetchInfiniteQuery(es){return this.fetchInfiniteQuery(es).then(noop$2).catch(noop$2)}ensureInfiniteQueryData(es){return es.behavior=infiniteQueryBehavior(es.pages),this.ensureQueryData(es)}resumePausedMutations(){return onlineManager.isOnline()?Ja(this,im).resumePausedMutations():Promise.resolve()}getQueryCache(){return Ja(this,Fu)}getMutationCache(){return Ja(this,im)}getDefaultOptions(){return Ja(this,am)}setDefaultOptions(es){Pl(this,am,es)}setQueryDefaults(es,$){Ja(this,kx).set(hashKey(es),{queryKey:es,defaultOptions:$})}getQueryDefaults(es){const $=[...Ja(this,kx).values()],ts={};return $.forEach(is=>{partialMatchKey(es,is.queryKey)&&Object.assign(ts,is.defaultOptions)}),ts}setMutationDefaults(es,$){Ja(this,Ax).set(hashKey(es),{mutationKey:es,defaultOptions:$})}getMutationDefaults(es){const $=[...Ja(this,Ax).values()],ts={};return $.forEach(is=>{partialMatchKey(es,is.mutationKey)&&Object.assign(ts,is.defaultOptions)}),ts}defaultQueryOptions(es){if(es._defaulted)return es;const $={...Ja(this,am).queries,...this.getQueryDefaults(es.queryKey),...es,_defaulted:!0};return $.queryHash||($.queryHash=hashQueryKeyByOptions($.queryKey,$)),$.refetchOnReconnect===void 0&&($.refetchOnReconnect=$.networkMode!=="always"),$.throwOnError===void 0&&($.throwOnError=!!$.suspense),!$.networkMode&&$.persister&&($.networkMode="offlineFirst"),$.queryFn===skipToken&&($.enabled=!1),$}defaultMutationOptions(es){return es!=null&&es._defaulted?es:{...Ja(this,am).mutations,...(es==null?void 0:es.mutationKey)&&this.getMutationDefaults(es.mutationKey),...es,_defaulted:!0}}clear(){Ja(this,Fu).clear(),Ja(this,im).clear()}},Fu=new WeakMap,im=new WeakMap,am=new WeakMap,kx=new WeakMap,Ax=new WeakMap,om=new WeakMap,Ox=new WeakMap,Ix=new WeakMap,wb),QueryClientContext=reactExports.createContext(void 0),useQueryClient=es=>{const $=reactExports.useContext(QueryClientContext);if(!$)throw new Error("No QueryClient set, use QueryClientProvider to set one");return $},QueryClientProvider=({client:es,children:$})=>(reactExports.useEffect(()=>(es.mount(),()=>{es.unmount()}),[es]),jsxRuntimeExports.jsx(QueryClientContext.Provider,{value:es,children:$})),IsRestoringContext=reactExports.createContext(!1),useIsRestoring=()=>reactExports.useContext(IsRestoringContext);IsRestoringContext.Provider;function createValue(){let es=!1;return{clearReset:()=>{es=!1},reset:()=>{es=!0},isReset:()=>es}}var QueryErrorResetBoundaryContext=reactExports.createContext(createValue()),useQueryErrorResetBoundary=()=>reactExports.useContext(QueryErrorResetBoundaryContext),ensurePreventErrorBoundaryRetry=(es,$,ts)=>{const is=ts!=null&&ts.state.error&&typeof es.throwOnError=="function"?shouldThrowError(es.throwOnError,[ts.state.error,ts]):es.throwOnError;(es.suspense||es.experimental_prefetchInRender||is)&&($.isReset()||(es.retryOnMount=!1))},useClearResetErrorBoundary=es=>{reactExports.useEffect(()=>{es.clearReset()},[es])},getHasError=({result:es,errorResetBoundary:$,throwOnError:ts,query:is,suspense:Kr})=>es.isError&&!$.isReset()&&!es.isFetching&&is&&(Kr&&es.data===void 0||shouldThrowError(ts,[es.error,is])),ensureSuspenseTimers=es=>{if(es.suspense){const ts=Kr=>Kr==="static"?Kr:Math.max(Kr??1e3,1e3),is=es.staleTime;es.staleTime=typeof is=="function"?(...Kr)=>ts(is(...Kr)):ts(is),typeof es.gcTime=="number"&&(es.gcTime=Math.max(es.gcTime,1e3))}},willFetch=(es,$)=>es.isLoading&&es.isFetching&&!$,shouldSuspend=(es,$)=>(es==null?void 0:es.suspense)&&$.isPending,fetchOptimistic=(es,$,ts)=>$.fetchOptimistic(es).catch(()=>{ts.clearReset()});function useQueries({queries:es,...$},ts){const is=useQueryClient(),Kr=useIsRestoring(),Qr=useQueryErrorResetBoundary(),ja=reactExports.useMemo(()=>es.map(qa=>{const Ha=is.defaultQueryOptions(qa);return Ha._optimisticResults=Kr?"isRestoring":"optimistic",Ha}),[es,is,Kr]);ja.forEach(qa=>{ensureSuspenseTimers(qa);const Ha=is.getQueryCache().get(qa.queryHash);ensurePreventErrorBoundaryRetry(qa,Qr,Ha)}),useClearResetErrorBoundary(Qr);const[Ca]=reactExports.useState(()=>new QueriesObserver(is,ja,$)),[Aa,Oa,Ia]=Ca.getOptimisticResult(ja,$.combine),Da=!Kr&&$.subscribed!==!1;reactExports.useSyncExternalStore(reactExports.useCallback(qa=>Da?Ca.subscribe(notifyManager.batchCalls(qa)):noop$2,[Ca,Da]),()=>Ca.getCurrentResult(),()=>Ca.getCurrentResult()),reactExports.useEffect(()=>{Ca.setQueries(ja,$)},[ja,$,Ca]);const Ma=Aa.some((qa,Ha)=>shouldSuspend(ja[Ha],qa))?Aa.flatMap((qa,Ha)=>{const Ka=ja[Ha];if(Ka&&shouldSuspend(Ka,qa)){const Qa=new QueryObserver(is,Ka);return fetchOptimistic(Ka,Qa,Qr)}return[]}):[];if(Ma.length>0)throw Promise.all(Ma);const Fa=Aa.find((qa,Ha)=>{const Ka=ja[Ha];return Ka&&getHasError({result:qa,errorResetBoundary:Qr,throwOnError:Ka.throwOnError,query:is.getQueryCache().get(Ka.queryHash),suspense:Ka.suspense})});if(Fa!=null&&Fa.error)throw Fa.error;return Oa(Ia())}function useBaseQuery(es,$,ts){var Ba,Ma,Fa,qa;const is=useIsRestoring(),Kr=useQueryErrorResetBoundary(),Qr=useQueryClient(),ja=Qr.defaultQueryOptions(es);(Ma=(Ba=Qr.getDefaultOptions().queries)==null?void 0:Ba._experimental_beforeQuery)==null||Ma.call(Ba,ja);const Ca=Qr.getQueryCache().get(ja.queryHash);ja._optimisticResults=is?"isRestoring":"optimistic",ensureSuspenseTimers(ja),ensurePreventErrorBoundaryRetry(ja,Kr,Ca),useClearResetErrorBoundary(Kr);const Aa=!Qr.getQueryCache().get(ja.queryHash),[Oa]=reactExports.useState(()=>new $(Qr,ja)),Ia=Oa.getOptimisticResult(ja),Da=!is&&es.subscribed!==!1;if(reactExports.useSyncExternalStore(reactExports.useCallback(Ha=>{const Ka=Da?Oa.subscribe(notifyManager.batchCalls(Ha)):noop$2;return Oa.updateResult(),Ka},[Oa,Da]),()=>Oa.getCurrentResult(),()=>Oa.getCurrentResult()),reactExports.useEffect(()=>{Oa.setOptions(ja)},[ja,Oa]),shouldSuspend(ja,Ia))throw fetchOptimistic(ja,Oa,Kr);if(getHasError({result:Ia,errorResetBoundary:Kr,throwOnError:ja.throwOnError,query:Ca,suspense:ja.suspense}))throw Ia.error;if((qa=(Fa=Qr.getDefaultOptions().queries)==null?void 0:Fa._experimental_afterQuery)==null||qa.call(Fa,ja,Ia),ja.experimental_prefetchInRender&&!isServer&&willFetch(Ia,is)){const Ha=Aa?fetchOptimistic(ja,Oa,Kr):Ca==null?void 0:Ca.promise;Ha==null||Ha.catch(noop$2).finally(()=>{Oa.updateResult()})}return ja.notifyOnChangeProps?Ia:Oa.trackResult(Ia)}function useQuery(es,$){return useBaseQuery(es,QueryObserver)}function useMutation(es,$){const ts=useQueryClient(),[is]=reactExports.useState(()=>new MutationObserver$1(ts,es));reactExports.useEffect(()=>{is.setOptions(es)},[is,es]);const Kr=reactExports.useSyncExternalStore(reactExports.useCallback(ja=>is.subscribe(notifyManager.batchCalls(ja)),[is]),()=>is.getCurrentResult(),()=>is.getCurrentResult()),Qr=reactExports.useCallback((ja,Ca)=>{is.mutate(ja,Ca).catch(noop$2)},[is]);if(Kr.error&&shouldThrowError(is.options.throwOnError,[Kr.error]))throw Kr.error;return{...Kr,mutate:Qr,mutateAsync:Kr.mutate}}function useInfiniteQuery(es,$){return useBaseQuery(es,InfiniteQueryObserver)}var M$2=(es,$,ts,is,Kr,Qr,ja,Ca)=>{let Aa=document.documentElement,Oa=["light","dark"];function Ia(Ma){(Array.isArray(es)?es:[es]).forEach(Fa=>{let qa=Fa==="class",Ha=qa&&Qr?Kr.map(Ka=>Qr[Ka]||Ka):Kr;qa?(Aa.classList.remove(...Ha),Aa.classList.add(Qr&&Qr[Ma]?Qr[Ma]:Ma)):Aa.setAttribute(Fa,Ma)}),Da(Ma)}function Da(Ma){Ca&&Oa.includes(Ma)&&(Aa.style.colorScheme=Ma)}function Ba(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(is)Ia(is);else try{let Ma=localStorage.getItem($)||ts,Fa=ja&&Ma==="system"?Ba():Ma;Ia(Fa)}catch{}},x$1=reactExports.createContext(void 0),U$1={setTheme:es=>{},themes:[]},z$1=()=>{var es;return(es=reactExports.useContext(x$1))!=null?es:U$1};reactExports.memo(({forcedTheme:es,storageKey:$,attribute:ts,enableSystem:is,enableColorScheme:Kr,defaultTheme:Qr,value:ja,themes:Ca,nonce:Aa,scriptProps:Oa})=>{let Ia=JSON.stringify([ts,$,Qr,es,Ca,ja,is,Kr]).slice(1,-1);return reactExports.createElement("script",{...Oa,suppressHydrationWarning:!0,nonce:typeof window>"u"?Aa:"",dangerouslySetInnerHTML:{__html:`(${M$2.toString()})(${Ia})`}})});var jt$1=es=>{switch(es){case"success":return ee$1;case"info":return ae$1;case"warning":return oe$1;case"error":return se$1;default:return null}},te$1=Array(12).fill(0),Yt$1=({visible:es,className:$})=>React.createElement("div",{className:["sonner-loading-wrapper",$].filter(Boolean).join(" "),"data-visible":es},React.createElement("div",{className:"sonner-spinner"},te$1.map((ts,is)=>React.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${is}`})))),ee$1=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),oe$1=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),ae$1=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),se$1=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Ot$1=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},React.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),React.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Ft$1=()=>{let[es,$]=React.useState(document.hidden);return React.useEffect(()=>{let ts=()=>{$(document.hidden)};return document.addEventListener("visibilitychange",ts),()=>window.removeEventListener("visibilitychange",ts)},[]),es},bt$1=1,yt$1=class{constructor(){this.subscribe=$=>(this.subscribers.push($),()=>{let ts=this.subscribers.indexOf($);this.subscribers.splice(ts,1)}),this.publish=$=>{this.subscribers.forEach(ts=>ts($))},this.addToast=$=>{this.publish($),this.toasts=[...this.toasts,$]},this.create=$=>{var ts;let{message:is,...Kr}=$,Qr=typeof($==null?void 0:$.id)=="number"||((ts=$.id)==null?void 0:ts.length)>0?$.id:bt$1++,ja=this.toasts.find(Aa=>Aa.id===Qr),Ca=$.dismissible===void 0?!0:$.dismissible;return this.dismissedToasts.has(Qr)&&this.dismissedToasts.delete(Qr),ja?this.toasts=this.toasts.map(Aa=>Aa.id===Qr?(this.publish({...Aa,...$,id:Qr,title:is}),{...Aa,...$,id:Qr,dismissible:Ca,title:is}):Aa):this.addToast({title:is,...Kr,dismissible:Ca,id:Qr}),Qr},this.dismiss=$=>(this.dismissedToasts.add($),$||this.toasts.forEach(ts=>{this.subscribers.forEach(is=>is({id:ts.id,dismiss:!0}))}),this.subscribers.forEach(ts=>ts({id:$,dismiss:!0})),$),this.message=($,ts)=>this.create({...ts,message:$}),this.error=($,ts)=>this.create({...ts,message:$,type:"error"}),this.success=($,ts)=>this.create({...ts,type:"success",message:$}),this.info=($,ts)=>this.create({...ts,type:"info",message:$}),this.warning=($,ts)=>this.create({...ts,type:"warning",message:$}),this.loading=($,ts)=>this.create({...ts,type:"loading",message:$}),this.promise=($,ts)=>{if(!ts)return;let is;ts.loading!==void 0&&(is=this.create({...ts,promise:$,type:"loading",message:ts.loading,description:typeof ts.description!="function"?ts.description:void 0}));let Kr=$ instanceof Promise?$:$(),Qr=is!==void 0,ja,Ca=Kr.then(async Oa=>{if(ja=["resolve",Oa],React.isValidElement(Oa))Qr=!1,this.create({id:is,type:"default",message:Oa});else if(ie$1(Oa)&&!Oa.ok){Qr=!1;let Ia=typeof ts.error=="function"?await ts.error(`HTTP error! status: ${Oa.status}`):ts.error,Da=typeof ts.description=="function"?await ts.description(`HTTP error! status: ${Oa.status}`):ts.description;this.create({id:is,type:"error",message:Ia,description:Da})}else if(ts.success!==void 0){Qr=!1;let Ia=typeof ts.success=="function"?await ts.success(Oa):ts.success,Da=typeof ts.description=="function"?await ts.description(Oa):ts.description;this.create({id:is,type:"success",message:Ia,description:Da})}}).catch(async Oa=>{if(ja=["reject",Oa],ts.error!==void 0){Qr=!1;let Ia=typeof ts.error=="function"?await ts.error(Oa):ts.error,Da=typeof ts.description=="function"?await ts.description(Oa):ts.description;this.create({id:is,type:"error",message:Ia,description:Da})}}).finally(()=>{var Oa;Qr&&(this.dismiss(is),is=void 0),(Oa=ts.finally)==null||Oa.call(ts)}),Aa=()=>new Promise((Oa,Ia)=>Ca.then(()=>ja[0]==="reject"?Ia(ja[1]):Oa(ja[1])).catch(Ia));return typeof is!="string"&&typeof is!="number"?{unwrap:Aa}:Object.assign(is,{unwrap:Aa})},this.custom=($,ts)=>{let is=(ts==null?void 0:ts.id)||bt$1++;return this.create({jsx:$(is),id:is,...ts}),is},this.getActiveToasts=()=>this.toasts.filter($=>!this.dismissedToasts.has($.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},v$1=new yt$1,ne$1=(es,$)=>{let ts=($==null?void 0:$.id)||bt$1++;return v$1.addToast({title:es,...$,id:ts}),ts},ie$1=es=>es&&typeof es=="object"&&"ok"in es&&typeof es.ok=="boolean"&&"status"in es&&typeof es.status=="number",le$1=ne$1,ce$1=()=>v$1.toasts,de$1=()=>v$1.getActiveToasts(),ue$1=Object.assign(le$1,{success:v$1.success,info:v$1.info,warning:v$1.warning,error:v$1.error,custom:v$1.custom,message:v$1.message,promise:v$1.promise,dismiss:v$1.dismiss,loading:v$1.loading},{getHistory:ce$1,getToasts:de$1});function wt$1(es,{insertAt:$}={}){if(typeof document>"u")return;let ts=document.head||document.getElementsByTagName("head")[0],is=document.createElement("style");is.type="text/css",$==="top"&&ts.firstChild?ts.insertBefore(is,ts.firstChild):ts.appendChild(is),is.styleSheet?is.styleSheet.cssText=es:is.appendChild(document.createTextNode(es))}wt$1(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
26
- `);function tt$1(es){return es.label!==void 0}var pe$1=3,me$1="32px",ge$1="16px",Wt$1=4e3,he$1=356,be$1=14,ye$1=20,we$1=200;function M$1(...es){return es.filter(Boolean).join(" ")}function xe$1(es){let[$,ts]=es.split("-"),is=[];return $&&is.push($),ts&&is.push(ts),is}var ve$1=es=>{var $,ts,is,Kr,Qr,ja,Ca,Aa,Oa,Ia,Da;let{invert:Ba,toast:Ma,unstyled:Fa,interacting:qa,setHeights:Ha,visibleToasts:Ka,heights:Qa,index:Va,toasts:Ya,expanded:Wa,removeToast:el,defaultRichColors:tl,closeButton:rl,style:cl,cancelButtonStyle:dl,actionButtonStyle:fl,className:nl="",descriptionClassName:ol="",duration:pl,position:Tl,gap:ul,loadingIcon:hl,expandByDefault:jl,classNames:Nl,icons:zl,closeButtonAriaLabel:Zl="Close toast",pauseWhenPageIsHidden:$l}=es,[Il,ql]=React.useState(null),[Fl,ru]=React.useState(null),[Gl,cu]=React.useState(!1),[Al,Ml]=React.useState(!1),[Ql,eu]=React.useState(!1),[xu,fu]=React.useState(!1),[Iu,yu]=React.useState(!1),[ic,Lu]=React.useState(0),[Bl,su]=React.useState(0),Eu=React.useRef(Ma.duration||pl||Wt$1),lc=React.useRef(null),ku=React.useRef(null),bu=Va===0,Ua=Va+1<=Ka,ll=Ma.type,yl=Ma.dismissible!==!1,Dl=Ma.className||"",kl=Ma.descriptionClassName||"",Ga=React.useMemo(()=>Qa.findIndex(tu=>tu.toastId===Ma.id)||0,[Qa,Ma.id]),al=React.useMemo(()=>{var tu;return(tu=Ma.closeButton)!=null?tu:rl},[Ma.closeButton,rl]),El=React.useMemo(()=>Ma.duration||pl||Wt$1,[Ma.duration,pl]),bl=React.useRef(0),_l=React.useRef(0),Ol=React.useRef(0),Rl=React.useRef(null),[Ul,Ll]=Tl.split("-"),Yl=React.useMemo(()=>Qa.reduce((tu,Ru,Au)=>Au>=Ga?tu:tu+Ru.height,0),[Qa,Ga]),au=Ft$1(),nu=Ma.invert||Ba,Du=ll==="loading";_l.current=React.useMemo(()=>Ga*ul+Yl,[Ga,Yl]),React.useEffect(()=>{Eu.current=El},[El]),React.useEffect(()=>{cu(!0)},[]),React.useEffect(()=>{let tu=ku.current;if(tu){let Ru=tu.getBoundingClientRect().height;return su(Ru),Ha(Au=>[{toastId:Ma.id,height:Ru,position:Ma.position},...Au]),()=>Ha(Au=>Au.filter(uc=>uc.toastId!==Ma.id))}},[Ha,Ma.id]),React.useLayoutEffect(()=>{if(!Gl)return;let tu=ku.current,Ru=tu.style.height;tu.style.height="auto";let Au=tu.getBoundingClientRect().height;tu.style.height=Ru,su(Au),Ha(uc=>uc.find(Ju=>Ju.toastId===Ma.id)?uc.map(Ju=>Ju.toastId===Ma.id?{...Ju,height:Au}:Ju):[{toastId:Ma.id,height:Au,position:Ma.position},...uc])},[Gl,Ma.title,Ma.description,Ha,Ma.id]);let ac=React.useCallback(()=>{Ml(!0),Lu(_l.current),Ha(tu=>tu.filter(Ru=>Ru.toastId!==Ma.id)),setTimeout(()=>{el(Ma)},we$1)},[Ma,el,Ha,_l]);React.useEffect(()=>{if(Ma.promise&&ll==="loading"||Ma.duration===1/0||Ma.type==="loading")return;let tu;return Wa||qa||$l&&au?(()=>{if(Ol.current<bl.current){let Ru=new Date().getTime()-bl.current;Eu.current=Eu.current-Ru}Ol.current=new Date().getTime()})():Eu.current!==1/0&&(bl.current=new Date().getTime(),tu=setTimeout(()=>{var Ru;(Ru=Ma.onAutoClose)==null||Ru.call(Ma,Ma),ac()},Eu.current)),()=>clearTimeout(tu)},[Wa,qa,Ma,ll,$l,au,ac]),React.useEffect(()=>{Ma.delete&&ac()},[ac,Ma.delete]);function Lm(){var tu,Ru,Au;return zl!=null&&zl.loading?React.createElement("div",{className:M$1(Nl==null?void 0:Nl.loader,(tu=Ma==null?void 0:Ma.classNames)==null?void 0:tu.loader,"sonner-loader"),"data-visible":ll==="loading"},zl.loading):hl?React.createElement("div",{className:M$1(Nl==null?void 0:Nl.loader,(Ru=Ma==null?void 0:Ma.classNames)==null?void 0:Ru.loader,"sonner-loader"),"data-visible":ll==="loading"},hl):React.createElement(Yt$1,{className:M$1(Nl==null?void 0:Nl.loader,(Au=Ma==null?void 0:Ma.classNames)==null?void 0:Au.loader),visible:ll==="loading"})}return React.createElement("li",{tabIndex:0,ref:ku,className:M$1(nl,Dl,Nl==null?void 0:Nl.toast,($=Ma==null?void 0:Ma.classNames)==null?void 0:$.toast,Nl==null?void 0:Nl.default,Nl==null?void 0:Nl[ll],(ts=Ma==null?void 0:Ma.classNames)==null?void 0:ts[ll]),"data-sonner-toast":"","data-rich-colors":(is=Ma.richColors)!=null?is:tl,"data-styled":!(Ma.jsx||Ma.unstyled||Fa),"data-mounted":Gl,"data-promise":!!Ma.promise,"data-swiped":Iu,"data-removed":Al,"data-visible":Ua,"data-y-position":Ul,"data-x-position":Ll,"data-index":Va,"data-front":bu,"data-swiping":Ql,"data-dismissible":yl,"data-type":ll,"data-invert":nu,"data-swipe-out":xu,"data-swipe-direction":Fl,"data-expanded":!!(Wa||jl&&Gl),style:{"--index":Va,"--toasts-before":Va,"--z-index":Ya.length-Va,"--offset":`${Al?ic:_l.current}px`,"--initial-height":jl?"auto":`${Bl}px`,...cl,...Ma.style},onDragEnd:()=>{eu(!1),ql(null),Rl.current=null},onPointerDown:tu=>{Du||!yl||(lc.current=new Date,Lu(_l.current),tu.target.setPointerCapture(tu.pointerId),tu.target.tagName!=="BUTTON"&&(eu(!0),Rl.current={x:tu.clientX,y:tu.clientY}))},onPointerUp:()=>{var tu,Ru,Au,uc;if(xu||!yl)return;Rl.current=null;let Ju=Number(((tu=ku.current)==null?void 0:tu.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Vc=Number(((Ru=ku.current)==null?void 0:Ru.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Qc=new Date().getTime()-((Au=lc.current)==null?void 0:Au.getTime()),mc=Il==="x"?Ju:Vc,qc=Math.abs(mc)/Qc;if(Math.abs(mc)>=ye$1||qc>.11){Lu(_l.current),(uc=Ma.onDismiss)==null||uc.call(Ma,Ma),ru(Il==="x"?Ju>0?"right":"left":Vc>0?"down":"up"),ac(),fu(!0),yu(!1);return}eu(!1),ql(null)},onPointerMove:tu=>{var Ru,Au,uc,Ju;if(!Rl.current||!yl||((Ru=window.getSelection())==null?void 0:Ru.toString().length)>0)return;let Vc=tu.clientY-Rl.current.y,Qc=tu.clientX-Rl.current.x,mc=(Au=es.swipeDirections)!=null?Au:xe$1(Tl);!Il&&(Math.abs(Qc)>1||Math.abs(Vc)>1)&&ql(Math.abs(Qc)>Math.abs(Vc)?"x":"y");let qc={x:0,y:0};Il==="y"?(mc.includes("top")||mc.includes("bottom"))&&(mc.includes("top")&&Vc<0||mc.includes("bottom")&&Vc>0)&&(qc.y=Vc):Il==="x"&&(mc.includes("left")||mc.includes("right"))&&(mc.includes("left")&&Qc<0||mc.includes("right")&&Qc>0)&&(qc.x=Qc),(Math.abs(qc.x)>0||Math.abs(qc.y)>0)&&yu(!0),(uc=ku.current)==null||uc.style.setProperty("--swipe-amount-x",`${qc.x}px`),(Ju=ku.current)==null||Ju.style.setProperty("--swipe-amount-y",`${qc.y}px`)}},al&&!Ma.jsx?React.createElement("button",{"aria-label":Zl,"data-disabled":Du,"data-close-button":!0,onClick:Du||!yl?()=>{}:()=>{var tu;ac(),(tu=Ma.onDismiss)==null||tu.call(Ma,Ma)},className:M$1(Nl==null?void 0:Nl.closeButton,(Kr=Ma==null?void 0:Ma.classNames)==null?void 0:Kr.closeButton)},(Qr=zl==null?void 0:zl.close)!=null?Qr:Ot$1):null,Ma.jsx||reactExports.isValidElement(Ma.title)?Ma.jsx?Ma.jsx:typeof Ma.title=="function"?Ma.title():Ma.title:React.createElement(React.Fragment,null,ll||Ma.icon||Ma.promise?React.createElement("div",{"data-icon":"",className:M$1(Nl==null?void 0:Nl.icon,(ja=Ma==null?void 0:Ma.classNames)==null?void 0:ja.icon)},Ma.promise||Ma.type==="loading"&&!Ma.icon?Ma.icon||Lm():null,Ma.type!=="loading"?Ma.icon||(zl==null?void 0:zl[ll])||jt$1(ll):null):null,React.createElement("div",{"data-content":"",className:M$1(Nl==null?void 0:Nl.content,(Ca=Ma==null?void 0:Ma.classNames)==null?void 0:Ca.content)},React.createElement("div",{"data-title":"",className:M$1(Nl==null?void 0:Nl.title,(Aa=Ma==null?void 0:Ma.classNames)==null?void 0:Aa.title)},typeof Ma.title=="function"?Ma.title():Ma.title),Ma.description?React.createElement("div",{"data-description":"",className:M$1(ol,kl,Nl==null?void 0:Nl.description,(Oa=Ma==null?void 0:Ma.classNames)==null?void 0:Oa.description)},typeof Ma.description=="function"?Ma.description():Ma.description):null),reactExports.isValidElement(Ma.cancel)?Ma.cancel:Ma.cancel&&tt$1(Ma.cancel)?React.createElement("button",{"data-button":!0,"data-cancel":!0,style:Ma.cancelButtonStyle||dl,onClick:tu=>{var Ru,Au;tt$1(Ma.cancel)&&yl&&((Au=(Ru=Ma.cancel).onClick)==null||Au.call(Ru,tu),ac())},className:M$1(Nl==null?void 0:Nl.cancelButton,(Ia=Ma==null?void 0:Ma.classNames)==null?void 0:Ia.cancelButton)},Ma.cancel.label):null,reactExports.isValidElement(Ma.action)?Ma.action:Ma.action&&tt$1(Ma.action)?React.createElement("button",{"data-button":!0,"data-action":!0,style:Ma.actionButtonStyle||fl,onClick:tu=>{var Ru,Au;tt$1(Ma.action)&&((Au=(Ru=Ma.action).onClick)==null||Au.call(Ru,tu),!tu.defaultPrevented&&ac())},className:M$1(Nl==null?void 0:Nl.actionButton,(Da=Ma==null?void 0:Ma.classNames)==null?void 0:Da.actionButton)},Ma.action.label):null))};function _t$1(){if(typeof window>"u"||typeof document>"u")return"ltr";let es=document.documentElement.getAttribute("dir");return es==="auto"||!es?window.getComputedStyle(document.documentElement).direction:es}function Te$1(es,$){let ts={};return[es,$].forEach((is,Kr)=>{let Qr=Kr===1,ja=Qr?"--mobile-offset":"--offset",Ca=Qr?ge$1:me$1;function Aa(Oa){["top","right","bottom","left"].forEach(Ia=>{ts[`${ja}-${Ia}`]=typeof Oa=="number"?`${Oa}px`:Oa})}typeof is=="number"||typeof is=="string"?Aa(is):typeof is=="object"?["top","right","bottom","left"].forEach(Oa=>{is[Oa]===void 0?ts[`${ja}-${Oa}`]=Ca:ts[`${ja}-${Oa}`]=typeof is[Oa]=="number"?`${is[Oa]}px`:is[Oa]}):Aa(Ca)}),ts}var $e$1=reactExports.forwardRef(function(es,$){let{invert:ts,position:is="bottom-right",hotkey:Kr=["altKey","KeyT"],expand:Qr,closeButton:ja,className:Ca,offset:Aa,mobileOffset:Oa,theme:Ia="light",richColors:Da,duration:Ba,style:Ma,visibleToasts:Fa=pe$1,toastOptions:qa,dir:Ha=_t$1(),gap:Ka=be$1,loadingIcon:Qa,icons:Va,containerAriaLabel:Ya="Notifications",pauseWhenPageIsHidden:Wa}=es,[el,tl]=React.useState([]),rl=React.useMemo(()=>Array.from(new Set([is].concat(el.filter($l=>$l.position).map($l=>$l.position)))),[el,is]),[cl,dl]=React.useState([]),[fl,nl]=React.useState(!1),[ol,pl]=React.useState(!1),[Tl,ul]=React.useState(Ia!=="system"?Ia:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),hl=React.useRef(null),jl=Kr.join("+").replace(/Key/g,"").replace(/Digit/g,""),Nl=React.useRef(null),zl=React.useRef(!1),Zl=React.useCallback($l=>{tl(Il=>{var ql;return(ql=Il.find(Fl=>Fl.id===$l.id))!=null&&ql.delete||v$1.dismiss($l.id),Il.filter(({id:Fl})=>Fl!==$l.id)})},[]);return React.useEffect(()=>v$1.subscribe($l=>{if($l.dismiss){tl(Il=>Il.map(ql=>ql.id===$l.id?{...ql,delete:!0}:ql));return}setTimeout(()=>{ReactDOM.flushSync(()=>{tl(Il=>{let ql=Il.findIndex(Fl=>Fl.id===$l.id);return ql!==-1?[...Il.slice(0,ql),{...Il[ql],...$l},...Il.slice(ql+1)]:[$l,...Il]})})})}),[]),React.useEffect(()=>{if(Ia!=="system"){ul(Ia);return}if(Ia==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ul("dark"):ul("light")),typeof window>"u")return;let $l=window.matchMedia("(prefers-color-scheme: dark)");try{$l.addEventListener("change",({matches:Il})=>{ul(Il?"dark":"light")})}catch{$l.addListener(({matches:ql})=>{try{ul(ql?"dark":"light")}catch(Fl){console.error(Fl)}})}},[Ia]),React.useEffect(()=>{el.length<=1&&nl(!1)},[el]),React.useEffect(()=>{let $l=Il=>{var ql,Fl;Kr.every(ru=>Il[ru]||Il.code===ru)&&(nl(!0),(ql=hl.current)==null||ql.focus()),Il.code==="Escape"&&(document.activeElement===hl.current||(Fl=hl.current)!=null&&Fl.contains(document.activeElement))&&nl(!1)};return document.addEventListener("keydown",$l),()=>document.removeEventListener("keydown",$l)},[Kr]),React.useEffect(()=>{if(hl.current)return()=>{Nl.current&&(Nl.current.focus({preventScroll:!0}),Nl.current=null,zl.current=!1)}},[hl.current]),React.createElement("section",{ref:$,"aria-label":`${Ya} ${jl}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},rl.map(($l,Il)=>{var ql;let[Fl,ru]=$l.split("-");return el.length?React.createElement("ol",{key:$l,dir:Ha==="auto"?_t$1():Ha,tabIndex:-1,ref:hl,className:Ca,"data-sonner-toaster":!0,"data-theme":Tl,"data-y-position":Fl,"data-lifted":fl&&el.length>1&&!Qr,"data-x-position":ru,style:{"--front-toast-height":`${((ql=cl[0])==null?void 0:ql.height)||0}px`,"--width":`${he$1}px`,"--gap":`${Ka}px`,...Ma,...Te$1(Aa,Oa)},onBlur:Gl=>{zl.current&&!Gl.currentTarget.contains(Gl.relatedTarget)&&(zl.current=!1,Nl.current&&(Nl.current.focus({preventScroll:!0}),Nl.current=null))},onFocus:Gl=>{Gl.target instanceof HTMLElement&&Gl.target.dataset.dismissible==="false"||zl.current||(zl.current=!0,Nl.current=Gl.relatedTarget)},onMouseEnter:()=>nl(!0),onMouseMove:()=>nl(!0),onMouseLeave:()=>{ol||nl(!1)},onDragEnd:()=>nl(!1),onPointerDown:Gl=>{Gl.target instanceof HTMLElement&&Gl.target.dataset.dismissible==="false"||pl(!0)},onPointerUp:()=>pl(!1)},el.filter(Gl=>!Gl.position&&Il===0||Gl.position===$l).map((Gl,cu)=>{var Al,Ml;return React.createElement(ve$1,{key:Gl.id,icons:Va,index:cu,toast:Gl,defaultRichColors:Da,duration:(Al=qa==null?void 0:qa.duration)!=null?Al:Ba,className:qa==null?void 0:qa.className,descriptionClassName:qa==null?void 0:qa.descriptionClassName,invert:ts,visibleToasts:Fa,closeButton:(Ml=qa==null?void 0:qa.closeButton)!=null?Ml:ja,interacting:ol,position:$l,style:qa==null?void 0:qa.style,unstyled:qa==null?void 0:qa.unstyled,classNames:qa==null?void 0:qa.classNames,cancelButtonStyle:qa==null?void 0:qa.cancelButtonStyle,actionButtonStyle:qa==null?void 0:qa.actionButtonStyle,removeToast:Zl,toasts:el.filter(Ql=>Ql.position==Gl.position),heights:cl.filter(Ql=>Ql.position==Gl.position),setHeights:dl,expandByDefault:Qr,gap:Ka,loadingIcon:Qa,expanded:fl,pauseWhenPageIsHidden:Wa,swipeDirections:es.swipeDirections})})):null}))});const Toaster=({...es})=>{const{theme:$="system"}=z$1();return jsxRuntimeExports.jsx($e$1,{theme:$,className:"toaster group",icons:{success:jsxRuntimeExports.jsx(CircleCheck,{className:"size-4"}),info:jsxRuntimeExports.jsx(Info,{className:"size-4"}),warning:jsxRuntimeExports.jsx(TriangleAlert,{className:"size-4"}),error:jsxRuntimeExports.jsx(OctagonX,{className:"size-4"}),loading:jsxRuntimeExports.jsx(LoaderCircle,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},...es})};function captureException(es,$){}class ErrorBoundary extends reactExports.Component{constructor($){super($),this.state={hasError:!1,error:null}}static getDerivedStateFromError($){return{hasError:!0,error:$}}componentDidCatch($,ts){ts.componentStack}render(){var $;return this.state.hasError?jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:jsxRuntimeExports.jsxs("div",{className:"max-w-md text-center space-y-4",children:[jsxRuntimeExports.jsx("h1",{className:"text-2xl font-bold text-foreground",children:"Something went wrong"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-sm",children:(($=this.state.error)==null?void 0:$.message)??"An unexpected error occurred."}),jsxRuntimeExports.jsx(Button,{variant:"outline",onClick:()=>{this.setState({hasError:!1,error:null}),window.location.href="/dashboard"},children:"Go to Dashboard"})]})}):this.props.children}}const resolveFetch$3=es=>es?(...$)=>es(...$):(...$)=>fetch(...$);class FunctionsError extends Error{constructor($,ts="FunctionsError",is){super($),this.name=ts,this.context=is}}class FunctionsFetchError extends FunctionsError{constructor($){super("Failed to send a request to the Edge Function","FunctionsFetchError",$)}}class FunctionsRelayError extends FunctionsError{constructor($){super("Relay Error invoking the Edge Function","FunctionsRelayError",$)}}class FunctionsHttpError extends FunctionsError{constructor($){super("Edge Function returned a non-2xx status code","FunctionsHttpError",$)}}var FunctionRegion;(function(es){es.Any="any",es.ApNortheast1="ap-northeast-1",es.ApNortheast2="ap-northeast-2",es.ApSouth1="ap-south-1",es.ApSoutheast1="ap-southeast-1",es.ApSoutheast2="ap-southeast-2",es.CaCentral1="ca-central-1",es.EuCentral1="eu-central-1",es.EuWest1="eu-west-1",es.EuWest2="eu-west-2",es.EuWest3="eu-west-3",es.SaEast1="sa-east-1",es.UsEast1="us-east-1",es.UsWest1="us-west-1",es.UsWest2="us-west-2"})(FunctionRegion||(FunctionRegion={}));class FunctionsClient{constructor($,{headers:ts={},customFetch:is,region:Kr=FunctionRegion.Any}={}){this.url=$,this.headers=ts,this.region=Kr,this.fetch=resolveFetch$3(is)}setAuth($){this.headers.Authorization=`Bearer ${$}`}invoke($){return __awaiter(this,arguments,void 0,function*(ts,is={}){var Kr;let Qr,ja;try{const{headers:Ca,method:Aa,body:Oa,signal:Ia,timeout:Da}=is;let Ba={},{region:Ma}=is;Ma||(Ma=this.region);const Fa=new URL(`${this.url}/${ts}`);Ma&&Ma!=="any"&&(Ba["x-region"]=Ma,Fa.searchParams.set("forceFunctionRegion",Ma));let qa;Oa&&(Ca&&!Object.prototype.hasOwnProperty.call(Ca,"Content-Type")||!Ca)?typeof Blob<"u"&&Oa instanceof Blob||Oa instanceof ArrayBuffer?(Ba["Content-Type"]="application/octet-stream",qa=Oa):typeof Oa=="string"?(Ba["Content-Type"]="text/plain",qa=Oa):typeof FormData<"u"&&Oa instanceof FormData?qa=Oa:(Ba["Content-Type"]="application/json",qa=JSON.stringify(Oa)):Oa&&typeof Oa!="string"&&!(typeof Blob<"u"&&Oa instanceof Blob)&&!(Oa instanceof ArrayBuffer)&&!(typeof FormData<"u"&&Oa instanceof FormData)?qa=JSON.stringify(Oa):qa=Oa;let Ha=Ia;Da&&(ja=new AbortController,Qr=setTimeout(()=>ja.abort(),Da),Ia?(Ha=ja.signal,Ia.addEventListener("abort",()=>ja.abort())):Ha=ja.signal);const Ka=yield this.fetch(Fa.toString(),{method:Aa||"POST",headers:Object.assign(Object.assign(Object.assign({},Ba),this.headers),Ca),body:qa,signal:Ha}).catch(Wa=>{throw new FunctionsFetchError(Wa)}),Qa=Ka.headers.get("x-relay-error");if(Qa&&Qa==="true")throw new FunctionsRelayError(Ka);if(!Ka.ok)throw new FunctionsHttpError(Ka);let Va=((Kr=Ka.headers.get("Content-Type"))!==null&&Kr!==void 0?Kr:"text/plain").split(";")[0].trim(),Ya;return Va==="application/json"?Ya=yield Ka.json():Va==="application/octet-stream"||Va==="application/pdf"?Ya=yield Ka.blob():Va==="text/event-stream"?Ya=Ka:Va==="multipart/form-data"?Ya=yield Ka.formData():Ya=yield Ka.text(),{data:Ya,error:null,response:Ka}}catch(Ca){return{data:null,error:Ca,response:Ca instanceof FunctionsHttpError||Ca instanceof FunctionsRelayError?Ca.context:void 0}}finally{Qr&&clearTimeout(Qr)}})}}var PostgrestError=class extends Error{constructor(es){super(es.message),this.name="PostgrestError",this.details=es.details,this.hint=es.hint,this.code=es.code}},PostgrestBuilder=class{constructor(es){var $,ts,is;this.shouldThrowOnError=!1,this.method=es.method,this.url=es.url,this.headers=new Headers(es.headers),this.schema=es.schema,this.body=es.body,this.shouldThrowOnError=($=es.shouldThrowOnError)!==null&&$!==void 0?$:!1,this.signal=es.signal,this.isMaybeSingle=(ts=es.isMaybeSingle)!==null&&ts!==void 0?ts:!1,this.urlLengthLimit=(is=es.urlLengthLimit)!==null&&is!==void 0?is:8e3,es.fetch?this.fetch=es.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(es,$){return this.headers=new Headers(this.headers),this.headers.set(es,$),this}then(es,$){var ts=this;this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json");const is=this.fetch;let Kr=is(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async Qr=>{let ja=null,Ca=null,Aa=null,Oa=Qr.status,Ia=Qr.statusText;if(Qr.ok){var Da,Ba;if(ts.method!=="HEAD"){var Ma;const Ka=await Qr.text();Ka===""||(ts.headers.get("Accept")==="text/csv"||ts.headers.get("Accept")&&(!((Ma=ts.headers.get("Accept"))===null||Ma===void 0)&&Ma.includes("application/vnd.pgrst.plan+text"))?Ca=Ka:Ca=JSON.parse(Ka))}const qa=(Da=ts.headers.get("Prefer"))===null||Da===void 0?void 0:Da.match(/count=(exact|planned|estimated)/),Ha=(Ba=Qr.headers.get("content-range"))===null||Ba===void 0?void 0:Ba.split("/");qa&&Ha&&Ha.length>1&&(Aa=parseInt(Ha[1])),ts.isMaybeSingle&&ts.method==="GET"&&Array.isArray(Ca)&&(Ca.length>1?(ja={code:"PGRST116",details:`Results contain ${Ca.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},Ca=null,Aa=null,Oa=406,Ia="Not Acceptable"):Ca.length===1?Ca=Ca[0]:Ca=null)}else{var Fa;const qa=await Qr.text();try{ja=JSON.parse(qa),Array.isArray(ja)&&Qr.status===404&&(Ca=[],ja=null,Oa=200,Ia="OK")}catch{Qr.status===404&&qa===""?(Oa=204,Ia="No Content"):ja={message:qa}}if(ja&&ts.isMaybeSingle&&(!(ja==null||(Fa=ja.details)===null||Fa===void 0)&&Fa.includes("0 rows"))&&(ja=null,Oa=200,Ia="OK"),ja&&ts.shouldThrowOnError)throw new PostgrestError(ja)}return{error:ja,data:Ca,count:Aa,status:Oa,statusText:Ia}});return this.shouldThrowOnError||(Kr=Kr.catch(Qr=>{var ja;let Ca="",Aa="",Oa="";const Ia=Qr==null?void 0:Qr.cause;if(Ia){var Da,Ba,Ma,Fa;const Ka=(Da=Ia==null?void 0:Ia.message)!==null&&Da!==void 0?Da:"",Qa=(Ba=Ia==null?void 0:Ia.code)!==null&&Ba!==void 0?Ba:"";Ca=`${(Ma=Qr==null?void 0:Qr.name)!==null&&Ma!==void 0?Ma:"FetchError"}: ${Qr==null?void 0:Qr.message}`,Ca+=`
27
-
28
- Caused by: ${(Fa=Ia==null?void 0:Ia.name)!==null&&Fa!==void 0?Fa:"Error"}: ${Ka}`,Qa&&(Ca+=` (${Qa})`),Ia!=null&&Ia.stack&&(Ca+=`
29
- ${Ia.stack}`)}else{var qa;Ca=(qa=Qr==null?void 0:Qr.stack)!==null&&qa!==void 0?qa:""}const Ha=this.url.toString().length;return(Qr==null?void 0:Qr.name)==="AbortError"||(Qr==null?void 0:Qr.code)==="ABORT_ERR"?(Oa="",Aa="Request was aborted (timeout or manual cancellation)",Ha>this.urlLengthLimit&&(Aa+=`. Note: Your request URL is ${Ha} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):((Ia==null?void 0:Ia.name)==="HeadersOverflowError"||(Ia==null?void 0:Ia.code)==="UND_ERR_HEADERS_OVERFLOW")&&(Oa="",Aa="HTTP headers exceeded server limits (typically 16KB)",Ha>this.urlLengthLimit&&(Aa+=`. Your request URL is ${Ha} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{error:{message:`${(ja=Qr==null?void 0:Qr.name)!==null&&ja!==void 0?ja:"FetchError"}: ${Qr==null?void 0:Qr.message}`,details:Ca,hint:Aa,code:Oa},data:null,count:null,status:0,statusText:""}})),Kr.then(es,$)}returns(){return this}overrideTypes(){return this}},PostgrestTransformBuilder=class extends PostgrestBuilder{select(es){let $=!1;const ts=(es??"*").split("").map(is=>/\s/.test(is)&&!$?"":(is==='"'&&($=!$),is)).join("");return this.url.searchParams.set("select",ts),this.headers.append("Prefer","return=representation"),this}order(es,{ascending:$=!0,nullsFirst:ts,foreignTable:is,referencedTable:Kr=is}={}){const Qr=Kr?`${Kr}.order`:"order",ja=this.url.searchParams.get(Qr);return this.url.searchParams.set(Qr,`${ja?`${ja},`:""}${es}.${$?"asc":"desc"}${ts===void 0?"":ts?".nullsfirst":".nullslast"}`),this}limit(es,{foreignTable:$,referencedTable:ts=$}={}){const is=typeof ts>"u"?"limit":`${ts}.limit`;return this.url.searchParams.set(is,`${es}`),this}range(es,$,{foreignTable:ts,referencedTable:is=ts}={}){const Kr=typeof is>"u"?"offset":`${is}.offset`,Qr=typeof is>"u"?"limit":`${is}.limit`;return this.url.searchParams.set(Kr,`${es}`),this.url.searchParams.set(Qr,`${$-es+1}`),this}abortSignal(es){return this.signal=es,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.method==="GET"?this.headers.set("Accept","application/json"):this.headers.set("Accept","application/vnd.pgrst.object+json"),this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:es=!1,verbose:$=!1,settings:ts=!1,buffers:is=!1,wal:Kr=!1,format:Qr="text"}={}){var ja;const Ca=[es?"analyze":null,$?"verbose":null,ts?"settings":null,is?"buffers":null,Kr?"wal":null].filter(Boolean).join("|"),Aa=(ja=this.headers.get("Accept"))!==null&&ja!==void 0?ja:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${Qr}; for="${Aa}"; options=${Ca};`),Qr==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(es){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${es}`),this}};const PostgrestReservedCharsRegexp=new RegExp("[,()]");var PostgrestFilterBuilder=class extends PostgrestTransformBuilder{eq(es,$){return this.url.searchParams.append(es,`eq.${$}`),this}neq(es,$){return this.url.searchParams.append(es,`neq.${$}`),this}gt(es,$){return this.url.searchParams.append(es,`gt.${$}`),this}gte(es,$){return this.url.searchParams.append(es,`gte.${$}`),this}lt(es,$){return this.url.searchParams.append(es,`lt.${$}`),this}lte(es,$){return this.url.searchParams.append(es,`lte.${$}`),this}like(es,$){return this.url.searchParams.append(es,`like.${$}`),this}likeAllOf(es,$){return this.url.searchParams.append(es,`like(all).{${$.join(",")}}`),this}likeAnyOf(es,$){return this.url.searchParams.append(es,`like(any).{${$.join(",")}}`),this}ilike(es,$){return this.url.searchParams.append(es,`ilike.${$}`),this}ilikeAllOf(es,$){return this.url.searchParams.append(es,`ilike(all).{${$.join(",")}}`),this}ilikeAnyOf(es,$){return this.url.searchParams.append(es,`ilike(any).{${$.join(",")}}`),this}regexMatch(es,$){return this.url.searchParams.append(es,`match.${$}`),this}regexIMatch(es,$){return this.url.searchParams.append(es,`imatch.${$}`),this}is(es,$){return this.url.searchParams.append(es,`is.${$}`),this}isDistinct(es,$){return this.url.searchParams.append(es,`isdistinct.${$}`),this}in(es,$){const ts=Array.from(new Set($)).map(is=>typeof is=="string"&&PostgrestReservedCharsRegexp.test(is)?`"${is}"`:`${is}`).join(",");return this.url.searchParams.append(es,`in.(${ts})`),this}notIn(es,$){const ts=Array.from(new Set($)).map(is=>typeof is=="string"&&PostgrestReservedCharsRegexp.test(is)?`"${is}"`:`${is}`).join(",");return this.url.searchParams.append(es,`not.in.(${ts})`),this}contains(es,$){return typeof $=="string"?this.url.searchParams.append(es,`cs.${$}`):Array.isArray($)?this.url.searchParams.append(es,`cs.{${$.join(",")}}`):this.url.searchParams.append(es,`cs.${JSON.stringify($)}`),this}containedBy(es,$){return typeof $=="string"?this.url.searchParams.append(es,`cd.${$}`):Array.isArray($)?this.url.searchParams.append(es,`cd.{${$.join(",")}}`):this.url.searchParams.append(es,`cd.${JSON.stringify($)}`),this}rangeGt(es,$){return this.url.searchParams.append(es,`sr.${$}`),this}rangeGte(es,$){return this.url.searchParams.append(es,`nxl.${$}`),this}rangeLt(es,$){return this.url.searchParams.append(es,`sl.${$}`),this}rangeLte(es,$){return this.url.searchParams.append(es,`nxr.${$}`),this}rangeAdjacent(es,$){return this.url.searchParams.append(es,`adj.${$}`),this}overlaps(es,$){return typeof $=="string"?this.url.searchParams.append(es,`ov.${$}`):this.url.searchParams.append(es,`ov.{${$.join(",")}}`),this}textSearch(es,$,{config:ts,type:is}={}){let Kr="";is==="plain"?Kr="pl":is==="phrase"?Kr="ph":is==="websearch"&&(Kr="w");const Qr=ts===void 0?"":`(${ts})`;return this.url.searchParams.append(es,`${Kr}fts${Qr}.${$}`),this}match(es){return Object.entries(es).forEach(([$,ts])=>{this.url.searchParams.append($,`eq.${ts}`)}),this}not(es,$,ts){return this.url.searchParams.append(es,`not.${$}.${ts}`),this}or(es,{foreignTable:$,referencedTable:ts=$}={}){const is=ts?`${ts}.or`:"or";return this.url.searchParams.append(is,`(${es})`),this}filter(es,$,ts){return this.url.searchParams.append(es,`${$}.${ts}`),this}},PostgrestQueryBuilder=class{constructor(es,{headers:$={},schema:ts,fetch:is,urlLengthLimit:Kr=8e3}){this.url=es,this.headers=new Headers($),this.schema=ts,this.fetch=is,this.urlLengthLimit=Kr}cloneRequestState(){return{url:new URL(this.url.toString()),headers:new Headers(this.headers)}}select(es,$){const{head:ts=!1,count:is}=$??{},Kr=ts?"HEAD":"GET";let Qr=!1;const ja=(es??"*").split("").map(Oa=>/\s/.test(Oa)&&!Qr?"":(Oa==='"'&&(Qr=!Qr),Oa)).join(""),{url:Ca,headers:Aa}=this.cloneRequestState();return Ca.searchParams.set("select",ja),is&&Aa.append("Prefer",`count=${is}`),new PostgrestFilterBuilder({method:Kr,url:Ca,headers:Aa,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}insert(es,{count:$,defaultToNull:ts=!0}={}){var is;const Kr="POST",{url:Qr,headers:ja}=this.cloneRequestState();if($&&ja.append("Prefer",`count=${$}`),ts||ja.append("Prefer","missing=default"),Array.isArray(es)){const Ca=es.reduce((Aa,Oa)=>Aa.concat(Object.keys(Oa)),[]);if(Ca.length>0){const Aa=[...new Set(Ca)].map(Oa=>`"${Oa}"`);Qr.searchParams.set("columns",Aa.join(","))}}return new PostgrestFilterBuilder({method:Kr,url:Qr,headers:ja,schema:this.schema,body:es,fetch:(is=this.fetch)!==null&&is!==void 0?is:fetch,urlLengthLimit:this.urlLengthLimit})}upsert(es,{onConflict:$,ignoreDuplicates:ts=!1,count:is,defaultToNull:Kr=!0}={}){var Qr;const ja="POST",{url:Ca,headers:Aa}=this.cloneRequestState();if(Aa.append("Prefer",`resolution=${ts?"ignore":"merge"}-duplicates`),$!==void 0&&Ca.searchParams.set("on_conflict",$),is&&Aa.append("Prefer",`count=${is}`),Kr||Aa.append("Prefer","missing=default"),Array.isArray(es)){const Oa=es.reduce((Ia,Da)=>Ia.concat(Object.keys(Da)),[]);if(Oa.length>0){const Ia=[...new Set(Oa)].map(Da=>`"${Da}"`);Ca.searchParams.set("columns",Ia.join(","))}}return new PostgrestFilterBuilder({method:ja,url:Ca,headers:Aa,schema:this.schema,body:es,fetch:(Qr=this.fetch)!==null&&Qr!==void 0?Qr:fetch,urlLengthLimit:this.urlLengthLimit})}update(es,{count:$}={}){var ts;const is="PATCH",{url:Kr,headers:Qr}=this.cloneRequestState();return $&&Qr.append("Prefer",`count=${$}`),new PostgrestFilterBuilder({method:is,url:Kr,headers:Qr,schema:this.schema,body:es,fetch:(ts=this.fetch)!==null&&ts!==void 0?ts:fetch,urlLengthLimit:this.urlLengthLimit})}delete({count:es}={}){var $;const ts="DELETE",{url:is,headers:Kr}=this.cloneRequestState();return es&&Kr.append("Prefer",`count=${es}`),new PostgrestFilterBuilder({method:ts,url:is,headers:Kr,schema:this.schema,fetch:($=this.fetch)!==null&&$!==void 0?$:fetch,urlLengthLimit:this.urlLengthLimit})}};function _typeof$2(es){"@babel/helpers - typeof";return _typeof$2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_typeof$2(es)}function toPrimitive$2(es,$){if(_typeof$2(es)!="object"||!es)return es;var ts=es[Symbol.toPrimitive];if(ts!==void 0){var is=ts.call(es,$);if(_typeof$2(is)!="object")return is;throw new TypeError("@@toPrimitive must return a primitive value.")}return($==="string"?String:Number)(es)}function toPropertyKey$2(es){var $=toPrimitive$2(es,"string");return _typeof$2($)=="symbol"?$:$+""}function _defineProperty$2(es,$,ts){return($=toPropertyKey$2($))in es?Object.defineProperty(es,$,{value:ts,enumerable:!0,configurable:!0,writable:!0}):es[$]=ts,es}function ownKeys$2(es,$){var ts=Object.keys(es);if(Object.getOwnPropertySymbols){var is=Object.getOwnPropertySymbols(es);$&&(is=is.filter(function(Kr){return Object.getOwnPropertyDescriptor(es,Kr).enumerable})),ts.push.apply(ts,is)}return ts}function _objectSpread2$2(es){for(var $=1;$<arguments.length;$++){var ts=arguments[$]!=null?arguments[$]:{};$%2?ownKeys$2(Object(ts),!0).forEach(function(is){_defineProperty$2(es,is,ts[is])}):Object.getOwnPropertyDescriptors?Object.defineProperties(es,Object.getOwnPropertyDescriptors(ts)):ownKeys$2(Object(ts)).forEach(function(is){Object.defineProperty(es,is,Object.getOwnPropertyDescriptor(ts,is))})}return es}var PostgrestClient=class Sb{constructor($,{headers:ts={},schema:is,fetch:Kr,timeout:Qr,urlLengthLimit:ja=8e3}={}){this.url=$,this.headers=new Headers(ts),this.schemaName=is,this.urlLengthLimit=ja;const Ca=Kr??globalThis.fetch;Qr!==void 0&&Qr>0?this.fetch=(Aa,Oa)=>{const Ia=new AbortController,Da=setTimeout(()=>Ia.abort(),Qr),Ba=Oa==null?void 0:Oa.signal;if(Ba){if(Ba.aborted)return clearTimeout(Da),Ca(Aa,Oa);const Ma=()=>{clearTimeout(Da),Ia.abort()};return Ba.addEventListener("abort",Ma,{once:!0}),Ca(Aa,_objectSpread2$2(_objectSpread2$2({},Oa),{},{signal:Ia.signal})).finally(()=>{clearTimeout(Da),Ba.removeEventListener("abort",Ma)})}return Ca(Aa,_objectSpread2$2(_objectSpread2$2({},Oa),{},{signal:Ia.signal})).finally(()=>clearTimeout(Da))}:this.fetch=Ca}from($){if(!$||typeof $!="string"||$.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new PostgrestQueryBuilder(new URL(`${this.url}/${$}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}schema($){return new Sb(this.url,{headers:this.headers,schema:$,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}rpc($,ts={},{head:is=!1,get:Kr=!1,count:Qr}={}){var ja;let Ca;const Aa=new URL(`${this.url}/rpc/${$}`);let Oa;const Ia=Ma=>Ma!==null&&typeof Ma=="object"&&(!Array.isArray(Ma)||Ma.some(Ia)),Da=is&&Object.values(ts).some(Ia);Da?(Ca="POST",Oa=ts):is||Kr?(Ca=is?"HEAD":"GET",Object.entries(ts).filter(([Ma,Fa])=>Fa!==void 0).map(([Ma,Fa])=>[Ma,Array.isArray(Fa)?`{${Fa.join(",")}}`:`${Fa}`]).forEach(([Ma,Fa])=>{Aa.searchParams.append(Ma,Fa)})):(Ca="POST",Oa=ts);const Ba=new Headers(this.headers);return Da?Ba.set("Prefer",Qr?`count=${Qr},return=minimal`:"return=minimal"):Qr&&Ba.set("Prefer",`count=${Qr}`),new PostgrestFilterBuilder({method:Ca,url:Aa,headers:Ba,schema:this.schemaName,body:Oa,fetch:(ja=this.fetch)!==null&&ja!==void 0?ja:fetch,urlLengthLimit:this.urlLengthLimit})}};class WebSocketFactory{constructor(){}static detectEnvironment(){var $;if(typeof WebSocket<"u")return{type:"native",constructor:WebSocket};if(typeof globalThis<"u"&&typeof globalThis.WebSocket<"u")return{type:"native",constructor:globalThis.WebSocket};if(typeof global<"u"&&typeof global.WebSocket<"u")return{type:"native",constructor:global.WebSocket};if(typeof globalThis<"u"&&typeof globalThis.WebSocketPair<"u"&&typeof globalThis.WebSocket>"u")return{type:"cloudflare",error:"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.",workaround:"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime."};if(typeof globalThis<"u"&&globalThis.EdgeRuntime||typeof navigator<"u"&&(!(($=navigator.userAgent)===null||$===void 0)&&$.includes("Vercel-Edge")))return{type:"unsupported",error:"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.",workaround:"Use serverless functions or a different deployment target for WebSocket functionality."};const ts=globalThis.process;if(ts){const is=ts.versions;if(is&&is.node){const Kr=is.node,Qr=parseInt(Kr.replace(/^v/,"").split(".")[0]);return Qr>=22?typeof globalThis.WebSocket<"u"?{type:"native",constructor:globalThis.WebSocket}:{type:"unsupported",error:`Node.js ${Qr} detected but native WebSocket not found.`,workaround:"Provide a WebSocket implementation via the transport option."}:{type:"unsupported",error:`Node.js ${Qr} detected without native WebSocket support.`,workaround:`For Node.js < 22, install "ws" package and provide it via the transport option:
30
- import ws from "ws"
31
- new RealtimeClient(url, { transport: ws })`}}}return{type:"unsupported",error:"Unknown JavaScript runtime without WebSocket support.",workaround:"Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation."}}static getWebSocketConstructor(){const $=this.detectEnvironment();if($.constructor)return $.constructor;let ts=$.error||"WebSocket not supported in this environment.";throw $.workaround&&(ts+=`
32
-
33
- Suggested solution: ${$.workaround}`),new Error(ts)}static createWebSocket($,ts){const is=this.getWebSocketConstructor();return new is($,ts)}static isWebSocketSupported(){try{const $=this.detectEnvironment();return $.type==="native"||$.type==="ws"}catch{return!1}}}const version$3="2.95.3",DEFAULT_VERSION=`realtime-js/${version$3}`,VSN_1_0_0="1.0.0",VSN_2_0_0="2.0.0",DEFAULT_VSN=VSN_2_0_0,DEFAULT_TIMEOUT=1e4,WS_CLOSE_NORMAL=1e3,MAX_PUSH_BUFFER_SIZE=100;var SOCKET_STATES;(function(es){es[es.connecting=0]="connecting",es[es.open=1]="open",es[es.closing=2]="closing",es[es.closed=3]="closed"})(SOCKET_STATES||(SOCKET_STATES={}));var CHANNEL_STATES;(function(es){es.closed="closed",es.errored="errored",es.joined="joined",es.joining="joining",es.leaving="leaving"})(CHANNEL_STATES||(CHANNEL_STATES={}));var CHANNEL_EVENTS;(function(es){es.close="phx_close",es.error="phx_error",es.join="phx_join",es.reply="phx_reply",es.leave="phx_leave",es.access_token="access_token"})(CHANNEL_EVENTS||(CHANNEL_EVENTS={}));var TRANSPORTS;(function(es){es.websocket="websocket"})(TRANSPORTS||(TRANSPORTS={}));var CONNECTION_STATE;(function(es){es.Connecting="connecting",es.Open="open",es.Closing="closing",es.Closed="closed"})(CONNECTION_STATE||(CONNECTION_STATE={}));class Serializer{constructor($){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT="broadcast",this.allowedMetadataKeys=[],this.allowedMetadataKeys=$??[]}encode($,ts){if($.event===this.BROADCAST_EVENT&&!($.payload instanceof ArrayBuffer)&&typeof $.payload.event=="string")return ts(this._binaryEncodeUserBroadcastPush($));let is=[$.join_ref,$.ref,$.topic,$.event,$.payload];return ts(JSON.stringify(is))}_binaryEncodeUserBroadcastPush($){var ts;return this._isArrayBuffer((ts=$.payload)===null||ts===void 0?void 0:ts.payload)?this._encodeBinaryUserBroadcastPush($):this._encodeJsonUserBroadcastPush($)}_encodeBinaryUserBroadcastPush($){var ts,is;const Kr=(is=(ts=$.payload)===null||ts===void 0?void 0:ts.payload)!==null&&is!==void 0?is:new ArrayBuffer(0);return this._encodeUserBroadcastPush($,this.BINARY_ENCODING,Kr)}_encodeJsonUserBroadcastPush($){var ts,is;const Kr=(is=(ts=$.payload)===null||ts===void 0?void 0:ts.payload)!==null&&is!==void 0?is:{},ja=new TextEncoder().encode(JSON.stringify(Kr)).buffer;return this._encodeUserBroadcastPush($,this.JSON_ENCODING,ja)}_encodeUserBroadcastPush($,ts,is){var Kr,Qr;const ja=$.topic,Ca=(Kr=$.ref)!==null&&Kr!==void 0?Kr:"",Aa=(Qr=$.join_ref)!==null&&Qr!==void 0?Qr:"",Oa=$.payload.event,Ia=this.allowedMetadataKeys?this._pick($.payload,this.allowedMetadataKeys):{},Da=Object.keys(Ia).length===0?"":JSON.stringify(Ia);if(Aa.length>255)throw new Error(`joinRef length ${Aa.length} exceeds maximum of 255`);if(Ca.length>255)throw new Error(`ref length ${Ca.length} exceeds maximum of 255`);if(ja.length>255)throw new Error(`topic length ${ja.length} exceeds maximum of 255`);if(Oa.length>255)throw new Error(`userEvent length ${Oa.length} exceeds maximum of 255`);if(Da.length>255)throw new Error(`metadata length ${Da.length} exceeds maximum of 255`);const Ba=this.USER_BROADCAST_PUSH_META_LENGTH+Aa.length+Ca.length+ja.length+Oa.length+Da.length,Ma=new ArrayBuffer(this.HEADER_LENGTH+Ba);let Fa=new DataView(Ma),qa=0;Fa.setUint8(qa++,this.KINDS.userBroadcastPush),Fa.setUint8(qa++,Aa.length),Fa.setUint8(qa++,Ca.length),Fa.setUint8(qa++,ja.length),Fa.setUint8(qa++,Oa.length),Fa.setUint8(qa++,Da.length),Fa.setUint8(qa++,ts),Array.from(Aa,Ka=>Fa.setUint8(qa++,Ka.charCodeAt(0))),Array.from(Ca,Ka=>Fa.setUint8(qa++,Ka.charCodeAt(0))),Array.from(ja,Ka=>Fa.setUint8(qa++,Ka.charCodeAt(0))),Array.from(Oa,Ka=>Fa.setUint8(qa++,Ka.charCodeAt(0))),Array.from(Da,Ka=>Fa.setUint8(qa++,Ka.charCodeAt(0)));var Ha=new Uint8Array(Ma.byteLength+is.byteLength);return Ha.set(new Uint8Array(Ma),0),Ha.set(new Uint8Array(is),Ma.byteLength),Ha.buffer}decode($,ts){if(this._isArrayBuffer($)){let is=this._binaryDecode($);return ts(is)}if(typeof $=="string"){const is=JSON.parse($),[Kr,Qr,ja,Ca,Aa]=is;return ts({join_ref:Kr,ref:Qr,topic:ja,event:Ca,payload:Aa})}return ts({})}_binaryDecode($){const ts=new DataView($),is=ts.getUint8(0),Kr=new TextDecoder;switch(is){case this.KINDS.userBroadcast:return this._decodeUserBroadcast($,ts,Kr)}}_decodeUserBroadcast($,ts,is){const Kr=ts.getUint8(1),Qr=ts.getUint8(2),ja=ts.getUint8(3),Ca=ts.getUint8(4);let Aa=this.HEADER_LENGTH+4;const Oa=is.decode($.slice(Aa,Aa+Kr));Aa=Aa+Kr;const Ia=is.decode($.slice(Aa,Aa+Qr));Aa=Aa+Qr;const Da=is.decode($.slice(Aa,Aa+ja));Aa=Aa+ja;const Ba=$.slice(Aa,$.byteLength),Ma=Ca===this.JSON_ENCODING?JSON.parse(is.decode(Ba)):Ba,Fa={type:this.BROADCAST_EVENT,event:Ia,payload:Ma};return ja>0&&(Fa.meta=JSON.parse(Da)),{join_ref:null,ref:null,topic:Oa,event:this.BROADCAST_EVENT,payload:Fa}}_isArrayBuffer($){var ts;return $ instanceof ArrayBuffer||((ts=$==null?void 0:$.constructor)===null||ts===void 0?void 0:ts.name)==="ArrayBuffer"}_pick($,ts){return!$||typeof $!="object"?{}:Object.fromEntries(Object.entries($).filter(([is])=>ts.includes(is)))}}class Timer{constructor($,ts){this.callback=$,this.timerCalc=ts,this.timer=void 0,this.tries=0,this.callback=$,this.timerCalc=ts}reset(){this.tries=0,clearTimeout(this.timer),this.timer=void 0}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}}var PostgresTypes;(function(es){es.abstime="abstime",es.bool="bool",es.date="date",es.daterange="daterange",es.float4="float4",es.float8="float8",es.int2="int2",es.int4="int4",es.int4range="int4range",es.int8="int8",es.int8range="int8range",es.json="json",es.jsonb="jsonb",es.money="money",es.numeric="numeric",es.oid="oid",es.reltime="reltime",es.text="text",es.time="time",es.timestamp="timestamp",es.timestamptz="timestamptz",es.timetz="timetz",es.tsrange="tsrange",es.tstzrange="tstzrange"})(PostgresTypes||(PostgresTypes={}));const convertChangeData=(es,$,ts={})=>{var is;const Kr=(is=ts.skipTypes)!==null&&is!==void 0?is:[];return $?Object.keys($).reduce((Qr,ja)=>(Qr[ja]=convertColumn(ja,es,$,Kr),Qr),{}):{}},convertColumn=(es,$,ts,is)=>{const Kr=$.find(Ca=>Ca.name===es),Qr=Kr==null?void 0:Kr.type,ja=ts[es];return Qr&&!is.includes(Qr)?convertCell(Qr,ja):noop$1(ja)},convertCell=(es,$)=>{if(es.charAt(0)==="_"){const ts=es.slice(1,es.length);return toArray($,ts)}switch(es){case PostgresTypes.bool:return toBoolean($);case PostgresTypes.float4:case PostgresTypes.float8:case PostgresTypes.int2:case PostgresTypes.int4:case PostgresTypes.int8:case PostgresTypes.numeric:case PostgresTypes.oid:return toNumber($);case PostgresTypes.json:case PostgresTypes.jsonb:return toJson($);case PostgresTypes.timestamp:return toTimestampString($);case PostgresTypes.abstime:case PostgresTypes.date:case PostgresTypes.daterange:case PostgresTypes.int4range:case PostgresTypes.int8range:case PostgresTypes.money:case PostgresTypes.reltime:case PostgresTypes.text:case PostgresTypes.time:case PostgresTypes.timestamptz:case PostgresTypes.timetz:case PostgresTypes.tsrange:case PostgresTypes.tstzrange:return noop$1($);default:return noop$1($)}},noop$1=es=>es,toBoolean=es=>{switch(es){case"t":return!0;case"f":return!1;default:return es}},toNumber=es=>{if(typeof es=="string"){const $=parseFloat(es);if(!Number.isNaN($))return $}return es},toJson=es=>{if(typeof es=="string")try{return JSON.parse(es)}catch{return es}return es},toArray=(es,$)=>{if(typeof es!="string")return es;const ts=es.length-1,is=es[ts];if(es[0]==="{"&&is==="}"){let Qr;const ja=es.slice(1,ts);try{Qr=JSON.parse("["+ja+"]")}catch{Qr=ja?ja.split(","):[]}return Qr.map(Ca=>convertCell($,Ca))}return es},toTimestampString=es=>typeof es=="string"?es.replace(" ","T"):es,httpEndpointURL=es=>{const $=new URL(es);return $.protocol=$.protocol.replace(/^ws/i,"http"),$.pathname=$.pathname.replace(/\/+$/,"").replace(/\/socket\/websocket$/i,"").replace(/\/socket$/i,"").replace(/\/websocket$/i,""),$.pathname===""||$.pathname==="/"?$.pathname="/api/broadcast":$.pathname=$.pathname+"/api/broadcast",$.href};class Push{constructor($,ts,is={},Kr=DEFAULT_TIMEOUT){this.channel=$,this.event=ts,this.payload=is,this.timeout=Kr,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend($){this.timeout=$,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref,join_ref:this.channel._joinRef()}))}updatePayload($){this.payload=Object.assign(Object.assign({},this.payload),$)}receive($,ts){var is;return this._hasReceived($)&&ts((is=this.receivedResp)===null||is===void 0?void 0:is.response),this.recHooks.push({status:$,callback:ts}),this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket._makeRef(),this.refEvent=this.channel._replyEventName(this.ref);const $=ts=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=ts,this._matchReceive(ts)};this.channel._on(this.refEvent,{},$),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}trigger($,ts){this.refEvent&&this.channel._trigger(this.refEvent,{status:$,response:ts})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel._off(this.refEvent,{})}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:$,response:ts}){this.recHooks.filter(is=>is.status===$).forEach(is=>is.callback(ts))}_hasReceived($){return this.receivedResp&&this.receivedResp.status===$}}var REALTIME_PRESENCE_LISTEN_EVENTS;(function(es){es.SYNC="sync",es.JOIN="join",es.LEAVE="leave"})(REALTIME_PRESENCE_LISTEN_EVENTS||(REALTIME_PRESENCE_LISTEN_EVENTS={}));class RealtimePresence{constructor($,ts){this.channel=$,this.state={},this.pendingDiffs=[],this.joinRef=null,this.enabled=!1,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const is=(ts==null?void 0:ts.events)||{state:"presence_state",diff:"presence_diff"};this.channel._on(is.state,{},Kr=>{const{onJoin:Qr,onLeave:ja,onSync:Ca}=this.caller;this.joinRef=this.channel._joinRef(),this.state=RealtimePresence.syncState(this.state,Kr,Qr,ja),this.pendingDiffs.forEach(Aa=>{this.state=RealtimePresence.syncDiff(this.state,Aa,Qr,ja)}),this.pendingDiffs=[],Ca()}),this.channel._on(is.diff,{},Kr=>{const{onJoin:Qr,onLeave:ja,onSync:Ca}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(Kr):(this.state=RealtimePresence.syncDiff(this.state,Kr,Qr,ja),Ca())}),this.onJoin((Kr,Qr,ja)=>{this.channel._trigger("presence",{event:"join",key:Kr,currentPresences:Qr,newPresences:ja})}),this.onLeave((Kr,Qr,ja)=>{this.channel._trigger("presence",{event:"leave",key:Kr,currentPresences:Qr,leftPresences:ja})}),this.onSync(()=>{this.channel._trigger("presence",{event:"sync"})})}static syncState($,ts,is,Kr){const Qr=this.cloneDeep($),ja=this.transformState(ts),Ca={},Aa={};return this.map(Qr,(Oa,Ia)=>{ja[Oa]||(Aa[Oa]=Ia)}),this.map(ja,(Oa,Ia)=>{const Da=Qr[Oa];if(Da){const Ba=Ia.map(Ha=>Ha.presence_ref),Ma=Da.map(Ha=>Ha.presence_ref),Fa=Ia.filter(Ha=>Ma.indexOf(Ha.presence_ref)<0),qa=Da.filter(Ha=>Ba.indexOf(Ha.presence_ref)<0);Fa.length>0&&(Ca[Oa]=Fa),qa.length>0&&(Aa[Oa]=qa)}else Ca[Oa]=Ia}),this.syncDiff(Qr,{joins:Ca,leaves:Aa},is,Kr)}static syncDiff($,ts,is,Kr){const{joins:Qr,leaves:ja}={joins:this.transformState(ts.joins),leaves:this.transformState(ts.leaves)};return is||(is=()=>{}),Kr||(Kr=()=>{}),this.map(Qr,(Ca,Aa)=>{var Oa;const Ia=(Oa=$[Ca])!==null&&Oa!==void 0?Oa:[];if($[Ca]=this.cloneDeep(Aa),Ia.length>0){const Da=$[Ca].map(Ma=>Ma.presence_ref),Ba=Ia.filter(Ma=>Da.indexOf(Ma.presence_ref)<0);$[Ca].unshift(...Ba)}is(Ca,Ia,Aa)}),this.map(ja,(Ca,Aa)=>{let Oa=$[Ca];if(!Oa)return;const Ia=Aa.map(Da=>Da.presence_ref);Oa=Oa.filter(Da=>Ia.indexOf(Da.presence_ref)<0),$[Ca]=Oa,Kr(Ca,Oa,Aa),Oa.length===0&&delete $[Ca]}),$}static map($,ts){return Object.getOwnPropertyNames($).map(is=>ts(is,$[is]))}static transformState($){return $=this.cloneDeep($),Object.getOwnPropertyNames($).reduce((ts,is)=>{const Kr=$[is];return"metas"in Kr?ts[is]=Kr.metas.map(Qr=>(Qr.presence_ref=Qr.phx_ref,delete Qr.phx_ref,delete Qr.phx_ref_prev,Qr)):ts[is]=Kr,ts},{})}static cloneDeep($){return JSON.parse(JSON.stringify($))}onJoin($){this.caller.onJoin=$}onLeave($){this.caller.onLeave=$}onSync($){this.caller.onSync=$}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}}var REALTIME_POSTGRES_CHANGES_LISTEN_EVENT;(function(es){es.ALL="*",es.INSERT="INSERT",es.UPDATE="UPDATE",es.DELETE="DELETE"})(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT||(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT={}));var REALTIME_LISTEN_TYPES;(function(es){es.BROADCAST="broadcast",es.PRESENCE="presence",es.POSTGRES_CHANGES="postgres_changes",es.SYSTEM="system"})(REALTIME_LISTEN_TYPES||(REALTIME_LISTEN_TYPES={}));var REALTIME_SUBSCRIBE_STATES;(function(es){es.SUBSCRIBED="SUBSCRIBED",es.TIMED_OUT="TIMED_OUT",es.CLOSED="CLOSED",es.CHANNEL_ERROR="CHANNEL_ERROR"})(REALTIME_SUBSCRIBE_STATES||(REALTIME_SUBSCRIBE_STATES={}));class RealtimeChannel{constructor($,ts={config:{}},is){var Kr,Qr;if(this.topic=$,this.params=ts,this.socket=is,this.bindings={},this.state=CHANNEL_STATES.closed,this.joinedOnce=!1,this.pushBuffer=[],this.subTopic=$.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},ts.config),this.timeout=this.socket.timeout,this.joinPush=new Push(this,CHANNEL_EVENTS.join,this.params,this.timeout),this.rejoinTimer=new Timer(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=CHANNEL_STATES.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(ja=>ja.send()),this.pushBuffer=[]}),this._onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this._joinRef()}`),this.state=CHANNEL_STATES.closed,this.socket._remove(this)}),this._onError(ja=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,ja),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{this._isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("error",ja=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,ja),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this._on(CHANNEL_EVENTS.reply,{},(ja,Ca)=>{this._trigger(this._replyEventName(Ca),ja)}),this.presence=new RealtimePresence(this),this.broadcastEndpointURL=httpEndpointURL(this.socket.endPoint),this.private=this.params.config.private||!1,!this.private&&(!((Qr=(Kr=this.params.config)===null||Kr===void 0?void 0:Kr.broadcast)===null||Qr===void 0)&&Qr.replay))throw`tried to use replay on public channel '${this.topic}'. It must be a private channel.`}subscribe($,ts=this.timeout){var is,Kr,Qr;if(this.socket.isConnected()||this.socket.connect(),this.state==CHANNEL_STATES.closed){const{config:{broadcast:ja,presence:Ca,private:Aa}}=this.params,Oa=(Kr=(is=this.bindings.postgres_changes)===null||is===void 0?void 0:is.map(Ma=>Ma.filter))!==null&&Kr!==void 0?Kr:[],Ia=!!this.bindings[REALTIME_LISTEN_TYPES.PRESENCE]&&this.bindings[REALTIME_LISTEN_TYPES.PRESENCE].length>0||((Qr=this.params.config.presence)===null||Qr===void 0?void 0:Qr.enabled)===!0,Da={},Ba={broadcast:ja,presence:Object.assign(Object.assign({},Ca),{enabled:Ia}),postgres_changes:Oa,private:Aa};this.socket.accessTokenValue&&(Da.access_token=this.socket.accessTokenValue),this._onError(Ma=>$==null?void 0:$(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR,Ma)),this._onClose(()=>$==null?void 0:$(REALTIME_SUBSCRIBE_STATES.CLOSED)),this.updateJoinPayload(Object.assign({config:Ba},Da)),this.joinedOnce=!0,this._rejoin(ts),this.joinPush.receive("ok",async({postgres_changes:Ma})=>{var Fa;if(this.socket._isManualToken()||this.socket.setAuth(),Ma===void 0){$==null||$(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);return}else{const qa=this.bindings.postgres_changes,Ha=(Fa=qa==null?void 0:qa.length)!==null&&Fa!==void 0?Fa:0,Ka=[];for(let Qa=0;Qa<Ha;Qa++){const Va=qa[Qa],{filter:{event:Ya,schema:Wa,table:el,filter:tl}}=Va,rl=Ma&&Ma[Qa];if(rl&&rl.event===Ya&&RealtimeChannel.isFilterValueEqual(rl.schema,Wa)&&RealtimeChannel.isFilterValueEqual(rl.table,el)&&RealtimeChannel.isFilterValueEqual(rl.filter,tl))Ka.push(Object.assign(Object.assign({},Va),{id:rl.id}));else{this.unsubscribe(),this.state=CHANNEL_STATES.errored,$==null||$(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR,new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=Ka,$&&$(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);return}}).receive("error",Ma=>{this.state=CHANNEL_STATES.errored,$==null||$(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR,new Error(JSON.stringify(Object.values(Ma).join(", ")||"error")))}).receive("timeout",()=>{$==null||$(REALTIME_SUBSCRIBE_STATES.TIMED_OUT)})}return this}presenceState(){return this.presence.state}async track($,ts={}){return await this.send({type:"presence",event:"track",payload:$},ts.timeout||this.timeout)}async untrack($={}){return await this.send({type:"presence",event:"untrack"},$)}on($,ts,is){return this.state===CHANNEL_STATES.joined&&$===REALTIME_LISTEN_TYPES.PRESENCE&&(this.socket.log("channel",`resubscribe to ${this.topic} due to change in presence callbacks on joined channel`),this.unsubscribe().then(async()=>await this.subscribe())),this._on($,ts,is)}async httpSend($,ts,is={}){var Kr;if(ts==null)return Promise.reject("Payload is required for httpSend()");const Qr={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(Qr.Authorization=`Bearer ${this.socket.accessTokenValue}`);const ja={method:"POST",headers:Qr,body:JSON.stringify({messages:[{topic:this.subTopic,event:$,payload:ts,private:this.private}]})},Ca=await this._fetchWithTimeout(this.broadcastEndpointURL,ja,(Kr=is.timeout)!==null&&Kr!==void 0?Kr:this.timeout);if(Ca.status===202)return{success:!0};let Aa=Ca.statusText;try{const Oa=await Ca.json();Aa=Oa.error||Oa.message||Aa}catch{}return Promise.reject(new Error(Aa))}async send($,ts={}){var is,Kr;if(!this._canPush()&&$.type==="broadcast"){console.warn("Realtime send() is automatically falling back to REST API. This behavior will be deprecated in the future. Please use httpSend() explicitly for REST delivery.");const{event:Qr,payload:ja}=$,Ca={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(Ca.Authorization=`Bearer ${this.socket.accessTokenValue}`);const Aa={method:"POST",headers:Ca,body:JSON.stringify({messages:[{topic:this.subTopic,event:Qr,payload:ja,private:this.private}]})};try{const Oa=await this._fetchWithTimeout(this.broadcastEndpointURL,Aa,(is=ts.timeout)!==null&&is!==void 0?is:this.timeout);return await((Kr=Oa.body)===null||Kr===void 0?void 0:Kr.cancel()),Oa.ok?"ok":"error"}catch(Oa){return Oa.name==="AbortError"?"timed out":"error"}}else return new Promise(Qr=>{var ja,Ca,Aa;const Oa=this._push($.type,$,ts.timeout||this.timeout);$.type==="broadcast"&&!(!((Aa=(Ca=(ja=this.params)===null||ja===void 0?void 0:ja.config)===null||Ca===void 0?void 0:Ca.broadcast)===null||Aa===void 0)&&Aa.ack)&&Qr("ok"),Oa.receive("ok",()=>Qr("ok")),Oa.receive("error",()=>Qr("error")),Oa.receive("timeout",()=>Qr("timed out"))})}updateJoinPayload($){this.joinPush.updatePayload($)}unsubscribe($=this.timeout){this.state=CHANNEL_STATES.leaving;const ts=()=>{this.socket.log("channel",`leave ${this.topic}`),this._trigger(CHANNEL_EVENTS.close,"leave",this._joinRef())};this.joinPush.destroy();let is=null;return new Promise(Kr=>{is=new Push(this,CHANNEL_EVENTS.leave,{},$),is.receive("ok",()=>{ts(),Kr("ok")}).receive("timeout",()=>{ts(),Kr("timed out")}).receive("error",()=>{Kr("error")}),is.send(),this._canPush()||is.trigger("ok",{})}).finally(()=>{is==null||is.destroy()})}teardown(){this.pushBuffer.forEach($=>$.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=CHANNEL_STATES.closed,this.bindings={}}async _fetchWithTimeout($,ts,is){const Kr=new AbortController,Qr=setTimeout(()=>Kr.abort(),is),ja=await this.socket.fetch($,Object.assign(Object.assign({},ts),{signal:Kr.signal}));return clearTimeout(Qr),ja}_push($,ts,is=this.timeout){if(!this.joinedOnce)throw`tried to push '${$}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let Kr=new Push(this,$,ts,is);return this._canPush()?Kr.send():this._addToPushBuffer(Kr),Kr}_addToPushBuffer($){if($.startTimeout(),this.pushBuffer.push($),this.pushBuffer.length>MAX_PUSH_BUFFER_SIZE){const ts=this.pushBuffer.shift();ts&&(ts.destroy(),this.socket.log("channel",`discarded push due to buffer overflow: ${ts.event}`,ts.payload))}}_onMessage($,ts,is){return ts}_isMember($){return this.topic===$}_joinRef(){return this.joinPush.ref}_trigger($,ts,is){var Kr,Qr;const ja=$.toLocaleLowerCase(),{close:Ca,error:Aa,leave:Oa,join:Ia}=CHANNEL_EVENTS;if(is&&[Ca,Aa,Oa,Ia].indexOf(ja)>=0&&is!==this._joinRef())return;let Ba=this._onMessage(ja,ts,is);if(ts&&!Ba)throw"channel onMessage callbacks must return the payload, modified or unmodified";["insert","update","delete"].includes(ja)?(Kr=this.bindings.postgres_changes)===null||Kr===void 0||Kr.filter(Ma=>{var Fa,qa,Ha;return((Fa=Ma.filter)===null||Fa===void 0?void 0:Fa.event)==="*"||((Ha=(qa=Ma.filter)===null||qa===void 0?void 0:qa.event)===null||Ha===void 0?void 0:Ha.toLocaleLowerCase())===ja}).map(Ma=>Ma.callback(Ba,is)):(Qr=this.bindings[ja])===null||Qr===void 0||Qr.filter(Ma=>{var Fa,qa,Ha,Ka,Qa,Va;if(["broadcast","presence","postgres_changes"].includes(ja))if("id"in Ma){const Ya=Ma.id,Wa=(Fa=Ma.filter)===null||Fa===void 0?void 0:Fa.event;return Ya&&((qa=ts.ids)===null||qa===void 0?void 0:qa.includes(Ya))&&(Wa==="*"||(Wa==null?void 0:Wa.toLocaleLowerCase())===((Ha=ts.data)===null||Ha===void 0?void 0:Ha.type.toLocaleLowerCase()))}else{const Ya=(Qa=(Ka=Ma==null?void 0:Ma.filter)===null||Ka===void 0?void 0:Ka.event)===null||Qa===void 0?void 0:Qa.toLocaleLowerCase();return Ya==="*"||Ya===((Va=ts==null?void 0:ts.event)===null||Va===void 0?void 0:Va.toLocaleLowerCase())}else return Ma.type.toLocaleLowerCase()===ja}).map(Ma=>{if(typeof Ba=="object"&&"ids"in Ba){const Fa=Ba.data,{schema:qa,table:Ha,commit_timestamp:Ka,type:Qa,errors:Va}=Fa;Ba=Object.assign(Object.assign({},{schema:qa,table:Ha,commit_timestamp:Ka,eventType:Qa,new:{},old:{},errors:Va}),this._getPayloadRecords(Fa))}Ma.callback(Ba,is)})}_isClosed(){return this.state===CHANNEL_STATES.closed}_isJoined(){return this.state===CHANNEL_STATES.joined}_isJoining(){return this.state===CHANNEL_STATES.joining}_isLeaving(){return this.state===CHANNEL_STATES.leaving}_replyEventName($){return`chan_reply_${$}`}_on($,ts,is){const Kr=$.toLocaleLowerCase(),Qr={type:Kr,filter:ts,callback:is};return this.bindings[Kr]?this.bindings[Kr].push(Qr):this.bindings[Kr]=[Qr],this}_off($,ts){const is=$.toLocaleLowerCase();return this.bindings[is]&&(this.bindings[is]=this.bindings[is].filter(Kr=>{var Qr;return!(((Qr=Kr.type)===null||Qr===void 0?void 0:Qr.toLocaleLowerCase())===is&&RealtimeChannel.isEqual(Kr.filter,ts))})),this}static isEqual($,ts){if(Object.keys($).length!==Object.keys(ts).length)return!1;for(const is in $)if($[is]!==ts[is])return!1;return!0}static isFilterValueEqual($,ts){return($??void 0)===(ts??void 0)}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this._rejoin()}_onClose($){this._on(CHANNEL_EVENTS.close,{},$)}_onError($){this._on(CHANNEL_EVENTS.error,{},ts=>$(ts))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin($=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=CHANNEL_STATES.joining,this.joinPush.resend($))}_getPayloadRecords($){const ts={new:{},old:{}};return($.type==="INSERT"||$.type==="UPDATE")&&(ts.new=convertChangeData($.columns,$.record)),($.type==="UPDATE"||$.type==="DELETE")&&(ts.old=convertChangeData($.columns,$.old_record)),ts}}const noop=()=>{},CONNECTION_TIMEOUTS={HEARTBEAT_INTERVAL:25e3,RECONNECT_DELAY:10,HEARTBEAT_TIMEOUT_FALLBACK:100},RECONNECT_INTERVALS=[1e3,2e3,5e3,1e4],DEFAULT_RECONNECT_FALLBACK=1e4,WORKER_SCRIPT=`
34
- addEventListener("message", (e) => {
35
- if (e.data.event === "start") {
36
- setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval);
37
- }
38
- });`;class RealtimeClient{constructor($,ts){var is;if(this.accessTokenValue=null,this.apiKey=null,this._manuallySetToken=!1,this.channels=new Array,this.endPoint="",this.httpEndpoint="",this.headers={},this.params={},this.timeout=DEFAULT_TIMEOUT,this.transport=null,this.heartbeatIntervalMs=CONNECTION_TIMEOUTS.HEARTBEAT_INTERVAL,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.heartbeatCallback=noop,this.ref=0,this.reconnectTimer=null,this.vsn=DEFAULT_VSN,this.logger=noop,this.conn=null,this.sendBuffer=[],this.serializer=new Serializer,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.accessToken=null,this._connectionState="disconnected",this._wasManualDisconnect=!1,this._authPromise=null,this._heartbeatSentAt=null,this._resolveFetch=Kr=>Kr?(...Qr)=>Kr(...Qr):(...Qr)=>fetch(...Qr),!(!((is=ts==null?void 0:ts.params)===null||is===void 0)&&is.apikey))throw new Error("API key is required to connect to Realtime");this.apiKey=ts.params.apikey,this.endPoint=`${$}/${TRANSPORTS.websocket}`,this.httpEndpoint=httpEndpointURL($),this._initializeOptions(ts),this._setupReconnectionTimer(),this.fetch=this._resolveFetch(ts==null?void 0:ts.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.conn!==null&&this.isConnected())){if(this._setConnectionState("connecting"),this.accessToken&&!this._authPromise&&this._setAuthSafely("connect"),this.transport)this.conn=new this.transport(this.endpointURL());else try{this.conn=WebSocketFactory.createWebSocket(this.endpointURL())}catch($){this._setConnectionState("disconnected");const ts=$.message;throw ts.includes("Node.js")?new Error(`${ts}
39
-
40
- To use Realtime in Node.js, you need to provide a WebSocket implementation:
41
-
42
- Option 1: Use Node.js 22+ which has native WebSocket support
43
- Option 2: Install and provide the "ws" package:
44
-
45
- npm install ws
46
-
47
- import ws from "ws"
48
- const client = new RealtimeClient(url, {
49
- ...options,
50
- transport: ws
51
- })`):new Error(`WebSocket not available: ${ts}`)}this._setupConnectionHandlers()}}endpointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:this.vsn}))}disconnect($,ts){if(!this.isDisconnecting())if(this._setConnectionState("disconnecting",!0),this.conn){const is=setTimeout(()=>{this._setConnectionState("disconnected")},100);this.conn.onclose=()=>{clearTimeout(is),this._setConnectionState("disconnected")},typeof this.conn.close=="function"&&($?this.conn.close($,ts??""):this.conn.close()),this._teardownConnection()}else this._setConnectionState("disconnected")}getChannels(){return this.channels}async removeChannel($){const ts=await $.unsubscribe();return ts==="ok"&&this._remove($),this.channels.length===0&&this.disconnect(),ts}async removeAllChannels(){const $=await Promise.all(this.channels.map(ts=>ts.unsubscribe()));return this.channels=[],this.disconnect(),$}log($,ts,is){this.logger($,ts,is)}connectionState(){switch(this.conn&&this.conn.readyState){case SOCKET_STATES.connecting:return CONNECTION_STATE.Connecting;case SOCKET_STATES.open:return CONNECTION_STATE.Open;case SOCKET_STATES.closing:return CONNECTION_STATE.Closing;default:return CONNECTION_STATE.Closed}}isConnected(){return this.connectionState()===CONNECTION_STATE.Open}isConnecting(){return this._connectionState==="connecting"}isDisconnecting(){return this._connectionState==="disconnecting"}channel($,ts={config:{}}){const is=`realtime:${$}`,Kr=this.getChannels().find(Qr=>Qr.topic===is);if(Kr)return Kr;{const Qr=new RealtimeChannel(`realtime:${$}`,ts,this);return this.channels.push(Qr),Qr}}push($){const{topic:ts,event:is,payload:Kr,ref:Qr}=$,ja=()=>{this.encode($,Ca=>{var Aa;(Aa=this.conn)===null||Aa===void 0||Aa.send(Ca)})};this.log("push",`${ts} ${is} (${Qr})`,Kr),this.isConnected()?ja():this.sendBuffer.push(ja)}async setAuth($=null){this._authPromise=this._performAuth($);try{await this._authPromise}finally{this._authPromise=null}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){var $;if(!this.isConnected()){try{this.heartbeatCallback("disconnected")}catch(ts){this.log("error","error in heartbeat callback",ts)}return}if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this._heartbeatSentAt=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection");try{this.heartbeatCallback("timeout")}catch(ts){this.log("error","error in heartbeat callback",ts)}this._wasManualDisconnect=!1,($=this.conn)===null||$===void 0||$.close(WS_CLOSE_NORMAL,"heartbeat timeout"),setTimeout(()=>{var ts;this.isConnected()||(ts=this.reconnectTimer)===null||ts===void 0||ts.scheduleTimeout()},CONNECTION_TIMEOUTS.HEARTBEAT_TIMEOUT_FALLBACK);return}this._heartbeatSentAt=Date.now(),this.pendingHeartbeatRef=this._makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback("sent")}catch(ts){this.log("error","error in heartbeat callback",ts)}this._setAuthSafely("heartbeat")}onHeartbeat($){this.heartbeatCallback=$}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach($=>$()),this.sendBuffer=[])}_makeRef(){let $=this.ref+1;return $===this.ref?this.ref=0:this.ref=$,this.ref.toString()}_leaveOpenTopic($){let ts=this.channels.find(is=>is.topic===$&&(is._isJoined()||is._isJoining()));ts&&(this.log("transport",`leaving duplicate topic "${$}"`),ts.unsubscribe())}_remove($){this.channels=this.channels.filter(ts=>ts.topic!==$.topic)}_onConnMessage($){this.decode($.data,ts=>{if(ts.topic==="phoenix"&&ts.event==="phx_reply"&&ts.ref&&ts.ref===this.pendingHeartbeatRef){const Oa=this._heartbeatSentAt?Date.now()-this._heartbeatSentAt:void 0;try{this.heartbeatCallback(ts.payload.status==="ok"?"ok":"error",Oa)}catch(Ia){this.log("error","error in heartbeat callback",Ia)}this._heartbeatSentAt=null,this.pendingHeartbeatRef=null}const{topic:is,event:Kr,payload:Qr,ref:ja}=ts,Ca=ja?`(${ja})`:"",Aa=Qr.status||"";this.log("receive",`${Aa} ${is} ${Kr} ${Ca}`.trim(),Qr),this.channels.filter(Oa=>Oa._isMember(is)).forEach(Oa=>Oa._trigger(Kr,Qr,ja)),this._triggerStateCallbacks("message",ts)})}_clearTimer($){var ts;$==="heartbeat"&&this.heartbeatTimer?(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0):$==="reconnect"&&((ts=this.reconnectTimer)===null||ts===void 0||ts.reset())}_clearAllTimers(){this._clearTimer("heartbeat"),this._clearTimer("reconnect")}_setupConnectionHandlers(){this.conn&&("binaryType"in this.conn&&(this.conn.binaryType="arraybuffer"),this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=$=>this._onConnError($),this.conn.onmessage=$=>this._onConnMessage($),this.conn.onclose=$=>this._onConnClose($),this.conn.readyState===SOCKET_STATES.open&&this._onConnOpen())}_teardownConnection(){if(this.conn){if(this.conn.readyState===SOCKET_STATES.open||this.conn.readyState===SOCKET_STATES.connecting)try{this.conn.close()}catch($){this.log("error","Error closing connection",$)}this.conn.onopen=null,this.conn.onerror=null,this.conn.onmessage=null,this.conn.onclose=null,this.conn=null}this._clearAllTimers(),this._terminateWorker(),this.channels.forEach($=>$.teardown())}_onConnOpen(){this._setConnectionState("connected"),this.log("transport",`connected to ${this.endpointURL()}`),(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).then(()=>{this.flushSendBuffer()}).catch(ts=>{this.log("error","error waiting for auth on connect",ts),this.flushSendBuffer()}),this._clearTimer("reconnect"),this.worker?this.workerRef||this._startWorkerHeartbeat():this._startHeartbeat(),this._triggerStateCallbacks("open")}_startHeartbeat(){this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this.sendHeartbeat(),this.heartbeatIntervalMs)}_startWorkerHeartbeat(){this.workerUrl?this.log("worker",`starting worker for from ${this.workerUrl}`):this.log("worker","starting default worker");const $=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker($),this.workerRef.onerror=ts=>{this.log("worker","worker error",ts.message),this._terminateWorker()},this.workerRef.onmessage=ts=>{ts.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&(this.log("worker","terminating worker"),this.workerRef.terminate(),this.workerRef=void 0)}_onConnClose($){var ts;this._setConnectionState("disconnected"),this.log("transport","close",$),this._triggerChanError(),this._clearTimer("heartbeat"),this._wasManualDisconnect||(ts=this.reconnectTimer)===null||ts===void 0||ts.scheduleTimeout(),this._triggerStateCallbacks("close",$)}_onConnError($){this._setConnectionState("disconnected"),this.log("transport",`${$}`),this._triggerChanError(),this._triggerStateCallbacks("error",$);try{this.heartbeatCallback("error")}catch(ts){this.log("error","error in heartbeat callback",ts)}}_triggerChanError(){this.channels.forEach($=>$._trigger(CHANNEL_EVENTS.error))}_appendParams($,ts){if(Object.keys(ts).length===0)return $;const is=$.match(/\?/)?"&":"?",Kr=new URLSearchParams(ts);return`${$}${is}${Kr}`}_workerObjectUrl($){let ts;if($)ts=$;else{const is=new Blob([WORKER_SCRIPT],{type:"application/javascript"});ts=URL.createObjectURL(is)}return ts}_setConnectionState($,ts=!1){this._connectionState=$,$==="connecting"?this._wasManualDisconnect=!1:$==="disconnecting"&&(this._wasManualDisconnect=ts)}async _performAuth($=null){let ts,is=!1;if($)ts=$,is=!0;else if(this.accessToken)try{ts=await this.accessToken()}catch(Kr){this.log("error","Error fetching access token from callback",Kr),ts=this.accessTokenValue}else ts=this.accessTokenValue;is?this._manuallySetToken=!0:this.accessToken&&(this._manuallySetToken=!1),this.accessTokenValue!=ts&&(this.accessTokenValue=ts,this.channels.forEach(Kr=>{const Qr={access_token:ts,version:DEFAULT_VERSION};ts&&Kr.updateJoinPayload(Qr),Kr.joinedOnce&&Kr._isJoined()&&Kr._push(CHANNEL_EVENTS.access_token,{access_token:ts})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely($="general"){this._isManualToken()||this.setAuth().catch(ts=>{this.log("error",`Error setting auth in ${$}`,ts)})}_triggerStateCallbacks($,ts){try{this.stateChangeCallbacks[$].forEach(is=>{try{is(ts)}catch(Kr){this.log("error",`error in ${$} callback`,Kr)}})}catch(is){this.log("error",`error triggering ${$} callbacks`,is)}}_setupReconnectionTimer(){this.reconnectTimer=new Timer(async()=>{setTimeout(async()=>{await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()},CONNECTION_TIMEOUTS.RECONNECT_DELAY)},this.reconnectAfterMs)}_initializeOptions($){var ts,is,Kr,Qr,ja,Ca,Aa,Oa,Ia,Da,Ba,Ma;switch(this.transport=(ts=$==null?void 0:$.transport)!==null&&ts!==void 0?ts:null,this.timeout=(is=$==null?void 0:$.timeout)!==null&&is!==void 0?is:DEFAULT_TIMEOUT,this.heartbeatIntervalMs=(Kr=$==null?void 0:$.heartbeatIntervalMs)!==null&&Kr!==void 0?Kr:CONNECTION_TIMEOUTS.HEARTBEAT_INTERVAL,this.worker=(Qr=$==null?void 0:$.worker)!==null&&Qr!==void 0?Qr:!1,this.accessToken=(ja=$==null?void 0:$.accessToken)!==null&&ja!==void 0?ja:null,this.heartbeatCallback=(Ca=$==null?void 0:$.heartbeatCallback)!==null&&Ca!==void 0?Ca:noop,this.vsn=(Aa=$==null?void 0:$.vsn)!==null&&Aa!==void 0?Aa:DEFAULT_VSN,$!=null&&$.params&&(this.params=$.params),$!=null&&$.logger&&(this.logger=$.logger),($!=null&&$.logLevel||$!=null&&$.log_level)&&(this.logLevel=$.logLevel||$.log_level,this.params=Object.assign(Object.assign({},this.params),{log_level:this.logLevel})),this.reconnectAfterMs=(Oa=$==null?void 0:$.reconnectAfterMs)!==null&&Oa!==void 0?Oa:(Fa=>RECONNECT_INTERVALS[Fa-1]||DEFAULT_RECONNECT_FALLBACK),this.vsn){case VSN_1_0_0:this.encode=(Ia=$==null?void 0:$.encode)!==null&&Ia!==void 0?Ia:((Fa,qa)=>qa(JSON.stringify(Fa))),this.decode=(Da=$==null?void 0:$.decode)!==null&&Da!==void 0?Da:((Fa,qa)=>qa(JSON.parse(Fa)));break;case VSN_2_0_0:this.encode=(Ba=$==null?void 0:$.encode)!==null&&Ba!==void 0?Ba:this.serializer.encode.bind(this.serializer),this.decode=(Ma=$==null?void 0:$.decode)!==null&&Ma!==void 0?Ma:this.serializer.decode.bind(this.serializer);break;default:throw new Error(`Unsupported serializer version: ${this.vsn}`)}if(this.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.workerUrl=$==null?void 0:$.workerUrl}}}var IcebergError=class extends Error{constructor(es,$){var ts;super(es),this.name="IcebergError",this.status=$.status,this.icebergType=$.icebergType,this.icebergCode=$.icebergCode,this.details=$.details,this.isCommitStateUnknown=$.icebergType==="CommitStateUnknownException"||[500,502,504].includes($.status)&&((ts=$.icebergType)==null?void 0:ts.includes("CommitState"))===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function buildUrl(es,$,ts){const is=new URL($,es);if(ts)for(const[Kr,Qr]of Object.entries(ts))Qr!==void 0&&is.searchParams.set(Kr,Qr);return is.toString()}async function buildAuthHeaders(es){return!es||es.type==="none"?{}:es.type==="bearer"?{Authorization:`Bearer ${es.token}`}:es.type==="header"?{[es.name]:es.value}:es.type==="custom"?await es.getHeaders():{}}function createFetchClient(es){const $=es.fetchImpl??globalThis.fetch;return{async request({method:ts,path:is,query:Kr,body:Qr,headers:ja}){const Ca=buildUrl(es.baseUrl,is,Kr),Aa=await buildAuthHeaders(es.auth),Oa=await $(Ca,{method:ts,headers:{...Qr?{"Content-Type":"application/json"}:{},...Aa,...ja},body:Qr?JSON.stringify(Qr):void 0}),Ia=await Oa.text(),Da=(Oa.headers.get("content-type")||"").includes("application/json"),Ba=Da&&Ia?JSON.parse(Ia):Ia;if(!Oa.ok){const Ma=Da?Ba:void 0,Fa=Ma==null?void 0:Ma.error;throw new IcebergError((Fa==null?void 0:Fa.message)??`Request failed with status ${Oa.status}`,{status:Oa.status,icebergType:Fa==null?void 0:Fa.type,icebergCode:Fa==null?void 0:Fa.code,details:Ma})}return{status:Oa.status,headers:Oa.headers,data:Ba}}}}function namespaceToPath(es){return es.join("")}var NamespaceOperations=class{constructor(es,$=""){this.client=es,this.prefix=$}async listNamespaces(es){const $=es?{parent:namespaceToPath(es.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:$})).data.namespaces.map(is=>({namespace:is}))}async createNamespace(es,$){const ts={namespace:es.namespace,properties:$==null?void 0:$.properties};return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces`,body:ts})).data}async dropNamespace(es){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${namespaceToPath(es.namespace)}`})}async loadNamespaceMetadata(es){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${namespaceToPath(es.namespace)}`})).data.properties}}async namespaceExists(es){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${namespaceToPath(es.namespace)}`}),!0}catch($){if($ instanceof IcebergError&&$.status===404)return!1;throw $}}async createNamespaceIfNotExists(es,$){try{return await this.createNamespace(es,$)}catch(ts){if(ts instanceof IcebergError&&ts.status===409)return;throw ts}}};function namespaceToPath2(es){return es.join("")}var TableOperations=class{constructor(es,$="",ts){this.client=es,this.prefix=$,this.accessDelegation=ts}async listTables(es){return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${namespaceToPath2(es.namespace)}/tables`})).data.identifiers}async createTable(es,$){const ts={};return this.accessDelegation&&(ts["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${namespaceToPath2(es.namespace)}/tables`,body:$,headers:ts})).data.metadata}async updateTable(es,$){const ts=await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${namespaceToPath2(es.namespace)}/tables/${es.name}`,body:$});return{"metadata-location":ts.data["metadata-location"],metadata:ts.data.metadata}}async dropTable(es,$){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${namespaceToPath2(es.namespace)}/tables/${es.name}`,query:{purgeRequested:String(($==null?void 0:$.purge)??!1)}})}async loadTable(es){const $={};return this.accessDelegation&&($["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${namespaceToPath2(es.namespace)}/tables/${es.name}`,headers:$})).data.metadata}async tableExists(es){const $={};this.accessDelegation&&($["X-Iceberg-Access-Delegation"]=this.accessDelegation);try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${namespaceToPath2(es.namespace)}/tables/${es.name}`,headers:$}),!0}catch(ts){if(ts instanceof IcebergError&&ts.status===404)return!1;throw ts}}async createTableIfNotExists(es,$){try{return await this.createTable(es,$)}catch(ts){if(ts instanceof IcebergError&&ts.status===409)return await this.loadTable({namespace:es.namespace,name:$.name});throw ts}}},IcebergRestCatalog=class{constructor(es){var is;let $="v1";es.catalogName&&($+=`/${es.catalogName}`);const ts=es.baseUrl.endsWith("/")?es.baseUrl:`${es.baseUrl}/`;this.client=createFetchClient({baseUrl:ts,auth:es.auth,fetchImpl:es.fetch}),this.accessDelegation=(is=es.accessDelegation)==null?void 0:is.join(","),this.namespaceOps=new NamespaceOperations(this.client,$),this.tableOps=new TableOperations(this.client,$,this.accessDelegation)}async listNamespaces(es){return this.namespaceOps.listNamespaces(es)}async createNamespace(es,$){return this.namespaceOps.createNamespace(es,$)}async dropNamespace(es){await this.namespaceOps.dropNamespace(es)}async loadNamespaceMetadata(es){return this.namespaceOps.loadNamespaceMetadata(es)}async listTables(es){return this.tableOps.listTables(es)}async createTable(es,$){return this.tableOps.createTable(es,$)}async updateTable(es,$){return this.tableOps.updateTable(es,$)}async dropTable(es,$){await this.tableOps.dropTable(es,$)}async loadTable(es){return this.tableOps.loadTable(es)}async namespaceExists(es){return this.namespaceOps.namespaceExists(es)}async tableExists(es){return this.tableOps.tableExists(es)}async createNamespaceIfNotExists(es,$){return this.namespaceOps.createNamespaceIfNotExists(es,$)}async createTableIfNotExists(es,$){return this.tableOps.createTableIfNotExists(es,$)}},StorageError=class extends Error{constructor(es,$="storage",ts,is){super(es),this.__isStorageError=!0,this.namespace=$,this.name=$==="vectors"?"StorageVectorsError":"StorageError",this.status=ts,this.statusCode=is}};function isStorageError(es){return typeof es=="object"&&es!==null&&"__isStorageError"in es}var StorageApiError=class extends StorageError{constructor(es,$,ts,is="storage"){super(es,is,$,ts),this.name=is==="vectors"?"StorageVectorsApiError":"StorageApiError",this.status=$,this.statusCode=ts}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},StorageUnknownError=class extends StorageError{constructor(es,$,ts="storage"){super(es,ts),this.name=ts==="vectors"?"StorageVectorsUnknownError":"StorageUnknownError",this.originalError=$}};const resolveFetch$2=es=>es?(...$)=>es(...$):(...$)=>fetch(...$),isPlainObject=es=>{if(typeof es!="object"||es===null)return!1;const $=Object.getPrototypeOf(es);return($===null||$===Object.prototype||Object.getPrototypeOf($)===null)&&!(Symbol.toStringTag in es)&&!(Symbol.iterator in es)},recursiveToCamel=es=>{if(Array.isArray(es))return es.map(ts=>recursiveToCamel(ts));if(typeof es=="function"||es!==Object(es))return es;const $={};return Object.entries(es).forEach(([ts,is])=>{const Kr=ts.replace(/([-_][a-z])/gi,Qr=>Qr.toUpperCase().replace(/[-_]/g,""));$[Kr]=recursiveToCamel(is)}),$},isValidBucketName=es=>!es||typeof es!="string"||es.length===0||es.length>100||es.trim()!==es||es.includes("/")||es.includes("\\")?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(es);function _typeof$1(es){"@babel/helpers - typeof";return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_typeof$1(es)}function toPrimitive$1(es,$){if(_typeof$1(es)!="object"||!es)return es;var ts=es[Symbol.toPrimitive];if(ts!==void 0){var is=ts.call(es,$);if(_typeof$1(is)!="object")return is;throw new TypeError("@@toPrimitive must return a primitive value.")}return($==="string"?String:Number)(es)}function toPropertyKey$1(es){var $=toPrimitive$1(es,"string");return _typeof$1($)=="symbol"?$:$+""}function _defineProperty$1(es,$,ts){return($=toPropertyKey$1($))in es?Object.defineProperty(es,$,{value:ts,enumerable:!0,configurable:!0,writable:!0}):es[$]=ts,es}function ownKeys$1(es,$){var ts=Object.keys(es);if(Object.getOwnPropertySymbols){var is=Object.getOwnPropertySymbols(es);$&&(is=is.filter(function(Kr){return Object.getOwnPropertyDescriptor(es,Kr).enumerable})),ts.push.apply(ts,is)}return ts}function _objectSpread2$1(es){for(var $=1;$<arguments.length;$++){var ts=arguments[$]!=null?arguments[$]:{};$%2?ownKeys$1(Object(ts),!0).forEach(function(is){_defineProperty$1(es,is,ts[is])}):Object.getOwnPropertyDescriptors?Object.defineProperties(es,Object.getOwnPropertyDescriptors(ts)):ownKeys$1(Object(ts)).forEach(function(is){Object.defineProperty(es,is,Object.getOwnPropertyDescriptor(ts,is))})}return es}const _getErrorMessage$1=es=>{var $;return es.msg||es.message||es.error_description||(typeof es.error=="string"?es.error:($=es.error)===null||$===void 0?void 0:$.message)||JSON.stringify(es)},handleError$1=async(es,$,ts,is)=>{if(es&&typeof es=="object"&&"status"in es&&"ok"in es&&typeof es.status=="number"&&!(ts!=null&&ts.noResolveJson)){const Kr=es,Qr=Kr.status||500;if(typeof Kr.json=="function")Kr.json().then(ja=>{const Ca=(ja==null?void 0:ja.statusCode)||(ja==null?void 0:ja.code)||Qr+"";$(new StorageApiError(_getErrorMessage$1(ja),Qr,Ca,is))}).catch(()=>{if(is==="vectors"){const ja=Qr+"";$(new StorageApiError(Kr.statusText||`HTTP ${Qr} error`,Qr,ja,is))}else{const ja=Qr+"";$(new StorageApiError(Kr.statusText||`HTTP ${Qr} error`,Qr,ja,is))}});else{const ja=Qr+"";$(new StorageApiError(Kr.statusText||`HTTP ${Qr} error`,Qr,ja,is))}}else $(new StorageUnknownError(_getErrorMessage$1(es),es,is))},_getRequestParams$1=(es,$,ts,is)=>{const Kr={method:es,headers:($==null?void 0:$.headers)||{}};return es==="GET"||es==="HEAD"||!is?_objectSpread2$1(_objectSpread2$1({},Kr),ts):(isPlainObject(is)?(Kr.headers=_objectSpread2$1({"Content-Type":"application/json"},$==null?void 0:$.headers),Kr.body=JSON.stringify(is)):Kr.body=is,$!=null&&$.duplex&&(Kr.duplex=$.duplex),_objectSpread2$1(_objectSpread2$1({},Kr),ts))};async function _handleRequest$1(es,$,ts,is,Kr,Qr,ja){return new Promise((Ca,Aa)=>{es(ts,_getRequestParams$1($,is,Kr,Qr)).then(Oa=>{if(!Oa.ok)throw Oa;if(is!=null&&is.noResolveJson)return Oa;if(ja==="vectors"){const Ia=Oa.headers.get("content-type");if(Oa.headers.get("content-length")==="0"||Oa.status===204)return{};if(!Ia||!Ia.includes("application/json"))return{}}return Oa.json()}).then(Oa=>Ca(Oa)).catch(Oa=>handleError$1(Oa,Aa,is,ja))})}function createFetchApi(es="storage"){return{get:async($,ts,is,Kr)=>_handleRequest$1($,"GET",ts,is,Kr,void 0,es),post:async($,ts,is,Kr,Qr)=>_handleRequest$1($,"POST",ts,Kr,Qr,is,es),put:async($,ts,is,Kr,Qr)=>_handleRequest$1($,"PUT",ts,Kr,Qr,is,es),head:async($,ts,is,Kr)=>_handleRequest$1($,"HEAD",ts,_objectSpread2$1(_objectSpread2$1({},is),{},{noResolveJson:!0}),Kr,void 0,es),remove:async($,ts,is,Kr,Qr)=>_handleRequest$1($,"DELETE",ts,Kr,Qr,is,es)}}const defaultApi=createFetchApi("storage"),{get,post,put,head,remove}=defaultApi,vectorsApi=createFetchApi("vectors");var BaseApiClient=class{constructor(es,$={},ts,is="storage"){this.shouldThrowOnError=!1,this.url=es,this.headers=$,this.fetch=resolveFetch$2(ts),this.namespace=is}throwOnError(){return this.shouldThrowOnError=!0,this}async handleOperation(es){var $=this;try{return{data:await es(),error:null}}catch(ts){if($.shouldThrowOnError)throw ts;if(isStorageError(ts))return{data:null,error:ts};throw ts}}},StreamDownloadBuilder=class{constructor(es,$){this.downloadFn=es,this.shouldThrowOnError=$}then(es,$){return this.execute().then(es,$)}async execute(){var es=this;try{return{data:(await es.downloadFn()).body,error:null}}catch($){if(es.shouldThrowOnError)throw $;if(isStorageError($))return{data:null,error:$};throw $}}};let _Symbol$toStringTag;_Symbol$toStringTag=Symbol.toStringTag;var BlobDownloadBuilder=class{constructor(es,$){this.downloadFn=es,this.shouldThrowOnError=$,this[_Symbol$toStringTag]="BlobDownloadBuilder",this.promise=null}asStream(){return new StreamDownloadBuilder(this.downloadFn,this.shouldThrowOnError)}then(es,$){return this.getPromise().then(es,$)}catch(es){return this.getPromise().catch(es)}finally(es){return this.getPromise().finally(es)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}async execute(){var es=this;try{return{data:await(await es.downloadFn()).blob(),error:null}}catch($){if(es.shouldThrowOnError)throw $;if(isStorageError($))return{data:null,error:$};throw $}}};const DEFAULT_SEARCH_OPTIONS={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},DEFAULT_FILE_OPTIONS={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};var StorageFileApi=class extends BaseApiClient{constructor(es,$={},ts,is){super(es,$,is,"storage"),this.bucketId=ts}async uploadOrUpdate(es,$,ts,is){var Kr=this;return Kr.handleOperation(async()=>{let Qr;const ja=_objectSpread2$1(_objectSpread2$1({},DEFAULT_FILE_OPTIONS),is);let Ca=_objectSpread2$1(_objectSpread2$1({},Kr.headers),es==="POST"&&{"x-upsert":String(ja.upsert)});const Aa=ja.metadata;typeof Blob<"u"&&ts instanceof Blob?(Qr=new FormData,Qr.append("cacheControl",ja.cacheControl),Aa&&Qr.append("metadata",Kr.encodeMetadata(Aa)),Qr.append("",ts)):typeof FormData<"u"&&ts instanceof FormData?(Qr=ts,Qr.has("cacheControl")||Qr.append("cacheControl",ja.cacheControl),Aa&&!Qr.has("metadata")&&Qr.append("metadata",Kr.encodeMetadata(Aa))):(Qr=ts,Ca["cache-control"]=`max-age=${ja.cacheControl}`,Ca["content-type"]=ja.contentType,Aa&&(Ca["x-metadata"]=Kr.toBase64(Kr.encodeMetadata(Aa))),(typeof ReadableStream<"u"&&Qr instanceof ReadableStream||Qr&&typeof Qr=="object"&&"pipe"in Qr&&typeof Qr.pipe=="function")&&!ja.duplex&&(ja.duplex="half")),is!=null&&is.headers&&(Ca=_objectSpread2$1(_objectSpread2$1({},Ca),is.headers));const Oa=Kr._removeEmptyFolders($),Ia=Kr._getFinalPath(Oa),Da=await(es=="PUT"?put:post)(Kr.fetch,`${Kr.url}/object/${Ia}`,Qr,_objectSpread2$1({headers:Ca},ja!=null&&ja.duplex?{duplex:ja.duplex}:{}));return{path:Oa,id:Da.Id,fullPath:Da.Key}})}async upload(es,$,ts){return this.uploadOrUpdate("POST",es,$,ts)}async uploadToSignedUrl(es,$,ts,is){var Kr=this;const Qr=Kr._removeEmptyFolders(es),ja=Kr._getFinalPath(Qr),Ca=new URL(Kr.url+`/object/upload/sign/${ja}`);return Ca.searchParams.set("token",$),Kr.handleOperation(async()=>{let Aa;const Oa=_objectSpread2$1({upsert:DEFAULT_FILE_OPTIONS.upsert},is),Ia=_objectSpread2$1(_objectSpread2$1({},Kr.headers),{"x-upsert":String(Oa.upsert)});return typeof Blob<"u"&&ts instanceof Blob?(Aa=new FormData,Aa.append("cacheControl",Oa.cacheControl),Aa.append("",ts)):typeof FormData<"u"&&ts instanceof FormData?(Aa=ts,Aa.append("cacheControl",Oa.cacheControl)):(Aa=ts,Ia["cache-control"]=`max-age=${Oa.cacheControl}`,Ia["content-type"]=Oa.contentType),{path:Qr,fullPath:(await put(Kr.fetch,Ca.toString(),Aa,{headers:Ia})).Key}})}async createSignedUploadUrl(es,$){var ts=this;return ts.handleOperation(async()=>{let is=ts._getFinalPath(es);const Kr=_objectSpread2$1({},ts.headers);$!=null&&$.upsert&&(Kr["x-upsert"]="true");const Qr=await post(ts.fetch,`${ts.url}/object/upload/sign/${is}`,{},{headers:Kr}),ja=new URL(ts.url+Qr.url),Ca=ja.searchParams.get("token");if(!Ca)throw new StorageError("No token returned by API");return{signedUrl:ja.toString(),path:es,token:Ca}})}async update(es,$,ts){return this.uploadOrUpdate("PUT",es,$,ts)}async move(es,$,ts){var is=this;return is.handleOperation(async()=>await post(is.fetch,`${is.url}/object/move`,{bucketId:is.bucketId,sourceKey:es,destinationKey:$,destinationBucket:ts==null?void 0:ts.destinationBucket},{headers:is.headers}))}async copy(es,$,ts){var is=this;return is.handleOperation(async()=>({path:(await post(is.fetch,`${is.url}/object/copy`,{bucketId:is.bucketId,sourceKey:es,destinationKey:$,destinationBucket:ts==null?void 0:ts.destinationBucket},{headers:is.headers})).Key}))}async createSignedUrl(es,$,ts){var is=this;return is.handleOperation(async()=>{let Kr=is._getFinalPath(es),Qr=await post(is.fetch,`${is.url}/object/sign/${Kr}`,_objectSpread2$1({expiresIn:$},ts!=null&&ts.transform?{transform:ts.transform}:{}),{headers:is.headers});const ja=ts!=null&&ts.download?`&download=${ts.download===!0?"":ts.download}`:"";return{signedUrl:encodeURI(`${is.url}${Qr.signedURL}${ja}`)}})}async createSignedUrls(es,$,ts){var is=this;return is.handleOperation(async()=>{const Kr=await post(is.fetch,`${is.url}/object/sign/${is.bucketId}`,{expiresIn:$,paths:es},{headers:is.headers}),Qr=ts!=null&&ts.download?`&download=${ts.download===!0?"":ts.download}`:"";return Kr.map(ja=>_objectSpread2$1(_objectSpread2$1({},ja),{},{signedUrl:ja.signedURL?encodeURI(`${is.url}${ja.signedURL}${Qr}`):null}))})}download(es,$,ts){const is=typeof($==null?void 0:$.transform)<"u"?"render/image/authenticated":"object",Kr=this.transformOptsToQueryString(($==null?void 0:$.transform)||{}),Qr=Kr?`?${Kr}`:"",ja=this._getFinalPath(es),Ca=()=>get(this.fetch,`${this.url}/${is}/${ja}${Qr}`,{headers:this.headers,noResolveJson:!0},ts);return new BlobDownloadBuilder(Ca,this.shouldThrowOnError)}async info(es){var $=this;const ts=$._getFinalPath(es);return $.handleOperation(async()=>recursiveToCamel(await get($.fetch,`${$.url}/object/info/${ts}`,{headers:$.headers})))}async exists(es){var $=this;const ts=$._getFinalPath(es);try{return await head($.fetch,`${$.url}/object/${ts}`,{headers:$.headers}),{data:!0,error:null}}catch(is){if($.shouldThrowOnError)throw is;if(isStorageError(is)&&is instanceof StorageUnknownError){const Kr=is.originalError;if([400,404].includes(Kr==null?void 0:Kr.status))return{data:!1,error:is}}throw is}}getPublicUrl(es,$){const ts=this._getFinalPath(es),is=[],Kr=$!=null&&$.download?`download=${$.download===!0?"":$.download}`:"";Kr!==""&&is.push(Kr);const Qr=typeof($==null?void 0:$.transform)<"u"?"render/image":"object",ja=this.transformOptsToQueryString(($==null?void 0:$.transform)||{});ja!==""&&is.push(ja);let Ca=is.join("&");return Ca!==""&&(Ca=`?${Ca}`),{data:{publicUrl:encodeURI(`${this.url}/${Qr}/public/${ts}${Ca}`)}}}async remove(es){var $=this;return $.handleOperation(async()=>await remove($.fetch,`${$.url}/object/${$.bucketId}`,{prefixes:es},{headers:$.headers}))}async list(es,$,ts){var is=this;return is.handleOperation(async()=>{const Kr=_objectSpread2$1(_objectSpread2$1(_objectSpread2$1({},DEFAULT_SEARCH_OPTIONS),$),{},{prefix:es||""});return await post(is.fetch,`${is.url}/object/list/${is.bucketId}`,Kr,{headers:is.headers},ts)})}async listV2(es,$){var ts=this;return ts.handleOperation(async()=>{const is=_objectSpread2$1({},es);return await post(ts.fetch,`${ts.url}/object/list-v2/${ts.bucketId}`,is,{headers:ts.headers},$)})}encodeMetadata(es){return JSON.stringify(es)}toBase64(es){return typeof Buffer<"u"?Buffer.from(es).toString("base64"):btoa(es)}_getFinalPath(es){return`${this.bucketId}/${es.replace(/^\/+/,"")}`}_removeEmptyFolders(es){return es.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(es){const $=[];return es.width&&$.push(`width=${es.width}`),es.height&&$.push(`height=${es.height}`),es.resize&&$.push(`resize=${es.resize}`),es.format&&$.push(`format=${es.format}`),es.quality&&$.push(`quality=${es.quality}`),$.join("&")}};const version$2="2.95.3",DEFAULT_HEADERS$2={"X-Client-Info":`storage-js/${version$2}`};var StorageBucketApi=class extends BaseApiClient{constructor(es,$={},ts,is){const Kr=new URL(es);is!=null&&is.useNewHostname&&/supabase\.(co|in|red)$/.test(Kr.hostname)&&!Kr.hostname.includes("storage.supabase.")&&(Kr.hostname=Kr.hostname.replace("supabase.","storage.supabase."));const Qr=Kr.href.replace(/\/$/,""),ja=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),$);super(Qr,ja,ts,"storage")}async listBuckets(es){var $=this;return $.handleOperation(async()=>{const ts=$.listBucketOptionsToQueryString(es);return await get($.fetch,`${$.url}/bucket${ts}`,{headers:$.headers})})}async getBucket(es){var $=this;return $.handleOperation(async()=>await get($.fetch,`${$.url}/bucket/${es}`,{headers:$.headers}))}async createBucket(es,$={public:!1}){var ts=this;return ts.handleOperation(async()=>await post(ts.fetch,`${ts.url}/bucket`,{id:es,name:es,type:$.type,public:$.public,file_size_limit:$.fileSizeLimit,allowed_mime_types:$.allowedMimeTypes},{headers:ts.headers}))}async updateBucket(es,$){var ts=this;return ts.handleOperation(async()=>await put(ts.fetch,`${ts.url}/bucket/${es}`,{id:es,name:es,public:$.public,file_size_limit:$.fileSizeLimit,allowed_mime_types:$.allowedMimeTypes},{headers:ts.headers}))}async emptyBucket(es){var $=this;return $.handleOperation(async()=>await post($.fetch,`${$.url}/bucket/${es}/empty`,{},{headers:$.headers}))}async deleteBucket(es){var $=this;return $.handleOperation(async()=>await remove($.fetch,`${$.url}/bucket/${es}`,{},{headers:$.headers}))}listBucketOptionsToQueryString(es){const $={};return es&&("limit"in es&&($.limit=String(es.limit)),"offset"in es&&($.offset=String(es.offset)),es.search&&($.search=es.search),es.sortColumn&&($.sortColumn=es.sortColumn),es.sortOrder&&($.sortOrder=es.sortOrder)),Object.keys($).length>0?"?"+new URLSearchParams($).toString():""}},StorageAnalyticsClient=class extends BaseApiClient{constructor(es,$={},ts){const is=es.replace(/\/$/,""),Kr=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),$);super(is,Kr,ts,"storage")}async createBucket(es){var $=this;return $.handleOperation(async()=>await post($.fetch,`${$.url}/bucket`,{name:es},{headers:$.headers}))}async listBuckets(es){var $=this;return $.handleOperation(async()=>{const ts=new URLSearchParams;(es==null?void 0:es.limit)!==void 0&&ts.set("limit",es.limit.toString()),(es==null?void 0:es.offset)!==void 0&&ts.set("offset",es.offset.toString()),es!=null&&es.sortColumn&&ts.set("sortColumn",es.sortColumn),es!=null&&es.sortOrder&&ts.set("sortOrder",es.sortOrder),es!=null&&es.search&&ts.set("search",es.search);const is=ts.toString(),Kr=is?`${$.url}/bucket?${is}`:`${$.url}/bucket`;return await get($.fetch,Kr,{headers:$.headers})})}async deleteBucket(es){var $=this;return $.handleOperation(async()=>await remove($.fetch,`${$.url}/bucket/${es}`,{},{headers:$.headers}))}from(es){var $=this;if(!isValidBucketName(es))throw new StorageError("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");const ts=new IcebergRestCatalog({baseUrl:this.url,catalogName:es,auth:{type:"custom",getHeaders:async()=>$.headers},fetch:this.fetch}),is=this.shouldThrowOnError;return new Proxy(ts,{get(Kr,Qr){const ja=Kr[Qr];return typeof ja!="function"?ja:async(...Ca)=>{try{return{data:await ja.apply(Kr,Ca),error:null}}catch(Aa){if(is)throw Aa;return{data:null,error:Aa}}}}})}},VectorIndexApi=class extends BaseApiClient{constructor(es,$={},ts){const is=es.replace(/\/$/,""),Kr=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),{},{"Content-Type":"application/json"},$);super(is,Kr,ts,"vectors")}async createIndex(es){var $=this;return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/CreateIndex`,es,{headers:$.headers})||{})}async getIndex(es,$){var ts=this;return ts.handleOperation(async()=>await vectorsApi.post(ts.fetch,`${ts.url}/GetIndex`,{vectorBucketName:es,indexName:$},{headers:ts.headers}))}async listIndexes(es){var $=this;return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/ListIndexes`,es,{headers:$.headers}))}async deleteIndex(es,$){var ts=this;return ts.handleOperation(async()=>await vectorsApi.post(ts.fetch,`${ts.url}/DeleteIndex`,{vectorBucketName:es,indexName:$},{headers:ts.headers})||{})}},VectorDataApi=class extends BaseApiClient{constructor(es,$={},ts){const is=es.replace(/\/$/,""),Kr=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),{},{"Content-Type":"application/json"},$);super(is,Kr,ts,"vectors")}async putVectors(es){var $=this;if(es.vectors.length<1||es.vectors.length>500)throw new Error("Vector batch size must be between 1 and 500 items");return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/PutVectors`,es,{headers:$.headers})||{})}async getVectors(es){var $=this;return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/GetVectors`,es,{headers:$.headers}))}async listVectors(es){var $=this;if(es.segmentCount!==void 0){if(es.segmentCount<1||es.segmentCount>16)throw new Error("segmentCount must be between 1 and 16");if(es.segmentIndex!==void 0&&(es.segmentIndex<0||es.segmentIndex>=es.segmentCount))throw new Error(`segmentIndex must be between 0 and ${es.segmentCount-1}`)}return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/ListVectors`,es,{headers:$.headers}))}async queryVectors(es){var $=this;return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/QueryVectors`,es,{headers:$.headers}))}async deleteVectors(es){var $=this;if(es.keys.length<1||es.keys.length>500)throw new Error("Keys batch size must be between 1 and 500 items");return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/DeleteVectors`,es,{headers:$.headers})||{})}},VectorBucketApi=class extends BaseApiClient{constructor(es,$={},ts){const is=es.replace(/\/$/,""),Kr=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),{},{"Content-Type":"application/json"},$);super(is,Kr,ts,"vectors")}async createBucket(es){var $=this;return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/CreateVectorBucket`,{vectorBucketName:es},{headers:$.headers})||{})}async getBucket(es){var $=this;return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/GetVectorBucket`,{vectorBucketName:es},{headers:$.headers}))}async listBuckets(es={}){var $=this;return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/ListVectorBuckets`,es,{headers:$.headers}))}async deleteBucket(es){var $=this;return $.handleOperation(async()=>await vectorsApi.post($.fetch,`${$.url}/DeleteVectorBucket`,{vectorBucketName:es},{headers:$.headers})||{})}},StorageVectorsClient=class extends VectorBucketApi{constructor(es,$={}){super(es,$.headers||{},$.fetch)}from(es){return new VectorBucketScope(this.url,this.headers,es,this.fetch)}async createBucket(es){var $=()=>super.createBucket,ts=this;return $().call(ts,es)}async getBucket(es){var $=()=>super.getBucket,ts=this;return $().call(ts,es)}async listBuckets(es={}){var $=()=>super.listBuckets,ts=this;return $().call(ts,es)}async deleteBucket(es){var $=()=>super.deleteBucket,ts=this;return $().call(ts,es)}},VectorBucketScope=class extends VectorIndexApi{constructor(es,$,ts,is){super(es,$,is),this.vectorBucketName=ts}async createIndex(es){var $=()=>super.createIndex,ts=this;return $().call(ts,_objectSpread2$1(_objectSpread2$1({},es),{},{vectorBucketName:ts.vectorBucketName}))}async listIndexes(es={}){var $=()=>super.listIndexes,ts=this;return $().call(ts,_objectSpread2$1(_objectSpread2$1({},es),{},{vectorBucketName:ts.vectorBucketName}))}async getIndex(es){var $=()=>super.getIndex,ts=this;return $().call(ts,ts.vectorBucketName,es)}async deleteIndex(es){var $=()=>super.deleteIndex,ts=this;return $().call(ts,ts.vectorBucketName,es)}index(es){return new VectorIndexScope(this.url,this.headers,this.vectorBucketName,es,this.fetch)}},VectorIndexScope=class extends VectorDataApi{constructor(es,$,ts,is,Kr){super(es,$,Kr),this.vectorBucketName=ts,this.indexName=is}async putVectors(es){var $=()=>super.putVectors,ts=this;return $().call(ts,_objectSpread2$1(_objectSpread2$1({},es),{},{vectorBucketName:ts.vectorBucketName,indexName:ts.indexName}))}async getVectors(es){var $=()=>super.getVectors,ts=this;return $().call(ts,_objectSpread2$1(_objectSpread2$1({},es),{},{vectorBucketName:ts.vectorBucketName,indexName:ts.indexName}))}async listVectors(es={}){var $=()=>super.listVectors,ts=this;return $().call(ts,_objectSpread2$1(_objectSpread2$1({},es),{},{vectorBucketName:ts.vectorBucketName,indexName:ts.indexName}))}async queryVectors(es){var $=()=>super.queryVectors,ts=this;return $().call(ts,_objectSpread2$1(_objectSpread2$1({},es),{},{vectorBucketName:ts.vectorBucketName,indexName:ts.indexName}))}async deleteVectors(es){var $=()=>super.deleteVectors,ts=this;return $().call(ts,_objectSpread2$1(_objectSpread2$1({},es),{},{vectorBucketName:ts.vectorBucketName,indexName:ts.indexName}))}},StorageClient=class extends StorageBucketApi{constructor(es,$={},ts,is){super(es,$,ts,is)}from(es){return new StorageFileApi(this.url,this.headers,es,this.fetch)}get vectors(){return new StorageVectorsClient(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new StorageAnalyticsClient(this.url+"/iceberg",this.headers,this.fetch)}};const version$1="2.95.3",AUTO_REFRESH_TICK_DURATION_MS=30*1e3,AUTO_REFRESH_TICK_THRESHOLD=3,EXPIRY_MARGIN_MS=AUTO_REFRESH_TICK_THRESHOLD*AUTO_REFRESH_TICK_DURATION_MS,GOTRUE_URL="http://localhost:9999",STORAGE_KEY="supabase.auth.token",DEFAULT_HEADERS$1={"X-Client-Info":`gotrue-js/${version$1}`},API_VERSION_HEADER_NAME="X-Supabase-Api-Version",API_VERSIONS={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},BASE64URL_REGEX=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,JWKS_TTL=600*1e3;class AuthError extends Error{constructor($,ts,is){super($),this.__isAuthError=!0,this.name="AuthError",this.status=ts,this.code=is}}function isAuthError(es){return typeof es=="object"&&es!==null&&"__isAuthError"in es}class AuthApiError extends AuthError{constructor($,ts,is){super($,ts,is),this.name="AuthApiError",this.status=ts,this.code=is}}function isAuthApiError(es){return isAuthError(es)&&es.name==="AuthApiError"}class AuthUnknownError extends AuthError{constructor($,ts){super($),this.name="AuthUnknownError",this.originalError=ts}}class CustomAuthError extends AuthError{constructor($,ts,is,Kr){super($,is,Kr),this.name=ts,this.status=is}}class AuthSessionMissingError extends CustomAuthError{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function isAuthSessionMissingError(es){return isAuthError(es)&&es.name==="AuthSessionMissingError"}class AuthInvalidTokenResponseError extends CustomAuthError{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,void 0)}}class AuthInvalidCredentialsError extends CustomAuthError{constructor($){super($,"AuthInvalidCredentialsError",400,void 0)}}class AuthImplicitGrantRedirectError extends CustomAuthError{constructor($,ts=null){super($,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=ts}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}function isAuthImplicitGrantRedirectError(es){return isAuthError(es)&&es.name==="AuthImplicitGrantRedirectError"}class AuthPKCEGrantCodeExchangeError extends CustomAuthError{constructor($,ts=null){super($,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=ts}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class AuthPKCECodeVerifierMissingError extends CustomAuthError{constructor(){super("PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.","AuthPKCECodeVerifierMissingError",400,"pkce_code_verifier_not_found")}}class AuthRetryableFetchError extends CustomAuthError{constructor($,ts){super($,"AuthRetryableFetchError",ts,void 0)}}function isAuthRetryableFetchError(es){return isAuthError(es)&&es.name==="AuthRetryableFetchError"}class AuthWeakPasswordError extends CustomAuthError{constructor($,ts,is){super($,"AuthWeakPasswordError",ts,"weak_password"),this.reasons=is}}class AuthInvalidJwtError extends CustomAuthError{constructor($){super($,"AuthInvalidJwtError",400,"invalid_jwt")}}const TO_BASE64URL="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""),IGNORE_BASE64URL=`
52
- \r=`.split(""),FROM_BASE64URL=(()=>{const es=new Array(128);for(let $=0;$<es.length;$+=1)es[$]=-1;for(let $=0;$<IGNORE_BASE64URL.length;$+=1)es[IGNORE_BASE64URL[$].charCodeAt(0)]=-2;for(let $=0;$<TO_BASE64URL.length;$+=1)es[TO_BASE64URL[$].charCodeAt(0)]=$;return es})();function byteToBase64URL(es,$,ts){if(es!==null)for($.queue=$.queue<<8|es,$.queuedBits+=8;$.queuedBits>=6;){const is=$.queue>>$.queuedBits-6&63;ts(TO_BASE64URL[is]),$.queuedBits-=6}else if($.queuedBits>0)for($.queue=$.queue<<6-$.queuedBits,$.queuedBits=6;$.queuedBits>=6;){const is=$.queue>>$.queuedBits-6&63;ts(TO_BASE64URL[is]),$.queuedBits-=6}}function byteFromBase64URL(es,$,ts){const is=FROM_BASE64URL[es];if(is>-1)for($.queue=$.queue<<6|is,$.queuedBits+=6;$.queuedBits>=8;)ts($.queue>>$.queuedBits-8&255),$.queuedBits-=8;else{if(is===-2)return;throw new Error(`Invalid Base64-URL character "${String.fromCharCode(es)}"`)}}function stringFromBase64URL(es){const $=[],ts=ja=>{$.push(String.fromCodePoint(ja))},is={utf8seq:0,codepoint:0},Kr={queue:0,queuedBits:0},Qr=ja=>{stringFromUTF8(ja,is,ts)};for(let ja=0;ja<es.length;ja+=1)byteFromBase64URL(es.charCodeAt(ja),Kr,Qr);return $.join("")}function codepointToUTF8(es,$){if(es<=127){$(es);return}else if(es<=2047){$(192|es>>6),$(128|es&63);return}else if(es<=65535){$(224|es>>12),$(128|es>>6&63),$(128|es&63);return}else if(es<=1114111){$(240|es>>18),$(128|es>>12&63),$(128|es>>6&63),$(128|es&63);return}throw new Error(`Unrecognized Unicode codepoint: ${es.toString(16)}`)}function stringToUTF8(es,$){for(let ts=0;ts<es.length;ts+=1){let is=es.charCodeAt(ts);if(is>55295&&is<=56319){const Kr=(is-55296)*1024&65535;is=(es.charCodeAt(ts+1)-56320&65535|Kr)+65536,ts+=1}codepointToUTF8(is,$)}}function stringFromUTF8(es,$,ts){if($.utf8seq===0){if(es<=127){ts(es);return}for(let is=1;is<6;is+=1)if((es>>7-is&1)===0){$.utf8seq=is;break}if($.utf8seq===2)$.codepoint=es&31;else if($.utf8seq===3)$.codepoint=es&15;else if($.utf8seq===4)$.codepoint=es&7;else throw new Error("Invalid UTF-8 sequence");$.utf8seq-=1}else if($.utf8seq>0){if(es<=127)throw new Error("Invalid UTF-8 sequence");$.codepoint=$.codepoint<<6|es&63,$.utf8seq-=1,$.utf8seq===0&&ts($.codepoint)}}function base64UrlToUint8Array(es){const $=[],ts={queue:0,queuedBits:0},is=Kr=>{$.push(Kr)};for(let Kr=0;Kr<es.length;Kr+=1)byteFromBase64URL(es.charCodeAt(Kr),ts,is);return new Uint8Array($)}function stringToUint8Array(es){const $=[];return stringToUTF8(es,ts=>$.push(ts)),new Uint8Array($)}function bytesToBase64URL(es){const $=[],ts={queue:0,queuedBits:0},is=Kr=>{$.push(Kr)};return es.forEach(Kr=>byteToBase64URL(Kr,ts,is)),byteToBase64URL(null,ts,is),$.join("")}function expiresAt(es){return Math.round(Date.now()/1e3)+es}function generateCallbackId(){return Symbol("auth-callback")}const isBrowser=()=>typeof window<"u"&&typeof document<"u",localStorageWriteTests={tested:!1,writable:!1},supportsLocalStorage=()=>{if(!isBrowser())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(localStorageWriteTests.tested)return localStorageWriteTests.writable;const es=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(es,es),globalThis.localStorage.removeItem(es),localStorageWriteTests.tested=!0,localStorageWriteTests.writable=!0}catch{localStorageWriteTests.tested=!0,localStorageWriteTests.writable=!1}return localStorageWriteTests.writable};function parseParametersFromURL(es){const $={},ts=new URL(es);if(ts.hash&&ts.hash[0]==="#")try{new URLSearchParams(ts.hash.substring(1)).forEach((Kr,Qr)=>{$[Qr]=Kr})}catch{}return ts.searchParams.forEach((is,Kr)=>{$[Kr]=is}),$}const resolveFetch$1=es=>es?(...$)=>es(...$):(...$)=>fetch(...$),looksLikeFetchResponse=es=>typeof es=="object"&&es!==null&&"status"in es&&"ok"in es&&"json"in es&&typeof es.json=="function",setItemAsync=async(es,$,ts)=>{await es.setItem($,JSON.stringify(ts))},getItemAsync=async(es,$)=>{const ts=await es.getItem($);if(!ts)return null;try{return JSON.parse(ts)}catch{return ts}},removeItemAsync=async(es,$)=>{await es.removeItem($)};class Deferred{constructor(){this.promise=new Deferred.promiseConstructor(($,ts)=>{this.resolve=$,this.reject=ts})}}Deferred.promiseConstructor=Promise;function decodeJWT(es){const $=es.split(".");if($.length!==3)throw new AuthInvalidJwtError("Invalid JWT structure");for(let is=0;is<$.length;is++)if(!BASE64URL_REGEX.test($[is]))throw new AuthInvalidJwtError("JWT not in base64url format");return{header:JSON.parse(stringFromBase64URL($[0])),payload:JSON.parse(stringFromBase64URL($[1])),signature:base64UrlToUint8Array($[2]),raw:{header:$[0],payload:$[1]}}}async function sleep(es){return await new Promise($=>{setTimeout(()=>$(null),es)})}function retryable(es,$){return new Promise((is,Kr)=>{(async()=>{for(let Qr=0;Qr<1/0;Qr++)try{const ja=await es(Qr);if(!$(Qr,null,ja)){is(ja);return}}catch(ja){if(!$(Qr,ja)){Kr(ja);return}}})()})}function dec2hex(es){return("0"+es.toString(16)).substr(-2)}function generatePKCEVerifier(){const $=new Uint32Array(56);if(typeof crypto>"u"){const ts="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",is=ts.length;let Kr="";for(let Qr=0;Qr<56;Qr++)Kr+=ts.charAt(Math.floor(Math.random()*is));return Kr}return crypto.getRandomValues($),Array.from($,dec2hex).join("")}async function sha256(es){const ts=new TextEncoder().encode(es),is=await crypto.subtle.digest("SHA-256",ts),Kr=new Uint8Array(is);return Array.from(Kr).map(Qr=>String.fromCharCode(Qr)).join("")}async function generatePKCEChallenge(es){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),es;const ts=await sha256(es);return btoa(ts).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function getCodeChallengeAndMethod(es,$,ts=!1){const is=generatePKCEVerifier();let Kr=is;ts&&(Kr+="/PASSWORD_RECOVERY"),await setItemAsync(es,`${$}-code-verifier`,Kr);const Qr=await generatePKCEChallenge(is);return[Qr,is===Qr?"plain":"s256"]}const API_VERSION_REGEX=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function parseResponseAPIVersion(es){const $=es.headers.get(API_VERSION_HEADER_NAME);if(!$||!$.match(API_VERSION_REGEX))return null;try{return new Date(`${$}T00:00:00.0Z`)}catch{return null}}function validateExp(es){if(!es)throw new Error("Missing exp claim");const $=Math.floor(Date.now()/1e3);if(es<=$)throw new Error("JWT has expired")}function getAlgorithm(es){switch(es){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw new Error("Invalid alg claim")}}const UUID_REGEX=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function validateUUID(es){if(!UUID_REGEX.test(es))throw new Error("@supabase/auth-js: Expected parameter to be UUID but is not")}function userNotAvailableProxy(){const es={};return new Proxy(es,{get:($,ts)=>{if(ts==="__isUserNotAvailableProxy")return!0;if(typeof ts=="symbol"){const is=ts.toString();if(is==="Symbol(Symbol.toPrimitive)"||is==="Symbol(Symbol.toStringTag)"||is==="Symbol(util.inspect.custom)")return}throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${ts}" property of the session object is not supported. Please use getUser() instead.`)},set:($,ts)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${ts}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:($,ts)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${ts}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function insecureUserWarningProxy(es,$){return new Proxy(es,{get:(ts,is,Kr)=>{if(is==="__isInsecureUserWarningProxy")return!0;if(typeof is=="symbol"){const Qr=is.toString();if(Qr==="Symbol(Symbol.toPrimitive)"||Qr==="Symbol(Symbol.toStringTag)"||Qr==="Symbol(util.inspect.custom)"||Qr==="Symbol(nodejs.util.inspect.custom)")return Reflect.get(ts,is,Kr)}return!$.value&&typeof is=="string"&&(console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),$.value=!0),Reflect.get(ts,is,Kr)}})}function deepClone(es){return JSON.parse(JSON.stringify(es))}const _getErrorMessage=es=>es.msg||es.message||es.error_description||es.error||JSON.stringify(es),NETWORK_ERROR_CODES=[502,503,504];async function handleError(es){var $;if(!looksLikeFetchResponse(es))throw new AuthRetryableFetchError(_getErrorMessage(es),0);if(NETWORK_ERROR_CODES.includes(es.status))throw new AuthRetryableFetchError(_getErrorMessage(es),es.status);let ts;try{ts=await es.json()}catch(Qr){throw new AuthUnknownError(_getErrorMessage(Qr),Qr)}let is;const Kr=parseResponseAPIVersion(es);if(Kr&&Kr.getTime()>=API_VERSIONS["2024-01-01"].timestamp&&typeof ts=="object"&&ts&&typeof ts.code=="string"?is=ts.code:typeof ts=="object"&&ts&&typeof ts.error_code=="string"&&(is=ts.error_code),is){if(is==="weak_password")throw new AuthWeakPasswordError(_getErrorMessage(ts),es.status,(($=ts.weak_password)===null||$===void 0?void 0:$.reasons)||[]);if(is==="session_not_found")throw new AuthSessionMissingError}else if(typeof ts=="object"&&ts&&typeof ts.weak_password=="object"&&ts.weak_password&&Array.isArray(ts.weak_password.reasons)&&ts.weak_password.reasons.length&&ts.weak_password.reasons.reduce((Qr,ja)=>Qr&&typeof ja=="string",!0))throw new AuthWeakPasswordError(_getErrorMessage(ts),es.status,ts.weak_password.reasons);throw new AuthApiError(_getErrorMessage(ts),es.status||500,is)}const _getRequestParams=(es,$,ts,is)=>{const Kr={method:es,headers:($==null?void 0:$.headers)||{}};return es==="GET"?Kr:(Kr.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},$==null?void 0:$.headers),Kr.body=JSON.stringify(is),Object.assign(Object.assign({},Kr),ts))};async function _request(es,$,ts,is){var Kr;const Qr=Object.assign({},is==null?void 0:is.headers);Qr[API_VERSION_HEADER_NAME]||(Qr[API_VERSION_HEADER_NAME]=API_VERSIONS["2024-01-01"].name),is!=null&&is.jwt&&(Qr.Authorization=`Bearer ${is.jwt}`);const ja=(Kr=is==null?void 0:is.query)!==null&&Kr!==void 0?Kr:{};is!=null&&is.redirectTo&&(ja.redirect_to=is.redirectTo);const Ca=Object.keys(ja).length?"?"+new URLSearchParams(ja).toString():"",Aa=await _handleRequest(es,$,ts+Ca,{headers:Qr,noResolveJson:is==null?void 0:is.noResolveJson},{},is==null?void 0:is.body);return is!=null&&is.xform?is==null?void 0:is.xform(Aa):{data:Object.assign({},Aa),error:null}}async function _handleRequest(es,$,ts,is,Kr,Qr){const ja=_getRequestParams($,is,Kr,Qr);let Ca;try{Ca=await es(ts,Object.assign({},ja))}catch(Aa){throw console.error(Aa),new AuthRetryableFetchError(_getErrorMessage(Aa),0)}if(Ca.ok||await handleError(Ca),is!=null&&is.noResolveJson)return Ca;try{return await Ca.json()}catch(Aa){await handleError(Aa)}}function _sessionResponse(es){var $;let ts=null;hasSession(es)&&(ts=Object.assign({},es),es.expires_at||(ts.expires_at=expiresAt(es.expires_in)));const is=($=es.user)!==null&&$!==void 0?$:es;return{data:{session:ts,user:is},error:null}}function _sessionResponsePassword(es){const $=_sessionResponse(es);return!$.error&&es.weak_password&&typeof es.weak_password=="object"&&Array.isArray(es.weak_password.reasons)&&es.weak_password.reasons.length&&es.weak_password.message&&typeof es.weak_password.message=="string"&&es.weak_password.reasons.reduce((ts,is)=>ts&&typeof is=="string",!0)&&($.data.weak_password=es.weak_password),$}function _userResponse(es){var $;return{data:{user:($=es.user)!==null&&$!==void 0?$:es},error:null}}function _ssoResponse(es){return{data:es,error:null}}function _generateLinkResponse(es){const{action_link:$,email_otp:ts,hashed_token:is,redirect_to:Kr,verification_type:Qr}=es,ja=__rest(es,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),Ca={action_link:$,email_otp:ts,hashed_token:is,redirect_to:Kr,verification_type:Qr},Aa=Object.assign({},ja);return{data:{properties:Ca,user:Aa},error:null}}function _noResolveJsonResponse(es){return es}function hasSession(es){return es.access_token&&es.refresh_token&&es.expires_in}const SIGN_OUT_SCOPES=["global","local","others"];class GoTrueAdminApi{constructor({url:$="",headers:ts={},fetch:is}){this.url=$,this.headers=ts,this.fetch=resolveFetch$1(is),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)}}async signOut($,ts=SIGN_OUT_SCOPES[0]){if(SIGN_OUT_SCOPES.indexOf(ts)<0)throw new Error(`@supabase/auth-js: Parameter scope must be one of ${SIGN_OUT_SCOPES.join(", ")}`);try{return await _request(this.fetch,"POST",`${this.url}/logout?scope=${ts}`,{headers:this.headers,jwt:$,noResolveJson:!0}),{data:null,error:null}}catch(is){if(isAuthError(is))return{data:null,error:is};throw is}}async inviteUserByEmail($,ts={}){try{return await _request(this.fetch,"POST",`${this.url}/invite`,{body:{email:$,data:ts.data},headers:this.headers,redirectTo:ts.redirectTo,xform:_userResponse})}catch(is){if(isAuthError(is))return{data:{user:null},error:is};throw is}}async generateLink($){try{const{options:ts}=$,is=__rest($,["options"]),Kr=Object.assign(Object.assign({},is),ts);return"newEmail"in is&&(Kr.new_email=is==null?void 0:is.newEmail,delete Kr.newEmail),await _request(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:Kr,headers:this.headers,xform:_generateLinkResponse,redirectTo:ts==null?void 0:ts.redirectTo})}catch(ts){if(isAuthError(ts))return{data:{properties:null,user:null},error:ts};throw ts}}async createUser($){try{return await _request(this.fetch,"POST",`${this.url}/admin/users`,{body:$,headers:this.headers,xform:_userResponse})}catch(ts){if(isAuthError(ts))return{data:{user:null},error:ts};throw ts}}async listUsers($){var ts,is,Kr,Qr,ja,Ca,Aa;try{const Oa={nextPage:null,lastPage:0,total:0},Ia=await _request(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(is=(ts=$==null?void 0:$.page)===null||ts===void 0?void 0:ts.toString())!==null&&is!==void 0?is:"",per_page:(Qr=(Kr=$==null?void 0:$.perPage)===null||Kr===void 0?void 0:Kr.toString())!==null&&Qr!==void 0?Qr:""},xform:_noResolveJsonResponse});if(Ia.error)throw Ia.error;const Da=await Ia.json(),Ba=(ja=Ia.headers.get("x-total-count"))!==null&&ja!==void 0?ja:0,Ma=(Aa=(Ca=Ia.headers.get("link"))===null||Ca===void 0?void 0:Ca.split(","))!==null&&Aa!==void 0?Aa:[];return Ma.length>0&&(Ma.forEach(Fa=>{const qa=parseInt(Fa.split(";")[0].split("=")[1].substring(0,1)),Ha=JSON.parse(Fa.split(";")[1].split("=")[1]);Oa[`${Ha}Page`]=qa}),Oa.total=parseInt(Ba)),{data:Object.assign(Object.assign({},Da),Oa),error:null}}catch(Oa){if(isAuthError(Oa))return{data:{users:[]},error:Oa};throw Oa}}async getUserById($){validateUUID($);try{return await _request(this.fetch,"GET",`${this.url}/admin/users/${$}`,{headers:this.headers,xform:_userResponse})}catch(ts){if(isAuthError(ts))return{data:{user:null},error:ts};throw ts}}async updateUserById($,ts){validateUUID($);try{return await _request(this.fetch,"PUT",`${this.url}/admin/users/${$}`,{body:ts,headers:this.headers,xform:_userResponse})}catch(is){if(isAuthError(is))return{data:{user:null},error:is};throw is}}async deleteUser($,ts=!1){validateUUID($);try{return await _request(this.fetch,"DELETE",`${this.url}/admin/users/${$}`,{headers:this.headers,body:{should_soft_delete:ts},xform:_userResponse})}catch(is){if(isAuthError(is))return{data:{user:null},error:is};throw is}}async _listFactors($){validateUUID($.userId);try{const{data:ts,error:is}=await _request(this.fetch,"GET",`${this.url}/admin/users/${$.userId}/factors`,{headers:this.headers,xform:Kr=>({data:{factors:Kr},error:null})});return{data:ts,error:is}}catch(ts){if(isAuthError(ts))return{data:null,error:ts};throw ts}}async _deleteFactor($){validateUUID($.userId),validateUUID($.id);try{return{data:await _request(this.fetch,"DELETE",`${this.url}/admin/users/${$.userId}/factors/${$.id}`,{headers:this.headers}),error:null}}catch(ts){if(isAuthError(ts))return{data:null,error:ts};throw ts}}async _listOAuthClients($){var ts,is,Kr,Qr,ja,Ca,Aa;try{const Oa={nextPage:null,lastPage:0,total:0},Ia=await _request(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(is=(ts=$==null?void 0:$.page)===null||ts===void 0?void 0:ts.toString())!==null&&is!==void 0?is:"",per_page:(Qr=(Kr=$==null?void 0:$.perPage)===null||Kr===void 0?void 0:Kr.toString())!==null&&Qr!==void 0?Qr:""},xform:_noResolveJsonResponse});if(Ia.error)throw Ia.error;const Da=await Ia.json(),Ba=(ja=Ia.headers.get("x-total-count"))!==null&&ja!==void 0?ja:0,Ma=(Aa=(Ca=Ia.headers.get("link"))===null||Ca===void 0?void 0:Ca.split(","))!==null&&Aa!==void 0?Aa:[];return Ma.length>0&&(Ma.forEach(Fa=>{const qa=parseInt(Fa.split(";")[0].split("=")[1].substring(0,1)),Ha=JSON.parse(Fa.split(";")[1].split("=")[1]);Oa[`${Ha}Page`]=qa}),Oa.total=parseInt(Ba)),{data:Object.assign(Object.assign({},Da),Oa),error:null}}catch(Oa){if(isAuthError(Oa))return{data:{clients:[]},error:Oa};throw Oa}}async _createOAuthClient($){try{return await _request(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:$,headers:this.headers,xform:ts=>({data:ts,error:null})})}catch(ts){if(isAuthError(ts))return{data:null,error:ts};throw ts}}async _getOAuthClient($){try{return await _request(this.fetch,"GET",`${this.url}/admin/oauth/clients/${$}`,{headers:this.headers,xform:ts=>({data:ts,error:null})})}catch(ts){if(isAuthError(ts))return{data:null,error:ts};throw ts}}async _updateOAuthClient($,ts){try{return await _request(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${$}`,{body:ts,headers:this.headers,xform:is=>({data:is,error:null})})}catch(is){if(isAuthError(is))return{data:null,error:is};throw is}}async _deleteOAuthClient($){try{return await _request(this.fetch,"DELETE",`${this.url}/admin/oauth/clients/${$}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(ts){if(isAuthError(ts))return{data:null,error:ts};throw ts}}async _regenerateOAuthClientSecret($){try{return await _request(this.fetch,"POST",`${this.url}/admin/oauth/clients/${$}/regenerate_secret`,{headers:this.headers,xform:ts=>({data:ts,error:null})})}catch(ts){if(isAuthError(ts))return{data:null,error:ts};throw ts}}}function memoryLocalStorageAdapter(es={}){return{getItem:$=>es[$]||null,setItem:($,ts)=>{es[$]=ts},removeItem:$=>{delete es[$]}}}const internals={debug:!!(globalThis&&supportsLocalStorage()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class LockAcquireTimeoutError extends Error{constructor($){super($),this.isAcquireTimeout=!0}}class NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError{}async function navigatorLock(es,$,ts){internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",es,$);const is=new globalThis.AbortController;return $>0&&setTimeout(()=>{is.abort(),internals.debug&&console.log("@supabase/gotrue-js: navigatorLock acquire timed out",es)},$),await Promise.resolve().then(()=>globalThis.navigator.locks.request(es,$===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:is.signal},async Kr=>{if(Kr){internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",es,Kr.name);try{return await ts()}finally{internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",es,Kr.name)}}else{if($===0)throw internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",es),new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock "${es}" immediately failed`);if(internals.debug)try{const Qr=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(Qr,null," "))}catch(Qr){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",Qr)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),await ts()}}))}function polyfillGlobalThis(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}function getAddress(es){if(!/^0x[a-fA-F0-9]{40}$/.test(es))throw new Error(`@supabase/auth-js: Address "${es}" is invalid.`);return es.toLowerCase()}function fromHex(es){return parseInt(es,16)}function toHex(es){const $=new TextEncoder().encode(es);return"0x"+Array.from($,is=>is.toString(16).padStart(2,"0")).join("")}function createSiweMessage(es){var $;const{chainId:ts,domain:is,expirationTime:Kr,issuedAt:Qr=new Date,nonce:ja,notBefore:Ca,requestId:Aa,resources:Oa,scheme:Ia,uri:Da,version:Ba}=es;{if(!Number.isInteger(ts))throw new Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${ts}`);if(!is)throw new Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');if(ja&&ja.length<8)throw new Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${ja}`);if(!Da)throw new Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');if(Ba!=="1")throw new Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${Ba}`);if(!(($=es.statement)===null||$===void 0)&&$.includes(`
53
- `))throw new Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${es.statement}`)}const Ma=getAddress(es.address),Fa=Ia?`${Ia}://${is}`:is,qa=es.statement?`${es.statement}
54
- `:"",Ha=`${Fa} wants you to sign in with your Ethereum account:
55
- ${Ma}
56
-
57
- ${qa}`;let Ka=`URI: ${Da}
58
- Version: ${Ba}
59
- Chain ID: ${ts}${ja?`
60
- Nonce: ${ja}`:""}
61
- Issued At: ${Qr.toISOString()}`;if(Kr&&(Ka+=`
62
- Expiration Time: ${Kr.toISOString()}`),Ca&&(Ka+=`
63
- Not Before: ${Ca.toISOString()}`),Aa&&(Ka+=`
64
- Request ID: ${Aa}`),Oa){let Qa=`
65
- Resources:`;for(const Va of Oa){if(!Va||typeof Va!="string")throw new Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${Va}`);Qa+=`
66
- - ${Va}`}Ka+=Qa}return`${Ha}
67
- ${Ka}`}class WebAuthnError extends Error{constructor({message:$,code:ts,cause:is,name:Kr}){var Qr;super($,{cause:is}),this.__isWebAuthnError=!0,this.name=(Qr=Kr??(is instanceof Error?is.name:void 0))!==null&&Qr!==void 0?Qr:"Unknown Error",this.code=ts}}class WebAuthnUnknownError extends WebAuthnError{constructor($,ts){super({code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:ts,message:$}),this.name="WebAuthnUnknownError",this.originalError=ts}}function identifyRegistrationError({error:es,options:$}){var ts,is,Kr;const{publicKey:Qr}=$;if(!Qr)throw Error("options was missing required publicKey property");if(es.name==="AbortError"){if($.signal instanceof AbortSignal)return new WebAuthnError({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:es})}else if(es.name==="ConstraintError"){if(((ts=Qr.authenticatorSelection)===null||ts===void 0?void 0:ts.requireResidentKey)===!0)return new WebAuthnError({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:es});if($.mediation==="conditional"&&((is=Qr.authenticatorSelection)===null||is===void 0?void 0:is.userVerification)==="required")return new WebAuthnError({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:es});if(((Kr=Qr.authenticatorSelection)===null||Kr===void 0?void 0:Kr.userVerification)==="required")return new WebAuthnError({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:es})}else{if(es.name==="InvalidStateError")return new WebAuthnError({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:es});if(es.name==="NotAllowedError")return new WebAuthnError({message:es.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:es});if(es.name==="NotSupportedError")return Qr.pubKeyCredParams.filter(Ca=>Ca.type==="public-key").length===0?new WebAuthnError({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:es}):new WebAuthnError({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:es});if(es.name==="SecurityError"){const ja=window.location.hostname;if(isValidDomain(ja)){if(Qr.rp.id!==ja)return new WebAuthnError({message:`The RP ID "${Qr.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:es})}else return new WebAuthnError({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:es})}else if(es.name==="TypeError"){if(Qr.user.id.byteLength<1||Qr.user.id.byteLength>64)return new WebAuthnError({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:es})}else if(es.name==="UnknownError")return new WebAuthnError({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:es})}return new WebAuthnError({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:es})}function identifyAuthenticationError({error:es,options:$}){const{publicKey:ts}=$;if(!ts)throw Error("options was missing required publicKey property");if(es.name==="AbortError"){if($.signal instanceof AbortSignal)return new WebAuthnError({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:es})}else{if(es.name==="NotAllowedError")return new WebAuthnError({message:es.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:es});if(es.name==="SecurityError"){const is=window.location.hostname;if(isValidDomain(is)){if(ts.rpId!==is)return new WebAuthnError({message:`The RP ID "${ts.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:es})}else return new WebAuthnError({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:es})}else if(es.name==="UnknownError")return new WebAuthnError({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:es})}return new WebAuthnError({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:es})}class WebAuthnAbortService{createNewAbortSignal(){if(this.controller){const ts=new Error("Cancelling existing WebAuthn API call for new one");ts.name="AbortError",this.controller.abort(ts)}const $=new AbortController;return this.controller=$,$.signal}cancelCeremony(){if(this.controller){const $=new Error("Manually cancelling existing WebAuthn API call");$.name="AbortError",this.controller.abort($),this.controller=void 0}}}const webAuthnAbortService=new WebAuthnAbortService;function deserializeCredentialCreationOptions(es){if(!es)throw new Error("Credential creation options are required");if(typeof PublicKeyCredential<"u"&&"parseCreationOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON=="function")return PublicKeyCredential.parseCreationOptionsFromJSON(es);const{challenge:$,user:ts,excludeCredentials:is}=es,Kr=__rest(es,["challenge","user","excludeCredentials"]),Qr=base64UrlToUint8Array($).buffer,ja=Object.assign(Object.assign({},ts),{id:base64UrlToUint8Array(ts.id).buffer}),Ca=Object.assign(Object.assign({},Kr),{challenge:Qr,user:ja});if(is&&is.length>0){Ca.excludeCredentials=new Array(is.length);for(let Aa=0;Aa<is.length;Aa++){const Oa=is[Aa];Ca.excludeCredentials[Aa]=Object.assign(Object.assign({},Oa),{id:base64UrlToUint8Array(Oa.id).buffer,type:Oa.type||"public-key",transports:Oa.transports})}}return Ca}function deserializeCredentialRequestOptions(es){if(!es)throw new Error("Credential request options are required");if(typeof PublicKeyCredential<"u"&&"parseRequestOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON=="function")return PublicKeyCredential.parseRequestOptionsFromJSON(es);const{challenge:$,allowCredentials:ts}=es,is=__rest(es,["challenge","allowCredentials"]),Kr=base64UrlToUint8Array($).buffer,Qr=Object.assign(Object.assign({},is),{challenge:Kr});if(ts&&ts.length>0){Qr.allowCredentials=new Array(ts.length);for(let ja=0;ja<ts.length;ja++){const Ca=ts[ja];Qr.allowCredentials[ja]=Object.assign(Object.assign({},Ca),{id:base64UrlToUint8Array(Ca.id).buffer,type:Ca.type||"public-key",transports:Ca.transports})}}return Qr}function serializeCredentialCreationResponse(es){var $;if("toJSON"in es&&typeof es.toJSON=="function")return es.toJSON();const ts=es;return{id:es.id,rawId:es.id,response:{attestationObject:bytesToBase64URL(new Uint8Array(es.response.attestationObject)),clientDataJSON:bytesToBase64URL(new Uint8Array(es.response.clientDataJSON))},type:"public-key",clientExtensionResults:es.getClientExtensionResults(),authenticatorAttachment:($=ts.authenticatorAttachment)!==null&&$!==void 0?$:void 0}}function serializeCredentialRequestResponse(es){var $;if("toJSON"in es&&typeof es.toJSON=="function")return es.toJSON();const ts=es,is=es.getClientExtensionResults(),Kr=es.response;return{id:es.id,rawId:es.id,response:{authenticatorData:bytesToBase64URL(new Uint8Array(Kr.authenticatorData)),clientDataJSON:bytesToBase64URL(new Uint8Array(Kr.clientDataJSON)),signature:bytesToBase64URL(new Uint8Array(Kr.signature)),userHandle:Kr.userHandle?bytesToBase64URL(new Uint8Array(Kr.userHandle)):void 0},type:"public-key",clientExtensionResults:is,authenticatorAttachment:($=ts.authenticatorAttachment)!==null&&$!==void 0?$:void 0}}function isValidDomain(es){return es==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(es)}function browserSupportsWebAuthn(){var es,$;return!!(isBrowser()&&"PublicKeyCredential"in window&&window.PublicKeyCredential&&"credentials"in navigator&&typeof((es=navigator==null?void 0:navigator.credentials)===null||es===void 0?void 0:es.create)=="function"&&typeof(($=navigator==null?void 0:navigator.credentials)===null||$===void 0?void 0:$.get)=="function")}async function createCredential(es){try{const $=await navigator.credentials.create(es);return $?$ instanceof PublicKeyCredential?{data:$,error:null}:{data:null,error:new WebAuthnUnknownError("Browser returned unexpected credential type",$)}:{data:null,error:new WebAuthnUnknownError("Empty credential response",$)}}catch($){return{data:null,error:identifyRegistrationError({error:$,options:es})}}}async function getCredential(es){try{const $=await navigator.credentials.get(es);return $?$ instanceof PublicKeyCredential?{data:$,error:null}:{data:null,error:new WebAuthnUnknownError("Browser returned unexpected credential type",$)}:{data:null,error:new WebAuthnUnknownError("Empty credential response",$)}}catch($){return{data:null,error:identifyAuthenticationError({error:$,options:es})}}}const DEFAULT_CREATION_OPTIONS={hints:["security-key"],authenticatorSelection:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,userVerification:"preferred",residentKey:"discouraged"},attestation:"direct"},DEFAULT_REQUEST_OPTIONS={userVerification:"preferred",hints:["security-key"],attestation:"direct"};function deepMerge(...es){const $=Kr=>Kr!==null&&typeof Kr=="object"&&!Array.isArray(Kr),ts=Kr=>Kr instanceof ArrayBuffer||ArrayBuffer.isView(Kr),is={};for(const Kr of es)if(Kr)for(const Qr in Kr){const ja=Kr[Qr];if(ja!==void 0)if(Array.isArray(ja))is[Qr]=ja;else if(ts(ja))is[Qr]=ja;else if($(ja)){const Ca=is[Qr];$(Ca)?is[Qr]=deepMerge(Ca,ja):is[Qr]=deepMerge(ja)}else is[Qr]=ja}return is}function mergeCredentialCreationOptions(es,$){return deepMerge(DEFAULT_CREATION_OPTIONS,es,$||{})}function mergeCredentialRequestOptions(es,$){return deepMerge(DEFAULT_REQUEST_OPTIONS,es,$||{})}class WebAuthnApi{constructor($){this.client=$,this.enroll=this._enroll.bind(this),this.challenge=this._challenge.bind(this),this.verify=this._verify.bind(this),this.authenticate=this._authenticate.bind(this),this.register=this._register.bind(this)}async _enroll($){return this.client.mfa.enroll(Object.assign(Object.assign({},$),{factorType:"webauthn"}))}async _challenge({factorId:$,webauthn:ts,friendlyName:is,signal:Kr},Qr){var ja;try{const{data:Ca,error:Aa}=await this.client.mfa.challenge({factorId:$,webauthn:ts});if(!Ca)return{data:null,error:Aa};const Oa=Kr??webAuthnAbortService.createNewAbortSignal();if(Ca.webauthn.type==="create"){const{user:Ia}=Ca.webauthn.credential_options.publicKey;if(!Ia.name){const Da=is;if(Da)Ia.name=`${Ia.id}:${Da}`;else{const Ma=(await this.client.getUser()).data.user,Fa=((ja=Ma==null?void 0:Ma.user_metadata)===null||ja===void 0?void 0:ja.name)||(Ma==null?void 0:Ma.email)||(Ma==null?void 0:Ma.id)||"User";Ia.name=`${Ia.id}:${Fa}`}}Ia.displayName||(Ia.displayName=Ia.name)}switch(Ca.webauthn.type){case"create":{const Ia=mergeCredentialCreationOptions(Ca.webauthn.credential_options.publicKey,Qr==null?void 0:Qr.create),{data:Da,error:Ba}=await createCredential({publicKey:Ia,signal:Oa});return Da?{data:{factorId:$,challengeId:Ca.id,webauthn:{type:Ca.webauthn.type,credential_response:Da}},error:null}:{data:null,error:Ba}}case"request":{const Ia=mergeCredentialRequestOptions(Ca.webauthn.credential_options.publicKey,Qr==null?void 0:Qr.request),{data:Da,error:Ba}=await getCredential(Object.assign(Object.assign({},Ca.webauthn.credential_options),{publicKey:Ia,signal:Oa}));return Da?{data:{factorId:$,challengeId:Ca.id,webauthn:{type:Ca.webauthn.type,credential_response:Da}},error:null}:{data:null,error:Ba}}}}catch(Ca){return isAuthError(Ca)?{data:null,error:Ca}:{data:null,error:new AuthUnknownError("Unexpected error in challenge",Ca)}}}async _verify({challengeId:$,factorId:ts,webauthn:is}){return this.client.mfa.verify({factorId:ts,challengeId:$,webauthn:is})}async _authenticate({factorId:$,webauthn:{rpId:ts=typeof window<"u"?window.location.hostname:void 0,rpOrigins:is=typeof window<"u"?[window.location.origin]:void 0,signal:Kr}={}},Qr){if(!ts)return{data:null,error:new AuthError("rpId is required for WebAuthn authentication")};try{if(!browserSupportsWebAuthn())return{data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)};const{data:ja,error:Ca}=await this.challenge({factorId:$,webauthn:{rpId:ts,rpOrigins:is},signal:Kr},{request:Qr});if(!ja)return{data:null,error:Ca};const{webauthn:Aa}=ja;return this._verify({factorId:$,challengeId:ja.challengeId,webauthn:{type:Aa.type,rpId:ts,rpOrigins:is,credential_response:Aa.credential_response}})}catch(ja){return isAuthError(ja)?{data:null,error:ja}:{data:null,error:new AuthUnknownError("Unexpected error in authenticate",ja)}}}async _register({friendlyName:$,webauthn:{rpId:ts=typeof window<"u"?window.location.hostname:void 0,rpOrigins:is=typeof window<"u"?[window.location.origin]:void 0,signal:Kr}={}},Qr){if(!ts)return{data:null,error:new AuthError("rpId is required for WebAuthn registration")};try{if(!browserSupportsWebAuthn())return{data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)};const{data:ja,error:Ca}=await this._enroll({friendlyName:$});if(!ja)return await this.client.mfa.listFactors().then(Ia=>{var Da;return(Da=Ia.data)===null||Da===void 0?void 0:Da.all.find(Ba=>Ba.factor_type==="webauthn"&&Ba.friendly_name===$&&Ba.status!=="unverified")}).then(Ia=>Ia?this.client.mfa.unenroll({factorId:Ia==null?void 0:Ia.id}):void 0),{data:null,error:Ca};const{data:Aa,error:Oa}=await this._challenge({factorId:ja.id,friendlyName:ja.friendly_name,webauthn:{rpId:ts,rpOrigins:is},signal:Kr},{create:Qr});return Aa?this._verify({factorId:ja.id,challengeId:Aa.challengeId,webauthn:{rpId:ts,rpOrigins:is,type:Aa.webauthn.type,credential_response:Aa.webauthn.credential_response}}):{data:null,error:Oa}}catch(ja){return isAuthError(ja)?{data:null,error:ja}:{data:null,error:new AuthUnknownError("Unexpected error in register",ja)}}}}polyfillGlobalThis();const DEFAULT_OPTIONS={url:GOTRUE_URL,storageKey:STORAGE_KEY,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:DEFAULT_HEADERS$1,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1,lockAcquireTimeout:1e4};async function lockNoOp(es,$,ts){return await ts()}const GLOBAL_JWKS={};class GoTrueClient{get jwks(){var $,ts;return(ts=($=GLOBAL_JWKS[this.storageKey])===null||$===void 0?void 0:$.jwks)!==null&&ts!==void 0?ts:{keys:[]}}set jwks($){GLOBAL_JWKS[this.storageKey]=Object.assign(Object.assign({},GLOBAL_JWKS[this.storageKey]),{jwks:$})}get jwks_cached_at(){var $,ts;return(ts=($=GLOBAL_JWKS[this.storageKey])===null||$===void 0?void 0:$.cachedAt)!==null&&ts!==void 0?ts:Number.MIN_SAFE_INTEGER}set jwks_cached_at($){GLOBAL_JWKS[this.storageKey]=Object.assign(Object.assign({},GLOBAL_JWKS[this.storageKey]),{cachedAt:$})}constructor($){var ts,is,Kr;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.autoRefreshTickTimeout=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;const Qr=Object.assign(Object.assign({},DEFAULT_OPTIONS),$);if(this.storageKey=Qr.storageKey,this.instanceID=(ts=GoTrueClient.nextInstanceID[this.storageKey])!==null&&ts!==void 0?ts:0,GoTrueClient.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!Qr.debug,typeof Qr.debug=="function"&&(this.logger=Qr.debug),this.instanceID>0&&isBrowser()){const ja=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(ja),this.logDebugMessages&&console.trace(ja)}if(this.persistSession=Qr.persistSession,this.autoRefreshToken=Qr.autoRefreshToken,this.admin=new GoTrueAdminApi({url:Qr.url,headers:Qr.headers,fetch:Qr.fetch}),this.url=Qr.url,this.headers=Qr.headers,this.fetch=resolveFetch$1(Qr.fetch),this.lock=Qr.lock||lockNoOp,this.detectSessionInUrl=Qr.detectSessionInUrl,this.flowType=Qr.flowType,this.hasCustomAuthorizationHeader=Qr.hasCustomAuthorizationHeader,this.throwOnError=Qr.throwOnError,this.lockAcquireTimeout=Qr.lockAcquireTimeout,Qr.lock?this.lock=Qr.lock:this.persistSession&&isBrowser()&&(!((is=globalThis==null?void 0:globalThis.navigator)===null||is===void 0)&&is.locks)?this.lock=navigatorLock:this.lock=lockNoOp,this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=Number.MIN_SAFE_INTEGER),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new WebAuthnApi(this)},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.persistSession?(Qr.storage?this.storage=Qr.storage:supportsLocalStorage()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=memoryLocalStorageAdapter(this.memoryStorage)),Qr.userStorage&&(this.userStorage=Qr.userStorage)):(this.memoryStorage={},this.storage=memoryLocalStorageAdapter(this.memoryStorage)),isBrowser()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(ja){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",ja)}(Kr=this.broadcastChannel)===null||Kr===void 0||Kr.addEventListener("message",async ja=>{this._debug("received broadcast notification from other tab or client",ja);try{await this._notifyAllSubscribers(ja.data.event,ja.data.session,!1)}catch(Ca){this._debug("#broadcastChannel","error",Ca)}})}this.initialize().catch(ja=>{this._debug("#initialize()","error",ja)})}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult($){if(this.throwOnError&&$&&$.error)throw $.error;return $}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${version$1}) ${new Date().toISOString()}`}_debug(...$){return this.logDebugMessages&&this.logger(this._logPrefix(),...$),this}async initialize(){return this.initializePromise?await this.initializePromise:(this.initializePromise=(async()=>await this._acquireLock(this.lockAcquireTimeout,async()=>await this._initialize()))(),await this.initializePromise)}async _initialize(){var $;try{let ts={},is="none";if(isBrowser()&&(ts=parseParametersFromURL(window.location.href),this._isImplicitGrantCallback(ts)?is="implicit":await this._isPKCECallback(ts)&&(is="pkce")),isBrowser()&&this.detectSessionInUrl&&is!=="none"){const{data:Kr,error:Qr}=await this._getSessionFromURL(ts,is);if(Qr){if(this._debug("#_initialize()","error detecting session from URL",Qr),isAuthImplicitGrantRedirectError(Qr)){const Aa=($=Qr.details)===null||$===void 0?void 0:$.code;if(Aa==="identity_already_exists"||Aa==="identity_not_found"||Aa==="single_identity_not_deletable")return{error:Qr}}return{error:Qr}}const{session:ja,redirectType:Ca}=Kr;return this._debug("#_initialize()","detected session in URL",ja,"redirect type",Ca),await this._saveSession(ja),setTimeout(async()=>{Ca==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",ja):await this._notifyAllSubscribers("SIGNED_IN",ja)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(ts){return isAuthError(ts)?this._returnResult({error:ts}):this._returnResult({error:new AuthUnknownError("Unexpected error during initialization",ts)})}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously($){var ts,is,Kr;try{const Qr=await _request(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(is=(ts=$==null?void 0:$.options)===null||ts===void 0?void 0:ts.data)!==null&&is!==void 0?is:{},gotrue_meta_security:{captcha_token:(Kr=$==null?void 0:$.options)===null||Kr===void 0?void 0:Kr.captchaToken}},xform:_sessionResponse}),{data:ja,error:Ca}=Qr;if(Ca||!ja)return this._returnResult({data:{user:null,session:null},error:Ca});const Aa=ja.session,Oa=ja.user;return ja.session&&(await this._saveSession(ja.session),await this._notifyAllSubscribers("SIGNED_IN",Aa)),this._returnResult({data:{user:Oa,session:Aa},error:null})}catch(Qr){if(isAuthError(Qr))return this._returnResult({data:{user:null,session:null},error:Qr});throw Qr}}async signUp($){var ts,is,Kr;try{let Qr;if("email"in $){const{email:Ia,password:Da,options:Ba}=$;let Ma=null,Fa=null;this.flowType==="pkce"&&([Ma,Fa]=await getCodeChallengeAndMethod(this.storage,this.storageKey)),Qr=await _request(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:Ba==null?void 0:Ba.emailRedirectTo,body:{email:Ia,password:Da,data:(ts=Ba==null?void 0:Ba.data)!==null&&ts!==void 0?ts:{},gotrue_meta_security:{captcha_token:Ba==null?void 0:Ba.captchaToken},code_challenge:Ma,code_challenge_method:Fa},xform:_sessionResponse})}else if("phone"in $){const{phone:Ia,password:Da,options:Ba}=$;Qr=await _request(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:Ia,password:Da,data:(is=Ba==null?void 0:Ba.data)!==null&&is!==void 0?is:{},channel:(Kr=Ba==null?void 0:Ba.channel)!==null&&Kr!==void 0?Kr:"sms",gotrue_meta_security:{captcha_token:Ba==null?void 0:Ba.captchaToken}},xform:_sessionResponse})}else throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a password");const{data:ja,error:Ca}=Qr;if(Ca||!ja)return await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:Ca});const Aa=ja.session,Oa=ja.user;return ja.session&&(await this._saveSession(ja.session),await this._notifyAllSubscribers("SIGNED_IN",Aa)),this._returnResult({data:{user:Oa,session:Aa},error:null})}catch(Qr){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(Qr))return this._returnResult({data:{user:null,session:null},error:Qr});throw Qr}}async signInWithPassword($){try{let ts;if("email"in $){const{email:Qr,password:ja,options:Ca}=$;ts=await _request(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:Qr,password:ja,gotrue_meta_security:{captcha_token:Ca==null?void 0:Ca.captchaToken}},xform:_sessionResponsePassword})}else if("phone"in $){const{phone:Qr,password:ja,options:Ca}=$;ts=await _request(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:Qr,password:ja,gotrue_meta_security:{captcha_token:Ca==null?void 0:Ca.captchaToken}},xform:_sessionResponsePassword})}else throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a password");const{data:is,error:Kr}=ts;if(Kr)return this._returnResult({data:{user:null,session:null},error:Kr});if(!is||!is.session||!is.user){const Qr=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:Qr})}return is.session&&(await this._saveSession(is.session),await this._notifyAllSubscribers("SIGNED_IN",is.session)),this._returnResult({data:Object.assign({user:is.user,session:is.session},is.weak_password?{weakPassword:is.weak_password}:null),error:Kr})}catch(ts){if(isAuthError(ts))return this._returnResult({data:{user:null,session:null},error:ts});throw ts}}async signInWithOAuth($){var ts,is,Kr,Qr;return await this._handleProviderSignIn($.provider,{redirectTo:(ts=$.options)===null||ts===void 0?void 0:ts.redirectTo,scopes:(is=$.options)===null||is===void 0?void 0:is.scopes,queryParams:(Kr=$.options)===null||Kr===void 0?void 0:Kr.queryParams,skipBrowserRedirect:(Qr=$.options)===null||Qr===void 0?void 0:Qr.skipBrowserRedirect})}async exchangeCodeForSession($){return await this.initializePromise,this._acquireLock(this.lockAcquireTimeout,async()=>this._exchangeCodeForSession($))}async signInWithWeb3($){const{chain:ts}=$;switch(ts){case"ethereum":return await this.signInWithEthereum($);case"solana":return await this.signInWithSolana($);default:throw new Error(`@supabase/auth-js: Unsupported chain "${ts}"`)}}async signInWithEthereum($){var ts,is,Kr,Qr,ja,Ca,Aa,Oa,Ia,Da,Ba;let Ma,Fa;if("message"in $)Ma=$.message,Fa=$.signature;else{const{chain:qa,wallet:Ha,statement:Ka,options:Qa}=$;let Va;if(isBrowser())if(typeof Ha=="object")Va=Ha;else{const cl=window;if("ethereum"in cl&&typeof cl.ethereum=="object"&&"request"in cl.ethereum&&typeof cl.ethereum.request=="function")Va=cl.ethereum;else throw new Error("@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.")}else{if(typeof Ha!="object"||!(Qa!=null&&Qa.url))throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");Va=Ha}const Ya=new URL((ts=Qa==null?void 0:Qa.url)!==null&&ts!==void 0?ts:window.location.href),Wa=await Va.request({method:"eth_requestAccounts"}).then(cl=>cl).catch(()=>{throw new Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid")});if(!Wa||Wa.length===0)throw new Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");const el=getAddress(Wa[0]);let tl=(is=Qa==null?void 0:Qa.signInWithEthereum)===null||is===void 0?void 0:is.chainId;if(!tl){const cl=await Va.request({method:"eth_chainId"});tl=fromHex(cl)}const rl={domain:Ya.host,address:el,statement:Ka,uri:Ya.href,version:"1",chainId:tl,nonce:(Kr=Qa==null?void 0:Qa.signInWithEthereum)===null||Kr===void 0?void 0:Kr.nonce,issuedAt:(ja=(Qr=Qa==null?void 0:Qa.signInWithEthereum)===null||Qr===void 0?void 0:Qr.issuedAt)!==null&&ja!==void 0?ja:new Date,expirationTime:(Ca=Qa==null?void 0:Qa.signInWithEthereum)===null||Ca===void 0?void 0:Ca.expirationTime,notBefore:(Aa=Qa==null?void 0:Qa.signInWithEthereum)===null||Aa===void 0?void 0:Aa.notBefore,requestId:(Oa=Qa==null?void 0:Qa.signInWithEthereum)===null||Oa===void 0?void 0:Oa.requestId,resources:(Ia=Qa==null?void 0:Qa.signInWithEthereum)===null||Ia===void 0?void 0:Ia.resources};Ma=createSiweMessage(rl),Fa=await Va.request({method:"personal_sign",params:[toHex(Ma),el]})}try{const{data:qa,error:Ha}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message:Ma,signature:Fa},!((Da=$.options)===null||Da===void 0)&&Da.captchaToken?{gotrue_meta_security:{captcha_token:(Ba=$.options)===null||Ba===void 0?void 0:Ba.captchaToken}}:null),xform:_sessionResponse});if(Ha)throw Ha;if(!qa||!qa.session||!qa.user){const Ka=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:Ka})}return qa.session&&(await this._saveSession(qa.session),await this._notifyAllSubscribers("SIGNED_IN",qa.session)),this._returnResult({data:Object.assign({},qa),error:Ha})}catch(qa){if(isAuthError(qa))return this._returnResult({data:{user:null,session:null},error:qa});throw qa}}async signInWithSolana($){var ts,is,Kr,Qr,ja,Ca,Aa,Oa,Ia,Da,Ba,Ma;let Fa,qa;if("message"in $)Fa=$.message,qa=$.signature;else{const{chain:Ha,wallet:Ka,statement:Qa,options:Va}=$;let Ya;if(isBrowser())if(typeof Ka=="object")Ya=Ka;else{const el=window;if("solana"in el&&typeof el.solana=="object"&&("signIn"in el.solana&&typeof el.solana.signIn=="function"||"signMessage"in el.solana&&typeof el.solana.signMessage=="function"))Ya=el.solana;else throw new Error("@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.")}else{if(typeof Ka!="object"||!(Va!=null&&Va.url))throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");Ya=Ka}const Wa=new URL((ts=Va==null?void 0:Va.url)!==null&&ts!==void 0?ts:window.location.href);if("signIn"in Ya&&Ya.signIn){const el=await Ya.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},Va==null?void 0:Va.signInWithSolana),{version:"1",domain:Wa.host,uri:Wa.href}),Qa?{statement:Qa}:null));let tl;if(Array.isArray(el)&&el[0]&&typeof el[0]=="object")tl=el[0];else if(el&&typeof el=="object"&&"signedMessage"in el&&"signature"in el)tl=el;else throw new Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");if("signedMessage"in tl&&"signature"in tl&&(typeof tl.signedMessage=="string"||tl.signedMessage instanceof Uint8Array)&&tl.signature instanceof Uint8Array)Fa=typeof tl.signedMessage=="string"?tl.signedMessage:new TextDecoder().decode(tl.signedMessage),qa=tl.signature;else throw new Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}else{if(!("signMessage"in Ya)||typeof Ya.signMessage!="function"||!("publicKey"in Ya)||typeof Ya!="object"||!Ya.publicKey||!("toBase58"in Ya.publicKey)||typeof Ya.publicKey.toBase58!="function")throw new Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");Fa=[`${Wa.host} wants you to sign in with your Solana account:`,Ya.publicKey.toBase58(),...Qa?["",Qa,""]:[""],"Version: 1",`URI: ${Wa.href}`,`Issued At: ${(Kr=(is=Va==null?void 0:Va.signInWithSolana)===null||is===void 0?void 0:is.issuedAt)!==null&&Kr!==void 0?Kr:new Date().toISOString()}`,...!((Qr=Va==null?void 0:Va.signInWithSolana)===null||Qr===void 0)&&Qr.notBefore?[`Not Before: ${Va.signInWithSolana.notBefore}`]:[],...!((ja=Va==null?void 0:Va.signInWithSolana)===null||ja===void 0)&&ja.expirationTime?[`Expiration Time: ${Va.signInWithSolana.expirationTime}`]:[],...!((Ca=Va==null?void 0:Va.signInWithSolana)===null||Ca===void 0)&&Ca.chainId?[`Chain ID: ${Va.signInWithSolana.chainId}`]:[],...!((Aa=Va==null?void 0:Va.signInWithSolana)===null||Aa===void 0)&&Aa.nonce?[`Nonce: ${Va.signInWithSolana.nonce}`]:[],...!((Oa=Va==null?void 0:Va.signInWithSolana)===null||Oa===void 0)&&Oa.requestId?[`Request ID: ${Va.signInWithSolana.requestId}`]:[],...!((Da=(Ia=Va==null?void 0:Va.signInWithSolana)===null||Ia===void 0?void 0:Ia.resources)===null||Da===void 0)&&Da.length?["Resources",...Va.signInWithSolana.resources.map(tl=>`- ${tl}`)]:[]].join(`
68
- `);const el=await Ya.signMessage(new TextEncoder().encode(Fa),"utf8");if(!el||!(el instanceof Uint8Array))throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");qa=el}}try{const{data:Ha,error:Ka}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:Fa,signature:bytesToBase64URL(qa)},!((Ba=$.options)===null||Ba===void 0)&&Ba.captchaToken?{gotrue_meta_security:{captcha_token:(Ma=$.options)===null||Ma===void 0?void 0:Ma.captchaToken}}:null),xform:_sessionResponse});if(Ka)throw Ka;if(!Ha||!Ha.session||!Ha.user){const Qa=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:Qa})}return Ha.session&&(await this._saveSession(Ha.session),await this._notifyAllSubscribers("SIGNED_IN",Ha.session)),this._returnResult({data:Object.assign({},Ha),error:Ka})}catch(Ha){if(isAuthError(Ha))return this._returnResult({data:{user:null,session:null},error:Ha});throw Ha}}async _exchangeCodeForSession($){const ts=await getItemAsync(this.storage,`${this.storageKey}-code-verifier`),[is,Kr]=(ts??"").split("/");try{if(!is&&this.flowType==="pkce")throw new AuthPKCECodeVerifierMissingError;const{data:Qr,error:ja}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:$,code_verifier:is},xform:_sessionResponse});if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),ja)throw ja;if(!Qr||!Qr.session||!Qr.user){const Ca=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null,redirectType:null},error:Ca})}return Qr.session&&(await this._saveSession(Qr.session),await this._notifyAllSubscribers("SIGNED_IN",Qr.session)),this._returnResult({data:Object.assign(Object.assign({},Qr),{redirectType:Kr??null}),error:ja})}catch(Qr){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(Qr))return this._returnResult({data:{user:null,session:null,redirectType:null},error:Qr});throw Qr}}async signInWithIdToken($){try{const{options:ts,provider:is,token:Kr,access_token:Qr,nonce:ja}=$,Ca=await _request(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:is,id_token:Kr,access_token:Qr,nonce:ja,gotrue_meta_security:{captcha_token:ts==null?void 0:ts.captchaToken}},xform:_sessionResponse}),{data:Aa,error:Oa}=Ca;if(Oa)return this._returnResult({data:{user:null,session:null},error:Oa});if(!Aa||!Aa.session||!Aa.user){const Ia=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:Ia})}return Aa.session&&(await this._saveSession(Aa.session),await this._notifyAllSubscribers("SIGNED_IN",Aa.session)),this._returnResult({data:Aa,error:Oa})}catch(ts){if(isAuthError(ts))return this._returnResult({data:{user:null,session:null},error:ts});throw ts}}async signInWithOtp($){var ts,is,Kr,Qr,ja;try{if("email"in $){const{email:Ca,options:Aa}=$;let Oa=null,Ia=null;this.flowType==="pkce"&&([Oa,Ia]=await getCodeChallengeAndMethod(this.storage,this.storageKey));const{error:Da}=await _request(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:Ca,data:(ts=Aa==null?void 0:Aa.data)!==null&&ts!==void 0?ts:{},create_user:(is=Aa==null?void 0:Aa.shouldCreateUser)!==null&&is!==void 0?is:!0,gotrue_meta_security:{captcha_token:Aa==null?void 0:Aa.captchaToken},code_challenge:Oa,code_challenge_method:Ia},redirectTo:Aa==null?void 0:Aa.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:Da})}if("phone"in $){const{phone:Ca,options:Aa}=$,{data:Oa,error:Ia}=await _request(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:Ca,data:(Kr=Aa==null?void 0:Aa.data)!==null&&Kr!==void 0?Kr:{},create_user:(Qr=Aa==null?void 0:Aa.shouldCreateUser)!==null&&Qr!==void 0?Qr:!0,gotrue_meta_security:{captcha_token:Aa==null?void 0:Aa.captchaToken},channel:(ja=Aa==null?void 0:Aa.channel)!==null&&ja!==void 0?ja:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:Oa==null?void 0:Oa.message_id},error:Ia})}throw new AuthInvalidCredentialsError("You must provide either an email or phone number.")}catch(Ca){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(Ca))return this._returnResult({data:{user:null,session:null},error:Ca});throw Ca}}async verifyOtp($){var ts,is;try{let Kr,Qr;"options"in $&&(Kr=(ts=$.options)===null||ts===void 0?void 0:ts.redirectTo,Qr=(is=$.options)===null||is===void 0?void 0:is.captchaToken);const{data:ja,error:Ca}=await _request(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},$),{gotrue_meta_security:{captcha_token:Qr}}),redirectTo:Kr,xform:_sessionResponse});if(Ca)throw Ca;if(!ja)throw new Error("An error occurred on token verification.");const Aa=ja.session,Oa=ja.user;return Aa!=null&&Aa.access_token&&(await this._saveSession(Aa),await this._notifyAllSubscribers($.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",Aa)),this._returnResult({data:{user:Oa,session:Aa},error:null})}catch(Kr){if(isAuthError(Kr))return this._returnResult({data:{user:null,session:null},error:Kr});throw Kr}}async signInWithSSO($){var ts,is,Kr,Qr,ja;try{let Ca=null,Aa=null;this.flowType==="pkce"&&([Ca,Aa]=await getCodeChallengeAndMethod(this.storage,this.storageKey));const Oa=await _request(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in $?{provider_id:$.providerId}:null),"domain"in $?{domain:$.domain}:null),{redirect_to:(is=(ts=$.options)===null||ts===void 0?void 0:ts.redirectTo)!==null&&is!==void 0?is:void 0}),!((Kr=$==null?void 0:$.options)===null||Kr===void 0)&&Kr.captchaToken?{gotrue_meta_security:{captcha_token:$.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:Ca,code_challenge_method:Aa}),headers:this.headers,xform:_ssoResponse});return!((Qr=Oa.data)===null||Qr===void 0)&&Qr.url&&isBrowser()&&!(!((ja=$.options)===null||ja===void 0)&&ja.skipBrowserRedirect)&&window.location.assign(Oa.data.url),this._returnResult(Oa)}catch(Ca){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(Ca))return this._returnResult({data:null,error:Ca});throw Ca}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async $=>{const{data:{session:ts},error:is}=$;if(is)throw is;if(!ts)throw new AuthSessionMissingError;const{error:Kr}=await _request(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:ts.access_token});return this._returnResult({data:{user:null,session:null},error:Kr})})}catch($){if(isAuthError($))return this._returnResult({data:{user:null,session:null},error:$});throw $}}async resend($){try{const ts=`${this.url}/resend`;if("email"in $){const{email:is,type:Kr,options:Qr}=$,{error:ja}=await _request(this.fetch,"POST",ts,{headers:this.headers,body:{email:is,type:Kr,gotrue_meta_security:{captcha_token:Qr==null?void 0:Qr.captchaToken}},redirectTo:Qr==null?void 0:Qr.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:ja})}else if("phone"in $){const{phone:is,type:Kr,options:Qr}=$,{data:ja,error:Ca}=await _request(this.fetch,"POST",ts,{headers:this.headers,body:{phone:is,type:Kr,gotrue_meta_security:{captcha_token:Qr==null?void 0:Qr.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:ja==null?void 0:ja.message_id},error:Ca})}throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a type")}catch(ts){if(isAuthError(ts))return this._returnResult({data:{user:null,session:null},error:ts});throw ts}}async getSession(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>this._useSession(async ts=>ts))}async _acquireLock($,ts){this._debug("#_acquireLock","begin",$);try{if(this.lockAcquired){const is=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),Kr=(async()=>(await is,await ts()))();return this.pendingInLock.push((async()=>{try{await Kr}catch{}})()),Kr}return await this.lock(`lock:${this.storageKey}`,$,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const is=ts();for(this.pendingInLock.push((async()=>{try{await is}catch{}})()),await is;this.pendingInLock.length;){const Kr=[...this.pendingInLock];await Promise.all(Kr),this.pendingInLock.splice(0,Kr.length)}return await is}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession($){this._debug("#_useSession","begin");try{const ts=await this.__loadSession();return await $(ts)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lockAcquired||this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack);try{let $=null;const ts=await getItemAsync(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",ts),ts!==null&&(this._isValidSession(ts)?$=ts:(this._debug("#getSession()","session from storage is not valid"),await this._removeSession())),!$)return{data:{session:null},error:null};const is=$.expires_at?$.expires_at*1e3-Date.now()<EXPIRY_MARGIN_MS:!1;if(this._debug("#__loadSession()",`session has${is?"":" not"} expired`,"expires_at",$.expires_at),!is){if(this.userStorage){const ja=await getItemAsync(this.userStorage,this.storageKey+"-user");ja!=null&&ja.user?$.user=ja.user:$.user=userNotAvailableProxy()}if(this.storage.isServer&&$.user&&!$.user.__isUserNotAvailableProxy){const ja={value:this.suppressGetSessionWarning};$.user=insecureUserWarningProxy($.user,ja),ja.value&&(this.suppressGetSessionWarning=!0)}return{data:{session:$},error:null}}const{data:Kr,error:Qr}=await this._callRefreshToken($.refresh_token);return Qr?this._returnResult({data:{session:null},error:Qr}):this._returnResult({data:{session:Kr},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser($){if($)return await this._getUser($);await this.initializePromise;const ts=await this._acquireLock(this.lockAcquireTimeout,async()=>await this._getUser());return ts.data.user&&(this.suppressGetSessionWarning=!0),ts}async _getUser($){try{return $?await _request(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:$,xform:_userResponse}):await this._useSession(async ts=>{var is,Kr,Qr;const{data:ja,error:Ca}=ts;if(Ca)throw Ca;return!(!((is=ja.session)===null||is===void 0)&&is.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new AuthSessionMissingError}:await _request(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(Qr=(Kr=ja.session)===null||Kr===void 0?void 0:Kr.access_token)!==null&&Qr!==void 0?Qr:void 0,xform:_userResponse})})}catch(ts){if(isAuthError(ts))return isAuthSessionMissingError(ts)&&(await this._removeSession(),await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({data:{user:null},error:ts});throw ts}}async updateUser($,ts={}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._updateUser($,ts))}async _updateUser($,ts={}){try{return await this._useSession(async is=>{const{data:Kr,error:Qr}=is;if(Qr)throw Qr;if(!Kr.session)throw new AuthSessionMissingError;const ja=Kr.session;let Ca=null,Aa=null;this.flowType==="pkce"&&$.email!=null&&([Ca,Aa]=await getCodeChallengeAndMethod(this.storage,this.storageKey));const{data:Oa,error:Ia}=await _request(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:ts==null?void 0:ts.emailRedirectTo,body:Object.assign(Object.assign({},$),{code_challenge:Ca,code_challenge_method:Aa}),jwt:ja.access_token,xform:_userResponse});if(Ia)throw Ia;return ja.user=Oa.user,await this._saveSession(ja),await this._notifyAllSubscribers("USER_UPDATED",ja),this._returnResult({data:{user:ja.user},error:null})})}catch(is){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(is))return this._returnResult({data:{user:null},error:is});throw is}}async setSession($){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._setSession($))}async _setSession($){try{if(!$.access_token||!$.refresh_token)throw new AuthSessionMissingError;const ts=Date.now()/1e3;let is=ts,Kr=!0,Qr=null;const{payload:ja}=decodeJWT($.access_token);if(ja.exp&&(is=ja.exp,Kr=is<=ts),Kr){const{data:Ca,error:Aa}=await this._callRefreshToken($.refresh_token);if(Aa)return this._returnResult({data:{user:null,session:null},error:Aa});if(!Ca)return{data:{user:null,session:null},error:null};Qr=Ca}else{const{data:Ca,error:Aa}=await this._getUser($.access_token);if(Aa)return this._returnResult({data:{user:null,session:null},error:Aa});Qr={access_token:$.access_token,refresh_token:$.refresh_token,user:Ca.user,token_type:"bearer",expires_in:is-ts,expires_at:is},await this._saveSession(Qr),await this._notifyAllSubscribers("SIGNED_IN",Qr)}return this._returnResult({data:{user:Qr.user,session:Qr},error:null})}catch(ts){if(isAuthError(ts))return this._returnResult({data:{session:null,user:null},error:ts});throw ts}}async refreshSession($){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._refreshSession($))}async _refreshSession($){try{return await this._useSession(async ts=>{var is;if(!$){const{data:ja,error:Ca}=ts;if(Ca)throw Ca;$=(is=ja.session)!==null&&is!==void 0?is:void 0}if(!($!=null&&$.refresh_token))throw new AuthSessionMissingError;const{data:Kr,error:Qr}=await this._callRefreshToken($.refresh_token);return Qr?this._returnResult({data:{user:null,session:null},error:Qr}):Kr?this._returnResult({data:{user:Kr.user,session:Kr},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(ts){if(isAuthError(ts))return this._returnResult({data:{user:null,session:null},error:ts});throw ts}}async _getSessionFromURL($,ts){try{if(!isBrowser())throw new AuthImplicitGrantRedirectError("No browser detected.");if($.error||$.error_description||$.error_code)throw new AuthImplicitGrantRedirectError($.error_description||"Error in URL with unspecified error_description",{error:$.error||"unspecified_error",code:$.error_code||"unspecified_code"});switch(ts){case"implicit":if(this.flowType==="pkce")throw new AuthPKCEGrantCodeExchangeError("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new AuthImplicitGrantRedirectError("Not a valid implicit grant flow url.");break;default:}if(ts==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!$.code)throw new AuthPKCEGrantCodeExchangeError("No code detected.");const{data:Qa,error:Va}=await this._exchangeCodeForSession($.code);if(Va)throw Va;const Ya=new URL(window.location.href);return Ya.searchParams.delete("code"),window.history.replaceState(window.history.state,"",Ya.toString()),{data:{session:Qa.session,redirectType:null},error:null}}const{provider_token:is,provider_refresh_token:Kr,access_token:Qr,refresh_token:ja,expires_in:Ca,expires_at:Aa,token_type:Oa}=$;if(!Qr||!Ca||!ja||!Oa)throw new AuthImplicitGrantRedirectError("No session defined in URL");const Ia=Math.round(Date.now()/1e3),Da=parseInt(Ca);let Ba=Ia+Da;Aa&&(Ba=parseInt(Aa));const Ma=Ba-Ia;Ma*1e3<=AUTO_REFRESH_TICK_DURATION_MS&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${Ma}s, should have been closer to ${Da}s`);const Fa=Ba-Da;Ia-Fa>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",Fa,Ba,Ia):Ia-Fa<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",Fa,Ba,Ia);const{data:qa,error:Ha}=await this._getUser(Qr);if(Ha)throw Ha;const Ka={provider_token:is,provider_refresh_token:Kr,access_token:Qr,expires_in:Da,expires_at:Ba,refresh_token:ja,token_type:Oa,user:qa.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:Ka,redirectType:$.type},error:null})}catch(is){if(isAuthError(is))return this._returnResult({data:{session:null,redirectType:null},error:is});throw is}}_isImplicitGrantCallback($){return typeof this.detectSessionInUrl=="function"?this.detectSessionInUrl(new URL(window.location.href),$):!!($.access_token||$.error_description)}async _isPKCECallback($){const ts=await getItemAsync(this.storage,`${this.storageKey}-code-verifier`);return!!($.code&&ts)}async signOut($={scope:"global"}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._signOut($))}async _signOut({scope:$}={scope:"global"}){return await this._useSession(async ts=>{var is;const{data:Kr,error:Qr}=ts;if(Qr&&!isAuthSessionMissingError(Qr))return this._returnResult({error:Qr});const ja=(is=Kr.session)===null||is===void 0?void 0:is.access_token;if(ja){const{error:Ca}=await this.admin.signOut(ja,$);if(Ca&&!(isAuthApiError(Ca)&&(Ca.status===404||Ca.status===401||Ca.status===403)||isAuthSessionMissingError(Ca)))return this._returnResult({error:Ca})}return $!=="others"&&(await this._removeSession(),await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({error:null})})}onAuthStateChange($){const ts=generateCallbackId(),is={id:ts,callback:$,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",ts),this.stateChangeEmitters.delete(ts)}};return this._debug("#onAuthStateChange()","registered callback with id",ts),this.stateChangeEmitters.set(ts,is),(async()=>(await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(ts)})))(),{data:{subscription:is}}}async _emitInitialSession($){return await this._useSession(async ts=>{var is,Kr;try{const{data:{session:Qr},error:ja}=ts;if(ja)throw ja;await((is=this.stateChangeEmitters.get($))===null||is===void 0?void 0:is.callback("INITIAL_SESSION",Qr)),this._debug("INITIAL_SESSION","callback id",$,"session",Qr)}catch(Qr){await((Kr=this.stateChangeEmitters.get($))===null||Kr===void 0?void 0:Kr.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",$,"error",Qr),console.error(Qr)}})}async resetPasswordForEmail($,ts={}){let is=null,Kr=null;this.flowType==="pkce"&&([is,Kr]=await getCodeChallengeAndMethod(this.storage,this.storageKey,!0));try{return await _request(this.fetch,"POST",`${this.url}/recover`,{body:{email:$,code_challenge:is,code_challenge_method:Kr,gotrue_meta_security:{captcha_token:ts.captchaToken}},headers:this.headers,redirectTo:ts.redirectTo})}catch(Qr){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(Qr))return this._returnResult({data:null,error:Qr});throw Qr}}async getUserIdentities(){var $;try{const{data:ts,error:is}=await this.getUser();if(is)throw is;return this._returnResult({data:{identities:($=ts.user.identities)!==null&&$!==void 0?$:[]},error:null})}catch(ts){if(isAuthError(ts))return this._returnResult({data:null,error:ts});throw ts}}async linkIdentity($){return"token"in $?this.linkIdentityIdToken($):this.linkIdentityOAuth($)}async linkIdentityOAuth($){var ts;try{const{data:is,error:Kr}=await this._useSession(async Qr=>{var ja,Ca,Aa,Oa,Ia;const{data:Da,error:Ba}=Qr;if(Ba)throw Ba;const Ma=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,$.provider,{redirectTo:(ja=$.options)===null||ja===void 0?void 0:ja.redirectTo,scopes:(Ca=$.options)===null||Ca===void 0?void 0:Ca.scopes,queryParams:(Aa=$.options)===null||Aa===void 0?void 0:Aa.queryParams,skipBrowserRedirect:!0});return await _request(this.fetch,"GET",Ma,{headers:this.headers,jwt:(Ia=(Oa=Da.session)===null||Oa===void 0?void 0:Oa.access_token)!==null&&Ia!==void 0?Ia:void 0})});if(Kr)throw Kr;return isBrowser()&&!(!((ts=$.options)===null||ts===void 0)&&ts.skipBrowserRedirect)&&window.location.assign(is==null?void 0:is.url),this._returnResult({data:{provider:$.provider,url:is==null?void 0:is.url},error:null})}catch(is){if(isAuthError(is))return this._returnResult({data:{provider:$.provider,url:null},error:is});throw is}}async linkIdentityIdToken($){return await this._useSession(async ts=>{var is;try{const{error:Kr,data:{session:Qr}}=ts;if(Kr)throw Kr;const{options:ja,provider:Ca,token:Aa,access_token:Oa,nonce:Ia}=$,Da=await _request(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(is=Qr==null?void 0:Qr.access_token)!==null&&is!==void 0?is:void 0,body:{provider:Ca,id_token:Aa,access_token:Oa,nonce:Ia,link_identity:!0,gotrue_meta_security:{captcha_token:ja==null?void 0:ja.captchaToken}},xform:_sessionResponse}),{data:Ba,error:Ma}=Da;return Ma?this._returnResult({data:{user:null,session:null},error:Ma}):!Ba||!Ba.session||!Ba.user?this._returnResult({data:{user:null,session:null},error:new AuthInvalidTokenResponseError}):(Ba.session&&(await this._saveSession(Ba.session),await this._notifyAllSubscribers("USER_UPDATED",Ba.session)),this._returnResult({data:Ba,error:Ma}))}catch(Kr){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(Kr))return this._returnResult({data:{user:null,session:null},error:Kr});throw Kr}})}async unlinkIdentity($){try{return await this._useSession(async ts=>{var is,Kr;const{data:Qr,error:ja}=ts;if(ja)throw ja;return await _request(this.fetch,"DELETE",`${this.url}/user/identities/${$.identity_id}`,{headers:this.headers,jwt:(Kr=(is=Qr.session)===null||is===void 0?void 0:is.access_token)!==null&&Kr!==void 0?Kr:void 0})})}catch(ts){if(isAuthError(ts))return this._returnResult({data:null,error:ts});throw ts}}async _refreshAccessToken($){const ts=`#_refreshAccessToken(${$.substring(0,5)}...)`;this._debug(ts,"begin");try{const is=Date.now();return await retryable(async Kr=>(Kr>0&&await sleep(200*Math.pow(2,Kr-1)),this._debug(ts,"refreshing attempt",Kr),await _request(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:$},headers:this.headers,xform:_sessionResponse})),(Kr,Qr)=>{const ja=200*Math.pow(2,Kr);return Qr&&isAuthRetryableFetchError(Qr)&&Date.now()+ja-is<AUTO_REFRESH_TICK_DURATION_MS})}catch(is){if(this._debug(ts,"error",is),isAuthError(is))return this._returnResult({data:{session:null,user:null},error:is});throw is}finally{this._debug(ts,"end")}}_isValidSession($){return typeof $=="object"&&$!==null&&"access_token"in $&&"refresh_token"in $&&"expires_at"in $}async _handleProviderSignIn($,ts){const is=await this._getUrlForProvider(`${this.url}/authorize`,$,{redirectTo:ts.redirectTo,scopes:ts.scopes,queryParams:ts.queryParams});return this._debug("#_handleProviderSignIn()","provider",$,"options",ts,"url",is),isBrowser()&&!ts.skipBrowserRedirect&&window.location.assign(is),{data:{provider:$,url:is},error:null}}async _recoverAndRefresh(){var $,ts;const is="#_recoverAndRefresh()";this._debug(is,"begin");try{const Kr=await getItemAsync(this.storage,this.storageKey);if(Kr&&this.userStorage){let ja=await getItemAsync(this.userStorage,this.storageKey+"-user");!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!ja&&(ja={user:Kr.user},await setItemAsync(this.userStorage,this.storageKey+"-user",ja)),Kr.user=($=ja==null?void 0:ja.user)!==null&&$!==void 0?$:userNotAvailableProxy()}else if(Kr&&!Kr.user&&!Kr.user){const ja=await getItemAsync(this.storage,this.storageKey+"-user");ja&&(ja!=null&&ja.user)?(Kr.user=ja.user,await removeItemAsync(this.storage,this.storageKey+"-user"),await setItemAsync(this.storage,this.storageKey,Kr)):Kr.user=userNotAvailableProxy()}if(this._debug(is,"session from storage",Kr),!this._isValidSession(Kr)){this._debug(is,"session is not valid"),Kr!==null&&await this._removeSession();return}const Qr=((ts=Kr.expires_at)!==null&&ts!==void 0?ts:1/0)*1e3-Date.now()<EXPIRY_MARGIN_MS;if(this._debug(is,`session has${Qr?"":" not"} expired with margin of ${EXPIRY_MARGIN_MS}s`),Qr){if(this.autoRefreshToken&&Kr.refresh_token){const{error:ja}=await this._callRefreshToken(Kr.refresh_token);ja&&(console.error(ja),isAuthRetryableFetchError(ja)||(this._debug(is,"refresh failed with a non-retryable error, removing the session",ja),await this._removeSession()))}}else if(Kr.user&&Kr.user.__isUserNotAvailableProxy===!0)try{const{data:ja,error:Ca}=await this._getUser(Kr.access_token);!Ca&&(ja!=null&&ja.user)?(Kr.user=ja.user,await this._saveSession(Kr),await this._notifyAllSubscribers("SIGNED_IN",Kr)):this._debug(is,"could not get user data, skipping SIGNED_IN notification")}catch(ja){console.error("Error getting user data:",ja),this._debug(is,"error getting user data, skipping SIGNED_IN notification",ja)}else await this._notifyAllSubscribers("SIGNED_IN",Kr)}catch(Kr){this._debug(is,"error",Kr),console.error(Kr);return}finally{this._debug(is,"end")}}async _callRefreshToken($){var ts,is;if(!$)throw new AuthSessionMissingError;if(this.refreshingDeferred)return this.refreshingDeferred.promise;const Kr=`#_callRefreshToken(${$.substring(0,5)}...)`;this._debug(Kr,"begin");try{this.refreshingDeferred=new Deferred;const{data:Qr,error:ja}=await this._refreshAccessToken($);if(ja)throw ja;if(!Qr.session)throw new AuthSessionMissingError;await this._saveSession(Qr.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",Qr.session);const Ca={data:Qr.session,error:null};return this.refreshingDeferred.resolve(Ca),Ca}catch(Qr){if(this._debug(Kr,"error",Qr),isAuthError(Qr)){const ja={data:null,error:Qr};return isAuthRetryableFetchError(Qr)||await this._removeSession(),(ts=this.refreshingDeferred)===null||ts===void 0||ts.resolve(ja),ja}throw(is=this.refreshingDeferred)===null||is===void 0||is.reject(Qr),Qr}finally{this.refreshingDeferred=null,this._debug(Kr,"end")}}async _notifyAllSubscribers($,ts,is=!0){const Kr=`#_notifyAllSubscribers(${$})`;this._debug(Kr,"begin",ts,`broadcast = ${is}`);try{this.broadcastChannel&&is&&this.broadcastChannel.postMessage({event:$,session:ts});const Qr=[],ja=Array.from(this.stateChangeEmitters.values()).map(async Ca=>{try{await Ca.callback($,ts)}catch(Aa){Qr.push(Aa)}});if(await Promise.all(ja),Qr.length>0){for(let Ca=0;Ca<Qr.length;Ca+=1)console.error(Qr[Ca]);throw Qr[0]}}finally{this._debug(Kr,"end")}}async _saveSession($){this._debug("#_saveSession()",$),this.suppressGetSessionWarning=!0,await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`);const ts=Object.assign({},$),is=ts.user&&ts.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!is&&ts.user&&await setItemAsync(this.userStorage,this.storageKey+"-user",{user:ts.user});const Kr=Object.assign({},ts);delete Kr.user;const Qr=deepClone(Kr);await setItemAsync(this.storage,this.storageKey,Qr)}else{const Kr=deepClone(ts);await setItemAsync(this.storage,this.storageKey,Kr)}}async _removeSession(){this._debug("#_removeSession()"),this.suppressGetSessionWarning=!1,await removeItemAsync(this.storage,this.storageKey),await removeItemAsync(this.storage,this.storageKey+"-code-verifier"),await removeItemAsync(this.storage,this.storageKey+"-user"),this.userStorage&&await removeItemAsync(this.userStorage,this.storageKey+"-user"),await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const $=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{$&&isBrowser()&&(window!=null&&window.removeEventListener)&&window.removeEventListener("visibilitychange",$)}catch(ts){console.error("removing visibilitychange callback failed",ts)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");const $=setInterval(()=>this._autoRefreshTokenTick(),AUTO_REFRESH_TICK_DURATION_MS);this.autoRefreshTicker=$,$&&typeof $=="object"&&typeof $.unref=="function"?$.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer($);const ts=setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=ts,ts&&typeof ts=="object"&&typeof ts.unref=="function"?ts.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(ts)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const $=this.autoRefreshTicker;this.autoRefreshTicker=null,$&&clearInterval($);const ts=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null,ts&&clearTimeout(ts)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{const $=Date.now();try{return await this._useSession(async ts=>{const{data:{session:is}}=ts;if(!is||!is.refresh_token||!is.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const Kr=Math.floor((is.expires_at*1e3-$)/AUTO_REFRESH_TICK_DURATION_MS);this._debug("#_autoRefreshTokenTick()",`access token expires in ${Kr} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`),Kr<=AUTO_REFRESH_TICK_THRESHOLD&&await this._callRefreshToken(is.refresh_token)})}catch(ts){console.error("Auto refresh tick failed with error. This is likely a transient error.",ts)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch($){if($.isAcquireTimeout||$ instanceof LockAcquireTimeoutError)this._debug("auto refresh token tick lock not available");else throw $}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!isBrowser()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(!1)}catch($){this._debug("#visibilityChangedCallback","error",$)}},window==null||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch($){console.error("_handleVisibilityChange",$)}}async _onVisibilityChanged($){const ts=`#_onVisibilityChanged(${$})`;this._debug(ts,"visibilityState",document.visibilityState),document.visibilityState==="visible"?(this.autoRefreshToken&&this._startAutoRefresh(),$||(await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>{if(document.visibilityState!=="visible"){this._debug(ts,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()}))):document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider($,ts,is){const Kr=[`provider=${encodeURIComponent(ts)}`];if(is!=null&&is.redirectTo&&Kr.push(`redirect_to=${encodeURIComponent(is.redirectTo)}`),is!=null&&is.scopes&&Kr.push(`scopes=${encodeURIComponent(is.scopes)}`),this.flowType==="pkce"){const[Qr,ja]=await getCodeChallengeAndMethod(this.storage,this.storageKey),Ca=new URLSearchParams({code_challenge:`${encodeURIComponent(Qr)}`,code_challenge_method:`${encodeURIComponent(ja)}`});Kr.push(Ca.toString())}if(is!=null&&is.queryParams){const Qr=new URLSearchParams(is.queryParams);Kr.push(Qr.toString())}return is!=null&&is.skipBrowserRedirect&&Kr.push(`skip_http_redirect=${is.skipBrowserRedirect}`),`${$}?${Kr.join("&")}`}async _unenroll($){try{return await this._useSession(async ts=>{var is;const{data:Kr,error:Qr}=ts;return Qr?this._returnResult({data:null,error:Qr}):await _request(this.fetch,"DELETE",`${this.url}/factors/${$.factorId}`,{headers:this.headers,jwt:(is=Kr==null?void 0:Kr.session)===null||is===void 0?void 0:is.access_token})})}catch(ts){if(isAuthError(ts))return this._returnResult({data:null,error:ts});throw ts}}async _enroll($){try{return await this._useSession(async ts=>{var is,Kr;const{data:Qr,error:ja}=ts;if(ja)return this._returnResult({data:null,error:ja});const Ca=Object.assign({friendly_name:$.friendlyName,factor_type:$.factorType},$.factorType==="phone"?{phone:$.phone}:$.factorType==="totp"?{issuer:$.issuer}:{}),{data:Aa,error:Oa}=await _request(this.fetch,"POST",`${this.url}/factors`,{body:Ca,headers:this.headers,jwt:(is=Qr==null?void 0:Qr.session)===null||is===void 0?void 0:is.access_token});return Oa?this._returnResult({data:null,error:Oa}):($.factorType==="totp"&&Aa.type==="totp"&&(!((Kr=Aa==null?void 0:Aa.totp)===null||Kr===void 0)&&Kr.qr_code)&&(Aa.totp.qr_code=`data:image/svg+xml;utf-8,${Aa.totp.qr_code}`),this._returnResult({data:Aa,error:null}))})}catch(ts){if(isAuthError(ts))return this._returnResult({data:null,error:ts});throw ts}}async _verify($){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async ts=>{var is;const{data:Kr,error:Qr}=ts;if(Qr)return this._returnResult({data:null,error:Qr});const ja=Object.assign({challenge_id:$.challengeId},"webauthn"in $?{webauthn:Object.assign(Object.assign({},$.webauthn),{credential_response:$.webauthn.type==="create"?serializeCredentialCreationResponse($.webauthn.credential_response):serializeCredentialRequestResponse($.webauthn.credential_response)})}:{code:$.code}),{data:Ca,error:Aa}=await _request(this.fetch,"POST",`${this.url}/factors/${$.factorId}/verify`,{body:ja,headers:this.headers,jwt:(is=Kr==null?void 0:Kr.session)===null||is===void 0?void 0:is.access_token});return Aa?this._returnResult({data:null,error:Aa}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+Ca.expires_in},Ca)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",Ca),this._returnResult({data:Ca,error:Aa}))})}catch(ts){if(isAuthError(ts))return this._returnResult({data:null,error:ts});throw ts}})}async _challenge($){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async ts=>{var is;const{data:Kr,error:Qr}=ts;if(Qr)return this._returnResult({data:null,error:Qr});const ja=await _request(this.fetch,"POST",`${this.url}/factors/${$.factorId}/challenge`,{body:$,headers:this.headers,jwt:(is=Kr==null?void 0:Kr.session)===null||is===void 0?void 0:is.access_token});if(ja.error)return ja;const{data:Ca}=ja;if(Ca.type!=="webauthn")return{data:Ca,error:null};switch(Ca.webauthn.type){case"create":return{data:Object.assign(Object.assign({},Ca),{webauthn:Object.assign(Object.assign({},Ca.webauthn),{credential_options:Object.assign(Object.assign({},Ca.webauthn.credential_options),{publicKey:deserializeCredentialCreationOptions(Ca.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},Ca),{webauthn:Object.assign(Object.assign({},Ca.webauthn),{credential_options:Object.assign(Object.assign({},Ca.webauthn.credential_options),{publicKey:deserializeCredentialRequestOptions(Ca.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(ts){if(isAuthError(ts))return this._returnResult({data:null,error:ts});throw ts}})}async _challengeAndVerify($){const{data:ts,error:is}=await this._challenge({factorId:$.factorId});return is?this._returnResult({data:null,error:is}):await this._verify({factorId:$.factorId,challengeId:ts.id,code:$.code})}async _listFactors(){var $;const{data:{user:ts},error:is}=await this.getUser();if(is)return{data:null,error:is};const Kr={all:[],phone:[],totp:[],webauthn:[]};for(const Qr of($=ts==null?void 0:ts.factors)!==null&&$!==void 0?$:[])Kr.all.push(Qr),Qr.status==="verified"&&Kr[Qr.factor_type].push(Qr);return{data:Kr,error:null}}async _getAuthenticatorAssuranceLevel($){var ts,is,Kr,Qr;if($)try{const{payload:Ma}=decodeJWT($);let Fa=null;Ma.aal&&(Fa=Ma.aal);let qa=Fa;const{data:{user:Ha},error:Ka}=await this.getUser($);if(Ka)return this._returnResult({data:null,error:Ka});((is=(ts=Ha==null?void 0:Ha.factors)===null||ts===void 0?void 0:ts.filter(Ya=>Ya.status==="verified"))!==null&&is!==void 0?is:[]).length>0&&(qa="aal2");const Va=Ma.amr||[];return{data:{currentLevel:Fa,nextLevel:qa,currentAuthenticationMethods:Va},error:null}}catch(Ma){if(isAuthError(Ma))return this._returnResult({data:null,error:Ma});throw Ma}const{data:{session:ja},error:Ca}=await this.getSession();if(Ca)return this._returnResult({data:null,error:Ca});if(!ja)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const{payload:Aa}=decodeJWT(ja.access_token);let Oa=null;Aa.aal&&(Oa=Aa.aal);let Ia=Oa;((Qr=(Kr=ja.user.factors)===null||Kr===void 0?void 0:Kr.filter(Ma=>Ma.status==="verified"))!==null&&Qr!==void 0?Qr:[]).length>0&&(Ia="aal2");const Ba=Aa.amr||[];return{data:{currentLevel:Oa,nextLevel:Ia,currentAuthenticationMethods:Ba},error:null}}async _getAuthorizationDetails($){try{return await this._useSession(async ts=>{const{data:{session:is},error:Kr}=ts;return Kr?this._returnResult({data:null,error:Kr}):is?await _request(this.fetch,"GET",`${this.url}/oauth/authorizations/${$}`,{headers:this.headers,jwt:is.access_token,xform:Qr=>({data:Qr,error:null})}):this._returnResult({data:null,error:new AuthSessionMissingError})})}catch(ts){if(isAuthError(ts))return this._returnResult({data:null,error:ts});throw ts}}async _approveAuthorization($,ts){try{return await this._useSession(async is=>{const{data:{session:Kr},error:Qr}=is;if(Qr)return this._returnResult({data:null,error:Qr});if(!Kr)return this._returnResult({data:null,error:new AuthSessionMissingError});const ja=await _request(this.fetch,"POST",`${this.url}/oauth/authorizations/${$}/consent`,{headers:this.headers,jwt:Kr.access_token,body:{action:"approve"},xform:Ca=>({data:Ca,error:null})});return ja.data&&ja.data.redirect_url&&isBrowser()&&!(ts!=null&&ts.skipBrowserRedirect)&&window.location.assign(ja.data.redirect_url),ja})}catch(is){if(isAuthError(is))return this._returnResult({data:null,error:is});throw is}}async _denyAuthorization($,ts){try{return await this._useSession(async is=>{const{data:{session:Kr},error:Qr}=is;if(Qr)return this._returnResult({data:null,error:Qr});if(!Kr)return this._returnResult({data:null,error:new AuthSessionMissingError});const ja=await _request(this.fetch,"POST",`${this.url}/oauth/authorizations/${$}/consent`,{headers:this.headers,jwt:Kr.access_token,body:{action:"deny"},xform:Ca=>({data:Ca,error:null})});return ja.data&&ja.data.redirect_url&&isBrowser()&&!(ts!=null&&ts.skipBrowserRedirect)&&window.location.assign(ja.data.redirect_url),ja})}catch(is){if(isAuthError(is))return this._returnResult({data:null,error:is});throw is}}async _listOAuthGrants(){try{return await this._useSession(async $=>{const{data:{session:ts},error:is}=$;return is?this._returnResult({data:null,error:is}):ts?await _request(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:ts.access_token,xform:Kr=>({data:Kr,error:null})}):this._returnResult({data:null,error:new AuthSessionMissingError})})}catch($){if(isAuthError($))return this._returnResult({data:null,error:$});throw $}}async _revokeOAuthGrant($){try{return await this._useSession(async ts=>{const{data:{session:is},error:Kr}=ts;return Kr?this._returnResult({data:null,error:Kr}):is?(await _request(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:is.access_token,query:{client_id:$.clientId},noResolveJson:!0}),{data:{},error:null}):this._returnResult({data:null,error:new AuthSessionMissingError})})}catch(ts){if(isAuthError(ts))return this._returnResult({data:null,error:ts});throw ts}}async fetchJwk($,ts={keys:[]}){let is=ts.keys.find(Ca=>Ca.kid===$);if(is)return is;const Kr=Date.now();if(is=this.jwks.keys.find(Ca=>Ca.kid===$),is&&this.jwks_cached_at+JWKS_TTL>Kr)return is;const{data:Qr,error:ja}=await _request(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(ja)throw ja;return!Qr.keys||Qr.keys.length===0||(this.jwks=Qr,this.jwks_cached_at=Kr,is=Qr.keys.find(Ca=>Ca.kid===$),!is)?null:is}async getClaims($,ts={}){try{let is=$;if(!is){const{data:Ma,error:Fa}=await this.getSession();if(Fa||!Ma.session)return this._returnResult({data:null,error:Fa});is=Ma.session.access_token}const{header:Kr,payload:Qr,signature:ja,raw:{header:Ca,payload:Aa}}=decodeJWT(is);ts!=null&&ts.allowExpired||validateExp(Qr.exp);const Oa=!Kr.alg||Kr.alg.startsWith("HS")||!Kr.kid||!("crypto"in globalThis&&"subtle"in globalThis.crypto)?null:await this.fetchJwk(Kr.kid,ts!=null&&ts.keys?{keys:ts.keys}:ts==null?void 0:ts.jwks);if(!Oa){const{error:Ma}=await this.getUser(is);if(Ma)throw Ma;return{data:{claims:Qr,header:Kr,signature:ja},error:null}}const Ia=getAlgorithm(Kr.alg),Da=await crypto.subtle.importKey("jwk",Oa,Ia,!0,["verify"]);if(!await crypto.subtle.verify(Ia,Da,ja,stringToUint8Array(`${Ca}.${Aa}`)))throw new AuthInvalidJwtError("Invalid JWT signature");return{data:{claims:Qr,header:Kr,signature:ja},error:null}}catch(is){if(isAuthError(is))return this._returnResult({data:null,error:is});throw is}}}GoTrueClient.nextInstanceID={};const AuthClient=GoTrueClient,version="2.95.3";let JS_ENV="";typeof Deno<"u"?JS_ENV="deno":typeof document<"u"?JS_ENV="web":typeof navigator<"u"&&navigator.product==="ReactNative"?JS_ENV="react-native":JS_ENV="node";const DEFAULT_HEADERS={"X-Client-Info":`supabase-js-${JS_ENV}/${version}`},DEFAULT_GLOBAL_OPTIONS={headers:DEFAULT_HEADERS},DEFAULT_DB_OPTIONS={schema:"public"},DEFAULT_AUTH_OPTIONS={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},DEFAULT_REALTIME_OPTIONS={};function _typeof(es){"@babel/helpers - typeof";return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_typeof(es)}function toPrimitive(es,$){if(_typeof(es)!="object"||!es)return es;var ts=es[Symbol.toPrimitive];if(ts!==void 0){var is=ts.call(es,$);if(_typeof(is)!="object")return is;throw new TypeError("@@toPrimitive must return a primitive value.")}return($==="string"?String:Number)(es)}function toPropertyKey(es){var $=toPrimitive(es,"string");return _typeof($)=="symbol"?$:$+""}function _defineProperty(es,$,ts){return($=toPropertyKey($))in es?Object.defineProperty(es,$,{value:ts,enumerable:!0,configurable:!0,writable:!0}):es[$]=ts,es}function ownKeys(es,$){var ts=Object.keys(es);if(Object.getOwnPropertySymbols){var is=Object.getOwnPropertySymbols(es);$&&(is=is.filter(function(Kr){return Object.getOwnPropertyDescriptor(es,Kr).enumerable})),ts.push.apply(ts,is)}return ts}function _objectSpread2(es){for(var $=1;$<arguments.length;$++){var ts=arguments[$]!=null?arguments[$]:{};$%2?ownKeys(Object(ts),!0).forEach(function(is){_defineProperty(es,is,ts[is])}):Object.getOwnPropertyDescriptors?Object.defineProperties(es,Object.getOwnPropertyDescriptors(ts)):ownKeys(Object(ts)).forEach(function(is){Object.defineProperty(es,is,Object.getOwnPropertyDescriptor(ts,is))})}return es}const resolveFetch=es=>es?(...$)=>es(...$):(...$)=>fetch(...$),resolveHeadersConstructor=()=>Headers,fetchWithAuth=(es,$,ts)=>{const is=resolveFetch(ts),Kr=resolveHeadersConstructor();return async(Qr,ja)=>{var Ca;const Aa=(Ca=await $())!==null&&Ca!==void 0?Ca:es;let Oa=new Kr(ja==null?void 0:ja.headers);return Oa.has("apikey")||Oa.set("apikey",es),Oa.has("Authorization")||Oa.set("Authorization",`Bearer ${Aa}`),is(Qr,_objectSpread2(_objectSpread2({},ja),{},{headers:Oa}))}};function ensureTrailingSlash(es){return es.endsWith("/")?es:es+"/"}function applySettingDefaults(es,$){var ts,is;const{db:Kr,auth:Qr,realtime:ja,global:Ca}=es,{db:Aa,auth:Oa,realtime:Ia,global:Da}=$,Ba={db:_objectSpread2(_objectSpread2({},Aa),Kr),auth:_objectSpread2(_objectSpread2({},Oa),Qr),realtime:_objectSpread2(_objectSpread2({},Ia),ja),storage:{},global:_objectSpread2(_objectSpread2(_objectSpread2({},Da),Ca),{},{headers:_objectSpread2(_objectSpread2({},(ts=Da==null?void 0:Da.headers)!==null&&ts!==void 0?ts:{}),(is=Ca==null?void 0:Ca.headers)!==null&&is!==void 0?is:{})}),accessToken:async()=>""};return es.accessToken?Ba.accessToken=es.accessToken:delete Ba.accessToken,Ba}function validateSupabaseUrl(es){const $=es==null?void 0:es.trim();if(!$)throw new Error("supabaseUrl is required.");if(!$.match(/^https?:\/\//i))throw new Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");try{return new URL(ensureTrailingSlash($))}catch{throw Error("Invalid supabaseUrl: Provided URL is malformed.")}}var SupabaseAuthClient=class extends AuthClient{constructor(es){super(es)}},SupabaseClient=class{constructor(es,$,ts){var is,Kr;this.supabaseUrl=es,this.supabaseKey=$;const Qr=validateSupabaseUrl(es);if(!$)throw new Error("supabaseKey is required.");this.realtimeUrl=new URL("realtime/v1",Qr),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",Qr),this.storageUrl=new URL("storage/v1",Qr),this.functionsUrl=new URL("functions/v1",Qr);const ja=`sb-${Qr.hostname.split(".")[0]}-auth-token`,Ca={db:DEFAULT_DB_OPTIONS,realtime:DEFAULT_REALTIME_OPTIONS,auth:_objectSpread2(_objectSpread2({},DEFAULT_AUTH_OPTIONS),{},{storageKey:ja}),global:DEFAULT_GLOBAL_OPTIONS},Aa=applySettingDefaults(ts??{},Ca);if(this.storageKey=(is=Aa.auth.storageKey)!==null&&is!==void 0?is:"",this.headers=(Kr=Aa.global.headers)!==null&&Kr!==void 0?Kr:{},Aa.accessToken)this.accessToken=Aa.accessToken,this.auth=new Proxy({},{get:(Ia,Da)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(Da)} is not possible`)}});else{var Oa;this.auth=this._initSupabaseAuthClient((Oa=Aa.auth)!==null&&Oa!==void 0?Oa:{},this.headers,Aa.global.fetch)}this.fetch=fetchWithAuth($,this._getAccessToken.bind(this),Aa.global.fetch),this.realtime=this._initRealtimeClient(_objectSpread2({headers:this.headers,accessToken:this._getAccessToken.bind(this)},Aa.realtime)),this.accessToken&&Promise.resolve(this.accessToken()).then(Ia=>this.realtime.setAuth(Ia)).catch(Ia=>console.warn("Failed to set initial Realtime auth token:",Ia)),this.rest=new PostgrestClient(new URL("rest/v1",Qr).href,{headers:this.headers,schema:Aa.db.schema,fetch:this.fetch,timeout:Aa.db.timeout,urlLengthLimit:Aa.db.urlLengthLimit}),this.storage=new StorageClient(this.storageUrl.href,this.headers,this.fetch,ts==null?void 0:ts.storage),Aa.accessToken||this._listenForAuthEvents()}get functions(){return new FunctionsClient(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}from(es){return this.rest.from(es)}schema(es){return this.rest.schema(es)}rpc(es,$={},ts={head:!1,get:!1,count:void 0}){return this.rest.rpc(es,$,ts)}channel(es,$={config:{}}){return this.realtime.channel(es,$)}getChannels(){return this.realtime.getChannels()}removeChannel(es){return this.realtime.removeChannel(es)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getAccessToken(){var es=this,$,ts;if(es.accessToken)return await es.accessToken();const{data:is}=await es.auth.getSession();return($=(ts=is.session)===null||ts===void 0?void 0:ts.access_token)!==null&&$!==void 0?$:es.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:es,persistSession:$,detectSessionInUrl:ts,storage:is,userStorage:Kr,storageKey:Qr,flowType:ja,lock:Ca,debug:Aa,throwOnError:Oa},Ia,Da){const Ba={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new SupabaseAuthClient({url:this.authUrl.href,headers:_objectSpread2(_objectSpread2({},Ba),Ia),storageKey:Qr,autoRefreshToken:es,persistSession:$,detectSessionInUrl:ts,storage:is,userStorage:Kr,flowType:ja,lock:Ca,debug:Aa,throwOnError:Oa,fetch:Da,hasCustomAuthorizationHeader:Object.keys(this.headers).some(Ma=>Ma.toLowerCase()==="authorization")})}_initRealtimeClient(es){return new RealtimeClient(this.realtimeUrl.href,_objectSpread2(_objectSpread2({},es),{},{params:_objectSpread2(_objectSpread2({},{apikey:this.supabaseKey}),es==null?void 0:es.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((es,$)=>{this._handleTokenChanged(es,"CLIENT",$==null?void 0:$.access_token)})}_handleTokenChanged(es,$,ts){(es==="TOKEN_REFRESHED"||es==="SIGNED_IN")&&this.changedAccessToken!==ts?(this.changedAccessToken=ts,this.realtime.setAuth(ts)):es==="SIGNED_OUT"&&(this.realtime.setAuth(),$=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}};const createClient=(es,$,ts)=>new SupabaseClient(es,$,ts);function shouldShowDeprecationWarning(){if(typeof window<"u")return!1;const es=globalThis.process;if(!es)return!1;const $=es.version;if($==null)return!1;const ts=$.match(/^v(\d+)\./);return ts?parseInt(ts[1],10)<=18:!1}shouldShowDeprecationWarning()&&console.warn("⚠️ Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217");const RING_LIMIT=200,ring=[],counts={};function callerFromStack(){var $;const es=(($=new Error().stack)==null?void 0:$.split(`
69
- `))??[];for(let ts=2;ts<es.length;ts++){const is=es[ts];if(is&&!is.includes("auth-log.ts")&&!is.includes("supabase.ts"))return is.trim()}}function authLog(es,$,ts){const is={ts:Date.now(),method:es,caller:callerFromStack(),detail:$};ring.push(is),ring.length>RING_LIMIT&&ring.shift(),counts[es]=(counts[es]??0)+1,console.log(`[auth] ${es}${$?` ${$}`:""}${is.caller?` ← ${is.caller}`:""}`)}const ROLLUP_MS=6e4;let lastRollup=Date.now();setInterval(()=>{const es=Date.now(),$=ring.filter(is=>es-is.ts<ROLLUP_MS);if($.length===0)return;const ts={};for(const is of $)ts[is.method]=(ts[is.method]??0)+1;console.log(`[auth] rollup last 60s: ${$.length} calls`,ts,`(total since load: ${Object.values(counts).reduce((is,Kr)=>is+Kr,0)})`),lastRollup=es},3e4);typeof window<"u"&&(window.__authLog={ring:()=>ring.slice(),counts:()=>({...counts}),sinceRollup:()=>Date.now()-lastRollup});function readRuntimeConfig(es=globalThis){const $=es.__RM_CONFIG;if(!$||typeof $!="object")return;const{supabaseUrl:ts,supabaseAnonKey:is}=$;return{supabaseUrl:typeof ts=="string"&&ts?ts:void 0,supabaseAnonKey:typeof is=="string"&&is?is:void 0}}function resolveSupabaseConfig(es,$){return{url:(es==null?void 0:es.supabaseUrl)??$.url,anonKey:(es==null?void 0:es.supabaseAnonKey)??$.anonKey}}const runtimeConfig=Object.freeze(Object.defineProperty({__proto__:null,readRuntimeConfig,resolveSupabaseConfig},Symbol.toStringTag,{value:"Module"})),resolved=resolveSupabaseConfig(readRuntimeConfig(),{url:void 0,anonKey:void 0});if(!resolved.url||!resolved.anonKey)throw new Error("Missing Supabase config: no window.__RM_CONFIG stamped by the server and no VITE_SUPABASE_URL / VITE_SUPABASE_ANON_KEY baked at build time.");const supabaseUrl=resolved.url,supabaseAnonKey=resolved.anonKey,g$1=globalThis;function maskJwt(es){return es?`${es.slice(0,6)}…${es.slice(-4)} (len=${es.length})`:"<none>"}let cachedToken=null;const EXPIRY_MARGIN_S=60;function getCachedAccessToken(){if(!cachedToken)return null;const es=Math.floor(Date.now()/1e3);return cachedToken.expiresAt-es<=EXPIRY_MARGIN_S?null:cachedToken.accessToken}function buildClient(){const es=createClient(supabaseUrl,supabaseAnonKey,{auth:{flowType:"implicit"}});return g$1.__rmSupabaseAuthSubscribed||(g$1.__rmSupabaseAuthSubscribed=!0,es.auth.onAuthStateChange(($,ts)=>{ts!=null&&ts.access_token&&ts.expires_at?cachedToken={accessToken:ts.access_token,expiresAt:ts.expires_at}:cachedToken=null,authLog("onAuthStateChange:event",`${$} access=${maskJwt(ts==null?void 0:ts.access_token)} expires_at=${(ts==null?void 0:ts.expires_at)??"n/a"}`)})),es}const realClient=g$1.__rmSupabaseClient??(g$1.__rmSupabaseClient=buildClient()),realAuth=realClient.auth,watched=new Set(["getSession","refreshSession","signInWithPassword","signInWithOAuth","signUp","signOut","resetPasswordForEmail","updateUser","getUser"]);let currentDetail;function withAuthContext(es,$){const ts=currentDetail;currentDetail=es;try{return $()}finally{currentDetail=ts}}const wrappedAuth=new Proxy(realAuth,{get(es,$,ts){const is=Reflect.get(es,$,ts);return typeof is!="function"||!watched.has(String($))?is:(...Kr)=>(authLog(String($),currentDetail),is.apply(es,Kr))}}),supabase=new Proxy(realClient,{get(es,$,ts){return $==="auth"?wrappedAuth:Reflect.get(es,$,ts)}}),scriptRel="modulepreload",assetsURL=function(es){return"/"+es},seen={},__vitePreload=function($,ts,is){let Kr=Promise.resolve();if(ts&&ts.length>0){let ja=function(Oa){return Promise.all(Oa.map(Ia=>Promise.resolve(Ia).then(Da=>({status:"fulfilled",value:Da}),Da=>({status:"rejected",reason:Da}))))};document.getElementsByTagName("link");const Ca=document.querySelector("meta[property=csp-nonce]"),Aa=(Ca==null?void 0:Ca.nonce)||(Ca==null?void 0:Ca.getAttribute("nonce"));Kr=ja(ts.map(Oa=>{if(Oa=assetsURL(Oa),Oa in seen)return;seen[Oa]=!0;const Ia=Oa.endsWith(".css"),Da=Ia?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${Oa}"]${Da}`))return;const Ba=document.createElement("link");if(Ba.rel=Ia?"stylesheet":scriptRel,Ia||(Ba.as="script"),Ba.crossOrigin="",Ba.href=Oa,Aa&&Ba.setAttribute("nonce",Aa),document.head.appendChild(Ba),Ia)return new Promise((Ma,Fa)=>{Ba.addEventListener("load",Ma),Ba.addEventListener("error",()=>Fa(new Error(`Unable to preload CSS for ${Oa}`)))})}))}function Qr(ja){const Ca=new Event("vite:preloadError",{cancelable:!0});if(Ca.payload=ja,window.dispatchEvent(Ca),!Ca.defaultPrevented)throw ja}return Kr.then(ja=>{for(const Ca of ja||[])Ca.status==="rejected"&&Qr(Ca.reason);return $().catch(Qr)})},SOCIAL_AUTH_PROVIDERS=[{id:"google",label:"Google"},{id:"github",label:"GitHub"}];function safeNext(es){return!es||!es.startsWith("/")||es.startsWith("//")?null:es}function buildAuthConfirmUrl(es,$){const ts=new URL("/auth/confirm",es),is=safeNext($);return is&&ts.searchParams.set("next",is),ts.toString()}function parseEnabledSocialAuthProviders(es){if(!es||typeof es!="object")return[];const $=es.external;if(!$||typeof $!="object")return[];const ts=$;return SOCIAL_AUTH_PROVIDERS.filter(({id:is})=>ts[is]===!0).map(({id:is})=>is)}async function fetchEnabledSocialAuthProviders(es){const{readRuntimeConfig:$,resolveSupabaseConfig:ts}=await __vitePreload(async()=>{const{readRuntimeConfig:Qr,resolveSupabaseConfig:ja}=await Promise.resolve().then(()=>runtimeConfig);return{readRuntimeConfig:Qr,resolveSupabaseConfig:ja}},void 0),{url:is,anonKey:Kr}=ts($(),{url:void 0,anonKey:void 0});if(!is||!Kr)return[];try{const Qr=await fetch(`${is.replace(/\/$/,"")}/auth/v1/settings`,{headers:{apikey:Kr},signal:es});return Qr.ok?parseEnabledSocialAuthProviders(await Qr.json()):[]}catch{return[]}}function oauthCallbackError(es){if(!es)return null;const $=new URLSearchParams(es.startsWith("#")?es.slice(1):es),ts=$.get("error_code")??$.get("error");return ts?ts==="access_denied"?"Sign-in was cancelled.":ts.includes("email")?"The provider did not return a verified email address. Verify an email with the provider and try again.":"Social sign-in could not be completed. Please try again.":null}async function signInWithSocialProvider(es,$,ts,is){const{error:Kr}=await es.signInWithOAuth({provider:$,options:{redirectTo:buildAuthConfirmUrl(ts,is)}});if(Kr)throw Kr}const AuthContext=reactExports.createContext(null);function AuthProvider({children:es}){const[$,ts]=reactExports.useState(null),[is,Kr]=reactExports.useState(null),[Qr,ja]=reactExports.useState(!0);reactExports.useEffect(()=>{supabase.auth.getSession().then(({data:{session:Fa}})=>{Kr(Fa),ts((Fa==null?void 0:Fa.user)??null),Fa!=null&&Fa.access_token&&supabase.realtime.setAuth(Fa.access_token),ja(!1)});const{data:{subscription:Ma}}=supabase.auth.onAuthStateChange((Fa,qa)=>{Kr(qa),ts((qa==null?void 0:qa.user)??null),qa!=null&&qa.access_token&&supabase.realtime.setAuth(qa.access_token)});return()=>Ma.unsubscribe()},[]);const Ca=reactExports.useCallback(async(Ma,Fa)=>{const{error:qa}=await supabase.auth.signInWithPassword({email:Ma,password:Fa});if(qa)throw qa},[]),Aa=reactExports.useCallback(async(Ma,Fa)=>{await signInWithSocialProvider(supabase.auth,Ma,window.location.origin,Fa)},[]),Oa=reactExports.useCallback(async(Ma,Fa,qa)=>{const Ha=buildAuthConfirmUrl(window.location.origin,qa),{data:Ka,error:Qa}=await supabase.auth.signUp({email:Ma,password:Fa,options:{emailRedirectTo:Ha}});if(Qa)throw Qa;const Va=!Ka.session&&!!Ka.user&&Array.isArray(Ka.user.identities)&&Ka.user.identities.length===0;return{needsConfirmation:!Ka.session&&!Va,alreadyRegistered:Va}},[]),Ia=reactExports.useCallback(async()=>{const{error:Ma}=await supabase.auth.signOut();if(Ma)throw Ma},[]),Da=reactExports.useCallback(async Ma=>{const{error:Fa}=await supabase.auth.resetPasswordForEmail(Ma,{redirectTo:`${window.location.origin}/auth/confirm`});if(Fa)throw Fa},[]),Ba=reactExports.useCallback(async Ma=>{const{error:Fa}=await supabase.auth.updateUser({password:Ma});if(Fa)throw Fa},[]);return reactExports.createElement(AuthContext.Provider,{value:{user:$,session:is,loading:Qr,signIn:Ca,signInWithProvider:Aa,signUp:Oa,signOut:Ia,resetPassword:Da,updatePassword:Ba}},es)}function useAuth(){const es=reactExports.useContext(AuthContext);if(!es)throw new Error("useAuth must be used within AuthProvider");return es}function Skeleton({className:es,...$}){return jsxRuntimeExports.jsx("div",{"data-slot":"skeleton",className:cn$1("bg-accent animate-pulse rounded-md",es),...$})}function AuthGuard(){const{session:es,loading:$}=useAuth();return $?jsxRuntimeExports.jsx("div",{className:"flex h-screen items-center justify-center",children:jsxRuntimeExports.jsxs("div",{className:"space-y-4 w-64",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-3/4"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-1/2"})]})}):es?jsxRuntimeExports.jsx(Outlet,{}):jsxRuntimeExports.jsx(Navigate,{to:"/login",replace:!0})}var util;(function(es){es.assertEqual=Kr=>{};function $(Kr){}es.assertIs=$;function ts(Kr){throw new Error}es.assertNever=ts,es.arrayToEnum=Kr=>{const Qr={};for(const ja of Kr)Qr[ja]=ja;return Qr},es.getValidEnumValues=Kr=>{const Qr=es.objectKeys(Kr).filter(Ca=>typeof Kr[Kr[Ca]]!="number"),ja={};for(const Ca of Qr)ja[Ca]=Kr[Ca];return es.objectValues(ja)},es.objectValues=Kr=>es.objectKeys(Kr).map(function(Qr){return Kr[Qr]}),es.objectKeys=typeof Object.keys=="function"?Kr=>Object.keys(Kr):Kr=>{const Qr=[];for(const ja in Kr)Object.prototype.hasOwnProperty.call(Kr,ja)&&Qr.push(ja);return Qr},es.find=(Kr,Qr)=>{for(const ja of Kr)if(Qr(ja))return ja},es.isInteger=typeof Number.isInteger=="function"?Kr=>Number.isInteger(Kr):Kr=>typeof Kr=="number"&&Number.isFinite(Kr)&&Math.floor(Kr)===Kr;function is(Kr,Qr=" | "){return Kr.map(ja=>typeof ja=="string"?`'${ja}'`:ja).join(Qr)}es.joinValues=is,es.jsonStringifyReplacer=(Kr,Qr)=>typeof Qr=="bigint"?Qr.toString():Qr})(util||(util={}));var objectUtil;(function(es){es.mergeShapes=($,ts)=>({...$,...ts})})(objectUtil||(objectUtil={}));const ZodParsedType=util.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=es=>{switch(typeof es){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return Number.isNaN(es)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(es)?ZodParsedType.array:es===null?ZodParsedType.null:es.then&&typeof es.then=="function"&&es.catch&&typeof es.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&es instanceof Map?ZodParsedType.map:typeof Set<"u"&&es instanceof Set?ZodParsedType.set:typeof Date<"u"&&es instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode=util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class ZodError extends Error{get errors(){return this.issues}constructor($){super(),this.issues=[],this.addIssue=is=>{this.issues=[...this.issues,is]},this.addIssues=(is=[])=>{this.issues=[...this.issues,...is]};const ts=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,ts):this.__proto__=ts,this.name="ZodError",this.issues=$}format($){const ts=$||function(Qr){return Qr.message},is={_errors:[]},Kr=Qr=>{for(const ja of Qr.issues)if(ja.code==="invalid_union")ja.unionErrors.map(Kr);else if(ja.code==="invalid_return_type")Kr(ja.returnTypeError);else if(ja.code==="invalid_arguments")Kr(ja.argumentsError);else if(ja.path.length===0)is._errors.push(ts(ja));else{let Ca=is,Aa=0;for(;Aa<ja.path.length;){const Oa=ja.path[Aa];Aa===ja.path.length-1?(Ca[Oa]=Ca[Oa]||{_errors:[]},Ca[Oa]._errors.push(ts(ja))):Ca[Oa]=Ca[Oa]||{_errors:[]},Ca=Ca[Oa],Aa++}}};return Kr(this),is}static assert($){if(!($ instanceof ZodError))throw new Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=ts=>ts.message){const ts={},is=[];for(const Kr of this.issues)if(Kr.path.length>0){const Qr=Kr.path[0];ts[Qr]=ts[Qr]||[],ts[Qr].push($(Kr))}else is.push($(Kr));return{formErrors:is,fieldErrors:ts}}get formErrors(){return this.flatten()}}ZodError.create=es=>new ZodError(es);const errorMap=(es,$)=>{let ts;switch(es.code){case ZodIssueCode.invalid_type:es.received===ZodParsedType.undefined?ts="Required":ts=`Expected ${es.expected}, received ${es.received}`;break;case ZodIssueCode.invalid_literal:ts=`Invalid literal value, expected ${JSON.stringify(es.expected,util.jsonStringifyReplacer)}`;break;case ZodIssueCode.unrecognized_keys:ts=`Unrecognized key(s) in object: ${util.joinValues(es.keys,", ")}`;break;case ZodIssueCode.invalid_union:ts="Invalid input";break;case ZodIssueCode.invalid_union_discriminator:ts=`Invalid discriminator value. Expected ${util.joinValues(es.options)}`;break;case ZodIssueCode.invalid_enum_value:ts=`Invalid enum value. Expected ${util.joinValues(es.options)}, received '${es.received}'`;break;case ZodIssueCode.invalid_arguments:ts="Invalid function arguments";break;case ZodIssueCode.invalid_return_type:ts="Invalid function return type";break;case ZodIssueCode.invalid_date:ts="Invalid date";break;case ZodIssueCode.invalid_string:typeof es.validation=="object"?"includes"in es.validation?(ts=`Invalid input: must include "${es.validation.includes}"`,typeof es.validation.position=="number"&&(ts=`${ts} at one or more positions greater than or equal to ${es.validation.position}`)):"startsWith"in es.validation?ts=`Invalid input: must start with "${es.validation.startsWith}"`:"endsWith"in es.validation?ts=`Invalid input: must end with "${es.validation.endsWith}"`:util.assertNever(es.validation):es.validation!=="regex"?ts=`Invalid ${es.validation}`:ts="Invalid";break;case ZodIssueCode.too_small:es.type==="array"?ts=`Array must contain ${es.exact?"exactly":es.inclusive?"at least":"more than"} ${es.minimum} element(s)`:es.type==="string"?ts=`String must contain ${es.exact?"exactly":es.inclusive?"at least":"over"} ${es.minimum} character(s)`:es.type==="number"?ts=`Number must be ${es.exact?"exactly equal to ":es.inclusive?"greater than or equal to ":"greater than "}${es.minimum}`:es.type==="bigint"?ts=`Number must be ${es.exact?"exactly equal to ":es.inclusive?"greater than or equal to ":"greater than "}${es.minimum}`:es.type==="date"?ts=`Date must be ${es.exact?"exactly equal to ":es.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(es.minimum))}`:ts="Invalid input";break;case ZodIssueCode.too_big:es.type==="array"?ts=`Array must contain ${es.exact?"exactly":es.inclusive?"at most":"less than"} ${es.maximum} element(s)`:es.type==="string"?ts=`String must contain ${es.exact?"exactly":es.inclusive?"at most":"under"} ${es.maximum} character(s)`:es.type==="number"?ts=`Number must be ${es.exact?"exactly":es.inclusive?"less than or equal to":"less than"} ${es.maximum}`:es.type==="bigint"?ts=`BigInt must be ${es.exact?"exactly":es.inclusive?"less than or equal to":"less than"} ${es.maximum}`:es.type==="date"?ts=`Date must be ${es.exact?"exactly":es.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(es.maximum))}`:ts="Invalid input";break;case ZodIssueCode.custom:ts="Invalid input";break;case ZodIssueCode.invalid_intersection_types:ts="Intersection results could not be merged";break;case ZodIssueCode.not_multiple_of:ts=`Number must be a multiple of ${es.multipleOf}`;break;case ZodIssueCode.not_finite:ts="Number must be finite";break;default:ts=$.defaultError,util.assertNever(es)}return{message:ts}};let overrideErrorMap=errorMap;function getErrorMap(){return overrideErrorMap}const makeIssue=es=>{const{data:$,path:ts,errorMaps:is,issueData:Kr}=es,Qr=[...ts,...Kr.path||[]],ja={...Kr,path:Qr};if(Kr.message!==void 0)return{...Kr,path:Qr,message:Kr.message};let Ca="";const Aa=is.filter(Oa=>!!Oa).slice().reverse();for(const Oa of Aa)Ca=Oa(ja,{data:$,defaultError:Ca}).message;return{...Kr,path:Qr,message:Ca}};function addIssueToContext(es,$){const ts=getErrorMap(),is=makeIssue({issueData:$,data:es.data,path:es.path,errorMaps:[es.common.contextualErrorMap,es.schemaErrorMap,ts,ts===errorMap?void 0:errorMap].filter(Kr=>!!Kr)});es.common.issues.push(is)}class ParseStatus{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray($,ts){const is=[];for(const Kr of ts){if(Kr.status==="aborted")return INVALID;Kr.status==="dirty"&&$.dirty(),is.push(Kr.value)}return{status:$.value,value:is}}static async mergeObjectAsync($,ts){const is=[];for(const Kr of ts){const Qr=await Kr.key,ja=await Kr.value;is.push({key:Qr,value:ja})}return ParseStatus.mergeObjectSync($,is)}static mergeObjectSync($,ts){const is={};for(const Kr of ts){const{key:Qr,value:ja}=Kr;if(Qr.status==="aborted"||ja.status==="aborted")return INVALID;Qr.status==="dirty"&&$.dirty(),ja.status==="dirty"&&$.dirty(),Qr.value!=="__proto__"&&(typeof ja.value<"u"||Kr.alwaysSet)&&(is[Qr.value]=ja.value)}return{status:$.value,value:is}}}const INVALID=Object.freeze({status:"aborted"}),DIRTY=es=>({status:"dirty",value:es}),OK=es=>({status:"valid",value:es}),isAborted=es=>es.status==="aborted",isDirty=es=>es.status==="dirty",isValid=es=>es.status==="valid",isAsync=es=>typeof Promise<"u"&&es instanceof Promise;var errorUtil;(function(es){es.errToObj=$=>typeof $=="string"?{message:$}:$||{},es.toString=$=>typeof $=="string"?$:$==null?void 0:$.message})(errorUtil||(errorUtil={}));class ParseInputLazyPath{constructor($,ts,is,Kr){this._cachedPath=[],this.parent=$,this.data=ts,this._path=is,this._key=Kr}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const handleResult=(es,$)=>{if(isValid($))return{success:!0,data:$.value};if(!es.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const ts=new ZodError(es.common.issues);return this._error=ts,this._error}}};function processCreateParams(es){if(!es)return{};const{errorMap:$,invalid_type_error:ts,required_error:is,description:Kr}=es;if($&&(ts||is))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return $?{errorMap:$,description:Kr}:{errorMap:(ja,Ca)=>{const{message:Aa}=es;return ja.code==="invalid_enum_value"?{message:Aa??Ca.defaultError}:typeof Ca.data>"u"?{message:Aa??is??Ca.defaultError}:ja.code!=="invalid_type"?{message:Ca.defaultError}:{message:Aa??ts??Ca.defaultError}},description:Kr}}class ZodType{get description(){return this._def.description}_getType($){return getParsedType($.data)}_getOrReturnCtx($,ts){return ts||{common:$.parent.common,data:$.data,parsedType:getParsedType($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new ParseStatus,ctx:{common:$.parent.common,data:$.data,parsedType:getParsedType($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){const ts=this._parse($);if(isAsync(ts))throw new Error("Synchronous parse encountered promise.");return ts}_parseAsync($){const ts=this._parse($);return Promise.resolve(ts)}parse($,ts){const is=this.safeParse($,ts);if(is.success)return is.data;throw is.error}safeParse($,ts){const is={common:{issues:[],async:(ts==null?void 0:ts.async)??!1,contextualErrorMap:ts==null?void 0:ts.errorMap},path:(ts==null?void 0:ts.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:getParsedType($)},Kr=this._parseSync({data:$,path:is.path,parent:is});return handleResult(is,Kr)}"~validate"($){var is,Kr;const ts={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:getParsedType($)};if(!this["~standard"].async)try{const Qr=this._parseSync({data:$,path:[],parent:ts});return isValid(Qr)?{value:Qr.value}:{issues:ts.common.issues}}catch(Qr){(Kr=(is=Qr==null?void 0:Qr.message)==null?void 0:is.toLowerCase())!=null&&Kr.includes("encountered")&&(this["~standard"].async=!0),ts.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:ts}).then(Qr=>isValid(Qr)?{value:Qr.value}:{issues:ts.common.issues})}async parseAsync($,ts){const is=await this.safeParseAsync($,ts);if(is.success)return is.data;throw is.error}async safeParseAsync($,ts){const is={common:{issues:[],contextualErrorMap:ts==null?void 0:ts.errorMap,async:!0},path:(ts==null?void 0:ts.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:getParsedType($)},Kr=this._parse({data:$,path:is.path,parent:is}),Qr=await(isAsync(Kr)?Kr:Promise.resolve(Kr));return handleResult(is,Qr)}refine($,ts){const is=Kr=>typeof ts=="string"||typeof ts>"u"?{message:ts}:typeof ts=="function"?ts(Kr):ts;return this._refinement((Kr,Qr)=>{const ja=$(Kr),Ca=()=>Qr.addIssue({code:ZodIssueCode.custom,...is(Kr)});return typeof Promise<"u"&&ja instanceof Promise?ja.then(Aa=>Aa?!0:(Ca(),!1)):ja?!0:(Ca(),!1)})}refinement($,ts){return this._refinement((is,Kr)=>$(is)?!0:(Kr.addIssue(typeof ts=="function"?ts(is,Kr):ts),!1))}_refinement($){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:ts=>this["~validate"](ts)}}optional(){return ZodOptional.create(this,this._def)}nullable(){return ZodNullable.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray.create(this)}promise(){return ZodPromise.create(this,this._def)}or($){return ZodUnion.create([this,$],this._def)}and($){return ZodIntersection.create(this,$,this._def)}transform($){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:$}})}default($){const ts=typeof $=="function"?$:()=>$;return new ZodDefault({...processCreateParams(this._def),innerType:this,defaultValue:ts,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch($){const ts=typeof $=="function"?$:()=>$;return new ZodCatch({...processCreateParams(this._def),innerType:this,catchValue:ts,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe($){const ts=this.constructor;return new ts({...this._def,description:$})}pipe($){return ZodPipeline.create(this,$)}readonly(){return ZodReadonly.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[0-9a-z]+$/,ulidRegex=/^[0-9A-HJKMNP-TV-Z]{26}$/i,uuidRegex=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nanoidRegex=/^[a-z0-9_-]{21}$/i,jwtRegex=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,durationRegex=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,emailRegex=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_emojiRegex="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let emojiRegex;const ipv4Regex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4CidrRegex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6Regex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ipv6CidrRegex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64Regex=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64urlRegex=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dateRegexSource="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dateRegex=new RegExp(`^${dateRegexSource}$`);function timeRegexSource(es){let $="[0-5]\\d";es.precision?$=`${$}\\.\\d{${es.precision}}`:es.precision==null&&($=`${$}(\\.\\d+)?`);const ts=es.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${$})${ts}`}function timeRegex(es){return new RegExp(`^${timeRegexSource(es)}$`)}function datetimeRegex(es){let $=`${dateRegexSource}T${timeRegexSource(es)}`;const ts=[];return ts.push(es.local?"Z?":"Z"),es.offset&&ts.push("([+-]\\d{2}:?\\d{2})"),$=`${$}(${ts.join("|")})`,new RegExp(`^${$}$`)}function isValidIP(es,$){return!!(($==="v4"||!$)&&ipv4Regex.test(es)||($==="v6"||!$)&&ipv6Regex.test(es))}function isValidJWT(es,$){if(!jwtRegex.test(es))return!1;try{const[ts]=es.split(".");if(!ts)return!1;const is=ts.replace(/-/g,"+").replace(/_/g,"/").padEnd(ts.length+(4-ts.length%4)%4,"="),Kr=JSON.parse(atob(is));return!(typeof Kr!="object"||Kr===null||"typ"in Kr&&(Kr==null?void 0:Kr.typ)!=="JWT"||!Kr.alg||$&&Kr.alg!==$)}catch{return!1}}function isValidCidr(es,$){return!!(($==="v4"||!$)&&ipv4CidrRegex.test(es)||($==="v6"||!$)&&ipv6CidrRegex.test(es))}class ZodString extends ZodType{_parse($){if(this._def.coerce&&($.data=String($.data)),this._getType($)!==ZodParsedType.string){const Qr=this._getOrReturnCtx($);return addIssueToContext(Qr,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.string,received:Qr.parsedType}),INVALID}const is=new ParseStatus;let Kr;for(const Qr of this._def.checks)if(Qr.kind==="min")$.data.length<Qr.value&&(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.too_small,minimum:Qr.value,type:"string",inclusive:!0,exact:!1,message:Qr.message}),is.dirty());else if(Qr.kind==="max")$.data.length>Qr.value&&(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.too_big,maximum:Qr.value,type:"string",inclusive:!0,exact:!1,message:Qr.message}),is.dirty());else if(Qr.kind==="length"){const ja=$.data.length>Qr.value,Ca=$.data.length<Qr.value;(ja||Ca)&&(Kr=this._getOrReturnCtx($,Kr),ja?addIssueToContext(Kr,{code:ZodIssueCode.too_big,maximum:Qr.value,type:"string",inclusive:!0,exact:!0,message:Qr.message}):Ca&&addIssueToContext(Kr,{code:ZodIssueCode.too_small,minimum:Qr.value,type:"string",inclusive:!0,exact:!0,message:Qr.message}),is.dirty())}else if(Qr.kind==="email")emailRegex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"email",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty());else if(Qr.kind==="emoji")emojiRegex||(emojiRegex=new RegExp(_emojiRegex,"u")),emojiRegex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"emoji",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty());else if(Qr.kind==="uuid")uuidRegex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"uuid",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty());else if(Qr.kind==="nanoid")nanoidRegex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"nanoid",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty());else if(Qr.kind==="cuid")cuidRegex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"cuid",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty());else if(Qr.kind==="cuid2")cuid2Regex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"cuid2",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty());else if(Qr.kind==="ulid")ulidRegex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"ulid",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty());else if(Qr.kind==="url")try{new URL($.data)}catch{Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"url",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty()}else Qr.kind==="regex"?(Qr.regex.lastIndex=0,Qr.regex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"regex",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty())):Qr.kind==="trim"?$.data=$.data.trim():Qr.kind==="includes"?$.data.includes(Qr.value,Qr.position)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.invalid_string,validation:{includes:Qr.value,position:Qr.position},message:Qr.message}),is.dirty()):Qr.kind==="toLowerCase"?$.data=$.data.toLowerCase():Qr.kind==="toUpperCase"?$.data=$.data.toUpperCase():Qr.kind==="startsWith"?$.data.startsWith(Qr.value)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.invalid_string,validation:{startsWith:Qr.value},message:Qr.message}),is.dirty()):Qr.kind==="endsWith"?$.data.endsWith(Qr.value)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.invalid_string,validation:{endsWith:Qr.value},message:Qr.message}),is.dirty()):Qr.kind==="datetime"?datetimeRegex(Qr).test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.invalid_string,validation:"datetime",message:Qr.message}),is.dirty()):Qr.kind==="date"?dateRegex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.invalid_string,validation:"date",message:Qr.message}),is.dirty()):Qr.kind==="time"?timeRegex(Qr).test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.invalid_string,validation:"time",message:Qr.message}),is.dirty()):Qr.kind==="duration"?durationRegex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"duration",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty()):Qr.kind==="ip"?isValidIP($.data,Qr.version)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"ip",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty()):Qr.kind==="jwt"?isValidJWT($.data,Qr.alg)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"jwt",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty()):Qr.kind==="cidr"?isValidCidr($.data,Qr.version)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"cidr",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty()):Qr.kind==="base64"?base64Regex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"base64",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty()):Qr.kind==="base64url"?base64urlRegex.test($.data)||(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{validation:"base64url",code:ZodIssueCode.invalid_string,message:Qr.message}),is.dirty()):util.assertNever(Qr);return{status:is.value,value:$.data}}_regex($,ts,is){return this.refinement(Kr=>$.test(Kr),{validation:ts,code:ZodIssueCode.invalid_string,...errorUtil.errToObj(is)})}_addCheck($){return new ZodString({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...errorUtil.errToObj($)})}url($){return this._addCheck({kind:"url",...errorUtil.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...errorUtil.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...errorUtil.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...errorUtil.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...errorUtil.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...errorUtil.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...errorUtil.errToObj($)})}base64($){return this._addCheck({kind:"base64",...errorUtil.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...errorUtil.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...errorUtil.errToObj($)})}ip($){return this._addCheck({kind:"ip",...errorUtil.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...errorUtil.errToObj($)})}datetime($){return typeof $=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$}):this._addCheck({kind:"datetime",precision:typeof($==null?void 0:$.precision)>"u"?null:$==null?void 0:$.precision,offset:($==null?void 0:$.offset)??!1,local:($==null?void 0:$.local)??!1,...errorUtil.errToObj($==null?void 0:$.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){return typeof $=="string"?this._addCheck({kind:"time",precision:null,message:$}):this._addCheck({kind:"time",precision:typeof($==null?void 0:$.precision)>"u"?null:$==null?void 0:$.precision,...errorUtil.errToObj($==null?void 0:$.message)})}duration($){return this._addCheck({kind:"duration",...errorUtil.errToObj($)})}regex($,ts){return this._addCheck({kind:"regex",regex:$,...errorUtil.errToObj(ts)})}includes($,ts){return this._addCheck({kind:"includes",value:$,position:ts==null?void 0:ts.position,...errorUtil.errToObj(ts==null?void 0:ts.message)})}startsWith($,ts){return this._addCheck({kind:"startsWith",value:$,...errorUtil.errToObj(ts)})}endsWith($,ts){return this._addCheck({kind:"endsWith",value:$,...errorUtil.errToObj(ts)})}min($,ts){return this._addCheck({kind:"min",value:$,...errorUtil.errToObj(ts)})}max($,ts){return this._addCheck({kind:"max",value:$,...errorUtil.errToObj(ts)})}length($,ts){return this._addCheck({kind:"length",value:$,...errorUtil.errToObj(ts)})}nonempty($){return this.min(1,errorUtil.errToObj($))}trim(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find($=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find($=>$.kind==="date")}get isTime(){return!!this._def.checks.find($=>$.kind==="time")}get isDuration(){return!!this._def.checks.find($=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find($=>$.kind==="email")}get isURL(){return!!this._def.checks.find($=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find($=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find($=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find($=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find($=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find($=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find($=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find($=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find($=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find($=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find($=>$.kind==="base64url")}get minLength(){let $=null;for(const ts of this._def.checks)ts.kind==="min"&&($===null||ts.value>$)&&($=ts.value);return $}get maxLength(){let $=null;for(const ts of this._def.checks)ts.kind==="max"&&($===null||ts.value<$)&&($=ts.value);return $}}ZodString.create=es=>new ZodString({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:(es==null?void 0:es.coerce)??!1,...processCreateParams(es)});function floatSafeRemainder(es,$){const ts=(es.toString().split(".")[1]||"").length,is=($.toString().split(".")[1]||"").length,Kr=ts>is?ts:is,Qr=Number.parseInt(es.toFixed(Kr).replace(".","")),ja=Number.parseInt($.toFixed(Kr).replace(".",""));return Qr%ja/10**Kr}class ZodNumber extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce&&($.data=Number($.data)),this._getType($)!==ZodParsedType.number){const Qr=this._getOrReturnCtx($);return addIssueToContext(Qr,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.number,received:Qr.parsedType}),INVALID}let is;const Kr=new ParseStatus;for(const Qr of this._def.checks)Qr.kind==="int"?util.isInteger($.data)||(is=this._getOrReturnCtx($,is),addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:"integer",received:"float",message:Qr.message}),Kr.dirty()):Qr.kind==="min"?(Qr.inclusive?$.data<Qr.value:$.data<=Qr.value)&&(is=this._getOrReturnCtx($,is),addIssueToContext(is,{code:ZodIssueCode.too_small,minimum:Qr.value,type:"number",inclusive:Qr.inclusive,exact:!1,message:Qr.message}),Kr.dirty()):Qr.kind==="max"?(Qr.inclusive?$.data>Qr.value:$.data>=Qr.value)&&(is=this._getOrReturnCtx($,is),addIssueToContext(is,{code:ZodIssueCode.too_big,maximum:Qr.value,type:"number",inclusive:Qr.inclusive,exact:!1,message:Qr.message}),Kr.dirty()):Qr.kind==="multipleOf"?floatSafeRemainder($.data,Qr.value)!==0&&(is=this._getOrReturnCtx($,is),addIssueToContext(is,{code:ZodIssueCode.not_multiple_of,multipleOf:Qr.value,message:Qr.message}),Kr.dirty()):Qr.kind==="finite"?Number.isFinite($.data)||(is=this._getOrReturnCtx($,is),addIssueToContext(is,{code:ZodIssueCode.not_finite,message:Qr.message}),Kr.dirty()):util.assertNever(Qr);return{status:Kr.value,value:$.data}}gte($,ts){return this.setLimit("min",$,!0,errorUtil.toString(ts))}gt($,ts){return this.setLimit("min",$,!1,errorUtil.toString(ts))}lte($,ts){return this.setLimit("max",$,!0,errorUtil.toString(ts))}lt($,ts){return this.setLimit("max",$,!1,errorUtil.toString(ts))}setLimit($,ts,is,Kr){return new ZodNumber({...this._def,checks:[...this._def.checks,{kind:$,value:ts,inclusive:is,message:errorUtil.toString(Kr)}]})}_addCheck($){return new ZodNumber({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:errorUtil.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString($)})}multipleOf($,ts){return this._addCheck({kind:"multipleOf",value:$,message:errorUtil.toString(ts)})}finite($){return this._addCheck({kind:"finite",message:errorUtil.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString($)})}get minValue(){let $=null;for(const ts of this._def.checks)ts.kind==="min"&&($===null||ts.value>$)&&($=ts.value);return $}get maxValue(){let $=null;for(const ts of this._def.checks)ts.kind==="max"&&($===null||ts.value<$)&&($=ts.value);return $}get isInt(){return!!this._def.checks.find($=>$.kind==="int"||$.kind==="multipleOf"&&util.isInteger($.value))}get isFinite(){let $=null,ts=null;for(const is of this._def.checks){if(is.kind==="finite"||is.kind==="int"||is.kind==="multipleOf")return!0;is.kind==="min"?(ts===null||is.value>ts)&&(ts=is.value):is.kind==="max"&&($===null||is.value<$)&&($=is.value)}return Number.isFinite(ts)&&Number.isFinite($)}}ZodNumber.create=es=>new ZodNumber({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:(es==null?void 0:es.coerce)||!1,...processCreateParams(es)});class ZodBigInt extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==ZodParsedType.bigint)return this._getInvalidInput($);let is;const Kr=new ParseStatus;for(const Qr of this._def.checks)Qr.kind==="min"?(Qr.inclusive?$.data<Qr.value:$.data<=Qr.value)&&(is=this._getOrReturnCtx($,is),addIssueToContext(is,{code:ZodIssueCode.too_small,type:"bigint",minimum:Qr.value,inclusive:Qr.inclusive,message:Qr.message}),Kr.dirty()):Qr.kind==="max"?(Qr.inclusive?$.data>Qr.value:$.data>=Qr.value)&&(is=this._getOrReturnCtx($,is),addIssueToContext(is,{code:ZodIssueCode.too_big,type:"bigint",maximum:Qr.value,inclusive:Qr.inclusive,message:Qr.message}),Kr.dirty()):Qr.kind==="multipleOf"?$.data%Qr.value!==BigInt(0)&&(is=this._getOrReturnCtx($,is),addIssueToContext(is,{code:ZodIssueCode.not_multiple_of,multipleOf:Qr.value,message:Qr.message}),Kr.dirty()):util.assertNever(Qr);return{status:Kr.value,value:$.data}}_getInvalidInput($){const ts=this._getOrReturnCtx($);return addIssueToContext(ts,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.bigint,received:ts.parsedType}),INVALID}gte($,ts){return this.setLimit("min",$,!0,errorUtil.toString(ts))}gt($,ts){return this.setLimit("min",$,!1,errorUtil.toString(ts))}lte($,ts){return this.setLimit("max",$,!0,errorUtil.toString(ts))}lt($,ts){return this.setLimit("max",$,!1,errorUtil.toString(ts))}setLimit($,ts,is,Kr){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:$,value:ts,inclusive:is,message:errorUtil.toString(Kr)}]})}_addCheck($){return new ZodBigInt({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString($)})}multipleOf($,ts){return this._addCheck({kind:"multipleOf",value:$,message:errorUtil.toString(ts)})}get minValue(){let $=null;for(const ts of this._def.checks)ts.kind==="min"&&($===null||ts.value>$)&&($=ts.value);return $}get maxValue(){let $=null;for(const ts of this._def.checks)ts.kind==="max"&&($===null||ts.value<$)&&($=ts.value);return $}}ZodBigInt.create=es=>new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:(es==null?void 0:es.coerce)??!1,...processCreateParams(es)});class ZodBoolean extends ZodType{_parse($){if(this._def.coerce&&($.data=!!$.data),this._getType($)!==ZodParsedType.boolean){const is=this._getOrReturnCtx($);return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.boolean,received:is.parsedType}),INVALID}return OK($.data)}}ZodBoolean.create=es=>new ZodBoolean({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:(es==null?void 0:es.coerce)||!1,...processCreateParams(es)});class ZodDate extends ZodType{_parse($){if(this._def.coerce&&($.data=new Date($.data)),this._getType($)!==ZodParsedType.date){const Qr=this._getOrReturnCtx($);return addIssueToContext(Qr,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.date,received:Qr.parsedType}),INVALID}if(Number.isNaN($.data.getTime())){const Qr=this._getOrReturnCtx($);return addIssueToContext(Qr,{code:ZodIssueCode.invalid_date}),INVALID}const is=new ParseStatus;let Kr;for(const Qr of this._def.checks)Qr.kind==="min"?$.data.getTime()<Qr.value&&(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.too_small,message:Qr.message,inclusive:!0,exact:!1,minimum:Qr.value,type:"date"}),is.dirty()):Qr.kind==="max"?$.data.getTime()>Qr.value&&(Kr=this._getOrReturnCtx($,Kr),addIssueToContext(Kr,{code:ZodIssueCode.too_big,message:Qr.message,inclusive:!0,exact:!1,maximum:Qr.value,type:"date"}),is.dirty()):util.assertNever(Qr);return{status:is.value,value:new Date($.data.getTime())}}_addCheck($){return new ZodDate({...this._def,checks:[...this._def.checks,$]})}min($,ts){return this._addCheck({kind:"min",value:$.getTime(),message:errorUtil.toString(ts)})}max($,ts){return this._addCheck({kind:"max",value:$.getTime(),message:errorUtil.toString(ts)})}get minDate(){let $=null;for(const ts of this._def.checks)ts.kind==="min"&&($===null||ts.value>$)&&($=ts.value);return $!=null?new Date($):null}get maxDate(){let $=null;for(const ts of this._def.checks)ts.kind==="max"&&($===null||ts.value<$)&&($=ts.value);return $!=null?new Date($):null}}ZodDate.create=es=>new ZodDate({checks:[],coerce:(es==null?void 0:es.coerce)||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(es)});class ZodSymbol extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.symbol){const is=this._getOrReturnCtx($);return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.symbol,received:is.parsedType}),INVALID}return OK($.data)}}ZodSymbol.create=es=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(es)});class ZodUndefined extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.undefined){const is=this._getOrReturnCtx($);return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.undefined,received:is.parsedType}),INVALID}return OK($.data)}}ZodUndefined.create=es=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(es)});class ZodNull extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.null){const is=this._getOrReturnCtx($);return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.null,received:is.parsedType}),INVALID}return OK($.data)}}ZodNull.create=es=>new ZodNull({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(es)});class ZodAny extends ZodType{constructor(){super(...arguments),this._any=!0}_parse($){return OK($.data)}}ZodAny.create=es=>new ZodAny({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(es)});class ZodUnknown extends ZodType{constructor(){super(...arguments),this._unknown=!0}_parse($){return OK($.data)}}ZodUnknown.create=es=>new ZodUnknown({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(es)});class ZodNever extends ZodType{_parse($){const ts=this._getOrReturnCtx($);return addIssueToContext(ts,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.never,received:ts.parsedType}),INVALID}}ZodNever.create=es=>new ZodNever({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(es)});class ZodVoid extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.undefined){const is=this._getOrReturnCtx($);return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.void,received:is.parsedType}),INVALID}return OK($.data)}}ZodVoid.create=es=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(es)});class ZodArray extends ZodType{_parse($){const{ctx:ts,status:is}=this._processInputParams($),Kr=this._def;if(ts.parsedType!==ZodParsedType.array)return addIssueToContext(ts,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:ts.parsedType}),INVALID;if(Kr.exactLength!==null){const ja=ts.data.length>Kr.exactLength.value,Ca=ts.data.length<Kr.exactLength.value;(ja||Ca)&&(addIssueToContext(ts,{code:ja?ZodIssueCode.too_big:ZodIssueCode.too_small,minimum:Ca?Kr.exactLength.value:void 0,maximum:ja?Kr.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Kr.exactLength.message}),is.dirty())}if(Kr.minLength!==null&&ts.data.length<Kr.minLength.value&&(addIssueToContext(ts,{code:ZodIssueCode.too_small,minimum:Kr.minLength.value,type:"array",inclusive:!0,exact:!1,message:Kr.minLength.message}),is.dirty()),Kr.maxLength!==null&&ts.data.length>Kr.maxLength.value&&(addIssueToContext(ts,{code:ZodIssueCode.too_big,maximum:Kr.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Kr.maxLength.message}),is.dirty()),ts.common.async)return Promise.all([...ts.data].map((ja,Ca)=>Kr.type._parseAsync(new ParseInputLazyPath(ts,ja,ts.path,Ca)))).then(ja=>ParseStatus.mergeArray(is,ja));const Qr=[...ts.data].map((ja,Ca)=>Kr.type._parseSync(new ParseInputLazyPath(ts,ja,ts.path,Ca)));return ParseStatus.mergeArray(is,Qr)}get element(){return this._def.type}min($,ts){return new ZodArray({...this._def,minLength:{value:$,message:errorUtil.toString(ts)}})}max($,ts){return new ZodArray({...this._def,maxLength:{value:$,message:errorUtil.toString(ts)}})}length($,ts){return new ZodArray({...this._def,exactLength:{value:$,message:errorUtil.toString(ts)}})}nonempty($){return this.min(1,$)}}ZodArray.create=(es,$)=>new ZodArray({type:es,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams($)});function deepPartialify(es){if(es instanceof ZodObject){const $={};for(const ts in es.shape){const is=es.shape[ts];$[ts]=ZodOptional.create(deepPartialify(is))}return new ZodObject({...es._def,shape:()=>$})}else return es instanceof ZodArray?new ZodArray({...es._def,type:deepPartialify(es.element)}):es instanceof ZodOptional?ZodOptional.create(deepPartialify(es.unwrap())):es instanceof ZodNullable?ZodNullable.create(deepPartialify(es.unwrap())):es instanceof ZodTuple?ZodTuple.create(es.items.map($=>deepPartialify($))):es}class ZodObject extends ZodType{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const $=this._def.shape(),ts=util.objectKeys($);return this._cached={shape:$,keys:ts},this._cached}_parse($){if(this._getType($)!==ZodParsedType.object){const Oa=this._getOrReturnCtx($);return addIssueToContext(Oa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:Oa.parsedType}),INVALID}const{status:is,ctx:Kr}=this._processInputParams($),{shape:Qr,keys:ja}=this._getCached(),Ca=[];if(!(this._def.catchall instanceof ZodNever&&this._def.unknownKeys==="strip"))for(const Oa in Kr.data)ja.includes(Oa)||Ca.push(Oa);const Aa=[];for(const Oa of ja){const Ia=Qr[Oa],Da=Kr.data[Oa];Aa.push({key:{status:"valid",value:Oa},value:Ia._parse(new ParseInputLazyPath(Kr,Da,Kr.path,Oa)),alwaysSet:Oa in Kr.data})}if(this._def.catchall instanceof ZodNever){const Oa=this._def.unknownKeys;if(Oa==="passthrough")for(const Ia of Ca)Aa.push({key:{status:"valid",value:Ia},value:{status:"valid",value:Kr.data[Ia]}});else if(Oa==="strict")Ca.length>0&&(addIssueToContext(Kr,{code:ZodIssueCode.unrecognized_keys,keys:Ca}),is.dirty());else if(Oa!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const Oa=this._def.catchall;for(const Ia of Ca){const Da=Kr.data[Ia];Aa.push({key:{status:"valid",value:Ia},value:Oa._parse(new ParseInputLazyPath(Kr,Da,Kr.path,Ia)),alwaysSet:Ia in Kr.data})}}return Kr.common.async?Promise.resolve().then(async()=>{const Oa=[];for(const Ia of Aa){const Da=await Ia.key,Ba=await Ia.value;Oa.push({key:Da,value:Ba,alwaysSet:Ia.alwaysSet})}return Oa}).then(Oa=>ParseStatus.mergeObjectSync(is,Oa)):ParseStatus.mergeObjectSync(is,Aa)}get shape(){return this._def.shape()}strict($){return errorUtil.errToObj,new ZodObject({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(ts,is)=>{var Qr,ja;const Kr=((ja=(Qr=this._def).errorMap)==null?void 0:ja.call(Qr,ts,is).message)??is.defaultError;return ts.code==="unrecognized_keys"?{message:errorUtil.errToObj($).message??Kr}:{message:Kr}}}:{}})}strip(){return new ZodObject({...this._def,unknownKeys:"strip"})}passthrough(){return new ZodObject({...this._def,unknownKeys:"passthrough"})}extend($){return new ZodObject({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new ZodObject({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:ZodFirstPartyTypeKind.ZodObject})}setKey($,ts){return this.augment({[$]:ts})}catchall($){return new ZodObject({...this._def,catchall:$})}pick($){const ts={};for(const is of util.objectKeys($))$[is]&&this.shape[is]&&(ts[is]=this.shape[is]);return new ZodObject({...this._def,shape:()=>ts})}omit($){const ts={};for(const is of util.objectKeys(this.shape))$[is]||(ts[is]=this.shape[is]);return new ZodObject({...this._def,shape:()=>ts})}deepPartial(){return deepPartialify(this)}partial($){const ts={};for(const is of util.objectKeys(this.shape)){const Kr=this.shape[is];$&&!$[is]?ts[is]=Kr:ts[is]=Kr.optional()}return new ZodObject({...this._def,shape:()=>ts})}required($){const ts={};for(const is of util.objectKeys(this.shape))if($&&!$[is])ts[is]=this.shape[is];else{let Qr=this.shape[is];for(;Qr instanceof ZodOptional;)Qr=Qr._def.innerType;ts[is]=Qr}return new ZodObject({...this._def,shape:()=>ts})}keyof(){return createZodEnum(util.objectKeys(this.shape))}}ZodObject.create=(es,$)=>new ZodObject({shape:()=>es,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams($)});ZodObject.strictCreate=(es,$)=>new ZodObject({shape:()=>es,unknownKeys:"strict",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams($)});ZodObject.lazycreate=(es,$)=>new ZodObject({shape:es,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams($)});class ZodUnion extends ZodType{_parse($){const{ctx:ts}=this._processInputParams($),is=this._def.options;function Kr(Qr){for(const Ca of Qr)if(Ca.result.status==="valid")return Ca.result;for(const Ca of Qr)if(Ca.result.status==="dirty")return ts.common.issues.push(...Ca.ctx.common.issues),Ca.result;const ja=Qr.map(Ca=>new ZodError(Ca.ctx.common.issues));return addIssueToContext(ts,{code:ZodIssueCode.invalid_union,unionErrors:ja}),INVALID}if(ts.common.async)return Promise.all(is.map(async Qr=>{const ja={...ts,common:{...ts.common,issues:[]},parent:null};return{result:await Qr._parseAsync({data:ts.data,path:ts.path,parent:ja}),ctx:ja}})).then(Kr);{let Qr;const ja=[];for(const Aa of is){const Oa={...ts,common:{...ts.common,issues:[]},parent:null},Ia=Aa._parseSync({data:ts.data,path:ts.path,parent:Oa});if(Ia.status==="valid")return Ia;Ia.status==="dirty"&&!Qr&&(Qr={result:Ia,ctx:Oa}),Oa.common.issues.length&&ja.push(Oa.common.issues)}if(Qr)return ts.common.issues.push(...Qr.ctx.common.issues),Qr.result;const Ca=ja.map(Aa=>new ZodError(Aa));return addIssueToContext(ts,{code:ZodIssueCode.invalid_union,unionErrors:Ca}),INVALID}}get options(){return this._def.options}}ZodUnion.create=(es,$)=>new ZodUnion({options:es,typeName:ZodFirstPartyTypeKind.ZodUnion,...processCreateParams($)});function mergeValues(es,$){const ts=getParsedType(es),is=getParsedType($);if(es===$)return{valid:!0,data:es};if(ts===ZodParsedType.object&&is===ZodParsedType.object){const Kr=util.objectKeys($),Qr=util.objectKeys(es).filter(Ca=>Kr.indexOf(Ca)!==-1),ja={...es,...$};for(const Ca of Qr){const Aa=mergeValues(es[Ca],$[Ca]);if(!Aa.valid)return{valid:!1};ja[Ca]=Aa.data}return{valid:!0,data:ja}}else if(ts===ZodParsedType.array&&is===ZodParsedType.array){if(es.length!==$.length)return{valid:!1};const Kr=[];for(let Qr=0;Qr<es.length;Qr++){const ja=es[Qr],Ca=$[Qr],Aa=mergeValues(ja,Ca);if(!Aa.valid)return{valid:!1};Kr.push(Aa.data)}return{valid:!0,data:Kr}}else return ts===ZodParsedType.date&&is===ZodParsedType.date&&+es==+$?{valid:!0,data:es}:{valid:!1}}class ZodIntersection extends ZodType{_parse($){const{status:ts,ctx:is}=this._processInputParams($),Kr=(Qr,ja)=>{if(isAborted(Qr)||isAborted(ja))return INVALID;const Ca=mergeValues(Qr.value,ja.value);return Ca.valid?((isDirty(Qr)||isDirty(ja))&&ts.dirty(),{status:ts.value,value:Ca.data}):(addIssueToContext(is,{code:ZodIssueCode.invalid_intersection_types}),INVALID)};return is.common.async?Promise.all([this._def.left._parseAsync({data:is.data,path:is.path,parent:is}),this._def.right._parseAsync({data:is.data,path:is.path,parent:is})]).then(([Qr,ja])=>Kr(Qr,ja)):Kr(this._def.left._parseSync({data:is.data,path:is.path,parent:is}),this._def.right._parseSync({data:is.data,path:is.path,parent:is}))}}ZodIntersection.create=(es,$,ts)=>new ZodIntersection({left:es,right:$,typeName:ZodFirstPartyTypeKind.ZodIntersection,...processCreateParams(ts)});class ZodTuple extends ZodType{_parse($){const{status:ts,ctx:is}=this._processInputParams($);if(is.parsedType!==ZodParsedType.array)return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:is.parsedType}),INVALID;if(is.data.length<this._def.items.length)return addIssueToContext(is,{code:ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),INVALID;!this._def.rest&&is.data.length>this._def.items.length&&(addIssueToContext(is,{code:ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ts.dirty());const Qr=[...is.data].map((ja,Ca)=>{const Aa=this._def.items[Ca]||this._def.rest;return Aa?Aa._parse(new ParseInputLazyPath(is,ja,is.path,Ca)):null}).filter(ja=>!!ja);return is.common.async?Promise.all(Qr).then(ja=>ParseStatus.mergeArray(ts,ja)):ParseStatus.mergeArray(ts,Qr)}get items(){return this._def.items}rest($){return new ZodTuple({...this._def,rest:$})}}ZodTuple.create=(es,$)=>{if(!Array.isArray(es))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple({items:es,typeName:ZodFirstPartyTypeKind.ZodTuple,rest:null,...processCreateParams($)})};class ZodRecord extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){const{status:ts,ctx:is}=this._processInputParams($);if(is.parsedType!==ZodParsedType.object)return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:is.parsedType}),INVALID;const Kr=[],Qr=this._def.keyType,ja=this._def.valueType;for(const Ca in is.data)Kr.push({key:Qr._parse(new ParseInputLazyPath(is,Ca,is.path,Ca)),value:ja._parse(new ParseInputLazyPath(is,is.data[Ca],is.path,Ca)),alwaysSet:Ca in is.data});return is.common.async?ParseStatus.mergeObjectAsync(ts,Kr):ParseStatus.mergeObjectSync(ts,Kr)}get element(){return this._def.valueType}static create($,ts,is){return ts instanceof ZodType?new ZodRecord({keyType:$,valueType:ts,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(is)}):new ZodRecord({keyType:ZodString.create(),valueType:$,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(ts)})}}class ZodMap extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){const{status:ts,ctx:is}=this._processInputParams($);if(is.parsedType!==ZodParsedType.map)return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.map,received:is.parsedType}),INVALID;const Kr=this._def.keyType,Qr=this._def.valueType,ja=[...is.data.entries()].map(([Ca,Aa],Oa)=>({key:Kr._parse(new ParseInputLazyPath(is,Ca,is.path,[Oa,"key"])),value:Qr._parse(new ParseInputLazyPath(is,Aa,is.path,[Oa,"value"]))}));if(is.common.async){const Ca=new Map;return Promise.resolve().then(async()=>{for(const Aa of ja){const Oa=await Aa.key,Ia=await Aa.value;if(Oa.status==="aborted"||Ia.status==="aborted")return INVALID;(Oa.status==="dirty"||Ia.status==="dirty")&&ts.dirty(),Ca.set(Oa.value,Ia.value)}return{status:ts.value,value:Ca}})}else{const Ca=new Map;for(const Aa of ja){const Oa=Aa.key,Ia=Aa.value;if(Oa.status==="aborted"||Ia.status==="aborted")return INVALID;(Oa.status==="dirty"||Ia.status==="dirty")&&ts.dirty(),Ca.set(Oa.value,Ia.value)}return{status:ts.value,value:Ca}}}}ZodMap.create=(es,$,ts)=>new ZodMap({valueType:$,keyType:es,typeName:ZodFirstPartyTypeKind.ZodMap,...processCreateParams(ts)});class ZodSet extends ZodType{_parse($){const{status:ts,ctx:is}=this._processInputParams($);if(is.parsedType!==ZodParsedType.set)return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.set,received:is.parsedType}),INVALID;const Kr=this._def;Kr.minSize!==null&&is.data.size<Kr.minSize.value&&(addIssueToContext(is,{code:ZodIssueCode.too_small,minimum:Kr.minSize.value,type:"set",inclusive:!0,exact:!1,message:Kr.minSize.message}),ts.dirty()),Kr.maxSize!==null&&is.data.size>Kr.maxSize.value&&(addIssueToContext(is,{code:ZodIssueCode.too_big,maximum:Kr.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Kr.maxSize.message}),ts.dirty());const Qr=this._def.valueType;function ja(Aa){const Oa=new Set;for(const Ia of Aa){if(Ia.status==="aborted")return INVALID;Ia.status==="dirty"&&ts.dirty(),Oa.add(Ia.value)}return{status:ts.value,value:Oa}}const Ca=[...is.data.values()].map((Aa,Oa)=>Qr._parse(new ParseInputLazyPath(is,Aa,is.path,Oa)));return is.common.async?Promise.all(Ca).then(Aa=>ja(Aa)):ja(Ca)}min($,ts){return new ZodSet({...this._def,minSize:{value:$,message:errorUtil.toString(ts)}})}max($,ts){return new ZodSet({...this._def,maxSize:{value:$,message:errorUtil.toString(ts)}})}size($,ts){return this.min($,ts).max($,ts)}nonempty($){return this.min(1,$)}}ZodSet.create=(es,$)=>new ZodSet({valueType:es,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind.ZodSet,...processCreateParams($)});class ZodLazy extends ZodType{get schema(){return this._def.getter()}_parse($){const{ctx:ts}=this._processInputParams($);return this._def.getter()._parse({data:ts.data,path:ts.path,parent:ts})}}ZodLazy.create=(es,$)=>new ZodLazy({getter:es,typeName:ZodFirstPartyTypeKind.ZodLazy,...processCreateParams($)});class ZodLiteral extends ZodType{_parse($){if($.data!==this._def.value){const ts=this._getOrReturnCtx($);return addIssueToContext(ts,{received:ts.data,code:ZodIssueCode.invalid_literal,expected:this._def.value}),INVALID}return{status:"valid",value:$.data}}get value(){return this._def.value}}ZodLiteral.create=(es,$)=>new ZodLiteral({value:es,typeName:ZodFirstPartyTypeKind.ZodLiteral,...processCreateParams($)});function createZodEnum(es,$){return new ZodEnum({values:es,typeName:ZodFirstPartyTypeKind.ZodEnum,...processCreateParams($)})}class ZodEnum extends ZodType{_parse($){if(typeof $.data!="string"){const ts=this._getOrReturnCtx($),is=this._def.values;return addIssueToContext(ts,{expected:util.joinValues(is),received:ts.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has($.data)){const ts=this._getOrReturnCtx($),is=this._def.values;return addIssueToContext(ts,{received:ts.data,code:ZodIssueCode.invalid_enum_value,options:is}),INVALID}return OK($.data)}get options(){return this._def.values}get enum(){const $={};for(const ts of this._def.values)$[ts]=ts;return $}get Values(){const $={};for(const ts of this._def.values)$[ts]=ts;return $}get Enum(){const $={};for(const ts of this._def.values)$[ts]=ts;return $}extract($,ts=this._def){return ZodEnum.create($,{...this._def,...ts})}exclude($,ts=this._def){return ZodEnum.create(this.options.filter(is=>!$.includes(is)),{...this._def,...ts})}}ZodEnum.create=createZodEnum;class ZodNativeEnum extends ZodType{_parse($){const ts=util.getValidEnumValues(this._def.values),is=this._getOrReturnCtx($);if(is.parsedType!==ZodParsedType.string&&is.parsedType!==ZodParsedType.number){const Kr=util.objectValues(ts);return addIssueToContext(is,{expected:util.joinValues(Kr),received:is.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(util.getValidEnumValues(this._def.values))),!this._cache.has($.data)){const Kr=util.objectValues(ts);return addIssueToContext(is,{received:is.data,code:ZodIssueCode.invalid_enum_value,options:Kr}),INVALID}return OK($.data)}get enum(){return this._def.values}}ZodNativeEnum.create=(es,$)=>new ZodNativeEnum({values:es,typeName:ZodFirstPartyTypeKind.ZodNativeEnum,...processCreateParams($)});class ZodPromise extends ZodType{unwrap(){return this._def.type}_parse($){const{ctx:ts}=this._processInputParams($);if(ts.parsedType!==ZodParsedType.promise&&ts.common.async===!1)return addIssueToContext(ts,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.promise,received:ts.parsedType}),INVALID;const is=ts.parsedType===ZodParsedType.promise?ts.data:Promise.resolve(ts.data);return OK(is.then(Kr=>this._def.type.parseAsync(Kr,{path:ts.path,errorMap:ts.common.contextualErrorMap})))}}ZodPromise.create=(es,$)=>new ZodPromise({type:es,typeName:ZodFirstPartyTypeKind.ZodPromise,...processCreateParams($)});class ZodEffects extends ZodType{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){const{status:ts,ctx:is}=this._processInputParams($),Kr=this._def.effect||null,Qr={addIssue:ja=>{addIssueToContext(is,ja),ja.fatal?ts.abort():ts.dirty()},get path(){return is.path}};if(Qr.addIssue=Qr.addIssue.bind(Qr),Kr.type==="preprocess"){const ja=Kr.transform(is.data,Qr);if(is.common.async)return Promise.resolve(ja).then(async Ca=>{if(ts.value==="aborted")return INVALID;const Aa=await this._def.schema._parseAsync({data:Ca,path:is.path,parent:is});return Aa.status==="aborted"?INVALID:Aa.status==="dirty"||ts.value==="dirty"?DIRTY(Aa.value):Aa});{if(ts.value==="aborted")return INVALID;const Ca=this._def.schema._parseSync({data:ja,path:is.path,parent:is});return Ca.status==="aborted"?INVALID:Ca.status==="dirty"||ts.value==="dirty"?DIRTY(Ca.value):Ca}}if(Kr.type==="refinement"){const ja=Ca=>{const Aa=Kr.refinement(Ca,Qr);if(is.common.async)return Promise.resolve(Aa);if(Aa instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Ca};if(is.common.async===!1){const Ca=this._def.schema._parseSync({data:is.data,path:is.path,parent:is});return Ca.status==="aborted"?INVALID:(Ca.status==="dirty"&&ts.dirty(),ja(Ca.value),{status:ts.value,value:Ca.value})}else return this._def.schema._parseAsync({data:is.data,path:is.path,parent:is}).then(Ca=>Ca.status==="aborted"?INVALID:(Ca.status==="dirty"&&ts.dirty(),ja(Ca.value).then(()=>({status:ts.value,value:Ca.value}))))}if(Kr.type==="transform")if(is.common.async===!1){const ja=this._def.schema._parseSync({data:is.data,path:is.path,parent:is});if(!isValid(ja))return INVALID;const Ca=Kr.transform(ja.value,Qr);if(Ca instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:ts.value,value:Ca}}else return this._def.schema._parseAsync({data:is.data,path:is.path,parent:is}).then(ja=>isValid(ja)?Promise.resolve(Kr.transform(ja.value,Qr)).then(Ca=>({status:ts.value,value:Ca})):INVALID);util.assertNever(Kr)}}ZodEffects.create=(es,$,ts)=>new ZodEffects({schema:es,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:$,...processCreateParams(ts)});ZodEffects.createWithPreprocess=(es,$,ts)=>new ZodEffects({schema:$,effect:{type:"preprocess",transform:es},typeName:ZodFirstPartyTypeKind.ZodEffects,...processCreateParams(ts)});class ZodOptional extends ZodType{_parse($){return this._getType($)===ZodParsedType.undefined?OK(void 0):this._def.innerType._parse($)}unwrap(){return this._def.innerType}}ZodOptional.create=(es,$)=>new ZodOptional({innerType:es,typeName:ZodFirstPartyTypeKind.ZodOptional,...processCreateParams($)});class ZodNullable extends ZodType{_parse($){return this._getType($)===ZodParsedType.null?OK(null):this._def.innerType._parse($)}unwrap(){return this._def.innerType}}ZodNullable.create=(es,$)=>new ZodNullable({innerType:es,typeName:ZodFirstPartyTypeKind.ZodNullable,...processCreateParams($)});class ZodDefault extends ZodType{_parse($){const{ctx:ts}=this._processInputParams($);let is=ts.data;return ts.parsedType===ZodParsedType.undefined&&(is=this._def.defaultValue()),this._def.innerType._parse({data:is,path:ts.path,parent:ts})}removeDefault(){return this._def.innerType}}ZodDefault.create=(es,$)=>new ZodDefault({innerType:es,typeName:ZodFirstPartyTypeKind.ZodDefault,defaultValue:typeof $.default=="function"?$.default:()=>$.default,...processCreateParams($)});class ZodCatch extends ZodType{_parse($){const{ctx:ts}=this._processInputParams($),is={...ts,common:{...ts.common,issues:[]}},Kr=this._def.innerType._parse({data:is.data,path:is.path,parent:{...is}});return isAsync(Kr)?Kr.then(Qr=>({status:"valid",value:Qr.status==="valid"?Qr.value:this._def.catchValue({get error(){return new ZodError(is.common.issues)},input:is.data})})):{status:"valid",value:Kr.status==="valid"?Kr.value:this._def.catchValue({get error(){return new ZodError(is.common.issues)},input:is.data})}}removeCatch(){return this._def.innerType}}ZodCatch.create=(es,$)=>new ZodCatch({innerType:es,typeName:ZodFirstPartyTypeKind.ZodCatch,catchValue:typeof $.catch=="function"?$.catch:()=>$.catch,...processCreateParams($)});class ZodNaN extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.nan){const is=this._getOrReturnCtx($);return addIssueToContext(is,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.nan,received:is.parsedType}),INVALID}return{status:"valid",value:$.data}}}ZodNaN.create=es=>new ZodNaN({typeName:ZodFirstPartyTypeKind.ZodNaN,...processCreateParams(es)});class ZodBranded extends ZodType{_parse($){const{ctx:ts}=this._processInputParams($),is=ts.data;return this._def.type._parse({data:is,path:ts.path,parent:ts})}unwrap(){return this._def.type}}class ZodPipeline extends ZodType{_parse($){const{status:ts,ctx:is}=this._processInputParams($);if(is.common.async)return(async()=>{const Qr=await this._def.in._parseAsync({data:is.data,path:is.path,parent:is});return Qr.status==="aborted"?INVALID:Qr.status==="dirty"?(ts.dirty(),DIRTY(Qr.value)):this._def.out._parseAsync({data:Qr.value,path:is.path,parent:is})})();{const Kr=this._def.in._parseSync({data:is.data,path:is.path,parent:is});return Kr.status==="aborted"?INVALID:Kr.status==="dirty"?(ts.dirty(),{status:"dirty",value:Kr.value}):this._def.out._parseSync({data:Kr.value,path:is.path,parent:is})}}static create($,ts){return new ZodPipeline({in:$,out:ts,typeName:ZodFirstPartyTypeKind.ZodPipeline})}}class ZodReadonly extends ZodType{_parse($){const ts=this._def.innerType._parse($),is=Kr=>(isValid(Kr)&&(Kr.value=Object.freeze(Kr.value)),Kr);return isAsync(ts)?ts.then(Kr=>is(Kr)):is(ts)}unwrap(){return this._def.innerType}}ZodReadonly.create=(es,$)=>new ZodReadonly({innerType:es,typeName:ZodFirstPartyTypeKind.ZodReadonly,...processCreateParams($)});var ZodFirstPartyTypeKind;(function(es){es.ZodString="ZodString",es.ZodNumber="ZodNumber",es.ZodNaN="ZodNaN",es.ZodBigInt="ZodBigInt",es.ZodBoolean="ZodBoolean",es.ZodDate="ZodDate",es.ZodSymbol="ZodSymbol",es.ZodUndefined="ZodUndefined",es.ZodNull="ZodNull",es.ZodAny="ZodAny",es.ZodUnknown="ZodUnknown",es.ZodNever="ZodNever",es.ZodVoid="ZodVoid",es.ZodArray="ZodArray",es.ZodObject="ZodObject",es.ZodUnion="ZodUnion",es.ZodDiscriminatedUnion="ZodDiscriminatedUnion",es.ZodIntersection="ZodIntersection",es.ZodTuple="ZodTuple",es.ZodRecord="ZodRecord",es.ZodMap="ZodMap",es.ZodSet="ZodSet",es.ZodFunction="ZodFunction",es.ZodLazy="ZodLazy",es.ZodLiteral="ZodLiteral",es.ZodEnum="ZodEnum",es.ZodEffects="ZodEffects",es.ZodNativeEnum="ZodNativeEnum",es.ZodOptional="ZodOptional",es.ZodNullable="ZodNullable",es.ZodDefault="ZodDefault",es.ZodCatch="ZodCatch",es.ZodPromise="ZodPromise",es.ZodBranded="ZodBranded",es.ZodPipeline="ZodPipeline",es.ZodReadonly="ZodReadonly"})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));const stringType=ZodString.create,numberType=ZodNumber.create,booleanType=ZodBoolean.create,unknownType=ZodUnknown.create;ZodNever.create;const arrayType=ZodArray.create,objectType=ZodObject.create;ZodUnion.create;ZodIntersection.create;ZodTuple.create;const recordType=ZodRecord.create,literalType=ZodLiteral.create,enumType=ZodEnum.create;ZodPromise.create;ZodOptional.create;ZodNullable.create;const INSTRUCTION_SCOPES=["org","team","project","personal"];objectType({name:stringType().min(1),description:stringType().min(1),type:literalType("instruction").default("instruction"),scope:enumType(INSTRUCTION_SCOPES),version:stringType().min(1),tags:arrayType(stringType()).optional(),compatibility:arrayType(stringType()).optional(),slots:recordType(stringType(),stringType()).optional(),metadata:recordType(stringType(),unknownType()).optional()});objectType({name:stringType().min(1),description:stringType().min(1),type:literalType("prompt"),version:stringType().min(1),tags:arrayType(stringType()).optional(),variables:arrayType(stringType()).optional(),metadata:recordType(stringType(),unknownType()).optional()});const __viteBrowserExternal={},__viteBrowserExternal$1=Object.freeze(Object.defineProperty({__proto__:null,default:__viteBrowserExternal},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(__viteBrowserExternal$1);var kindOf,hasRequiredKindOf;function requireKindOf(){if(hasRequiredKindOf)return kindOf;hasRequiredKindOf=1;var es=Object.prototype.toString;kindOf=function(Da){if(Da===void 0)return"undefined";if(Da===null)return"null";var Ba=typeof Da;if(Ba==="boolean")return"boolean";if(Ba==="string")return"string";if(Ba==="number")return"number";if(Ba==="symbol")return"symbol";if(Ba==="function")return ja(Da)?"generatorfunction":"function";if(ts(Da))return"array";if(Oa(Da))return"buffer";if(Aa(Da))return"arguments";if(Kr(Da))return"date";if(is(Da))return"error";if(Qr(Da))return"regexp";switch($(Da)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(Ca(Da))return"generator";switch(Ba=es.call(Da),Ba){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return Ba.slice(8,-1).toLowerCase().replace(/\s/g,"")};function $(Ia){return typeof Ia.constructor=="function"?Ia.constructor.name:null}function ts(Ia){return Array.isArray?Array.isArray(Ia):Ia instanceof Array}function is(Ia){return Ia instanceof Error||typeof Ia.message=="string"&&Ia.constructor&&typeof Ia.constructor.stackTraceLimit=="number"}function Kr(Ia){return Ia instanceof Date?!0:typeof Ia.toDateString=="function"&&typeof Ia.getDate=="function"&&typeof Ia.setDate=="function"}function Qr(Ia){return Ia instanceof RegExp?!0:typeof Ia.flags=="string"&&typeof Ia.ignoreCase=="boolean"&&typeof Ia.multiline=="boolean"&&typeof Ia.global=="boolean"}function ja(Ia,Da){return $(Ia)==="GeneratorFunction"}function Ca(Ia){return typeof Ia.throw=="function"&&typeof Ia.return=="function"&&typeof Ia.next=="function"}function Aa(Ia){try{if(typeof Ia.length=="number"&&typeof Ia.callee=="function")return!0}catch(Da){if(Da.message.indexOf("callee")!==-1)return!0}return!1}function Oa(Ia){return Ia.constructor&&typeof Ia.constructor.isBuffer=="function"?Ia.constructor.isBuffer(Ia):!1}return kindOf}/*!
70
- * is-extendable <https://github.com/jonschlinkert/is-extendable>
71
- *
72
- * Copyright (c) 2015, Jon Schlinkert.
73
- * Licensed under the MIT License.
74
- */var isExtendable,hasRequiredIsExtendable;function requireIsExtendable(){return hasRequiredIsExtendable||(hasRequiredIsExtendable=1,isExtendable=function($){return typeof $<"u"&&$!==null&&(typeof $=="object"||typeof $=="function")}),isExtendable}var extendShallow,hasRequiredExtendShallow;function requireExtendShallow(){if(hasRequiredExtendShallow)return extendShallow;hasRequiredExtendShallow=1;var es=requireIsExtendable();extendShallow=function(Kr){es(Kr)||(Kr={});for(var Qr=arguments.length,ja=1;ja<Qr;ja++){var Ca=arguments[ja];es(Ca)&&$(Kr,Ca)}return Kr};function $(is,Kr){for(var Qr in Kr)ts(Kr,Qr)&&(is[Qr]=Kr[Qr])}function ts(is,Kr){return Object.prototype.hasOwnProperty.call(is,Kr)}return extendShallow}var sectionMatter,hasRequiredSectionMatter;function requireSectionMatter(){if(hasRequiredSectionMatter)return sectionMatter;hasRequiredSectionMatter=1;var es=requireKindOf(),$=requireExtendShallow();sectionMatter=function(Aa,Oa){typeof Oa=="function"&&(Oa={parse:Oa});var Ia=is(Aa),Da={section_delimiter:"---",parse:ja},Ba=$({},Da,Oa),Ma=Ba.section_delimiter,Fa=Ia.content.split(/\r?\n/),qa=null,Ha=Qr(),Ka=[],Qa=[];function Va(cl){Ia.content=cl,qa=[],Ka=[]}function Ya(cl){Qa.length&&(Ha.key=Kr(Qa[0],Ma),Ha.content=cl,Ba.parse(Ha,qa),qa.push(Ha),Ha=Qr(),Ka=[],Qa=[])}for(var Wa=0;Wa<Fa.length;Wa++){var el=Fa[Wa],tl=Qa.length,rl=el.trim();if(ts(rl,Ma)){if(rl.length===3&&Wa!==0){if(tl===0||tl===2){Ka.push(el);continue}Qa.push(rl),Ha.data=Ka.join(`
75
- `),Ka=[];continue}qa===null&&Va(Ka.join(`
76
- `)),tl===2&&Ya(Ka.join(`
77
- `)),Qa.push(rl);continue}Ka.push(el)}return qa===null?Va(Ka.join(`
78
- `)):Ya(Ka.join(`
79
- `)),Ia.sections=qa,Ia};function ts(Aa,Oa){return!(Aa.slice(0,Oa.length)!==Oa||Aa.charAt(Oa.length+1)===Oa.slice(-1))}function is(Aa){if(es(Aa)!=="object"&&(Aa={content:Aa}),typeof Aa.content!="string"&&!Ca(Aa.content))throw new TypeError("expected a buffer or string");return Aa.content=Aa.content.toString(),Aa.sections=[],Aa}function Kr(Aa,Oa){return Aa?Aa.slice(Oa.length).trim():""}function Qr(){return{key:"",data:"",content:""}}function ja(Aa){return Aa}function Ca(Aa){return Aa&&Aa.constructor&&typeof Aa.constructor.isBuffer=="function"?Aa.constructor.isBuffer(Aa):!1}return sectionMatter}var engines={exports:{}},jsYaml$1={},loader={},common={},hasRequiredCommon;function requireCommon(){if(hasRequiredCommon)return common;hasRequiredCommon=1;function es(ja){return typeof ja>"u"||ja===null}function $(ja){return typeof ja=="object"&&ja!==null}function ts(ja){return Array.isArray(ja)?ja:es(ja)?[]:[ja]}function is(ja,Ca){var Aa,Oa,Ia,Da;if(Ca)for(Da=Object.keys(Ca),Aa=0,Oa=Da.length;Aa<Oa;Aa+=1)Ia=Da[Aa],ja[Ia]=Ca[Ia];return ja}function Kr(ja,Ca){var Aa="",Oa;for(Oa=0;Oa<Ca;Oa+=1)Aa+=ja;return Aa}function Qr(ja){return ja===0&&Number.NEGATIVE_INFINITY===1/ja}return common.isNothing=es,common.isObject=$,common.toArray=ts,common.repeat=Kr,common.isNegativeZero=Qr,common.extend=is,common}var exception,hasRequiredException;function requireException(){if(hasRequiredException)return exception;hasRequiredException=1;function es($,ts){Error.call(this),this.name="YAMLException",this.reason=$,this.mark=ts,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}return es.prototype=Object.create(Error.prototype),es.prototype.constructor=es,es.prototype.toString=function(ts){var is=this.name+": ";return is+=this.reason||"(unknown reason)",!ts&&this.mark&&(is+=" "+this.mark.toString()),is},exception=es,exception}var mark,hasRequiredMark;function requireMark(){if(hasRequiredMark)return mark;hasRequiredMark=1;var es=requireCommon();function $(ts,is,Kr,Qr,ja){this.name=ts,this.buffer=is,this.position=Kr,this.line=Qr,this.column=ja}return $.prototype.getSnippet=function(is,Kr){var Qr,ja,Ca,Aa,Oa;if(!this.buffer)return null;for(is=is||4,Kr=Kr||75,Qr="",ja=this.position;ja>0&&`\0\r
80
- …\u2028\u2029`.indexOf(this.buffer.charAt(ja-1))===-1;)if(ja-=1,this.position-ja>Kr/2-1){Qr=" ... ",ja+=5;break}for(Ca="",Aa=this.position;Aa<this.buffer.length&&`\0\r
81
- …\u2028\u2029`.indexOf(this.buffer.charAt(Aa))===-1;)if(Aa+=1,Aa-this.position>Kr/2-1){Ca=" ... ",Aa-=5;break}return Oa=this.buffer.slice(ja,Aa),es.repeat(" ",is)+Qr+Oa+Ca+`
82
- `+es.repeat(" ",is+this.position-ja+Qr.length)+"^"},$.prototype.toString=function(is){var Kr,Qr="";return this.name&&(Qr+='in "'+this.name+'" '),Qr+="at line "+(this.line+1)+", column "+(this.column+1),is||(Kr=this.getSnippet(),Kr&&(Qr+=`:
83
- `+Kr)),Qr},mark=$,mark}var type,hasRequiredType;function requireType(){if(hasRequiredType)return type;hasRequiredType=1;var es=requireException(),$=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],ts=["scalar","sequence","mapping"];function is(Qr){var ja={};return Qr!==null&&Object.keys(Qr).forEach(function(Ca){Qr[Ca].forEach(function(Aa){ja[String(Aa)]=Ca})}),ja}function Kr(Qr,ja){if(ja=ja||{},Object.keys(ja).forEach(function(Ca){if($.indexOf(Ca)===-1)throw new es('Unknown option "'+Ca+'" is met in definition of "'+Qr+'" YAML type.')}),this.tag=Qr,this.kind=ja.kind||null,this.resolve=ja.resolve||function(){return!0},this.construct=ja.construct||function(Ca){return Ca},this.instanceOf=ja.instanceOf||null,this.predicate=ja.predicate||null,this.represent=ja.represent||null,this.defaultStyle=ja.defaultStyle||null,this.styleAliases=is(ja.styleAliases||null),ts.indexOf(this.kind)===-1)throw new es('Unknown kind "'+this.kind+'" is specified for "'+Qr+'" YAML type.')}return type=Kr,type}var schema,hasRequiredSchema;function requireSchema(){if(hasRequiredSchema)return schema;hasRequiredSchema=1;var es=requireCommon(),$=requireException(),ts=requireType();function is(ja,Ca,Aa){var Oa=[];return ja.include.forEach(function(Ia){Aa=is(Ia,Ca,Aa)}),ja[Ca].forEach(function(Ia){Aa.forEach(function(Da,Ba){Da.tag===Ia.tag&&Da.kind===Ia.kind&&Oa.push(Ba)}),Aa.push(Ia)}),Aa.filter(function(Ia,Da){return Oa.indexOf(Da)===-1})}function Kr(){var ja={scalar:{},sequence:{},mapping:{},fallback:{}},Ca,Aa;function Oa(Ia){ja[Ia.kind][Ia.tag]=ja.fallback[Ia.tag]=Ia}for(Ca=0,Aa=arguments.length;Ca<Aa;Ca+=1)arguments[Ca].forEach(Oa);return ja}function Qr(ja){this.include=ja.include||[],this.implicit=ja.implicit||[],this.explicit=ja.explicit||[],this.implicit.forEach(function(Ca){if(Ca.loadKind&&Ca.loadKind!=="scalar")throw new $("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=is(this,"implicit",[]),this.compiledExplicit=is(this,"explicit",[]),this.compiledTypeMap=Kr(this.compiledImplicit,this.compiledExplicit)}return Qr.DEFAULT=null,Qr.create=function(){var Ca,Aa;switch(arguments.length){case 1:Ca=Qr.DEFAULT,Aa=arguments[0];break;case 2:Ca=arguments[0],Aa=arguments[1];break;default:throw new $("Wrong number of arguments for Schema.create function")}if(Ca=es.toArray(Ca),Aa=es.toArray(Aa),!Ca.every(function(Oa){return Oa instanceof Qr}))throw new $("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!Aa.every(function(Oa){return Oa instanceof ts}))throw new $("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Qr({include:Ca,explicit:Aa})},schema=Qr,schema}var str,hasRequiredStr;function requireStr(){if(hasRequiredStr)return str;hasRequiredStr=1;var es=requireType();return str=new es("tag:yaml.org,2002:str",{kind:"scalar",construct:function($){return $!==null?$:""}}),str}var seq,hasRequiredSeq;function requireSeq(){if(hasRequiredSeq)return seq;hasRequiredSeq=1;var es=requireType();return seq=new es("tag:yaml.org,2002:seq",{kind:"sequence",construct:function($){return $!==null?$:[]}}),seq}var map,hasRequiredMap;function requireMap(){if(hasRequiredMap)return map;hasRequiredMap=1;var es=requireType();return map=new es("tag:yaml.org,2002:map",{kind:"mapping",construct:function($){return $!==null?$:{}}}),map}var failsafe,hasRequiredFailsafe;function requireFailsafe(){if(hasRequiredFailsafe)return failsafe;hasRequiredFailsafe=1;var es=requireSchema();return failsafe=new es({explicit:[requireStr(),requireSeq(),requireMap()]}),failsafe}var _null,hasRequired_null;function require_null(){if(hasRequired_null)return _null;hasRequired_null=1;var es=requireType();function $(Kr){if(Kr===null)return!0;var Qr=Kr.length;return Qr===1&&Kr==="~"||Qr===4&&(Kr==="null"||Kr==="Null"||Kr==="NULL")}function ts(){return null}function is(Kr){return Kr===null}return _null=new es("tag:yaml.org,2002:null",{kind:"scalar",resolve:$,construct:ts,predicate:is,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"}),_null}var bool,hasRequiredBool;function requireBool(){if(hasRequiredBool)return bool;hasRequiredBool=1;var es=requireType();function $(Kr){if(Kr===null)return!1;var Qr=Kr.length;return Qr===4&&(Kr==="true"||Kr==="True"||Kr==="TRUE")||Qr===5&&(Kr==="false"||Kr==="False"||Kr==="FALSE")}function ts(Kr){return Kr==="true"||Kr==="True"||Kr==="TRUE"}function is(Kr){return Object.prototype.toString.call(Kr)==="[object Boolean]"}return bool=new es("tag:yaml.org,2002:bool",{kind:"scalar",resolve:$,construct:ts,predicate:is,represent:{lowercase:function(Kr){return Kr?"true":"false"},uppercase:function(Kr){return Kr?"TRUE":"FALSE"},camelcase:function(Kr){return Kr?"True":"False"}},defaultStyle:"lowercase"}),bool}var int,hasRequiredInt;function requireInt(){if(hasRequiredInt)return int;hasRequiredInt=1;var es=requireCommon(),$=requireType();function ts(Aa){return 48<=Aa&&Aa<=57||65<=Aa&&Aa<=70||97<=Aa&&Aa<=102}function is(Aa){return 48<=Aa&&Aa<=55}function Kr(Aa){return 48<=Aa&&Aa<=57}function Qr(Aa){if(Aa===null)return!1;var Oa=Aa.length,Ia=0,Da=!1,Ba;if(!Oa)return!1;if(Ba=Aa[Ia],(Ba==="-"||Ba==="+")&&(Ba=Aa[++Ia]),Ba==="0"){if(Ia+1===Oa)return!0;if(Ba=Aa[++Ia],Ba==="b"){for(Ia++;Ia<Oa;Ia++)if(Ba=Aa[Ia],Ba!=="_"){if(Ba!=="0"&&Ba!=="1")return!1;Da=!0}return Da&&Ba!=="_"}if(Ba==="x"){for(Ia++;Ia<Oa;Ia++)if(Ba=Aa[Ia],Ba!=="_"){if(!ts(Aa.charCodeAt(Ia)))return!1;Da=!0}return Da&&Ba!=="_"}for(;Ia<Oa;Ia++)if(Ba=Aa[Ia],Ba!=="_"){if(!is(Aa.charCodeAt(Ia)))return!1;Da=!0}return Da&&Ba!=="_"}if(Ba==="_")return!1;for(;Ia<Oa;Ia++)if(Ba=Aa[Ia],Ba!=="_"){if(Ba===":")break;if(!Kr(Aa.charCodeAt(Ia)))return!1;Da=!0}return!Da||Ba==="_"?!1:Ba!==":"?!0:/^(:[0-5]?[0-9])+$/.test(Aa.slice(Ia))}function ja(Aa){var Oa=Aa,Ia=1,Da,Ba,Ma=[];return Oa.indexOf("_")!==-1&&(Oa=Oa.replace(/_/g,"")),Da=Oa[0],(Da==="-"||Da==="+")&&(Da==="-"&&(Ia=-1),Oa=Oa.slice(1),Da=Oa[0]),Oa==="0"?0:Da==="0"?Oa[1]==="b"?Ia*parseInt(Oa.slice(2),2):Oa[1]==="x"?Ia*parseInt(Oa,16):Ia*parseInt(Oa,8):Oa.indexOf(":")!==-1?(Oa.split(":").forEach(function(Fa){Ma.unshift(parseInt(Fa,10))}),Oa=0,Ba=1,Ma.forEach(function(Fa){Oa+=Fa*Ba,Ba*=60}),Ia*Oa):Ia*parseInt(Oa,10)}function Ca(Aa){return Object.prototype.toString.call(Aa)==="[object Number]"&&Aa%1===0&&!es.isNegativeZero(Aa)}return int=new $("tag:yaml.org,2002:int",{kind:"scalar",resolve:Qr,construct:ja,predicate:Ca,represent:{binary:function(Aa){return Aa>=0?"0b"+Aa.toString(2):"-0b"+Aa.toString(2).slice(1)},octal:function(Aa){return Aa>=0?"0"+Aa.toString(8):"-0"+Aa.toString(8).slice(1)},decimal:function(Aa){return Aa.toString(10)},hexadecimal:function(Aa){return Aa>=0?"0x"+Aa.toString(16).toUpperCase():"-0x"+Aa.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),int}var float,hasRequiredFloat;function requireFloat(){if(hasRequiredFloat)return float;hasRequiredFloat=1;var es=requireCommon(),$=requireType(),ts=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function is(Aa){return!(Aa===null||!ts.test(Aa)||Aa[Aa.length-1]==="_")}function Kr(Aa){var Oa,Ia,Da,Ba;return Oa=Aa.replace(/_/g,"").toLowerCase(),Ia=Oa[0]==="-"?-1:1,Ba=[],"+-".indexOf(Oa[0])>=0&&(Oa=Oa.slice(1)),Oa===".inf"?Ia===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:Oa===".nan"?NaN:Oa.indexOf(":")>=0?(Oa.split(":").forEach(function(Ma){Ba.unshift(parseFloat(Ma,10))}),Oa=0,Da=1,Ba.forEach(function(Ma){Oa+=Ma*Da,Da*=60}),Ia*Oa):Ia*parseFloat(Oa,10)}var Qr=/^[-+]?[0-9]+e/;function ja(Aa,Oa){var Ia;if(isNaN(Aa))switch(Oa){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===Aa)switch(Oa){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===Aa)switch(Oa){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(es.isNegativeZero(Aa))return"-0.0";return Ia=Aa.toString(10),Qr.test(Ia)?Ia.replace("e",".e"):Ia}function Ca(Aa){return Object.prototype.toString.call(Aa)==="[object Number]"&&(Aa%1!==0||es.isNegativeZero(Aa))}return float=new $("tag:yaml.org,2002:float",{kind:"scalar",resolve:is,construct:Kr,predicate:Ca,represent:ja,defaultStyle:"lowercase"}),float}var json,hasRequiredJson;function requireJson(){if(hasRequiredJson)return json;hasRequiredJson=1;var es=requireSchema();return json=new es({include:[requireFailsafe()],implicit:[require_null(),requireBool(),requireInt(),requireFloat()]}),json}var core,hasRequiredCore;function requireCore(){if(hasRequiredCore)return core;hasRequiredCore=1;var es=requireSchema();return core=new es({include:[requireJson()]}),core}var timestamp,hasRequiredTimestamp;function requireTimestamp(){if(hasRequiredTimestamp)return timestamp;hasRequiredTimestamp=1;var es=requireType(),$=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),ts=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function is(ja){return ja===null?!1:$.exec(ja)!==null||ts.exec(ja)!==null}function Kr(ja){var Ca,Aa,Oa,Ia,Da,Ba,Ma,Fa=0,qa=null,Ha,Ka,Qa;if(Ca=$.exec(ja),Ca===null&&(Ca=ts.exec(ja)),Ca===null)throw new Error("Date resolve error");if(Aa=+Ca[1],Oa=+Ca[2]-1,Ia=+Ca[3],!Ca[4])return new Date(Date.UTC(Aa,Oa,Ia));if(Da=+Ca[4],Ba=+Ca[5],Ma=+Ca[6],Ca[7]){for(Fa=Ca[7].slice(0,3);Fa.length<3;)Fa+="0";Fa=+Fa}return Ca[9]&&(Ha=+Ca[10],Ka=+(Ca[11]||0),qa=(Ha*60+Ka)*6e4,Ca[9]==="-"&&(qa=-qa)),Qa=new Date(Date.UTC(Aa,Oa,Ia,Da,Ba,Ma,Fa)),qa&&Qa.setTime(Qa.getTime()-qa),Qa}function Qr(ja){return ja.toISOString()}return timestamp=new es("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:is,construct:Kr,instanceOf:Date,represent:Qr}),timestamp}var merge,hasRequiredMerge;function requireMerge(){if(hasRequiredMerge)return merge;hasRequiredMerge=1;var es=requireType();function $(ts){return ts==="<<"||ts===null}return merge=new es("tag:yaml.org,2002:merge",{kind:"scalar",resolve:$}),merge}function commonjsRequire(es){throw new Error('Could not dynamically require "'+es+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var binary,hasRequiredBinary;function requireBinary(){if(hasRequiredBinary)return binary;hasRequiredBinary=1;var es;try{var $=commonjsRequire;es=$("buffer").Buffer}catch{}var ts=requireType(),is=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
84
- \r`;function Kr(Aa){if(Aa===null)return!1;var Oa,Ia,Da=0,Ba=Aa.length,Ma=is;for(Ia=0;Ia<Ba;Ia++)if(Oa=Ma.indexOf(Aa.charAt(Ia)),!(Oa>64)){if(Oa<0)return!1;Da+=6}return Da%8===0}function Qr(Aa){var Oa,Ia,Da=Aa.replace(/[\r\n=]/g,""),Ba=Da.length,Ma=is,Fa=0,qa=[];for(Oa=0;Oa<Ba;Oa++)Oa%4===0&&Oa&&(qa.push(Fa>>16&255),qa.push(Fa>>8&255),qa.push(Fa&255)),Fa=Fa<<6|Ma.indexOf(Da.charAt(Oa));return Ia=Ba%4*6,Ia===0?(qa.push(Fa>>16&255),qa.push(Fa>>8&255),qa.push(Fa&255)):Ia===18?(qa.push(Fa>>10&255),qa.push(Fa>>2&255)):Ia===12&&qa.push(Fa>>4&255),es?es.from?es.from(qa):new es(qa):qa}function ja(Aa){var Oa="",Ia=0,Da,Ba,Ma=Aa.length,Fa=is;for(Da=0;Da<Ma;Da++)Da%3===0&&Da&&(Oa+=Fa[Ia>>18&63],Oa+=Fa[Ia>>12&63],Oa+=Fa[Ia>>6&63],Oa+=Fa[Ia&63]),Ia=(Ia<<8)+Aa[Da];return Ba=Ma%3,Ba===0?(Oa+=Fa[Ia>>18&63],Oa+=Fa[Ia>>12&63],Oa+=Fa[Ia>>6&63],Oa+=Fa[Ia&63]):Ba===2?(Oa+=Fa[Ia>>10&63],Oa+=Fa[Ia>>4&63],Oa+=Fa[Ia<<2&63],Oa+=Fa[64]):Ba===1&&(Oa+=Fa[Ia>>2&63],Oa+=Fa[Ia<<4&63],Oa+=Fa[64],Oa+=Fa[64]),Oa}function Ca(Aa){return es&&es.isBuffer(Aa)}return binary=new ts("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Kr,construct:Qr,predicate:Ca,represent:ja}),binary}var omap,hasRequiredOmap;function requireOmap(){if(hasRequiredOmap)return omap;hasRequiredOmap=1;var es=requireType(),$=Object.prototype.hasOwnProperty,ts=Object.prototype.toString;function is(Qr){if(Qr===null)return!0;var ja=[],Ca,Aa,Oa,Ia,Da,Ba=Qr;for(Ca=0,Aa=Ba.length;Ca<Aa;Ca+=1){if(Oa=Ba[Ca],Da=!1,ts.call(Oa)!=="[object Object]")return!1;for(Ia in Oa)if($.call(Oa,Ia))if(!Da)Da=!0;else return!1;if(!Da)return!1;if(ja.indexOf(Ia)===-1)ja.push(Ia);else return!1}return!0}function Kr(Qr){return Qr!==null?Qr:[]}return omap=new es("tag:yaml.org,2002:omap",{kind:"sequence",resolve:is,construct:Kr}),omap}var pairs,hasRequiredPairs;function requirePairs(){if(hasRequiredPairs)return pairs;hasRequiredPairs=1;var es=requireType(),$=Object.prototype.toString;function ts(Kr){if(Kr===null)return!0;var Qr,ja,Ca,Aa,Oa,Ia=Kr;for(Oa=new Array(Ia.length),Qr=0,ja=Ia.length;Qr<ja;Qr+=1){if(Ca=Ia[Qr],$.call(Ca)!=="[object Object]"||(Aa=Object.keys(Ca),Aa.length!==1))return!1;Oa[Qr]=[Aa[0],Ca[Aa[0]]]}return!0}function is(Kr){if(Kr===null)return[];var Qr,ja,Ca,Aa,Oa,Ia=Kr;for(Oa=new Array(Ia.length),Qr=0,ja=Ia.length;Qr<ja;Qr+=1)Ca=Ia[Qr],Aa=Object.keys(Ca),Oa[Qr]=[Aa[0],Ca[Aa[0]]];return Oa}return pairs=new es("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:ts,construct:is}),pairs}var set,hasRequiredSet;function requireSet(){if(hasRequiredSet)return set;hasRequiredSet=1;var es=requireType(),$=Object.prototype.hasOwnProperty;function ts(Kr){if(Kr===null)return!0;var Qr,ja=Kr;for(Qr in ja)if($.call(ja,Qr)&&ja[Qr]!==null)return!1;return!0}function is(Kr){return Kr!==null?Kr:{}}return set=new es("tag:yaml.org,2002:set",{kind:"mapping",resolve:ts,construct:is}),set}var default_safe,hasRequiredDefault_safe;function requireDefault_safe(){if(hasRequiredDefault_safe)return default_safe;hasRequiredDefault_safe=1;var es=requireSchema();return default_safe=new es({include:[requireCore()],implicit:[requireTimestamp(),requireMerge()],explicit:[requireBinary(),requireOmap(),requirePairs(),requireSet()]}),default_safe}var _undefined,hasRequired_undefined;function require_undefined(){if(hasRequired_undefined)return _undefined;hasRequired_undefined=1;var es=requireType();function $(){return!0}function ts(){}function is(){return""}function Kr(Qr){return typeof Qr>"u"}return _undefined=new es("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:$,construct:ts,predicate:Kr,represent:is}),_undefined}var regexp,hasRequiredRegexp;function requireRegexp(){if(hasRequiredRegexp)return regexp;hasRequiredRegexp=1;var es=requireType();function $(Qr){if(Qr===null||Qr.length===0)return!1;var ja=Qr,Ca=/\/([gim]*)$/.exec(Qr),Aa="";return!(ja[0]==="/"&&(Ca&&(Aa=Ca[1]),Aa.length>3||ja[ja.length-Aa.length-1]!=="/"))}function ts(Qr){var ja=Qr,Ca=/\/([gim]*)$/.exec(Qr),Aa="";return ja[0]==="/"&&(Ca&&(Aa=Ca[1]),ja=ja.slice(1,ja.length-Aa.length-1)),new RegExp(ja,Aa)}function is(Qr){var ja="/"+Qr.source+"/";return Qr.global&&(ja+="g"),Qr.multiline&&(ja+="m"),Qr.ignoreCase&&(ja+="i"),ja}function Kr(Qr){return Object.prototype.toString.call(Qr)==="[object RegExp]"}return regexp=new es("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:$,construct:ts,predicate:Kr,represent:is}),regexp}var _function,hasRequired_function;function require_function(){if(hasRequired_function)return _function;hasRequired_function=1;var es;try{var $=commonjsRequire;es=$("esprima")}catch{typeof window<"u"&&(es=window.esprima)}var ts=requireType();function is(Ca){if(Ca===null)return!1;try{var Aa="("+Ca+")",Oa=es.parse(Aa,{range:!0});return!(Oa.type!=="Program"||Oa.body.length!==1||Oa.body[0].type!=="ExpressionStatement"||Oa.body[0].expression.type!=="ArrowFunctionExpression"&&Oa.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function Kr(Ca){var Aa="("+Ca+")",Oa=es.parse(Aa,{range:!0}),Ia=[],Da;if(Oa.type!=="Program"||Oa.body.length!==1||Oa.body[0].type!=="ExpressionStatement"||Oa.body[0].expression.type!=="ArrowFunctionExpression"&&Oa.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return Oa.body[0].expression.params.forEach(function(Ba){Ia.push(Ba.name)}),Da=Oa.body[0].expression.body.range,Oa.body[0].expression.body.type==="BlockStatement"?new Function(Ia,Aa.slice(Da[0]+1,Da[1]-1)):new Function(Ia,"return "+Aa.slice(Da[0],Da[1]))}function Qr(Ca){return Ca.toString()}function ja(Ca){return Object.prototype.toString.call(Ca)==="[object Function]"}return _function=new ts("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:is,construct:Kr,predicate:ja,represent:Qr}),_function}var default_full,hasRequiredDefault_full;function requireDefault_full(){if(hasRequiredDefault_full)return default_full;hasRequiredDefault_full=1;var es=requireSchema();return default_full=es.DEFAULT=new es({include:[requireDefault_safe()],explicit:[require_undefined(),requireRegexp(),require_function()]}),default_full}var hasRequiredLoader;function requireLoader(){if(hasRequiredLoader)return loader;hasRequiredLoader=1;var es=requireCommon(),$=requireException(),ts=requireMark(),is=requireDefault_safe(),Kr=requireDefault_full(),Qr=Object.prototype.hasOwnProperty,ja=1,Ca=2,Aa=3,Oa=4,Ia=1,Da=2,Ba=3,Ma=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Fa=/[\x85\u2028\u2029]/,qa=/[,\[\]\{\}]/,Ha=/^(?:!|!!|![a-z\-]+!)$/i,Ka=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Qa(Ua){return Object.prototype.toString.call(Ua)}function Va(Ua){return Ua===10||Ua===13}function Ya(Ua){return Ua===9||Ua===32}function Wa(Ua){return Ua===9||Ua===32||Ua===10||Ua===13}function el(Ua){return Ua===44||Ua===91||Ua===93||Ua===123||Ua===125}function tl(Ua){var ll;return 48<=Ua&&Ua<=57?Ua-48:(ll=Ua|32,97<=ll&&ll<=102?ll-97+10:-1)}function rl(Ua){return Ua===120?2:Ua===117?4:Ua===85?8:0}function cl(Ua){return 48<=Ua&&Ua<=57?Ua-48:-1}function dl(Ua){return Ua===48?"\0":Ua===97?"\x07":Ua===98?"\b":Ua===116||Ua===9?" ":Ua===110?`
85
- `:Ua===118?"\v":Ua===102?"\f":Ua===114?"\r":Ua===101?"\x1B":Ua===32?" ":Ua===34?'"':Ua===47?"/":Ua===92?"\\":Ua===78?"…":Ua===95?" ":Ua===76?"\u2028":Ua===80?"\u2029":""}function fl(Ua){return Ua<=65535?String.fromCharCode(Ua):String.fromCharCode((Ua-65536>>10)+55296,(Ua-65536&1023)+56320)}function nl(Ua,ll,yl){ll==="__proto__"?Object.defineProperty(Ua,ll,{configurable:!0,enumerable:!0,writable:!0,value:yl}):Ua[ll]=yl}for(var ol=new Array(256),pl=new Array(256),Tl=0;Tl<256;Tl++)ol[Tl]=dl(Tl)?1:0,pl[Tl]=dl(Tl);function ul(Ua,ll){this.input=Ua,this.filename=ll.filename||null,this.schema=ll.schema||Kr,this.onWarning=ll.onWarning||null,this.legacy=ll.legacy||!1,this.json=ll.json||!1,this.listener=ll.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=Ua.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function hl(Ua,ll){return new $(ll,new ts(Ua.filename,Ua.input,Ua.position,Ua.line,Ua.position-Ua.lineStart))}function jl(Ua,ll){throw hl(Ua,ll)}function Nl(Ua,ll){Ua.onWarning&&Ua.onWarning.call(null,hl(Ua,ll))}var zl={YAML:function(ll,yl,Dl){var kl,Ga,al;ll.version!==null&&jl(ll,"duplication of %YAML directive"),Dl.length!==1&&jl(ll,"YAML directive accepts exactly one argument"),kl=/^([0-9]+)\.([0-9]+)$/.exec(Dl[0]),kl===null&&jl(ll,"ill-formed argument of the YAML directive"),Ga=parseInt(kl[1],10),al=parseInt(kl[2],10),Ga!==1&&jl(ll,"unacceptable YAML version of the document"),ll.version=Dl[0],ll.checkLineBreaks=al<2,al!==1&&al!==2&&Nl(ll,"unsupported YAML version of the document")},TAG:function(ll,yl,Dl){var kl,Ga;Dl.length!==2&&jl(ll,"TAG directive accepts exactly two arguments"),kl=Dl[0],Ga=Dl[1],Ha.test(kl)||jl(ll,"ill-formed tag handle (first argument) of the TAG directive"),Qr.call(ll.tagMap,kl)&&jl(ll,'there is a previously declared suffix for "'+kl+'" tag handle'),Ka.test(Ga)||jl(ll,"ill-formed tag prefix (second argument) of the TAG directive"),ll.tagMap[kl]=Ga}};function Zl(Ua,ll,yl,Dl){var kl,Ga,al,El;if(ll<yl){if(El=Ua.input.slice(ll,yl),Dl)for(kl=0,Ga=El.length;kl<Ga;kl+=1)al=El.charCodeAt(kl),al===9||32<=al&&al<=1114111||jl(Ua,"expected valid JSON character");else Ma.test(El)&&jl(Ua,"the stream contains non-printable characters");Ua.result+=El}}function $l(Ua,ll,yl,Dl){var kl,Ga,al,El;for(es.isObject(yl)||jl(Ua,"cannot merge mappings; the provided source object is unacceptable"),kl=Object.keys(yl),al=0,El=kl.length;al<El;al+=1)Ga=kl[al],Qr.call(ll,Ga)||(nl(ll,Ga,yl[Ga]),Dl[Ga]=!0)}function Il(Ua,ll,yl,Dl,kl,Ga,al,El){var bl,_l;if(Array.isArray(kl))for(kl=Array.prototype.slice.call(kl),bl=0,_l=kl.length;bl<_l;bl+=1)Array.isArray(kl[bl])&&jl(Ua,"nested arrays are not supported inside keys"),typeof kl=="object"&&Qa(kl[bl])==="[object Object]"&&(kl[bl]="[object Object]");if(typeof kl=="object"&&Qa(kl)==="[object Object]"&&(kl="[object Object]"),kl=String(kl),ll===null&&(ll={}),Dl==="tag:yaml.org,2002:merge")if(Array.isArray(Ga))for(bl=0,_l=Ga.length;bl<_l;bl+=1)$l(Ua,ll,Ga[bl],yl);else $l(Ua,ll,Ga,yl);else!Ua.json&&!Qr.call(yl,kl)&&Qr.call(ll,kl)&&(Ua.line=al||Ua.line,Ua.position=El||Ua.position,jl(Ua,"duplicated mapping key")),nl(ll,kl,Ga),delete yl[kl];return ll}function ql(Ua){var ll;ll=Ua.input.charCodeAt(Ua.position),ll===10?Ua.position++:ll===13?(Ua.position++,Ua.input.charCodeAt(Ua.position)===10&&Ua.position++):jl(Ua,"a line break is expected"),Ua.line+=1,Ua.lineStart=Ua.position}function Fl(Ua,ll,yl){for(var Dl=0,kl=Ua.input.charCodeAt(Ua.position);kl!==0;){for(;Ya(kl);)kl=Ua.input.charCodeAt(++Ua.position);if(ll&&kl===35)do kl=Ua.input.charCodeAt(++Ua.position);while(kl!==10&&kl!==13&&kl!==0);if(Va(kl))for(ql(Ua),kl=Ua.input.charCodeAt(Ua.position),Dl++,Ua.lineIndent=0;kl===32;)Ua.lineIndent++,kl=Ua.input.charCodeAt(++Ua.position);else break}return yl!==-1&&Dl!==0&&Ua.lineIndent<yl&&Nl(Ua,"deficient indentation"),Dl}function ru(Ua){var ll=Ua.position,yl;return yl=Ua.input.charCodeAt(ll),!!((yl===45||yl===46)&&yl===Ua.input.charCodeAt(ll+1)&&yl===Ua.input.charCodeAt(ll+2)&&(ll+=3,yl=Ua.input.charCodeAt(ll),yl===0||Wa(yl)))}function Gl(Ua,ll){ll===1?Ua.result+=" ":ll>1&&(Ua.result+=es.repeat(`
86
- `,ll-1))}function cu(Ua,ll,yl){var Dl,kl,Ga,al,El,bl,_l,Ol,Rl=Ua.kind,Ul=Ua.result,Ll;if(Ll=Ua.input.charCodeAt(Ua.position),Wa(Ll)||el(Ll)||Ll===35||Ll===38||Ll===42||Ll===33||Ll===124||Ll===62||Ll===39||Ll===34||Ll===37||Ll===64||Ll===96||(Ll===63||Ll===45)&&(kl=Ua.input.charCodeAt(Ua.position+1),Wa(kl)||yl&&el(kl)))return!1;for(Ua.kind="scalar",Ua.result="",Ga=al=Ua.position,El=!1;Ll!==0;){if(Ll===58){if(kl=Ua.input.charCodeAt(Ua.position+1),Wa(kl)||yl&&el(kl))break}else if(Ll===35){if(Dl=Ua.input.charCodeAt(Ua.position-1),Wa(Dl))break}else{if(Ua.position===Ua.lineStart&&ru(Ua)||yl&&el(Ll))break;if(Va(Ll))if(bl=Ua.line,_l=Ua.lineStart,Ol=Ua.lineIndent,Fl(Ua,!1,-1),Ua.lineIndent>=ll){El=!0,Ll=Ua.input.charCodeAt(Ua.position);continue}else{Ua.position=al,Ua.line=bl,Ua.lineStart=_l,Ua.lineIndent=Ol;break}}El&&(Zl(Ua,Ga,al,!1),Gl(Ua,Ua.line-bl),Ga=al=Ua.position,El=!1),Ya(Ll)||(al=Ua.position+1),Ll=Ua.input.charCodeAt(++Ua.position)}return Zl(Ua,Ga,al,!1),Ua.result?!0:(Ua.kind=Rl,Ua.result=Ul,!1)}function Al(Ua,ll){var yl,Dl,kl;if(yl=Ua.input.charCodeAt(Ua.position),yl!==39)return!1;for(Ua.kind="scalar",Ua.result="",Ua.position++,Dl=kl=Ua.position;(yl=Ua.input.charCodeAt(Ua.position))!==0;)if(yl===39)if(Zl(Ua,Dl,Ua.position,!0),yl=Ua.input.charCodeAt(++Ua.position),yl===39)Dl=Ua.position,Ua.position++,kl=Ua.position;else return!0;else Va(yl)?(Zl(Ua,Dl,kl,!0),Gl(Ua,Fl(Ua,!1,ll)),Dl=kl=Ua.position):Ua.position===Ua.lineStart&&ru(Ua)?jl(Ua,"unexpected end of the document within a single quoted scalar"):(Ua.position++,kl=Ua.position);jl(Ua,"unexpected end of the stream within a single quoted scalar")}function Ml(Ua,ll){var yl,Dl,kl,Ga,al,El;if(El=Ua.input.charCodeAt(Ua.position),El!==34)return!1;for(Ua.kind="scalar",Ua.result="",Ua.position++,yl=Dl=Ua.position;(El=Ua.input.charCodeAt(Ua.position))!==0;){if(El===34)return Zl(Ua,yl,Ua.position,!0),Ua.position++,!0;if(El===92){if(Zl(Ua,yl,Ua.position,!0),El=Ua.input.charCodeAt(++Ua.position),Va(El))Fl(Ua,!1,ll);else if(El<256&&ol[El])Ua.result+=pl[El],Ua.position++;else if((al=rl(El))>0){for(kl=al,Ga=0;kl>0;kl--)El=Ua.input.charCodeAt(++Ua.position),(al=tl(El))>=0?Ga=(Ga<<4)+al:jl(Ua,"expected hexadecimal character");Ua.result+=fl(Ga),Ua.position++}else jl(Ua,"unknown escape sequence");yl=Dl=Ua.position}else Va(El)?(Zl(Ua,yl,Dl,!0),Gl(Ua,Fl(Ua,!1,ll)),yl=Dl=Ua.position):Ua.position===Ua.lineStart&&ru(Ua)?jl(Ua,"unexpected end of the document within a double quoted scalar"):(Ua.position++,Dl=Ua.position)}jl(Ua,"unexpected end of the stream within a double quoted scalar")}function Ql(Ua,ll){var yl=!0,Dl,kl=Ua.tag,Ga,al=Ua.anchor,El,bl,_l,Ol,Rl,Ul={},Ll,Yl,au,nu;if(nu=Ua.input.charCodeAt(Ua.position),nu===91)bl=93,Rl=!1,Ga=[];else if(nu===123)bl=125,Rl=!0,Ga={};else return!1;for(Ua.anchor!==null&&(Ua.anchorMap[Ua.anchor]=Ga),nu=Ua.input.charCodeAt(++Ua.position);nu!==0;){if(Fl(Ua,!0,ll),nu=Ua.input.charCodeAt(Ua.position),nu===bl)return Ua.position++,Ua.tag=kl,Ua.anchor=al,Ua.kind=Rl?"mapping":"sequence",Ua.result=Ga,!0;yl||jl(Ua,"missed comma between flow collection entries"),Yl=Ll=au=null,_l=Ol=!1,nu===63&&(El=Ua.input.charCodeAt(Ua.position+1),Wa(El)&&(_l=Ol=!0,Ua.position++,Fl(Ua,!0,ll))),Dl=Ua.line,Lu(Ua,ll,ja,!1,!0),Yl=Ua.tag,Ll=Ua.result,Fl(Ua,!0,ll),nu=Ua.input.charCodeAt(Ua.position),(Ol||Ua.line===Dl)&&nu===58&&(_l=!0,nu=Ua.input.charCodeAt(++Ua.position),Fl(Ua,!0,ll),Lu(Ua,ll,ja,!1,!0),au=Ua.result),Rl?Il(Ua,Ga,Ul,Yl,Ll,au):_l?Ga.push(Il(Ua,null,Ul,Yl,Ll,au)):Ga.push(Ll),Fl(Ua,!0,ll),nu=Ua.input.charCodeAt(Ua.position),nu===44?(yl=!0,nu=Ua.input.charCodeAt(++Ua.position)):yl=!1}jl(Ua,"unexpected end of the stream within a flow collection")}function eu(Ua,ll){var yl,Dl,kl=Ia,Ga=!1,al=!1,El=ll,bl=0,_l=!1,Ol,Rl;if(Rl=Ua.input.charCodeAt(Ua.position),Rl===124)Dl=!1;else if(Rl===62)Dl=!0;else return!1;for(Ua.kind="scalar",Ua.result="";Rl!==0;)if(Rl=Ua.input.charCodeAt(++Ua.position),Rl===43||Rl===45)Ia===kl?kl=Rl===43?Ba:Da:jl(Ua,"repeat of a chomping mode identifier");else if((Ol=cl(Rl))>=0)Ol===0?jl(Ua,"bad explicit indentation width of a block scalar; it cannot be less than one"):al?jl(Ua,"repeat of an indentation width identifier"):(El=ll+Ol-1,al=!0);else break;if(Ya(Rl)){do Rl=Ua.input.charCodeAt(++Ua.position);while(Ya(Rl));if(Rl===35)do Rl=Ua.input.charCodeAt(++Ua.position);while(!Va(Rl)&&Rl!==0)}for(;Rl!==0;){for(ql(Ua),Ua.lineIndent=0,Rl=Ua.input.charCodeAt(Ua.position);(!al||Ua.lineIndent<El)&&Rl===32;)Ua.lineIndent++,Rl=Ua.input.charCodeAt(++Ua.position);if(!al&&Ua.lineIndent>El&&(El=Ua.lineIndent),Va(Rl)){bl++;continue}if(Ua.lineIndent<El){kl===Ba?Ua.result+=es.repeat(`
87
- `,Ga?1+bl:bl):kl===Ia&&Ga&&(Ua.result+=`
88
- `);break}for(Dl?Ya(Rl)?(_l=!0,Ua.result+=es.repeat(`
89
- `,Ga?1+bl:bl)):_l?(_l=!1,Ua.result+=es.repeat(`
90
- `,bl+1)):bl===0?Ga&&(Ua.result+=" "):Ua.result+=es.repeat(`
91
- `,bl):Ua.result+=es.repeat(`
92
- `,Ga?1+bl:bl),Ga=!0,al=!0,bl=0,yl=Ua.position;!Va(Rl)&&Rl!==0;)Rl=Ua.input.charCodeAt(++Ua.position);Zl(Ua,yl,Ua.position,!1)}return!0}function xu(Ua,ll){var yl,Dl=Ua.tag,kl=Ua.anchor,Ga=[],al,El=!1,bl;for(Ua.anchor!==null&&(Ua.anchorMap[Ua.anchor]=Ga),bl=Ua.input.charCodeAt(Ua.position);bl!==0&&!(bl!==45||(al=Ua.input.charCodeAt(Ua.position+1),!Wa(al)));){if(El=!0,Ua.position++,Fl(Ua,!0,-1)&&Ua.lineIndent<=ll){Ga.push(null),bl=Ua.input.charCodeAt(Ua.position);continue}if(yl=Ua.line,Lu(Ua,ll,Aa,!1,!0),Ga.push(Ua.result),Fl(Ua,!0,-1),bl=Ua.input.charCodeAt(Ua.position),(Ua.line===yl||Ua.lineIndent>ll)&&bl!==0)jl(Ua,"bad indentation of a sequence entry");else if(Ua.lineIndent<ll)break}return El?(Ua.tag=Dl,Ua.anchor=kl,Ua.kind="sequence",Ua.result=Ga,!0):!1}function fu(Ua,ll,yl){var Dl,kl,Ga,al,El=Ua.tag,bl=Ua.anchor,_l={},Ol={},Rl=null,Ul=null,Ll=null,Yl=!1,au=!1,nu;for(Ua.anchor!==null&&(Ua.anchorMap[Ua.anchor]=_l),nu=Ua.input.charCodeAt(Ua.position);nu!==0;){if(Dl=Ua.input.charCodeAt(Ua.position+1),Ga=Ua.line,al=Ua.position,(nu===63||nu===58)&&Wa(Dl))nu===63?(Yl&&(Il(Ua,_l,Ol,Rl,Ul,null),Rl=Ul=Ll=null),au=!0,Yl=!0,kl=!0):Yl?(Yl=!1,kl=!0):jl(Ua,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),Ua.position+=1,nu=Dl;else if(Lu(Ua,yl,Ca,!1,!0))if(Ua.line===Ga){for(nu=Ua.input.charCodeAt(Ua.position);Ya(nu);)nu=Ua.input.charCodeAt(++Ua.position);if(nu===58)nu=Ua.input.charCodeAt(++Ua.position),Wa(nu)||jl(Ua,"a whitespace character is expected after the key-value separator within a block mapping"),Yl&&(Il(Ua,_l,Ol,Rl,Ul,null),Rl=Ul=Ll=null),au=!0,Yl=!1,kl=!1,Rl=Ua.tag,Ul=Ua.result;else if(au)jl(Ua,"can not read an implicit mapping pair; a colon is missed");else return Ua.tag=El,Ua.anchor=bl,!0}else if(au)jl(Ua,"can not read a block mapping entry; a multiline key may not be an implicit key");else return Ua.tag=El,Ua.anchor=bl,!0;else break;if((Ua.line===Ga||Ua.lineIndent>ll)&&(Lu(Ua,ll,Oa,!0,kl)&&(Yl?Ul=Ua.result:Ll=Ua.result),Yl||(Il(Ua,_l,Ol,Rl,Ul,Ll,Ga,al),Rl=Ul=Ll=null),Fl(Ua,!0,-1),nu=Ua.input.charCodeAt(Ua.position)),Ua.lineIndent>ll&&nu!==0)jl(Ua,"bad indentation of a mapping entry");else if(Ua.lineIndent<ll)break}return Yl&&Il(Ua,_l,Ol,Rl,Ul,null),au&&(Ua.tag=El,Ua.anchor=bl,Ua.kind="mapping",Ua.result=_l),au}function Iu(Ua){var ll,yl=!1,Dl=!1,kl,Ga,al;if(al=Ua.input.charCodeAt(Ua.position),al!==33)return!1;if(Ua.tag!==null&&jl(Ua,"duplication of a tag property"),al=Ua.input.charCodeAt(++Ua.position),al===60?(yl=!0,al=Ua.input.charCodeAt(++Ua.position)):al===33?(Dl=!0,kl="!!",al=Ua.input.charCodeAt(++Ua.position)):kl="!",ll=Ua.position,yl){do al=Ua.input.charCodeAt(++Ua.position);while(al!==0&&al!==62);Ua.position<Ua.length?(Ga=Ua.input.slice(ll,Ua.position),al=Ua.input.charCodeAt(++Ua.position)):jl(Ua,"unexpected end of the stream within a verbatim tag")}else{for(;al!==0&&!Wa(al);)al===33&&(Dl?jl(Ua,"tag suffix cannot contain exclamation marks"):(kl=Ua.input.slice(ll-1,Ua.position+1),Ha.test(kl)||jl(Ua,"named tag handle cannot contain such characters"),Dl=!0,ll=Ua.position+1)),al=Ua.input.charCodeAt(++Ua.position);Ga=Ua.input.slice(ll,Ua.position),qa.test(Ga)&&jl(Ua,"tag suffix cannot contain flow indicator characters")}return Ga&&!Ka.test(Ga)&&jl(Ua,"tag name cannot contain such characters: "+Ga),yl?Ua.tag=Ga:Qr.call(Ua.tagMap,kl)?Ua.tag=Ua.tagMap[kl]+Ga:kl==="!"?Ua.tag="!"+Ga:kl==="!!"?Ua.tag="tag:yaml.org,2002:"+Ga:jl(Ua,'undeclared tag handle "'+kl+'"'),!0}function yu(Ua){var ll,yl;if(yl=Ua.input.charCodeAt(Ua.position),yl!==38)return!1;for(Ua.anchor!==null&&jl(Ua,"duplication of an anchor property"),yl=Ua.input.charCodeAt(++Ua.position),ll=Ua.position;yl!==0&&!Wa(yl)&&!el(yl);)yl=Ua.input.charCodeAt(++Ua.position);return Ua.position===ll&&jl(Ua,"name of an anchor node must contain at least one character"),Ua.anchor=Ua.input.slice(ll,Ua.position),!0}function ic(Ua){var ll,yl,Dl;if(Dl=Ua.input.charCodeAt(Ua.position),Dl!==42)return!1;for(Dl=Ua.input.charCodeAt(++Ua.position),ll=Ua.position;Dl!==0&&!Wa(Dl)&&!el(Dl);)Dl=Ua.input.charCodeAt(++Ua.position);return Ua.position===ll&&jl(Ua,"name of an alias node must contain at least one character"),yl=Ua.input.slice(ll,Ua.position),Qr.call(Ua.anchorMap,yl)||jl(Ua,'unidentified alias "'+yl+'"'),Ua.result=Ua.anchorMap[yl],Fl(Ua,!0,-1),!0}function Lu(Ua,ll,yl,Dl,kl){var Ga,al,El,bl=1,_l=!1,Ol=!1,Rl,Ul,Ll,Yl,au;if(Ua.listener!==null&&Ua.listener("open",Ua),Ua.tag=null,Ua.anchor=null,Ua.kind=null,Ua.result=null,Ga=al=El=Oa===yl||Aa===yl,Dl&&Fl(Ua,!0,-1)&&(_l=!0,Ua.lineIndent>ll?bl=1:Ua.lineIndent===ll?bl=0:Ua.lineIndent<ll&&(bl=-1)),bl===1)for(;Iu(Ua)||yu(Ua);)Fl(Ua,!0,-1)?(_l=!0,El=Ga,Ua.lineIndent>ll?bl=1:Ua.lineIndent===ll?bl=0:Ua.lineIndent<ll&&(bl=-1)):El=!1;if(El&&(El=_l||kl),(bl===1||Oa===yl)&&(ja===yl||Ca===yl?Yl=ll:Yl=ll+1,au=Ua.position-Ua.lineStart,bl===1?El&&(xu(Ua,au)||fu(Ua,au,Yl))||Ql(Ua,Yl)?Ol=!0:(al&&eu(Ua,Yl)||Al(Ua,Yl)||Ml(Ua,Yl)?Ol=!0:ic(Ua)?(Ol=!0,(Ua.tag!==null||Ua.anchor!==null)&&jl(Ua,"alias node should not have any properties")):cu(Ua,Yl,ja===yl)&&(Ol=!0,Ua.tag===null&&(Ua.tag="?")),Ua.anchor!==null&&(Ua.anchorMap[Ua.anchor]=Ua.result)):bl===0&&(Ol=El&&xu(Ua,au))),Ua.tag!==null&&Ua.tag!=="!")if(Ua.tag==="?"){for(Ua.result!==null&&Ua.kind!=="scalar"&&jl(Ua,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+Ua.kind+'"'),Rl=0,Ul=Ua.implicitTypes.length;Rl<Ul;Rl+=1)if(Ll=Ua.implicitTypes[Rl],Ll.resolve(Ua.result)){Ua.result=Ll.construct(Ua.result),Ua.tag=Ll.tag,Ua.anchor!==null&&(Ua.anchorMap[Ua.anchor]=Ua.result);break}}else Qr.call(Ua.typeMap[Ua.kind||"fallback"],Ua.tag)?(Ll=Ua.typeMap[Ua.kind||"fallback"][Ua.tag],Ua.result!==null&&Ll.kind!==Ua.kind&&jl(Ua,"unacceptable node kind for !<"+Ua.tag+'> tag; it should be "'+Ll.kind+'", not "'+Ua.kind+'"'),Ll.resolve(Ua.result)?(Ua.result=Ll.construct(Ua.result),Ua.anchor!==null&&(Ua.anchorMap[Ua.anchor]=Ua.result)):jl(Ua,"cannot resolve a node with !<"+Ua.tag+"> explicit tag")):jl(Ua,"unknown tag !<"+Ua.tag+">");return Ua.listener!==null&&Ua.listener("close",Ua),Ua.tag!==null||Ua.anchor!==null||Ol}function Bl(Ua){var ll=Ua.position,yl,Dl,kl,Ga=!1,al;for(Ua.version=null,Ua.checkLineBreaks=Ua.legacy,Ua.tagMap={},Ua.anchorMap={};(al=Ua.input.charCodeAt(Ua.position))!==0&&(Fl(Ua,!0,-1),al=Ua.input.charCodeAt(Ua.position),!(Ua.lineIndent>0||al!==37));){for(Ga=!0,al=Ua.input.charCodeAt(++Ua.position),yl=Ua.position;al!==0&&!Wa(al);)al=Ua.input.charCodeAt(++Ua.position);for(Dl=Ua.input.slice(yl,Ua.position),kl=[],Dl.length<1&&jl(Ua,"directive name must not be less than one character in length");al!==0;){for(;Ya(al);)al=Ua.input.charCodeAt(++Ua.position);if(al===35){do al=Ua.input.charCodeAt(++Ua.position);while(al!==0&&!Va(al));break}if(Va(al))break;for(yl=Ua.position;al!==0&&!Wa(al);)al=Ua.input.charCodeAt(++Ua.position);kl.push(Ua.input.slice(yl,Ua.position))}al!==0&&ql(Ua),Qr.call(zl,Dl)?zl[Dl](Ua,Dl,kl):Nl(Ua,'unknown document directive "'+Dl+'"')}if(Fl(Ua,!0,-1),Ua.lineIndent===0&&Ua.input.charCodeAt(Ua.position)===45&&Ua.input.charCodeAt(Ua.position+1)===45&&Ua.input.charCodeAt(Ua.position+2)===45?(Ua.position+=3,Fl(Ua,!0,-1)):Ga&&jl(Ua,"directives end mark is expected"),Lu(Ua,Ua.lineIndent-1,Oa,!1,!0),Fl(Ua,!0,-1),Ua.checkLineBreaks&&Fa.test(Ua.input.slice(ll,Ua.position))&&Nl(Ua,"non-ASCII line breaks are interpreted as content"),Ua.documents.push(Ua.result),Ua.position===Ua.lineStart&&ru(Ua)){Ua.input.charCodeAt(Ua.position)===46&&(Ua.position+=3,Fl(Ua,!0,-1));return}if(Ua.position<Ua.length-1)jl(Ua,"end of the stream or a document separator is expected");else return}function su(Ua,ll){Ua=String(Ua),ll=ll||{},Ua.length!==0&&(Ua.charCodeAt(Ua.length-1)!==10&&Ua.charCodeAt(Ua.length-1)!==13&&(Ua+=`
93
- `),Ua.charCodeAt(0)===65279&&(Ua=Ua.slice(1)));var yl=new ul(Ua,ll),Dl=Ua.indexOf("\0");for(Dl!==-1&&(yl.position=Dl,jl(yl,"null byte is not allowed in input")),yl.input+="\0";yl.input.charCodeAt(yl.position)===32;)yl.lineIndent+=1,yl.position+=1;for(;yl.position<yl.length-1;)Bl(yl);return yl.documents}function Eu(Ua,ll,yl){ll!==null&&typeof ll=="object"&&typeof yl>"u"&&(yl=ll,ll=null);var Dl=su(Ua,yl);if(typeof ll!="function")return Dl;for(var kl=0,Ga=Dl.length;kl<Ga;kl+=1)ll(Dl[kl])}function lc(Ua,ll){var yl=su(Ua,ll);if(yl.length!==0){if(yl.length===1)return yl[0];throw new $("expected a single document in the stream, but found more")}}function ku(Ua,ll,yl){return typeof ll=="object"&&ll!==null&&typeof yl>"u"&&(yl=ll,ll=null),Eu(Ua,ll,es.extend({schema:is},yl))}function bu(Ua,ll){return lc(Ua,es.extend({schema:is},ll))}return loader.loadAll=Eu,loader.load=lc,loader.safeLoadAll=ku,loader.safeLoad=bu,loader}var dumper={},hasRequiredDumper;function requireDumper(){if(hasRequiredDumper)return dumper;hasRequiredDumper=1;var es=requireCommon(),$=requireException(),ts=requireDefault_full(),is=requireDefault_safe(),Kr=Object.prototype.toString,Qr=Object.prototype.hasOwnProperty,ja=9,Ca=10,Aa=13,Oa=32,Ia=33,Da=34,Ba=35,Ma=37,Fa=38,qa=39,Ha=42,Ka=44,Qa=45,Va=58,Ya=61,Wa=62,el=63,tl=64,rl=91,cl=93,dl=96,fl=123,nl=124,ol=125,pl={};pl[0]="\\0",pl[7]="\\a",pl[8]="\\b",pl[9]="\\t",pl[10]="\\n",pl[11]="\\v",pl[12]="\\f",pl[13]="\\r",pl[27]="\\e",pl[34]='\\"',pl[92]="\\\\",pl[133]="\\N",pl[160]="\\_",pl[8232]="\\L",pl[8233]="\\P";var Tl=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ul(Ga,al){var El,bl,_l,Ol,Rl,Ul,Ll;if(al===null)return{};for(El={},bl=Object.keys(al),_l=0,Ol=bl.length;_l<Ol;_l+=1)Rl=bl[_l],Ul=String(al[Rl]),Rl.slice(0,2)==="!!"&&(Rl="tag:yaml.org,2002:"+Rl.slice(2)),Ll=Ga.compiledTypeMap.fallback[Rl],Ll&&Qr.call(Ll.styleAliases,Ul)&&(Ul=Ll.styleAliases[Ul]),El[Rl]=Ul;return El}function hl(Ga){var al,El,bl;if(al=Ga.toString(16).toUpperCase(),Ga<=255)El="x",bl=2;else if(Ga<=65535)El="u",bl=4;else if(Ga<=4294967295)El="U",bl=8;else throw new $("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+El+es.repeat("0",bl-al.length)+al}function jl(Ga){this.schema=Ga.schema||ts,this.indent=Math.max(1,Ga.indent||2),this.noArrayIndent=Ga.noArrayIndent||!1,this.skipInvalid=Ga.skipInvalid||!1,this.flowLevel=es.isNothing(Ga.flowLevel)?-1:Ga.flowLevel,this.styleMap=ul(this.schema,Ga.styles||null),this.sortKeys=Ga.sortKeys||!1,this.lineWidth=Ga.lineWidth||80,this.noRefs=Ga.noRefs||!1,this.noCompatMode=Ga.noCompatMode||!1,this.condenseFlow=Ga.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function Nl(Ga,al){for(var El=es.repeat(" ",al),bl=0,_l=-1,Ol="",Rl,Ul=Ga.length;bl<Ul;)_l=Ga.indexOf(`
94
- `,bl),_l===-1?(Rl=Ga.slice(bl),bl=Ul):(Rl=Ga.slice(bl,_l+1),bl=_l+1),Rl.length&&Rl!==`
95
- `&&(Ol+=El),Ol+=Rl;return Ol}function zl(Ga,al){return`
96
- `+es.repeat(" ",Ga.indent*al)}function Zl(Ga,al){var El,bl,_l;for(El=0,bl=Ga.implicitTypes.length;El<bl;El+=1)if(_l=Ga.implicitTypes[El],_l.resolve(al))return!0;return!1}function $l(Ga){return Ga===Oa||Ga===ja}function Il(Ga){return 32<=Ga&&Ga<=126||161<=Ga&&Ga<=55295&&Ga!==8232&&Ga!==8233||57344<=Ga&&Ga<=65533&&Ga!==65279||65536<=Ga&&Ga<=1114111}function ql(Ga){return Il(Ga)&&!$l(Ga)&&Ga!==65279&&Ga!==Aa&&Ga!==Ca}function Fl(Ga,al){return Il(Ga)&&Ga!==65279&&Ga!==Ka&&Ga!==rl&&Ga!==cl&&Ga!==fl&&Ga!==ol&&Ga!==Va&&(Ga!==Ba||al&&ql(al))}function ru(Ga){return Il(Ga)&&Ga!==65279&&!$l(Ga)&&Ga!==Qa&&Ga!==el&&Ga!==Va&&Ga!==Ka&&Ga!==rl&&Ga!==cl&&Ga!==fl&&Ga!==ol&&Ga!==Ba&&Ga!==Fa&&Ga!==Ha&&Ga!==Ia&&Ga!==nl&&Ga!==Ya&&Ga!==Wa&&Ga!==qa&&Ga!==Da&&Ga!==Ma&&Ga!==tl&&Ga!==dl}function Gl(Ga){var al=/^\n* /;return al.test(Ga)}var cu=1,Al=2,Ml=3,Ql=4,eu=5;function xu(Ga,al,El,bl,_l){var Ol,Rl,Ul,Ll=!1,Yl=!1,au=bl!==-1,nu=-1,Du=ru(Ga.charCodeAt(0))&&!$l(Ga.charCodeAt(Ga.length-1));if(al)for(Ol=0;Ol<Ga.length;Ol++){if(Rl=Ga.charCodeAt(Ol),!Il(Rl))return eu;Ul=Ol>0?Ga.charCodeAt(Ol-1):null,Du=Du&&Fl(Rl,Ul)}else{for(Ol=0;Ol<Ga.length;Ol++){if(Rl=Ga.charCodeAt(Ol),Rl===Ca)Ll=!0,au&&(Yl=Yl||Ol-nu-1>bl&&Ga[nu+1]!==" ",nu=Ol);else if(!Il(Rl))return eu;Ul=Ol>0?Ga.charCodeAt(Ol-1):null,Du=Du&&Fl(Rl,Ul)}Yl=Yl||au&&Ol-nu-1>bl&&Ga[nu+1]!==" "}return!Ll&&!Yl?Du&&!_l(Ga)?cu:Al:El>9&&Gl(Ga)?eu:Yl?Ql:Ml}function fu(Ga,al,El,bl){Ga.dump=(function(){if(al.length===0)return"''";if(!Ga.noCompatMode&&Tl.indexOf(al)!==-1)return"'"+al+"'";var _l=Ga.indent*Math.max(1,El),Ol=Ga.lineWidth===-1?-1:Math.max(Math.min(Ga.lineWidth,40),Ga.lineWidth-_l),Rl=bl||Ga.flowLevel>-1&&El>=Ga.flowLevel;function Ul(Ll){return Zl(Ga,Ll)}switch(xu(al,Rl,Ga.indent,Ol,Ul)){case cu:return al;case Al:return"'"+al.replace(/'/g,"''")+"'";case Ml:return"|"+Iu(al,Ga.indent)+yu(Nl(al,_l));case Ql:return">"+Iu(al,Ga.indent)+yu(Nl(ic(al,Ol),_l));case eu:return'"'+Bl(al)+'"';default:throw new $("impossible error: invalid scalar style")}})()}function Iu(Ga,al){var El=Gl(Ga)?String(al):"",bl=Ga[Ga.length-1]===`
97
- `,_l=bl&&(Ga[Ga.length-2]===`
98
- `||Ga===`
99
- `),Ol=_l?"+":bl?"":"-";return El+Ol+`
100
- `}function yu(Ga){return Ga[Ga.length-1]===`
101
- `?Ga.slice(0,-1):Ga}function ic(Ga,al){for(var El=/(\n+)([^\n]*)/g,bl=(function(){var Yl=Ga.indexOf(`
102
- `);return Yl=Yl!==-1?Yl:Ga.length,El.lastIndex=Yl,Lu(Ga.slice(0,Yl),al)})(),_l=Ga[0]===`
103
- `||Ga[0]===" ",Ol,Rl;Rl=El.exec(Ga);){var Ul=Rl[1],Ll=Rl[2];Ol=Ll[0]===" ",bl+=Ul+(!_l&&!Ol&&Ll!==""?`
104
- `:"")+Lu(Ll,al),_l=Ol}return bl}function Lu(Ga,al){if(Ga===""||Ga[0]===" ")return Ga;for(var El=/ [^ ]/g,bl,_l=0,Ol,Rl=0,Ul=0,Ll="";bl=El.exec(Ga);)Ul=bl.index,Ul-_l>al&&(Ol=Rl>_l?Rl:Ul,Ll+=`
105
- `+Ga.slice(_l,Ol),_l=Ol+1),Rl=Ul;return Ll+=`
106
- `,Ga.length-_l>al&&Rl>_l?Ll+=Ga.slice(_l,Rl)+`
107
- `+Ga.slice(Rl+1):Ll+=Ga.slice(_l),Ll.slice(1)}function Bl(Ga){for(var al="",El,bl,_l,Ol=0;Ol<Ga.length;Ol++){if(El=Ga.charCodeAt(Ol),El>=55296&&El<=56319&&(bl=Ga.charCodeAt(Ol+1),bl>=56320&&bl<=57343)){al+=hl((El-55296)*1024+bl-56320+65536),Ol++;continue}_l=pl[El],al+=!_l&&Il(El)?Ga[Ol]:_l||hl(El)}return al}function su(Ga,al,El){var bl="",_l=Ga.tag,Ol,Rl;for(Ol=0,Rl=El.length;Ol<Rl;Ol+=1)Ua(Ga,al,El[Ol],!1,!1)&&(Ol!==0&&(bl+=","+(Ga.condenseFlow?"":" ")),bl+=Ga.dump);Ga.tag=_l,Ga.dump="["+bl+"]"}function Eu(Ga,al,El,bl){var _l="",Ol=Ga.tag,Rl,Ul;for(Rl=0,Ul=El.length;Rl<Ul;Rl+=1)Ua(Ga,al+1,El[Rl],!0,!0)&&((!bl||Rl!==0)&&(_l+=zl(Ga,al)),Ga.dump&&Ca===Ga.dump.charCodeAt(0)?_l+="-":_l+="- ",_l+=Ga.dump);Ga.tag=Ol,Ga.dump=_l||"[]"}function lc(Ga,al,El){var bl="",_l=Ga.tag,Ol=Object.keys(El),Rl,Ul,Ll,Yl,au;for(Rl=0,Ul=Ol.length;Rl<Ul;Rl+=1)au="",Rl!==0&&(au+=", "),Ga.condenseFlow&&(au+='"'),Ll=Ol[Rl],Yl=El[Ll],Ua(Ga,al,Ll,!1,!1)&&(Ga.dump.length>1024&&(au+="? "),au+=Ga.dump+(Ga.condenseFlow?'"':"")+":"+(Ga.condenseFlow?"":" "),Ua(Ga,al,Yl,!1,!1)&&(au+=Ga.dump,bl+=au));Ga.tag=_l,Ga.dump="{"+bl+"}"}function ku(Ga,al,El,bl){var _l="",Ol=Ga.tag,Rl=Object.keys(El),Ul,Ll,Yl,au,nu,Du;if(Ga.sortKeys===!0)Rl.sort();else if(typeof Ga.sortKeys=="function")Rl.sort(Ga.sortKeys);else if(Ga.sortKeys)throw new $("sortKeys must be a boolean or a function");for(Ul=0,Ll=Rl.length;Ul<Ll;Ul+=1)Du="",(!bl||Ul!==0)&&(Du+=zl(Ga,al)),Yl=Rl[Ul],au=El[Yl],Ua(Ga,al+1,Yl,!0,!0,!0)&&(nu=Ga.tag!==null&&Ga.tag!=="?"||Ga.dump&&Ga.dump.length>1024,nu&&(Ga.dump&&Ca===Ga.dump.charCodeAt(0)?Du+="?":Du+="? "),Du+=Ga.dump,nu&&(Du+=zl(Ga,al)),Ua(Ga,al+1,au,!0,nu)&&(Ga.dump&&Ca===Ga.dump.charCodeAt(0)?Du+=":":Du+=": ",Du+=Ga.dump,_l+=Du));Ga.tag=Ol,Ga.dump=_l||"{}"}function bu(Ga,al,El){var bl,_l,Ol,Rl,Ul,Ll;for(_l=El?Ga.explicitTypes:Ga.implicitTypes,Ol=0,Rl=_l.length;Ol<Rl;Ol+=1)if(Ul=_l[Ol],(Ul.instanceOf||Ul.predicate)&&(!Ul.instanceOf||typeof al=="object"&&al instanceof Ul.instanceOf)&&(!Ul.predicate||Ul.predicate(al))){if(Ga.tag=El?Ul.tag:"?",Ul.represent){if(Ll=Ga.styleMap[Ul.tag]||Ul.defaultStyle,Kr.call(Ul.represent)==="[object Function]")bl=Ul.represent(al,Ll);else if(Qr.call(Ul.represent,Ll))bl=Ul.represent[Ll](al,Ll);else throw new $("!<"+Ul.tag+'> tag resolver accepts not "'+Ll+'" style');Ga.dump=bl}return!0}return!1}function Ua(Ga,al,El,bl,_l,Ol){Ga.tag=null,Ga.dump=El,bu(Ga,El,!1)||bu(Ga,El,!0);var Rl=Kr.call(Ga.dump);bl&&(bl=Ga.flowLevel<0||Ga.flowLevel>al);var Ul=Rl==="[object Object]"||Rl==="[object Array]",Ll,Yl;if(Ul&&(Ll=Ga.duplicates.indexOf(El),Yl=Ll!==-1),(Ga.tag!==null&&Ga.tag!=="?"||Yl||Ga.indent!==2&&al>0)&&(_l=!1),Yl&&Ga.usedDuplicates[Ll])Ga.dump="*ref_"+Ll;else{if(Ul&&Yl&&!Ga.usedDuplicates[Ll]&&(Ga.usedDuplicates[Ll]=!0),Rl==="[object Object]")bl&&Object.keys(Ga.dump).length!==0?(ku(Ga,al,Ga.dump,_l),Yl&&(Ga.dump="&ref_"+Ll+Ga.dump)):(lc(Ga,al,Ga.dump),Yl&&(Ga.dump="&ref_"+Ll+" "+Ga.dump));else if(Rl==="[object Array]"){var au=Ga.noArrayIndent&&al>0?al-1:al;bl&&Ga.dump.length!==0?(Eu(Ga,au,Ga.dump,_l),Yl&&(Ga.dump="&ref_"+Ll+Ga.dump)):(su(Ga,au,Ga.dump),Yl&&(Ga.dump="&ref_"+Ll+" "+Ga.dump))}else if(Rl==="[object String]")Ga.tag!=="?"&&fu(Ga,Ga.dump,al,Ol);else{if(Ga.skipInvalid)return!1;throw new $("unacceptable kind of an object to dump "+Rl)}Ga.tag!==null&&Ga.tag!=="?"&&(Ga.dump="!<"+Ga.tag+"> "+Ga.dump)}return!0}function ll(Ga,al){var El=[],bl=[],_l,Ol;for(yl(Ga,El,bl),_l=0,Ol=bl.length;_l<Ol;_l+=1)al.duplicates.push(El[bl[_l]]);al.usedDuplicates=new Array(Ol)}function yl(Ga,al,El){var bl,_l,Ol;if(Ga!==null&&typeof Ga=="object")if(_l=al.indexOf(Ga),_l!==-1)El.indexOf(_l)===-1&&El.push(_l);else if(al.push(Ga),Array.isArray(Ga))for(_l=0,Ol=Ga.length;_l<Ol;_l+=1)yl(Ga[_l],al,El);else for(bl=Object.keys(Ga),_l=0,Ol=bl.length;_l<Ol;_l+=1)yl(Ga[bl[_l]],al,El)}function Dl(Ga,al){al=al||{};var El=new jl(al);return El.noRefs||ll(Ga,El),Ua(El,0,Ga,!0,!0)?El.dump+`
108
- `:""}function kl(Ga,al){return Dl(Ga,es.extend({schema:is},al))}return dumper.dump=Dl,dumper.safeDump=kl,dumper}var hasRequiredJsYaml$1;function requireJsYaml$1(){if(hasRequiredJsYaml$1)return jsYaml$1;hasRequiredJsYaml$1=1;var es=requireLoader(),$=requireDumper();function ts(is){return function(){throw new Error("Function "+is+" is deprecated and cannot be used.")}}return jsYaml$1.Type=requireType(),jsYaml$1.Schema=requireSchema(),jsYaml$1.FAILSAFE_SCHEMA=requireFailsafe(),jsYaml$1.JSON_SCHEMA=requireJson(),jsYaml$1.CORE_SCHEMA=requireCore(),jsYaml$1.DEFAULT_SAFE_SCHEMA=requireDefault_safe(),jsYaml$1.DEFAULT_FULL_SCHEMA=requireDefault_full(),jsYaml$1.load=es.load,jsYaml$1.loadAll=es.loadAll,jsYaml$1.safeLoad=es.safeLoad,jsYaml$1.safeLoadAll=es.safeLoadAll,jsYaml$1.dump=$.dump,jsYaml$1.safeDump=$.safeDump,jsYaml$1.YAMLException=requireException(),jsYaml$1.MINIMAL_SCHEMA=requireFailsafe(),jsYaml$1.SAFE_SCHEMA=requireDefault_safe(),jsYaml$1.DEFAULT_SCHEMA=requireDefault_full(),jsYaml$1.scan=ts("scan"),jsYaml$1.parse=ts("parse"),jsYaml$1.compose=ts("compose"),jsYaml$1.addConstructor=ts("addConstructor"),jsYaml$1}var jsYaml,hasRequiredJsYaml;function requireJsYaml(){if(hasRequiredJsYaml)return jsYaml;hasRequiredJsYaml=1;var es=requireJsYaml$1();return jsYaml=es,jsYaml}var hasRequiredEngines;function requireEngines(){return hasRequiredEngines||(hasRequiredEngines=1,(function(module,exports$1){const yaml=requireJsYaml(),engines=module.exports;engines.yaml={parse:yaml.safeLoad.bind(yaml),stringify:yaml.safeDump.bind(yaml)},engines.json={parse:JSON.parse.bind(JSON),stringify:function(es,$){const ts=Object.assign({replacer:null,space:2},$);return JSON.stringify(es,ts.replacer,ts.space)}},engines.javascript={parse:function parse(str,options,wrap){try{return wrap!==!1&&(str=`(function() {
109
- return `+str.trim()+`;
110
- }());`),eval(str)||{}}catch(es){if(wrap!==!1&&/(unexpected|identifier)/i.test(es.message))return parse(str,options,!1);throw new SyntaxError(es)}},stringify:function(){throw new Error("stringifying JavaScript is not supported")}}})(engines)),engines.exports}var utils={};/*!
111
- * strip-bom-string <https://github.com/jonschlinkert/strip-bom-string>
112
- *
113
- * Copyright (c) 2015, 2017, Jon Schlinkert.
114
- * Released under the MIT License.
115
- */var stripBomString,hasRequiredStripBomString;function requireStripBomString(){return hasRequiredStripBomString||(hasRequiredStripBomString=1,stripBomString=function(es){return typeof es=="string"&&es.charAt(0)==="\uFEFF"?es.slice(1):es}),stripBomString}var hasRequiredUtils;function requireUtils(){return hasRequiredUtils||(hasRequiredUtils=1,(function(es){const $=requireStripBomString(),ts=requireKindOf();es.define=function(is,Kr,Qr){Reflect.defineProperty(is,Kr,{enumerable:!1,configurable:!0,writable:!0,value:Qr})},es.isBuffer=function(is){return ts(is)==="buffer"},es.isObject=function(is){return ts(is)==="object"},es.toBuffer=function(is){return typeof is=="string"?Buffer.from(is):is},es.toString=function(is){if(es.isBuffer(is))return $(String(is));if(typeof is!="string")throw new TypeError("expected input to be a string or buffer");return $(is)},es.arrayify=function(is){return is?Array.isArray(is)?is:[is]:[]},es.startsWith=function(is,Kr,Qr){return typeof Qr!="number"&&(Qr=Kr.length),is.slice(0,Qr)===Kr}})(utils)),utils}var defaults,hasRequiredDefaults;function requireDefaults(){if(hasRequiredDefaults)return defaults;hasRequiredDefaults=1;const es=requireEngines(),$=requireUtils();return defaults=function(ts){const is=Object.assign({},ts);return is.delimiters=$.arrayify(is.delims||is.delimiters||"---"),is.delimiters.length===1&&is.delimiters.push(is.delimiters[0]),is.language=(is.language||is.lang||"yaml").toLowerCase(),is.engines=Object.assign({},es,is.parsers,is.engines),is},defaults}var engine,hasRequiredEngine;function requireEngine(){if(hasRequiredEngine)return engine;hasRequiredEngine=1,engine=function($,ts){let is=ts.engines[$]||ts.engines[es($)];if(typeof is>"u")throw new Error('gray-matter engine "'+$+'" is not registered');return typeof is=="function"&&(is={parse:is}),is};function es($){switch($.toLowerCase()){case"js":case"javascript":return"javascript";case"coffee":case"coffeescript":case"cson":return"coffee";case"yaml":case"yml":return"yaml";default:return $}}return engine}var stringify,hasRequiredStringify;function requireStringify(){if(hasRequiredStringify)return stringify;hasRequiredStringify=1;const es=requireKindOf(),$=requireEngine(),ts=requireDefaults();stringify=function(Kr,Qr,ja){if(Qr==null&&ja==null)switch(es(Kr)){case"object":Qr=Kr.data,ja={};break;case"string":return Kr;default:throw new TypeError("expected file to be a string or object")}const Ca=Kr.content,Aa=ts(ja);if(Qr==null){if(!Aa.data)return Kr;Qr=Aa.data}const Oa=Kr.language||Aa.language,Ia=$(Oa,Aa);if(typeof Ia.stringify!="function")throw new TypeError('expected "'+Oa+'.stringify" to be a function');Qr=Object.assign({},Kr.data,Qr);const Da=Aa.delimiters[0],Ba=Aa.delimiters[1],Ma=Ia.stringify(Qr,ja).trim();let Fa="";return Ma!=="{}"&&(Fa=is(Da)+is(Ma)+is(Ba)),typeof Kr.excerpt=="string"&&Kr.excerpt!==""&&Ca.indexOf(Kr.excerpt.trim())===-1&&(Fa+=is(Kr.excerpt)+is(Ba)),Fa+is(Ca)};function is(Kr){return Kr.slice(-1)!==`
116
- `?Kr+`
117
- `:Kr}return stringify}var excerpt,hasRequiredExcerpt;function requireExcerpt(){if(hasRequiredExcerpt)return excerpt;hasRequiredExcerpt=1;const es=requireDefaults();return excerpt=function($,ts){const is=es(ts);if($.data==null&&($.data={}),typeof is.excerpt=="function")return is.excerpt($,is);const Kr=$.data.excerpt_separator||is.excerpt_separator;if(Kr==null&&(is.excerpt===!1||is.excerpt==null))return $;const Qr=typeof is.excerpt=="string"?is.excerpt:Kr||is.delimiters[0],ja=$.content.indexOf(Qr);return ja!==-1&&($.excerpt=$.content.slice(0,ja)),$},excerpt}var toFile,hasRequiredToFile;function requireToFile(){if(hasRequiredToFile)return toFile;hasRequiredToFile=1;const es=requireKindOf(),$=requireStringify(),ts=requireUtils();return toFile=function(is){return es(is)!=="object"&&(is={content:is}),es(is.data)!=="object"&&(is.data={}),is.contents&&is.content==null&&(is.content=is.contents),ts.define(is,"orig",ts.toBuffer(is.content)),ts.define(is,"language",is.language||""),ts.define(is,"matter",is.matter||""),ts.define(is,"stringify",function(Kr,Qr){return Qr&&Qr.language&&(is.language=Qr.language),$(is,Kr,Qr)}),is.content=ts.toString(is.content),is.isEmpty=!1,is.excerpt="",is},toFile}var parse,hasRequiredParse;function requireParse(){if(hasRequiredParse)return parse;hasRequiredParse=1;const es=requireEngine(),$=requireDefaults();return parse=function(ts,is,Kr){const Qr=$(Kr),ja=es(ts,Qr);if(typeof ja.parse!="function")throw new TypeError('expected "'+ts+'.parse" to be a function');return ja.parse(is,Qr)},parse}var grayMatter,hasRequiredGrayMatter;function requireGrayMatter(){if(hasRequiredGrayMatter)return grayMatter;hasRequiredGrayMatter=1;const es=require$$0,$=requireSectionMatter(),ts=requireDefaults(),is=requireStringify(),Kr=requireExcerpt(),Qr=requireEngines(),ja=requireToFile(),Ca=requireParse(),Aa=requireUtils();function Oa(Da,Ba){if(Da==="")return{data:{},content:Da,excerpt:"",orig:Da};let Ma=ja(Da);const Fa=Oa.cache[Ma.content];if(!Ba){if(Fa)return Ma=Object.assign({},Fa),Ma.orig=Fa.orig,Ma;Oa.cache[Ma.content]=Ma}return Ia(Ma,Ba)}function Ia(Da,Ba){const Ma=ts(Ba),Fa=Ma.delimiters[0],qa=`
118
- `+Ma.delimiters[1];let Ha=Da.content;Ma.language&&(Da.language=Ma.language);const Ka=Fa.length;if(!Aa.startsWith(Ha,Fa,Ka))return Kr(Da,Ma),Da;if(Ha.charAt(Ka)===Fa.slice(-1))return Da;Ha=Ha.slice(Ka);const Qa=Ha.length,Va=Oa.language(Ha,Ma);Va.name&&(Da.language=Va.name,Ha=Ha.slice(Va.raw.length));let Ya=Ha.indexOf(qa);return Ya===-1&&(Ya=Qa),Da.matter=Ha.slice(0,Ya),Da.matter.replace(/^\s*#[^\n]+/gm,"").trim()===""?(Da.isEmpty=!0,Da.empty=Da.content,Da.data={}):Da.data=Ca(Da.language,Da.matter,Ma),Ya===Qa?Da.content="":(Da.content=Ha.slice(Ya+qa.length),Da.content[0]==="\r"&&(Da.content=Da.content.slice(1)),Da.content[0]===`
119
- `&&(Da.content=Da.content.slice(1))),Kr(Da,Ma),(Ma.sections===!0||typeof Ma.section=="function")&&$(Da,Ma.section),Da}return Oa.engines=Qr,Oa.stringify=function(Da,Ba,Ma){return typeof Da=="string"&&(Da=Oa(Da,Ma)),is(Da,Ba,Ma)},Oa.read=function(Da,Ba){const Ma=es.readFileSync(Da,"utf8"),Fa=Oa(Ma,Ba);return Fa.path=Da,Fa},Oa.test=function(Da,Ba){return Aa.startsWith(Da,ts(Ba).delimiters[0])},Oa.language=function(Da,Ba){const Fa=ts(Ba).delimiters[0];Oa.test(Da)&&(Da=Da.slice(Fa.length));const qa=Da.slice(0,Da.search(/\r?\n/));return{raw:qa,name:qa?qa.trim():""}},Oa.cache={},Oa.clearCache=function(){Oa.cache={}},grayMatter=Oa,grayMatter}requireGrayMatter();objectType({type:enumType(["instruction","prompt"])});function readStampedSource(es){if(!es||typeof es!="object")return null;const $=es.source;return $==="insights"||$==="evolution"?$:null}function classifyProvenance(es,$){const ts=es.source==="insights"||es.source==="evolution"?es.source:readStampedSource(es.frontmatter);return ts||(es.createdBy&&es.createdBy===$?"user":"catalog")}function isGenerated(es){return es==="insights"||es==="evolution"}function provenanceLabel(es){return es==="insights"?"from insights":es==="evolution"?"from evolution":null}const PROVENANCE_TOOLTIP="Proposed by a background generator, not written by you. It is not injected into sessions until you accept it.";function parseApiError(es,$){const ts=`HTTP ${es}`;if(!$||typeof $!="object")return{message:ts};const is=$,Kr=typeof is.error=="string"&&is.error?is.error:is.error?JSON.stringify(is.error):ts,Qr=typeof is.code=="string"&&is.code?is.code:void 0;return Qr?{message:Kr,code:Qr}:{message:Kr}}class ApiError extends Error{constructor($,ts,is){super(ts),this.statusCode=$,this.code=is,this.name="ApiError"}}const DEFAULT_TIMEOUT_MS=2e4;function getBaseUrl(){return""}async function api(es,$={}){const is=`${getBaseUrl()}${es}`,Kr={"Content-Type":"application/json",...$.headers};let Qr=getCachedAccessToken();if(!Qr){const{data:{session:Ba}}=await withAuthContext(`for ${$.method??"GET"} ${es}`,()=>supabase.auth.getSession());Qr=(Ba==null?void 0:Ba.access_token)??null}Qr&&(Kr.Authorization=`Bearer ${Qr}`);const ja=$.timeoutMs??DEFAULT_TIMEOUT_MS,Ca=ja>0?new AbortController:null,Aa=Ca!=null?setTimeout(()=>Ca.abort(),ja):null;let Oa;try{Oa=await fetch(is,{method:$.method??"GET",headers:Kr,body:$.body?JSON.stringify($.body):void 0,signal:Ca==null?void 0:Ca.signal})}catch(Ba){throw Ca!=null&&Ca.signal.aborted?new ApiError(0,`Request timed out after ${ja}ms: ${$.method??"GET"} ${es}`,"TIMEOUT"):Ba}finally{Aa!=null&&clearTimeout(Aa)}if(Oa.status===401)throw await supabase.auth.signOut(),new ApiError(401,"Session expired");let Ia;const Da=Oa.headers.get("content-type");if(Da!=null&&Da.includes("application/json")?Ia=await Oa.json():Ia=await Oa.text(),!Oa.ok){const{message:Ba,code:Ma}=parseApiError(Oa.status,Ia);throw new ApiError(Oa.status,Ba,Ma)}return Ia}const apiGet=es=>api(es),apiPost=(es,$)=>api(es,{method:"POST",body:$}),apiPut=(es,$)=>api(es,{method:"PUT",body:$}),apiPatch=(es,$)=>api(es,{method:"PATCH",body:$}),apiDelete=es=>api(es,{method:"DELETE"});function getOrgs(){return apiGet("/api/orgs")}function getOrg(es){return apiGet(`/api/orgs/${encodeURIComponent(es)}`)}function getProfile(){return apiGet("/api/profile")}async function setActiveOrg(es){return await apiPatch("/api/profile",{activeOrgId:es}),getProfile()}function createOrg(es){return apiPost("/api/orgs",es)}function updateOrg(es,$){return apiPatch(`/api/orgs/${encodeURIComponent(es)}`,$)}function listMembers(es){return apiGet(`/api/orgs/${encodeURIComponent(es)}/members`)}function updateMemberRole(es,$,ts){return apiPatch(`/api/orgs/${encodeURIComponent(es)}/members/${encodeURIComponent($)}`,{role:ts})}function removeMember(es,$){return apiDelete(`/api/orgs/${encodeURIComponent(es)}/members/${encodeURIComponent($)}`)}function transferOwnership(es,$){return apiPost(`/api/orgs/${encodeURIComponent(es)}/transfer`,{newOwnerId:$})}function listTeams(es){return apiGet(`/api/orgs/${encodeURIComponent(es)}/teams`)}function createTeam(es,$){return apiPost(`/api/orgs/${encodeURIComponent(es)}/teams`,$)}function updateTeam(es,$,ts){return apiPatch(`/api/orgs/${encodeURIComponent(es)}/teams/${encodeURIComponent($)}`,ts)}function deleteTeam(es,$){return apiDelete(`/api/orgs/${encodeURIComponent(es)}/teams/${encodeURIComponent($)}`)}function addTeamMember(es,$,ts){return apiPost(`/api/orgs/${encodeURIComponent(es)}/teams/${encodeURIComponent($)}/members`,{userId:ts})}function removeTeamMember(es,$,ts){return apiDelete(`/api/orgs/${encodeURIComponent(es)}/teams/${encodeURIComponent($)}/members/${encodeURIComponent(ts)}`)}function listInvitations(es){return apiGet(`/api/orgs/${encodeURIComponent(es)}/invitations`)}function createInvitation(es,$){return apiPost(`/api/orgs/${encodeURIComponent(es)}/invitations`,$)}function revokeInvitation(es,$){return apiPost(`/api/orgs/${encodeURIComponent(es)}/invitations/${encodeURIComponent($)}/revoke`,{})}function resendInvitation(es,$){return apiPost(`/api/orgs/${encodeURIComponent(es)}/invitations/${encodeURIComponent($)}/resend`,{})}function previewInvitation(es){return apiGet(`/api/invitations/${encodeURIComponent(es)}`)}function acceptInvitation(es){return apiPost("/api/invitations/accept",es)}function getOrgActivity(es,$="7d"){return apiGet(`/api/orgs/${encodeURIComponent(es)}/activity?range=${encodeURIComponent($)}`)}function getTeamActivity(es,$,ts="7d"){return apiGet(`/api/orgs/${encodeURIComponent(es)}/teams/${encodeURIComponent($)}/activity?range=${encodeURIComponent(ts)}`)}function deleteOrg(es){return apiDelete(`/api/orgs/${encodeURIComponent(es)}`)}function useActiveOrg(){const{session:es}=useAuth(),$=!!es,ts=useQuery({queryKey:["profile"],queryFn:getProfile,enabled:$}),is=useQuery({queryKey:["orgs"],queryFn:getOrgs,enabled:$});return{activeOrg:reactExports.useMemo(()=>{var Ca;const Qr=(Ca=ts.data)==null?void 0:Ca.activeOrgId;return Qr?(is.data??[]).find(Aa=>Aa.id===Qr)??null:null},[ts.data,is.data]),orgs:is.data??[],profile:ts.data??null,isLoading:ts.isLoading||is.isLoading,error:ts.error??is.error??null}}function useSetActiveOrg(){const es=useQueryClient();return useMutation({mutationFn:$=>setActiveOrg($),onSuccess:()=>{es.invalidateQueries({queryKey:["profile"]}),es.invalidateQueries({queryKey:["orgs"]}),es.invalidateQueries({queryKey:["sessions"]}),es.invalidateQueries({queryKey:["insights"]}),es.invalidateQueries({queryKey:["projects"]}),es.invalidateQueries({queryKey:["activity"]}),es.invalidateQueries({queryKey:["analytics"]})}})}function OrgAdminGuard({children:es}){return useActiveOrg(),jsxRuntimeExports.jsx(Navigate,{to:"/dashboard",replace:!0})}var t=typeof window<"u"?window:void 0,e=typeof globalThis<"u"?globalThis:t;typeof self>"u"&&(e.self=e),typeof File>"u"&&(e.File=function(){});var i=e==null?void 0:e.navigator,r=e==null?void 0:e.document,s=e==null?void 0:e.location,n=e==null?void 0:e.fetch,o=e!=null&&e.XMLHttpRequest&&"withCredentials"in new e.XMLHttpRequest?e.XMLHttpRequest:void 0,a=e==null?void 0:e.AbortController,l=e==null?void 0:e.CompressionStream,u=i==null?void 0:i.userAgent,h=t??{},d="1.372.5",v={DEBUG:!1,LIB_VERSION:d,LIB_NAME:"web",JS_SDK_VERSION:d};function c(es,$,ts,is,Kr,Qr,ja){try{var Ca=es[Qr](ja),Aa=Ca.value}catch(Oa){return void ts(Oa)}Ca.done?$(Aa):Promise.resolve(Aa).then(is,Kr)}function p(es){return function(){var $=this,ts=arguments;return new Promise((function(is,Kr){var Qr=es.apply($,ts);function ja(Aa){c(Qr,is,Kr,ja,Ca,"next",Aa)}function Ca(Aa){c(Qr,is,Kr,ja,Ca,"throw",Aa)}ja(void 0)}))}}function f(){return f=Object.assign?Object.assign.bind():function(es){for(var $=1;arguments.length>$;$++){var ts=arguments[$];for(var is in ts)({}).hasOwnProperty.call(ts,is)&&(es[is]=ts[is])}return es},f.apply(null,arguments)}function _(es,$){if(es==null)return{};var ts={};for(var is in es)if({}.hasOwnProperty.call(es,is)){if($.indexOf(is)!==-1)continue;ts[is]=es[is]}return ts}function g(){return g=p((function*(es,$,ts){$===void 0&&($=!0);try{var is=new CompressionStream("gzip"),Kr=is.writable.getWriter(),Qr=Kr.write(new TextEncoder().encode(es)).then((()=>Kr.close())).catch((function(){var Aa=p((function*(Oa){try{yield Kr.abort(Oa)}catch{}throw Oa}));return function(Oa){return Aa.apply(this,arguments)}})()),ja=new Response(is.readable).blob(),[Ca]=yield Promise.all([ja,Qr]);return Ca}catch(Aa){if(ts!=null&&ts.rethrow)throw Aa;return $&&console.error("Failed to gzip compress data",Aa),null}})),g.apply(this,arguments)}var m=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],b=function(es,$){if($===void 0&&($=[]),!es)return!1;var ts=es.toLowerCase();return m.concat($).some((is=>{var Kr=is.toLowerCase();return ts.indexOf(Kr)!==-1}))},y=["$snapshot","$pageview","$pageleave","$set","survey dismissed","survey sent","survey shown","$identify","$groupidentify","$create_alias","$$client_ingestion_warning","$web_experiment_applied","$feature_enrollment_update","$feature_flag_called"];function w(es,$){return es.indexOf($)!==-1}var x=function(es){return es.trim()},E=function(es){return es.replace(/^\$/,"")},S=Object.prototype,T=S.hasOwnProperty,k=S.toString,R=Array.isArray||function(es){return k.call(es)==="[object Array]"},P=es=>typeof es=="function",O=es=>es===Object(es)&&!R(es),I=es=>{if(O(es)){for(var $ in es)if(T.call(es,$))return!1;return!0}return!1},C=es=>es===void 0,F=es=>k.call(es)=="[object String]",A=es=>F(es)&&es.trim().length===0,M=es=>es===null,D=es=>C(es)||M(es),L=es=>k.call(es)=="[object Number]"&&es==es,U=es=>L(es)&&es>0,N=es=>k.call(es)==="[object Boolean]",j=es=>es instanceof FormData,z=es=>w(y,es);function B(es){return es===null||typeof es!="object"}function H(es,$){return{}.toString.call(es)==="[object "+$+"]"}function q(es){return typeof Event<"u"&&(function($,ts){try{return $ instanceof ts}catch{return!1}})(es,Event)}var V=[!0,"true",1,"1","yes"],W=es=>w(V,es),G=[!1,"false",0,"0","no"];function Y(es,$,ts,is,Kr){return $>ts&&(is.warn("min cannot be greater than max."),$=ts),L(es)?es>ts?(is.warn(" cannot be greater than max: "+ts+". Using max value instead."),ts):$>es?(is.warn(" cannot be less than min: "+$+". Using min value instead."),$):es:(is.warn(" must be a number. using max or fallback. max: "+ts+", fallback: "+Kr),Y(Kr||ts,$,ts,is))}class J{constructor($){this.$t={},this.zt=$.zt,this.Ut=Y($.bucketSize,0,100,$.Gt),this.Wt=Y($.refillRate,0,this.Ut,$.Gt),this.Xt=Y($.refillInterval,0,864e5,$.Gt)}Jt($,ts){var is=Math.floor((ts-$.lastAccess)/this.Xt);is>0&&($.tokens=Math.min($.tokens+is*this.Wt,this.Ut),$.lastAccess=$.lastAccess+is*this.Xt)}consumeRateLimit($){var ts,is=Date.now(),Kr=String($),Qr=this.$t[Kr];return Qr?this.Jt(Qr,is):this.$t[Kr]=Qr={tokens:this.Ut,lastAccess:is},Qr.tokens===0||(Qr.tokens--,Qr.tokens===0&&((ts=this.zt)==null||ts.call(this,$)),Qr.tokens===0)}stop(){this.$t={}}}var K,X,Q,Z="Mobile",tt="iOS",et="Android",it="Tablet",rt=et+" "+it,st="iPad",nt="Apple",ot=nt+" Watch",at="Safari",lt="BlackBerry",ut="Samsung",ht=ut+"Browser",dt=ut+" Internet",vt="Chrome",ct=vt+" OS",pt=vt+" "+tt,ft="Internet Explorer",_t=ft+" "+Z,gt="Opera",mt=gt+" Mini",bt="Edge",yt="Microsoft "+bt,wt="Firefox",xt=wt+" "+tt,Et="Nintendo",St="PlayStation",$t="Xbox",Tt=et+" "+Z,kt=Z+" "+at,Rt="Windows",Pt=Rt+" Phone",Ot="Nokia",It="Ouya",Ct="Generic",Ft=Ct+" "+Z.toLowerCase(),At=Ct+" "+it.toLowerCase(),Mt="Konqueror",Dt="(\\d+(\\.\\d+)?)",Lt=new RegExp("Version/"+Dt),Ut=new RegExp($t,"i"),Nt=new RegExp(St+" \\w+","i"),jt=new RegExp(Et+" \\w+","i"),zt=new RegExp(lt+"|PlayBook|BB10","i"),Bt={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000",5.1:"XP",5.2:"XP","6.0":"Vista",6.1:"7",6.2:"8",6.3:"8.1",6.4:"10","10.0":"10"},Ht=function(es,$){return $=$||"",w(es," OPR/")&&w(es,"Mini")?mt:w(es," OPR/")?gt:zt.test(es)?lt:w(es,"IE"+Z)||w(es,"WPDesktop")?_t:w(es,ht)?dt:w(es,bt)||w(es,"Edg/")?yt:w(es,"FBIOS")?"Facebook "+Z:w(es,"UCWEB")||w(es,"UCBrowser")?"UC Browser":w(es,"CriOS")?pt:w(es,"CrMo")||w(es,vt)?vt:w(es,et)&&w(es,at)?Tt:w(es,"FxiOS")?xt:w(es.toLowerCase(),Mt.toLowerCase())?Mt:((ts,is)=>is&&w(is,nt)||(function(Kr){return w(Kr,at)&&!w(Kr,vt)&&!w(Kr,et)})(ts))(es,$)?w(es,Z)?kt:at:w(es,wt)?wt:w(es,"MSIE")||w(es,"Trident/")?ft:w(es,"Gecko")?wt:""},qt={[_t]:[new RegExp("rv:"+Dt)],[yt]:[new RegExp(bt+"?\\/"+Dt)],[vt]:[new RegExp("("+vt+"|CrMo)\\/"+Dt)],[pt]:[new RegExp("CriOS\\/"+Dt)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+Dt)],[at]:[Lt],[kt]:[Lt],[gt]:[new RegExp("(Opera|OPR)\\/"+Dt)],[wt]:[new RegExp(wt+"\\/"+Dt)],[xt]:[new RegExp("FxiOS\\/"+Dt)],[Mt]:[new RegExp("Konqueror[:/]?"+Dt,"i")],[lt]:[new RegExp(lt+" "+Dt),Lt],[Tt]:[new RegExp("android\\s"+Dt,"i")],[dt]:[new RegExp(ht+"\\/"+Dt)],[ft]:[new RegExp("(rv:|MSIE )"+Dt)],Mozilla:[new RegExp("rv:"+Dt)]},Vt=function(es,$){var ts=Ht(es,$),is=qt[ts];if(C(is))return null;for(var Kr=0;is.length>Kr;Kr++){var Qr=es.match(is[Kr]);if(Qr)return parseFloat(Qr[Qr.length-2])}return null},Wt=[[new RegExp($t+"; "+$t+" (.*?)[);]","i"),es=>[$t,es&&es[1]||""]],[new RegExp(Et,"i"),[Et,""]],[new RegExp(St,"i"),[St,""]],[zt,[lt,""]],[new RegExp(Rt,"i"),(es,$)=>{if(/Phone/.test($)||/WPDesktop/.test($))return[Pt,""];if(new RegExp(Z).test($)&&!/IEMobile\b/.test($))return[Rt+" "+Z,""];var ts=/Windows NT ([0-9.]+)/i.exec($);if(ts&&ts[1]){var is=Bt[ts[1]]||"";return/arm/i.test($)&&(is="RT"),[Rt,is]}return[Rt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,es=>es&&es[3]?[tt,[es[3],es[4],es[5]||"0"].join(".")]:[tt,""]],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,es=>{var $="";return es&&es.length>=3&&($=C(es[2])?es[3]:es[2]),["watchOS",$]}],[new RegExp("("+et+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+et+")","i"),es=>es&&es[2]?[et,[es[2],es[3],es[4]||"0"].join(".")]:[et,""]],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,es=>{var $=["Mac OS X",""];return es&&es[1]&&($[1]=[es[1],es[2],es[3]||"0"].join(".")),$}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[ct,""]],[/Linux|debian/i,["Linux",""]]],Gt=function(es){return jt.test(es)?Et:Nt.test(es)?St:Ut.test(es)?$t:new RegExp(It,"i").test(es)?It:new RegExp("("+Pt+"|WPDesktop)","i").test(es)?Pt:/iPad/.test(es)?st:/iPod/.test(es)?"iPod Touch":/iPhone/.test(es)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(es)?ot:zt.test(es)?lt:/(kobo)\s(ereader|touch)/i.test(es)?"Kobo":new RegExp(Ot,"i").test(es)?Ot:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(es)||/(kf[a-z]+)( bui|\)).+silk\//i.test(es)?"Kindle Fire":/(Android|ZTE)/i.test(es)?new RegExp(Z).test(es)&&!/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(es)||/pixel[\daxl ]{1,6}/i.test(es)&&!/pixel c/i.test(es)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(es)||/lmy47v/i.test(es)&&!/QTAQZ3/i.test(es)?et:rt:new RegExp("(pda|"+Z+")","i").test(es)?Ft:new RegExp(it,"i").test(es)&&!new RegExp(it+" pc","i").test(es)?At:""},Yt=es=>es instanceof Error,Jt={trace:{text:"TRACE",number:1},debug:{text:"DEBUG",number:5},info:{text:"INFO",number:9},warn:{text:"WARN",number:13},error:{text:"ERROR",number:17},fatal:{text:"FATAL",number:21}},Kt=Jt.info;function Xt(es){if(N(es))return{boolValue:es};if(typeof es=="number")return Number.isFinite(es)?Number.isInteger(es)?{intValue:es}:{doubleValue:es}:{stringValue:String(es)};if(typeof es=="string")return{stringValue:es};if(R(es))return{arrayValue:{values:es.map(($=>Xt($)))}};try{return{stringValue:JSON.stringify(es)}}catch{return{stringValue:String(es)}}}function Qt(es){var $=[];for(var ts in es){var is=es[ts];M(is)||C(is)||$.push({key:ts,value:Xt(is)})}return $}function Zt(es){var $=globalThis._posthogChunkIds;if($){var ts=Object.keys($);return Q&&ts.length===X||(X=ts.length,Q=ts.reduce(((is,Kr)=>{K||(K={});var Qr=K[Kr];if(Qr)is[Qr[0]]=Qr[1];else for(var ja=es(Kr),Ca=ja.length-1;Ca>=0;Ca--){var Aa=ja[Ca],Oa=Aa==null?void 0:Aa.filename,Ia=$[Kr];if(Oa&&Ia){is[Oa]=Ia,K[Kr]=[Oa,Ia];break}}return is}),{})),Q}}class te{constructor($,ts,is){is===void 0&&(is=[]),this.coercers=$,this.stackParser=ts,this.modifiers=is}buildFromUnknown($,ts){ts===void 0&&(ts={});var is=ts&&ts.mechanism||{handled:!0,type:"generic"},Kr=this.buildCoercingContext(is,ts,0).apply($),Qr=this.buildParsingContext(ts),ja=this.parseStacktrace(Kr,Qr);return{$exception_list:this.convertToExceptionList(ja,is),$exception_level:"error"}}modifyFrames($){var ts=this;return p((function*(){for(var is of $)is.stacktrace&&is.stacktrace.frames&&R(is.stacktrace.frames)&&(is.stacktrace.frames=yield ts.applyModifiers(is.stacktrace.frames));return $}))()}coerceFallback($){var ts;return{type:"Error",value:"Unknown error",stack:(ts=$.syntheticException)==null?void 0:ts.stack,synthetic:!0}}parseStacktrace($,ts){var is,Kr;return $.cause!=null&&(is=this.parseStacktrace($.cause,ts)),$.stack!=""&&$.stack!=null&&(Kr=this.applyChunkIds(this.stackParser($.stack,$.synthetic?ts.skipFirstLines:0),ts.chunkIdMap)),f({},$,{cause:is,stack:Kr})}applyChunkIds($,ts){return $.map((is=>(is.filename&&ts&&(is.chunk_id=ts[is.filename]),is)))}applyCoercers($,ts){for(var is of this.coercers)if(is.match($))return is.coerce($,ts);return this.coerceFallback(ts)}applyModifiers($){var ts=this;return p((function*(){var is=$;for(var Kr of ts.modifiers)is=yield Kr(is);return is}))()}convertToExceptionList($,ts){var is,Kr,Qr,ja={type:$.type,value:$.value,mechanism:{type:(is=ts.type)!==null&&is!==void 0?is:"generic",handled:(Kr=ts.handled)===null||Kr===void 0||Kr,synthetic:(Qr=$.synthetic)!==null&&Qr!==void 0&&Qr}};$.stack&&(ja.stacktrace={type:"raw",frames:$.stack});var Ca=[ja];return $.cause!=null&&Ca.push(...this.convertToExceptionList($.cause,f({},ts,{handled:!0}))),Ca}buildParsingContext($){var ts;return{chunkIdMap:Zt(this.stackParser),skipFirstLines:(ts=$.skipFirstLines)!==null&&ts!==void 0?ts:1}}buildCoercingContext($,ts,is){is===void 0&&(is=0);var Kr=(Qr,ja)=>{if(4>=ja){var Ca=this.buildCoercingContext($,ts,ja);return this.applyCoercers(Qr,Ca)}};return f({},ts,{syntheticException:is==0?ts.syntheticException:void 0,mechanism:$,apply:Qr=>Kr(Qr,is),next:Qr=>Kr(Qr,is+1)})}}var ee="?";function ie(es,$,ts,is,Kr){var Qr={platform:es,filename:$,function:ts==="<anonymous>"?ee:ts,in_app:!0};return C(is)||(Qr.lineno=is),C(Kr)||(Qr.colno=Kr),Qr}var re=(es,$)=>{var ts=es.indexOf("safari-extension")!==-1,is=es.indexOf("safari-web-extension")!==-1;return ts||is?[es.indexOf("@")!==-1?es.split("@")[0]:ee,ts?"safari-extension:"+$:"safari-web-extension:"+$]:[es,$]},se=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,ne=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,oe=/\((\S*)(?::(\d+))(?::(\d+))\)/,ae=(es,$)=>{var ts=se.exec(es);if(ts){var[,is,Kr,Qr]=ts;return ie($,is,ee,+Kr,+Qr)}var ja=ne.exec(es);if(ja){if(ja[2]&&ja[2].indexOf("eval")===0){var Ca=oe.exec(ja[2]);Ca&&(ja[2]=Ca[1],ja[3]=Ca[2],ja[4]=Ca[3])}var[Aa,Oa]=re(ja[1]||ee,ja[2]);return ie($,Oa,Aa,ja[3]?+ja[3]:void 0,ja[4]?+ja[4]:void 0)}},le=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,ue=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,he=(es,$)=>{var ts=le.exec(es);if(ts){if(ts[3]&&ts[3].indexOf(" > eval")>-1){var is=ue.exec(ts[3]);is&&(ts[1]=ts[1]||"eval",ts[3]=is[1],ts[4]=is[2],ts[5]="")}var Kr=ts[3],Qr=ts[1]||ee;return[Qr,Kr]=re(Qr,Kr),ie($,Kr,Qr,ts[4]?+ts[4]:void 0,ts[5]?+ts[5]:void 0)}},de=/\(error: (.*)\)/;class ve{match($){return this.isDOMException($)||this.isDOMError($)}coerce($,ts){var is=F($.stack);return{type:this.getType($),value:this.getValue($),stack:is?$.stack:void 0,cause:$.cause?ts.next($.cause):void 0,synthetic:!1}}getType($){return this.isDOMError($)?"DOMError":"DOMException"}getValue($){var ts=$.name||(this.isDOMError($)?"DOMError":"DOMException");return $.message?ts+": "+$.message:ts}isDOMException($){return H($,"DOMException")}isDOMError($){return H($,"DOMError")}}class ce{match($){return(ts=>ts instanceof Error)($)}coerce($,ts){return{type:this.getType($),value:this.getMessage($,ts),stack:this.getStack($),cause:$.cause?ts.next($.cause):void 0,synthetic:!1}}getType($){return $.name||$.constructor.name}getMessage($,ts){var is=$.message;return String(is.error&&typeof is.error.message=="string"?is.error.message:is)}getStack($){return $.stacktrace||$.stack||void 0}}class pe{constructor(){}match($){return H($,"ErrorEvent")&&$.error!=null}coerce($,ts){var is;return ts.apply($.error)||{type:"ErrorEvent",value:$.message,stack:(is=ts.syntheticException)==null?void 0:is.stack,synthetic:!0}}}var fe=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;class _e{match($){return typeof $=="string"}coerce($,ts){var is,[Kr,Qr]=this.getInfos($);return{type:Kr??"Error",value:Qr??$,stack:(is=ts.syntheticException)==null?void 0:is.stack,synthetic:!0}}getInfos($){var ts="Error",is=$,Kr=$.match(fe);return Kr&&(ts=Kr[1],is=Kr[2]),[ts,is]}}var ge=["fatal","error","warning","log","info","debug"];function me(es,$){$===void 0&&($=40);var ts=Object.keys(es);if(ts.sort(),!ts.length)return"[object has no keys]";for(var is=ts.length;is>0;is--){var Kr=ts.slice(0,is).join(", ");if($>=Kr.length)return is===ts.length?Kr:Kr.length>$?Kr.slice(0,$)+"...":Kr}return""}class be{match($){return typeof $=="object"&&$!==null}coerce($,ts){var is,Kr=this.getErrorPropertyFromObject($);return Kr?ts.apply(Kr):{type:this.getType($),value:this.getValue($),stack:(is=ts.syntheticException)==null?void 0:is.stack,level:this.isSeverityLevel($.level)?$.level:"error",synthetic:!0}}getType($){return q($)?$.constructor.name:"Error"}getValue($){if("name"in $&&typeof $.name=="string"){var ts="'"+$.name+"' captured as exception";return"message"in $&&typeof $.message=="string"&&(ts+=" with message: '"+$.message+"'"),ts}if("message"in $&&typeof $.message=="string")return $.message;var is=this.getObjectClassName($);return(is&&is!=="Object"?"'"+is+"'":"Object")+" captured as exception with keys: "+me($)}isSeverityLevel($){return F($)&&!A($)&&ge.indexOf($)>=0}getErrorPropertyFromObject($){for(var ts in $)if({}.hasOwnProperty.call($,ts)){var is=$[ts];if(Yt(is))return is}}getObjectClassName($){try{var ts=Object.getPrototypeOf($);return ts?ts.constructor.name:void 0}catch{return}}}class ye{match($){return q($)}coerce($,ts){var is,Kr=$.constructor.name;return{type:Kr,value:Kr+" captured as exception with keys: "+me($),stack:(is=ts.syntheticException)==null?void 0:is.stack,synthetic:!0}}}class we{match($){return B($)}coerce($,ts){var is;return{type:"Error",value:"Primitive value captured as exception: "+String($),stack:(is=ts.syntheticException)==null?void 0:is.stack,synthetic:!0}}}class xe{match($){return H($,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection($)}isCustomEventWrappingRejection($){if(!q($))return!1;try{var ts=$.detail;return ts!=null&&typeof ts=="object"&&"reason"in ts}catch{return!1}}coerce($,ts){var is,Kr=this.getUnhandledRejectionReason($);return B(Kr)?{type:"UnhandledRejection",value:"Non-Error promise rejection captured with value: "+String(Kr),stack:(is=ts.syntheticException)==null?void 0:is.stack,synthetic:!0}:ts.apply(Kr)}getUnhandledRejectionReason($){try{if("reason"in $)return $.reason;if("detail"in $&&$.detail!=null&&typeof $.detail=="object"&&"reason"in $.detail)return $.detail.reason}catch{}return $}}var Ee="$message",Se="$timestamp",$e=new Set([Ee,Se]),Te={enabled:!0,max_bytes:32768};function ke(es){var $;return es?{enabled:($=es.enabled)!==null&&$!==void 0?$:Te.enabled,max_bytes:Pe(es.max_bytes,Te.max_bytes)}:f({},Te)}class Re{constructor($){this.Kt=[],this.Qt=0,this.Bt=ke($)}setConfig($){this.Bt=ke($),this.er()}add($){var ts=(function(Kr){var Qr=(function(Ia){var Da=new WeakSet;try{return JSON.stringify(Ia,((Ba,Ma)=>{if(typeof Ma=="bigint")return Ma.toString();if(typeof Ma!="function"&&typeof Ma!="symbol"){if(Ma instanceof Date)return Ma.toISOString();if(Ma instanceof Error)return{name:Ma.name,message:Ma.message,stack:Ma.stack};if(Ma&&typeof Ma=="object"){if(Da.has(Ma))return"[Circular]";Da.add(Ma)}return Ma}}))}catch{return}})(Kr);if(Qr)try{var ja=JSON.parse(Qr);if(!O(ja))return;var Ca=ja,Aa=Ca[Ee],Oa=Ca[Se];return!F(Aa)||Aa.trim().length===0||!F(Oa)&&!L(Oa)?void 0:{step:Ca,json:Qr}}catch{return}})($);if(ts){var is=(function(Kr){if(typeof TextEncoder<"u")return new TextEncoder().encode(Kr).length;for(var Qr=encodeURIComponent(Kr),ja=0,Ca=0;Qr.length>Ca;Ca++)Qr[Ca]==="%"?(ja+=1,Ca+=2):ja+=1;return ja})(ts.json);is>this.Bt.max_bytes||(this.Kt.push({step:ts.step,bytes:is}),this.Qt+=is,this.er())}}getAttachable(){return this.Kt.map(($=>$.step))}clear(){this.Kt=[],this.Qt=0}size(){return this.Kt.length}er(){for(;this.Qt>this.Bt.max_bytes&&this.Kt.length>0;){var $=this.Kt.shift();$&&(this.Qt-=$.bytes)}}}function Pe(es,$){if(!L(es)||es===1/0||es===-1/0)return $;var ts=Math.floor(es);return 0>ts?$:ts}var Oe=function(es,$){var{debugEnabled:ts}=$===void 0?{}:$,is={C(Kr){if(t&&(v.DEBUG||h.POSTHOG_DEBUG||ts)&&!C(t.console)&&t.console){for(var Qr=("__rrweb_original__"in t.console[Kr])?t.console[Kr].__rrweb_original__:t.console[Kr],ja=arguments.length,Ca=new Array(ja>1?ja-1:0),Aa=1;ja>Aa;Aa++)Ca[Aa-1]=arguments[Aa];Qr(es,...Ca)}},info(){for(var Kr=arguments.length,Qr=new Array(Kr),ja=0;Kr>ja;ja++)Qr[ja]=arguments[ja];is.C("log",...Qr)},warn(){for(var Kr=arguments.length,Qr=new Array(Kr),ja=0;Kr>ja;ja++)Qr[ja]=arguments[ja];is.C("warn",...Qr)},error(){for(var Kr=arguments.length,Qr=new Array(Kr),ja=0;Kr>ja;ja++)Qr[ja]=arguments[ja];is.C("error",...Qr)},critical(){for(var Kr=arguments.length,Qr=new Array(Kr),ja=0;Kr>ja;ja++)Qr[ja]=arguments[ja];console.error(es,...Qr)},uninitializedWarning(Kr){is.error("You must initialize PostHog before calling "+Kr)},createLogger:(Kr,Qr)=>Oe(es+" "+Kr,Qr)};return is},Ie=Oe("[PostHog.js]"),Ce=Ie.createLogger,Fe=Ce("[ExternalScriptsLoader]"),Ae=(es,$,ts)=>{if(es.config.disable_external_dependency_loading)return Fe.warn($+" was requested but loading of external scripts is disabled."),ts("Loading of external scripts is disabled");var is=r==null?void 0:r.querySelectorAll("script");if(is){for(var Kr,Qr=function(){if(is[ja].src===$){var Aa=is[ja];return Aa.__posthog_loading_callback_fired?{v:ts()}:(Aa.addEventListener("load",(Oa=>{Aa.__posthog_loading_callback_fired=!0,ts(void 0,Oa)})),Aa.onerror=Oa=>ts(Oa),{v:void 0})}},ja=0;is.length>ja;ja++)if(Kr=Qr())return Kr.v}var Ca=()=>{if(!r)return ts("document not found");var Aa=r.createElement("script");if(Aa.type="text/javascript",Aa.crossOrigin="anonymous",Aa.src=$,Aa.onload=Da=>{Aa.__posthog_loading_callback_fired=!0,ts(void 0,Da)},Aa.onerror=Da=>ts(Da),es.config.prepare_external_dependency_script&&(Aa=es.config.prepare_external_dependency_script(Aa)),!Aa)return ts("prepare_external_dependency_script returned null");if(es.config.external_scripts_inject_target==="head")r.head.appendChild(Aa);else{var Oa,Ia=r.querySelectorAll("body > script");Ia.length>0?(Oa=Ia[0].parentNode)==null||Oa.insertBefore(Aa,Ia[0]):r.body.appendChild(Aa)}};r!=null&&r.body?Ca():r==null||r.addEventListener("DOMContentLoaded",Ca)};h.__PosthogExtensions__=h.__PosthogExtensions__||{},h.__PosthogExtensions__.loadExternalDependency=(es,$,ts)=>{if($!=="remote-config"){var is;if(es.config.__preview_external_dependency_versioned_paths)is=es.requestRouter.endpointFor("assets","/static/"+es.version+"/"+$+".js");else{var Kr="/static/"+$+".js?v="+es.version;if($==="toolbar"){var Qr=3e5;Kr=Kr+"&t="+Math.floor(Date.now()/Qr)*Qr}is=es.requestRouter.endpointFor("assets",Kr)}Ae(es,is,ts)}else{var ja=es.requestRouter.endpointFor("assets","/array/"+es.config.token+"/config.js");Ae(es,ja,ts)}},h.__PosthogExtensions__.loadSiteApp=(es,$,ts)=>{var is=es.requestRouter.endpointFor("api",$);Ae(es,is,ts)};var Me="$people_distinct_id",De="$device_id",Le="__alias",Ue="__timers",Ne="$autocapture_disabled_server_side",je="$heatmaps_enabled_server_side",ze="$exception_capture_enabled_server_side",Be="$error_tracking_suppression_rules",He="$error_tracking_capture_extension_exceptions",qe="$web_vitals_enabled_server_side",Ve="$dead_clicks_enabled_server_side",We="$product_tours_enabled_server_side",Ge="$web_vitals_allowed_metrics",Ye="$session_recording_remote_config",Je="$replay_override_sampling",Ke="$replay_override_linked_flag",Xe="$replay_override_url_trigger",Qe="$replay_override_event_trigger",Ze="$sesid",ti="$session_is_sampled",ei="$enabled_feature_flags",ii="$active_feature_flags",ri="$early_access_features",si="$feature_flag_details",ni="$feature_flag_payloads",oi="$feature_flag_request_id",ai="$override_feature_flags",li="$override_feature_flag_payloads",ui="$stored_person_properties",hi="$stored_group_properties",di="$surveys",vi="$surveys_activated",ci="ph_product_tours",pi="$flag_call_reported",fi="$flag_call_reported_session_id",_i="$feature_flag_errors",gi="$feature_flag_evaluated_at",mi="$user_state",bi="$client_session_props",yi="$capture_rate_limit",wi="$initial_campaign_params",xi="$initial_referrer_info",Ei="$initial_person_info",Si="$epp",$i="__POSTHOG_TOOLBAR__",Ti="$posthog_cookieless",ki="$sdk_debug_extensions_init_method",Ri="$sdk_debug_extensions_init_time_ms",Pi="$sdk_debug_recording_script_not_loaded",Oi="PostHog loadExternalDependency extension not found.",Ii="on_reject",Ci="always",Fi="anonymous",Ai="identified",Mi="identified_only",Di="visibilitychange",Li="beforeunload",Ui="$pageview",Ni="$pageleave",ji="$identify",zi="$groupidentify";function Bi(es,$){R(es)&&es.forEach($)}function Hi(es,$){if(!D(es))if(R(es))es.forEach($);else if(j(es))es.forEach(((is,Kr)=>$(is,Kr)));else for(var ts in es)T.call(es,ts)&&$(es[ts],ts)}var qi=function(es){for(var $=arguments.length,ts=new Array($>1?$-1:0),is=1;$>is;is++)ts[is-1]=arguments[is];for(var Kr of ts)for(var Qr in Kr)Kr[Qr]!==void 0&&(es[Qr]=Kr[Qr]);return es};function Vi(es){for(var $=Object.keys(es),ts=$.length,is=new Array(ts);ts--;)is[ts]=[$[ts],es[$[ts]]];return is}var Wi=function(es){try{return es()}catch{return}},Gi=function(es){return function(){try{for(var $=arguments.length,ts=new Array($),is=0;$>is;is++)ts[is]=arguments[is];return es.apply(this,ts)}catch(Kr){Ie.critical("Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A."),Ie.critical(Kr)}}},Yi=function(es){var $={};return Hi(es,(function(ts,is){(F(ts)&&ts.length>0||L(ts))&&($[is]=ts)})),$},Ji=["herokuapp.com","vercel.app","netlify.app"];function Ki(es){var $=es==null?void 0:es.hostname;if(!F($))return!1;var ts=$.split(".").slice(-2).join(".");for(var is of Ji)if(ts===is)return!1;return!0}function Xi(es,$,ts,is){var{capture:Kr=!1,passive:Qr=!0}=is??{};es==null||es.addEventListener($,ts,{capture:Kr,passive:Qr})}function Qi(es){return es.name==="ph_toolbar_internal"}Math.trunc||(Math.trunc=function(es){return 0>es?Math.ceil(es):Math.floor(es)}),Number.isInteger||(Number.isInteger=function(es){return L(es)&&isFinite(es)&&Math.floor(es)===es});class Zi{constructor($){if(this.bytes=$,$.length!==16)throw new TypeError("not 128-bit length")}static fromFieldsV7($,ts,is,Kr){if(!Number.isInteger($)||!Number.isInteger(ts)||!Number.isInteger(is)||!Number.isInteger(Kr)||0>$||0>ts||0>is||0>Kr||$>0xffffffffffff||ts>4095||is>1073741823||Kr>4294967295)throw new RangeError("invalid field value");var Qr=new Uint8Array(16);return Qr[0]=$/Math.pow(2,40),Qr[1]=$/Math.pow(2,32),Qr[2]=$/Math.pow(2,24),Qr[3]=$/Math.pow(2,16),Qr[4]=$/Math.pow(2,8),Qr[5]=$,Qr[6]=112|ts>>>8,Qr[7]=ts,Qr[8]=128|is>>>24,Qr[9]=is>>>16,Qr[10]=is>>>8,Qr[11]=is,Qr[12]=Kr>>>24,Qr[13]=Kr>>>16,Qr[14]=Kr>>>8,Qr[15]=Kr,new Zi(Qr)}toString(){for(var $="",ts=0;this.bytes.length>ts;ts++)$=$+(this.bytes[ts]>>>4).toString(16)+(15&this.bytes[ts]).toString(16),ts!==3&&ts!==5&&ts!==7&&ts!==9||($+="-");if($.length!==36)throw new Error("Invalid UUIDv7 was generated");return $}clone(){return new Zi(this.bytes.slice(0))}equals($){return this.compareTo($)===0}compareTo($){for(var ts=0;16>ts;ts++){var is=this.bytes[ts]-$.bytes[ts];if(is!==0)return Math.sign(is)}return 0}}class tr{constructor(){this.I=0,this.S=0,this.k=new rr}generate(){var $=this.generateOrAbort();if(C($)){this.I=0;var ts=this.generateOrAbort();if(C(ts))throw new Error("Could not generate UUID after timestamp reset");return ts}return $}generateOrAbort(){var $=Date.now();if($>this.I)this.I=$,this.A();else{if(this.I>=$+1e4)return;this.S++,this.S>4398046511103&&(this.I++,this.A())}return Zi.fromFieldsV7(this.I,Math.trunc(this.S/Math.pow(2,30)),this.S&Math.pow(2,30)-1,this.k.nextUint32())}A(){this.S=1024*this.k.nextUint32()+(1023&this.k.nextUint32())}}var er,ir=es=>{if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");for(var $=0;es.length>$;$++)es[$]=65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random());return es};t&&!C(t.crypto)&&crypto.getRandomValues&&(ir=es=>crypto.getRandomValues(es));class rr{constructor(){this.T=new Uint32Array(8),this.N=1/0}nextUint32(){return this.T.length>this.N||(ir(this.T),this.N=0),this.T[this.N++]}}var sr=()=>nr().toString(),nr=()=>(er||(er=new tr)).generate(),or="",ar=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i,lr={R:()=>!!r,B(es){Ie.error("cookieStore error: "+es)},O(es){if(r){try{for(var $=es+"=",ts=r.cookie.split(";").filter((Qr=>Qr.length)),is=0;ts.length>is;is++){for(var Kr=ts[is];Kr.charAt(0)==" ";)Kr=Kr.substring(1,Kr.length);if(Kr.indexOf($)===0)return decodeURIComponent(Kr.substring($.length,Kr.length))}}catch{}return null}},Z(es){var $;try{$=JSON.parse(lr.O(es))||{}}catch{}return $},M(es,$,ts,is,Kr){if(r)try{var Qr="",ja="",Ca=(function(Ia,Da){if(Da){var Ba=(function(Fa,qa){if(qa===void 0&&(qa=r),or)return or;if(!qa||["localhost","127.0.0.1"].includes(Fa))return"";for(var Ha=Fa.split("."),Ka=Math.min(Ha.length,8),Qa="dmn_chk_"+sr();!or&&Ka--;){var Va=Ha.slice(Ka).join("."),Ya=Qa+"=1;domain=."+Va+";path=/";qa.cookie=Ya+";max-age=3",qa.cookie.includes(Qa)&&(qa.cookie=Ya+";max-age=0",or=Va)}return or})(Ia);if(!Ba){var Ma=(Fa=>{var qa=Fa.match(ar);return qa?qa[0]:""})(Ia);Ma!==Ba&&Ie.info("Warning: cookie subdomain discovery mismatch",Ma,Ba),Ba=Ma}return Ba?"; domain=."+Ba:""}return""})(r.location.hostname,is);if(ts){var Aa=new Date;Aa.setTime(Aa.getTime()+864e5*ts),Qr="; expires="+Aa.toUTCString()}Kr&&(ja="; secure");var Oa=es+"="+encodeURIComponent(JSON.stringify($))+Qr+"; SameSite=Lax; path=/"+Ca+ja;return Oa.length>3686.4&&Ie.warn("cookieStore warning: large cookie, len="+Oa.length),r.cookie=Oa,Oa}catch{return}},F(es,$){if(r!=null&&r.cookie)try{lr.M(es,"",-1,$)}catch{return}}},ur=null,hr={R(){if(!M(ur))return ur;var es=!0;if(C(t))es=!1;else try{var $="__mplssupport__";hr.M($,"xyz"),hr.O($)!=='"xyz"'&&(es=!1),hr.F($)}catch{es=!1}return es||Ie.error("localStorage unsupported; falling back to cookie store"),ur=es,es},B(es){Ie.error("localStorage error: "+es)},O(es){try{return t==null?void 0:t.localStorage.getItem(es)}catch($){hr.B($)}return null},Z(es){try{return JSON.parse(hr.O(es))||{}}catch{}return null},M(es,$){try{t==null||t.localStorage.setItem(es,JSON.stringify($))}catch(ts){hr.B(ts)}},F(es){try{t==null||t.localStorage.removeItem(es)}catch($){hr.B($)}}},dr=[De,"distinct_id",Ze,ti,Si,Ei,mi],vr={},cr={R:()=>!0,B(es){Ie.error("memoryStorage error: "+es)},O:es=>vr[es]||null,Z:es=>vr[es]||null,M(es,$){vr[es]=$},F(es){delete vr[es]}},pr=null,fr={R(){if(!M(pr))return pr;if(pr=!0,C(t))pr=!1;else try{var es="__support__";fr.M(es,"xyz"),fr.O(es)!=='"xyz"'&&(pr=!1),fr.F(es)}catch{pr=!1}return pr},B(es){Ie.error("sessionStorage error: ",es)},O(es){try{return t==null?void 0:t.sessionStorage.getItem(es)}catch($){fr.B($)}return null},Z(es){try{return JSON.parse(fr.O(es))||null}catch{}return null},M(es,$){try{t==null||t.sessionStorage.setItem(es,JSON.stringify($))}catch(ts){fr.B(ts)}},F(es){try{t==null||t.sessionStorage.removeItem(es)}catch($){fr.B($)}}};class _r{constructor($){this._instance=$}get Bt(){return this._instance.config}get consent(){return this.rr()?0:this.ir}isOptedOut(){return this.Bt.cookieless_mode===Ci||this.isRejected()||this.consent===-1&&this.Bt.cookieless_mode===Ii}isOptedIn(){return!this.isOptedOut()}isExplicitlyOptedOut(){return this.consent===0}isRejected(){return this.consent===0||this.consent===-1&&this.Bt.opt_out_capturing_by_default}optInOut($){this.nr.M(this.sr,$?1:0,this.Bt.cookie_expiration,this.Bt.cross_subdomain_cookie,this.Bt.secure_cookie)}reset(){this.nr.F(this.sr,this.Bt.cross_subdomain_cookie)}get sr(){var{token:$,opt_out_capturing_cookie_prefix:ts,consent_persistence_name:is}=this._instance.config;return is||(ts?ts+$:"__ph_opt_in_out_"+$)}get ir(){var $=this.nr.O(this.sr);return W($)?1:w(G,$)?0:-1}get nr(){var $=this.Bt.opt_out_capturing_persistence_type,ts=$==="localStorage"?hr:lr;if(!this.ar||this.ar!==ts){this.ar=ts;var is=$==="localStorage"?lr:hr;is.O(this.sr)&&(this.ar.O(this.sr)||this.optInOut(W(is.O(this.sr))),is.F(this.sr,this.Bt.cross_subdomain_cookie))}return this.ar}rr(){return!!this.Bt.respect_dnt&&[i==null?void 0:i.doNotTrack,i==null?void 0:i.msDoNotTrack,h.doNotTrack].some(($=>W($)))}}var gr=Ce("[Dead Clicks]"),mr=()=>!0,br=es=>{var $,ts=!(($=es.instance.persistence)==null||!$.get_property(Ve)),is=es.instance.config.capture_dead_clicks;return N(is)?is:!!O(is)||ts};class yr{get lazyLoadedDeadClicksAutocapture(){return this.lr}constructor($,ts,is){this.instance=$,this.isEnabled=ts,this.onCapture=is,this.startIfEnabledOrStop()}onRemoteConfig($){"captureDeadClicks"in $&&(this.instance.persistence&&this.instance.persistence.register({[Ve]:$.captureDeadClicks}),this.startIfEnabledOrStop())}startIfEnabledOrStop(){this.isEnabled(this)?this.ur((()=>{this.hr()})):this.stop()}ur($){var ts,is;(ts=h.__PosthogExtensions__)!=null&&ts.initDeadClicksAutocapture&&$(),(is=h.__PosthogExtensions__)==null||is.loadExternalDependency==null||is.loadExternalDependency(this.instance,"dead-clicks-autocapture",(Kr=>{Kr?gr.error("failed to load script",Kr):$()}))}hr(){var $;if(r){if(!this.lr&&($=h.__PosthogExtensions__)!=null&&$.initDeadClicksAutocapture){var ts=O(this.instance.config.capture_dead_clicks)?this.instance.config.capture_dead_clicks:{};ts.__onCapture=this.onCapture,this.lr=h.__PosthogExtensions__.initDeadClicksAutocapture(this.instance,ts),this.lr.start(r),gr.info("starting...")}}else gr.error("`document` not found. Cannot start.")}stop(){this.lr&&(this.lr.stop(),this.lr=void 0,gr.info("stopping..."))}}var wr=Ce("[SegmentIntegration]"),xr="posthog-js";function Er(es,$){var{organization:ts,projectId:is,prefix:Kr,severityAllowList:Qr=["error"],sendExceptionsToPostHog:ja=!0}=$===void 0?{}:$;return Ca=>{var Aa,Oa,Ia,Da,Ba;if(Qr!=="*"&&!Qr.includes(Ca.level)||!es.__loaded)return Ca;Ca.tags||(Ca.tags={});var Ma=es.requestRouter.endpointFor("ui","/project/"+es.config.token+"/person/"+es.get_distinct_id());Ca.tags["PostHog Person URL"]=Ma,es.sessionRecordingStarted()&&(Ca.tags["PostHog Recording URL"]=es.get_session_replay_url({withTimestamp:!0}));var Fa,qa=((Aa=Ca.exception)==null?void 0:Aa.values)||[],Ha=qa.map((Qa=>f({},Qa,{stacktrace:Qa.stacktrace?f({},Qa.stacktrace,{type:"raw",frames:(Qa.stacktrace.frames||[]).map((Va=>f({},Va,{platform:"web:javascript"})))}):void 0}))),Ka={$exception_message:((Oa=qa[0])==null?void 0:Oa.value)||Ca.message,$exception_type:(Ia=qa[0])==null?void 0:Ia.type,$exception_level:Ca.level,$exception_list:Ha,$sentry_event_id:Ca.event_id,$sentry_exception:Ca.exception,$sentry_exception_message:((Da=qa[0])==null?void 0:Da.value)||Ca.message,$sentry_exception_type:(Ba=qa[0])==null?void 0:Ba.type,$sentry_tags:Ca.tags};return ts&&is&&(Ka.$sentry_url=(Kr||"https://sentry.io/organizations/")+ts+"/issues/?project="+is+"&query="+Ca.event_id),ja&&((Fa=es.exceptions)==null||Fa.sendExceptionEvent(Ka)),Ca}}class Sr{constructor($,ts,is,Kr,Qr,ja){this.name=xr,this.setupOnce=function(Ca){Ca(Er($,{organization:ts,projectId:is,prefix:Kr,severityAllowList:Qr,sendExceptionsToPostHog:ja==null||ja}))}}}class $r{constructor($){this.cr=(ts,is,Kr)=>{Kr&&(Kr.noSessionId||Kr.activityTimeout||Kr.sessionPastMaximumLength)&&(Ie.info("[PageViewManager] Session rotated, clearing pageview state",{sessionId:ts,changeReason:Kr}),this.dr=void 0,this._instance.scrollManager.resetContext())},this._instance=$,this.vr()}vr(){var $;this.pr=($=this._instance.sessionManager)==null?void 0:$.onSessionId(this.cr)}destroy(){var $;($=this.pr)==null||$.call(this),this.pr=void 0}doPageView($,ts){var is,Kr=this.gr($,ts);return this.dr={pathname:(is=t==null?void 0:t.location.pathname)!==null&&is!==void 0?is:"",pageViewId:ts,timestamp:$},this._instance.scrollManager.resetContext(),Kr}doPageLeave($){var ts;return this.gr($,(ts=this.dr)==null?void 0:ts.pageViewId)}doEvent(){var $;return{$pageview_id:($=this.dr)==null?void 0:$.pageViewId}}gr($,ts){var is=this.dr;if(!is)return{$pageview_id:ts};var Kr={$pageview_id:ts,$prev_pageview_id:is.pageViewId},Qr=this._instance.scrollManager.getContext();if(Qr&&!this._instance.config.disable_scroll_properties){var{maxScrollHeight:ja,lastScrollY:Ca,maxScrollY:Aa,maxContentHeight:Oa,lastContentY:Ia,maxContentY:Da}=Qr;if(!(C(ja)||C(Ca)||C(Aa)||C(Oa)||C(Ia)||C(Da))){ja=Math.ceil(ja),Ca=Math.ceil(Ca),Aa=Math.ceil(Aa),Oa=Math.ceil(Oa),Ia=Math.ceil(Ia),Da=Math.ceil(Da);var Ba=ja>1?Y(Ca/ja,0,1,Ie):1,Ma=ja>1?Y(Aa/ja,0,1,Ie):1,Fa=Oa>1?Y(Ia/Oa,0,1,Ie):1,qa=Oa>1?Y(Da/Oa,0,1,Ie):1;Kr=qi(Kr,{$prev_pageview_last_scroll:Ca,$prev_pageview_last_scroll_percentage:Ba,$prev_pageview_max_scroll:Aa,$prev_pageview_max_scroll_percentage:Ma,$prev_pageview_last_content:Ia,$prev_pageview_last_content_percentage:Fa,$prev_pageview_max_content:Da,$prev_pageview_max_content_percentage:qa})}}return is.pathname&&(Kr.$prev_pageview_pathname=is.pathname),is.timestamp&&(Kr.$prev_pageview_duration=($.getTime()-is.timestamp.getTime())/1e3),Kr}}var Tr={[Me]:{exposure:"hidden"},[Le]:{exposure:"hidden"},__cmpns:{exposure:"hidden"},[Ue]:{exposure:"hidden"},[Ne]:{exposure:"event"},[je]:{exposure:"hidden"},[ze]:{exposure:"event"},[Be]:{exposure:"hidden"},[He]:{exposure:"event"},[qe]:{exposure:"event"},[Ve]:{exposure:"event"},[We]:{exposure:"hidden"},[Ge]:{exposure:"event"},[Ye]:{exposure:"hidden"},$session_recording_enabled_server_side:{exposure:"hidden"},[Ze]:{exposure:"hidden"},[ti]:{exposure:"event"},$session_past_minimum_duration:{exposure:"event"},$session_recording_url_trigger_activated_session:{exposure:"event"},$session_recording_event_trigger_activated_session:{exposure:"event"},$debug_first_full_snapshot_timestamp:{exposure:"event"},[ei]:{exposure:"derived",shouldSkipFromEventProperties:(es,$)=>$(),transformToEventProperties(es){if(!O(es))return{};for(var $={},ts=Object.keys(es),is=0;ts.length>is;is++)$["$feature/"+ts[is]]=es[ts[is]];return $}},[ii]:{exposure:"event"},[ri]:{exposure:"hidden"},[si]:{exposure:"hidden"},[ni]:{exposure:"event"},[oi]:{exposure:"event"},[ai]:{exposure:"event"},[li]:{exposure:"hidden"},[ui]:{exposure:"hidden"},[hi]:{exposure:"hidden"},[di]:{exposure:"hidden"},[vi]:{exposure:"event"},[ci]:{exposure:"hidden"},$product_tours_activated:{exposure:"hidden"},$conversations_widget_session_id:{exposure:"event"},$conversations_ticket_id:{exposure:"event"},$conversations_widget_state:{exposure:"event"},$conversations_user_traits:{exposure:"event"},[pi]:{exposure:"hidden"},[fi]:{exposure:"hidden"},[_i]:{exposure:"hidden"},[gi]:{exposure:"hidden"},[mi]:{exposure:"hidden"},[bi]:{exposure:"hidden"},[yi]:{exposure:"hidden"},[wi]:{exposure:"hidden"},[xi]:{exposure:"hidden"},[Ei]:{exposure:"hidden"},[Si]:{exposure:"hidden"},[Je]:{exposure:"event"},[Ke]:{exposure:"event"},[Xe]:{exposure:"event"},[Qe]:{exposure:"event"},[ki]:{exposure:"event"},[Ri]:{exposure:"event"},[Pi]:{exposure:"event"},$sdk_debug_replay_event_trigger_status:{exposure:"event"},$sdk_debug_replay_linked_flag_trigger_status:{exposure:"event"},$sdk_debug_replay_matched_recording_trigger_groups:{exposure:"event"},$sdk_debug_replay_remote_trigger_matching_config:{exposure:"event"},$sdk_debug_replay_trigger_groups_count:{exposure:"event"},$sdk_debug_replay_url_trigger_status:{exposure:"event"},$session_recording_start_reason:{exposure:"event"}},kr=[["$posthog_sr_group_event_trigger_",{exposure:"hidden"}],["$posthog_sr_group_url_trigger_",{exposure:"hidden"}],["$posthog_sr_group_sampling_",{exposure:"hidden"}]],Rr=es=>{var $=r==null?void 0:r.createElement("a");return C($)?null:($.href=es,$)},Pr=function(es,$){for(var ts,is=((es.split("#")[0]||"").split(/\?(.*)/)[1]||"").replace(/^\?+/g,"").split("&"),Kr=0;is.length>Kr;Kr++){var Qr=is[Kr].split("=");if(Qr[0]===$){ts=Qr;break}}if(!R(ts)||2>ts.length)return"";var ja=ts[1];try{ja=decodeURIComponent(ja)}catch{Ie.error("Skipping decoding for malformed query param: "+ja)}return ja.replace(/\+/g," ")},Or=function(es,$,ts){if(!es||!$||!$.length)return es;for(var is=es.split("#"),Kr=is[1],Qr=(is[0]||"").split("?"),ja=Qr[1],Ca=Qr[0],Aa=(ja||"").split("&"),Oa=[],Ia=0;Aa.length>Ia;Ia++){var Da=Aa[Ia].split("=");R(Da)&&($.includes(Da[0])?Oa.push(Da[0]+"="+ts):Oa.push(Aa[Ia]))}var Ba=Ca;return ja!=null&&(Ba+="?"+Oa.join("&")),Kr!=null&&(Ba+="#"+Kr),Ba},Ir=function(es,$){var ts=es.match(new RegExp($+"=([^&]*)"));return ts?ts[1]:null},Cr="https?://(.*)",Fr=["gclid","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","igshid","ttclid","rdt_cid","epik","qclid","sccid","irclid","_kx"],Ar=["utm_source","utm_medium","utm_campaign","utm_content","utm_term","gad_source","mc_cid",...Fr],Mr="<masked>",Dr=["li_fat_id"];function Lr(es,$,ts){if(!r)return{};var is,Kr=$?[...Fr,...ts||[]]:[],Qr=Ur(Or(r.URL,Kr,Mr),es),ja=(is={},Hi(Dr,(function(Ca){var Aa=lr.O(Ca);is[Ca]=Aa||null})),is);return qi(ja,Qr)}function Ur(es,$){var ts=Ar.concat($||[]),is={};return Hi(ts,(function(Kr){var Qr=Pr(es,Kr);is[Kr]=Qr||null})),is}function Nr(es){var $=(function(Qr){return Qr?Qr.search(Cr+"google.([^/?]*)")===0?"google":Qr.search(Cr+"bing.com")===0?"bing":Qr.search(Cr+"yahoo.com")===0?"yahoo":Qr.search(Cr+"duckduckgo.com")===0?"duckduckgo":null:null})(es),ts=$!="yahoo"?"q":"p",is={};if(!M($)){is.$search_engine=$;var Kr=r?Pr(r.referrer,ts):"";Kr.length&&(is.ph_keyword=Kr)}return is}function jr(){return navigator.language||navigator.userLanguage}var zr="$direct";function Br(){return(r==null?void 0:r.referrer)||zr}function Hr(es,$){var ts=es?[...Fr,...$||[]]:[],is=s==null?void 0:s.href.substring(0,1e3);return{r:Br().substring(0,1e3),u:is?Or(is,ts,Mr):void 0}}function qr(es){var $,{r:ts,u:is}=es,Kr={$referrer:ts,$referring_domain:ts==null?void 0:ts==zr?zr:($=Rr(ts))==null?void 0:$.host};if(is){Kr.$current_url=is;var Qr=Rr(is);Kr.$host=Qr==null?void 0:Qr.host,Kr.$pathname=Qr==null?void 0:Qr.pathname;var ja=Ur(is);qi(Kr,ja)}if(ts){var Ca=Nr(ts);qi(Kr,Ca)}return Kr}function Vr(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function Wr(){try{return new Date().getTimezoneOffset()}catch{return}}var Gr=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"];class Yr{constructor($,ts){this.Bt=$,this.props={},this.mr=!1,this.yr=(is=>{var Kr="";return is.token&&(Kr=is.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),is.persistence_name?"ph_"+is.persistence_name:"ph_"+Kr+"_posthog"})($),this.nr=this.br($),this.load(),$.debug&&Ie.info("Persistence loaded",$.persistence,f({},this.props)),this.update_config($,$,ts),this.save()}isDisabled(){return!!this._r}br($){Gr.indexOf($.persistence.toLowerCase())===-1&&(Ie.critical("Unknown persistence type "+$.persistence+"; falling back to localStorage+cookie"),$.persistence="localStorage+cookie");var ts=(function(Kr){Kr===void 0&&(Kr=[]);var Qr=[...dr,...Kr];return f({},hr,{Z(ja){try{var Ca={};try{Ca=lr.Z(ja)||{}}catch{}var Aa=qi(Ca,JSON.parse(hr.O(ja)||"{}"));return hr.M(ja,Aa),Aa}catch{}return null},M(ja,Ca,Aa,Oa,Ia,Da){try{hr.M(ja,Ca,void 0,void 0,Da);var Ba={};Qr.forEach((Ma=>{Ca[Ma]&&(Ba[Ma]=Ca[Ma])})),Object.keys(Ba).length&&lr.M(ja,Ba,Aa,Oa,Ia,Da)}catch(Ma){hr.B(Ma)}},F(ja,Ca){try{t==null||t.localStorage.removeItem(ja),lr.F(ja,Ca)}catch(Aa){hr.B(Aa)}}})})($.cookie_persisted_properties||[]),is=$.persistence.toLowerCase();return is==="localstorage"&&hr.R()?hr:is==="localstorage+cookie"&&ts.R()?ts:is==="sessionstorage"&&fr.R()?fr:is==="memory"?cr:is==="cookie"?lr:ts.R()?ts:lr}wr($){var ts=$??this.Bt.feature_flag_cache_ttl_ms;if(!ts||0>=ts)return!1;var is=this.props[gi];return!is||typeof is!="number"||Date.now()-is>ts}properties(){var $={};return Hi(this.props,((ts,is)=>{var Kr=(Qr=>{var ja=Tr[Qr];if(ja)return ja;for(var[Ca,Aa]of kr)if(Qr.indexOf(Ca)===0)return Aa})(is);if((Kr==null?void 0:Kr.exposure)==="derived"){if(Kr.shouldSkipFromEventProperties!=null&&Kr.shouldSkipFromEventProperties(ts,is===ei?()=>this.wr():()=>!1))return;Kr.transformToEventProperties&&qi($,Kr.transformToEventProperties(ts))}else Kr&&Kr.exposure!=="event"||($[is]=ts)})),$}load(){if(!this._r){var $=this.nr.Z(this.yr);$&&(this.props=qi({},$))}}save(){this._r||this.nr.M(this.yr,this.props,this.Ir,this.Cr,this.Sr,this.Bt.debug)}remove(){this.nr.F(this.yr,!1),this.nr.F(this.yr,!0)}clear(){this.remove(),this.props={}}register_once($,ts,is){if(O($)){C(ts)&&(ts="None"),this.Ir=C(is)?this.kr:is;var Kr=!1;if(Hi($,((Qr,ja)=>{this.props.hasOwnProperty(ja)&&this.props[ja]!==ts||(this.Tr(ja,Qr),Kr=!0)})),Kr)return this.save(),!0}return!1}register($,ts){if(O($)){this.Ir=C(ts)?this.kr:ts;var is=!1;if(Hi($,((Kr,Qr)=>{$.hasOwnProperty(Qr)&&this.props[Qr]!==Kr&&(this.Tr(Qr,Kr),is=!0)})),is)return this.save(),!0}return!1}unregister($){$ in this.props&&(this.Ar($),this.save())}update_campaign_params(){if(!this.mr){var $=Lr(this.Bt.custom_campaign_params,this.Bt.mask_personal_data_properties,this.Bt.custom_personal_data_properties);I(Yi($))||this.register($),this.mr=!0}}update_search_keyword(){var $;this.register(($=r==null?void 0:r.referrer)?Nr($):{})}update_referrer_info(){var $;this.register_once({$referrer:Br(),$referring_domain:r!=null&&r.referrer&&(($=Rr(r.referrer))==null?void 0:$.host)||zr},void 0)}set_initial_person_info(){this.props[wi]||this.props[xi]||this.register_once({[Ei]:Hr(this.Bt.mask_personal_data_properties,this.Bt.custom_personal_data_properties)},void 0)}get_initial_props(){var $={};Hi([xi,wi],(ja=>{var Ca=this.props[ja];Ca&&Hi(Ca,(function(Aa,Oa){$["$initial_"+E(Oa)]=Aa}))}));var ts,is,Kr=this.props[Ei];if(Kr){var Qr=(ts=qr(Kr),is={},Hi(ts,(function(ja,Ca){is["$initial_"+E(Ca)]=ja})),is);qi($,Qr)}return $}safe_merge($){return Hi(this.props,(function(ts,is){is in $||($[is]=ts)})),$}update_config($,ts,is){if(this.kr=this.Ir=$.cookie_expiration,this.set_disabled($.disable_persistence||!!is),this.set_cross_subdomain($.cross_subdomain_cookie),this.set_secure($.secure_cookie),$.persistence!==ts.persistence||!((ja,Ca)=>{if(ja.length!==Ca.length)return!1;var Aa=[...ja].sort(),Oa=[...Ca].sort();return Aa.every(((Ia,Da)=>Ia===Oa[Da]))})($.cookie_persisted_properties||[],ts.cookie_persisted_properties||[])){var Kr=this.br($),Qr=this.props;this.clear(),this.nr=Kr,this.props=Qr,this.save()}}set_disabled($){this._r=$,this._r?this.remove():this.save()}set_cross_subdomain($){$!==this.Cr&&(this.Cr=$,this.remove(),this.save())}set_secure($){$!==this.Sr&&(this.Sr=$,this.remove(),this.save())}set_event_timer($,ts){var is=this.props[Ue]||{};is[$]=ts,this.Tr(Ue,is),this.save()}remove_event_timer($){var ts=this.props[Ue]||{},is=ts[$];return C(is)||(delete ts[$],this.Tr(Ue,ts),this.save()),is}get_property($){return this.props[$]}set_property($,ts){this.Tr($,ts),this.save()}Tr($,ts){this.props[$]=ts}Ar($){delete this.props[$]}}var Jr={Activation:"events",Cancellation:"cancelEvents"},Zr={Popover:"popover",API:"api",Widget:"widget"},rs={SHOWN:"survey shown",DISMISSED:"survey dismissed",SENT:"survey sent"},ss={SURVEY_ID:"$survey_id",SURVEY_ITERATION:"$survey_iteration",SURVEY_LAST_SEEN_DATE:"$survey_last_seen_date"},ns={Popover:"popover",Inline:"inline"},as={SHOWN:"product tour shown"},ls={TOUR_LAST_SEEN_DATE:"$product_tour_last_seen_date",TOUR_TYPE:"$product_tour_type"},us=Ce("[RateLimiter]");class hs{constructor($){this.serverLimits={},this.lastEventRateLimited=!1,this.checkForLimiting=ts=>{var is=ts.text;if(is&&is.length)try{(JSON.parse(is).quota_limited||[]).forEach((Kr=>{us.info((Kr||"events")+" is quota limited."),this.serverLimits[Kr]=new Date().getTime()+6e4}))}catch(Kr){return void us.warn('could not rate limit - continuing. Error: "'+(Kr==null?void 0:Kr.message)+'"',{text:is})}},this.instance=$,this.lastEventRateLimited=this.clientRateLimitContext(!0).isRateLimited}get captureEventsPerSecond(){var $;return(($=this.instance.config.rate_limiting)==null?void 0:$.events_per_second)||10}get captureEventsBurstLimit(){var $;return Math.max((($=this.instance.config.rate_limiting)==null?void 0:$.events_burst_limit)||10*this.captureEventsPerSecond,this.captureEventsPerSecond)}clientRateLimitContext($){var ts,is,Kr;$===void 0&&($=!1);var{captureEventsBurstLimit:Qr,captureEventsPerSecond:ja}=this,Ca=new Date().getTime(),Aa=(ts=(is=this.instance.persistence)==null?void 0:is.get_property(yi))!==null&&ts!==void 0?ts:{tokens:Qr,last:Ca};Aa.tokens+=(Ca-Aa.last)/1e3*ja,Aa.last=Ca,Aa.tokens>Qr&&(Aa.tokens=Qr);var Oa=1>Aa.tokens;return Oa||$||(Aa.tokens=Math.max(0,Aa.tokens-1)),!Oa||this.lastEventRateLimited||$||this.instance.capture("$$client_ingestion_warning",{$$client_ingestion_warning_message:"posthog-js client rate limited. Config is set to "+ja+" events per second and "+Qr+" events burst limit."},{skip_client_rate_limiting:!0}),this.lastEventRateLimited=Oa,(Kr=this.instance.persistence)==null||Kr.set_property(yi,Aa),{isRateLimited:Oa,remainingTokens:Aa.tokens}}isServerRateLimited($){var ts=this.serverLimits[$||"events"]||!1;return ts!==!1&&new Date().getTime()<ts}}var ds=Ce("[RemoteConfig]");class vs{constructor($){this._instance=$}get remoteConfig(){var $;return($=h._POSTHOG_REMOTE_CONFIG)==null||($=$[this._instance.config.token])==null?void 0:$.config}Er($){var ts,is;(ts=h.__PosthogExtensions__)!=null&&ts.loadExternalDependency?(is=h.__PosthogExtensions__)==null||is.loadExternalDependency==null||is.loadExternalDependency(this._instance,"remote-config",(()=>$(this.remoteConfig))):$()}Rr($){this._instance._send_request({method:"GET",url:this._instance.requestRouter.endpointFor("assets","/array/"+this._instance.config.token+"/config"),callback(ts){$(ts.json)}})}load(){try{if(this.remoteConfig)return ds.info("Using preloaded remote config",this.remoteConfig),this.Nr(this.remoteConfig),void this.Mr();if(this._instance.Fr())return void ds.warn("Remote config is disabled. Falling back to local config.");this.Er(($=>{if(!$)return ds.info("No config found after loading remote JS config. Falling back to JSON."),void this.Rr((ts=>{this.Nr(ts),this.Mr()}));this.Nr($),this.Mr()}))}catch($){ds.error("Error loading remote config",$)}}stop(){this.Or&&(clearInterval(this.Or),this.Or=void 0)}refresh(){this._instance.Fr()||(r==null?void 0:r.visibilityState)==="hidden"||this._instance.reloadFeatureFlags()}Mr(){var $;if(!this.Or){var ts=($=this._instance.config.remote_config_refresh_interval_ms)!==null&&$!==void 0?$:3e5;ts!==0&&(this.Or=setInterval((()=>{this.refresh()}),ts))}}Nr($){var ts;$||ds.error("Failed to fetch remote config from PostHog."),this._instance.Nr($??{}),($==null?void 0:$.hasFeatureFlags)!==!1&&(this._instance.config.advanced_disable_feature_flags_on_first_load||(ts=this._instance.featureFlags)==null||ts.ensureFlagsLoaded())}}var ps={GZipJS:"gzip-js",Base64:"base64"},fs=Uint8Array,_s=Uint16Array,gs=Uint32Array,ms=new fs([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),bs=new fs([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ys=new fs([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ws=function(es,$){for(var ts=new _s(31),is=0;31>is;++is)ts[is]=$+=1<<es[is-1];var Kr=new gs(ts[30]);for(is=1;30>is;++is)for(var Qr=ts[is];ts[is+1]>Qr;++Qr)Kr[Qr]=Qr-ts[is]<<5|is;return[ts,Kr]},xs=ws(ms,2),Es=xs[1];xs[0][28]=258,Es[258]=28;for(var Ss=ws(bs,0)[1],$s=new _s(32768),Ts=0;32768>Ts;++Ts){var ks=(43690&Ts)>>>1|(21845&Ts)<<1;$s[Ts]=((65280&(ks=(61680&(ks=(52428&ks)>>>2|(13107&ks)<<2))>>>4|(3855&ks)<<4))>>>8|(255&ks)<<8)>>>1}var Rs=function(es,$,ts){for(var is=es.length,Kr=0,Qr=new _s($);is>Kr;++Kr)++Qr[es[Kr]-1];var ja,Ca=new _s($);for(Kr=0;$>Kr;++Kr)Ca[Kr]=Ca[Kr-1]+Qr[Kr-1]<<1;for(ja=new _s(is),Kr=0;is>Kr;++Kr)ja[Kr]=$s[Ca[es[Kr]-1]++]>>>15-es[Kr];return ja},Ps=new fs(288);for(Ts=0;144>Ts;++Ts)Ps[Ts]=8;for(Ts=144;256>Ts;++Ts)Ps[Ts]=9;for(Ts=256;280>Ts;++Ts)Ps[Ts]=7;for(Ts=280;288>Ts;++Ts)Ps[Ts]=8;var Os=new fs(32);for(Ts=0;32>Ts;++Ts)Os[Ts]=5;var Is=Rs(Ps,9),Cs=Rs(Os,5),Fs=function(es){return(es/8>>0)+(7&es&&1)},As=function(es,$,ts){(ts==null||ts>es.length)&&(ts=es.length);var is=new(es instanceof _s?_s:es instanceof gs?gs:fs)(ts-$);return is.set(es.subarray($,ts)),is},Ms=function(es,$,ts){var is=$/8>>0;es[is]|=ts<<=7&$,es[is+1]|=ts>>>8},Ds=function(es,$,ts){var is=$/8>>0;es[is]|=ts<<=7&$,es[is+1]|=ts>>>8,es[is+2]|=ts>>>16},Ls=function(es,$){for(var ts=[],is=0;es.length>is;++is)es[is]&&ts.push({s:is,f:es[is]});var Kr=ts.length,Qr=ts.slice();if(!Kr)return[new fs(0),0];if(Kr==1){var ja=new fs(ts[0].s+1);return ja[ts[0].s]=1,[ja,1]}ts.sort((function(Wa,el){return Wa.f-el.f})),ts.push({s:-1,f:25001});var Ca=ts[0],Aa=ts[1],Oa=0,Ia=1,Da=2;for(ts[0]={s:-1,f:Ca.f+Aa.f,l:Ca,r:Aa};Ia!=Kr-1;)Ca=ts[ts[Da].f>ts[Oa].f?Oa++:Da++],Aa=ts[Oa!=Ia&&ts[Da].f>ts[Oa].f?Oa++:Da++],ts[Ia++]={s:-1,f:Ca.f+Aa.f,l:Ca,r:Aa};var Ba=Qr[0].s;for(is=1;Kr>is;++is)Qr[is].s>Ba&&(Ba=Qr[is].s);var Ma=new _s(Ba+1),Fa=Us(ts[Ia-1],Ma,0);if(Fa>$){is=0;var qa=0,Ha=Fa-$,Ka=1<<Ha;for(Qr.sort((function(Wa,el){return Ma[el.s]-Ma[Wa.s]||Wa.f-el.f}));Kr>is;++is){var Qa=Qr[is].s;if($>=Ma[Qa])break;qa+=Ka-(1<<Fa-Ma[Qa]),Ma[Qa]=$}for(qa>>>=Ha;qa>0;){var Va=Qr[is].s;$>Ma[Va]?qa-=1<<$-Ma[Va]++-1:++is}for(;is>=0&&qa;--is){var Ya=Qr[is].s;Ma[Ya]==$&&(--Ma[Ya],++qa)}Fa=$}return[new fs(Ma),Fa]},Us=function(es,$,ts){return es.s==-1?Math.max(Us(es.l,$,ts+1),Us(es.r,$,ts+1)):$[es.s]=ts},Ns=function(es){for(var $=es.length;$&&!es[--$];);for(var ts=new _s(++$),is=0,Kr=es[0],Qr=1,ja=function(Aa){ts[is++]=Aa},Ca=1;$>=Ca;++Ca)if(es[Ca]==Kr&&Ca!=$)++Qr;else{if(!Kr&&Qr>2){for(;Qr>138;Qr-=138)ja(32754);Qr>2&&(ja(Qr>10?Qr-11<<5|28690:Qr-3<<5|12305),Qr=0)}else if(Qr>3){for(ja(Kr),--Qr;Qr>6;Qr-=6)ja(8304);Qr>2&&(ja(Qr-3<<5|8208),Qr=0)}for(;Qr--;)ja(Kr);Qr=1,Kr=es[Ca]}return[ts.subarray(0,is),$]},js=function(es,$){for(var ts=0,is=0;$.length>is;++is)ts+=es[is]*$[is];return ts},zs=function(es,$,ts){var is=ts.length,Kr=Fs($+2);es[Kr]=255&is,es[Kr+1]=is>>>8,es[Kr+2]=255^es[Kr],es[Kr+3]=255^es[Kr+1];for(var Qr=0;is>Qr;++Qr)es[Kr+Qr+4]=ts[Qr];return 8*(Kr+4+is)},Bs=function(es,$,ts,is,Kr,Qr,ja,Ca,Aa,Oa,Ia){Ms($,Ia++,ts),++Kr[256];for(var Da=Ls(Kr,15),Ba=Da[0],Ma=Da[1],Fa=Ls(Qr,15),qa=Fa[0],Ha=Fa[1],Ka=Ns(Ba),Qa=Ka[0],Va=Ka[1],Ya=Ns(qa),Wa=Ya[0],el=Ya[1],tl=new _s(19),rl=0;Qa.length>rl;++rl)tl[31&Qa[rl]]++;for(rl=0;Wa.length>rl;++rl)tl[31&Wa[rl]]++;for(var cl=Ls(tl,7),dl=cl[0],fl=cl[1],nl=19;nl>4&&!dl[ys[nl-1]];--nl);var ol,pl,Tl,ul,hl=Oa+5<<3,jl=js(Kr,Ps)+js(Qr,Os)+ja,Nl=js(Kr,Ba)+js(Qr,qa)+ja+14+3*nl+js(tl,dl)+(2*tl[16]+3*tl[17]+7*tl[18]);if(jl>=hl&&Nl>=hl)return zs($,Ia,es.subarray(Aa,Aa+Oa));if(Ms($,Ia,1+(jl>Nl)),Ia+=2,jl>Nl){ol=Rs(Ba,Ma),pl=Ba,Tl=Rs(qa,Ha),ul=qa;var zl=Rs(dl,fl);for(Ms($,Ia,Va-257),Ms($,Ia+5,el-1),Ms($,Ia+10,nl-4),Ia+=14,rl=0;nl>rl;++rl)Ms($,Ia+3*rl,dl[ys[rl]]);Ia+=3*nl;for(var Zl=[Qa,Wa],$l=0;2>$l;++$l){var Il=Zl[$l];for(rl=0;Il.length>rl;++rl)Ms($,Ia,zl[ql=31&Il[rl]]),Ia+=dl[ql],ql>15&&(Ms($,Ia,Il[rl]>>>5&127),Ia+=Il[rl]>>>12)}}else ol=Is,pl=Ps,Tl=Cs,ul=Os;for(rl=0;Ca>rl;++rl)if(is[rl]>255){var ql;Ds($,Ia,ol[257+(ql=is[rl]>>>18&31)]),Ia+=pl[ql+257],ql>7&&(Ms($,Ia,is[rl]>>>23&31),Ia+=ms[ql]);var Fl=31&is[rl];Ds($,Ia,Tl[Fl]),Ia+=ul[Fl],Fl>3&&(Ds($,Ia,is[rl]>>>5&8191),Ia+=bs[Fl])}else Ds($,Ia,ol[is[rl]]),Ia+=pl[is[rl]];return Ds($,Ia,ol[256]),Ia+pl[256]},Hs=new gs([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),qs=(function(){for(var es=new gs(256),$=0;256>$;++$){for(var ts=$,is=9;--is;)ts=(1&ts&&3988292384)^ts>>>1;es[$]=ts}return es})(),Vs=function(es,$,ts){for(;ts;++$)es[$]=ts,ts>>>=8};function Ws(es,$){$===void 0&&($={});var ts=(function(){var Da=4294967295;return{p(Ba){for(var Ma=Da,Fa=0;Ba.length>Fa;++Fa)Ma=qs[255&Ma^Ba[Fa]]^Ma>>>8;Da=Ma},d(){return 4294967295^Da}}})(),is=es.length;ts.p(es);var Kr,Qr,ja,Ca,Aa,Oa=(Ca=10+((Kr=$).filename&&Kr.filename.length+1||0),Aa=8,(function(Da,Ba,Ma,Fa,qa,Ha){var Ka=Da.length,Qa=new fs(Fa+Ka+5*(1+Math.floor(Ka/7e3))+qa),Va=Qa.subarray(Fa,Qa.length-qa),Ya=0;if(!Ba||8>Ka)for(var Wa=0;Ka>=Wa;Wa+=65535){var el=Wa+65535;Ka>el?Ya=zs(Va,Ya,Da.subarray(Wa,el)):(Va[Wa]=!0,Ya=zs(Va,Ya,Da.subarray(Wa,Ka)))}else{for(var tl=Hs[Ba-1],rl=tl>>>13,cl=8191&tl,dl=(1<<Ma)-1,fl=new _s(32768),nl=new _s(dl+1),ol=Math.ceil(Ma/3),pl=2*ol,Tl=function(ku){return(Da[ku]^Da[ku+1]<<ol^Da[ku+2]<<pl)&dl},ul=new gs(25e3),hl=new _s(288),jl=new _s(32),Nl=0,zl=0,Zl=(Wa=0,0),$l=0,Il=0;Ka>Wa;++Wa){var ql=Tl(Wa),Fl=32767&Wa,ru=nl[ql];if(fl[Fl]=ru,nl[ql]=Fl,Wa>=$l){var Gl=Ka-Wa;if((Nl>7e3||Zl>24576)&&Gl>423){Ya=Bs(Da,Va,0,ul,hl,jl,zl,Zl,Il,Wa-Il,Ya),Zl=Nl=zl=0,Il=Wa;for(var cu=0;286>cu;++cu)hl[cu]=0;for(cu=0;30>cu;++cu)jl[cu]=0}var Al=2,Ml=0,Ql=cl,eu=Fl-ru&32767;if(Gl>2&&ql==Tl(Wa-eu))for(var xu=Math.min(rl,Gl)-1,fu=Math.min(32767,Wa),Iu=Math.min(258,Gl);fu>=eu&&--Ql&&Fl!=ru;){if(Da[Wa+Al]==Da[Wa+Al-eu]){for(var yu=0;Iu>yu&&Da[Wa+yu]==Da[Wa+yu-eu];++yu);if(yu>Al){if(Al=yu,Ml=eu,yu>xu)break;var ic=Math.min(eu,yu-2),Lu=0;for(cu=0;ic>cu;++cu){var Bl=Wa-eu+cu+32768&32767,su=Bl-fl[Bl]+32768&32767;su>Lu&&(Lu=su,ru=Bl)}}}eu+=(Fl=ru)-(ru=fl[Fl])+32768&32767}if(Ml){ul[Zl++]=268435456|Es[Al]<<18|Ss[Ml];var Eu=31&Es[Al],lc=31&Ss[Ml];zl+=ms[Eu]+bs[lc],++hl[257+Eu],++jl[lc],$l=Wa+Al,++Nl}else ul[Zl++]=Da[Wa],++hl[Da[Wa]]}}Ya=Bs(Da,Va,!0,ul,hl,jl,zl,Zl,Il,Wa-Il,Ya)}return As(Qa,0,Fa+Fs(Ya)+qa)})(Qr=es,(ja=$).level==null?6:ja.level,ja.mem==null?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(Qr.length)))):12+ja.mem,Ca,Aa)),Ia=Oa.length;return(function(Da,Ba){var Ma=Ba.filename;if(Da[0]=31,Da[1]=139,Da[2]=8,Da[8]=2>Ba.level?4:Ba.level==9?2:0,Da[9]=3,Ba.mtime!=0&&Vs(Da,4,Math.floor(new Date(Ba.mtime||Date.now())/1e3)),Ma){Da[3]=8;for(var Fa=0;Ma.length>=Fa;++Fa)Da[Fa+10]=Ma.charCodeAt(Fa)}})(Oa,$),Vs(Oa,Ia-8,ts.d()),Vs(Oa,Ia-4,is),Oa}var Gs=!!o||!!n,Ys="text/plain",Js=!1,Ks=function(es,$,ts){var is;ts===void 0&&(ts=!0);var[Kr,Qr]=es.split("?"),ja=f({},$),Ca=(is=Qr==null?void 0:Qr.split("&").map((Oa=>{var Ia,[Da,Ba]=Oa.split("="),Ma=ts&&(Ia=ja[Da])!==null&&Ia!==void 0?Ia:Ba;return delete ja[Da],Da+"="+Ma})))!==null&&is!==void 0?is:[],Aa=(function(Oa,Ia){var Da,Ba;Ia===void 0&&(Ia="&");var Ma=[];return Hi(Oa,(function(Fa,qa){C(Fa)||C(qa)||qa==="undefined"||(Da=encodeURIComponent((Ha=>Ha instanceof File)(Fa)?Fa.name:Fa.toString()),Ba=encodeURIComponent(qa),Ma[Ma.length]=Ba+"="+Da)})),Ma.join(Ia)})(ja);return Aa&&Ca.push(Aa),Kr+"?"+Ca.join("&")},Xs=(es,$)=>JSON.stringify(es,((ts,is)=>typeof is=="bigint"?is.toString():is),$),Qs=es=>{if(es.tr)return es.tr;var{data:$,compression:ts}=es;if($){if(ts===ps.GZipJS){var is=Ws((function(Ca,Aa){var Oa=Ca.length;if(typeof TextEncoder<"u")return new TextEncoder().encode(Ca);for(var Ia=new fs(Ca.length+(Ca.length>>>1)),Da=0,Ba=function(Ha){Ia[Da++]=Ha},Ma=0;Oa>Ma;++Ma){if(Da+5>Ia.length){var Fa=new fs(Da+8+(Oa-Ma<<1));Fa.set(Ia),Ia=Fa}var qa=Ca.charCodeAt(Ma);128>qa?Ba(qa):2048>qa?(Ba(192|qa>>>6),Ba(128|63&qa)):qa>55295&&57344>qa?(Ba(240|(qa=65536+(1047552&qa)|1023&Ca.charCodeAt(++Ma))>>>18),Ba(128|qa>>>12&63),Ba(128|qa>>>6&63),Ba(128|63&qa)):(Ba(224|qa>>>12),Ba(128|qa>>>6&63),Ba(128|63&qa))}return As(Ia,0,Da)})(Xs($)),{mtime:0});return{contentType:Ys,body:is.buffer.slice(is.byteOffset,is.byteOffset+is.byteLength),estimatedSize:is.byteLength}}if(ts===ps.Base64){var Kr=(function(Ca){return Ca&&btoa(encodeURIComponent(Ca).replace(/%([0-9A-F]{2})/g,((Aa,Oa)=>String.fromCharCode(parseInt(Oa,16)))))})(Xs($)),Qr=(Ca=>"data="+encodeURIComponent(typeof Ca=="string"?Ca:Xs(Ca)))(Kr);return{contentType:"application/x-www-form-urlencoded",body:Qr,estimatedSize:new Blob([Qr]).size}}var ja=Xs($);return{contentType:"application/json",body:ja,estimatedSize:new Blob([ja]).size}}},Zs=(function(){var es=p((function*($){var ts=Xs($.data),is=yield(function(Qr,ja,Ca){return g.apply(this,arguments)})(ts,v.DEBUG,{rethrow:!0});if(!is)return $;var Kr=yield is.arrayBuffer();return f({},$,{tr:{contentType:Ys,body:Kr,estimatedSize:Kr.byteLength}})}));return function($){return es.apply(this,arguments)}})(),tn=(es,$)=>Ks(es,{_:new Date().getTime().toString(),ver:v.JS_SDK_VERSION,compression:$}),en=[];n&&en.push({transport:"fetch",method(es){var $,ts,{contentType:is,body:Kr,estimatedSize:Qr}=($=Qs(es))!==null&&$!==void 0?$:{},ja=new Headers;Hi(es.headers,(function(Ia,Da){ja.append(Da,Ia)})),is&&ja.append("Content-Type",is);var Ca=es.url,Aa=null;if(a){var Oa=new a;Aa={signal:Oa.signal,timeout:setTimeout((()=>Oa.abort()),es.timeout)}}n(Ca,f({method:(es==null?void 0:es.method)||"GET",headers:ja,keepalive:es.method==="POST"&&52428.8>(Qr||0),body:Kr,signal:(ts=Aa)==null?void 0:ts.signal},es.fetchOptions)).then((Ia=>Ia.text().then((Da=>{var Ba={statusCode:Ia.status,text:Da};if(Ia.status===200)try{Ba.json=JSON.parse(Da)}catch(Ma){Ie.error(Ma)}es.callback==null||es.callback(Ba)})))).catch((Ia=>{Ie.error(Ia),es.callback==null||es.callback({statusCode:0,error:Ia})})).finally((()=>Aa?clearTimeout(Aa.timeout):null))}}),o&&en.push({transport:"XHR",method(es){var $,ts=new o;ts.open(es.method||"GET",es.url,!0);var{contentType:is,body:Kr}=($=Qs(es))!==null&&$!==void 0?$:{};Hi(es.headers,(function(Qr,ja){ts.setRequestHeader(ja,Qr)})),is&&ts.setRequestHeader("Content-Type",is),es.timeout&&(ts.timeout=es.timeout),es.disableXHRCredentials||(ts.withCredentials=!0),ts.onreadystatechange=()=>{if(ts.readyState===4){var Qr={statusCode:ts.status,text:ts.responseText};if(ts.status===200)try{Qr.json=JSON.parse(ts.responseText)}catch{}es.callback==null||es.callback(Qr)}},ts.send(Kr)}}),i!=null&&i.sendBeacon&&en.push({transport:"sendBeacon",method(es){var $=Ks(es.url,{beacon:"1"});try{var ts,{contentType:is,body:Kr}=(ts=Qs(es))!==null&&ts!==void 0?ts:{};if(!Kr)return;var Qr=Kr instanceof Blob?Kr:new Blob([Kr],{type:is});i.sendBeacon($,Qr)}catch{}}});var rn=3e3;class sn{constructor($,ts){this.Pr=!0,this.Lr=[],this.Dr=Y((ts==null?void 0:ts.flush_interval_ms)||rn,250,5e3,Ie.createLogger("flush interval"),rn),this.Br=$}enqueue($){this.Lr.push($),this.jr||this.$r()}unload(){this.qr();var $=this.Lr.length>0?this.Zr():{},ts=Object.values($);[...ts.filter((is=>is.url.indexOf("/e")===0)),...ts.filter((is=>is.url.indexOf("/e")!==0))].map((is=>{this.Br(f({},is,{transport:"sendBeacon"}))}))}enable(){this.Pr=!1,this.$r()}$r(){var $=this;this.Pr||(this.jr=setTimeout((()=>{if(this.qr(),this.Lr.length>0){var ts=this.Zr(),is=function(){var Qr=ts[Kr],ja=new Date().getTime();Qr.data&&R(Qr.data)&&Hi(Qr.data,(Ca=>{Ca.offset=Math.abs(Ca.timestamp-ja),delete Ca.timestamp})),$.Br(Qr)};for(var Kr in ts)is()}}),this.Dr))}qr(){clearTimeout(this.jr),this.jr=void 0}Zr(){var $={};return Hi(this.Lr,(ts=>{var is,Kr=ts,Qr=(Kr?Kr.batchKey:null)||Kr.url;C($[Qr])&&($[Qr]=f({},Kr,{data:[]})),(is=$[Qr].data)==null||is.push(Kr.data)})),this.Lr=[],$}}var nn=["retriesPerformedSoFar"];class on{constructor($){this.Vr=!1,this.Hr=3e3,this.Lr=[],this._instance=$,this.Lr=[],this.zr=!0,!C(t)&&"onLine"in t.navigator&&(this.zr=t.navigator.onLine,this.Ur=()=>{this.zr=!0,this.Yr()},this.Gr=()=>{this.zr=!1},Xi(t,"online",this.Ur),Xi(t,"offline",this.Gr))}get length(){return this.Lr.length}retriableRequest($){var{retriesPerformedSoFar:ts}=$,is=_($,nn);U(ts)&&(is.url=Ks(is.url,{retry_count:ts})),this._instance._send_request(f({},is,{callback:Kr=>{Kr.statusCode===200||Kr.statusCode>=400&&500>Kr.statusCode||(ts??0)>=10?is.callback==null||is.callback(Kr):this.Wr(f({retriesPerformedSoFar:ts},is))}}))}Wr($){var ts=$.retriesPerformedSoFar||0;$.retriesPerformedSoFar=ts+1;var is=(function(ja){var Ca=3e3*Math.pow(2,ja),Aa=Ca/2,Oa=Math.min(18e5,Ca),Ia=Math.random()-.5;return Math.ceil(Oa+Ia*(Oa-Aa))})(ts),Kr=Date.now()+is;this.Lr.push({retryAt:Kr,requestOptions:$});var Qr="Enqueued failed request for retry in "+is;navigator.onLine||(Qr+=" (Browser is offline)"),Ie.warn(Qr),this.Vr||(this.Vr=!0,this.Xr())}Xr(){if(this.Jr&&clearTimeout(this.Jr),this.Lr.length===0)return this.Vr=!1,void(this.Jr=void 0);this.Jr=setTimeout((()=>{this.zr&&this.Lr.length>0&&this.Yr(),this.Xr()}),this.Hr)}Yr(){var $=Date.now(),ts=[],is=this.Lr.filter((Qr=>$>Qr.retryAt||(ts.push(Qr),!1)));if(this.Lr=ts,is.length>0)for(var{requestOptions:Kr}of is)this.retriableRequest(Kr)}unload(){for(var{requestOptions:$}of(this.Jr&&(clearTimeout(this.Jr),this.Jr=void 0),this.Vr=!1,C(t)||(this.Ur&&(t.removeEventListener("online",this.Ur),this.Ur=void 0),this.Gr&&(t.removeEventListener("offline",this.Gr),this.Gr=void 0)),this.Lr))try{this._instance._send_request(f({},$,{transport:"sendBeacon"}))}catch(ts){Ie.error(ts)}this.Lr=[]}}class an{constructor($){this.Kr=()=>{var ts,is,Kr,Qr;this.Qr||(this.Qr={});var ja=this.scrollElement(),Ca=this.scrollY(),Aa=ja?Math.max(0,ja.scrollHeight-ja.clientHeight):0,Oa=Ca+((ja==null?void 0:ja.clientHeight)||0),Ia=(ja==null?void 0:ja.scrollHeight)||0;this.Qr.lastScrollY=Math.ceil(Ca),this.Qr.maxScrollY=Math.max(Ca,(ts=this.Qr.maxScrollY)!==null&&ts!==void 0?ts:0),this.Qr.maxScrollHeight=Math.max(Aa,(is=this.Qr.maxScrollHeight)!==null&&is!==void 0?is:0),this.Qr.lastContentY=Oa,this.Qr.maxContentY=Math.max(Oa,(Kr=this.Qr.maxContentY)!==null&&Kr!==void 0?Kr:0),this.Qr.maxContentHeight=Math.max(Ia,(Qr=this.Qr.maxContentHeight)!==null&&Qr!==void 0?Qr:0)},this._instance=$}get ei(){return this._instance.config.scroll_root_selector}getContext(){return this.Qr}resetContext(){var $=this.Qr;return setTimeout(this.Kr,0),$}startMeasuringScrollPosition(){Xi(t,"scroll",this.Kr,{capture:!0}),Xi(t,"scrollend",this.Kr,{capture:!0}),Xi(t,"resize",this.Kr)}scrollElement(){if(!this.ei)return t==null?void 0:t.document.documentElement;var $=R(this.ei)?this.ei:[this.ei];for(var ts of $){var is=t==null?void 0:t.document.querySelector(ts);if(is)return is}}scrollY(){if(this.ei){var $=this.scrollElement();return $&&$.scrollTop||0}return t&&(t.scrollY||t.pageYOffset||t.document.documentElement.scrollTop)||0}scrollX(){if(this.ei){var $=this.scrollElement();return $&&$.scrollLeft||0}return t&&(t.scrollX||t.pageXOffset||t.document.documentElement.scrollLeft)||0}}var ln=es=>Hr(es==null?void 0:es.config.mask_personal_data_properties,es==null?void 0:es.config.custom_personal_data_properties);class un{constructor($,ts,is,Kr){this.ti=Qr=>{var ja=this.ri();if(!ja||ja.sessionId!==Qr){var Ca={sessionId:Qr,props:this.ii(this._instance)};this.ni.register({[bi]:Ca})}},this._instance=$,this.si=ts,this.ni=is,this.ii=Kr||ln,this.si.onSessionId(this.ti)}ri(){return this.ni.props[bi]}getSetOnceProps(){var $,ts=($=this.ri())==null?void 0:$.props;return ts?"r"in ts?qr(ts):{$referring_domain:ts.referringDomain,$pathname:ts.initialPathName,utm_source:ts.utm_source,utm_campaign:ts.utm_campaign,utm_medium:ts.utm_medium,utm_content:ts.utm_content,utm_term:ts.utm_term}:{}}getSessionProps(){var $={};return Hi(Yi(this.getSetOnceProps()),((ts,is)=>{is==="$current_url"&&(is="url"),$["$session_entry_"+E(is)]=ts})),$}}class hn{constructor(){this.oi={}}on($,ts){return this.oi[$]||(this.oi[$]=[]),this.oi[$].push(ts),()=>{this.oi[$]=this.oi[$].filter((is=>is!==ts))}}emit($,ts){for(var is of this.oi[$]||[])is(ts);for(var Kr of this.oi["*"]||[])Kr($,ts)}}var dn=Ce("[SessionId]");class vn{on($,ts){return this.ai.on($,ts)}constructor($,ts,is){var Kr;if(this.li=[],this.ui=void 0,this.ai=new hn,this.hi=(Oa,Ia)=>!(!U(Oa)||!U(Ia))&&Math.abs(Oa-Ia)>this.sessionTimeoutMs,!$.persistence)throw new Error("SessionIdManager requires a PostHogPersistence instance");if($.config.cookieless_mode===Ci)throw new Error('SessionIdManager cannot be used with cookieless_mode="always"');this.Bt=$.config,this.ni=$.persistence,this.ci=void 0,this.di=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this.vi=ts||sr,this.fi=is||sr;var Qr=this.Bt.persistence_name||this.Bt.token;if(this._sessionTimeoutMs=1e3*Y(this.Bt.session_idle_timeout_seconds||1800,60,36e3,dn.createLogger("session_idle_timeout_seconds"),1800),$.register({$configured_session_timeout_ms:this._sessionTimeoutMs}),this.pi(),this.gi="ph_"+Qr+"_window_id",this.mi="ph_"+Qr+"_primary_window_exists",this.yi()){var ja=fr.Z(this.gi),Ca=fr.Z(this.mi);ja&&!Ca?this.ci=ja:fr.F(this.gi),fr.M(this.mi,!0)}if((Kr=this.Bt.bootstrap)!=null&&Kr.sessionID)try{var Aa=(Oa=>{var Ia=this.Bt.bootstrap.sessionID.replace(/-/g,"");if(Ia.length!==32)throw new Error("Not a valid UUID");if(Ia[12]!=="7")throw new Error("Not a UUIDv7");return parseInt(Ia.substring(0,12),16)})();this.bi(this.Bt.bootstrap.sessionID,new Date().getTime(),Aa)}catch(Oa){dn.error("Invalid sessionID in bootstrap",Oa)}this.wi()}get sessionTimeoutMs(){return this._sessionTimeoutMs}onSessionId($){return C(this.li)&&(this.li=[]),this.li.push($),this.di&&$(this.di,this.ci),()=>{this.li=this.li.filter((ts=>ts!==$))}}yi(){return this.Bt.persistence!=="memory"&&!this.ni._r&&fr.R()}Ii($){$!==this.ci&&(this.ci=$,this.yi()&&fr.M(this.gi,$))}Ci(){return this.ci?this.ci:this.yi()?fr.Z(this.gi):null}bi($,ts,is){$===this.di&&ts===this._sessionActivityTimestamp&&is===this._sessionStartTimestamp||(this._sessionStartTimestamp=is,this._sessionActivityTimestamp=ts,this.di=$,this.ni.register({[Ze]:[ts,$,is]}))}Si(){var $=this.ni.props[Ze];return R($)&&$.length===2&&$.push($[0]),$||[0,null,0]}resetSessionId(){this.bi(null,null,null)}destroy(){clearTimeout(this.xi),this.xi=void 0,this.ui&&t&&(t.removeEventListener(Li,this.ui,{capture:!1}),this.ui=void 0),this.li=[]}wi(){this.ui=()=>{this.yi()&&fr.F(this.mi)},Xi(t,Li,this.ui,{capture:!1})}checkAndGetSessionAndWindowId($,ts){if($===void 0&&($=!1),ts===void 0&&(ts=null),this.Bt.cookieless_mode===Ci)throw new Error('checkAndGetSessionAndWindowId should not be called with cookieless_mode="always"');var is=ts||new Date().getTime(),[Kr,Qr,ja]=this.Si(),Ca=this.Ci(),Aa=U(ja)&&Math.abs(is-ja)>864e5,Oa=!1,Ia=!Qr,Da=!Ia&&!$&&this.hi(is,Kr);Ia||Da||Aa?(Qr=this.vi(),Ca=this.fi(),dn.info("new session ID generated",{sessionId:Qr,windowId:Ca,changeReason:{noSessionId:Ia,activityTimeout:Da,sessionPastMaximumLength:Aa}}),ja=is,Oa=!0):Ca||(Ca=this.fi(),Oa=!0);var Ba=U(Kr)&&$&&!Aa?Kr:is,Ma=U(ja)?ja:new Date().getTime();return this.Ii(Ca),this.bi(Qr,Ba,Ma),$||this.pi(),Oa&&this.li.forEach((Fa=>Fa(Qr,Ca,Oa?{noSessionId:Ia,activityTimeout:Da,sessionPastMaximumLength:Aa}:void 0))),{sessionId:Qr,windowId:Ca,sessionStartTimestamp:Ma,changeReason:Oa?{noSessionId:Ia,activityTimeout:Da,sessionPastMaximumLength:Aa}:void 0,lastActivityTimestamp:Kr}}pi(){clearTimeout(this.xi),this.xi=setTimeout((()=>{var[$]=this.Si();if(this.hi(new Date().getTime(),$)){var ts=this.di;this.resetSessionId(),this.ai.emit("forcedIdleReset",{idleSessionId:ts})}}),1.1*this.sessionTimeoutMs)}}var cn=function(es,$){if(!es)return!1;var ts=es.userAgent;if(ts&&b(ts,$))return!0;try{var is=es==null?void 0:es.userAgentData;if(is!=null&&is.brands&&is.brands.some((Kr=>b(Kr==null?void 0:Kr.brand,$))))return!0}catch{}return!!es.webdriver},pn=function(es,$){if(!(function(ts){try{new RegExp(ts)}catch{return!1}return!0})($))return!1;try{return new RegExp($).test(es)}catch{return!1}};function fn(es,$,ts){return Xs({distinct_id:es,userPropertiesToSet:$,userPropertiesToSetOnce:ts})}var _n={exact:(es,$)=>$.some((ts=>es.some((is=>ts===is)))),is_not:(es,$)=>$.every((ts=>es.every((is=>ts!==is)))),regex:(es,$)=>$.some((ts=>es.some((is=>pn(ts,is))))),not_regex:(es,$)=>$.every((ts=>es.every((is=>!pn(ts,is))))),icontains:(es,$)=>$.map(gn).some((ts=>es.map(gn).some((is=>ts.includes(is))))),not_icontains:(es,$)=>$.map(gn).every((ts=>es.map(gn).every((is=>!ts.includes(is))))),gt:(es,$)=>$.some((ts=>{var is=parseFloat(ts);return!isNaN(is)&&es.some((Kr=>is>parseFloat(Kr)))})),lt:(es,$)=>$.some((ts=>{var is=parseFloat(ts);return!isNaN(is)&&es.some((Kr=>is<parseFloat(Kr)))}))},gn=es=>es.toLowerCase();function mn(es,$){return!es||Object.entries(es).every((ts=>{var[is,Kr]=ts,Qr=$==null?void 0:$[is];if(C(Qr)||M(Qr))return!1;var ja=[String(Qr)],Ca=_n[Kr.operator];return!!Ca&&Ca(Kr.values,ja)}))}var bn="custom",yn="i.posthog.com",wn=/^\/static\//;class xn{constructor($){this.ki={},this.instance=$}get apiHost(){var $=this.instance.config.api_host.trim().replace(/\/$/,"");return $==="https://app.posthog.com"?"https://us.i.posthog.com":$}get flagsApiHost(){var $=this.instance.config.flags_api_host;return $?$.trim().replace(/\/$/,""):this.apiHost}get uiHost(){var $,ts=($=this.instance.config.ui_host)==null?void 0:$.replace(/\/$/,"");return ts||(ts=this.apiHost.replace("."+yn,".posthog.com")),ts==="https://app.posthog.com"?"https://us.posthog.com":ts}get region(){return this.ki[this.apiHost]||(this.ki[this.apiHost]=/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?"us":/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?"eu":bn),this.ki[this.apiHost]}Ti($){var ts=this.instance.config.__preview_external_dependency_versioned_paths;if(typeof ts=="string"&&wn.test($))return ts.trim().replace(/\/$/,"")||void 0}endpointFor($,ts){if(ts===void 0&&(ts=""),ts&&(ts=ts[0]==="/"?ts:"/"+ts),$==="ui")return this.uiHost+ts;if($==="flags")return this.flagsApiHost+ts;if($==="assets"){var is=this.Ti(ts);if(is)return""+is+ts}if(this.region===bn)return this.apiHost+ts;var Kr=yn+ts;switch($){case"assets":return"https://"+this.region+"-assets."+Kr;case"api":return"https://"+this.region+"."+Kr}}}var En=Ce("[Surveys]"),Sn="seenSurvey_",$n=[Zr.Popover,Zr.Widget,Zr.API],Tn={ignoreConditions:!1,ignoreDelay:!1,displayType:ns.Popover},kn=Ce("[PostHog ExternalIntegrations]"),Rn={intercom:"intercom-integration",crispChat:"crisp-chat-integration"};class Pn{constructor($){this._instance=$}ur($,ts){var is;(is=h.__PosthogExtensions__)==null||is.loadExternalDependency==null||is.loadExternalDependency(this._instance,$,(Kr=>{if(Kr)return kn.error("failed to load script",Kr);ts()}))}startIfEnabledOrStop(){var $=this,ts=function(ja){var Ca,Aa,Oa;!Kr||(Ca=h.__PosthogExtensions__)!=null&&(Ca=Ca.integrations)!=null&&Ca[ja]||$.ur(Rn[ja],(()=>{var Ia;(Ia=h.__PosthogExtensions__)==null||(Ia=Ia.integrations)==null||(Ia=Ia[ja])==null||Ia.start($._instance)})),!Kr&&(Aa=h.__PosthogExtensions__)!=null&&(Aa=Aa.integrations)!=null&&Aa[ja]&&((Oa=h.__PosthogExtensions__)==null||(Oa=Oa.integrations)==null||(Oa=Oa[ja])==null||Oa.stop())};for(var[is,Kr]of Object.entries((Qr=this._instance.config.integrations)!==null&&Qr!==void 0?Qr:{})){var Qr;ts(is)}}}var On,In={},Cn=0,Fn=()=>{},An='Consent opt in/out is not valid with cookieless_mode="always" and will be ignored',Mn="Surveys module not available",Dn="sanitize_properties is deprecated. Use before_send instead",Ln="Invalid value for property_denylist config: ",Un="posthog",Nn=!Gs&&(u==null?void 0:u.indexOf("MSIE"))===-1&&(u==null?void 0:u.indexOf("Mozilla"))===-1,jn=es=>{var $;return f({api_host:"https://us.i.posthog.com",flags_api_host:null,ui_host:null,token:"",autocapture:!0,cross_subdomain_cookie:Ki(r==null?void 0:r.location),persistence:"localStorage+cookie",persistence_name:"",cookie_persisted_properties:[],loaded:Fn,save_campaign_params:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageleave:"if_capture_pageview",defaults:es??"unset",__preview_deferred_init_extensions:!1,__preview_external_dependency_versioned_paths:!1,debug:s&&F(s==null?void 0:s.search)&&s.search.indexOf("__posthog_debug=true")!==-1||!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_web_experiments:!0,disable_surveys:!1,disable_surveys_automatic_display:!1,disable_conversations:!1,disable_product_tours:!1,disable_external_dependency_loading:!1,enable_recording_console_log:void 0,secure_cookie:(t==null||($=t.location)==null?void 0:$.protocol)==="https:",ip:!1,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:"localStorage",consent_persistence_name:null,opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},request_batching:!0,properties_string_max_length:65535,mask_all_element_attributes:!1,mask_all_text:!1,mask_personal_data_properties:!1,custom_personal_data_properties:[],advanced_disable_flags:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_only_evaluate_survey_feature_flags:!1,advanced_feature_flags_dedup_per_session:!1,advanced_enable_surveys:!1,advanced_disable_toolbar_metrics:!1,feature_flag_request_timeout_ms:3e3,surveys_request_timeout_ms:1e4,on_request_error(ts){Ie.error("Bad HTTP status: "+ts.statusCode+" "+ts.text)},get_device_id:ts=>ts,capture_performance:void 0,name:"posthog",bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800,person_profiles:Mi,before_send:void 0,request_queue_config:{flush_interval_ms:rn},error_tracking:{},_onCapture:Fn,__preview_eager_load_replay:!1},(ts=>({rageclick:!ts||"2025-11-30">ts||{content_ignorelist:!0},capture_pageview:!ts||"2025-05-24">ts||"history_change",session_recording:ts&&ts>="2025-11-30"?{strictMinimumDuration:!0}:{},external_scripts_inject_target:ts&&ts>="2026-01-30"?"head":"body",internal_or_test_user_hostname:ts&&ts>="2026-01-30"?/^(localhost|127\.0\.0\.1)$/:void 0}))(es))},zn=[["process_person","person_profiles"],["xhr_headers","request_headers"],["cookie_name","persistence_name"],["disable_cookie","disable_persistence"],["store_google","save_campaign_params"],["verbose","debug"]],Bn=es=>{var $={};for(var[ts,is]of zn)C(es[ts])||($[is]=es[ts]);var Kr=qi({},$,es);return R(es.property_blacklist)&&(C(es.property_denylist)?Kr.property_denylist=es.property_blacklist:R(es.property_denylist)?Kr.property_denylist=[...es.property_blacklist,...es.property_denylist]:Ie.error(Ln+es.property_denylist)),Kr};class Hn{constructor(){this.__forceAllowLocalhost=!1}get Ai(){return this.__forceAllowLocalhost}set Ai($){Ie.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=$}}class qn{Ei($,ts){if($){var is=this.Ri.indexOf($);is!==-1&&this.Ri.splice(is,1)}return this.Ri.push(ts),ts.initialize==null||ts.initialize(),ts}Ni(){return this.config.cookieless_mode===Ci||this.config.cookieless_mode===Ii&&this.consent.isRejected()}get decideEndpointWasHit(){var $,ts;return($=(ts=this.featureFlags)==null?void 0:ts.hasLoadedFlags)!==null&&$!==void 0&&$}get flagsEndpointWasHit(){var $,ts;return($=(ts=this.featureFlags)==null?void 0:ts.hasLoadedFlags)!==null&&$!==void 0&&$}constructor(){var $;this.webPerformance=new Hn,this.Mi=!1,this.version=v.LIB_VERSION,this.Fi=new hn,this.Ri=[],this._calculate_event_properties=this.calculateEventProperties.bind(this),this.config=jn(),this.SentryIntegration=Sr,this.sentryIntegration=is=>(function(Kr,Qr){var ja=Er(Kr,Qr);return{name:xr,processEvent:Ca=>ja(Ca)}})(this,is),this.__request_queue=[],this.__loaded=!1,this.analyticsDefaultEndpoint="/e/",this.Oi=!1,this.Pi=null,this.Li=null,this.Di=null,this.scrollManager=new an(this),this.pageViewManager=new $r(this),this.rateLimiter=new hs(this),this.requestRouter=new xn(this),this.consent=new _r(this),this.externalIntegrations=new Pn(this);var ts=($=qn.__defaultExtensionClasses)!==null&&$!==void 0?$:{};this.featureFlags=ts.featureFlags&&new ts.featureFlags(this),this.toolbar=ts.toolbar&&new ts.toolbar(this),this.surveys=ts.surveys&&new ts.surveys(this),this.conversations=ts.conversations&&new ts.conversations(this),this.logs=ts.logs&&new ts.logs(this),this.experiments=ts.experiments&&new ts.experiments(this),this.exceptions=ts.exceptions&&new ts.exceptions(this),this.people={set:(is,Kr,Qr)=>{var ja=F(is)?{[is]:Kr}:is;this.setPersonProperties(ja),Qr==null||Qr({})},set_once:(is,Kr,Qr)=>{var ja=F(is)?{[is]:Kr}:is;this.setPersonProperties(void 0,ja),Qr==null||Qr({})}},this.on("eventCaptured",(is=>Ie.info('send "'+(is==null?void 0:is.event)+'"',is)))}init($,ts,is){if(is&&is!==Un){var Kr,Qr=(Kr=In[is])!==null&&Kr!==void 0?Kr:new qn;return Qr._init($,ts,is),In[is]=Qr,In[Un][is]=Qr,Qr}return this._init($,ts,is)}_init($,ts,is){var Kr,Qr;if(ts===void 0&&(ts={}),C($)||A($))return Ie.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"),this;if(this.__loaded)return console.warn("[PostHog.js]","You have already initialized PostHog! Re-initializing is a no-op"),this;this.__loaded=!0,this.config={},ts.debug=this.Bi(ts.debug),this.ji=ts,this.$i=[],ts.person_profiles?this.Li=ts.person_profiles:ts.process_person&&(this.Li=ts.process_person),this.set_config(qi({},jn(ts.defaults),Bn(ts),{name:is,token:$})),this.config.on_xhr_error&&Ie.error("on_xhr_error is deprecated. Use on_request_error instead"),this.compression=ts.disable_compression?void 0:ps.GZipJS;var ja=this.qi();this.persistence=new Yr(this.config,ja),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Yr(f({},this.config,{persistence:"sessionStorage"}),ja);var Ca=f({},this.persistence.props),Aa=f({},this.sessionPersistence.props);this.register({$initialization_time:new Date().toISOString()}),this.Zi=new sn((Ha=>this.Vi(Ha)),this.config.request_queue_config),this.Hi=new on(this),this.__request_queue=[];var Oa=this.Ni();if(Oa||(this.sessionManager=new vn(this),this.sessionPropsManager=new un(this,this.sessionManager,this.persistence)),this.config.__preview_deferred_init_extensions?(Ie.info("Deferring extension initialization to improve startup performance"),setTimeout((()=>{this.zi(Oa)}),0)):(Ie.info("Initializing extensions synchronously"),this.zi(Oa)),v.DEBUG=v.DEBUG||this.config.debug,v.DEBUG&&Ie.info("Starting in debug mode",{this:this,config:ts,thisC:f({},this.config),p:Ca,s:Aa}),!this.config.identity_distinct_id||(Kr=ts.bootstrap)!=null&&Kr.distinctID||(ts.bootstrap=f({},ts.bootstrap,{distinctID:this.config.identity_distinct_id,isIdentifiedID:!0})),((Qr=ts.bootstrap)==null?void 0:Qr.distinctID)!==void 0){var Ia=ts.bootstrap.distinctID,Da=this.get_distinct_id(),Ba=this.persistence.get_property(mi);if(ts.bootstrap.isIdentifiedID&&Da!=null&&Da!==Ia&&Ba===Fi)this.identify(Ia);else if(ts.bootstrap.isIdentifiedID&&Da!=null&&Da!==Ia&&Ba===Ai)Ie.warn("Bootstrap distinctID differs from an already-identified user. The existing identity is preserved. Call reset() before reinitializing if you intend to switch users.");else{var Ma=this.config.get_device_id(sr()),Fa=ts.bootstrap.isIdentifiedID?Ma:Ia;this.persistence.set_property(mi,ts.bootstrap.isIdentifiedID?Ai:Fi),this.register({distinct_id:Ia,$device_id:Fa})}}if(Oa)this.register_once({distinct_id:Ti,$device_id:null},"");else if(!this.get_distinct_id()){var qa=this.config.get_device_id(sr());this.register_once({distinct_id:qa,$device_id:qa},""),this.persistence.set_property(mi,Fi)}return Xi(t,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this),{passive:!1}),ts.segment?(function(Ha,Ka){var Qa=Ha.config.segment;if(!Qa)return Ka();(function(Va,Ya){var Wa=Va.config.segment;if(!Wa)return Ya();var el=rl=>{var cl=()=>rl.anonymousId()||sr();Va.config.get_device_id=cl,rl.id()&&(Va.register({distinct_id:rl.id(),$device_id:cl()}),Va.persistence.set_property(mi,Ai)),Ya()},tl=Wa.user();"then"in tl&&P(tl.then)?tl.then(el):el(tl)})(Ha,(()=>{Qa.register((Va=>{Promise&&Promise.resolve||wr.warn("This browser does not have Promise support, and can not use the segment integration");var Ya=(Wa,el)=>{if(!el)return Wa;Wa.event.userId||Wa.event.anonymousId===Va.get_distinct_id()||(wr.info("No userId set, resetting PostHog"),Va.reset()),Wa.event.userId&&Wa.event.userId!==Va.get_distinct_id()&&(wr.info("UserId set, identifying with PostHog"),Va.identify(Wa.event.userId));var tl=Va.calculateEventProperties(el,Wa.event.properties);return Wa.event.properties=Object.assign({},tl,Wa.event.properties),Wa};return{name:"PostHog JS",type:"enrichment",version:"1.0.0",isLoaded:()=>!0,load:()=>Promise.resolve(),track:Wa=>Ya(Wa,Wa.event.event),page:Wa=>Ya(Wa,Ui),identify:Wa=>Ya(Wa,ji),screen:Wa=>Ya(Wa,"$screen")}})(Ha)).then((()=>{Ka()}))}))})(this,(()=>this.Ui())):this.Ui(),P(this.config._onCapture)&&this.config._onCapture!==Fn&&(Ie.warn("onCapture is deprecated. Please use `before_send` instead"),this.on("eventCaptured",(Ha=>this.config._onCapture(Ha.event,Ha)))),this.config.ip&&Ie.warn('The `ip` config option has NO EFFECT AT ALL and has been deprecated. Use a custom transformation or "Discard IP data" project setting instead. See https://posthog.com/tutorials/web-redact-properties#hiding-customer-ip-address for more information.'),this}zi($){var ts,is,Kr,Qr,ja,Ca,Aa,Oa=performance.now(),Ia=f({},qn.__defaultExtensionClasses,this.config.__extensionClasses),Da=[];Ia.featureFlags&&this.Ri.push(this.featureFlags=(ts=this.featureFlags)!==null&&ts!==void 0?ts:new Ia.featureFlags(this)),Ia.exceptions&&this.Ri.push(this.exceptions=(is=this.exceptions)!==null&&is!==void 0?is:new Ia.exceptions(this)),Ia.historyAutocapture&&this.Ri.push(this.historyAutocapture=new Ia.historyAutocapture(this)),Ia.tracingHeaders&&this.Ri.push(new Ia.tracingHeaders(this)),Ia.siteApps&&this.Ri.push(this.siteApps=new Ia.siteApps(this)),Ia.sessionRecording&&!$&&this.Ri.push(this.sessionRecording=new Ia.sessionRecording(this)),this.config.disable_scroll_properties||Da.push((()=>{this.scrollManager.startMeasuringScrollPosition()})),Ia.autocapture&&this.Ri.push(this.autocapture=new Ia.autocapture(this)),Ia.surveys&&this.Ri.push(this.surveys=(Kr=this.surveys)!==null&&Kr!==void 0?Kr:new Ia.surveys(this)),Ia.logs&&this.Ri.push(this.logs=(Qr=this.logs)!==null&&Qr!==void 0?Qr:new Ia.logs(this)),Ia.conversations&&this.Ri.push(this.conversations=(ja=this.conversations)!==null&&ja!==void 0?ja:new Ia.conversations(this)),Ia.productTours&&this.Ri.push(this.productTours=new Ia.productTours(this)),Ia.heatmaps&&this.Ri.push(this.heatmaps=new Ia.heatmaps(this)),Ia.webVitalsAutocapture&&this.Ri.push(this.webVitalsAutocapture=new Ia.webVitalsAutocapture(this)),Ia.exceptionObserver&&this.Ri.push(this.exceptionObserver=new Ia.exceptionObserver(this)),Ia.deadClicksAutocapture&&this.Ri.push(this.deadClicksAutocapture=new Ia.deadClicksAutocapture(this,br)),Ia.toolbar&&this.Ri.push(this.toolbar=(Ca=this.toolbar)!==null&&Ca!==void 0?Ca:new Ia.toolbar(this)),Ia.experiments&&this.Ri.push(this.experiments=(Aa=this.experiments)!==null&&Aa!==void 0?Aa:new Ia.experiments(this)),this.Ri.forEach((Ba=>{Ba.initialize&&Da.push((()=>{Ba.initialize==null||Ba.initialize()}))})),Da.push((()=>{if(this.Yi){var Ba=this.Yi;this.Yi=void 0,this.Nr(Ba)}})),this.Gi(Da,Oa)}Gi($,ts){for(;$.length>0;){if(this.config.__preview_deferred_init_extensions&&performance.now()-ts>=30&&$.length>0)return void setTimeout((()=>{this.Gi($,ts)}),0);var is=$.shift();if(is)try{is()}catch(Qr){Ie.error("Error initializing extension:",Qr)}}var Kr=Math.round(performance.now()-ts);this.register_for_session({[ki]:this.config.__preview_deferred_init_extensions?"deferred":"synchronous",[Ri]:Kr}),this.config.__preview_deferred_init_extensions&&Ie.info("PostHog extensions initialized ("+Kr+"ms)")}Nr($){var ts;if(!r||!r.body)return Ie.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout((()=>{this.Nr($)}),500);this.config.__preview_deferred_init_extensions&&(this.Yi=$),this.Wi=$,this.compression=void 0,$.supportedCompression&&!this.config.disable_compression&&(this.compression=w($.supportedCompression,ps.GZipJS)?ps.GZipJS:w($.supportedCompression,ps.Base64)?ps.Base64:void 0),(ts=$.analytics)!=null&&ts.endpoint&&(this.analyticsDefaultEndpoint=$.analytics.endpoint),this.set_config({person_profiles:this.Li?this.Li:Mi}),this.Ri.forEach((is=>is.onRemoteConfig==null?void 0:is.onRemoteConfig($)))}Ui(){try{this.config.loaded(this)}catch(is){Ie.critical("`loaded` function failed",is)}if(this.Xi(),this.config.internal_or_test_user_hostname&&s!=null&&s.hostname){var $=s.hostname,ts=this.config.internal_or_test_user_hostname;(typeof ts=="string"?$===ts:ts.test($))&&this.setInternalOrTestUser()}this.config.capture_pageview&&setTimeout((()=>{(this.consent.isOptedIn()||this.Ni())&&this.Ji()}),1),this.Ki=new vs(this),this.Ki.load()}Xi(){var $;this.is_capturing()&&this.config.request_batching&&(($=this.Zi)==null||$.enable())}_dom_loaded(){this.is_capturing()&&Bi(this.__request_queue,($=>this.Vi($))),this.__request_queue=[],this.Xi()}_handle_unload(){var $,ts,is,Kr;($=this.surveys)==null||$.handlePageUnload(),this.config.request_batching?(this.Qi()&&this.capture(Ni),(ts=this.logs)==null||ts.flushLogs("sendBeacon"),(is=this.Zi)==null||is.unload(),(Kr=this.Hi)==null||Kr.unload()):this.Qi()&&this.capture(Ni,null,{transport:"sendBeacon"})}_send_request($){this.__loaded&&(Nn?this.__request_queue.push($):this.rateLimiter.isServerRateLimited($.batchKey)||($.transport=$.transport||this.config.api_transport,$.url=Ks($.url,{ip:this.config.ip?1:0}),$.headers=f({},this.config.request_headers,$.headers),$.compression=$.compression==="best-available"?this.compression:$.compression,$.disableXHRCredentials=this.config.__preview_disable_xhr_credentials,this.config.__preview_disable_beacon&&($.disableTransport=["sendBeacon"]),$.fetchOptions=$.fetchOptions||this.config.fetch_options,(ts=>{var is,Kr,Qr,ja=f({},ts);ja.timeout=ja.timeout||6e4,ja.url=tn(ja.url,ja.compression);var Ca=(is=ja.transport)!==null&&is!==void 0?is:"fetch",Aa=en.filter((Ia=>!ja.disableTransport||!Ia.transport||!ja.disableTransport.includes(Ia.transport))),Oa=(Kr=(Qr=(function(Ia,Da){for(var Ba=0;Ia.length>Ba;Ba++)if(Ia[Ba].transport===Ca)return Ia[Ba]})(Aa))==null?void 0:Qr.method)!==null&&Kr!==void 0?Kr:Aa[0].method;if(!Oa)throw new Error("No available transport method");Ca!=="sendBeacon"&&ja.data&&ja.compression===ps.GZipJS&&l&&!Js?Zs(ja).then((Ia=>{Oa(Ia)})).catch((Ia=>{if((Da=>!(!Da||typeof Da!="object")&&("name"in Da?String(Da.name):"")==="NotReadableError")(Ia))return Js=!0,void Oa(f({},ja,{compression:void 0,url:tn(ts.url,void 0)}));Oa(ja)})):Oa(ja)})(f({},$,{callback:ts=>{var is,Kr;this.rateLimiter.checkForLimiting(ts),400>ts.statusCode||(is=(Kr=this.config).on_request_error)==null||is.call(Kr,ts),$.callback==null||$.callback(ts)}}))))}Vi($){this.Hi?this.Hi.retriableRequest($):this._send_request($)}_execute_array($){Cn++;try{var ts,is=[],Kr=[],Qr=[];Bi($,(Ca=>{Ca&&(R(ts=Ca[0])?Qr.push(Ca):P(Ca)?Ca.call(this):R(Ca)&&ts==="alias"?is.push(Ca):R(Ca)&&ts.indexOf("capture")!==-1&&P(this[ts])?Qr.push(Ca):Kr.push(Ca))}));var ja=function(Ca,Aa){Bi(Ca,(function(Oa){if(R(Oa[0])){var Ia=Aa;Hi(Oa,(function(Da){Ia=Ia[Da[0]].apply(Ia,Da.slice(1))}))}else Aa[Oa[0]].apply(Aa,Oa.slice(1))}))};ja(is,this),ja(Kr,this),ja(Qr,this)}finally{Cn--}}push($){if(Cn>0&&R($)&&F($[0])){var ts=qn.prototype[$[0]];P(ts)&&ts.apply(this,$.slice(1))}else this._execute_array([$])}capture($,ts,is){var Kr,Qr,ja,Ca,Aa;if(this.__loaded&&this.persistence&&this.sessionPersistence&&this.Zi){if(this.is_capturing())if(!C($)&&F($)){var Oa=!this.config.opt_out_useragent_filter&&this._is_bot();if(!Oa||this.config.__preview_capture_bot_pageviews){var Ia=is!=null&&is.skip_client_rate_limiting?void 0:this.rateLimiter.clientRateLimitContext();if(Ia==null||!Ia.isRateLimited){ts!=null&&ts.$current_url&&!F(ts==null?void 0:ts.$current_url)&&(Ie.error("Invalid `$current_url` property provided to `posthog.capture`. Input must be a string. Ignoring provided value."),ts==null||delete ts.$current_url),$!=="$exception"||is!=null&&is.en||Ie.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.sessionPersistence.update_search_keyword(),this.config.save_campaign_params&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info(),(this.config.save_campaign_params||this.config.save_referrer)&&this.persistence.set_initial_person_info();var Da=new Date,Ba=(is==null?void 0:is.timestamp)||Da,Ma=sr(),Fa={uuid:Ma,event:$,properties:this.calculateEventProperties($,ts||{},Ba,Ma)};$===Ui&&this.config.__preview_capture_bot_pageviews&&Oa&&(Fa.event="$bot_pageview",Fa.properties.$browser_type="bot"),Ia&&(Fa.properties.$lib_rate_limit_remaining_tokens=Ia.remainingTokens),is!=null&&is.$set&&(Fa.$set=is==null?void 0:is.$set);var qa,Ha,Ka,Qa=this.tn(is==null?void 0:is.$set_once,$!==zi,$===ji);if(Qa&&(Fa.$set_once=Qa),is!=null&&is._noTruncate||(Qr=this.config.properties_string_max_length,ja=Fa,Ca=cl=>F(cl)?cl.slice(0,Qr):cl,Aa=new Set,Fa=(function cl(dl,fl){return dl!==Object(dl)?Ca?Ca(dl):dl:Aa.has(dl)?void 0:(Aa.add(dl),R(dl)?(nl=[],Bi(dl,(ol=>{nl.push(cl(ol))}))):(nl={},Hi(dl,((ol,pl)=>{Aa.has(ol)||(nl[pl]=cl(ol))}))),nl);var nl})(ja)),Fa.timestamp=Ba,C(is==null?void 0:is.timestamp)||(Fa.properties.$event_time_override_provided=!0,Fa.properties.$event_time_override_system_time=Da),$===rs.DISMISSED||$===rs.SENT){var Va=ts==null?void 0:ts[ss.SURVEY_ID],Ya=ts==null?void 0:ts[ss.SURVEY_ITERATION];(cl=>{try{var dl=(fl=>((nl,ol)=>{var pl=""+Sn+ol.id;return ol.current_iteration&&ol.current_iteration>0&&(pl=""+Sn+ol.id+"_"+ol.current_iteration),pl})(0,fl))(cl);if(localStorage.getItem(dl))return;localStorage.setItem(dl,"true")}catch(fl){En.error("Failed to persist survey seen state",fl)}})({id:Va,current_iteration:Ya}),Fa.$set=f({},Fa.$set,{[(qa={id:Va,current_iteration:Ya},Ha=$===rs.SENT?"responded":"dismissed",Ka="$survey_"+Ha+"/"+qa.id,qa.current_iteration&&qa.current_iteration>0&&(Ka="$survey_"+Ha+"/"+qa.id+"/"+qa.current_iteration),Ka)]:!0})}else $===rs.SHOWN&&(Fa.$set=f({},Fa.$set,{[ss.SURVEY_LAST_SEEN_DATE]:new Date().toISOString()}));if($===as.SHOWN){var Wa=ts==null?void 0:ts[ls.TOUR_TYPE];Wa&&(Fa.$set=f({},Fa.$set,{[ls.TOUR_LAST_SEEN_DATE+"/"+Wa]:new Date().toISOString()}))}var el=f({},Fa.properties.$set,Fa.$set);if(I(el)||this.setPersonPropertiesForFlags(el),!D(this.config.before_send)){var tl=this.rn(Fa);if(!tl)return;Fa=tl}this.Fi.emit("eventCaptured",Fa);var rl={method:"POST",url:(Kr=is==null?void 0:is._url)!==null&&Kr!==void 0?Kr:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),data:Fa,compression:"best-available",batchKey:is==null?void 0:is._batchKey};return!this.config.request_batching||is&&(is==null||!is._batchKey)||is!=null&&is.send_instantly?this.Vi(rl):this.Zi.enqueue(rl),Fa}Ie.critical("This capture call is ignored due to client rate limiting.")}}else Ie.error("No event name provided to posthog.capture")}else Ie.uninitializedWarning("posthog.capture")}_addCaptureHook($){return this.on("eventCaptured",(ts=>$(ts.event,ts)))}calculateEventProperties($,ts,is,Kr,Qr){if(is=is||new Date,!this.persistence||!this.sessionPersistence)return ts;var ja=Qr?void 0:this.persistence.remove_event_timer($),Ca=f({},ts);if(Ca.token=this.config.token,Ca.$config_defaults=this.config.defaults,this.Ni()&&(Ca.$cookieless_mode=!0),$==="$snapshot"){var Aa=f({},this.persistence.properties(),this.sessionPersistence.properties());return Ca.distinct_id=Aa.distinct_id,(!F(Ca.distinct_id)&&!L(Ca.distinct_id)||A(Ca.distinct_id))&&Ie.error("Invalid distinct_id for replay event. This indicates a bug in your implementation"),Ca}var Oa,Ia=(function(Ka,Qa){var Va,Ya,Wa,el;if(!u)return{};var tl,rl,cl,dl,fl,nl,ol,pl,Tl=Ka?[...Fr,...Qa||[]]:[],[ul,hl]=(function(jl){for(var Nl=0;Wt.length>Nl;Nl++){var[zl,Zl]=Wt[Nl],$l=zl.exec(jl),Il=$l&&(P(Zl)?Zl($l,jl):Zl);if(Il)return Il}return["",""]})(u);return qi(Yi({$os:ul,$os_version:hl,$browser:Ht(u,navigator.vendor),$device:Gt(u),$device_type:(rl=u,cl={userAgentDataPlatform:(Va=navigator)==null||(Va=Va.userAgentData)==null?void 0:Va.platform,maxTouchPoints:(Ya=navigator)==null?void 0:Ya.maxTouchPoints,screenWidth:t==null||(Wa=t.screen)==null?void 0:Wa.width,screenHeight:t==null||(el=t.screen)==null?void 0:el.height,devicePixelRatio:t==null?void 0:t.devicePixelRatio},pl=Gt(rl),pl===st||pl===rt||pl==="Kobo"||pl==="Kindle Fire"||pl===At?it:pl===Et||pl===$t||pl===St||pl===It?"Console":pl===ot?"Wearable":pl?Z:(cl==null?void 0:cl.userAgentDataPlatform)==="Android"&&((dl=cl==null?void 0:cl.maxTouchPoints)!==null&&dl!==void 0?dl:0)>0?600>Math.min((fl=cl==null?void 0:cl.screenWidth)!==null&&fl!==void 0?fl:0,(nl=cl==null?void 0:cl.screenHeight)!==null&&nl!==void 0?nl:0)/((ol=cl==null?void 0:cl.devicePixelRatio)!==null&&ol!==void 0?ol:1)?Z:it:"Desktop"),$timezone:Vr(),$timezone_offset:Wr()}),{$current_url:Or(s==null?void 0:s.href,Tl,Mr),$host:s==null?void 0:s.host,$pathname:s==null?void 0:s.pathname,$raw_user_agent:u.length>1e3?u.substring(0,997)+"...":u,$browser_version:Vt(u,navigator.vendor),$browser_language:jr(),$browser_language_prefix:(tl=jr(),typeof tl=="string"?tl.split("-")[0]:void 0),$screen_height:t==null?void 0:t.screen.height,$screen_width:t==null?void 0:t.screen.width,$viewport_height:t==null?void 0:t.innerHeight,$viewport_width:t==null?void 0:t.innerWidth,$lib:v.LIB_NAME,$lib_version:v.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:Date.now()/1e3})})(this.config.mask_personal_data_properties,this.config.custom_personal_data_properties);if(this.sessionManager){var{sessionId:Da,windowId:Ba}=this.sessionManager.checkAndGetSessionAndWindowId(Qr,is.getTime());Ca.$session_id=Da,Ca.$window_id=Ba}this.sessionPropsManager&&qi(Ca,this.sessionPropsManager.getSessionProps());try{var Ma;this.sessionRecording&&qi(Ca,this.sessionRecording.sdkDebugProperties),Ca.$sdk_debug_retry_queue_size=(Ma=this.Hi)==null?void 0:Ma.length}catch(Ka){Ca.$sdk_debug_error_capturing_properties=String(Ka)}if(this.requestRouter.region===bn&&(Ca.$lib_custom_api_host=this.config.api_host),Oa=$!==Ui||Qr?$!==Ni||Qr?this.pageViewManager.doEvent():this.pageViewManager.doPageLeave(is):this.pageViewManager.doPageView(is,Kr),Ca=qi(Ca,Oa),$===Ui&&r&&(Ca.title=r.title),!C(ja)){var Fa=is.getTime()-ja;Ca.$duration=parseFloat((Fa/1e3).toFixed(3))}u&&this.config.opt_out_useragent_filter&&(Ca.$browser_type=this._is_bot()?"bot":"browser"),(Ca=qi({},Ia,this.persistence.properties(),this.sessionPersistence.properties(),Ca)).$is_identified=this._isIdentified(),R(this.config.property_denylist)?Hi(this.config.property_denylist,(function(Ka){delete Ca[Ka]})):Ie.error(Ln+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var qa=this.config.sanitize_properties;qa&&(Ie.error(Dn),Ca=qa(Ca,$));var Ha=this.nn();return Ca.$process_person_profile=Ha,Ha&&!Qr&&this.sn("_calculate_event_properties"),Ca}tn($,ts,is){var Kr;if(ts===void 0&&(ts=!0),is===void 0&&(is=!1),!this.persistence||!this.nn()||this.Mi&&!is)return $;var Qr=this.persistence.get_initial_props(),ja=(Kr=this.sessionPropsManager)==null?void 0:Kr.getSetOnceProps(),Ca=qi({},Qr,ja||{},$||{}),Aa=this.config.sanitize_properties;return Aa&&(Ie.error(Dn),Ca=Aa(Ca,"$set_once")),ts&&(this.Mi=!0),I(Ca)?void 0:Ca}register($,ts){var is;(is=this.persistence)==null||is.register($,ts)}register_once($,ts,is){var Kr;(Kr=this.persistence)==null||Kr.register_once($,ts,is)}register_for_session($){var ts;(ts=this.sessionPersistence)==null||ts.register($)}unregister($){var ts;(ts=this.persistence)==null||ts.unregister($)}unregister_for_session($){var ts;(ts=this.sessionPersistence)==null||ts.unregister($)}an($,ts){this.register({[$]:ts})}getFeatureFlag($,ts){var is;return(is=this.featureFlags)==null?void 0:is.getFeatureFlag($,ts)}getFeatureFlagPayload($){var ts;return(ts=this.featureFlags)==null?void 0:ts.getFeatureFlagPayload($)}getFeatureFlagResult($,ts){var is;return(is=this.featureFlags)==null?void 0:is.getFeatureFlagResult($,ts)}isFeatureEnabled($,ts){var is;return(is=this.featureFlags)==null?void 0:is.isFeatureEnabled($,ts)}reloadFeatureFlags(){var $;($=this.featureFlags)==null||$.reloadFeatureFlags()}updateFlags($,ts,is){var Kr;(Kr=this.featureFlags)==null||Kr.updateFlags($,ts,is)}updateEarlyAccessFeatureEnrollment($,ts,is){var Kr;(Kr=this.featureFlags)==null||Kr.updateEarlyAccessFeatureEnrollment($,ts,is)}getEarlyAccessFeatures($,ts,is){var Kr;return ts===void 0&&(ts=!1),(Kr=this.featureFlags)==null?void 0:Kr.getEarlyAccessFeatures($,ts,is)}on($,ts){return this.Fi.on($,ts)}onFeatureFlags($){return this.featureFlags?this.featureFlags.onFeatureFlags($):($([],{},{errorsLoading:!0}),()=>{})}onSurveysLoaded($){return this.surveys?this.surveys.onSurveysLoaded($):($([],{isLoaded:!1,error:Mn}),()=>{})}onSessionId($){var ts,is;return(ts=(is=this.sessionManager)==null?void 0:is.onSessionId($))!==null&&ts!==void 0?ts:()=>{}}getSurveys($,ts){ts===void 0&&(ts=!1),this.surveys?this.surveys.getSurveys($,ts):$([],{isLoaded:!1,error:Mn})}getActiveMatchingSurveys($,ts){ts===void 0&&(ts=!1),this.surveys?this.surveys.getActiveMatchingSurveys($,ts):$([],{isLoaded:!1,error:Mn})}renderSurvey($,ts){var is;(is=this.surveys)==null||is.renderSurvey($,ts)}displaySurvey($,ts){var is;ts===void 0&&(ts=Tn),(is=this.surveys)==null||is.displaySurvey($,ts)}cancelPendingSurvey($){var ts;(ts=this.surveys)==null||ts.cancelPendingSurvey($)}canRenderSurvey($){var ts,is;return(ts=(is=this.surveys)==null?void 0:is.canRenderSurvey($))!==null&&ts!==void 0?ts:{visible:!1,disabledReason:Mn}}canRenderSurveyAsync($,ts){var is,Kr;return ts===void 0&&(ts=!1),(is=(Kr=this.surveys)==null?void 0:Kr.canRenderSurveyAsync($,ts))!==null&&is!==void 0?is:Promise.resolve({visible:!1,disabledReason:Mn})}ln($){return!$||A($)?(Ie.critical("Unique user id has not been set in posthog.identify"),!1):$===Ti?(Ie.critical('The string "'+$+'" was set in posthog.identify which indicates an error. This ID is only used as a sentinel value.'),!1):!["distinct_id","distinctid"].includes($.toLowerCase())&&!["undefined","null"].includes($.toLowerCase())||(Ie.critical('The string "'+$+'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.'),!1)}identify($,ts,is){if(!this.__loaded||!this.persistence)return Ie.uninitializedWarning("posthog.identify");if(L($)&&($=$.toString(),Ie.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),this.ln($)&&this.sn("posthog.identify")){var Kr=this.get_distinct_id();this.register({$user_id:$}),this.get_property(De)||this.register_once({$had_persisted_distinct_id:!0,$device_id:Kr},""),$!==Kr&&$!==this.get_property(Le)&&(this.unregister(Le),this.register({distinct_id:$}));var Qr,ja=(this.persistence.get_property(mi)||Fi)===Fi;$!==Kr&&ja?(this.persistence.set_property(mi,Ai),this.setPersonPropertiesForFlags({$set:ts||{},$set_once:is||{}},!1),this.capture(ji,{distinct_id:$,$anon_distinct_id:Kr},{$set:ts||{},$set_once:is||{}}),this.Di=fn($,ts,is),(Qr=this.featureFlags)==null||Qr.setAnonymousDistinctId(Kr)):(ts||is)&&this.setPersonProperties(ts,is),$!==Kr&&(this.reloadFeatureFlags(),this.unregister(pi))}}setPersonProperties($,ts){if(($||ts)&&this.sn("posthog.setPersonProperties")){var is=fn(this.get_distinct_id(),$,ts);this.Di!==is?(this.setPersonPropertiesForFlags({$set:$||{},$set_once:ts||{}},!0),this.capture("$set",{$set:$||{},$set_once:ts||{}}),this.Di=is):Ie.info("A duplicate setPersonProperties call was made with the same properties. It has been ignored.")}}group($,ts,is){if($&&ts){var Kr=this.getGroups(),Qr=Kr[$]!==ts;if(Qr&&this.resetGroupPropertiesForFlags($),this.register({$groups:f({},Kr,{[$]:ts})}),Qr||is){var ja={$group_type:$,$group_key:ts};is&&(ja.$group_set=is),this.capture(zi,ja)}is&&this.setGroupPropertiesForFlags({[$]:is}),Qr&&!is&&this.reloadFeatureFlags()}else Ie.error("posthog.group requires a group type and group key")}resetGroups(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}setPersonPropertiesForFlags($,ts){var is;ts===void 0&&(ts=!0),(is=this.featureFlags)==null||is.setPersonPropertiesForFlags($,ts)}resetPersonPropertiesForFlags(){var $;($=this.featureFlags)==null||$.resetPersonPropertiesForFlags()}setGroupPropertiesForFlags($,ts){var is;ts===void 0&&(ts=!0),this.sn("posthog.setGroupPropertiesForFlags")&&((is=this.featureFlags)==null||is.setGroupPropertiesForFlags($,ts))}resetGroupPropertiesForFlags($){var ts;(ts=this.featureFlags)==null||ts.resetGroupPropertiesForFlags($)}reset($){var ts,is,Kr,Qr,ja,Ca,Aa,Oa;if(Ie.info("reset"),!this.__loaded)return Ie.uninitializedWarning("posthog.reset");var Ia=this.get_property(De);if(this.consent.reset(),(ts=this.persistence)==null||ts.clear(),(is=this.sessionPersistence)==null||is.clear(),(Kr=this.surveys)==null||Kr.reset(),(Qr=this.Ki)==null||Qr.stop(),(ja=this.featureFlags)==null||ja.reset(),(Ca=this.conversations)==null||Ca.reset(),(Aa=this.persistence)==null||Aa.set_property(mi,Fi),(Oa=this.sessionManager)==null||Oa.resetSessionId(),this.Di=null,this.config.cookieless_mode===Ci)this.register_once({distinct_id:Ti,$device_id:null},"");else{var Da=this.config.get_device_id(sr());this.register_once({distinct_id:Da,$device_id:$?Da:Ia},"")}this.register({$last_posthog_reset:new Date().toISOString()},1),delete this.config.identity_distinct_id,delete this.config.identity_hash,this.reloadFeatureFlags()}setIdentity($,ts){var is;this.config.identity_distinct_id=$,this.config.identity_hash=ts,this.alias($),(is=this.conversations)==null||is.un()}clearIdentity(){var $;delete this.config.identity_distinct_id,delete this.config.identity_hash,($=this.conversations)==null||$.hn()}get_distinct_id(){return this.get_property("distinct_id")}getGroups(){return this.get_property("$groups")||{}}get_session_id(){var $,ts;return($=(ts=this.sessionManager)==null?void 0:ts.checkAndGetSessionAndWindowId(!0).sessionId)!==null&&$!==void 0?$:""}get_session_replay_url($){if(!this.sessionManager)return"";var{sessionId:ts,sessionStartTimestamp:is}=this.sessionManager.checkAndGetSessionAndWindowId(!0),Kr=this.requestRouter.endpointFor("ui","/project/"+this.config.token+"/replay/"+ts);if($!=null&&$.withTimestamp&&is){var Qr,ja=(Qr=$.timestampLookBack)!==null&&Qr!==void 0?Qr:10;if(!is)return Kr;Kr+="?t="+Math.max(Math.floor((new Date().getTime()-is)/1e3)-ja,0)}return Kr}alias($,ts){return $===this.get_property(Me)?(Ie.critical("Attempting to create alias for existing People user - aborting."),-2):this.sn("posthog.alias")?(C(ts)&&(ts=this.get_distinct_id()),$!==ts?(this.an(Le,$),this.capture("$create_alias",{alias:$,distinct_id:ts})):(Ie.warn("alias matches current distinct_id - skipping api call."),this.identify($),-1)):void 0}set_config($){var ts=f({},this.config);if(O($)){var is,Kr,Qr,ja,Ca,Aa,Oa,Ia,Da,Ba;qi(this.config,Bn($));var Ma=this.qi();(is=this.persistence)==null||is.update_config(this.config,ts,Ma),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Yr(f({},this.config,{persistence:"sessionStorage"}),Ma);var Fa=this.Bi(this.config.debug);N(Fa)&&(this.config.debug=Fa),N(this.config.debug)&&(this.config.debug?(v.DEBUG=!0,hr.R()&&hr.M("ph_debug",!0),Ie.info("set_config",{config:$,oldConfig:ts,newConfig:f({},this.config)})):(v.DEBUG=!1,hr.R()&&hr.F("ph_debug"))),(Kr=this.exceptionObserver)==null||Kr.onConfigChange(),(Qr=this.exceptions)==null||Qr.onConfigChange(),(ja=this.sessionRecording)==null||ja.startIfEnabledOrStop(),(Ca=this.autocapture)==null||Ca.startIfEnabled(),(Aa=this.heatmaps)==null||Aa.startIfEnabled(),(Oa=this.exceptionObserver)==null||Oa.startIfEnabledOrStop(),(Ia=this.deadClicksAutocapture)==null||Ia.startIfEnabledOrStop(),(Da=this.surveys)==null||Da.loadIfEnabled(),this.cn(),(Ba=this.externalIntegrations)==null||Ba.startIfEnabledOrStop()}}_overrideSDKInfo($,ts){v.LIB_NAME=$,v.LIB_VERSION=ts}startSessionRecording($){var ts,is,Kr,Qr,ja,Ca=$===!0,Aa={sampling:Ca||!($==null||!$.sampling),linked_flag:Ca||!($==null||!$.linked_flag),url_trigger:Ca||!($==null||!$.url_trigger),event_trigger:Ca||!($==null||!$.event_trigger)};Object.values(Aa).some(Boolean)&&((ts=this.sessionManager)==null||ts.checkAndGetSessionAndWindowId(),Aa.sampling&&((is=this.sessionRecording)==null||is.overrideSampling()),Aa.linked_flag&&((Kr=this.sessionRecording)==null||Kr.overrideLinkedFlag()),Aa.url_trigger&&((Qr=this.sessionRecording)==null||Qr.overrideTrigger("url")),Aa.event_trigger&&((ja=this.sessionRecording)==null||ja.overrideTrigger("event"))),this.set_config({disable_session_recording:!1})}stopSessionRecording(){this.set_config({disable_session_recording:!0})}sessionRecordingStarted(){var $;return!(($=this.sessionRecording)==null||!$.started)}captureException($,ts){if(this.exceptions){var is=new Error("PostHog syntheticException"),Kr=this.exceptions.buildProperties($,{handled:!0,syntheticException:is});return this.exceptions.sendExceptionEvent(f({},Kr,ts))}}addExceptionStep($,ts){var is;(is=this.exceptions)==null||is.addExceptionStep($,ts)}captureLog($){var ts;(ts=this.logs)==null||ts.captureLog($)}get logger(){var $,ts;return($=(ts=this.logs)==null?void 0:ts.logger)!==null&&$!==void 0?$:qn.dn}startExceptionAutocapture($){this.set_config({capture_exceptions:$==null||$})}stopExceptionAutocapture(){this.set_config({capture_exceptions:!1})}loadToolbar($){var ts,is;return(ts=(is=this.toolbar)==null?void 0:is.loadToolbar($))!==null&&ts!==void 0&&ts}get_property($){var ts;return(ts=this.persistence)==null?void 0:ts.props[$]}getSessionProperty($){var ts;return(ts=this.sessionPersistence)==null?void 0:ts.props[$]}toString(){var $,ts=($=this.config.name)!==null&&$!==void 0?$:Un;return ts!==Un&&(ts=Un+"."+ts),ts}_isIdentified(){var $,ts;return(($=this.persistence)==null?void 0:$.get_property(mi))===Ai||((ts=this.sessionPersistence)==null?void 0:ts.get_property(mi))===Ai}nn(){var $,ts;return!(this.config.person_profiles==="never"||this.config.person_profiles===Mi&&!this._isIdentified()&&I(this.getGroups())&&(($=this.persistence)==null||($=$.props)==null||!$[Le])&&((ts=this.persistence)==null||(ts=ts.props)==null||!ts[Si]))}Qi(){return this.config.capture_pageleave===!0||this.config.capture_pageleave==="if_capture_pageview"&&(this.config.capture_pageview===!0||this.config.capture_pageview==="history_change")}createPersonProfile(){this.nn()||this.sn("posthog.createPersonProfile")&&this.setPersonProperties({},{})}setInternalOrTestUser(){this.sn("posthog.setInternalOrTestUser")&&this.setPersonProperties({$internal_or_test_user:!0})}sn($){return this.config.person_profiles==="never"?(Ie.error($+' was called, but process_person is set to "never". This call will be ignored.'),!1):(this.an(Si,!0),!0)}qi(){if(this.config.cookieless_mode==="always")return!0;var $=this.consent.isOptedOut();return this.config.disable_persistence||$&&!(!this.config.opt_out_persistence_by_default&&this.config.cookieless_mode!==Ii)}cn(){var $,ts,is,Kr,Qr=this.qi();return(($=this.persistence)==null?void 0:$._r)!==Qr&&((is=this.persistence)==null||is.set_disabled(Qr)),((ts=this.sessionPersistence)==null?void 0:ts._r)!==Qr&&((Kr=this.sessionPersistence)==null||Kr.set_disabled(Qr)),Qr}opt_in_capturing($){var ts;if(this.config.cookieless_mode!==Ci){if(this.Ni()){var is,Kr,Qr,ja,Ca;this.reset(!0),(is=this.sessionManager)==null||is.destroy(),(Kr=this.pageViewManager)==null||Kr.destroy(),this.sessionManager=new vn(this),this.pageViewManager=new $r(this),this.persistence&&(this.sessionPropsManager=new un(this,this.sessionManager,this.persistence));var Aa,Oa=(Qr=(ja=this.config.__extensionClasses)==null?void 0:ja.sessionRecording)!==null&&Qr!==void 0?Qr:(Ca=qn.__defaultExtensionClasses)==null?void 0:Ca.sessionRecording;Oa&&(this.sessionRecording=this.Ei(this.sessionRecording,new Oa(this)),this.Wi&&((Aa=this.sessionRecording)==null||Aa.onRemoteConfig==null||Aa.onRemoteConfig(this.Wi)))}var Ia,Da;this.consent.optInOut(!0),this.cn(),this.Xi(),(ts=this.sessionRecording)==null||ts.startIfEnabledOrStop(),this.config.cookieless_mode==Ii&&((Ia=this.surveys)==null||Ia.loadIfEnabled()),(C($==null?void 0:$.captureEventName)||$!=null&&$.captureEventName)&&this.capture((Da=$==null?void 0:$.captureEventName)!==null&&Da!==void 0?Da:"$opt_in",$==null?void 0:$.captureProperties,{send_instantly:!0}),this.config.capture_pageview&&this.Ji()}else Ie.warn(An)}opt_out_capturing(){var $,ts,is;this.config.cookieless_mode!==Ci?(this.config.cookieless_mode===Ii&&this.consent.isOptedIn()&&this.reset(!0),this.consent.optInOut(!1),this.cn(),this.config.cookieless_mode===Ii&&(this.register({distinct_id:Ti,$device_id:null}),($=this.sessionManager)==null||$.destroy(),(ts=this.pageViewManager)==null||ts.destroy(),this.sessionManager=void 0,this.sessionPropsManager=void 0,(is=this.sessionRecording)==null||is.stopRecording(),this.sessionRecording=void 0,this.Ji())):Ie.warn(An)}has_opted_in_capturing(){return this.consent.isOptedIn()}has_opted_out_capturing(){return this.consent.isOptedOut()}get_explicit_consent_status(){var $=this.consent.consent;return $===1?"granted":$===0?"denied":"pending"}is_capturing(){return this.config.cookieless_mode===Ci||(this.config.cookieless_mode===Ii?this.consent.isRejected()||this.consent.isOptedIn():!this.has_opted_out_capturing())}clear_opt_in_out_capturing(){this.consent.reset(),this.cn()}_is_bot(){return i?cn(i,this.config.custom_blocked_useragents):void 0}Ji(){r&&(r.visibilityState==="visible"?this.Oi||(this.Oi=!0,this.capture(Ui,{title:r.title},{send_instantly:!0}),this.Pi&&(r.removeEventListener(Di,this.Pi),this.Pi=null)):this.Pi||(this.Pi=this.Ji.bind(this),Xi(r,Di,this.Pi)))}debug($){$===!1?(t==null||t.console.log("You've disabled debug mode."),this.set_config({debug:!1})):(t==null||t.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),this.set_config({debug:!0}))}Fr(){var $,ts,is,Kr,Qr,ja,Ca=this.ji||{};return"advanced_disable_flags"in Ca?!!Ca.advanced_disable_flags:this.config.advanced_disable_flags!==!1?!!this.config.advanced_disable_flags:this.config.advanced_disable_decide===!0?(Ie.warn("Config field 'advanced_disable_decide' is deprecated. Please use 'advanced_disable_flags' instead. The old field will be removed in a future major version."),!0):(is="advanced_disable_decide",Kr=Ie,Qr=(ts="advanced_disable_flags")in($=Ca)&&!D($[ts]),ja=is in $&&!D($[is]),Qr?$[ts]:!!ja&&(Kr&&Kr.warn("Config field '"+is+"' is deprecated. Please use '"+ts+"' instead. The old field will be removed in a future major version."),$[is]))}rn($){if(D(this.config.before_send))return $;var ts=R(this.config.before_send)?this.config.before_send:[this.config.before_send],is=$;for(var Kr of ts){if(is=Kr(is),D(is)){var Qr="Event '"+$.event+"' was rejected in beforeSend function";return z($.event)?Ie.warn(Qr+". This can cause unexpected behavior."):Ie.info(Qr),null}is.properties&&!I(is.properties)||Ie.warn("Event '"+$.event+"' has no properties after beforeSend function, this is likely an error.")}return is}getPageViewId(){var $;return($=this.pageViewManager.dr)==null?void 0:$.pageViewId}captureTraceFeedback($,ts){this.capture("$ai_feedback",{$ai_trace_id:String($),$ai_feedback_text:ts})}captureTraceMetric($,ts,is){this.capture("$ai_metric",{$ai_trace_id:String($),$ai_metric_name:ts,$ai_metric_value:String(is)})}Bi($){var ts=N($)&&!$,is=hr.R()&&hr.O("ph_debug")==="true";return!ts&&(!!is||$)}}qn.__defaultExtensionClasses={},qn.dn={trace:On=()=>{},debug:On,info:On,warn:On,error:On,fatal:On},(function(es,$){for(var ts=0;$.length>ts;ts++)es.prototype[$[ts]]=Gi(es.prototype[$[ts]])})(qn,["identify"]);var Vn=1,Wn=3,Gn=11;function Yn(es){return es instanceof Element&&(es.id===$i||!(es.closest==null||!es.closest(".toolbar-global-fade-container")))}function Jn(es){return!!es&&es.nodeType===Vn}function Kn(es,$){return!!es&&!!es.tagName&&es.tagName.toLowerCase()===$.toLowerCase()}function Xn(es){return!!es&&es.nodeType===Wn}function Qn(es){return!!es&&es.nodeType===Gn&&Jn(es.host)}function Zn(es){return es?x(es).split(/\s+/):[]}function to(es){var $=t==null?void 0:t.location.href;return!!($&&es&&es.some((ts=>$.match(ts))))}function eo(es){var $="";switch(typeof es.className){case"string":$=es.className;break;case"object":$=(es.className&&"baseVal"in es.className?es.className.baseVal:null)||es.getAttribute("class")||"";break;default:$=""}return Zn($)}function io(es){return D(es)?null:x(es).split(/(\s+)/).filter(($=>wo($))).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255)}function ro(es){var $="";return co(es)&&!po(es)&&es.childNodes&&es.childNodes.length&&Hi(es.childNodes,(function(ts){var is;Xn(ts)&&ts.textContent&&($+=(is=io(ts.textContent))!==null&&is!==void 0?is:"")})),x($)}function so(es){return C(es.target)?es.srcElement||null:($=es.target)!=null&&$.shadowRoot?es.composedPath()[0]||null:es.target||null;var $}var no=["a","button","form","input","select","textarea","label"];function oo(es,$){if(C($))return!0;var ts,is=function(Qr){if($.some((ja=>Qr.matches(ja))))return{v:!0}};for(var Kr of es)if(ts=is(Kr))return ts.v;return!1}function ao(es){var $=es.parentNode;return!(!$||!Jn($))&&$}var lo=["next","previous","prev",">","<"],uo=[".ph-no-rageclick",".ph-no-capture"],ho=es=>!es||Kn(es,"html")||!Jn(es),vo=(es,$)=>{if(!t||ho(es))return{parentIsUsefulElement:!1,targetElementList:[]};for(var ts=!1,is=[es],Kr=es;Kr.parentNode&&!Kn(Kr,"body");)if(Qn(Kr.parentNode))is.push(Kr.parentNode.host),Kr=Kr.parentNode.host;else{var Qr=ao(Kr);if(!Qr)break;if($||no.indexOf(Qr.tagName.toLowerCase())>-1)ts=!0;else{var ja=t.getComputedStyle(Qr);ja&&ja.getPropertyValue("cursor")==="pointer"&&(ts=!0)}is.push(Qr),Kr=Qr}return{parentIsUsefulElement:ts,targetElementList:is}};function co(es){for(var $=es;$.parentNode&&!Kn($,"body");$=$.parentNode){var ts=eo($);if(w(ts,"ph-sensitive")||w(ts,"ph-no-capture"))return!1}if(w(eo(es),"ph-include"))return!0;var is=es.type||"";if(F(is))switch(is.toLowerCase()){case"hidden":case"password":return!1}var Kr=es.name||es.id||"";return!F(Kr)||!/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(Kr.replace(/[^a-zA-Z0-9]/g,""))}function po(es){return!!(Kn(es,"input")&&!["button","checkbox","submit","reset"].includes(es.type)||Kn(es,"select")||Kn(es,"textarea")||es.getAttribute("contenteditable")==="true")}var fo="(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})",_o=new RegExp("^(?:"+fo+")$"),go=new RegExp(fo),mo="\\d{3}-?\\d{2}-?\\d{4}",bo=new RegExp("^("+mo+")$"),yo=new RegExp("("+mo+")");function wo(es,$){return $===void 0&&($=!0),!(D(es)||F(es)&&(es=x(es),($?_o:go).test((es||"").replace(/[- ]/g,""))||($?bo:yo).test(es)))}function xo(es){var $=ro(es);return wo($=($+" "+Eo(es)).trim())?$:""}function Eo(es){var $="";return es&&es.childNodes&&es.childNodes.length&&Hi(es.childNodes,(function(ts){var is;if(ts&&((is=ts.tagName)==null?void 0:is.toLowerCase())==="span")try{var Kr=ro(ts);$=($+" "+Kr).trim(),ts.childNodes&&ts.childNodes.length&&($=($+" "+Eo(ts)).trim())}catch(Qr){Ie.error("[AutoCapture]",Qr)}})),$}function So(es){return es.replace(/"|\\"/g,'\\"')}function $o(es){var $=es.attr__class;return $?R($)?$:Zn($):void 0}class To{constructor($){this.disabled=$===!1;var ts=O($)?$:{};this.thresholdPx=ts.threshold_px||30,this.timeoutMs=ts.timeout_ms||1e3,this.clickCount=ts.click_count||3,this.clicks=[]}isRageClick($,ts,is){if(this.disabled)return!1;var Kr=this.clicks[this.clicks.length-1];if(Kr&&Math.abs($-Kr.x)+Math.abs(ts-Kr.y)<this.thresholdPx&&this.timeoutMs>is-Kr.timestamp){if(this.clicks.push({x:$,y:ts,timestamp:is}),this.clicks.length===this.clickCount)return!0}else this.clicks=[{x:$,y:ts,timestamp:is}];return!1}}var ko="$copy_autocapture",Ro=Ce("[AutoCapture]");function Po(es,$){return $.length>es?$.slice(0,es)+"...":$}function Oo(es){if(es.previousElementSibling)return es.previousElementSibling;var $=es;do $=$.previousSibling;while($&&!Jn($));return $}function Io(es,$){var ts,is,{e:Kr,maskAllElementAttributes:Qr,maskAllText:ja,elementAttributeIgnoreList:Ca,elementsChainAsString:Aa}=$;if(!Jn(es))return{props:{}};for(var Oa=[es],Ia=es;Ia.parentNode&&!Kn(Ia,"body");)if(Qn(Ia.parentNode))Oa.push(Ia.parentNode.host),Ia=Ia.parentNode.host;else{if(!Jn(Ia.parentNode))break;Oa.push(Ia.parentNode),Ia=Ia.parentNode}var Da,Ba,Ma=[],Fa={},qa=!1,Ha=!1;if(Hi(Oa,(Wa=>{var el=co(Wa);if(Kn(Wa,"a")){var tl=Wa.getAttribute("href");qa=el&&!!tl&&wo(tl)&&tl}w(eo(Wa),"ph-no-capture")&&(Ha=!0),Ma.push((function(cl,dl,fl,nl){var ol=cl.tagName.toLowerCase(),pl={tag_name:ol};no.indexOf(ol)>-1&&!fl&&(pl.$el_text=ol.toLowerCase()==="a"||ol.toLowerCase()==="button"?Po(1024,xo(cl)):Po(1024,ro(cl)));var Tl=eo(cl);Tl.length>0&&(pl.classes=Tl.filter((function(Nl){return Nl!==""}))),Hi(cl.attributes,(function(Nl){var zl;if((!po(cl)||["name","id","class","aria-label"].indexOf(Nl.name)!==-1)&&(nl==null||!nl.includes(Nl.name))&&!dl&&wo(Nl.value)&&(!F(zl=Nl.name)||zl.substring(0,10)!=="_ngcontent"&&zl.substring(0,7)!=="_nghost")){var Zl=Nl.value;Nl.name==="class"&&(Zl=Zn(Zl).join(" ")),pl["attr__"+Nl.name]=Po(1024,Zl)}}));for(var ul=1,hl=1,jl=cl;jl=Oo(jl);)ul++,jl.tagName===cl.tagName&&hl++;return pl.nth_child=ul,pl.nth_of_type=hl,pl})(Wa,Qr,ja,Ca));var rl=(function(cl){if(!co(cl))return{};var dl={};return Hi(cl.attributes,(function(fl){if(fl.name&&fl.name.indexOf("data-ph-capture-attribute")===0){var nl=fl.name.replace("data-ph-capture-attribute-",""),ol=fl.value;nl&&ol&&wo(ol)&&(dl[nl]=ol)}})),dl})(Wa);qi(Fa,rl)})),Ha)return{props:{},explicitNoCapture:Ha};if(ja||(Ma[0].$el_text=Kn(es,"a")||Kn(es,"button")?xo(es):ro(es)),qa){var Ka,Qa;Ma[0].attr__href=qa;var Va=(Ka=Rr(qa))==null?void 0:Ka.host,Ya=t==null||(Qa=t.location)==null?void 0:Qa.host;Va&&Ya&&Va!==Ya&&(Da=qa)}return{props:qi({$event_type:Kr.type,$ce_version:1},Aa?{}:{$elements:Ma},{$elements_chain:(Ba=Ma,(function(Wa){return Wa.map((el=>{var tl,rl,cl="";if(el.tag_name&&(cl+=el.tag_name),el.attr_class)for(var dl of(el.attr_class.sort(),el.attr_class))cl+="."+dl.replace(/"/g,"");var fl=f({},el.text?{text:el.text}:{},{"nth-child":(tl=el.nth_child)!==null&&tl!==void 0?tl:0,"nth-of-type":(rl=el.nth_of_type)!==null&&rl!==void 0?rl:0},el.href?{href:el.href}:{},el.attr_id?{attr_id:el.attr_id}:{},el.attributes),nl={};return Vi(fl).sort(((ol,pl)=>{var[Tl]=ol,[ul]=pl;return Tl.localeCompare(ul)})).forEach((ol=>{var[pl,Tl]=ol;return nl[So(pl.toString())]=So(Tl.toString())})),(cl+=":")+Vi(nl).map((ol=>{var[pl,Tl]=ol;return pl+'="'+Tl+'"'})).join("")})).join(";")})((function(Wa){return Wa.map((el=>{var tl,rl,cl={text:(tl=el.$el_text)==null?void 0:tl.slice(0,400),tag_name:el.tag_name,href:(rl=el.attr__href)==null?void 0:rl.slice(0,2048),attr_class:$o(el),attr_id:el.attr__id,nth_child:el.nth_child,nth_of_type:el.nth_of_type,attributes:{}};return Vi(el).filter((dl=>{var[fl]=dl;return fl.indexOf("attr__")===0})).forEach((dl=>{var[fl,nl]=dl;return cl.attributes[fl]=nl})),cl}))})(Ba)))},(ts=Ma[0])!=null&&ts.$el_text?{$el_text:(is=Ma[0])==null?void 0:is.$el_text}:{},Da&&Kr.type==="click"?{$external_click_url:Da}:{},Fa)}}var Co=Ce("[ExceptionAutocapture]");function Fo(es,$,ts){try{if(!($ in es))return()=>{};var is=es[$],Kr=ts(is);return P(Kr)&&(Kr.prototype=Kr.prototype||{},Object.defineProperties(Kr,{__posthog_wrapped__:{enumerable:!1,value:!0}})),es[$]=Kr,()=>{es[$]=is}}catch{return()=>{}}}var Ao=Ce("[TracingHeaders]"),Mo=Ce("[Web Vitals]"),Do=9e5,Lo="disabled",Uo="lazy_loading",No="awaiting_config",jo="missing_config";Ce("[SessionRecording]"),Ce("[SessionRecording]");var zo="[SessionRecording]",Bo=Ce(zo),Ho=Ce("[Heatmaps]");function qo(es){return O(es)&&"clientX"in es&&"clientY"in es&&L(es.clientX)&&L(es.clientY)}var Vo=Ce("[Product Tours]"),Wo=["$set_once","$set"],Go=Ce("[SiteApps]"),Yo="Error while initializing PostHog app with config id ";function Jo(es,$,ts){if(D(es))return!1;switch(ts){case"exact":return es===$;case"contains":var is=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/_/g,".").replace(/%/g,".*");return new RegExp(is,"i").test(es);case"regex":try{return new RegExp($).test(es)}catch{return!1}default:return!1}}class Ko{constructor($){this.vn=new hn,this.fn=(ts,is)=>this.pn(ts,is)&&this.gn(ts,is)&&this.mn(ts,is)&&this.yn(ts,is),this.pn=(ts,is)=>is==null||!is.event||(ts==null?void 0:ts.event)===(is==null?void 0:is.event),this._instance=$,this.bn=new Set,this._n=new Set}init(){var $,ts;C(($=this._instance)==null?void 0:$._addCaptureHook)||(ts=this._instance)==null||ts._addCaptureHook(((is,Kr)=>{this.on(is,Kr)}))}register($){var ts,is;if(!C((ts=this._instance)==null?void 0:ts._addCaptureHook)&&($.forEach((ja=>{var Ca,Aa;(Ca=this._n)==null||Ca.add(ja),(Aa=ja.steps)==null||Aa.forEach((Oa=>{var Ia;(Ia=this.bn)==null||Ia.add((Oa==null?void 0:Oa.event)||"")}))})),(is=this._instance)!=null&&is.autocapture)){var Kr,Qr=new Set;$.forEach((ja=>{var Ca;(Ca=ja.steps)==null||Ca.forEach((Aa=>{Aa!=null&&Aa.selector&&Qr.add(Aa==null?void 0:Aa.selector)}))})),(Kr=this._instance)==null||Kr.autocapture.setElementSelectors(Qr)}}on($,ts){var is;ts!=null&&$.length!=0&&(this.bn.has($)||this.bn.has(ts==null?void 0:ts.event))&&this._n&&((is=this._n)==null?void 0:is.size)>0&&this._n.forEach((Kr=>{this.wn(ts,Kr)&&this.vn.emit("actionCaptured",Kr.name)}))}In($){this.onAction("actionCaptured",(ts=>$(ts)))}wn($,ts){if((ts==null?void 0:ts.steps)==null)return!1;for(var is of ts.steps)if(this.fn($,is))return!0;return!1}onAction($,ts){return this.vn.on($,ts)}gn($,ts){if(ts!=null&&ts.url){var is,Kr=$==null||(is=$.properties)==null?void 0:is.$current_url;if(!Kr||typeof Kr!="string"||!Jo(Kr,ts.url,ts.url_matching||"contains"))return!1}return!0}mn($,ts){return!!this.Cn($,ts)&&!!this.Sn($,ts)&&!!this.xn($,ts)}Cn($,ts){var is;if(ts==null||!ts.href)return!0;var Kr=this.kn($);if(Kr.length>0)return Kr.some((Ca=>Jo(Ca.href,ts.href,ts.href_matching||"exact")));var Qr,ja=($==null||(is=$.properties)==null?void 0:is.$elements_chain)||"";return!!ja&&Jo((Qr=ja.match(/(?::|")href="(.*?)"/))?Qr[1]:"",ts.href,ts.href_matching||"exact")}Sn($,ts){var is;if(ts==null||!ts.text)return!0;var Kr=this.kn($);if(Kr.length>0)return Kr.some((Oa=>Jo(Oa.text,ts.text,ts.text_matching||"exact")||Jo(Oa.$el_text,ts.text,ts.text_matching||"exact")));var Qr,ja,Ca,Aa=($==null||(is=$.properties)==null?void 0:is.$elements_chain)||"";return!!Aa&&(Qr=(function(Oa){for(var Ia,Da=[],Ba=/(?::|")text="(.*?)"/g;!D(Ia=Ba.exec(Oa));)Da.includes(Ia[1])||Da.push(Ia[1]);return Da})(Aa),ja=ts.text,Ca=ts.text_matching||"exact",Qr.some((Oa=>Jo(Oa,ja,Ca))))}xn($,ts){var is,Kr;if(ts==null||!ts.selector)return!0;var Qr=$==null||(is=$.properties)==null?void 0:is.$element_selectors;if(Qr!=null&&Qr.includes(ts.selector))return!0;var ja=($==null||(Kr=$.properties)==null?void 0:Kr.$elements_chain)||"";if(ts.selector_regex&&ja)try{return new RegExp(ts.selector_regex).test(ja)}catch{return!1}return!1}kn($){var ts;return($==null||(ts=$.properties)==null?void 0:ts.$elements)==null?[]:$==null?void 0:$.properties.$elements}yn($,ts){return ts==null||!ts.properties||ts.properties.length===0||mn(ts.properties.reduce(((is,Kr)=>{var Qr=R(Kr.value)?Kr.value.map(String):Kr.value!=null?[String(Kr.value)]:[];return is[Kr.key]={values:Qr,operator:Kr.operator||"exact"},is}),{}),$==null?void 0:$.properties)}}class Xo{constructor($){this._instance=$,this.Tn=new Map,this.An=new Map,this.En=new Map}Rn($,ts){return!!$&&mn($.propertyFilters,ts==null?void 0:ts.properties)}Nn($,ts){var is=new Map;return $.forEach((Kr=>{var Qr;(Qr=Kr.conditions)==null||(Qr=Qr[ts])==null||(Qr=Qr.values)==null||Qr.forEach((ja=>{if(ja!=null&&ja.name){var Ca=is.get(ja.name)||[];Ca.push(Kr.id),is.set(ja.name,Ca)}}))})),is}Mn($,ts,is){var Kr=(is===Jr.Activation?this.Tn:this.An).get($),Qr=[];return this.Fn((ja=>{Qr=ja.filter((Ca=>Kr==null?void 0:Kr.includes(Ca.id)))})),Qr.filter((ja=>{var Ca,Aa=(Ca=ja.conditions)==null||(Ca=Ca[is])==null||(Ca=Ca.values)==null?void 0:Ca.find((Oa=>Oa.name===$));return this.Rn(Aa,ts)}))}register($){var ts;C((ts=this._instance)==null?void 0:ts._addCaptureHook)||(this.On($),this.Pn($))}Pn($){var ts=$.filter((is=>{var Kr,Qr;return((Kr=is.conditions)==null?void 0:Kr.actions)&&((Qr=is.conditions)==null||(Qr=Qr.actions)==null||(Qr=Qr.values)==null?void 0:Qr.length)>0}));ts.length!==0&&(this.Ln==null&&(this.Ln=new Ko(this._instance),this.Ln.init(),this.Ln.In((is=>{this.onAction(is)}))),ts.forEach((is=>{var Kr,Qr,ja,Ca,Aa;is.conditions&&(Kr=is.conditions)!=null&&Kr.actions&&(Qr=is.conditions)!=null&&(Qr=Qr.actions)!=null&&Qr.values&&((ja=is.conditions)==null||(ja=ja.actions)==null||(ja=ja.values)==null?void 0:ja.length)>0&&((Ca=this.Ln)==null||Ca.register(is.conditions.actions.values),(Aa=is.conditions)==null||(Aa=Aa.actions)==null||(Aa=Aa.values)==null||Aa.forEach((Oa=>{if(Oa&&Oa.name){var Ia=this.En.get(Oa.name);Ia&&Ia.push(is.id),this.En.set(Oa.name,Ia||[is.id])}})))})))}On($){var ts,is=$.filter((Qr=>{var ja,Ca;return((ja=Qr.conditions)==null?void 0:ja.events)&&((Ca=Qr.conditions)==null||(Ca=Ca.events)==null||(Ca=Ca.values)==null?void 0:Ca.length)>0})),Kr=$.filter((Qr=>{var ja,Ca;return((ja=Qr.conditions)==null?void 0:ja.cancelEvents)&&((Ca=Qr.conditions)==null||(Ca=Ca.cancelEvents)==null||(Ca=Ca.values)==null?void 0:Ca.length)>0}));is.length===0&&Kr.length===0||((ts=this._instance)==null||ts._addCaptureHook(((Qr,ja)=>{this.onEvent(Qr,ja)})),this.Tn=this.Nn($,Jr.Activation),this.An=this.Nn($,Jr.Cancellation))}onEvent($,ts){var is,Kr=this.le(),Qr=this.Dn(),ja=this.Bn(),Ca=((is=this._instance)==null||(is=is.persistence)==null?void 0:is.props[Qr])||[];if(ja===$&&ts&&Ca.length>0){var Aa,Oa;Kr.info("event matched, removing item from activated items",{event:$,eventPayload:ts,existingActivatedItems:Ca});var Ia=(ts==null||(Aa=ts.properties)==null?void 0:Aa.$survey_id)||(ts==null||(Oa=ts.properties)==null?void 0:Oa.$product_tour_id);if(Ia){var Da=Ca.indexOf(Ia);0>Da||(Ca.splice(Da,1),this.jn(Ca))}}else{if(this.An.has($)){var Ba=this.Mn($,ts,Jr.Cancellation);Ba.length>0&&(Kr.info("cancel event matched, cancelling items",{event:$,itemsToCancel:Ba.map((Fa=>Fa.id))}),Ba.forEach((Fa=>{var qa=Ca.indexOf(Fa.id);0>qa||Ca.splice(qa,1),this.$n(Fa.id)})),this.jn(Ca))}if(this.Tn.has($)){Kr.info("event name matched",{event:$,eventPayload:ts,items:this.Tn.get($)});var Ma=this.Mn($,ts,Jr.Activation);this.jn(Ca.concat(Ma.map((Fa=>Fa.id))||[]))}}}onAction($){var ts,is=this.Dn(),Kr=((ts=this._instance)==null||(ts=ts.persistence)==null?void 0:ts.props[is])||[];this.En.has($)&&this.jn(Kr.concat(this.En.get($)||[]))}jn($){var ts=this.le(),is=[...new Set($)].filter((Kr=>!this.qn(Kr)));ts.info("updating activated items",{activatedItems:is}),this.Zn(is)}getActivatedIds(){var $,ts=this.Dn();return(($=this._instance)==null||($=$.persistence)==null?void 0:$.props[ts])||[]}getEventToItemsMap(){return this.Tn}Vn(){return this.Ln}}class Qo extends Xo{constructor($){super($)}Dn(){return vi}Bn(){return rs.SHOWN}Fn($){var ts;(ts=this._instance)==null||ts.getSurveys($)}$n($){var ts;(ts=this._instance)==null||ts.cancelPendingSurvey($)}le(){return En}Zn($){var ts;(ts=this._instance)==null||(ts=ts.persistence)==null||ts.register({[vi]:$})}qn(){return!1}getSurveys(){return this.getActivatedIds()}getEventToSurveys(){return this.getEventToItemsMap()}}var Zo="SDK is not enabled or survey functionality is not yet loaded",ta="Disabled. Not loading surveys.",ea=t!=null&&t.location?Ir(t.location.hash,"__posthog")||Ir(location.hash,"state"):null,ia="_postHogToolbarParams",ra=Ce("[Toolbar]"),sa=Ce("[FeatureFlags]"),na=Ce("[FeatureFlags]",{debugEnabled:!0}),oa=`" failed. Feature flags didn't load in time.`,aa=es=>{for(var $={},ts=0;es.length>ts;ts++)$[es[ts]]=!0;return $},la=es=>{var $={};for(var[ts,is]of Vi(es||{}))is&&($[ts]=is);return $},ua=Ce("[Error tracking]"),ha="Refusing to render web experiment since the viewer is a likely bot",da={icontains:(es,$)=>!!t&&$.href.toLowerCase().indexOf(es.toLowerCase())>-1,not_icontains:(es,$)=>!!t&&$.href.toLowerCase().indexOf(es.toLowerCase())===-1,regex:(es,$)=>!!t&&pn($.href,es),not_regex:(es,$)=>!!t&&!pn($.href,es),exact:(es,$)=>$.href===es,is_not:(es,$)=>$.href!==es};class va{get Bt(){return this._instance.config}constructor($){var ts=this;this.getWebExperimentsAndEvaluateDisplayLogic=function(is){is===void 0&&(is=!1),ts.getWebExperiments((Kr=>{va.Hn("retrieved web experiments from the server"),ts.zn=new Map,Kr.forEach((Qr=>{if(Qr.feature_flag_key){var ja;ts.zn&&(va.Hn("setting flag key ",Qr.feature_flag_key," to web experiment ",Qr),(ja=ts.zn)==null||ja.set(Qr.feature_flag_key,Qr));var Ca=ts._instance.getFeatureFlag(Qr.feature_flag_key);F(Ca)&&Qr.variants[Ca]&&ts.Un(Qr.name,Ca,Qr.variants[Ca].transforms)}else if(Qr.variants)for(var Aa in Qr.variants){var Oa=Qr.variants[Aa];va.Yn(Oa)&&ts.Un(Qr.name,Aa,Oa.transforms)}}))}),is)},this._instance=$,this._instance.onFeatureFlags((is=>{this.onFeatureFlags(is)}))}initialize(){}onFeatureFlags($){if(this._is_bot())va.Hn(ha);else if(!this.Bt.disable_web_experiments){if(D(this.zn))return this.zn=new Map,this.loadIfEnabled(),void this.previewWebExperiment();va.Hn("applying feature flags",$),$.forEach((ts=>{var is;if(this.zn&&(is=this.zn)!=null&&is.has(ts)){var Kr,Qr=this._instance.getFeatureFlag(ts),ja=(Kr=this.zn)==null?void 0:Kr.get(ts);Qr&&ja!=null&&ja.variants[Qr]&&this.Un(ja.name,Qr,ja.variants[Qr].transforms)}}))}}previewWebExperiment(){var $=va.getWindowLocation();if($!=null&&$.search){var ts=Pr($==null?void 0:$.search,"__experiment_id"),is=Pr($==null?void 0:$.search,"__experiment_variant");ts&&is&&(va.Hn("previewing web experiments "+ts+" && "+is),this.getWebExperiments((Kr=>{this.Gn(parseInt(ts),is,Kr)}),!1,!0))}}loadIfEnabled(){this.Bt.disable_web_experiments||this.getWebExperimentsAndEvaluateDisplayLogic()}getWebExperiments($,ts,is){if(this.Bt.disable_web_experiments&&!is)return $([]);var Kr=this._instance.get_property("$web_experiments");if(Kr&&!ts)return $(Kr);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/web_experiments/?token="+this.Bt.token),method:"GET",callback:Qr=>$(Qr.statusCode===200&&Qr.json&&Qr.json.experiments||[])})}Gn($,ts,is){var Kr=is.filter((Qr=>Qr.id===$));Kr&&Kr.length>0&&(va.Hn("Previewing web experiment ["+Kr[0].name+"] with variant ["+ts+"]"),this.Un(Kr[0].name,ts,Kr[0].variants[ts].transforms))}static Yn($){return!D($.conditions)&&va.Wn($)&&va.Xn($)}static Wn($){var ts;if(D($.conditions)||D((ts=$.conditions)==null?void 0:ts.url))return!0;var is,Kr,Qr,ja=va.getWindowLocation();return!!ja&&((is=$.conditions)==null||!is.url||da[(Kr=(Qr=$.conditions)==null?void 0:Qr.urlMatchType)!==null&&Kr!==void 0?Kr:"icontains"]($.conditions.url,ja))}static getWindowLocation(){return t==null?void 0:t.location}static Xn($){var ts;if(D($.conditions)||D((ts=$.conditions)==null?void 0:ts.utm))return!0;var is=Lr();if(is.utm_source){var Kr,Qr,ja,Ca,Aa,Oa,Ia,Da,Ba=(Kr=$.conditions)==null||(Kr=Kr.utm)==null||!Kr.utm_campaign||((Qr=$.conditions)==null||(Qr=Qr.utm)==null?void 0:Qr.utm_campaign)==is.utm_campaign,Ma=(ja=$.conditions)==null||(ja=ja.utm)==null||!ja.utm_source||((Ca=$.conditions)==null||(Ca=Ca.utm)==null?void 0:Ca.utm_source)==is.utm_source,Fa=(Aa=$.conditions)==null||(Aa=Aa.utm)==null||!Aa.utm_medium||((Oa=$.conditions)==null||(Oa=Oa.utm)==null?void 0:Oa.utm_medium)==is.utm_medium,qa=(Ia=$.conditions)==null||(Ia=Ia.utm)==null||!Ia.utm_term||((Da=$.conditions)==null||(Da=Da.utm)==null?void 0:Da.utm_term)==is.utm_term;return Ba&&Fa&&qa&&Ma}return!1}static Hn($){for(var ts=arguments.length,is=new Array(ts>1?ts-1:0),Kr=1;ts>Kr;Kr++)is[Kr-1]=arguments[Kr];Ie.info("[WebExperiments] "+$,is)}Un($,ts,is){this._is_bot()?va.Hn(ha):ts!=="control"?is.forEach((Kr=>{if(Kr.selector){var Qr;va.Hn("applying transform of variant "+ts+" for experiment "+$+" ",Kr);var ja=(Qr=document)==null?void 0:Qr.querySelectorAll(Kr.selector);ja==null||ja.forEach((Ca=>{var Aa=Ca;Kr.html&&(Aa.innerHTML=Kr.html),Kr.css&&Aa.setAttribute("style",Kr.css)}))}})):va.Hn("Control variants leave the page unmodified.")}_is_bot(){return i&&this._instance?cn(i,this.Bt.custom_blocked_useragents):void 0}}var ca=Ce("[Conversations]"),pa="Conversations not available yet.",fa={featureFlags:class{constructor(es){this.Jn=!1,this.Kn=!1,this.Qn=!1,this.es=!1,this.ts=!1,this.rs=!1,this.ns=!1,this.ss=!1,this._instance=es,this.featureFlagEventHandlers=[]}get Bt(){return this._instance.config}get ni(){return this._instance.persistence}os(es){return this._instance.get_property(es)}ls(){var es,$;return(es=($=this.ni)==null?void 0:$.wr(this.Bt.feature_flag_cache_ttl_ms))!==null&&es!==void 0&&es}us(){return!!this.ls()&&(this.ss||this.Qn||(this.ss=!0,sa.warn("Feature flag cache is stale, triggering refresh..."),this.reloadFeatureFlags()),!0)}hs(){var es,$=(es=this.Bt.evaluation_contexts)!==null&&es!==void 0?es:this.Bt.evaluation_environments;return!this.Bt.evaluation_environments||this.Bt.evaluation_contexts||this.ns||(sa.warn("evaluation_environments is deprecated. Use evaluation_contexts instead. evaluation_environments will be removed in a future version."),this.ns=!0),$!=null&&$.length?$.filter((ts=>{var is=ts&&typeof ts=="string"&&ts.trim().length>0;return is||sa.error("Invalid evaluation context found:",ts,"Expected non-empty string"),is})):[]}cs(){return this.hs().length>0}initialize(){var es,$,{config:ts}=this._instance,is=(es=($=ts.bootstrap)==null?void 0:$.featureFlags)!==null&&es!==void 0?es:{};if(Object.keys(is).length){var Kr,Qr,ja=(Kr=(Qr=ts.bootstrap)==null?void 0:Qr.featureFlagPayloads)!==null&&Kr!==void 0?Kr:{},Ca=Object.keys(is).filter((Oa=>!!is[Oa])).reduce(((Oa,Ia)=>(Oa[Ia]=is[Ia]||!1,Oa)),{}),Aa=Object.keys(ja).filter((Oa=>Ca[Oa])).reduce(((Oa,Ia)=>(ja[Ia]&&(Oa[Ia]=ja[Ia]),Oa)),{});this.receivedFeatureFlags({featureFlags:Ca,featureFlagPayloads:Aa})}}updateFlags(es,$,ts){var is=ts!=null&&ts.merge?this.getFlagVariants():{},Kr=ts!=null&&ts.merge?this.getFlagPayloads():{},Qr=f({},is,es),ja=f({},Kr,$),Ca={};for(var[Aa,Oa]of Object.entries(Qr)){var Ia=typeof Oa=="string";Ca[Aa]={key:Aa,enabled:!!Ia||!!Oa,variant:Ia?Oa:void 0,reason:void 0,metadata:C(ja==null?void 0:ja[Aa])?void 0:{id:0,version:void 0,description:void 0,payload:ja[Aa]}}}this.receivedFeatureFlags({flags:Ca})}get hasLoadedFlags(){return this.Kn}getFlags(){return Object.keys(this.getFlagVariants())}getFlagsWithDetails(){var es=this.os(si),$=this.os(ai),ts=this.os(li);if(!ts&&!$)return es||{};var is=qi({},es||{}),Kr=[...new Set([...Object.keys(ts||{}),...Object.keys($||{})])];for(var Qr of Kr){var ja,Ca,Aa=is[Qr],Oa=$==null?void 0:$[Qr],Ia=C(Oa)?(ja=Aa==null?void 0:Aa.enabled)!==null&&ja!==void 0&&ja:!!Oa,Da=C(Oa)?Aa.variant:typeof Oa=="string"?Oa:void 0,Ba=ts==null?void 0:ts[Qr],Ma=f({},Aa,{enabled:Ia,variant:Ia?Da??(Aa==null?void 0:Aa.variant):void 0});Ia!==(Aa==null?void 0:Aa.enabled)&&(Ma.original_enabled=Aa==null?void 0:Aa.enabled),Da!==(Aa==null?void 0:Aa.variant)&&(Ma.original_variant=Aa==null?void 0:Aa.variant),Ba&&(Ma.metadata=f({},Aa==null?void 0:Aa.metadata,{payload:Ba,original_payload:Aa==null||(Ca=Aa.metadata)==null?void 0:Ca.payload})),is[Qr]=Ma}return this.Jn||(sa.warn(" Overriding feature flag details!",{flagDetails:es,overriddenPayloads:ts,finalDetails:is}),this.Jn=!0),is}getFlagVariants(){var es=this.os(ei),$=this.os(ai);if(!$)return es||{};for(var ts=qi({},es),is=Object.keys($),Kr=0;is.length>Kr;Kr++)ts[is[Kr]]=$[is[Kr]];return this.Jn||(sa.warn(" Overriding feature flags!",{enabledFlags:es,overriddenFlags:$,finalFlags:ts}),this.Jn=!0),ts}getFlagPayloads(){var es=this.os(ni),$=this.os(li);if(!$)return es||{};for(var ts=qi({},es||{}),is=Object.keys($),Kr=0;is.length>Kr;Kr++)ts[is[Kr]]=$[is[Kr]];return this.Jn||(sa.warn(" Overriding feature flag payloads!",{flagPayloads:es,overriddenPayloads:$,finalPayloads:ts}),this.Jn=!0),ts}reloadFeatureFlags(){this.es||this.Bt.advanced_disable_feature_flags||this.ds||(this._instance.Fi.emit("featureFlagsReloading",!0),this.ds=setTimeout((()=>{this.vs()}),5))}fs(){clearTimeout(this.ds),this.ds=void 0}ensureFlagsLoaded(){this.Kn||this.Qn||this.ds||this.reloadFeatureFlags()}setAnonymousDistinctId(es){this.$anon_distinct_id=es}setReloadingPaused(es){this.es=es}vs(es){var $;if(this.fs(),!this._instance.Fr())if(this.Qn)this.ts=!0;else{var ts=this.Bt.token,is=this.os(De),Kr={token:ts,distinct_id:this._instance.get_distinct_id(),groups:this._instance.getGroups(),$anon_distinct_id:this.$anon_distinct_id,person_properties:f({},(($=this.ni)==null?void 0:$.get_initial_props())||{},this.os(ui)||{}),group_properties:this.os(hi),timezone:Vr()};M(is)||C(is)||(Kr.$device_id=is),(es!=null&&es.disableFlags||this.Bt.advanced_disable_feature_flags)&&(Kr.disable_flags=!0),this.cs()&&(Kr.evaluation_contexts=this.hs());var Qr=this._instance.requestRouter.endpointFor("flags","/flags/?v=2"+(this.Bt.advanced_only_evaluate_survey_feature_flags?"&only_evaluate_survey_feature_flags=true":""));this.Qn=!0,this._instance._send_request({method:"POST",url:Qr,data:Kr,compression:this.Bt.disable_compression?void 0:ps.Base64,timeout:this.Bt.feature_flag_request_timeout_ms,callback:ja=>{var Ca,Aa,Oa,Ia=!0;if(ja.statusCode===200&&(this.ts||(this.$anon_distinct_id=void 0),Ia=!1),this.Qn=!1,!Kr.disable_flags||this.ts){this.rs=!Ia;var Da=[];ja.error?ja.error instanceof Error?Da.push(ja.error.name==="AbortError"?"timeout":"connection_error"):Da.push("unknown_error"):ja.statusCode!==200&&Da.push("api_error_"+ja.statusCode),(Ca=ja.json)!=null&&Ca.errorsWhileComputingFlags&&Da.push("errors_while_computing_flags");var Ba,Ma=!((Aa=ja.json)==null||(Aa=Aa.quotaLimited)==null||!Aa.includes("feature_flags"));Ma&&Da.push("quota_limited"),(Oa=this.ni)==null||Oa.register({[_i]:Da}),Ma?sa.warn("You have hit your feature flags quota limit, and will not be able to load feature flags until the quota is reset. Please visit https://posthog.com/docs/billing/limits-alerts to learn more."):(Kr.disable_flags||this.receivedFeatureFlags((Ba=ja.json)!==null&&Ba!==void 0?Ba:{},Ia,{partialResponse:!!this.Bt.advanced_only_evaluate_survey_feature_flags}),this.ts&&(this.ts=!1,this.vs()))}}})}}getFeatureFlag(es,$){var ts;if($===void 0&&($={}),!$.fresh||this.rs)if(this.Kn||this.getFlags()&&this.getFlags().length>0){if(!this.us()){var is=this.getFeatureFlagResult(es,$);return(ts=is==null?void 0:is.variant)!==null&&ts!==void 0?ts:is==null?void 0:is.enabled}}else sa.warn('getFeatureFlag for key "'+es+oa)}getFeatureFlagDetails(es){return this.getFlagsWithDetails()[es]}getFeatureFlagPayload(es){var $=this.getFeatureFlagResult(es,{send_event:!1});return $==null?void 0:$.payload}getFeatureFlagResult(es,$){if($===void 0&&($={}),!$.fresh||this.rs)if(this.Kn||this.getFlags()&&this.getFlags().length>0){if(!this.us()){var ts=this.getFlagVariants(),is=es in ts,Kr=ts[es],Qr=this.getFlagPayloads()[es],ja=String(Kr),Ca=this.os(oi)||void 0,Aa=this.os(gi)||void 0,Oa=this.os(pi)||{};if(this.Bt.advanced_feature_flags_dedup_per_session){var Ia,Da=this._instance.get_session_id(),Ba=this.os(fi);Da&&Da!==Ba&&(Oa={},(Ia=this.ni)==null||Ia.register({[pi]:Oa,[fi]:Da}))}if(($.send_event||!("send_event"in $))&&(!(es in Oa)||!Oa[es].includes(ja))){var Ma,Fa,qa,Ha,Ka,Qa,Va,Ya,Wa,el;R(Oa[es])?Oa[es].push(ja):Oa[es]=[ja],(Ma=this.ni)==null||Ma.register({[pi]:Oa});var tl=this.getFeatureFlagDetails(es),rl=[...(Fa=this.os(_i))!==null&&Fa!==void 0?Fa:[]];C(Kr)&&rl.push("flag_missing");var cl={$feature_flag:es,$feature_flag_response:Kr,$feature_flag_payload:Qr||null,$feature_flag_request_id:Ca,$feature_flag_evaluated_at:Aa,$feature_flag_bootstrapped_response:((qa=this.Bt.bootstrap)==null||(qa=qa.featureFlags)==null?void 0:qa[es])||null,$feature_flag_bootstrapped_payload:((Ha=this.Bt.bootstrap)==null||(Ha=Ha.featureFlagPayloads)==null?void 0:Ha[es])||null,$used_bootstrap_value:!this.rs};C(tl==null||(Ka=tl.metadata)==null?void 0:Ka.version)||(cl.$feature_flag_version=tl.metadata.version);var dl,fl=(Qa=tl==null||(Va=tl.reason)==null?void 0:Va.description)!==null&&Qa!==void 0?Qa:tl==null||(Ya=tl.reason)==null?void 0:Ya.code;fl&&(cl.$feature_flag_reason=fl),tl!=null&&(Wa=tl.metadata)!=null&&Wa.id&&(cl.$feature_flag_id=tl.metadata.id),C(tl==null?void 0:tl.original_variant)&&C(tl==null?void 0:tl.original_enabled)||(cl.$feature_flag_original_response=C(tl.original_variant)?tl.original_enabled:tl.original_variant),tl!=null&&(el=tl.metadata)!=null&&el.original_payload&&(cl.$feature_flag_original_payload=tl==null||(dl=tl.metadata)==null?void 0:dl.original_payload),rl.length&&(cl.$feature_flag_error=rl.join(",")),this._instance.capture("$feature_flag_called",cl)}if(is){var nl=Qr;if(!C(Qr))try{nl=JSON.parse(Qr)}catch{}return{key:es,enabled:!!Kr,variant:typeof Kr=="string"?Kr:void 0,payload:nl}}}}else sa.warn('getFeatureFlagResult for key "'+es+oa)}getRemoteConfigPayload(es,$){var ts=this.Bt.token,is={distinct_id:this._instance.get_distinct_id(),token:ts};this.cs()&&(is.evaluation_contexts=this.hs()),this._instance._send_request({method:"POST",url:this._instance.requestRouter.endpointFor("flags","/flags/?v=2"),data:is,compression:this.Bt.disable_compression?void 0:ps.Base64,timeout:this.Bt.feature_flag_request_timeout_ms,callback(Kr){var Qr,ja=(Qr=Kr.json)==null?void 0:Qr.featureFlagPayloads;$((ja==null?void 0:ja[es])||void 0)}})}isFeatureEnabled(es,$){if($===void 0&&($={}),!$.fresh||this.rs){if(this.Kn||this.getFlags()&&this.getFlags().length>0){var ts=this.getFeatureFlag(es,$);return C(ts)?void 0:!!ts}sa.warn('isFeatureEnabled for key "'+es+oa)}}addFeatureFlagsHandler(es){this.featureFlagEventHandlers.push(es)}removeFeatureFlagsHandler(es){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter(($=>$!==es))}receivedFeatureFlags(es,$,ts){if(this.ni){this.Kn=!0;var is=this.getFlagVariants(),Kr=this.getFlagPayloads(),Qr=this.getFlagsWithDetails();(function(ja,Ca,Aa,Oa,Ia,Da){Aa===void 0&&(Aa={}),Oa===void 0&&(Oa={}),Ia===void 0&&(Ia={});var Ba=(rl=>{var cl=rl.flags;return cl?(rl.featureFlags=Object.fromEntries(Object.keys(cl).map((dl=>{var fl;return[dl,(fl=cl[dl].variant)!==null&&fl!==void 0?fl:cl[dl].enabled]}))),rl.featureFlagPayloads=Object.fromEntries(Object.keys(cl).filter((dl=>cl[dl].enabled)).filter((dl=>{var fl;return(fl=cl[dl].metadata)==null?void 0:fl.payload})).map((dl=>{var fl;return[dl,(fl=cl[dl].metadata)==null?void 0:fl.payload]})))):sa.warn("Using an older version of the feature flags endpoint. Please upgrade your PostHog server to the latest version"),rl})(ja),Ma=Ba.flags,Fa=Ba.featureFlags,qa=Ba.featureFlagPayloads;if(Fa){var Ha=ja.requestId,Ka=ja.evaluatedAt;if(R(Fa)){sa.warn("v1 of the feature flags endpoint is deprecated. Please use the latest version.");var Qa={};if(Fa)for(var Va=0;Fa.length>Va;Va++)Qa[Fa[Va]]=!0;Ca&&Ca.register({[ii]:Fa,[ei]:Qa})}else{var Ya=Fa,Wa=qa,el=Ma;if(Da!=null&&Da.partialResponse)Ya=f({},Aa,Ya),Wa=f({},Oa,Wa),el=f({},Ia,el);else if(ja.errorsWhileComputingFlags)if(Ma){var tl=new Set(Object.keys(Ma).filter((rl=>{var cl;return!((cl=Ma[rl])!=null&&cl.failed)})));Ya=f({},Aa,Object.fromEntries(Object.entries(Ya).filter((rl=>{var[cl]=rl;return tl.has(cl)})))),Wa=f({},Oa,Object.fromEntries(Object.entries(Wa||{}).filter((rl=>{var[cl]=rl;return tl.has(cl)})))),el=f({},Ia,Object.fromEntries(Object.entries(el||{}).filter((rl=>{var[cl]=rl;return tl.has(cl)}))))}else Ya=f({},Aa,Ya),Wa=f({},Oa,Wa),el=f({},Ia,el);Ca&&Ca.register(f({[ii]:Object.keys(la(Ya)),[ei]:Ya||{},[ni]:Wa||{},[si]:el||{}},Ha?{[oi]:Ha}:{},Ka?{[gi]:Ka}:{}))}}})(es,this.ni,is,Kr,Qr,ts),$||(this.ss=!1),this.ps($)}}override(es,$){$===void 0&&($=!1),sa.warn("override is deprecated. Please use overrideFeatureFlags instead."),this.overrideFeatureFlags({flags:es,suppressWarning:$})}overrideFeatureFlags(es){if(!this._instance.__loaded||!this.ni)return sa.uninitializedWarning("posthog.featureFlags.overrideFeatureFlags");if(es===!1)return this.ni.unregister(ai),this.ni.unregister(li),this.ps(),na.info("All overrides cleared");if(R(es)){var $=aa(es);return this.ni.register({[ai]:$}),this.ps(),na.info("Flag overrides set",{flags:es})}if(es&&typeof es=="object"&&("flags"in es||"payloads"in es)){var ts,is=es;if(this.Jn=!!((ts=is.suppressWarning)!==null&&ts!==void 0&&ts),"flags"in is){if(is.flags===!1)this.ni.unregister(ai),na.info("Flag overrides cleared");else if(is.flags){if(R(is.flags)){var Kr=aa(is.flags);this.ni.register({[ai]:Kr})}else this.ni.register({[ai]:is.flags});na.info("Flag overrides set",{flags:is.flags})}}return"payloads"in is&&(is.payloads===!1?(this.ni.unregister(li),na.info("Payload overrides cleared")):is.payloads&&(this.ni.register({[li]:is.payloads}),na.info("Payload overrides set",{payloads:is.payloads}))),void this.ps()}if(es&&typeof es=="object")return this.ni.register({[ai]:es}),this.ps(),na.info("Flag overrides set",{flags:es});sa.warn("Invalid overrideOptions provided to overrideFeatureFlags",{overrideOptions:es})}onFeatureFlags(es){if(this.addFeatureFlagsHandler(es),this.Kn){var{flags:$,flagVariants:ts}=this.gs();es($,ts)}return()=>this.removeFeatureFlagsHandler(es)}updateEarlyAccessFeatureEnrollment(es,$,ts){var is,Kr=(this.os(ri)||[]).find((Aa=>Aa.flagKey===es)),Qr={["$feature_enrollment/"+es]:$},ja={$feature_flag:es,$feature_enrollment:$,$set:Qr};Kr&&(ja.$early_access_feature_name=Kr.name),ts&&(ja.$feature_enrollment_stage=ts),this._instance.capture("$feature_enrollment_update",ja),this.setPersonPropertiesForFlags(Qr,!1);var Ca=f({},this.getFlagVariants(),{[es]:$});(is=this.ni)==null||is.register({[ii]:Object.keys(la(Ca)),[ei]:Ca}),this.ps()}getEarlyAccessFeatures(es,$,ts){$===void 0&&($=!1);var is=this.os(ri),Kr=ts?"&"+ts.map((Qr=>"stage="+Qr)).join("&"):"";if(is&&!$)return es(is);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/early_access_features/?token="+this.Bt.token+Kr),method:"GET",callback:Qr=>{var ja,Ca;if(Qr.json){var Aa=Qr.json.earlyAccessFeatures;return(ja=this.ni)==null||ja.unregister(ri),(Ca=this.ni)==null||Ca.register({[ri]:Aa}),es(Aa)}}})}gs(){var es=this.getFlags(),$=this.getFlagVariants();return{flags:es.filter((ts=>$[ts])),flagVariants:Object.keys($).filter((ts=>$[ts])).reduce(((ts,is)=>(ts[is]=$[is],ts)),{})}}ps(es){var{flags:$,flagVariants:ts}=this.gs();this.featureFlagEventHandlers.forEach((is=>is($,ts,{errorsLoading:es})))}setPersonPropertiesForFlags(es,$){$===void 0&&($=!0);var ts=this.os(ui)||{},is=(es==null?void 0:es.$set)||(es!=null&&es.$set_once?{}:es),Kr=es==null?void 0:es.$set_once,Qr={};if(Kr)for(var ja in Kr)({}).hasOwnProperty.call(Kr,ja)&&(ja in ts||(Qr[ja]=Kr[ja]));this._instance.register({[ui]:f({},ts,Qr,is)}),$&&this._instance.reloadFeatureFlags()}resetPersonPropertiesForFlags(){this._instance.unregister(ui)}setGroupPropertiesForFlags(es,$){$===void 0&&($=!0);var ts=this.os(hi)||{};Object.keys(ts).length!==0&&Object.keys(ts).forEach((is=>{ts[is]=f({},ts[is],es[is]),delete es[is]})),this._instance.register({[hi]:f({},ts,es)}),$&&this._instance.reloadFeatureFlags()}resetGroupPropertiesForFlags(es){if(es){var $=this.os(hi)||{};this._instance.register({[hi]:f({},$,{[es]:{}})})}else this._instance.unregister(hi)}reset(){this.Kn=!1,this.Qn=!1,this.es=!1,this.ts=!1,this.rs=!1,this.$anon_distinct_id=void 0,this.fs(),this.Jn=!1}}},_a={sessionRecording:class{get Bt(){return this._instance.config}get ni(){return this._instance.persistence}get started(){var es;return!((es=this.ys)==null||!es.isStarted)}get status(){var es,$;return this.bs===No||this.bs===jo?this.bs:(es=($=this.ys)==null?void 0:$.status)!==null&&es!==void 0?es:this.bs}constructor(es){if(this._forceAllowLocalhostNetworkCapture=!1,this.bs=Lo,this._s=void 0,this._instance=es,!this._instance.sessionManager)throw Bo.error("started without valid sessionManager"),new Error(zo+" started without valid sessionManager. This is a bug.");if(this.Bt.cookieless_mode===Ci)throw new Error(zo+' cannot be used with cookieless_mode="always"')}initialize(){this.startIfEnabledOrStop()}get ws(){var es,$=!((es=this._instance.get_property(Ye))==null||!es.enabled),ts=!this.Bt.disable_session_recording,is=this.Bt.disable_session_recording||this._instance.consent.isOptedOut();return t&&$&&ts&&!is}startIfEnabledOrStop(es){var $;if(!this.ws||($=this.ys)==null||!$.isStarted){var ts=!C(Object.assign)&&!C(Array.from);this.ws&&ts?(this.Is(es),Bo.info("starting")):(this.bs=Lo,this.stopRecording())}}Is(es){var $,ts,is;this.ws&&(this.bs!==No&&this.bs!==jo&&(this.bs=Uo),h!=null&&($=h.__PosthogExtensions__)!=null&&($=$.rrweb)!=null&&$.record&&(ts=h.__PosthogExtensions__)!=null&&ts.initSessionRecording?this.Cs(es):(is=h.__PosthogExtensions__)==null||is.loadExternalDependency==null||is.loadExternalDependency(this._instance,this.Ss,(Kr=>{if(Kr)return Bo.error("could not load recorder",Kr);this.Cs(es)})))}stopRecording(){var es,$;(es=this._s)==null||es.call(this),this._s=void 0,($=this.ys)==null||$.stop()}xs(){var es,$;(es=this._s)==null||es.call(this),this._s=void 0,($=this.ys)==null||$.discard()}ks(){var es;(es=this.ni)==null||es.unregister(ti)}Ts(es,$){if(D(es))return null;var ts,is=L(es)?es:parseFloat(es);return typeof(ts=is)!="number"||!Number.isFinite(ts)||0>ts||ts>1?(Bo.warn($+" must be between 0 and 1. Ignoring invalid value:",es),null):is}As(es){if(this.ni){var $,ts,is=this.ni,Kr=()=>{var Qr,ja=es.sessionRecording===!1?void 0:es.sessionRecording,Ca=this.Ts((Qr=this.Bt.session_recording)==null?void 0:Qr.sampleRate,"session_recording.sampleRate"),Aa=this.Ts(ja==null?void 0:ja.sampleRate,"remote config sampleRate"),Oa=Ca??Aa;D(Oa)&&this.ks();var Ia=ja==null?void 0:ja.minimumDurationMilliseconds;is.register({[Ye]:f({cache_timestamp:Date.now(),enabled:!!ja},ja,{networkPayloadCapture:f({capturePerformance:es.capturePerformance},ja==null?void 0:ja.networkPayloadCapture),canvasRecording:{enabled:ja==null?void 0:ja.recordCanvas,fps:ja==null?void 0:ja.canvasFps,quality:ja==null?void 0:ja.canvasQuality},sampleRate:Oa,minimumDurationMilliseconds:C(Ia)?null:Ia,endpoint:ja==null?void 0:ja.endpoint,triggerMatchType:ja==null?void 0:ja.triggerMatchType,masking:ja==null?void 0:ja.masking,urlTriggers:ja==null?void 0:ja.urlTriggers,version:ja==null?void 0:ja.version,triggerGroups:ja==null?void 0:ja.triggerGroups})})};Kr(),($=this._s)==null||$.call(this),this._s=(ts=this._instance.sessionManager)==null?void 0:ts.onSessionId(Kr)}}onRemoteConfig(es){return"sessionRecording"in es?es.sessionRecording===!1?(this.As(es),void this.xs()):(this.As(es),void this.startIfEnabledOrStop()):(this.bs===No&&(this.bs=jo,Bo.warn("config refresh failed, recording will not start until page reload")),void this.startIfEnabledOrStop())}log(es,$){var ts;$===void 0&&($="log"),(ts=this.ys)!=null&&ts.log?this.ys.log(es,$):Bo.warn("log called before recorder was ready")}get Ss(){var es,$,ts=(es=this._instance)==null||(es=es.persistence)==null?void 0:es.get_property(Ye);return(ts==null||($=ts.scriptConfig)==null?void 0:$.script)||"lazy-recorder"}Es(){var es,$=this._instance.get_property(Ye);if(!$)return!1;var ts=(es=(typeof $=="object"?$:JSON.parse($)).cache_timestamp)!==null&&es!==void 0?es:Date.now();return 36e5>=Date.now()-ts}Cs(es){var $,ts;if(($=h.__PosthogExtensions__)==null||!$.initSessionRecording)return Bo.warn("Called on script loaded before session recording is available. This can be caused by adblockers."),void this._instance.register_for_session({[Pi]:!0});if(this.ys||(this.ys=(ts=h.__PosthogExtensions__)==null?void 0:ts.initSessionRecording(this._instance),this.ys._forceAllowLocalhostNetworkCapture=this._forceAllowLocalhostNetworkCapture),!this.Es())return this.bs===jo||this.bs===No?void 0:(this.bs=No,Bo.info("persisted remote config is stale, requesting fresh config before starting"),void new vs(this._instance).load());this.bs=Uo,this.ys.start(es)}onRRwebEmit(es){var $;($=this.ys)==null||$.onRRwebEmit==null||$.onRRwebEmit(es)}overrideLinkedFlag(){var es,$;this.ys||($=this.ni)==null||$.register({[Ke]:!0}),(es=this.ys)==null||es.overrideLinkedFlag()}overrideSampling(){var es,$;this.ys||($=this.ni)==null||$.register({[Je]:!0}),(es=this.ys)==null||es.overrideSampling()}overrideTrigger(es){var $,ts;this.ys||(ts=this.ni)==null||ts.register({[es==="url"?Xe:Qe]:!0}),($=this.ys)==null||$.overrideTrigger(es)}get sdkDebugProperties(){var es;return((es=this.ys)==null?void 0:es.sdkDebugProperties)||{$recording_status:this.status}}tryAddCustomEvent(es,$){var ts;return!((ts=this.ys)==null||!ts.tryAddCustomEvent(es,$))}}},ga={autocapture:class{constructor(es){this.Rs=!1,this.Ns=null,this.Ms=!1,this.instance=es,this.rageclicks=new To(es.config.rageclick),this.Fs=null}initialize(){this.startIfEnabled()}get Bt(){var es,$,ts=O(this.instance.config.autocapture)?this.instance.config.autocapture:{};return ts.url_allowlist=(es=ts.url_allowlist)==null?void 0:es.map((is=>new RegExp(is))),ts.url_ignorelist=($=ts.url_ignorelist)==null?void 0:$.map((is=>new RegExp(is))),ts}Os(){if(this.isBrowserSupported()){if(t&&r){var es=ts=>{ts=ts||(t==null?void 0:t.event);try{this.Ps(ts)}catch(is){Ro.error("Failed to capture event",is)}};if(Xi(r,"submit",es,{capture:!0}),Xi(r,"change",es,{capture:!0}),Xi(r,"click",es,{capture:!0}),this.Bt.capture_copied_text){var $=ts=>{ts=ts||(t==null?void 0:t.event);try{this.Ps(ts,ko)}catch(is){Ro.error("Failed to capture copy/cut event",is)}};Xi(r,"copy",$,{capture:!0}),Xi(r,"cut",$,{capture:!0})}}}else Ro.info("Disabling Automatic Event Collection because this browser is not supported")}startIfEnabled(){this.isEnabled&&!this.Rs&&(this.Os(),this.Rs=!0)}onRemoteConfig(es){es.elementsChainAsString&&(this.Ms=es.elementsChainAsString),this.instance.persistence&&this.instance.persistence.register({[Ne]:!!es.autocapture_opt_out}),this.Ns=!!es.autocapture_opt_out,this.startIfEnabled()}setElementSelectors(es){this.Fs=es}getElementSelectors(es){var $,ts=[];return($=this.Fs)==null||$.forEach((is=>{var Kr=r==null?void 0:r.querySelectorAll(is);Kr==null||Kr.forEach((Qr=>{es===Qr&&ts.push(is)}))})),ts}get isEnabled(){var es,$,ts=(es=this.instance.persistence)==null?void 0:es.props[Ne];if(M(this.Ns)&&!N(ts)&&!this.instance.Fr())return!1;var is=($=this.Ns)!==null&&$!==void 0?$:!!ts;return!!this.instance.config.autocapture&&!is}Ps(es,$){if($===void 0&&($="$autocapture"),this.isEnabled){var ts,is=so(es);Xn(is)&&(is=is.parentNode||null),$==="$autocapture"&&es.type==="click"&&es instanceof MouseEvent&&this.instance.config.rageclick&&(ts=this.rageclicks)!=null&&ts.isRageClick(es.clientX,es.clientY,es.timeStamp||new Date().getTime())&&(function(Da,Ba){if(!t||ho(Da))return!1;var Ma,Fa,qa;if(N(Ba)?(Ma=!!Ba&&uo,Fa=void 0):(Ma=(qa=Ba==null?void 0:Ba.css_selector_ignorelist)!==null&&qa!==void 0?qa:uo,Fa=Ba==null?void 0:Ba.content_ignorelist),Ma===!1)return!1;var{targetElementList:Ha}=vo(Da,!1);return!(function(Ka,Qa){if(Ka===!1||C(Ka))return!1;var Va;if(Ka===!0)Va=lo;else{if(!R(Ka))return!1;if(Ka.length>10)return Ie.error("[PostHog] content_ignorelist array cannot exceed 10 items. Use css_selector_ignorelist for more complex matching."),!1;Va=Ka.map((Ya=>Ya.toLowerCase()))}return Qa.some((Ya=>{var{safeText:Wa,ariaLabel:el}=Ya;return Va.some((tl=>Wa.includes(tl)||el.includes(tl)))}))})(Fa,Ha.map((Ka=>{var Qa;return{safeText:ro(Ka).toLowerCase(),ariaLabel:((Qa=Ka.getAttribute("aria-label"))==null?void 0:Qa.toLowerCase().trim())||""}})))&&!oo(Ha,Ma)})(is,this.instance.config.rageclick)&&this.Ps(es,"$rageclick");var Kr=$===ko;if(is&&(function(Da,Ba,Ma,Fa,qa){var Ha,Ka,Qa,Va;if(Ma===void 0&&(Ma=void 0),!t||ho(Da)||(Ha=Ma)!=null&&Ha.url_allowlist&&!to(Ma.url_allowlist)||(Ka=Ma)!=null&&Ka.url_ignorelist&&to(Ma.url_ignorelist))return!1;if((Qa=Ma)!=null&&Qa.dom_event_allowlist){var Ya=Ma.dom_event_allowlist;if(Ya&&!Ya.some((cl=>Ba.type===cl)))return!1}var{parentIsUsefulElement:Wa,targetElementList:el}=vo(Da,Fa);if(!(function(cl,dl){var fl=dl==null?void 0:dl.element_allowlist;if(C(fl))return!0;var nl,ol=function(Tl){if(fl.some((ul=>Tl.tagName.toLowerCase()===ul)))return{v:!0}};for(var pl of cl)if(nl=ol(pl))return nl.v;return!1})(el,Ma)||!oo(el,(Va=Ma)==null?void 0:Va.css_selector_allowlist))return!1;var tl=t.getComputedStyle(Da);if(tl&&tl.getPropertyValue("cursor")==="pointer"&&Ba.type==="click")return!0;var rl=Da.tagName.toLowerCase();switch(rl){case"html":return!1;case"form":return(qa||["submit"]).indexOf(Ba.type)>=0;case"input":case"select":case"textarea":return(qa||["change","click"]).indexOf(Ba.type)>=0;default:return Wa?(qa||["click"]).indexOf(Ba.type)>=0:(qa||["click"]).indexOf(Ba.type)>=0&&(no.indexOf(rl)>-1||Da.getAttribute("contenteditable")==="true")}})(is,es,this.Bt,Kr,Kr?["copy","cut"]:void 0)){var{props:Qr,explicitNoCapture:ja}=Io(is,{e:es,maskAllElementAttributes:this.instance.config.mask_all_element_attributes,maskAllText:this.instance.config.mask_all_text,elementAttributeIgnoreList:this.Bt.element_attribute_ignorelist,elementsChainAsString:this.Ms});if(ja)return!1;var Ca=this.getElementSelectors(is);if(Ca&&Ca.length>0&&(Qr.$element_selectors=Ca),$===ko){var Aa,Oa=io(t==null||(Aa=t.getSelection())==null?void 0:Aa.toString()),Ia=es.type||"clipboard";if(!Oa)return!1;Qr.$selected_content=Oa,Qr.$copy_type=Ia}return this.instance.capture($,Qr),!0}}}isBrowserSupported(){return P(r==null?void 0:r.querySelectorAll)}},historyAutocapture:class{constructor(es){var $;this._instance=es,this.Ls=(t==null||($=t.location)==null?void 0:$.pathname)||""}initialize(){this.startIfEnabled()}get isEnabled(){return this._instance.config.capture_pageview==="history_change"}startIfEnabled(){this.isEnabled&&(Ie.info("History API monitoring enabled, starting..."),this.monitorHistoryChanges())}stop(){this.Ds&&this.Ds(),this.Ds=void 0,Ie.info("History API monitoring stopped")}monitorHistoryChanges(){var es,$;if(t&&t.history){var ts=this;(es=t.history.pushState)!=null&&es.__posthog_wrapped__||Fo(t.history,"pushState",(is=>function(Kr,Qr,ja){is.call(this,Kr,Qr,ja),ts.Bs("pushState")})),($=t.history.replaceState)!=null&&$.__posthog_wrapped__||Fo(t.history,"replaceState",(is=>function(Kr,Qr,ja){is.call(this,Kr,Qr,ja),ts.Bs("replaceState")})),this.js()}}Bs(es){try{var $,ts=t==null||($=t.location)==null?void 0:$.pathname;if(!ts)return;ts!==this.Ls&&this.isEnabled&&this._instance.capture(Ui,{navigation_type:es}),this.Ls=ts}catch(is){Ie.error("Error capturing "+es+" pageview",is)}}js(){if(!this.Ds){var es=()=>{this.Bs("popstate")};Xi(t,"popstate",es),this.Ds=()=>{t&&t.removeEventListener("popstate",es)}}}},heatmaps:class{get Bt(){return this.instance.config}constructor(es){var $;this.$s=!1,this.Rs=!1,this.qs=null,this.instance=es,this.$s=!(($=this.instance.persistence)==null||!$.props[je]),this.rageclicks=new To(es.config.rageclick)}initialize(){this.startIfEnabled()}get flushIntervalMilliseconds(){var es=5e3;return O(this.Bt.capture_heatmaps)&&this.Bt.capture_heatmaps.flush_interval_milliseconds&&(es=this.Bt.capture_heatmaps.flush_interval_milliseconds),es}get isEnabled(){return D(this.Bt.capture_heatmaps)?D(this.Bt.enable_heatmaps)?this.$s:this.Bt.enable_heatmaps:this.Bt.capture_heatmaps!==!1}startIfEnabled(){if(this.isEnabled){if(this.Rs)return;Ho.info("starting..."),this.Zs(),this.Ft()}else{var es;clearInterval((es=this.qs)!==null&&es!==void 0?es:void 0),this.Vs(),this.getAndClearBuffer()}}onRemoteConfig(es){if("heatmaps"in es){var $=!!es.heatmaps;this.instance.persistence&&this.instance.persistence.register({[je]:$}),this.$s=$,this.startIfEnabled()}}getAndClearBuffer(){var es=this.T;return this.T=void 0,es}Hs(es){this.Tt(es.originalEvent,"deadclick")}Ft(){this.qs&&clearInterval(this.qs),this.qs=(r==null?void 0:r.visibilityState)==="visible"?setInterval(this.Yr.bind(this),this.flushIntervalMilliseconds):null}Zs(){t&&r&&(this.zs=this.Yr.bind(this),Xi(t,Li,this.zs),this.Us=es=>this.Tt(es||(t==null?void 0:t.event)),Xi(r,"click",this.Us,{capture:!0}),this.Ys=es=>this.Gs(es||(t==null?void 0:t.event)),Xi(r,"mousemove",this.Ys,{capture:!0}),this.Ws=new yr(this.instance,mr,this.Hs.bind(this)),this.Ws.startIfEnabledOrStop(),this.Xs=this.Ft.bind(this),Xi(r,Di,this.Xs),this.Rs=!0)}Vs(){var es;t&&r&&(this.zs&&t.removeEventListener(Li,this.zs),this.Us&&r.removeEventListener("click",this.Us,{capture:!0}),this.Ys&&r.removeEventListener("mousemove",this.Ys,{capture:!0}),this.Xs&&r.removeEventListener(Di,this.Xs),clearTimeout(this.Js),(es=this.Ws)==null||es.stop(),this.Rs=!1)}Ks(es,$){var ts=this.instance.scrollManager.scrollY(),is=this.instance.scrollManager.scrollX(),Kr=this.instance.scrollManager.scrollElement(),Qr=(function(ja,Ca,Aa){for(var Oa=ja;Oa&&Jn(Oa)&&!Kn(Oa,"body");){if(Oa===Aa)return!1;if(w(Ca,t==null?void 0:t.getComputedStyle(Oa).position))return!0;Oa=ao(Oa)}return!1})(so(es),["fixed","sticky"],Kr);return{x:es.clientX+(Qr?0:is),y:es.clientY+(Qr?0:ts),target_fixed:Qr,type:$}}Tt(es,$){var ts;if($===void 0&&($="click"),!Yn(es.target)&&qo(es)){var is=this.Ks(es,$);(ts=this.rageclicks)!=null&&ts.isRageClick(es.clientX,es.clientY,new Date().getTime())&&this.Qs(f({},is,{type:"rageclick"})),this.Qs(is)}}Gs(es){!Yn(es.target)&&qo(es)&&(clearTimeout(this.Js),this.Js=setTimeout((()=>{this.Qs(this.Ks(es,"mousemove"))}),500))}Qs(es){if(t){var $=t.location.href,ts=this.Bt.custom_personal_data_properties,is=this.Bt.mask_personal_data_properties?[...Fr,...ts||[]]:[],Kr=Or($,is,Mr);this.T=this.T||{},this.T[Kr]||(this.T[Kr]=[]),this.T[Kr].push(es)}}Yr(){this.T&&!I(this.T)&&this.instance.capture("$$heatmap",{$heatmap_data:this.getAndClearBuffer()})}},deadClicksAutocapture:yr,webVitalsAutocapture:class{constructor(es){var $;this.$s=!1,this.Rs=!1,this.T={url:void 0,metrics:[],firstMetricTimestamp:void 0},this.eo=()=>{clearTimeout(this.ro),this.T.metrics.length!==0&&(this._instance.capture("$web_vitals",this.T.metrics.reduce(((ts,is)=>f({},ts,{["$web_vitals_"+is.name+"_event"]:f({},is),["$web_vitals_"+is.name+"_value"]:is.value})),{})),this.T={url:void 0,metrics:[],firstMetricTimestamp:void 0})},this.ht=ts=>{var is,Kr=(is=this._instance.sessionManager)==null?void 0:is.checkAndGetSessionAndWindowId(!0);if(C(Kr))Mo.error("Could not read session ID. Dropping metrics!");else{this.T=this.T||{url:void 0,metrics:[],firstMetricTimestamp:void 0};var Qr=this.io();C(Qr)||(D(ts==null?void 0:ts.name)||D(ts==null?void 0:ts.value)?Mo.error("Invalid metric received",ts):!this.no||this.no>ts.value?(this.T.url!==Qr&&(this.eo(),this.ro=setTimeout(this.eo,this.flushToCaptureTimeoutMs)),C(this.T.url)&&(this.T.url=Qr),this.T.firstMetricTimestamp=C(this.T.firstMetricTimestamp)?Date.now():this.T.firstMetricTimestamp,ts.attribution&&ts.attribution.interactionTargetElement&&(ts.attribution.interactionTargetElement=void 0),this.T.metrics.push(f({},ts,{$current_url:Qr,$session_id:Kr.sessionId,$window_id:Kr.windowId,timestamp:Date.now()})),this.T.metrics.length===this.allowedMetrics.length&&this.eo()):Mo.error("Ignoring metric with value >= "+this.no,ts))}},this.so=()=>{if(!this.Rs){var ts,is,Kr,Qr,ja=h.__PosthogExtensions__;C(ja)||C(ja.postHogWebVitalsCallbacks)||({onLCP:ts,onCLS:is,onFCP:Kr,onINP:Qr}=ja.postHogWebVitalsCallbacks),ts&&is&&Kr&&Qr?(this.allowedMetrics.indexOf("LCP")>-1&&ts(this.ht.bind(this)),this.allowedMetrics.indexOf("CLS")>-1&&is(this.ht.bind(this)),this.allowedMetrics.indexOf("FCP")>-1&&Kr(this.ht.bind(this)),this.allowedMetrics.indexOf("INP")>-1&&Qr(this.ht.bind(this)),this.Rs=!0):Mo.error("web vitals callbacks not loaded - not starting")}},this._instance=es,this.$s=!(($=this._instance.persistence)==null||!$.props[qe]),this.startIfEnabled()}get oo(){return this._instance.config.capture_performance}get allowedMetrics(){var es,$,ts=O(this.oo)?(es=this.oo)==null?void 0:es.web_vitals_allowed_metrics:void 0;return D(ts)?(($=this._instance.persistence)==null?void 0:$.props[Ge])||["CLS","FCP","INP","LCP"]:ts}get flushToCaptureTimeoutMs(){return(O(this.oo)?this.oo.web_vitals_delayed_flush_ms:void 0)||5e3}get useAttribution(){var es=O(this.oo)?this.oo.web_vitals_attribution:void 0;return es!=null&&es}get no(){var es=O(this.oo)&&L(this.oo.__web_vitals_max_value)?this.oo.__web_vitals_max_value:Do;return es>0&&6e4>=es?Do:es}get isEnabled(){var es=s==null?void 0:s.protocol;if(es!=="http:"&&es!=="https:")return Mo.info("Web Vitals are disabled on non-http/https protocols"),!1;var $=O(this.oo)?this.oo.web_vitals:N(this.oo)?this.oo:void 0;return N($)?$:this.$s}startIfEnabled(){this.isEnabled&&!this.Rs&&(Mo.info("enabled, starting..."),this.ur(this.so))}onRemoteConfig(es){if("capturePerformance"in es){var $=O(es.capturePerformance)&&!!es.capturePerformance.web_vitals,ts=O(es.capturePerformance)?es.capturePerformance.web_vitals_allowed_metrics:void 0;this._instance.persistence&&(this._instance.persistence.register({[qe]:$}),this._instance.persistence.register({[Ge]:ts})),this.$s=$,this.startIfEnabled()}}ur(es){var $,ts;($=h.__PosthogExtensions__)!=null&&$.postHogWebVitalsCallbacks?es():(ts=h.__PosthogExtensions__)==null||ts.loadExternalDependency==null||ts.loadExternalDependency(this._instance,this.useAttribution?"web-vitals-with-attribution":"web-vitals",(is=>{is?Mo.error("failed to load script",is):es()}))}io(){var es=t?t.location.href:void 0;if(es){var $=this._instance.config.custom_personal_data_properties,ts=this._instance.config.mask_personal_data_properties?[...Fr,...$||[]]:[];return Or(es,ts,Mr)}Mo.error("Could not determine current URL")}}},ma={exceptionObserver:class{constructor(es){var $,ts,is;this.so=()=>{var Kr;if(t&&this.isEnabled&&(Kr=h.__PosthogExtensions__)!=null&&Kr.errorWrappingFunctions){var Qr=h.__PosthogExtensions__.errorWrappingFunctions.wrapOnError,ja=h.__PosthogExtensions__.errorWrappingFunctions.wrapUnhandledRejection,Ca=h.__PosthogExtensions__.errorWrappingFunctions.wrapConsoleError;try{!this.ao&&this.Bt.capture_unhandled_errors&&(this.ao=Qr(this.captureException.bind(this))),!this.lo&&this.Bt.capture_unhandled_rejections&&(this.lo=ja(this.captureException.bind(this))),!this.uo&&this.Bt.capture_console_errors&&(this.uo=Ca(this.captureException.bind(this)))}catch(Aa){Co.error("failed to start",Aa),this.ho()}}},this._instance=es,this.co=!(($=this._instance.persistence)==null||!$.props[ze]),this.do=new J({refillRate:(ts=this._instance.config.error_tracking.__exceptionRateLimiterRefillRate)!==null&&ts!==void 0?ts:1,bucketSize:(is=this._instance.config.error_tracking.__exceptionRateLimiterBucketSize)!==null&&is!==void 0?is:10,refillInterval:1e4,Gt:Co}),this.Bt=this.vo(),this.startIfEnabledOrStop()}vo(){var es=this._instance.config.capture_exceptions,$={capture_unhandled_errors:!1,capture_unhandled_rejections:!1,capture_console_errors:!1};return O(es)?$=f({},$,es):(C(es)?this.co:es)&&($=f({},$,{capture_unhandled_errors:!0,capture_unhandled_rejections:!0})),$}get isEnabled(){return this.Bt.capture_console_errors||this.Bt.capture_unhandled_errors||this.Bt.capture_unhandled_rejections}startIfEnabledOrStop(){this.isEnabled?(Co.info("enabled"),this.ho(),this.ur(this.so)):this.ho()}ur(es){var $,ts;($=h.__PosthogExtensions__)!=null&&$.errorWrappingFunctions&&es(),(ts=h.__PosthogExtensions__)==null||ts.loadExternalDependency==null||ts.loadExternalDependency(this._instance,"exception-autocapture",(is=>{if(is)return Co.error("failed to load script",is);es()}))}ho(){var es,$,ts;(es=this.ao)==null||es.call(this),this.ao=void 0,($=this.lo)==null||$.call(this),this.lo=void 0,(ts=this.uo)==null||ts.call(this),this.uo=void 0}onRemoteConfig(es){"autocaptureExceptions"in es&&(this.co=!!es.autocaptureExceptions||!1,this._instance.persistence&&this._instance.persistence.register({[ze]:this.co}),this.Bt=this.vo(),this.startIfEnabledOrStop())}onConfigChange(){this.Bt=this.vo()}captureException(es){var $,ts,is,Kr=($=es==null||(ts=es.$exception_list)==null||(ts=ts[0])==null?void 0:ts.type)!==null&&$!==void 0?$:"Exception";this.do.consumeRateLimit(Kr)?Co.info("Skipping exception capture because of client rate limiting.",{exception:Kr}):(is=this._instance.exceptions)==null||is.sendExceptionEvent(es)}},exceptions:class{constructor(es){var $,ts;this.fo=[],this.po=new te([new ve,new xe,new pe,new ce,new ye,new be,new _e,new we],(function(is){for(var Kr=arguments.length,Qr=new Array(Kr>1?Kr-1:0),ja=1;Kr>ja;ja++)Qr[ja-1]=arguments[ja];return function(Ca,Aa){Aa===void 0&&(Aa=0);for(var Oa=[],Ia=Ca.split(`
120
- `),Da=Aa;Ia.length>Da;Da++){var Ba=Ia[Da];if(1024>=Ba.length){var Ma=de.test(Ba)?Ba.replace(de,"$1"):Ba;if(!Ma.match(/\S*Error: /)){for(var Fa of Qr){var qa=Fa(Ma,is);if(qa){Oa.push(qa);break}}if(Oa.length>=50)break}}}return(function(Ha){if(!Ha.length)return[];var Ka=Array.from(Ha);return Ka.reverse(),Ka.slice(0,50).map((Qa=>{return f({},Qa,{filename:Qa.filename||(Va=Ka,Va[Va.length-1]||{}).filename,function:Qa.function||ee});var Va}))})(Oa)}})("web:javascript",ae,he)),this._instance=es,this.fo=($=(ts=this._instance.persistence)==null?void 0:ts.get_property(Be))!==null&&$!==void 0?$:[],this.mo=ke(this.yo()),this.bo=new Re(this.mo)}onConfigChange(){this.mo=ke(this.yo()),this.bo.setConfig(this.mo)}onRemoteConfig(es){var $,ts,is;if("errorTracking"in es){var Kr=($=(ts=es.errorTracking)==null?void 0:ts.suppressionRules)!==null&&$!==void 0?$:[],Qr=(is=es.errorTracking)==null?void 0:is.captureExtensionExceptions;this.fo=Kr,this._instance.persistence&&this._instance.persistence.register({[Be]:this.fo,[He]:Qr})}}get _o(){var es,$=!!this._instance.get_property(He),ts=this._instance.config.error_tracking.captureExtensionExceptions;return(es=ts??$)!==null&&es!==void 0&&es}buildProperties(es,$){return this.po.buildFromUnknown(es,{syntheticException:$==null?void 0:$.syntheticException,mechanism:{handled:$==null?void 0:$.handled}})}addExceptionStep(es,$){if(this.mo.enabled)try{if(!F(es)||es.trim().length===0)return void ua.warn("Ignoring exception step because message must be a non-empty string");var ts=this.wo($),{sanitizedProperties:is,droppedKeys:Kr}=(function(Qr){if(!Qr)return{sanitizedProperties:{},droppedKeys:[]};var ja=[];return{sanitizedProperties:Object.keys(Qr).reduce(((Ca,Aa)=>$e.has(Aa)?(ja.push(Aa),Ca):(Ca[Aa]=Qr[Aa],Ca)),{}),droppedKeys:ja}})(ts);Kr.length>0&&ua.warn("Ignoring reserved exception step fields",{droppedKeys:Kr}),this.bo.add(f({[Ee]:es,[Se]:new Date().toISOString()},is))}catch(Qr){ua.error("Failed to add exception step. Ignoring breadcrumb.",Qr)}}sendExceptionEvent(es){try{var $=es.$exception_list;if(this.Io($)){if(this.Co($))return this.So("Exception dropped: matched a suppression rule"),void ua.info("Skipping exception capture because a suppression rule matched");if(!this._o&&this.xo($))return this.So("Exception dropped: thrown by a browser extension"),void ua.info("Skipping exception capture because it was thrown by an extension");if(!this._instance.config.error_tracking.__capturePostHogExceptions&&this.ko($))return this.So("Exception dropped: thrown by the PostHog SDK"),void ua.info("Skipping exception capture because it was thrown by the PostHog SDK")}var ts=this.mo.enabled&&D(es.$exception_steps)?this.To(es):es;try{var is=this._instance.capture("$exception",ts,{_noTruncate:!0,_batchKey:"exceptionEvent",en:!0});return is&&this.bo.clear(),is}catch(Kr){return ua.error("Failed to capture exception event. Dropping this exception.",Kr),void this.bo.clear()}}catch(Kr){return void ua.error("Failed to process exception event. Ignoring this exception.",Kr)}}To(es){try{var $=this.bo.getAttachable();return $.length===0?es:f({},es,{$exception_steps:$})}catch(ts){return ua.error("Failed to read buffered exception steps. Capturing exception without steps.",ts),es}}So(es){this.mo.enabled&&this.bo.add({[Ee]:es,[Se]:new Date().toISOString()})}wo(es){return O(es)?f({},es):{}}yo(){var es,$;return(es=($=this._instance.config.error_tracking)==null?void 0:$.exception_steps)!==null&&es!==void 0?es:{}}Co(es){if(es.length===0)return!1;var $=es.reduce(((ts,is)=>{var{type:Kr,value:Qr}=is;return F(Kr)&&Kr.length>0&&ts.$exception_types.push(Kr),F(Qr)&&Qr.length>0&&ts.$exception_values.push(Qr),ts}),{$exception_types:[],$exception_values:[]});return this.fo.some((ts=>{var is=ts.values.map((Kr=>{var Qr,ja=_n[Kr.operator],Ca=R(Kr.value)?Kr.value:[Kr.value],Aa=(Qr=$[Kr.key])!==null&&Qr!==void 0?Qr:[];return Ca.length>0&&ja(Ca,Aa)}));return ts.type==="OR"?is.some(Boolean):is.every(Boolean)}))}xo(es){return es.flatMap(($=>{var ts,is;return(ts=(is=$.stacktrace)==null?void 0:is.frames)!==null&&ts!==void 0?ts:[]})).some(($=>$.filename&&$.filename.startsWith("chrome-extension://")))}ko(es){if(es.length>0){var $,ts,is,Kr,Qr=($=(ts=es[0].stacktrace)==null?void 0:ts.frames)!==null&&$!==void 0?$:[],ja=Qr[Qr.length-1];return(is=ja==null||(Kr=ja.filename)==null?void 0:Kr.includes("posthog.com/static"))!==null&&is!==void 0&&is}return!1}Io(es){return!D(es)&&R(es)}}},ba=f({productTours:class{get ni(){return this._instance.persistence}constructor(es){this.Ao=null,this.Eo=null,this._instance=es}initialize(){this.loadIfEnabled()}onRemoteConfig(es){"productTours"in es&&(this.ni&&this.ni.register({[We]:!!es.productTours}),this.loadIfEnabled())}loadIfEnabled(){var es,$;this.Ao||(es=this._instance).config.disable_product_tours||($=es.persistence)==null||!$.get_property(We)||this.ur((()=>this.Ro()))}ur(es){var $,ts;($=h.__PosthogExtensions__)!=null&&$.generateProductTours?es():(ts=h.__PosthogExtensions__)==null||ts.loadExternalDependency==null||ts.loadExternalDependency(this._instance,"product-tours",(is=>{is?Vo.error("Could not load product tours script",is):es()}))}Ro(){var es;!this.Ao&&(es=h.__PosthogExtensions__)!=null&&es.generateProductTours&&(this.Ao=h.__PosthogExtensions__.generateProductTours(this._instance,!0))}getProductTours(es,$){if($===void 0&&($=!1),!R(this.Eo)||$){var ts=this.ni;if(ts){var is=ts.props[ci];if(R(is)&&!$)return this.Eo=is,void es(is,{isLoaded:!0})}this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/product_tours/?token="+this._instance.config.token),method:"GET",callback:Kr=>{var Qr=Kr.statusCode;if(Qr!==200||!Kr.json){var ja="Product Tours API could not be loaded, status: "+Qr;return Vo.error(ja),void es([],{isLoaded:!1,error:ja})}var Ca=R(Kr.json.product_tours)?Kr.json.product_tours:[];this.Eo=Ca,ts&&ts.register({[ci]:Ca}),es(Ca,{isLoaded:!0})}})}else es(this.Eo,{isLoaded:!0})}getActiveProductTours(es){D(this.Ao)?es([],{isLoaded:!1,error:"Product tours not loaded"}):this.Ao.getActiveProductTours(es)}showProductTour(es){var $;($=this.Ao)==null||$.showTourById(es)}previewTour(es){this.Ao?this.Ao.previewTour(es):this.ur((()=>{var $;this.Ro(),($=this.Ao)==null||$.previewTour(es)}))}dismissProductTour(){var es;(es=this.Ao)==null||es.dismissTour("user_clicked_skip")}nextStep(){var es;(es=this.Ao)==null||es.nextStep()}previousStep(){var es;(es=this.Ao)==null||es.previousStep()}clearCache(){var es;this.Eo=null,(es=this.ni)==null||es.unregister(ci)}resetTour(es){var $;($=this.Ao)==null||$.resetTour(es)}resetAllTours(){var es;(es=this.Ao)==null||es.resetAllTours()}cancelPendingTour(es){var $;($=this.Ao)==null||$.cancelPendingTour(es)}}},fa),ya={siteApps:class{constructor(es){this._instance=es,this.No=[],this.apps={}}get isEnabled(){return!!this._instance.config.opt_in_site_apps}Mo(es,$){if($){var ts=this.globalsForEvent($);this.No.push(ts),this.No.length>1e3&&(this.No=this.No.slice(10))}}get siteAppLoaders(){var es;return(es=h._POSTHOG_REMOTE_CONFIG)==null||(es=es[this._instance.config.token])==null?void 0:es.siteApps}initialize(){if(this.isEnabled){var es=this._instance._addCaptureHook(this.Mo.bind(this));this.Fo=()=>{es(),this.No=[],this.Fo=void 0}}}globalsForEvent(es){var $,ts,is,Kr,Qr,ja,Ca;if(!es)throw new Error("Event payload is required");var Aa={},Oa=this._instance.get_property("$groups")||[],Ia=this._instance.get_property("$stored_group_properties")||{};for(var[Da,Ba]of Object.entries(Ia))Aa[Da]={id:Oa[Da],type:Da,properties:Ba};var{$set_once:Ma,$set:Fa}=es;return{event:f({},_(es,Wo),{properties:f({},es.properties,Fa?{$set:f({},($=(ts=es.properties)==null?void 0:ts.$set)!==null&&$!==void 0?$:{},Fa)}:{},Ma?{$set_once:f({},(is=(Kr=es.properties)==null?void 0:Kr.$set_once)!==null&&is!==void 0?is:{},Ma)}:{}),elements_chain:(Qr=(ja=es.properties)==null?void 0:ja.$elements_chain)!==null&&Qr!==void 0?Qr:"",distinct_id:(Ca=es.properties)==null?void 0:Ca.distinct_id}),person:{properties:this._instance.get_property("$stored_person_properties")},groups:Aa}}setupSiteApp(es){var $=this.apps[es.id],ts=()=>{var ja;!$.errored&&this.No.length&&(Go.info("Processing "+this.No.length+" events for site app with id "+es.id),this.No.forEach((Ca=>$.processEvent==null?void 0:$.processEvent(Ca))),$.processedBuffer=!0),Object.values(this.apps).every((Ca=>Ca.processedBuffer||Ca.errored))&&((ja=this.Fo)==null||ja.call(this))},is=!1,Kr=ja=>{$.errored=!ja,$.loaded=!0,Go.info("Site app with id "+es.id+" "+(ja?"loaded":"errored")),is&&ts()};try{var{processEvent:Qr}=es.init({posthog:this._instance,callback(ja){Kr(ja)}});Qr&&($.processEvent=Qr),is=!0}catch(ja){Go.error(Yo+es.id,ja),Kr(!1)}if(is&&$.loaded)try{ts()}catch(ja){Go.error("Error while processing buffered events PostHog app with config id "+es.id,ja),$.errored=!0}}Oo(){var es=this.siteAppLoaders||[];for(var $ of es)this.apps[$.id]={id:$.id,loaded:!1,errored:!1,processedBuffer:!1};for(var ts of es)this.setupSiteApp(ts)}Po(es){if(Object.keys(this.apps).length!==0){var $=this.globalsForEvent(es);for(var ts of Object.values(this.apps))try{ts.processEvent==null||ts.processEvent($)}catch(is){Go.error("Error while processing event "+es.event+" for site app "+ts.id,is)}}}onRemoteConfig(es){var $,ts,is,Kr=this;if(($=this.siteAppLoaders)!=null&&$.length)return this.isEnabled?(this.Oo(),void this._instance.on("eventCaptured",(Aa=>this.Po(Aa)))):void Go.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.');if((ts=this.Fo)==null||ts.call(this),(is=es.siteApps)!=null&&is.length)if(this.isEnabled){var Qr=function(Aa){var Oa;h["__$$ph_site_app_"+Aa]=Kr._instance,(Oa=h.__PosthogExtensions__)==null||Oa.loadSiteApp==null||Oa.loadSiteApp(Kr._instance,Ca,(Ia=>{if(Ia)return Go.error(Yo+Aa,Ia)}))};for(var{id:ja,url:Ca}of es.siteApps)Qr(ja)}else Go.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}}},wa={tracingHeaders:class{constructor(es){this.Lo=void 0,this.Do=void 0,this.so=()=>{var $,ts,is=this.Bo()||[];C(this.Lo)&&(($=h.__PosthogExtensions__)==null||($=$.tracingHeadersPatchFns)==null||$._patchXHR(is,this._instance.get_distinct_id(),this._instance.sessionManager)),C(this.Do)&&((ts=h.__PosthogExtensions__)==null||(ts=ts.tracingHeadersPatchFns)==null||ts._patchFetch(is,this._instance.get_distinct_id(),this._instance.sessionManager))},this._instance=es}initialize(){this.startIfEnabledOrStop()}ur(es){var $,ts;($=h.__PosthogExtensions__)!=null&&$.tracingHeadersPatchFns&&es(),(ts=h.__PosthogExtensions__)==null||ts.loadExternalDependency==null||ts.loadExternalDependency(this._instance,"tracing-headers",(is=>{if(is)return Ao.error("failed to load script",is);es()}))}Bo(){var es;return(es=this._instance.config.addTracingHeaders)!==null&&es!==void 0?es:this._instance.config.__add_tracing_headers}startIfEnabledOrStop(){var es,$;this.Bo()?this.ur(this.so):((es=this.Lo)==null||es.call(this),($=this.Do)==null||$.call(this),this.Lo=void 0,this.Do=void 0)}}},xa=f({surveys:class{get Bt(){return this._instance.config}constructor(es){this.jo=void 0,this._surveyManager=null,this.$o=!1,this.qo=[],this.Zo=null,this._instance=es,this._surveyEventReceiver=null}initialize(){this.loadIfEnabled()}onRemoteConfig(es){if(!this.Bt.disable_surveys){var $=es.surveys;if(D($))return En.warn("Flags not loaded yet. Not loading surveys.");var ts=R($);this.jo=ts?$.length>0:$,En.info("flags response received, isSurveysEnabled: "+this.jo),this.loadIfEnabled()}}reset(){localStorage.removeItem("lastSeenSurveyDate");for(var es=[],$=0;$<localStorage.length;$++){var ts=localStorage.key($);(ts!=null&&ts.startsWith(Sn)||ts!=null&&ts.startsWith("inProgressSurvey_"))&&es.push(ts)}es.forEach((is=>localStorage.removeItem(is)))}loadIfEnabled(){if(!this._surveyManager)if(this.$o)En.info("Already initializing surveys, skipping...");else if(this.Bt.disable_surveys)En.info(ta);else if(this.Bt.cookieless_mode&&this._instance.consent.isOptedOut())En.info("Not loading surveys in cookieless mode without consent.");else{var es=h==null?void 0:h.__PosthogExtensions__;if(es){if(!C(this.jo)||this.Bt.advanced_enable_surveys){var $=this.jo||this.Bt.advanced_enable_surveys;this.$o=!0;try{var ts=es.generateSurveys;if(ts)return void this.Vo(ts,$);var is=es.loadExternalDependency;if(!is)return void this.Ho(Oi);is(this._instance,"surveys",(Kr=>{Kr||!es.generateSurveys?this.Ho("Could not load surveys script",Kr):this.Vo(es.generateSurveys,$)}))}catch(Kr){throw this.Ho("Error initializing surveys",Kr),Kr}finally{this.$o=!1}}}else En.error("PostHog Extensions not found.")}}Vo(es,$){this._surveyManager=es(this._instance,$),this._surveyEventReceiver=new Qo(this._instance),En.info("Surveys loaded successfully"),this.zo({isLoaded:!0})}Ho(es,$){En.error(es,$),this.zo({isLoaded:!1,error:es})}onSurveysLoaded(es){return this.qo.push(es),this._surveyManager&&this.zo({isLoaded:!0}),()=>{this.qo=this.qo.filter(($=>$!==es))}}getSurveys(es,$){if($===void 0&&($=!1),this.Bt.disable_surveys)return En.info(ta),es([]);var ts,is=this._instance.get_property(di);if(is&&!$)return es(is,{isLoaded:!0});typeof Promise<"u"&&this.Zo?this.Zo.then((Kr=>{var{surveys:Qr,context:ja}=Kr;return es(Qr,ja)})):(typeof Promise<"u"&&(this.Zo=new Promise((Kr=>{ts=Kr}))),this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/surveys/?token="+this.Bt.token),method:"GET",timeout:this.Bt.surveys_request_timeout_ms,callback:Kr=>{var Qr;this.Zo=null;var ja=Kr.statusCode;if(ja!==200||!Kr.json){var Ca="Surveys API could not be loaded, status: "+ja;En.error(Ca);var Aa={isLoaded:!1,error:Ca};return es([],Aa),void(ts==null||ts({surveys:[],context:Aa}))}var Oa,Ia=Kr.json.surveys||[],Da=Ia.filter((Ma=>(function(Fa){return!(!Fa.start_date||Fa.end_date)})(Ma)&&((function(Fa){var qa;return!((qa=Fa.conditions)==null||(qa=qa.events)==null||(qa=qa.values)==null||!qa.length)})(Ma)||(function(Fa){var qa;return!((qa=Fa.conditions)==null||(qa=qa.actions)==null||(qa=qa.values)==null||!qa.length)})(Ma))));Da.length>0&&((Oa=this._surveyEventReceiver)==null||Oa.register(Da)),(Qr=this._instance.persistence)==null||Qr.register({[di]:Ia});var Ba={isLoaded:!0};es(Ia,Ba),ts==null||ts({surveys:Ia,context:Ba})}}))}zo(es){for(var $ of this.qo)try{if(!es.isLoaded)return $([],es);this.getSurveys($)}catch(ts){En.error("Error in survey callback",ts)}}getActiveMatchingSurveys(es,$){if($===void 0&&($=!1),!D(this._surveyManager))return this._surveyManager.getActiveMatchingSurveys(es,$);En.warn("init was not called")}Uo(es){var $=null;return this.getSurveys((ts=>{var is;$=(is=ts.find((Kr=>Kr.id===es)))!==null&&is!==void 0?is:null})),$}Yo(es){if(D(this._surveyManager))return{eligible:!1,reason:Zo};var $=typeof es=="string"?this.Uo(es):es;return $?this._surveyManager.checkSurveyEligibility($):{eligible:!1,reason:"Survey not found"}}canRenderSurvey(es){if(D(this._surveyManager))return En.warn("init was not called"),{visible:!1,disabledReason:Zo};var $=this.Yo(es);return{visible:$.eligible,disabledReason:$.reason}}canRenderSurveyAsync(es,$){return D(this._surveyManager)?(En.warn("init was not called"),Promise.resolve({visible:!1,disabledReason:Zo})):new Promise((ts=>{this.getSurveys((is=>{var Kr,Qr=(Kr=is.find((Ca=>Ca.id===es)))!==null&&Kr!==void 0?Kr:null;if(Qr){var ja=this.Yo(Qr);ts({visible:ja.eligible,disabledReason:ja.reason})}else ts({visible:!1,disabledReason:"Survey not found"})}),$)}))}renderSurvey(es,$,ts){var is;if(D(this._surveyManager))En.warn("init was not called");else{var Kr=typeof es=="string"?this.Uo(es):es;if(Kr!=null&&Kr.id)if($n.includes(Kr.type)){var Qr=r==null?void 0:r.querySelector($);if(Qr)return(is=Kr.appearance)!=null&&is.surveyPopupDelaySeconds?(En.info("Rendering survey "+Kr.id+" with delay of "+Kr.appearance.surveyPopupDelaySeconds+" seconds"),void setTimeout((()=>{var ja,Ca;En.info("Rendering survey "+Kr.id+" with delay of "+((ja=Kr.appearance)==null?void 0:ja.surveyPopupDelaySeconds)+" seconds"),(Ca=this._surveyManager)==null||Ca.renderSurvey(Kr,Qr,ts),En.info("Survey "+Kr.id+" rendered")}),1e3*Kr.appearance.surveyPopupDelaySeconds)):void this._surveyManager.renderSurvey(Kr,Qr,ts);En.warn("Survey element not found")}else En.warn("Surveys of type "+Kr.type+" cannot be rendered in the app");else En.warn("Survey not found")}}displaySurvey(es,$){var ts;if(D(this._surveyManager))En.warn("init was not called");else{var is=this.Uo(es);if(is){var Kr=is;if((ts=is.appearance)!=null&&ts.surveyPopupDelaySeconds&&$.ignoreDelay&&(Kr=f({},is,{appearance:f({},is.appearance,{surveyPopupDelaySeconds:0})})),$.displayType!==ns.Popover&&$.initialResponses&&En.warn("initialResponses is only supported for popover surveys. prefill will not be applied."),$.ignoreConditions===!1){var Qr=this.canRenderSurvey(is);if(!Qr.visible)return void En.warn("Survey is not eligible to be displayed: ",Qr.disabledReason)}$.displayType!==ns.Inline?this._surveyManager.handlePopoverSurvey(Kr,$):this.renderSurvey(Kr,$.selector,$.properties)}else En.warn("Survey not found")}}cancelPendingSurvey(es){D(this._surveyManager)?En.warn("init was not called"):this._surveyManager.cancelSurvey(es)}handlePageUnload(){var es;(es=this._surveyManager)==null||es.handlePageUnload()}}},fa),Ea={toolbar:class{constructor(es){this.instance=es}Go(es){h.ph_toolbar_state=es}Wo(){var es;return(es=h.ph_toolbar_state)!==null&&es!==void 0?es:0}initialize(){return this.maybeLoadToolbar()}maybeLoadToolbar(es,$,ts){if(es===void 0&&(es=void 0),$===void 0&&($=void 0),ts===void 0&&(ts=void 0),Qi(this.instance.config)||!t||!r)return!1;es=es??t.location,ts=ts??t.history;try{if(!$){try{t.localStorage.setItem("test","test"),t.localStorage.removeItem("test")}catch{return!1}$=t==null?void 0:t.localStorage}var is,Kr=ea||Ir(es.hash,"__posthog")||Ir(es.hash,"state"),Qr=Kr?Wi((()=>JSON.parse(atob(decodeURIComponent(Kr)))))||Wi((()=>JSON.parse(decodeURIComponent(Kr)))):null;return Qr&&Qr.action==="ph_authorize"?((is=Qr).source="url",is&&Object.keys(is).length>0&&(Qr.desiredHash?es.hash=Qr.desiredHash:ts?ts.replaceState(ts.state,"",es.pathname+es.search):es.hash="")):((is=JSON.parse($.getItem(ia)||"{}")).source="localstorage",delete is.userIntent),!(!is.token||this.instance.config.token!==is.token||(this.loadToolbar(is),0))}catch{return!1}}Xo(es){var $=h.ph_load_toolbar||h.ph_load_editor;!D($)&&P($)?$(es,this.instance):ra.warn("No toolbar load function found")}loadToolbar(es){var $=!(r==null||!r.getElementById($i));if(!t||$)return!1;var ts=this.instance.requestRouter.region==="custom"&&this.instance.config.advanced_disable_toolbar_metrics,is=f({token:this.instance.config.token},es,{apiURL:this.instance.requestRouter.endpointFor("ui")},ts?{instrument:!1}:{});if(t.localStorage.setItem(ia,JSON.stringify(f({},is,{source:void 0}))),this.Wo()===2)this.Xo(is);else if(this.Wo()===0){var Kr;this.Go(1),(Kr=h.__PosthogExtensions__)==null||Kr.loadExternalDependency==null||Kr.loadExternalDependency(this.instance,"toolbar",(Qr=>{if(Qr)return ra.error("[Toolbar] Failed to load",Qr),void this.Go(0);this.Go(2),this.Xo(is)})),Xi(t,"turbolinks:load",(()=>{this.Go(0),this.loadToolbar(is)}))}return!0}Jo(es){return this.loadToolbar(es)}maybeLoadEditor(es,$,ts){return es===void 0&&(es=void 0),$===void 0&&($=void 0),ts===void 0&&(ts=void 0),this.maybeLoadToolbar(es,$,ts)}}},Sa=f({experiments:va},fa),$a={conversations:class{constructor(es){this.Ko=void 0,this._conversationsManager=null,this.Qo=!1,this.ea=null,this._instance=es}initialize(){this.loadIfEnabled()}onRemoteConfig(es){if(!this._instance.config.disable_conversations){var $=es.conversations;D($)||(N($)?this.Ko=$:(this.Ko=$.enabled,this.ea=$),this.loadIfEnabled())}}reset(){var es;(es=this._conversationsManager)==null||es.reset(),this._conversationsManager=null,this.Ko=void 0,this.ea=null}loadIfEnabled(){if(!(this._conversationsManager||this.Qo||this._instance.config.disable_conversations||Qi(this._instance.config)||this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())){var es=h==null?void 0:h.__PosthogExtensions__;if(es&&!C(this.Ko)&&this.Ko)if(this.ea&&this.ea.token){this.Qo=!0;try{var $=es.initConversations;if($)return this.ta($),void(this.Qo=!1);var ts=es.loadExternalDependency;if(!ts)return void this.ra(Oi);ts(this._instance,"conversations",(is=>{is||!es.initConversations?this.ra("Could not load conversations script",is):this.ta(es.initConversations),this.Qo=!1}))}catch(is){this.ra("Error initializing conversations",is),this.Qo=!1}}else ca.error("Conversations enabled but missing token in remote config.")}}ta(es){if(this.ea)try{this._conversationsManager=es(this.ea,this._instance),ca.info("Conversations loaded successfully")}catch($){this.ra("Error completing conversations initialization",$)}else ca.error("Cannot complete initialization: remote config is null")}ra(es,$){ca.error(es,$),this._conversationsManager=null,this.Qo=!1}show(){this._conversationsManager?this._conversationsManager.show():ca.warn("Conversations not loaded yet.")}hide(){this._conversationsManager&&this._conversationsManager.hide()}isAvailable(){return this.Ko===!0&&!M(this._conversationsManager)}isVisible(){var es,$;return(es=($=this._conversationsManager)==null?void 0:$.isVisible())!==null&&es!==void 0&&es}sendMessage(es,$,ts){var is=this;return p((function*(){return is._conversationsManager?is._conversationsManager.sendMessage(es,$,ts):(ca.warn(pa),null)}))()}getMessages(es,$){var ts=this;return p((function*(){return ts._conversationsManager?ts._conversationsManager.getMessages(es,$):(ca.warn(pa),null)}))()}markAsRead(es){var $=this;return p((function*(){return $._conversationsManager?$._conversationsManager.markAsRead(es):(ca.warn(pa),null)}))()}getTickets(es){var $=this;return p((function*(){return $._conversationsManager?$._conversationsManager.getTickets(es):(ca.warn(pa),null)}))()}requestRestoreLink(es){var $=this;return p((function*(){return $._conversationsManager?$._conversationsManager.requestRestoreLink(es):(ca.warn(pa),null)}))()}restoreFromToken(es){var $=this;return p((function*(){return $._conversationsManager?$._conversationsManager.restoreFromToken(es):(ca.warn(pa),null)}))()}restoreFromUrlToken(){var es=this;return p((function*(){return es._conversationsManager?es._conversationsManager.restoreFromUrlToken():(ca.warn(pa),null)}))()}getCurrentTicketId(){var es,$;return(es=($=this._conversationsManager)==null?void 0:$.getCurrentTicketId())!==null&&es!==void 0?es:null}getWidgetSessionId(){var es,$;return(es=($=this._conversationsManager)==null?void 0:$.getWidgetSessionId())!==null&&es!==void 0?es:null}un(){var es;(es=this._conversationsManager)==null||es.setIdentity()}hn(){var es;(es=this._conversationsManager)==null||es.clearIdentity()}}},Ta={logs:class{constructor(es){var $;this.ia=!1,this.na=!1,this.Gt=Ce("[logs]"),this.sa=[],this.oa=0,this.aa=0,this.la=!1,this._instance=es,this._instance&&($=this._instance.config.logs)!=null&&$.captureConsoleLogs&&(this.ia=!0)}initialize(){this.loadIfEnabled()}onRemoteConfig(es){var $,ts=($=es.logs)==null?void 0:$.captureConsoleLogs;!D(ts)&&ts&&(this.ia=!0,this.loadIfEnabled())}reset(){this.sa=[],this.jr&&(clearTimeout(this.jr),this.jr=void 0),this.oa=0,this.aa=0,this.la=!1}loadIfEnabled(){if(this.ia&&!this.na){var es=h==null?void 0:h.__PosthogExtensions__;if(es){var $=es.loadExternalDependency;$?$(this._instance,"logs",(ts=>{var is;ts||(is=es.logs)==null||!is.initializeLogs?this.Gt.error("Could not load logs script",ts):(es.logs.initializeLogs(this._instance),this.na=!0)})):this.Gt.error(Oi)}else this.Gt.error("PostHog Extensions not found.")}}captureLog(es){var $,ts,is,Kr,Qr,ja;if(this._instance.is_capturing())if(es&&es.body){var Ca=($=(ts=this._instance.config.logs)==null?void 0:ts.flushIntervalMs)!==null&&$!==void 0?$:3e3,Aa=(is=(Kr=this._instance.config.logs)==null?void 0:Kr.maxLogsPerInterval)!==null&&is!==void 0?is:1e3,Oa=Date.now();if(Ca>Oa-this.aa||(this.aa=Oa,this.oa=0,this.la=!1),Aa>this.oa){this.oa++;var Ia=(function(Da,Ba){var Ma=Da.level||"info",{text:Fa,number:qa}=Jt[Ma]||Kt,Ha=String(Date.now())+"000000",Ka={};Ba.distinctId&&(Ka.posthogDistinctId=Ba.distinctId),Ba.sessionId&&(Ka.sessionId=Ba.sessionId),Ba.currentUrl&&(Ka["url.full"]=Ba.currentUrl),Ba.screenName&&(Ka["screen.name"]=Ba.screenName),Ba.appState&&(Ka["app.state"]=Ba.appState),Ba.activeFeatureFlags&&Ba.activeFeatureFlags.length>0&&(Ka.feature_flags=Ba.activeFeatureFlags);var Qa=f({},Ka,Da.attributes||{}),Va={timeUnixNano:Ha,observedTimeUnixNano:Ha,severityNumber:qa,severityText:Fa,body:{stringValue:Da.body},attributes:Qt(Qa)};return Da.trace_id&&(Va.traceId=Da.trace_id),Da.span_id&&(Va.spanId=Da.span_id),C(Da.trace_flags)||(Va.flags=Da.trace_flags),Va})(es,this.ua());this.sa.push({record:Ia}),((Qr=(ja=this._instance.config.logs)==null?void 0:ja.maxBufferSize)!==null&&Qr!==void 0?Qr:100)>this.sa.length?this.ha():this.flushLogs()}else this.la||(this.Gt.warn("captureLog dropping logs: exceeded "+Aa+" logs per "+Ca+"ms"),this.la=!0)}else this.Gt.warn("captureLog requires a body")}get logger(){return this.ca||(this.ca={trace:(es,$)=>this.captureLog({body:es,level:"trace",attributes:$}),debug:(es,$)=>this.captureLog({body:es,level:"debug",attributes:$}),info:(es,$)=>this.captureLog({body:es,level:"info",attributes:$}),warn:(es,$)=>this.captureLog({body:es,level:"warn",attributes:$}),error:(es,$)=>this.captureLog({body:es,level:"error",attributes:$}),fatal:(es,$)=>this.captureLog({body:es,level:"fatal",attributes:$})}),this.ca}flushLogs(es){if(this.jr&&(clearTimeout(this.jr),this.jr=void 0),this.sa.length!==0){var $=this.sa;this.sa=[];var ts=this._instance.config.logs,is=f({"service.name":(ts==null?void 0:ts.serviceName)||"unknown_service"},(ts==null?void 0:ts.environment)&&{"deployment.environment":ts.environment},(ts==null?void 0:ts.serviceVersion)&&{"service.version":ts.serviceVersion},ts==null?void 0:ts.resourceAttributes),Kr=(function(ja,Ca,Aa,Oa){return{resourceLogs:[{resource:{attributes:Qt(Ca)},scopeLogs:[{scope:{name:Aa,version:Oa},logRecords:ja}]}]}})($.map((ja=>ja.record)),is,v.LIB_NAME,v.LIB_VERSION),Qr=this._instance.requestRouter.endpointFor("api","/i/v1/logs")+"?token="+encodeURIComponent(this._instance.config.token);this._instance.Vi({method:"POST",url:Qr,data:Kr,compression:"best-available",batchKey:"logs",transport:es})}}ha(){var es,$;this.jr||(this.jr=setTimeout((()=>{this.jr=void 0,this.flushLogs()}),(es=($=this._instance.config.logs)==null?void 0:$.flushIntervalMs)!==null&&es!==void 0?es:3e3))}ua(){var es,$={};if($.distinctId=this._instance.get_distinct_id(),this._instance.sessionManager){var{sessionId:ts}=this._instance.sessionManager.checkAndGetSessionAndWindowId(!0);$.sessionId=ts}if(h!=null&&(es=h.location)!=null&&es.href&&($.currentUrl=h.location.href),this._instance.featureFlags){var is=this._instance.featureFlags.getFlags();is&&is.length>0&&($.activeFeatureFlags=is)}return $}}},ka=f({},fa,_a,ga,ma,ba,ya,xa,wa,Ea,Sa,$a,Ta);qn.__defaultExtensionClasses=f({},ka);var Ra;Ra=In[Un]=new qn,(function(){function es(){es.done||(es.done=!0,Nn=!1,Hi(In,(function($){$._dom_loaded()})))}r!=null&&r.addEventListener?r.readyState==="complete"?es():Xi(r,"DOMContentLoaded",es,{capture:!1}):t&&Ie.error("Browser doesn't support `document.addEventListener` so PostHog couldn't be initialized")})();function PostHogProvider({children:es}){const{user:$}=useAuth(),ts=useLocation();return reactExports.useRef(null),reactExports.useEffect(()=>{},[]),reactExports.useEffect(()=>{},[$]),reactExports.useEffect(()=>{},[ts.pathname]),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:es})}function Separator({className:es,orientation:$="horizontal",decorative:ts=!0,...is}){return jsxRuntimeExports.jsx(Root,{"data-slot":"separator",decorative:ts,orientation:$,className:cn$1("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",es),...is})}function usePendingSuggestionCount(){return useQuery({queryKey:["instruction-suggestions","pending-count"],queryFn:()=>apiGet("/api/instruction-suggestions/pending-count"),staleTime:300*1e3})}function useProjectPaths(){return useQuery({queryKey:["sessions","project-paths"],queryFn:()=>apiGet("/api/sessions/project-paths?limit=20"),select:es=>es.projectPaths})}function useSuggestionsForProjects(es){return useQueries({queries:es.map($=>({queryKey:["instruction-suggestions",$],queryFn:()=>apiGet(`/api/instruction-suggestions?projectPath=${encodeURIComponent($)}&limit=10&groupByKind=true`).then(ts=>({projectPath:$,suggestions:ts.suggestions,experiments:ts.experiments??{},crossProject:ts.crossProject??{}}))}))})}function useSuggestionImpacts(es){const $=[...new Set(es)].sort().join(",");return useQuery({queryKey:["insights","suggestion-impact",$],queryFn:()=>apiGet(`/api/insights/suggestion-impact?instructionIds=${encodeURIComponent($)}`),select:ts=>ts.impacts,enabled:$.length>0})}function useLogSuggestionEvent(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost(`/api/instruction-suggestions/${$.suggestionId}/events`,{eventType:$.eventType,projectPath:$.projectPath,tool:$.tool}),onSuccess:()=>{es.invalidateQueries({queryKey:["instruction-suggestions"]})}})}function usePromoteFromPublic(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost(`/api/instructions/${$.sourceInstructionId}/promote-from-public`,{targetScope:$.targetScope,targetScopeRef:$.targetScopeRef,name:$.name}),onSuccess:()=>{es.invalidateQueries({queryKey:["instructions"]}),es.invalidateQueries({queryKey:["catalog"]})}})}const PUBLIC_PAGE_SIZE=50;function usePublicCatalog(es){return useInfiniteQuery({queryKey:["catalog","public",es??""],initialPageParam:0,queryFn:({pageParam:$})=>{const ts=new URLSearchParams({scope:"public",limit:String(PUBLIC_PAGE_SIZE),offset:String($)});return es&&ts.set("search",es),apiGet(`/api/catalog?${ts.toString()}`)},getNextPageParam:($,ts)=>{if(!($.length<PUBLIC_PAGE_SIZE))return ts.length*PUBLIC_PAGE_SIZE}})}function useNominateExperiment(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost("/api/instruction-experiments",$),onSuccess:()=>{es.invalidateQueries({queryKey:["instruction-suggestions"]}),es.invalidateQueries({queryKey:["instruction-experiments"]})}})}function useInstructionDetail(es,$){return useQuery({queryKey:["instruction",es],queryFn:()=>apiGet(`/api/instructions/${es}`),enabled:$,staleTime:300*1e3})}function formatRelativeTime(es,$={}){if(!es)return $.fallback??"—";const ts=Math.floor((Date.now()-new Date(es).getTime())/6e4);if(ts<1)return"just now";if(ts<60)return`${ts}m ago`;const is=Math.floor(ts/60);return is<24?`${is}h ago`:`${Math.floor(is/24)}d ago`}function formatDistanceToFuture(es){const ts=new Date(es).getTime()-Date.now();if(ts<=0)return"expired";const is=Math.floor(ts/6e4),Kr=Math.floor(ts/36e5),Qr=Math.floor(ts/864e5);return is<1?"<1m":is<60?`in ${is}m`:Kr<24?`in ${Kr}h`:`in ${Qr}d`}function formatDistanceToNow(es){const $=new Date(es),is=new Date().getTime()-$.getTime(),Kr=Math.floor(is/6e4),Qr=Math.floor(is/36e5),ja=Math.floor(is/864e5);return Kr<1?"just now":Kr<60?`${Kr}m ago`:Qr<24?`${Qr}h ago`:ja<30?`${ja}d ago`:$.toLocaleDateString()}const POLL={LIVE:5e3,ACTIVE:1e4,BACKGROUND:15e3,HEARTBEAT:3e4,SLOW:6e4,DAILY:3600*1e3};function useWorkerStatus(es){const $=useQuery({queryKey:["worker-status"],queryFn:()=>apiGet("/api/workers/status"),refetchInterval:POLL.HEARTBEAT}),ts=$.data??[],is=es?ts.filter(Qr=>Qr.workerType===es):ts,Kr=is.filter(Qr=>Qr.status==="active");return{...$,workers:is,activeWorkers:Kr,isConnected:Kr.length>0,workerCount:Kr.length}}const typeLabels={mcp:"MCP","cli-worker":"CLI Worker",gateway:"Gateway",proxy:"Proxy"};function WorkerStatus(){const{workers:es,activeWorkers:$,isConnected:ts,isLoading:is}=useWorkerStatus();return is||es.length===0?jsxRuntimeExports.jsx("div",{className:"px-2 py-2",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 rounded-md border border-border px-3 py-2 text-xs",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full shrink-0 bg-muted-foreground/30"}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"No workers connected"})]})}):jsxRuntimeExports.jsx("div",{className:"px-2 py-2",children:jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-border px-3 py-2 text-xs space-y-1.5",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:cn$1("h-2 w-2 rounded-full shrink-0",ts?"bg-teal-500":"bg-amber-500")}),jsxRuntimeExports.jsx("span",{className:"font-medium",children:ts?`${$.length} worker${$.length>1?"s":""} online`:"Workers offline"})]}),es.map(Kr=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-muted-foreground pl-4",children:[jsxRuntimeExports.jsx("span",{children:typeLabels[Kr.workerType]??Kr.workerType}),jsxRuntimeExports.jsx("span",{children:Kr.status==="active"?formatRelativeTime(Kr.lastHeartbeat):"offline"})]},Kr.id))]})})}const navItems=[{to:"/dashboard",label:"Dashboard",icon:LayoutDashboard},{to:"/connect",label:"Connect",icon:Plug},{to:"/sessions",label:"Sessions",icon:Activity},{to:"/projects",label:"Projects",icon:Layers},{to:"/eval-targets",label:"Evals",icon:FlaskConical},{to:"/insights",label:"Insights",icon:TrendingUp},{to:"/memories",label:"Memories",icon:Brain},{to:"/usage",label:"Usage",icon:DollarSign},{to:"/skills",label:"Skills",icon:Sparkles},{to:"/catalog/public",label:"Public Catalog",icon:Globe},{to:"/suggestions",label:"Suggestions",icon:Lightbulb},{to:"/experiments",label:"Experiments",icon:TestTube},{to:"/loop",label:"Loop",icon:Activity},{to:"/settings",label:"Settings",icon:SlidersHorizontal},{to:"/docs",label:"Docs",icon:BookOpen}];function Sidebar({className:es}){const $=useLocation(),{profile:ts}=useActiveOrg(),{data:is}=usePendingSuggestionCount();return jsxRuntimeExports.jsxs("aside",{className:cn$1("flex h-full w-60 flex-col border-r border-border bg-background p-4",es),children:[jsxRuntimeExports.jsxs("div",{className:"mb-6 flex items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("h1",{className:"font-mono text-lg font-semibold tracking-tight",children:"RuleMetric"})]}),jsxRuntimeExports.jsx("nav",{className:"flex flex-col gap-1",children:navItems.map(Kr=>{const Qr=$.pathname.startsWith(Kr.to);return jsxRuntimeExports.jsx(Button,{variant:"ghost",className:cn$1("justify-start cursor-pointer transition-colors duration-200",Qr&&"bg-secondary text-primary"),asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:Kr.to,children:[jsxRuntimeExports.jsx(Kr.icon,{className:cn$1("mr-2 h-4 w-4",Qr&&"text-primary")}),Kr.label,Kr.to==="/suggestions"&&((is==null?void 0:is.total)??0)>0&&jsxRuntimeExports.jsx("span",{className:"ml-auto rounded-full bg-primary/15 px-2 py-0.5 font-mono text-xs text-primary",children:is.total>99?"99+":is.total})]})},Kr.to)})}),(ts==null?void 0:ts.isSuperadmin)&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Separator,{className:"my-4"}),jsxRuntimeExports.jsx(Button,{variant:"ghost",className:cn$1("justify-start cursor-pointer transition-colors duration-200",$.pathname.startsWith("/superadmin")&&"bg-secondary text-primary"),asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/superadmin/users",children:[jsxRuntimeExports.jsx(Shield,{className:"mr-2 h-4 w-4"}),"Superadmin"]})}),jsxRuntimeExports.jsx(Button,{variant:"ghost",className:cn$1("justify-start cursor-pointer transition-colors duration-200",$.pathname.startsWith("/admin/announcements")&&"bg-secondary text-primary"),asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/admin/announcements",children:[jsxRuntimeExports.jsx(Megaphone,{className:"mr-2 h-4 w-4"}),"Announcements"]})})]}),jsxRuntimeExports.jsx("div",{className:"mt-auto",children:jsxRuntimeExports.jsx(WorkerStatus,{})})]})}function DropdownMenu({...es}){return jsxRuntimeExports.jsx(Root2,{"data-slot":"dropdown-menu",...es})}function DropdownMenuTrigger({...es}){return jsxRuntimeExports.jsx(Trigger,{"data-slot":"dropdown-menu-trigger",...es})}function DropdownMenuContent({className:es,sideOffset:$=4,...ts}){return jsxRuntimeExports.jsx(Portal2,{children:jsxRuntimeExports.jsx(Content2,{"data-slot":"dropdown-menu-content",sideOffset:$,className:cn$1("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",es),...ts})})}function DropdownMenuItem({className:es,inset:$,variant:ts="default",...is}){return jsxRuntimeExports.jsx(Item2,{"data-slot":"dropdown-menu-item","data-inset":$,"data-variant":ts,className:cn$1("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",es),...is})}function DropdownMenuLabel({className:es,inset:$,...ts}){return jsxRuntimeExports.jsx(Label2,{"data-slot":"dropdown-menu-label","data-inset":$,className:cn$1("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",es),...ts})}function DropdownMenuSeparator({className:es,...$}){return jsxRuntimeExports.jsx(Separator2,{"data-slot":"dropdown-menu-separator",className:cn$1("bg-border -mx-1 my-1 h-px",es),...$})}function Avatar({className:es,size:$="default",...ts}){return jsxRuntimeExports.jsx(Root$1,{"data-slot":"avatar","data-size":$,className:cn$1("group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",es),...ts})}function AvatarFallback({className:es,...$}){return jsxRuntimeExports.jsx(Fallback,{"data-slot":"avatar-fallback",className:cn$1("bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs",es),...$})}function Sheet({...es}){return jsxRuntimeExports.jsx(Root$2,{"data-slot":"sheet",...es})}function SheetTrigger({...es}){return jsxRuntimeExports.jsx(Trigger$1,{"data-slot":"sheet-trigger",...es})}function SheetPortal({...es}){return jsxRuntimeExports.jsx(Portal,{"data-slot":"sheet-portal",...es})}function SheetOverlay({className:es,...$}){return jsxRuntimeExports.jsx(Overlay,{"data-slot":"sheet-overlay",className:cn$1("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",es),...$})}function SheetContent({className:es,children:$,side:ts="right",showCloseButton:is=!0,...Kr}){return jsxRuntimeExports.jsxs(SheetPortal,{children:[jsxRuntimeExports.jsx(SheetOverlay,{}),jsxRuntimeExports.jsxs(Content,{"data-slot":"sheet-content",className:cn$1("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",ts==="right"&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",ts==="left"&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",ts==="top"&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",ts==="bottom"&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",es),...Kr,children:[$,is&&jsxRuntimeExports.jsxs(Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[jsxRuntimeExports.jsx(X$1,{className:"size-4"}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function SheetHeader({className:es,...$}){return jsxRuntimeExports.jsx("div",{"data-slot":"sheet-header",className:cn$1("flex flex-col gap-1.5 p-4",es),...$})}function SheetTitle({className:es,...$}){return jsxRuntimeExports.jsx(Title,{"data-slot":"sheet-title",className:cn$1("text-foreground font-semibold",es),...$})}function SheetDescription({className:es,...$}){return jsxRuntimeExports.jsx(Description,{"data-slot":"sheet-description",className:cn$1("text-muted-foreground text-sm",es),...$})}const NOTIFICATIONS_QUERY_KEY=["notifications"];function useNotifications(){var Qr,ja;const es=useQueryClient(),{user:$}=useAuth(),ts=useQuery({queryKey:NOTIFICATIONS_QUERY_KEY,queryFn:()=>apiGet("/api/notifications?limit=20"),enabled:!!$}),is=useMutation({mutationFn:Ca=>apiPost(`/api/notifications/${Ca}/read`,{}),onSuccess:()=>es.invalidateQueries({queryKey:NOTIFICATIONS_QUERY_KEY})}),Kr=useMutation({mutationFn:()=>apiPost("/api/notifications/read-all",{}),onSuccess:()=>es.invalidateQueries({queryKey:NOTIFICATIONS_QUERY_KEY})});return{items:((Qr=ts.data)==null?void 0:Qr.items)??[],unreadCount:((ja=ts.data)==null?void 0:ja.unreadCount)??0,isLoading:ts.isLoading,markRead:Ca=>is.mutate(Ca),markAllRead:()=>Kr.mutate()}}function NotificationsListener(){const{user:es}=useAuth(),$=useQueryClient();return reactExports.useEffect(()=>{if(!(es!=null&&es.id))return;(async()=>{if(!(typeof Notification>"u")&&Notification.permission==="default")try{await Notification.requestPermission()}catch{}})();let is=null;const Kr=setTimeout(()=>{is=supabase.channel(`notifications-${es.id}`).on("postgres_changes",{event:"INSERT",schema:"public",table:"notifications",filter:`user_id=eq.${es.id}`},Qr=>{const ja=Qr.new,Ca={id:ja.id,userId:ja.user_id,type:ja.type,title:ja.title,body:ja.body??null,url:ja.url??null,sourceTable:ja.source_table??null,sourceId:ja.source_id??null,metadata:ja.metadata??{},readAt:ja.read_at??null,createdAt:ja.created_at};$.setQueryData(NOTIFICATIONS_QUERY_KEY,Aa=>{const Oa=(Aa==null?void 0:Aa.items)??[];return Oa.some(Ia=>Ia.id===Ca.id)?Aa??{items:Oa,unreadCount:0}:{items:[Ca,...Oa].slice(0,20),unreadCount:((Aa==null?void 0:Aa.unreadCount)??0)+1}}),fireOsNotification(Ca)}).subscribe()},50);return()=>{clearTimeout(Kr),is&&supabase.removeChannel(is)}},[es==null?void 0:es.id,$]),null}async function fireOsNotification(es){if(typeof Notification>"u"||Notification.permission!=="granted")return;const $={body:es.body??void 0,icon:"/favicon-192.png",badge:"/favicon-48.png",tag:`notif-${es.id}`,data:{url:es.url??"/",notificationId:es.id}};if("serviceWorker"in navigator)try{await(await navigator.serviceWorker.ready).showNotification(es.title,$);return}catch{}new Notification(es.title,$)}function typeIcon(es){if(es.startsWith("usage_")){const $=es==="usage_imminent"||es==="usage_hit";return jsxRuntimeExports.jsx(TriangleAlert,{className:cn$1("h-3.5 w-3.5",$?"text-red-500":"text-amber-500")})}return es.endsWith("_failed")?jsxRuntimeExports.jsx(CircleAlert,{className:"h-3.5 w-3.5 text-red-500"}):es==="insights_ready"?jsxRuntimeExports.jsx(Sparkles,{className:"h-3.5 w-3.5 text-amber-500"}):es==="labels_needed"?jsxRuntimeExports.jsx(ClipboardList,{className:"h-3.5 w-3.5 text-amber-500"}):es==="calibration_ready"?jsxRuntimeExports.jsx(BadgeCheck,{className:"h-3.5 w-3.5 text-teal-500"}):es==="second_engine_needed"?jsxRuntimeExports.jsx(ClipboardList,{className:"h-3.5 w-3.5 text-blue-500"}):es==="second_opinions_flagged"?jsxRuntimeExports.jsx(ClipboardList,{className:"h-3.5 w-3.5 text-amber-500"}):jsxRuntimeExports.jsx(BellRing,{className:"h-3.5 w-3.5 text-blue-500"})}function formatRelative(es){const $=Date.now()-new Date(es).getTime(),ts=Math.floor($/6e4);if(ts<1)return"just now";if(ts<60)return`${ts}m ago`;const is=Math.floor(ts/60);return is<24?`${is}h ago`:`${Math.floor(is/24)}d ago`}function NotificationBell(){const es=useNavigate(),{items:$,unreadCount:ts,markRead:is,markAllRead:Kr}=useNotifications(),Qr=ja=>{ja.readAt||is(ja.id),ja.url&&es(ja.url)};return jsxRuntimeExports.jsxs(DropdownMenu,{children:[jsxRuntimeExports.jsx(DropdownMenuTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs(Button,{variant:"ghost",size:"icon",className:"relative cursor-pointer",children:[jsxRuntimeExports.jsx(Bell,{className:"h-4 w-4"}),ts>0&&jsxRuntimeExports.jsx("span",{className:"absolute top-1 right-1 inline-flex h-4 min-w-[1rem] items-center justify-center rounded-full bg-blue-500 px-1 text-[10px] font-medium text-white",children:ts>9?"9+":ts})]})}),jsxRuntimeExports.jsxs(DropdownMenuContent,{align:"end",className:"w-80",children:[jsxRuntimeExports.jsxs(DropdownMenuLabel,{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{children:"Notifications"}),ts>0&&jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>Kr(),className:"flex items-center gap-1 text-[10px] font-normal text-muted-foreground hover:text-foreground",children:[jsxRuntimeExports.jsx(CheckCheck,{className:"h-3 w-3"}),"Mark all read"]})]}),jsxRuntimeExports.jsx(DropdownMenuSeparator,{}),$.length===0?jsxRuntimeExports.jsx(DropdownMenuItem,{disabled:!0,children:jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:"No notifications yet"})}):$.map(ja=>jsxRuntimeExports.jsx(DropdownMenuItem,{className:"cursor-pointer",onClick:()=>Qr(ja),children:jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2 w-full",children:[jsxRuntimeExports.jsx("div",{className:"mt-0.5",children:typeIcon(ja.type)}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium truncate",children:ja.title}),ja.body&&jsxRuntimeExports.jsx("p",{className:"text-[11px] text-muted-foreground truncate",children:ja.body}),jsxRuntimeExports.jsx("p",{className:"text-[10px] text-muted-foreground",children:formatRelative(ja.createdAt)})]}),!ja.readAt&&jsxRuntimeExports.jsx("span",{className:"mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-blue-500"})]})},ja.id))]})]})}function OrgSwitcher(){return useActiveOrg(),useSetActiveOrg(),useNavigate(),null}function Header(){var is;const{user:es,signOut:$}=useAuth(),ts=((is=es==null?void 0:es.email)==null?void 0:is.slice(0,2).toUpperCase())??"?";return jsxRuntimeExports.jsxs("header",{className:"flex h-12 items-center border-b border-border px-2 gap-1 sm:px-4 sm:gap-4 bg-background",children:[jsxRuntimeExports.jsxs(Sheet,{children:[jsxRuntimeExports.jsx(SheetTrigger,{asChild:!0,children:jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"icon",className:"md:hidden cursor-pointer",children:jsxRuntimeExports.jsx(Menu,{className:"h-5 w-5"})})}),jsxRuntimeExports.jsxs(SheetContent,{side:"left",className:"w-60 p-0",children:[jsxRuntimeExports.jsx(SheetTitle,{className:"sr-only",children:"Navigation"}),jsxRuntimeExports.jsx(Sidebar,{})]})]}),jsxRuntimeExports.jsx("div",{className:"flex-1"}),jsxRuntimeExports.jsx(OrgSwitcher,{}),jsxRuntimeExports.jsx(NotificationBell,{}),jsxRuntimeExports.jsxs(DropdownMenu,{children:[jsxRuntimeExports.jsx(DropdownMenuTrigger,{asChild:!0,children:jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"icon",className:"rounded-full cursor-pointer shrink-0",children:jsxRuntimeExports.jsx(Avatar,{className:"h-8 w-8",children:jsxRuntimeExports.jsx(AvatarFallback,{className:"text-xs bg-secondary text-muted-foreground",children:ts})})})}),jsxRuntimeExports.jsxs(DropdownMenuContent,{align:"end",children:[jsxRuntimeExports.jsxs(DropdownMenuItem,{disabled:!0,children:[jsxRuntimeExports.jsx(User,{className:"mr-2 h-4 w-4"}),es==null?void 0:es.email]}),jsxRuntimeExports.jsx(DropdownMenuSeparator,{}),jsxRuntimeExports.jsxs(DropdownMenuItem,{onClick:()=>$(),className:"cursor-pointer",children:[jsxRuntimeExports.jsx(LogOut,{className:"mr-2 h-4 w-4"}),"Sign out"]})]})]})]})}function useComputedInsights(es,$,ts){const is=(ts==null?void 0:ts.projectId)??void 0,Kr=new URLSearchParams;return es&&Kr.set("projectPath",es),is&&Kr.set("projectId",is),$&&Kr.set("tool",$),ts!=null&&ts.since&&Kr.set("since",ts.since),useQuery({queryKey:["insights","computed",es,is??null,$,(ts==null?void 0:ts.since)??null],queryFn:()=>apiGet(`/api/insights/compute?${Kr}`),refetchInterval:ts==null?void 0:ts.refetchIntervalMs})}function useInstructionImpact(es){return useQuery({queryKey:["insights","instruction-impact",es],queryFn:()=>apiGet(`/api/insights/instruction-impact?instructionId=${es}`),enabled:!!es})}function useGroomCandidates(){return useQuery({queryKey:["insights","groom-candidates"],queryFn:()=>apiGet("/api/insights/groom-candidates")})}function useRestoreInstruction(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost(`/api/instructions/${$}/restore`,{}),onSuccess:()=>{es.invalidateQueries({queryKey:["insights","groom-candidates"]}),es.invalidateQueries({queryKey:["insights"]}),es.invalidateQueries({queryKey:["instructions"]}),es.invalidateQueries({queryKey:["instruction-suggestions"]})}})}function useArchiveInstruction(){const es=useQueryClient();return useMutation({mutationFn:$=>apiDelete(`/api/instructions/${$}`),onSuccess:()=>{es.invalidateQueries({queryKey:["insights","groom-candidates"]}),es.invalidateQueries({queryKey:["insights"]})}})}function useLinkedInstructions(es){const $=new URLSearchParams;return es&&$.set("projectPath",es),useQuery({queryKey:["insights","linked-instructions",es],queryFn:()=>apiGet(`/api/insights/linked-instructions?${$}`)})}function useInsightsProjects(){return useQuery({queryKey:["insights","projects"],queryFn:()=>apiGet("/api/insights/projects")})}function useInsightsJobs(es,$){const ts=new URLSearchParams;return es&&ts.set("projectPath",es),$&&ts.set("limit",String($)),useQuery({queryKey:["insights-jobs",es,$],queryFn:()=>apiGet(`/api/insights-jobs?${ts}`),refetchInterval:POLL.LIVE})}const STALE_JOB_MS=600*1e3;function useActiveInsightsJobs(es){const{data:$}=useInsightsJobs(es),ts=Date.now();return($??[]).filter(is=>{if(!["pending","claimed","running"].includes(is.status))return!1;const Kr=is.claimedAt?new Date(is.claimedAt).getTime():0;return!Kr||ts-Kr<=STALE_JOB_MS})}function useCreateInsightsJob(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost("/api/insights-jobs",{projectPath:$}),onSuccess:()=>{es.invalidateQueries({queryKey:["insights-jobs"]})}})}function useRegenerateAllInsights(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost("/api/insights-jobs/regenerate-all",$!=null&&$.force?{force:!0}:{}),onSuccess:()=>{es.invalidateQueries({queryKey:["insights-jobs"]})}})}function useDismissRecommendation(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost("/api/insights/recommendations/dismiss",$),onSuccess:()=>{es.invalidateQueries({queryKey:["insights","computed"]})}})}function useAutoAddSuggestion(){return useMutation({mutationFn:es=>apiPost("/api/insights/auto-add",es)})}function useProjectInsights(es,$,ts,is){var Wa;const{data:Kr}=useInsightsProjects(),Qr=$?Kr==null?void 0:Kr.find(el=>el.projectPath===$):void 0,ja=ts??(Qr==null?void 0:Qr.projectId)??void 0,{data:Ca,isLoading:Aa}=useComputedInsights($,is,{projectId:ja}),Oa=$?(Qr==null?void 0:Qr.name)??$.split("/").filter(Boolean).slice(-2).join("/"):void 0,Ia=useActiveInsightsJobs($),{data:Da}=useInsightsJobs($),Ba=useCreateInsightsJob(),Ma=Ca??null,Fa=(Wa=Ia[0])==null?void 0:Wa.progress,qa=Fa!=null&&Fa.partial&&Object.keys(Fa.partial).length>0?Fa.partial:void 0,Ha=(Ma==null?void 0:Ma.recommendations)??qa,Ka=(Da??[]).filter(el=>el.status==="completed"&&el.completedAt).sort((el,tl)=>new Date(tl.completedAt).getTime()-new Date(el.completedAt).getTime())[0],Qa=(Ca==null?void 0:Ca.sessions_with_meta)??0,Va=Oa??"Live Insights",Ya=`Computed from ${Qa} enriched sessions`;return{data:Ma,recommendations:Ha,isLoading:Aa,fullProjectPath:$,title:Va,subtitle:Ya,lastCompletedJob:Ka,activeJobs:Ia,createJob:Ba}}function InsightsJobsListener(){const{user:es}=useAuth(),$=useQueryClient();return reactExports.useEffect(()=>{if(!(es!=null&&es.id))return;let ts=null;const is=setTimeout(()=>{ts=supabase.channel(`insights-jobs-${es.id}`).on("postgres_changes",{event:"UPDATE",schema:"public",table:"insights_jobs",filter:`user_id=eq.${es.id}`},Kr=>{const Qr=Kr.new,ja={id:Qr.id,status:Qr.status,projectPath:Qr.project_path??null,progress:Qr.progress??{},error:Qr.error??null,updatedAt:Qr.updated_at,completedAt:Qr.completed_at??null};$.setQueriesData({queryKey:["insights-jobs"]},Ca=>{if(!Ca)return Ca;const Aa=Ca.findIndex(Ia=>Ia.id===ja.id);if(Aa===-1)return Ca;const Oa=Ca.slice();return Oa[Aa]={...Ca[Aa],...ja},Oa}),ja.status==="completed"&&$.invalidateQueries({queryKey:["insights","computed"]})}).subscribe()},50);return()=>{clearTimeout(is),ts&&supabase.removeChannel(ts)}},[es==null?void 0:es.id,$]),null}const SEVERITY_LABEL={soft:"soft warning",approaching:"approaching limit",imminent:"imminent limit",hit:"limit reached"};function formatTimeLeft(es,$){if(!es)return"soon";const ts=new Date(es).getTime()-$;if(ts<=0)return"now";const is=Math.round(ts/6e4);if(is<60)return`in ${is} min`;const Kr=Math.floor(is/60),Qr=is%60;return Qr>0?`in ${Kr}h ${Qr}m`:`in ${Kr}h`}function formatAlertMessage(es,$,ts,is,Kr=Date.now()){const Qr=formatTimeLeft(is,Kr);if(es==="hit")return`Claude ${$} reached 100% — requests will fail. Resets ${Qr}.`;const ja=ts!=null?`${ts.toFixed(0)}%`:"limit";return`Claude ${$} at ${ja} — ${SEVERITY_LABEL[es]}. Resets ${Qr}.`}const ACTIVE_WINDOW_MS=600*1e3,POLL_MS=3e4,SEVERITY_STYLES={soft:"bg-yellow-100 border-yellow-300 text-yellow-900",approaching:"bg-amber-200 border-amber-400 text-amber-950",imminent:"bg-orange-300 border-orange-500 text-orange-950",hit:"bg-red-400 border-red-600 text-red-950"};function dismissKey$1(es){return`alert-dismissed:${es}`}function AlertBanner(){var Ba,Ma,Fa;const{data:es}=useQuery({queryKey:["alerts-recent"],queryFn:()=>apiGet("/api/alerts/recent"),refetchInterval:POLL_MS,refetchOnWindowFocus:!0}),[,$]=reactExports.useState(0);reactExports.useEffect(()=>{const qa=setInterval(()=>$(Ha=>Ha+1),6e4);return()=>clearInterval(qa)},[]);const ts=(es==null?void 0:es.items)??[];reactExports.useEffect(()=>{if(typeof window>"u"||!es)return;const qa=new Set(ts.map(Ha=>Ha.id));for(let Ha=localStorage.length-1;Ha>=0;Ha--){const Ka=localStorage.key(Ha);Ka!=null&&Ka.startsWith("alert-dismissed:")&&!qa.has(Ka.slice(16))&&localStorage.removeItem(Ka)}},[es,ts]);const is=Date.now(),Kr=ts.find(qa=>!(is-new Date(qa.lastDispatchedAt).getTime()>ACTIVE_WINDOW_MS||typeof window<"u"&&localStorage.getItem(dismissKey$1(qa.id)))),[,Qr]=reactExports.useState(0);if(!Kr)return null;const ja=Kr.severity,Ca=(Ba=Kr.lastState)==null?void 0:Ba.usedPercentage,Aa=(Ma=Kr.lastState)==null?void 0:Ma.resetsAt,[,,Oa]=Kr.alertKey.split(":"),Ia=((Fa=Kr.lastState)==null?void 0:Fa.message)??formatAlertMessage(ja,Oa,Ca,Aa);function Da(){typeof window<"u"&&localStorage.setItem(dismissKey$1(Kr.id),"1"),Qr(qa=>qa+1)}return jsxRuntimeExports.jsxs("div",{role:ja==="hit"?"alert":"status",className:cn$1("flex items-center gap-3 border-b px-4 py-2 text-sm",SEVERITY_STYLES[ja]),children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4 flex-shrink-0"}),jsxRuntimeExports.jsx("span",{className:"flex-1 font-mono",children:Ia}),jsxRuntimeExports.jsx("button",{type:"button",onClick:Da,"aria-label":"Dismiss alert",className:"rounded p-1 hover:bg-black/10",children:jsxRuntimeExports.jsx(X$1,{className:"h-4 w-4"})})]})}function useLatestVersion(){return useQuery({queryKey:["cli-latest-version"],queryFn:()=>apiGet("/api/cli/latest-version"),staleTime:3600*1e3,refetchInterval:POLL.DAILY,refetchOnWindowFocus:!1})}function compareVersions(es,$){const ts=ja=>ja.split(".").map(Ca=>Number.parseInt(Ca,10)||0),is=ts(es),Kr=ts($),Qr=Math.max(is.length,Kr.length);for(let ja=0;ja<Qr;ja++){const Ca=is[ja]??0,Aa=Kr[ja]??0;if(Ca<Aa)return-1;if(Ca>Aa)return 1}return 0}function cliUpdateStatus(es,$){if(!$)return null;const ts=es.filter(Kr=>typeof Kr=="string"&&Kr.length>0);if(ts.length===0)return null;const is=ts.reduce((Kr,Qr)=>compareVersions(Qr,Kr)>0?Qr:Kr,ts[0]);return compareVersions($,is)<=0?null:{current:is,latest:$}}const CLI_WORKER_TYPES=new Set(["cli-worker","gateway","proxy"]);function dismissKey(es){return`cli-update-dismissed:${es}`}function CliUpdateBanner(){const{activeWorkers:es}=useWorkerStatus(),{data:$}=useLatestVersion(),[,ts]=reactExports.useState(0),is=cliUpdateStatus(es.filter(Qr=>CLI_WORKER_TYPES.has(Qr.workerType)).map(Qr=>Qr.clientVersion),$==null?void 0:$.latest);if(!is||typeof window<"u"&&localStorage.getItem(dismissKey(is.latest)))return null;function Kr(){typeof window<"u"&&localStorage.setItem(dismissKey(is.latest),"1"),ts(Qr=>Qr+1)}return jsxRuntimeExports.jsxs("div",{role:"status",className:"flex items-center gap-3 border-b border-primary/20 bg-primary/5 px-4 py-2 text-sm text-foreground",children:[jsxRuntimeExports.jsx(CircleArrowUp,{className:"h-4 w-4 flex-shrink-0 text-primary"}),jsxRuntimeExports.jsxs("span",{className:"flex-1",children:["RuleMetric CLI ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:is.current})," →"," ",jsxRuntimeExports.jsx("span",{className:"font-mono font-semibold text-primary",children:is.latest})," available. Upgrade:"," ",jsxRuntimeExports.jsx("code",{className:"rounded bg-muted px-1 py-0.5 font-mono text-xs",children:UPDATE_CLI_SHORT}),", then re-run"," ",jsxRuntimeExports.jsx("code",{className:"rounded bg-muted px-1 py-0.5 font-mono text-xs",children:"rulemetric hooks install"})," ","to pick up new capture hooks."]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:Kr,"aria-label":"Dismiss CLI update notice",className:"flex h-9 w-9 flex-shrink-0 cursor-pointer items-center justify-center rounded hover:bg-secondary",children:jsxRuntimeExports.jsx(X$1,{className:"h-4 w-4"})})]})}function useWorkerHealth(){return useQuery({queryKey:["worker-health"],queryFn:()=>apiGet("/api/workers/health"),staleTime:6e4,refetchInterval:POLL.SLOW,refetchOnWindowFocus:!0})}const DISMISS_TTL_MS=1440*60*1e3;function conditionKey(es){return`${es.severity}:${es.headline}`}function dismissStorageKey(es){return`worker-health-dismissed:${es}`}function bannerFor(es){return!es||es.severity==="ok"?null:{severity:es.severity,headline:es.headline,hints:es.hints,key:conditionKey(es)}}function isDismissed(es,$=Date.now(),ts=DISMISS_TTL_MS){if(!es)return!1;const is=Number(es);if(!Number.isFinite(is)||is<=0)return!1;const Kr=$-is;return Kr<0?!1:Kr<ts}function WorkerHealthBanner(){const{data:es}=useWorkerHealth(),[,$]=reactExports.useState(0),ts=bannerFor(es==null?void 0:es.verdict);if(!ts)return null;const is=dismissStorageKey(ts.key),Kr=typeof window>"u"?null:localStorage.getItem(is);if(isDismissed(Kr))return null;function Qr(){typeof window<"u"&&localStorage.setItem(is,String(Date.now())),$(Aa=>Aa+1)}const ja=ts.severity==="fail",Ca=ja?CircleX:TriangleAlert;return jsxRuntimeExports.jsxs("div",{role:"alert","data-testid":"worker-health-banner","data-severity":ts.severity,className:"flex items-start gap-3 border-b px-4 py-2 text-sm text-foreground "+(ja?"border-destructive/30 bg-destructive/10":"border-amber-500/40 bg-amber-500/10"),children:[jsxRuntimeExports.jsx(Ca,{className:"mt-0.5 h-4 w-4 flex-shrink-0 "+(ja?"text-destructive":"text-amber-500")}),jsxRuntimeExports.jsxs("div",{className:"flex-1 space-y-1",children:[jsxRuntimeExports.jsx("p",{className:"font-medium",children:ts.headline}),ts.hints.map(Aa=>jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:Aa},Aa))]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:Qr,"aria-label":"Dismiss worker health notice",title:"Hidden for 24 hours — reappears if the problem persists",className:"flex h-9 w-9 flex-shrink-0 cursor-pointer items-center justify-center rounded hover:bg-secondary",children:jsxRuntimeExports.jsx(X$1,{className:"h-4 w-4"})})]})}const CORE_ORDER$1=["install","auth","hooks","worker"];function deriveSetupProgress(es){const $=Ca=>Ca?"detected":es.loading?"loading":"waiting",ts=es.authenticated?"detected":es.loading?"loading":"attention",is=es.cliEverConnected||es.anyCapturedSession||es.workerHeartbeat,Kr={install:{id:"install",label:"Install the CLI",optional:!1,state:$(is),command:INSTALL_CLI,waitingFor:"first CLI connection",hint:"Requires Node. No Node? A standalone installer is coming — for now, install Node first."},auth:{id:"auth",label:"Authenticated",optional:!1,state:ts,waitingFor:"an active session"},hooks:{id:"hooks",label:"Hooks installed",optional:!1,state:$(es.anyCapturedSession),command:"rulemetric hooks install",waitingFor:"first captured session",hint:"Hooks capture your Claude Code sessions directly — no CA cert or proxy required. Optional: add the local proxy to also record the exact system prompt each model saw, capture your other AI tools (Copilot, Cursor, Codex), and track live cost & rate limits — which unlocks full cross-tool instruction-effectiveness analysis."},worker:{id:"worker",label:"Worker running",optional:!1,state:$(es.workerHeartbeat),command:"rulemetric service install --worker-only",waitingFor:"a worker heartbeat"},tmux:{id:"tmux",label:"Tmux available",optional:!0,state:$(es.hasActiveTmux),waitingFor:"a Claude Code session running inside tmux"},target:{id:"target",label:"First live target detected",optional:!0,state:$(es.hasAnyTarget),waitingFor:"your first terminal target"},judge:{id:"judge",label:"Judge validation engine",optional:!0,state:$(es.llmEngines!=null&&es.llmEngines.claude&&es.llmEngines.codex),command:"npm install -g @openai/codex",waitingFor:es.llmEngines==null?"a worker heartbeat reporting your installed engines":"a second LLM engine (claude + codex)",hint:"Optional — hand labels + one judge already give you calibrated verdicts. A second engine (e.g. the Codex CLI) unlocks cross-vendor judge validation: two vendors checking each other's blind spots."}},Qr=CORE_ORDER$1.every(Ca=>Kr[Ca].state==="detected"),ja=Qr?null:CORE_ORDER$1.find(Ca=>Kr[Ca].state!=="detected")??null;return{steps:Kr,coreComplete:Qr,currentStepId:ja}}function useSetupProgress(es=3e4){var ja,Ca,Aa,Oa,Ia;const{session:$}=useAuth(),ts=useQuery({queryKey:["setup-status",es],queryFn:()=>apiGet("/api/setup/status"),refetchInterval:es}),is=useQuery({queryKey:["terminal-targets","all",es],queryFn:()=>apiGet("/api/terminal-targets"),refetchInterval:es}),Kr=ts.isLoading||is.isLoading,Qr=((ja=is.data)==null?void 0:ja.targets)??[];return deriveSetupProgress({loading:Kr,authenticated:!!$,cliEverConnected:((Ca=ts.data)==null?void 0:Ca.cliEverConnected)??!1,anyCapturedSession:((Aa=ts.data)==null?void 0:Aa.anyCapturedSession)??!1,workerHeartbeat:((Oa=ts.data)==null?void 0:Oa.workerActive)??!1,hasActiveTmux:Qr.some(Da=>Da.kind==="tmux"&&Da.status==="active"),hasAnyTarget:Qr.length>0,llmEngines:((Ia=ts.data)==null?void 0:Ia.llmEngines)??null})}function track(es,$){}const CORE_STEP_IDS=["install","auth","hooks","worker"],DISMISSED_KEY="rm.setupWalkthrough.dismissed";function readDismissed(){try{return sessionStorage.getItem(DISMISSED_KEY)==="1"}catch{return!1}}function writeDismissed(){try{sessionStorage.setItem(DISMISSED_KEY,"1")}catch{}}const SetupWalkthroughContext=reactExports.createContext(null);function SetupWalkthroughProvider({children:es}){const{session:$}=useAuth(),ts=!!$,is=useQueryClient(),{profile:Kr,isLoading:Qr}=useActiveOrg(),[ja,Ca]=reactExports.useState(!1),[Aa,Oa]=reactExports.useState("welcome"),[Ia,Da]=reactExports.useState(readDismissed),Ba=(Kr==null?void 0:Kr.setupCompletedAt)!=null,Ma=useSetupProgress(ja||!Ba?4e3:!1),Fa=reactExports.useRef(!1),qa=reactExports.useRef(null),Ha=reactExports.useRef(null),Ka=reactExports.useRef({}),Qa=reactExports.useRef(new Set),Va=reactExports.useRef(!1),Ya=reactExports.useCallback(()=>{Ca(!0)},[]),Wa=reactExports.useCallback(()=>{writeDismissed(),Da(!0),Ca(!1)},[Aa]),el=reactExports.useCallback(rl=>{Oa(rl)},[]);reactExports.useEffect(()=>{ts&&(Ia||Qr||Ma.steps.install.state==="loading"||(Kr==null?void 0:Kr.setupCompletedAt)==null&&(Ma.coreComplete||Ca(!0)))},[ts,Ia,Qr,Kr==null?void 0:Kr.setupCompletedAt,Ma.coreComplete,Ma.steps.install.state]),reactExports.useEffect(()=>{const rl=qa.current;if(qa.current=Ma.coreComplete,!!ts&&Ma.coreComplete&&!Fa.current){if((Kr==null?void 0:Kr.setupCompletedAt)!=null){Fa.current=!0;return}rl===!1&&(Fa.current=!0,Va.current||(Va.current=!0),apiPatch("/api/profile",{setupCompletedAt:new Date().toISOString()}).then(()=>{is.invalidateQueries({queryKey:["profile"]})}).catch(()=>{}),Oa("payoff"))}},[ts,Ma.coreComplete,Kr==null?void 0:Kr.setupCompletedAt,is]),reactExports.useEffect(()=>{if(!ja)return;const rl=`${Aa}::${Ma.currentStepId??""}`;Ha.current!==rl&&(Ha.current=rl,Ma.currentStepId,void 0)},[ja,Aa,Ma.currentStepId]),reactExports.useEffect(()=>{const rl=Date.now();for(const cl of CORE_STEP_IDS){const dl=Ma.steps[cl].state;if(dl!=="loading")if(dl==="detected"){if(Qa.current.has(cl))continue;Qa.current.add(cl),Ka.current[cl]}else Ka.current[cl]==null&&(Ka.current[cl]=rl)}},[Ma.steps.install.state,Ma.steps.auth.state,Ma.steps.hooks.state,Ma.steps.worker.state]);const tl={open:ja,stage:Aa,progress:Ma,openModal:Ya,dismiss:Wa,goTo:el,authenticated:ts};return reactExports.createElement(SetupWalkthroughContext.Provider,{value:tl},es)}function useSetupWalkthrough(){const es=reactExports.useContext(SetupWalkthroughContext);if(!es)throw new Error("useSetupWalkthrough must be used within a SetupWalkthroughProvider");return es}function Dialog({...es}){return jsxRuntimeExports.jsx(Root$2,{"data-slot":"dialog",...es})}function DialogPortal({...es}){return jsxRuntimeExports.jsx(Portal,{"data-slot":"dialog-portal",...es})}function DialogOverlay({className:es,...$}){return jsxRuntimeExports.jsx(Overlay,{"data-slot":"dialog-overlay",className:cn$1("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",es),...$})}function DialogContent({className:es,children:$,showCloseButton:ts=!0,...is}){return jsxRuntimeExports.jsxs(DialogPortal,{"data-slot":"dialog-portal",children:[jsxRuntimeExports.jsx(DialogOverlay,{}),jsxRuntimeExports.jsxs(Content,{"data-slot":"dialog-content",className:cn$1("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",es),...is,children:[$,ts&&jsxRuntimeExports.jsxs(Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-2 right-2 flex size-8 items-center justify-center rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[jsxRuntimeExports.jsx(X$1,{}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function DialogHeader({className:es,...$}){return jsxRuntimeExports.jsx("div",{"data-slot":"dialog-header",className:cn$1("flex flex-col gap-2 text-center sm:text-left",es),...$})}function DialogFooter({className:es,showCloseButton:$=!1,children:ts,...is}){return jsxRuntimeExports.jsxs("div",{"data-slot":"dialog-footer",className:cn$1("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",es),...is,children:[ts,$&&jsxRuntimeExports.jsx(Close,{asChild:!0,children:jsxRuntimeExports.jsx(Button,{variant:"outline",children:"Close"})})]})}function DialogTitle({className:es,...$}){return jsxRuntimeExports.jsx(Title,{"data-slot":"dialog-title",className:cn$1("text-lg leading-none font-semibold",es),...$})}function DialogDescription({className:es,...$}){return jsxRuntimeExports.jsx(Description,{"data-slot":"dialog-description",className:cn$1("text-muted-foreground text-sm",es),...$})}function CopyButton$3({text:es}){const{copied:$,copy:ts}=useCopyToClipboard();return jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",onClick:()=>ts(es),className:"cursor-pointer",children:$?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Check,{className:"mr-1 h-3 w-3"}),"Copied"]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Copy,{className:"mr-1 h-3 w-3"}),"Copy"]})})}const CC_SETUP_PROMPT=`Set up RuleMetric on this machine, agentically and transparently.
121
-
122
- STEP 0 — install or UPGRADE the CLI first. The \`setup\` command requires
123
- @rulemetric/cli 0.5.0+; older global installs do NOT have it, so always run:
124
- ${INSTALL_CLI_LATEST}
125
-
126
- Then CONFIRM the command actually exists before doing anything else:
127
- rulemetric --version (must be 0.5.0 or newer)
128
- rulemetric setup --help (must print the plan/show/apply usage)
129
- If \`setup\` is "not found", the upgrade didn't take (stale global install, PATH,
130
- or npm prefix) — fix that and re-verify. Do NOT fabricate diffs or pretend to run
131
- steps against a command that isn't there.
132
-
133
- Then run \`rulemetric setup plan\` and show me everything it would install.
134
-
135
- Then, for each step in order (install, auth, hooks, worker):
136
- 1. run \`rulemetric setup <step> --show\` and show me the exact diff,
137
- 2. ask me to confirm,
138
- 3. on yes, run \`rulemetric setup <step> --apply\`.
139
-
140
- Finish by running \`rulemetric setup --json\` and report the final green/red
141
- status. If any step fails, diagnose it from its output before continuing.`,CORE_ORDER=["install","auth","hooks","worker"];function stateBadge(es){switch(es){case"detected":return jsxRuntimeExports.jsx(Badge,{className:"bg-teal-500/15 text-teal-400 border-teal-500/30",children:"Detected"});case"loading":return jsxRuntimeExports.jsx(Badge,{variant:"outline",children:"Checking…"});case"attention":return jsxRuntimeExports.jsx(Badge,{className:"bg-amber-500/15 text-amber-400 border-amber-500/30",children:"Action needed"});default:return jsxRuntimeExports.jsx(Badge,{variant:"outline",children:"Waiting"})}}function CoreSteps(){const{progress:es}=useSetupWalkthrough(),$=useQueryClient(),[ts,is]=reactExports.useState(!1),Kr=es.currentStepId,Qr=CORE_ORDER.slice(1).find(qa=>es.steps[qa].state!=="detected")??Kr,ja=ts&&Kr==="install"?Qr:Kr;reactExports.useEffect(()=>{Kr!=="install"&&ts&&is(!1)},[Kr,ts]);const Ca=reactExports.useRef(ja),[Aa,Oa]=reactExports.useState(null);reactExports.useEffect(()=>{const qa=Ca.current;if(Ca.current=ja,qa==null||qa===ja)return;const Ha=es.steps[qa];if(Ha.state!=="detected")return;Oa({label:Ha.label});const Ka=setTimeout(()=>Oa(null),800);return()=>clearTimeout(Ka)},[ja,es.steps]);function Ia(){$.invalidateQueries({queryKey:["worker-status"]}),$.invalidateQueries({queryKey:["sessions"]}),$.invalidateQueries({queryKey:["terminal-targets"]})}if(es.coreComplete||ja==null)return null;const Da=es.steps[ja],Ba=CORE_ORDER.indexOf(ja)+1,Ma=Da.state==="attention",Fa=Da.state==="loading";return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-primary/30 bg-primary/5 p-3 space-y-2",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:"Set me up with Claude Code"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Paste into Claude Code — it installs step by step, showing exactly what it writes and asking before each change."})]}),jsxRuntimeExports.jsx(CopyButton$3,{text:CC_SETUP_PROMPT})]})}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx("span",{className:"h-px flex-1 bg-border"}),"or do it yourself",jsxRuntimeExports.jsx("span",{className:"h-px flex-1 bg-border"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1.5",children:CORE_ORDER.map(qa=>{const Ha=es.steps[qa],Ka=Ha.state==="detected",Qa=qa===ja;return jsxRuntimeExports.jsx("span",{className:cn$1("h-2 w-2 rounded-full transition-colors",Ka?"bg-teal-500":Qa?"bg-primary ring-2 ring-primary/30":"bg-muted"),"aria-label":`${Ha.label}: ${Ha.state}`},qa)})}),jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground font-mono",children:["Step ",Ba," of ",CORE_ORDER.length]})]}),Aa&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 rounded-md border border-teal-500/30 bg-teal-500/10 px-3 py-2 text-sm text-teal-400",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 shrink-0"}),jsxRuntimeExports.jsxs("span",{className:"font-medium",children:[Aa.label," done"]})]}),jsxRuntimeExports.jsxs("div",{className:cn$1("rounded-lg border bg-background p-4 space-y-3",Ma?"border-amber-500/40":"border-border"),children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[Fa?jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 shrink-0 animate-spin text-muted-foreground"}):Ma?jsxRuntimeExports.jsx(CircleAlert,{className:"h-4 w-4 shrink-0 text-amber-400"}):jsxRuntimeExports.jsx(Hourglass,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium truncate",children:Da.label})]}),stateBadge(Da.state)]}),Fa?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"h-3 w-3 animate-spin"}),"Checking current state…"]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Da.command&&jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:"Run this"}),jsxRuntimeExports.jsx(CopyButton$3,{text:Da.command})]}),jsxRuntimeExports.jsx("pre",{className:"overflow-auto rounded-md border border-border bg-[#0B1120] p-3 text-xs font-mono whitespace-pre-wrap",children:Da.command})]}),Da.waitingFor&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"h-3 w-3 animate-spin"}),"Waiting for ",Da.waitingFor,"…"]}),Da.hint&&jsxRuntimeExports.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground/80",children:Da.hint}),Ma&&!Da.command&&jsxRuntimeExports.jsx("p",{className:"text-xs text-amber-400",children:"Sign in to continue capturing sessions."})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center justify-end pt-1",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[ja==="install"&&jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",onClick:()=>is(!0),className:"cursor-pointer text-muted-foreground",children:"I've installed it →"}),jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",onClick:Ia,className:"cursor-pointer",children:[jsxRuntimeExports.jsx(RefreshCw,{className:"mr-1 h-3 w-3"}),"Check again"]})]})})]})]})}const CURRENT_LIMITS_POLL_MS=15e3;function useCurrentLimits(es="anthropic"){return useQuery({queryKey:["usage","current-limits",es],queryFn:()=>apiGet(`/api/usage/current-limits?provider=${encodeURIComponent(es)}`),staleTime:0,refetchOnMount:"always",refetchOnWindowFocus:"always",refetchOnReconnect:"always",refetchInterval:CURRENT_LIMITS_POLL_MS})}function useInferredCaps(){return useQuery({queryKey:["usage","inferred-caps"],queryFn:()=>apiGet("/api/usage/inferred-caps"),staleTime:5*6e4})}function assessLimitWindow(es){const{usedPercentage:$,resetsAt:ts,now:is}=es;if($==null||!Number.isFinite($))return{kind:"never-observed"};if(ts==null)return{kind:"current",usedPercentage:$};const Kr=Date.parse(ts);if(!Number.isFinite(Kr))return{kind:"current",usedPercentage:$};const Qr=is.getTime()-Kr;return Qr>=0?{kind:"expired",lastPercentage:$,endedMsAgo:Qr}:{kind:"current",usedPercentage:$}}function formatElapsed(es){const $=Math.floor(Math.max(0,es)/6e4);if($<60)return`${$}m`;const ts=Math.floor($/60);return ts<48?`${ts}h`:`${Math.floor(ts/24)}d`}const PLAN_OPTIONS=[{code:"free",label:"Free"},{code:"pro",label:"Pro"},{code:"max_5x",label:"Max 5x"},{code:"max_20x",label:"Max 20x"}],PLAN_LABEL=Object.fromEntries(PLAN_OPTIONS.map(es=>[es.code,es.label]));function planLabel$1(es){return PLAN_LABEL[es]??es}function startOfMonthIso$1(){const es=new Date;return new Date(es.getFullYear(),es.getMonth(),1).toISOString()}function formatUsd$1(es){return es>=1e3?`$${(es/1e3).toFixed(2)}K`:es>=1?`$${es.toFixed(2)}`:es>0?`$${es.toFixed(3)}`:"$0.00"}function Payoff(){const{goTo:es}=useSetupWalkthrough(),$=useCurrentLimits(),ts=useInferredCaps(),is=useComputedInsights(void 0,void 0,{since:startOfMonthIso$1(),refetchIntervalMs:3e4});return jsxRuntimeExports.jsxs("div",{className:"space-y-5",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsxs("h3",{className:"flex items-center gap-2 text-base font-semibold",children:[jsxRuntimeExports.jsx(PartyPopper,{className:"h-5 w-5 text-primary"}),"You're capturing! 🎉"]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"RuleMetric is now watching your Claude Code sessions. Here's your usage so far."})]}),jsxRuntimeExports.jsx(UsageSummary,{limits:$,insights:is}),jsxRuntimeExports.jsx(PlanDetection,{caps:ts}),jsxRuntimeExports.jsx("div",{className:"flex justify-end pt-1",children:jsxRuntimeExports.jsx(Button,{onClick:()=>es("livesend"),children:"Continue"})})]})}function UsageSummary({limits:es,insights:$}){var Ma,Fa,qa,Ha,Ka,Qa,Va;if(es.isLoading&&!es.data||$.isLoading&&!$.data)return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-4 py-6 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin"}),"Checking your usage…"]});const is=((Ma=es.data)==null?void 0:Ma.five_hour)??null,Kr=((Fa=es.data)==null?void 0:Fa.seven_day)??null,Qr=((qa=es.data)==null?void 0:qa.seven_day_opus)??null,ja=is!=null||Kr!=null||Qr!=null,Ca=(Ha=$.data)==null?void 0:Ha.estimated_cost_usd,Aa=((Ka=$.data)==null?void 0:Ka.total_input_tokens)??0,Oa=((Qa=$.data)==null?void 0:Qa.total_output_tokens)??0,Ia=(Va=$.data)==null?void 0:Va.estimated_cost_by_model,Da=typeof Ca=="number"&&Ca>0||Aa>0||Oa>0;if(!ja&&!Da)return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-dashed border-primary/40 bg-primary/5 px-4 py-6 text-sm",children:[jsxRuntimeExports.jsxs("span",{className:"relative flex h-3 w-3 shrink-0",children:[jsxRuntimeExports.jsx("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-primary/60"}),jsxRuntimeExports.jsx("span",{className:"relative inline-flex h-3 w-3 rounded-full bg-primary"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-0.5",children:[jsxRuntimeExports.jsx("p",{className:"font-medium",children:"Watching for your first session…"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Run Claude Code and this fills in automatically."})]})]});const Ba=Ia?Object.entries(Ia).sort(([,Ya],[,Wa])=>Wa.cost_usd-Ya.cost_usd):[];return jsxRuntimeExports.jsxs("div",{className:"space-y-3 rounded-lg border border-border bg-background p-4",children:[ja&&jsxRuntimeExports.jsxs("div",{className:"space-y-1.5",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Rate limits"}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1 text-xs font-mono",children:[jsxRuntimeExports.jsx(LimitChip,{label:"5h",obs:is}),jsxRuntimeExports.jsx(LimitChip,{label:"7d",obs:Kr}),jsxRuntimeExports.jsx(LimitChip,{label:"7d Opus",obs:Qr})]})]}),Da&&jsxRuntimeExports.jsxs("div",{className:cn$1("space-y-1.5",ja&&"border-t border-border pt-3"),children:[jsxRuntimeExports.jsxs("div",{className:"flex items-baseline justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Cost this month"}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-lg",children:[jsxRuntimeExports.jsx("span",{className:"mr-1 text-muted-foreground",children:"≈"}),formatUsd$1(Ca??0)]})]}),Ba.length>0&&jsxRuntimeExports.jsx("div",{className:"space-y-1",children:Ba.slice(0,3).map(([Ya,Wa])=>{const el=Ca&&Ca>0?Math.round(Wa.cost_usd/Ca*100):0;return jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-xs",children:[jsxRuntimeExports.jsx("span",{className:"truncate max-w-[60%] font-mono text-muted-foreground",children:Ya}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 font-mono",children:[jsxRuntimeExports.jsx("span",{children:formatUsd$1(Wa.cost_usd)}),jsxRuntimeExports.jsxs("span",{className:"w-8 text-right text-muted-foreground",children:[el,"%"]})]})]},Ya)})})]})]})}function LimitChip({label:es,obs:$}){const ts=assessLimitWindow({usedPercentage:($==null?void 0:$.used_percentage)??null,resetsAt:($==null?void 0:$.resets_at)??null,now:new Date});return ts.kind!=="current"?jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:[es," ",jsxRuntimeExports.jsx("span",{className:"opacity-60",children:"—"})]}):jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:es})," ",jsxRuntimeExports.jsxs("span",{className:"font-semibold",children:[Math.round(ts.usedPercentage),"%"]})]})}function PlanDetection({caps:es}){var Oa,Ia;const $=useQueryClient(),[ts,is]=reactExports.useState(!1),[Kr,Qr]=reactExports.useState(null),ja=useMutation({mutationFn:Da=>apiPatch("/api/profile",{claudeCodePlan:Da}),onError:()=>{Qr(null)},onSuccess:()=>{$.invalidateQueries({queryKey:["usage","inferred-caps"]}),$.invalidateQueries({queryKey:["profile"]}),is(!1)}});if(es.isLoading&&!es.data)return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin"}),"Detecting your plan…"]});const Ca=((Oa=es.data)==null?void 0:Oa.plan)??"max_20x",Aa=((Ia=es.data)==null?void 0:Ia.assumed)??!0;return!Aa&&!ts?jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-lg border border-teal-500/30 bg-teal-500/5 px-4 py-3 text-sm",children:[jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Check,{className:"h-4 w-4 text-teal-400"}),"Detected your plan:"," ",jsxRuntimeExports.jsx("span",{className:"font-semibold",children:planLabel$1(Ca)})]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>is(!0),className:"text-xs text-primary underline-offset-2 hover:underline",children:"not right? change"})]}):jsxRuntimeExports.jsxs("div",{className:"space-y-2 rounded-lg border border-border bg-background p-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[jsxRuntimeExports.jsx(Radar,{className:"h-4 w-4 text-muted-foreground"}),jsxRuntimeExports.jsx("span",{className:"font-medium",children:"Which Claude Code plan are you on?"})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Pick yours so your limits are accurate."}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2 pt-1",role:"radiogroup","aria-label":"Claude Code plan",children:PLAN_OPTIONS.map(Da=>{const Ba=Kr===Da.code||!Aa&&Da.code===Ca,Ma=ja.isPending&&ja.variables===Da.code;return jsxRuntimeExports.jsxs(Button,{role:"radio","aria-checked":Ba,variant:Ba?"default":"outline",size:"sm",disabled:Ma,onClick:()=>{Qr(Da.code),ja.mutate(Da.code)},children:[Ma&&jsxRuntimeExports.jsx(LoaderCircle,{className:"mr-1 h-3 w-3 animate-spin"}),Ba&&!Ma&&jsxRuntimeExports.jsx(Check,{className:"mr-1 h-3 w-3"}),Da.label]},Da.code)})}),ja.isError&&jsxRuntimeExports.jsx("p",{className:"text-xs text-destructive",role:"alert",children:"Couldn't save your plan — please try again."})]})}function LivesendEpilogue(){const{progress:es,goTo:$}=useSetupWalkthrough(),ts=useQueryClient(),is=es.steps.tmux,Kr=es.steps.target,Qr=is.state==="detected"&&Kr.state==="detected",ja=useMutation({mutationFn:()=>apiPatch("/api/profile",{liveSendSkipped:!0}),onSettled:()=>{ts.invalidateQueries({queryKey:["profile"]}),$("labeling")}});return jsxRuntimeExports.jsxs("div",{className:"space-y-5",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsxs("h3",{className:"flex items-center gap-2 text-base font-semibold",children:[jsxRuntimeExports.jsx(Send,{className:"h-5 w-5 text-primary"}),"Control sessions from the browser?"]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Want to control sessions from the browser? This needs tmux. With it, RuleMetric can detect your running Claude Code sessions as live targets and send prompts to them straight from the dashboard — no terminal switching."})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2 rounded-lg border border-border bg-background p-4",children:[jsxRuntimeExports.jsx(OptionalStepRow,{step:is}),jsxRuntimeExports.jsx(OptionalStepRow,{step:Kr})]}),Qr?jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsxs("p",{className:"flex items-center gap-2 text-sm text-teal-400",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 shrink-0"}),"Live-send is ready — you can drive sessions from the dashboard."]}),jsxRuntimeExports.jsx("div",{className:"flex justify-end",children:jsxRuntimeExports.jsx(Button,{onClick:()=>$("labeling"),children:"Continue"})})]}):jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center justify-end gap-2",children:jsxRuntimeExports.jsxs(Button,{onClick:()=>ja.mutate(),disabled:ja.isPending,children:[ja.isPending&&jsxRuntimeExports.jsx(LoaderCircle,{className:"mr-1 h-3 w-3 animate-spin"}),"Skip for now"]})}),jsxRuntimeExports.jsxs("p",{className:"text-right text-xs text-muted-foreground",children:["You can enable this anytime from"," ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:"/connect"}),"."]})]})]})}function optionalIcon(es){switch(es){case"detected":return jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 shrink-0 text-teal-400"});case"loading":return jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 shrink-0 animate-spin text-muted-foreground"});default:return jsxRuntimeExports.jsx(Hourglass,{className:"h-4 w-4 shrink-0 text-muted-foreground"})}}function OptionalStepRow({step:es}){const $=es.state==="detected";return jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[optionalIcon(es.state),jsxRuntimeExports.jsx("span",{className:cn$1("text-sm font-medium truncate",$?"text-foreground":"text-muted-foreground"),children:es.label})]}),$?jsxRuntimeExports.jsx("span",{className:"shrink-0 text-xs text-teal-400",children:"Detected"}):jsxRuntimeExports.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:es.state==="loading"?"Checking…":`Waiting for ${es.waitingFor}`})]})}function LabelingEpilogue(){const{progress:es,goTo:$,dismiss:ts}=useSetupWalkthrough(),is=useNavigate(),Kr=es.steps.judge;function Qr(){ts(),is("/eval-targets")}return jsxRuntimeExports.jsxs("div",{className:"space-y-5",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsxs("h3",{className:"flex items-center gap-2 text-base font-semibold",children:[jsxRuntimeExports.jsx(ClipboardCheck,{className:"h-5 w-5 text-primary"}),'Teach the judge what "good" means']}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:["RuleMetric grades your agent's outputs with an LLM judge — but only ",jsxRuntimeExports.jsx("span",{className:"text-foreground",children:"your hand labels"})," can prove the judge is trustworthy. Review a few graded outputs (approve/reject, keyboard-fast) on any eval target's Review tab and you unlock calibrated verdicts. We'll notify you whenever outputs are waiting for review."]})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2 rounded-lg border border-border bg-background p-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[stateIcon(Kr.state),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium truncate",children:Kr.label})]}),Kr.state==="detected"?jsxRuntimeExports.jsx("span",{className:"shrink-0 text-xs text-teal-400",children:"Detected"}):jsxRuntimeExports.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Kr.state==="loading"?"Checking…":`Waiting for ${Kr.waitingFor}`})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:Kr.hint}),Kr.state!=="detected"&&Kr.command&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:["Recommended:"," ",jsxRuntimeExports.jsx("span",{className:"font-mono text-foreground",children:Kr.command})]})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-end gap-2",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",onClick:()=>$("done"),children:"Skip for now"}),jsxRuntimeExports.jsx(Button,{onClick:Qr,children:"Show me labeling"})]}),jsxRuntimeExports.jsx("p",{className:"text-right text-xs text-muted-foreground",children:"The bell will remind you when graded outputs need review."})]})]})}function stateIcon(es){switch(es){case"detected":return jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 shrink-0 text-teal-400"});case"loading":return jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 shrink-0 animate-spin text-muted-foreground"});default:return jsxRuntimeExports.jsx(Hourglass,{className:"h-4 w-4 shrink-0 text-muted-foreground"})}}function SetupWalkthroughModal(){const{open:es,stage:$,authenticated:ts,dismiss:is,goTo:Kr}=useSetupWalkthrough();return!ts||!es?null:jsxRuntimeExports.jsx(Dialog,{open:!0,onOpenChange:Qr=>{Qr||is()},children:jsxRuntimeExports.jsxs(DialogContent,{className:"sm:max-w-lg",children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsxs(DialogTitle,{className:"flex items-center gap-2 pr-6",children:[jsxRuntimeExports.jsx(Sparkles,{className:"h-4 w-4 text-primary"}),"Get set up with RuleMetric"]}),jsxRuntimeExports.jsx(DialogDescription,{children:"A quick walkthrough to connect Claude Code and start seeing your usage and cost."})]}),jsxRuntimeExports.jsx("div",{className:"py-2",children:jsxRuntimeExports.jsx(StageBody,{stage:$,onStart:()=>Kr("core"),dismiss:is})}),$!=="done"&&jsxRuntimeExports.jsx(DialogFooter,{className:"sm:justify-between",children:jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",onClick:is,className:"text-muted-foreground",children:"I'll finish later"})})]})})}function StageBody({stage:es,onStart:$,dismiss:ts}){switch(es){case"welcome":return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"In a couple of minutes you'll have RuleMetric watching your Claude Code sessions — tracking real token usage, cost, and which instructions actually help."}),jsxRuntimeExports.jsx(Button,{onClick:$,className:"w-full sm:w-auto",children:"Let's get set up"})]});case"core":return jsxRuntimeExports.jsx(CoreSteps,{});case"payoff":return jsxRuntimeExports.jsx(Payoff,{});case"livesend":return jsxRuntimeExports.jsx(LivesendEpilogue,{});case"labeling":return jsxRuntimeExports.jsx(LabelingEpilogue,{});case"done":return jsxRuntimeExports.jsx(Done,{dismiss:ts})}}function Done({dismiss:es}){const $=useNavigate();function ts(){es(),$("/usage")}return jsxRuntimeExports.jsxs("div",{className:"space-y-5",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsxs("h3",{className:"flex items-center gap-2 text-base font-semibold",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"h-5 w-5 text-teal-400"}),"You're all set ✓"]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"RuleMetric is capturing your Claude Code sessions — head to the usage page to watch your real token spend and cost roll in."})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-end gap-2",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",onClick:es,children:"Done"}),jsxRuntimeExports.jsx(Button,{onClick:ts,children:"View usage"})]})]})}function RootLayout({children:es}={}){return jsxRuntimeExports.jsx(SetupWalkthroughProvider,{children:jsxRuntimeExports.jsxs("div",{className:"flex h-screen",children:[jsxRuntimeExports.jsx(NotificationsListener,{}),jsxRuntimeExports.jsx(InsightsJobsListener,{}),jsxRuntimeExports.jsx(Sidebar,{className:"hidden md:flex"}),jsxRuntimeExports.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[jsxRuntimeExports.jsx(Header,{}),jsxRuntimeExports.jsx(AlertBanner,{}),jsxRuntimeExports.jsx(WorkerHealthBanner,{}),jsxRuntimeExports.jsx(CliUpdateBanner,{}),jsxRuntimeExports.jsx("main",{className:"flex-1 overflow-y-auto p-4 md:p-6",children:es??jsxRuntimeExports.jsx(Outlet,{})})]}),jsxRuntimeExports.jsx(SetupWalkthroughModal,{})]})})}const formats=[{name:"CLAUDE.md",tier:"full"},{name:"AGENTS.md",tier:"full"},{name:".cursor/rules",tier:"full"},{name:"copilot-instructions.md",tier:"full"},{name:".windsurfrules",tier:"partial"},{name:".clinerules",tier:"partial"},{name:".roo/rules",tier:"partial"},{name:"CONVENTIONS.md (Aider)",tier:"partial"},{name:"GEMINI.md",tier:"partial"},{name:".continuerules",tier:"partial"},{name:".junie/guidelines.md",tier:"partial"},{name:".aiassistant/rules (JetBrains)",tier:"partial"},{name:"AGENTS.md (Codex)",tier:"partial"},{name:"SOUL.md",tier:"partial"},{name:".amazonq/rules",tier:"minimal"},{name:".goosehints",tier:"minimal"},{name:".kilocode/rules",tier:"minimal"},{name:".augment-guidelines",tier:"minimal"},{name:".tabnine/instructions.md",tier:"minimal"},{name:"AGENTS.md (OpenCode)",tier:"minimal"},{name:".warp/rules",tier:"minimal"},{name:".trae/rules",tier:"minimal"},{name:".vscode/copilot-instructions.md",tier:"minimal"},{name:".qodo/guidelines.md",tier:"minimal"},{name:".genkit",tier:"minimal"},{name:"AGENTS.md (Amp)",tier:"minimal"}],tierColors={full:"bg-primary/15 text-primary border-primary/30",partial:"bg-blue-500/15 text-blue-400 border-blue-500/30",minimal:"bg-muted text-muted-foreground border-border"},verdict={rule:"CLAUDE.md — RuleMetric's own repo (785-line version)",deltaLabel:"−23%",deltaCaption:"less likely to succeed",significance:"Significant · p < 0.001",ci:{lower:-31.7,upper:-13.9},n:{with:168,without:247},method:"observational · stratified",domain:{min:-40,max:10}};function VerdictCard(){const es=verdict.domain.max-verdict.domain.min,$=is=>`${(is-verdict.domain.min)/es*100}%`,ts=(verdict.ci.upper-verdict.ci.lower)/es*100;return jsxRuntimeExports.jsxs("div",{className:"bg-card border border-border rounded-lg overflow-hidden shadow-sm",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 border-b border-border",children:[jsxRuntimeExports.jsx("span",{className:"text-xs font-mono text-muted-foreground uppercase tracking-wide",children:"Instruction impact"}),jsxRuntimeExports.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 border border-primary/30 px-2 py-0.5 text-[10px] font-mono text-primary uppercase tracking-wide",children:"real verdict"})]}),jsxRuntimeExports.jsxs("div",{className:"p-5 space-y-5",children:[jsxRuntimeExports.jsx("div",{className:"font-mono text-sm text-foreground bg-[#0B1120] border border-border rounded px-3 py-2",children:verdict.rule}),jsxRuntimeExports.jsxs("div",{className:"flex items-end gap-3",children:[jsxRuntimeExports.jsx(TrendingDown,{className:"h-8 w-8 text-destructive mb-1"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-mono text-4xl font-bold text-destructive leading-none",children:verdict.deltaLabel}),jsxRuntimeExports.jsx("div",{className:"text-sm text-muted-foreground mt-1",children:verdict.deltaCaption})]})]}),jsxRuntimeExports.jsxs("div",{className:"inline-flex items-center gap-1.5 rounded-full bg-primary/10 border border-primary/30 px-2.5 py-1 text-xs font-mono text-primary",children:[jsxRuntimeExports.jsx(BadgeCheck,{className:"h-3.5 w-3.5"}),verdict.significance]}),jsxRuntimeExports.jsxs("div",{className:"pt-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground mb-1.5",children:[jsxRuntimeExports.jsx("span",{children:"95% CI"}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-foreground",children:[verdict.ci.lower," to ",verdict.ci.upper," pp"]})]}),jsxRuntimeExports.jsxs("div",{className:"relative h-2 rounded-full bg-muted",children:[jsxRuntimeExports.jsx("div",{className:"absolute top-0 h-full rounded-full bg-destructive/60",style:{left:$(verdict.ci.lower),width:`${ts}%`}}),jsxRuntimeExports.jsx("div",{className:"absolute -top-0.5 h-3 w-px bg-muted-foreground/70",style:{left:$(0)}})]}),jsxRuntimeExports.jsxs("div",{className:"relative h-4 text-[10px] font-mono text-muted-foreground mt-1",children:[jsxRuntimeExports.jsxs("span",{className:"absolute left-0",children:[verdict.domain.min,"pp"]}),jsxRuntimeExports.jsx("span",{className:"absolute -translate-x-1/2",style:{left:$(0)},children:"0"}),jsxRuntimeExports.jsxs("span",{className:"absolute right-0",children:["+",verdict.domain.max,"pp"]})]})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-1.5 text-sm border-t border-border pt-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"sessions"}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-foreground",children:[verdict.n.with," with · ",verdict.n.without," without"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"method"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-foreground",children:verdict.method})]})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground border-t border-border pt-3",children:"Our own harness was measurably hurting us. We rewrote the file the same week — that's the loop working."})]})]})}const terminalLines=[{prompt:"$ rulemetric hooks install",delay:0},{output:"Installed hooks for Claude Code, Cursor, Copilot",delay:800},{output:"Session tracking active",delay:1400},{prompt:"$ rulemetric sessions list",delay:2400},{output:"24 sessions captured across Claude Code + Cursor",delay:3200},{output:"18 sessions linked to 6 instructions",delay:3800},{output:"Enriched with outcomes + friction analysis",delay:4400}];function AnimatedTerminal(){const[es,$]=reactExports.useState(0);return reactExports.useEffect(()=>{const ts=[],is=()=>{terminalLines.forEach((Kr,Qr)=>{ts.push(setTimeout(()=>$(Qr+1),Kr.delay))})};return is(),ts.push(setTimeout(()=>$(0),6e3)),ts.push(setTimeout(is,6500)),()=>ts.forEach(clearTimeout)},[]),jsxRuntimeExports.jsxs("div",{className:"bg-[#0B1120] border border-border rounded-lg overflow-hidden",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 px-4 py-2.5 border-b border-border",children:[jsxRuntimeExports.jsx("div",{className:"h-2.5 w-2.5 rounded-full bg-destructive/60"}),jsxRuntimeExports.jsx("div",{className:"h-2.5 w-2.5 rounded-full bg-chart-3/60"}),jsxRuntimeExports.jsx("div",{className:"h-2.5 w-2.5 rounded-full bg-primary/60"}),jsxRuntimeExports.jsx("span",{className:"ml-2 text-xs text-muted-foreground font-mono",children:"terminal"})]}),jsxRuntimeExports.jsxs("div",{className:"p-4 font-mono text-sm space-y-1 min-h-[200px]",children:[terminalLines.slice(0,es).map((ts,is)=>"prompt"in ts?jsxRuntimeExports.jsx("div",{className:"text-primary",children:ts.prompt},is):jsxRuntimeExports.jsx("div",{className:"text-muted-foreground",children:ts.output},is)),es>0&&es<terminalLines.length&&jsxRuntimeExports.jsx("span",{className:"inline-block w-2 h-4 bg-primary animate-pulse"})]})]})}const loop=[{step:"01",icon:Activity,title:"Capture",description:"Automatic session tracking across Claude Code, Cursor, and Copilot. Lightweight hooks capture every session with zero config, and each one is linked back to the harness that shaped it — instructions, skills, hooks."},{step:"02",icon:ChartColumn,title:"Measure",description:"With-vs-without impact analysis produces a statistical verdict for every part of your harness — not a vanity score. You see which rules help, which add noise, and which actively hurt."},{step:"03",icon:FlaskConical,title:"Evolve",description:"Candidate changes are generated from mined session evidence and trialed in background evals against your real tasks — before anything touches your working setup."},{step:"04",icon:ShieldCheck,title:"Promote",description:"Winners pass hard promotion gates, get written back to your actual files with a compare-and-swap that refuses to clobber concurrent edits, and land in the team catalog. Git is the undo."}],evolutionPoints=[{icon:FlaskConical,title:"Trialed before trusted",description:"Every candidate harness change runs through background eval trials on your own tasks. No change is promoted on plausibility — only on a measured verdict."},{icon:ShieldCheck,title:"Gated, audited, reversible",description:"Autonomous promotion passes hard adequacy and significance gates, records an audit trail, and defaults to add-only. Every applied change is reversible, with git as the undo."},{icon:History,title:"Verdicts that persist",description:"Measured outcomes are content-addressed, so a proven improvement stays proven — reusable across projects and over time instead of dying with the experiment."}],localPoints=[{icon:HardDrive,title:"The full stack, locally",description:"One command downloads a version-locked local package — API, dashboard, and database migrations — and runs everything against a local database."},{icon:Lock,title:"Strict-local egress guard",description:"Strict-local mode turns any implicit cloud fallback into a loud, visible disable — never a silent send. Only an explicitly configured URL leaves your machine."},{icon:Terminal,title:"Same CLI, same loop",description:"Capture, verdicts, and the evolution loop run identically against your local stack. Nothing about the workflow changes — only where the data lives."}],accessMethods=[{icon:Globe,title:"Web Dashboard",description:"Visual management with analytics, insights, and verdicts",code:"rulemetric.com"},{icon:Terminal,title:"CLI",description:"Full CRUD, convert, import, and session sync",code:"rulemetric sessions list"},{icon:Cpu,title:"MCP Server",description:"17 tools for AI assistants, auto-installs hooks",code:"claude mcp add rulemetric"},{icon:CodeXml,title:"REST API",description:"Programmatic access for CI/CD and automation",code:"GET /api/insights/compute"}],stats=[{value:"25+",label:"Harness Formats"},{value:"3",label:"Agents Captured"},{value:"17",label:"MCP Tools"},{value:"1",label:"Command to Go Local"}];function LandingPage(){return jsxRuntimeExports.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[jsxRuntimeExports.jsx("nav",{className:"sticky top-0 z-50 border-b border-border bg-background/80 backdrop-blur-sm",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl flex items-center justify-between px-4 h-14",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-semibold",children:"RuleMetric"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",className:"cursor-pointer mt-2",asChild:!0,children:jsxRuntimeExports.jsx(Link,{to:"/login",children:"Sign in"})}),jsxRuntimeExports.jsx(Button,{className:"cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",asChild:!0,children:jsxRuntimeExports.jsx(Link,{to:"/signup",children:"Get Started"})})]})]})}),jsxRuntimeExports.jsx("section",{className:"py-24 px-4",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl grid lg:grid-cols-2 gap-12 items-center",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("h1",{className:"text-4xl lg:text-5xl font-mono font-bold leading-tight mb-6",children:["Your agent harness,"," ",jsxRuntimeExports.jsx("span",{className:"text-primary",children:"measured. Then evolved."})]}),jsxRuntimeExports.jsx("p",{className:"text-lg text-muted-foreground mb-8 max-w-lg",children:"RuleMetric captures every coding session, measures your whole agentic harness — instructions, skills, hooks — against real outcomes, and evolves it: candidate changes trialed in background evals, winners promoted through hard gates, every change reversible."}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-3",children:jsxRuntimeExports.jsx(Button,{size:"lg",className:"cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/signup",children:["Get Started Free",jsxRuntimeExports.jsx(ArrowRight,{className:"ml-2 h-4 w-4"})]})})})]}),jsxRuntimeExports.jsx(VerdictCard,{})]})}),jsxRuntimeExports.jsx("section",{className:"py-20 px-4 bg-card",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl text-center",children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-mono font-bold mb-4",children:"Your harness grows every week. Does it help?"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground mb-12 max-w-2xl mx-auto",children:"CLAUDE.md rules, skills, hooks, and subagent prompts accrete across every project — and get tuned by vibes. Nobody measures whether the harness actually makes the agent better. RuleMetric closes that gap, then closes the loop."}),jsxRuntimeExports.jsxs("div",{className:"grid md:grid-cols-3 gap-6 max-w-3xl mx-auto text-left",children:[jsxRuntimeExports.jsxs("div",{className:"bg-background border border-border rounded-lg p-5",children:[jsxRuntimeExports.jsx("div",{className:"text-2xl font-mono font-bold text-destructive/80 mb-2",children:"785"}),jsxRuntimeExports.jsx("div",{className:"text-sm text-muted-foreground",children:"lines our own CLAUDE.md reached before we measured it — it was making sessions 23% less likely to succeed"})]}),jsxRuntimeExports.jsxs("div",{className:"bg-background border border-border rounded-lg p-5",children:[jsxRuntimeExports.jsx("div",{className:"text-2xl font-mono font-bold text-chart-3/80 mb-2",children:"0%"}),jsxRuntimeExports.jsx("div",{className:"text-sm text-muted-foreground",children:"visibility into which rules, skills, and hooks improve sessions — and which quietly hurt"})]}),jsxRuntimeExports.jsxs("div",{className:"bg-background border border-border rounded-lg p-5",children:[jsxRuntimeExports.jsx("div",{className:"text-2xl font-mono font-bold text-blue-400/80 mb-2",children:"???"}),jsxRuntimeExports.jsx("div",{className:"text-sm text-muted-foreground",children:"hours spent re-tuning by feel after every model release and tool update"})]})]})]})}),jsxRuntimeExports.jsx("section",{className:"py-20 px-4",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl",children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-mono font-bold text-center mb-4",children:"Capture → Measure → Evolve → Promote"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-center mb-12 max-w-xl mx-auto",children:"A closed loop from the harness you run to the outcomes it produces — and back into the harness."}),jsxRuntimeExports.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:loop.map(es=>jsxRuntimeExports.jsxs("div",{className:"bg-card border border-border rounded-lg p-6 hover:border-primary/30 transition-colors duration-200",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[jsxRuntimeExports.jsx("span",{className:"font-mono text-xs text-primary",children:es.step}),jsxRuntimeExports.jsx(es.icon,{className:"h-5 w-5 text-primary"})]}),jsxRuntimeExports.jsx("h3",{className:"font-mono text-lg font-semibold mb-2",children:es.title}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:es.description})]},es.step))})]})}),jsxRuntimeExports.jsx("section",{className:"py-20 px-4 bg-card",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl",children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-mono font-bold text-center mb-4",children:"Harness evolution, with receipts"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-center mb-12 max-w-xl mx-auto",children:"Plenty of tools will rewrite your prompts. RuleMetric is built around a harder claim: no change ships without a measurement, and no measurement is thrown away."}),jsxRuntimeExports.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:evolutionPoints.map(es=>jsxRuntimeExports.jsxs("div",{className:"bg-background border border-border rounded-lg p-6 hover:border-primary/30 transition-colors duration-200",children:[jsxRuntimeExports.jsx(es.icon,{className:"h-5 w-5 text-primary mb-3"}),jsxRuntimeExports.jsx("h3",{className:"font-mono text-base font-semibold mb-2",children:es.title}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:es.description})]},es.title))}),jsxRuntimeExports.jsxs("p",{className:"text-center text-sm text-muted-foreground mt-10",children:["The loop's first autonomous win on our own repo measured"," ",jsxRuntimeExports.jsx("span",{className:"font-mono text-primary",children:"+12.5pp"})," ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:"(95% CI [+2.1, +25.0], n=16)"})," — within 48 hours of switching the actuators on."]})]})}),jsxRuntimeExports.jsx("section",{className:"py-20 px-4",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl grid lg:grid-cols-2 gap-12 items-center",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-mono font-bold mb-4",children:"How capture works"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground mb-6 max-w-lg",children:"One command installs the hooks. From then on every session flows in automatically — captured, linked to the harness that shaped it, and enriched with outcomes and friction. No manual logging, no changes to how you work."}),jsxRuntimeExports.jsxs("ul",{className:"space-y-2 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsxs("li",{className:"flex items-start gap-2",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 text-primary mt-0.5 shrink-0"}),"Hooks capture Claude Code, Cursor, and Copilot with zero config"]}),jsxRuntimeExports.jsxs("li",{className:"flex items-start gap-2",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 text-primary mt-0.5 shrink-0"}),"An optional local proxy records the exact rendered system prompt"]}),jsxRuntimeExports.jsxs("li",{className:"flex items-start gap-2",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 text-primary mt-0.5 shrink-0"}),"Outcomes, friction, tool usage, and token cost logged for you"]})]})]}),jsxRuntimeExports.jsx(AnimatedTerminal,{})]})}),jsxRuntimeExports.jsx("section",{className:"py-20 px-4 bg-card",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl",children:[jsxRuntimeExports.jsxs("div",{className:"text-center mb-12",children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-mono font-bold mb-4",children:"Or run it entirely on your machine"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto mb-6",children:"Local mode runs the whole product — capture, verdicts, dashboard — against a database on your own hardware. Your sessions never have to leave it."}),jsxRuntimeExports.jsx("code",{className:"inline-block bg-[#0B1120] border border-border rounded px-4 py-2 font-mono text-sm text-primary",children:"$ rulemetric local up"})]}),jsxRuntimeExports.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:localPoints.map(es=>jsxRuntimeExports.jsxs("div",{className:"bg-background border border-border rounded-lg p-6 hover:border-primary/30 transition-colors duration-200",children:[jsxRuntimeExports.jsx(es.icon,{className:"h-5 w-5 text-primary mb-3"}),jsxRuntimeExports.jsx("h3",{className:"font-mono text-base font-semibold mb-2",children:es.title}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:es.description})]},es.title))})]})}),jsxRuntimeExports.jsx("section",{className:"py-20 px-4",children:jsxRuntimeExports.jsx("div",{className:"mx-auto max-w-3xl",children:jsxRuntimeExports.jsxs("div",{className:"bg-card border border-dashed border-border rounded-lg p-8",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(GraduationCap,{className:"h-5 w-5 text-primary"}),jsxRuntimeExports.jsx("h2",{className:"font-mono text-xl font-bold",children:"Train your team on what measurably works"})]}),jsxRuntimeExports.jsx("span",{className:"inline-flex items-center rounded-full border border-dashed border-border px-2.5 py-0.5 text-[10px] font-mono uppercase tracking-wide text-muted-foreground",children:"In development"})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"The same measurement that tunes your harness also knows where each developer hits friction and which workflows actually win. The training companion turns those measured insights into a per-developer learning experience — worked examples from your own sessions, not another to-do feed."})]})})}),jsxRuntimeExports.jsx("section",{className:"py-20 px-4 bg-card",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl",children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-mono font-bold text-center mb-4",children:"One harness. Every agent."}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-center mb-8 max-w-xl mx-auto",children:"Keep a single source of truth and sync it to 25+ instruction formats — full-fidelity, partial, and minimal converters, with reverse parsing to import what you already have."}),jsxRuntimeExports.jsxs("div",{className:"grid gap-6 md:grid-cols-3",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("h3",{className:"font-mono text-sm font-semibold text-primary mb-3 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Shield,{className:"h-4 w-4"})," Full Fidelity"]}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1.5",children:formats.filter(es=>es.tier==="full").map(es=>jsxRuntimeExports.jsx("span",{className:`inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-mono ${tierColors.full}`,children:es.name},es.name))})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("h3",{className:"font-mono text-sm font-semibold text-blue-400 mb-3 flex items-center gap-2",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4"})," Partial"]}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1.5",children:formats.filter(es=>es.tier==="partial").map(es=>jsxRuntimeExports.jsx("span",{className:`inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-mono ${tierColors.partial}`,children:es.name},es.name))})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("h3",{className:"font-mono text-sm font-semibold text-muted-foreground mb-3 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Zap,{className:"h-4 w-4"})," Minimal"]}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1.5",children:formats.filter(es=>es.tier==="minimal").map(es=>jsxRuntimeExports.jsx("span",{className:`inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-mono ${tierColors.minimal}`,children:es.name},es.name))})]})]})]})}),jsxRuntimeExports.jsx("section",{className:"py-20 px-4",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl",children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-mono font-bold text-center mb-4",children:"Access from anywhere"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-center mb-12 max-w-xl mx-auto",children:"Web dashboard, CLI, MCP server, or REST API. Use whichever fits your workflow."}),jsxRuntimeExports.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-4",children:accessMethods.map(es=>jsxRuntimeExports.jsxs("div",{className:"bg-card border border-border rounded-lg p-5 hover:border-primary/30 transition-colors duration-200",children:[jsxRuntimeExports.jsx(es.icon,{className:"h-5 w-5 text-primary mb-3"}),jsxRuntimeExports.jsx("h3",{className:"font-mono text-sm font-semibold mb-1",children:es.title}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:es.description}),jsxRuntimeExports.jsx("code",{className:"block bg-[#0B1120] border border-border rounded px-2.5 py-1.5 font-mono text-xs text-muted-foreground truncate",children:es.code})]},es.title))})]})}),jsxRuntimeExports.jsx("section",{className:"py-16 px-4 bg-card",children:jsxRuntimeExports.jsx("div",{className:"mx-auto max-w-4xl grid grid-cols-2 md:grid-cols-4 gap-8",children:stats.map(es=>jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsx("div",{className:"font-mono text-4xl font-bold text-primary mb-1",children:es.value}),jsxRuntimeExports.jsx("div",{className:"text-sm text-muted-foreground",children:es.label})]},es.label))})}),jsxRuntimeExports.jsx("section",{className:"py-24 px-4",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-2xl text-center",children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-mono font-bold mb-4",children:"Stop tuning your harness by vibes."}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground mb-8",children:"Capture every session, get a verdict on every rule, and let the loop promote what measurably wins — on our cloud or entirely on your machine. Free to start."}),jsxRuntimeExports.jsx(Button,{size:"lg",className:"cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/signup",children:["Get Started Free",jsxRuntimeExports.jsx(ArrowRight,{className:"ml-2 h-4 w-4"})]})})]})}),jsxRuntimeExports.jsx("footer",{className:"border-t border-border py-8 px-4",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"h-1.5 w-1.5 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:"RuleMetric"})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Measure and evolve your agentic harness."})]})})]})}const REDIRECT_DECISION_TIMEOUT_MS=2500;async function getPostAuthRedirect(){try{return(await api("/api/sessions?summary=exists",{timeoutMs:REDIRECT_DECISION_TIMEOUT_MS})).exists?"/sessions":"/connect"}catch{return"/sessions"}}function useSocialAuthProviders(){const[es,$]=reactExports.useState([]),[ts,is]=reactExports.useState(!0);return reactExports.useEffect(()=>{const Kr=new AbortController;return fetchEnabledSocialAuthProviders(Kr.signal).then($).finally(()=>{Kr.signal.aborted||is(!1)}),()=>Kr.abort()},[]),{providers:es,loading:ts}}function GoogleIcon(){return jsxRuntimeExports.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"h-4 w-4",children:[jsxRuntimeExports.jsx("path",{fill:"currentColor",d:"M21.6 12.2c0-.7-.1-1.4-.2-2.1H12v4h5.4a4.6 4.6 0 0 1-2 3v2.6h3.3c1.9-1.8 2.9-4.4 2.9-7.5Z"}),jsxRuntimeExports.jsx("path",{fill:"currentColor",d:"M12 22c2.7 0 5-.9 6.7-2.3l-3.3-2.6c-.9.6-2.1 1-3.4 1a5.9 5.9 0 0 1-5.5-4.1H3.1v2.7A10 10 0 0 0 12 22Z",opacity:".8"}),jsxRuntimeExports.jsx("path",{fill:"currentColor",d:"M6.5 14a6 6 0 0 1 0-3.9V7.4H3.1a10 10 0 0 0 0 9.3L6.5 14Z",opacity:".6"}),jsxRuntimeExports.jsx("path",{fill:"currentColor",d:"M12 6.1c1.5 0 2.8.5 3.9 1.5l2.9-2.9A9.8 9.8 0 0 0 3.1 7.4l3.4 2.7A5.9 5.9 0 0 1 12 6.1Z",opacity:".9"})]})}function OAuthButtons({next:es}){const{signInWithProvider:$}=useAuth(),{providers:ts,loading:is}=useSocialAuthProviders(),[Kr,Qr]=reactExports.useState(null),[ja,Ca]=reactExports.useState(null);if(is)return jsxRuntimeExports.jsx("div",{className:"h-20 animate-pulse rounded-md bg-muted/40","aria-label":"Loading social sign-in options"});if(ts.length===0)return null;async function Aa(Oa){Ca(null),Qr(Oa);try{await $(Oa,es)}catch(Ia){Ca(Ia instanceof Error?Ia.message:"Social sign-in failed"),Qr(null)}}return jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsxs("div",{className:"relative py-1",children:[jsxRuntimeExports.jsx("div",{className:"absolute inset-0 flex items-center","aria-hidden":"true",children:jsxRuntimeExports.jsx("div",{className:"w-full border-t border-border"})}),jsxRuntimeExports.jsx("div",{className:"relative flex justify-center",children:jsxRuntimeExports.jsx("span",{className:"bg-card px-2 text-xs text-muted-foreground",children:"or continue with"})})]}),ja&&jsxRuntimeExports.jsx("p",{role:"alert",className:"text-sm text-destructive",children:ja}),jsxRuntimeExports.jsx("div",{className:"grid gap-2 sm:grid-cols-2",children:SOCIAL_AUTH_PROVIDERS.filter(({id:Oa})=>ts.includes(Oa)).map(({id:Oa,label:Ia})=>jsxRuntimeExports.jsxs(Button,{type:"button",variant:"outline",disabled:Kr!==null,onClick:()=>void Aa(Oa),"aria-label":`Continue with ${Ia}`,children:[Oa==="github"?jsxRuntimeExports.jsx(Github,{className:"h-4 w-4"}):jsxRuntimeExports.jsx(GoogleIcon,{}),Kr===Oa?"Redirecting...":Ia]},Oa))})]})}function Input({className:es,type:$,...ts}){return jsxRuntimeExports.jsx("input",{type:$,"data-slot":"input",className:cn$1("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",es),...ts})}function Label({className:es,...$}){return jsxRuntimeExports.jsx(Root$3,{"data-slot":"label",className:cn$1("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",es),...$})}function LoginPage(){const{signIn:es}=useAuth(),$=useNavigate(),[ts]=useSearchParams(),[is,Kr]=reactExports.useState(""),[Qr,ja]=reactExports.useState(""),[Ca,Aa]=reactExports.useState(""),[Oa,Ia]=reactExports.useState(!1);async function Da(Fa){Fa.preventDefault(),Aa(""),Ia(!0);try{await es(is,Qr);const qa=safeNext(ts.get("next"));if(qa){$(qa,{replace:!0});return}const Ha=await getPostAuthRedirect();$(Ha)}catch(qa){Aa(qa instanceof Error?qa.message:"Login failed")}finally{Ia(!1)}}const Ba=safeNext(ts.get("next")),Ma=Ba?`/signup?next=${encodeURIComponent(Ba)}`:"/signup";return jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsxs(Card,{className:"w-full max-w-sm border-border bg-card",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"RuleMetric"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"text-2xl font-mono mt-2",children:"Sign in"}),jsxRuntimeExports.jsx(CardDescription,{children:"Enter your credentials to continue"})]}),jsxRuntimeExports.jsxs("form",{onSubmit:Da,children:[jsxRuntimeExports.jsxs(CardContent,{className:"space-y-4",children:[Ca&&jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",children:Ca}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"email",children:"Email"}),jsxRuntimeExports.jsx(Input,{id:"email",type:"email",value:is,onChange:Fa=>Kr(Fa.target.value),required:!0,autoComplete:"email",className:"bg-background border-border"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"password",children:"Password"}),jsxRuntimeExports.jsx(Link,{to:"/forgot-password",className:"text-sm font-medium text-muted-foreground hover:text-primary transition-colors",children:"Forgot password?"})]}),jsxRuntimeExports.jsx(Input,{id:"password",type:"password",value:Qr,onChange:Fa=>ja(Fa.target.value),required:!0,autoComplete:"current-password",className:"bg-background border-border"})]})]}),jsxRuntimeExports.jsxs(CardFooter,{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx(Button,{type:"submit",className:"w-full cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90 mt-8",disabled:Oa,children:Oa?"Signing in...":"Sign in"}),jsxRuntimeExports.jsx(OAuthButtons,{next:Ba}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:["Don't have an account?"," ",jsxRuntimeExports.jsx(Link,{to:Ma,className:"text-primary underline",children:"Sign up"})]})]})]})]})})}function SignupPage(){const{signUp:es}=useAuth(),$=useNavigate(),[ts]=useSearchParams(),is=safeNext(ts.get("next")),Kr=is?`/login?next=${encodeURIComponent(is)}`:"/login",[Qr,ja]=reactExports.useState(""),[Ca,Aa]=reactExports.useState(""),[Oa,Ia]=reactExports.useState(""),[Da,Ba]=reactExports.useState(""),[Ma,Fa]=reactExports.useState(!1),[qa,Ha]=reactExports.useState(!1),[Ka,Qa]=reactExports.useState(!1);async function Va(Ya){if(Ya.preventDefault(),Ba(""),Fa(!1),Ca!==Oa){Ba("Passwords do not match");return}if(Ca.length<6){Ba("Password must be at least 6 characters");return}Qa(!0);try{const{needsConfirmation:Wa,alreadyRegistered:el}=await es(Qr,Ca,is??void 0);if(el){Fa(!0);return}if(Wa){Ha(!0);return}if(is){$(is,{replace:!0});return}const tl=await getPostAuthRedirect();$(tl,{replace:!0})}catch(Wa){Ba(Wa instanceof Error?Wa.message:"Signup failed")}finally{Qa(!1)}}return qa?jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsxs(Card,{className:"w-full max-w-sm border-border bg-card",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"RuleMetric"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"font-mono",children:"Check your email"}),jsxRuntimeExports.jsxs(CardDescription,{children:["We sent a confirmation link to ",jsxRuntimeExports.jsx("strong",{children:Qr}),". Click it to activate your account."]})]}),jsxRuntimeExports.jsx(CardFooter,{children:jsxRuntimeExports.jsx(Link,{to:Kr,className:"text-primary underline text-sm",children:"Back to login"})})]})}):jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsxs(Card,{className:"w-full max-w-sm border-border bg-card",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"RuleMetric"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"text-2xl font-mono",children:"Sign up"}),jsxRuntimeExports.jsx(CardDescription,{children:"Create a new account"})]}),jsxRuntimeExports.jsxs("form",{onSubmit:Va,children:[jsxRuntimeExports.jsxs(CardContent,{className:"space-y-4",children:[Da&&jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",children:Da}),Ma&&jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-border bg-muted/40 p-3 text-sm",children:[jsxRuntimeExports.jsx("p",{className:"text-foreground",children:"An account with this email already exists."}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-muted-foreground",children:[jsxRuntimeExports.jsx(Link,{to:Kr,className:"text-primary underline",children:"Sign in"})," ","instead, or"," ",jsxRuntimeExports.jsx(Link,{to:"/forgot-password",className:"text-primary underline",children:"reset your password"})," ","if you've forgotten it."]})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"email",children:"Email"}),jsxRuntimeExports.jsx(Input,{id:"email",type:"email",value:Qr,onChange:Ya=>ja(Ya.target.value),required:!0,autoComplete:"email",className:"bg-background border-border"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"password",children:"Password"}),jsxRuntimeExports.jsx(Input,{id:"password",type:"password",value:Ca,onChange:Ya=>Aa(Ya.target.value),required:!0,minLength:6,autoComplete:"new-password",className:"bg-background border-border"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"confirm-password",children:"Confirm password"}),jsxRuntimeExports.jsx(Input,{id:"confirm-password",type:"password",value:Oa,onChange:Ya=>Ia(Ya.target.value),required:!0,autoComplete:"new-password",className:"bg-background border-border"})]})]}),jsxRuntimeExports.jsxs(CardFooter,{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx(Button,{type:"submit",className:"w-full cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",disabled:Ka,children:Ka?"Creating account...":"Sign up"}),jsxRuntimeExports.jsx(OAuthButtons,{next:is}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:["Already have an account?"," ",jsxRuntimeExports.jsx(Link,{to:Kr,className:"text-primary underline",children:"Sign in"})]})]})]})]})})}function ConfirmPage(){const es=useNavigate(),[$]=useSearchParams(),{session:ts,loading:is}=useAuth(),[Kr,Qr]=reactExports.useState(null);return reactExports.useEffect(()=>{const ja=oauthCallbackError(window.location.hash);if(ja){Qr(ja);return}if(is)return;if(ts){const Aa=window.location.hash;if(Aa.includes("type=recovery")||Aa.includes("type=invite")){es("/reset-password",{replace:!0});return}const Oa=safeNext($.get("next"));Oa?es(Oa,{replace:!0}):getPostAuthRedirect().then(Ia=>{es(Ia,{replace:!0})});return}const Ca=window.location.hash;(!Ca||!Ca.includes("access_token"))&&Qr("Invalid confirmation link")},[ts,is,es,$]),jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsxs(Card,{className:"w-full max-w-sm border-border bg-card",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"RuleMetric"})]}),Kr?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CardTitle,{className:"font-mono",children:"Confirmation failed"}),jsxRuntimeExports.jsx(CardDescription,{children:Kr})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CardTitle,{className:"font-mono",children:"Confirming..."}),jsxRuntimeExports.jsx(CardDescription,{children:"Verifying your email address"})]})]}),Kr&&jsxRuntimeExports.jsxs(CardContent,{className:"flex gap-4 text-sm",children:[jsxRuntimeExports.jsx(Link,{className:"text-primary hover:underline",to:"/login",children:"Try signing in again"}),jsxRuntimeExports.jsx(Link,{className:"text-muted-foreground hover:underline",to:"/signup",children:"Create an account"})]})]})})}const ALLOWED_EDITOR_SCHEMES=new Set(["vscode","vscode-insiders","cursor","windsurf"]),ALLOWED_EXTENSION_IDS=new Set(["rulemetric.rulemetric-vscode"]),mintedNonces=new Set;function ExtensionAuthPage(){const{session:es,loading:$}=useAuth(),[ts]=useSearchParams(),is=ts.get("editor")??"",Kr=ts.get("extension_id")??"",Qr=ts.get("nonce")??"",[ja,Ca]=reactExports.useState(null),[Aa,Oa]=reactExports.useState(!1),[Ia,Da]=reactExports.useState(null),Ba=ALLOWED_EDITOR_SCHEMES.has(is)&&ALLOWED_EXTENSION_IDS.has(Kr)&&/^[A-Za-z0-9_-]{8,128}$/.test(Qr);if(reactExports.useEffect(()=>{var Ma;if(!$&&es){if(!Ba){Ca("Invalid sign-in request — missing or malformed editor/extension/nonce parameters.");return}mintedNonces.has(Qr)||(mintedNonces.add(Qr),apiPost("/api/auth/extension/code",{email:((Ma=es.user)==null?void 0:Ma.email)??null,editor:is}).then(({code:Fa})=>{const qa=`${is}://${Kr}/auth?nonce=${encodeURIComponent(Qr)}&code=${encodeURIComponent(Fa)}`;Da(qa),window.location.href=qa,Oa(!0)}).catch(Fa=>{mintedNonces.delete(Qr),Ca(Fa instanceof Error?Fa.message:"Failed to mint auth code")}))}},[$,es,is,Kr,Qr,Ba]),$)return jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center",children:jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Loading…"})});if(!es){const Ma=ts.toString(),Fa=`/auth/extension${Ma?`?${Ma}`:""}`;return jsxRuntimeExports.jsx(Navigate,{to:`/login?next=${encodeURIComponent(Fa)}`,replace:!0})}return jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsxs(Card,{className:"w-full max-w-md border-border bg-card",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsx(CardTitle,{children:"Connecting to your editor…"}),jsxRuntimeExports.jsx(CardDescription,{children:ja?"Something went wrong":Aa?"We've handed off to your editor. You can close this tab.":"Generating a one-time sign-in code."})]}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:ja?jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",children:ja}):Aa&&Ia?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"If your editor didn't open automatically, click below."}),jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"default",children:jsxRuntimeExports.jsx("a",{href:Ia,children:"Open in editor"})})]}):null})]})})}function ForgotPasswordPage(){const{resetPassword:es}=useAuth(),[$,ts]=reactExports.useState(""),[is,Kr]=reactExports.useState(""),[Qr,ja]=reactExports.useState(!1),[Ca,Aa]=reactExports.useState(!1);async function Oa(Ia){Ia.preventDefault(),Kr(""),Aa(!0);try{await es($),ja(!0)}catch(Da){Kr(Da instanceof Error?Da.message:"Failed to send reset email")}finally{Aa(!1)}}return Qr?jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsxs(Card,{className:"w-full max-w-sm border-border bg-card",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"RuleMetric"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"font-mono",children:"Check your email"}),jsxRuntimeExports.jsxs(CardDescription,{children:["We sent a password reset link to ",jsxRuntimeExports.jsx("strong",{children:$}),"."]})]}),jsxRuntimeExports.jsx(CardFooter,{children:jsxRuntimeExports.jsx(Link,{to:"/login",className:"text-primary underline text-sm",children:"Back to login"})})]})}):jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsxs(Card,{className:"w-full max-w-sm border-border bg-card",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"RuleMetric"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"text-2xl font-mono",children:"Reset password"}),jsxRuntimeExports.jsx(CardDescription,{children:"Enter your email and we'll send you a reset link"})]}),jsxRuntimeExports.jsxs("form",{onSubmit:Oa,children:[jsxRuntimeExports.jsxs(CardContent,{className:"space-y-4",children:[is&&jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",children:is}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"email",children:"Email"}),jsxRuntimeExports.jsx(Input,{id:"email",type:"email",value:$,onChange:Ia=>ts(Ia.target.value),required:!0,autoComplete:"email",className:"bg-background border-border"})]})]}),jsxRuntimeExports.jsxs(CardFooter,{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx(Button,{type:"submit",className:"w-full cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",disabled:Ca,children:Ca?"Sending...":"Send reset link"}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:["Remember your password?"," ",jsxRuntimeExports.jsx(Link,{to:"/login",className:"text-primary underline",children:"Sign in"})]})]})]})]})})}const verifyPromises=new Map;function ResetPasswordPage(){const{updatePassword:es,session:$,loading:ts}=useAuth(),is=useNavigate(),[Kr,Qr]=reactExports.useState(""),[ja,Ca]=reactExports.useState(""),[Aa,Oa]=reactExports.useState(""),[Ia,Da]=reactExports.useState(!1),[Ba,Ma]=reactExports.useState(()=>{const Ka=new URLSearchParams(window.location.search);return!!(Ka.get("token_hash")&&Ka.get("type"))}),[Fa,qa]=reactExports.useState(null);if(reactExports.useEffect(()=>{const Ka=new URLSearchParams(window.location.search),Qa=Ka.get("token_hash"),Va=Ka.get("type");if(!Qa||!Va)return;let Ya=!1,Wa=verifyPromises.get(Qa);return Wa||(Wa=supabase.auth.verifyOtp({token_hash:Qa,type:Va}),verifyPromises.set(Qa,Wa)),Wa.then(({error:el})=>{Ya||(el&&qa(el.message||"This reset link is invalid or has expired."),window.history.replaceState({},"","/reset-password"),Ma(!1))}),()=>{Ya=!0}},[]),Ba||ts)return jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsx(Card,{className:"w-full max-w-sm border-border bg-card",children:jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"RuleMetric"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"font-mono",children:"Verifying..."}),jsxRuntimeExports.jsx(CardDescription,{children:"Checking your reset link"})]})})});if(Fa||!$)return jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsxs(Card,{className:"w-full max-w-sm border-border bg-card",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"RuleMetric"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"font-mono",children:"Invalid or expired link"}),jsxRuntimeExports.jsx(CardDescription,{children:Fa??"This password reset link is no longer valid. Please request a new one."})]}),jsxRuntimeExports.jsx(CardFooter,{children:jsxRuntimeExports.jsx(Link,{to:"/forgot-password",className:"text-primary underline text-sm",children:"Request new reset link"})})]})});async function Ha(Ka){if(Ka.preventDefault(),Oa(""),Kr!==ja){Oa("Passwords do not match");return}if(Kr.length<6){Oa("Password must be at least 6 characters");return}Da(!0);try{await es(Kr),is("/sessions",{replace:!0})}catch(Qa){Oa(Qa instanceof Error?Qa.message:"Failed to update password")}finally{Da(!1)}}return jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:jsxRuntimeExports.jsxs(Card,{className:"w-full max-w-sm border-border bg-card",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"RuleMetric"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"text-2xl font-mono",children:"Set password"}),jsxRuntimeExports.jsx(CardDescription,{children:"Secure your account with a strong password"})]}),jsxRuntimeExports.jsxs("form",{onSubmit:Ha,children:[jsxRuntimeExports.jsxs(CardContent,{className:"space-y-4",children:[Aa&&jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",children:Aa}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"password",children:"Password"}),jsxRuntimeExports.jsx(Input,{id:"password",type:"password",value:Kr,onChange:Ka=>Qr(Ka.target.value),required:!0,minLength:6,autoComplete:"new-password",className:"bg-background border-border"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"confirm-password",children:"Confirm password"}),jsxRuntimeExports.jsx(Input,{id:"confirm-password",type:"password",value:ja,onChange:Ka=>Ca(Ka.target.value),required:!0,autoComplete:"new-password",className:"bg-background border-border"})]})]}),jsxRuntimeExports.jsx(CardFooter,{children:jsxRuntimeExports.jsx(Button,{type:"submit",className:"w-full cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",disabled:Ia,children:Ia?"Saving...":"Save password"})})]})]})})}function useInstructions(){return useQuery({queryKey:["instructions"],queryFn:()=>apiGet("/api/instructions")})}function useSessions(es={}){const $=new URLSearchParams;es.tool&&$.set("tool",es.tool),es.outcome&&$.set("outcome",es.outcome),es.friction&&$.set("friction",es.friction),es.instructionId&&$.set("instructionId",es.instructionId),es.hasAnalysis&&$.set("hasAnalysis","true"),es.projectPath&&$.set("projectPath",es.projectPath),es.projectId&&$.set("projectId",es.projectId),es.limit&&$.set("limit",String(es.limit)),es.hideEmpty===!1&&$.set("hideEmpty","false");const ts=$.toString();return useQuery({queryKey:["sessions",es],queryFn:()=>apiGet(`/api/sessions${ts?`?${ts}`:""}`),refetchInterval:POLL.LIVE})}function useSessionCount(es={}){const $=new URLSearchParams({summary:"count"});return es.tool&&$.set("tool",es.tool),es.projectPath&&$.set("projectPath",es.projectPath),es.projectId&&$.set("projectId",es.projectId),es.hideEmpty===!1&&$.set("hideEmpty","false"),useQuery({queryKey:["sessions","count",es],queryFn:()=>apiGet(`/api/sessions?${$.toString()}`),refetchInterval:POLL.LIVE})}function useSession(es){return useQuery({queryKey:["sessions",es],queryFn:()=>apiGet(`/api/sessions/${es}`),enabled:!!es,refetchInterval:POLL.LIVE})}const PAGE_SIZE$2=100;function useSessionEventsInfinite(es){return useInfiniteQuery({queryKey:["sessions",es,"events-infinite"],queryFn:({pageParam:$=0})=>apiGet(`/api/sessions/${es}/events?limit=${PAGE_SIZE$2}&offset=${$}&sort=desc`),initialPageParam:0,getNextPageParam:($,ts,is)=>$.length===PAGE_SIZE$2?is+PAGE_SIZE$2:void 0,enabled:!!es,refetchInterval:POLL.LIVE})}function useAnalyzeSession(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost(`/api/sessions/${$}/analyze`,{}),onSuccess:($,ts)=>{es.invalidateQueries({queryKey:["sessions",ts]})}})}function useInsightsJob(es){const $=useQueryClient();return useQuery({queryKey:["insights-job",es],queryFn:()=>apiGet(`/api/insights-jobs/${es}`),enabled:!!es,refetchInterval:ts=>{var Kr;const is=(Kr=ts.state.data)==null?void 0:Kr.status;return is==="completed"||is==="failed"||is==="cancelled"?(is==="completed"&&$.invalidateQueries({queryKey:["sessions"]}),!1):2e3}})}function useDeleteSession(){const es=useQueryClient();return useMutation({mutationFn:$=>apiDelete(`/api/sessions/${$}`),onSuccess:()=>{es.invalidateQueries({queryKey:["sessions"]})}})}function useSkillsRegistry(){return useQuery({queryKey:["skills-registry"],queryFn:()=>apiGet("/api/skills"),staleTime:300*1e3})}function useSkill(es){return useQuery({queryKey:["skills-registry",es],queryFn:()=>apiGet(`/api/skills/${es}`),enabled:!!es})}function CopyButton$2({text:es}){const{copied:$,copy:ts}=useCopyToClipboard();return jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",className:"cursor-pointer h-7 text-xs",onClick:async is=>{is.stopPropagation(),await ts(es)||ue$1.error("Couldn't copy to clipboard",{description:"Select the text and copy it manually."})},children:$?jsxRuntimeExports.jsx(Check,{className:"h-3 w-3"}):jsxRuntimeExports.jsx(Copy,{className:"h-3 w-3"})})}function RunCommandButton({prompt:es,label:$="Copy"}){const{copied:ts,copy:is}=useCopyToClipboard(),Qr=/^(claude|rulemetric|pnpm|npm|npx|git)\s/.test(es.trim())?es.trim():`claude -p '${es.replace(/'/g,"'\\''")}'`;return jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",className:"cursor-pointer h-7 text-xs gap-1.5 border-teal-500/30 text-teal-600 hover:bg-teal-500/10 hover:text-teal-600",onClick:async ja=>{ja.stopPropagation(),await is(Qr)||ue$1.error("Couldn't copy to clipboard",{description:"Select the text and copy it manually."})},title:`Copy command: ${Qr.slice(0,80)}...`,children:[ts?jsxRuntimeExports.jsx(Check,{className:"h-3 w-3"}):jsxRuntimeExports.jsx(Copy,{className:"h-3 w-3"}),ts?"Copied!":$]})}function TooltipProvider({delayDuration:es=0,...$}){return jsxRuntimeExports.jsx(Provider,{"data-slot":"tooltip-provider",delayDuration:es,...$})}function Tooltip({...es}){return jsxRuntimeExports.jsx(Root3,{"data-slot":"tooltip",...es})}function TooltipTrigger({...es}){return jsxRuntimeExports.jsx(Trigger$2,{"data-slot":"tooltip-trigger",...es})}function TooltipContent({className:es,sideOffset:$=0,children:ts,...is}){return jsxRuntimeExports.jsx(Portal$1,{children:jsxRuntimeExports.jsxs(Content2$1,{"data-slot":"tooltip-content",sideOffset:$,className:cn$1("z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",es),...is,children:[ts,jsxRuntimeExports.jsx(Arrow2,{className:"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground"})]})})}function canonicalToolKey(es){return es.toLowerCase().replace(/-/g,"_")}const TOOL_LABELS={claude_code:"Claude Code",cursor:"Cursor",vscode_copilot:"VS Code Copilot",copilot:"Copilot",copilot_cli:"Copilot CLI",copilot_agent:"Copilot Agent",github_copilot_chat:"GitHub Copilot Chat",github_copilot_fim:"GitHub Copilot FIM",codex:"Codex",aider:"Aider",gemini:"Gemini",windsurf:"Windsurf",cline:"Cline",openclaw:"OpenClaw",opencode:"OpenCode",antigravity:"Antigravity",rulemetric_mcp:"RuleMetric MCP"},TOOLS_WITHOUT_WORKING_ANALYSIS=new Set([]);function canAnalyzeWithToolCli(es){return es?!TOOLS_WITHOUT_WORKING_ANALYSIS.has(canonicalToolKey(es)):!0}function displayTool(es){const $=canonicalToolKey(es);return TOOL_LABELS[$]?TOOL_LABELS[$]:$.split("_").filter(Boolean).map(ts=>ts.charAt(0).toUpperCase()+ts.slice(1)).join(" ")}function captureToolKey(es){return canonicalToolKey(es)}function formatUsd(es){return es>=1e3?`$${(es/1e3).toFixed(2)}K`:es>=1?`$${es.toFixed(2)}`:es>0?`$${es.toFixed(3)}`:"$0.00"}function formatTokens$1(es){return es?es>=1e6?`${(es/1e6).toFixed(1)}M`:es>=1e3?`${(es/1e3).toFixed(0)}K`:String(es):"0"}function Row$1({label:es,usd:$,detail:ts}){return jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-xs",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:es}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 font-mono",children:[jsxRuntimeExports.jsx("span",{children:formatUsd($)}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground w-20 text-right",children:ts})]})]})}function CostBreakdownCard({totalUsd:es,breakdown:$,inputTokens:ts=0,outputTokens:is=0,cacheReadTokens:Kr=0,cacheWriteTokens:Qr=0,byModel:ja,byTool:Ca}){const Aa=$??{inputUsd:0,outputUsd:0,cacheReadUsd:0,cacheWriteUsd:0},Oa=ja?Object.entries(ja).sort(([,Da],[,Ba])=>Ba.cost_usd-Da.cost_usd):[],Ia=Ca?Object.entries(Ca).sort(([,Da],[,Ba])=>Ba.cost_usd-Da.cost_usd):[];return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-3",children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(Zap,{className:"h-4 w-4 text-primary"}),jsxRuntimeExports.jsx("span",{children:"Estimated cost"}),jsxRuntimeExports.jsxs("span",{className:"ml-auto font-mono text-base",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground mr-1",children:"≈"}),formatUsd(es)]})]})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Row$1,{label:"Input",usd:Aa.inputUsd,detail:`${formatTokens$1(ts)} tok`}),jsxRuntimeExports.jsx(Row$1,{label:"Output",usd:Aa.outputUsd,detail:`${formatTokens$1(is)} tok`}),jsxRuntimeExports.jsx(Row$1,{label:"Cache read",usd:Aa.cacheReadUsd,detail:Kr>0?`${formatTokens$1(Kr)} tok`:"no cache"}),jsxRuntimeExports.jsx(Row$1,{label:"Cache write",usd:Aa.cacheWriteUsd,detail:Qr>0?`${formatTokens$1(Qr)} tok`:"no cache"})]}),Ia.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"border-t border-border"}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"By tool"}),Ia.map(([Da,Ba])=>{const Ma=es>0?Math.round(Ba.cost_usd/es*100):0;return jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-xs",children:[jsxRuntimeExports.jsx("span",{className:"font-mono truncate max-w-[55%]",children:displayTool(Da)}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 font-mono",children:[jsxRuntimeExports.jsx("span",{children:formatUsd(Ba.cost_usd)}),jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground w-8 text-right",children:[Ma,"%"]})]})]},Da)})]})]}),Oa.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"border-t border-border"}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"By model"}),Oa.map(([Da,Ba])=>{const Ma=es>0?Math.round(Ba.cost_usd/es*100):0;return jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-xs",children:[jsxRuntimeExports.jsx("span",{className:"font-mono truncate max-w-[55%]",children:Da}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 font-mono",children:[jsxRuntimeExports.jsx("span",{children:formatUsd(Ba.cost_usd)}),jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground w-8 text-right",children:[Ma,"%"]})]})]},Da)})]})]}),jsxRuntimeExports.jsx("div",{className:"border-t border-border"}),jsxRuntimeExports.jsx(TooltipProvider,{children:jsxRuntimeExports.jsxs(Tooltip,{children:[jsxRuntimeExports.jsx(TooltipTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs("p",{className:"text-[10px] text-muted-foreground cursor-help",children:[jsxRuntimeExports.jsx("span",{className:"mr-1",children:"≈"}),"estimated · derived from token usage × current published rates"]})}),jsxRuntimeExports.jsx(TooltipContent,{className:"max-w-xs",children:jsxRuntimeExports.jsx("p",{className:"text-xs",children:"Computed from each model's token usage × its provider's published pricing (Anthropic, OpenAI, Google, and others). May differ from actual billing by ±5% due to per-request rounding; unrecognised models fall back to a Sonnet-equivalent estimate."})})]})})]})]})}const GLOSSARY={anchorSet:"A set of runs a human has reviewed — for each, you said whether the AI judge graded it correctly. These 'anchors' measure how trustworthy the judge is; no calibrated verdict is shown until you've collected enough.",humanLabeledRuns:"Runs where you've reviewed the AI judge's grade (approve = judge was right, reject = judge was wrong). Each review is one anchor. Only you can add these — an AI can't grade its own grader.",pilotTarget:"How many human-labeled runs are needed before a bias-corrected verdict is claimed (default 50), with a minimum in each of the with/without groups.",cohort:"The two groups being compared: runs WITH the instruction applied vs WITHOUT it. Each group needs enough labeled runs on its own for the comparison to hold.",mde:"Minimum Detectable Effect — the smallest with-vs-without difference this sample size could reliably detect. Lower is better; once MDE ≤ your target effect the result is 'powered'.",targetEffect:"The size of with-vs-without difference you care about detecting (default ±20 percentage points). The result is 'powered' once the MDE drops to this or below.",powered:"The sample is now precise enough to detect your target effect (MDE ≤ target). This is about PRECISION only — it does NOT mean the effect is real, nor that the AI judge has been calibrated yet.",adequate:"Enough human labels have been collected — across both groups and above the pilot floor — that a bias-corrected verdict can be published at the required precision.",judge:"The LLM that grades each eval output against its expectations. Fast and cheap, but it can be biased — which is exactly what your human labels measure and correct.",rectifier:"The AI judge's measured bias: the average gap between your human labels and the judge's own grades. It's subtracted back out to correct the judge's scores across every unlabeled run.",ppi:"Prediction-Powered Inference — grade everything cheaply with the AI judge, then correct its bias using a small RANDOM set of human labels. Gives tighter results than human-labels-alone.",discrimination:"Whether each test case actually responds to the instruction. A case 'discriminates' if its pass rate MOVES between the with- and without-instruction runs; one that always passes or always fails measures nothing.",discriminate:"This case's pass rate moves between with- and without-instruction runs, so it carries real signal about whether the instruction helps.",flat:"This case passes (or fails) at the same rate with and without the instruction — it measures nothing, and adding more runs of it will never help. Replace it.",unpaired:"This case has runs in only one group (e.g. every baseline run failed), so no with-vs-without comparison can be made for it.",separation:"The 'Δ' — with% minus without% for a case. The larger it is, the more sensitive the case is to the instruction.",significance:"Whether the measured effect is statistically distinguishable from zero — i.e. its confidence interval excludes 0. Without this, an apparent difference could just be noise.",confidenceInterval:"The range the true value most likely falls within. A wider interval means more uncertainty; it narrows as you collect more data.",delta:"The difference between the two conditions being compared (e.g. with-instruction pass rate minus without-instruction pass rate). Positive = the instruction helped.",verdict:"The overall read on whether an instruction helps, hurts, or shows no measurable effect — shown only once there's enough data to say honestly (otherwise 'insufficient data').",outcome:"An AI-graded score for how a real captured session went (from clean success to abandoned). It's the signal the observational effect estimate is built from.",totalSessionHours:"Every session's own length, added together. One session's length is the time from its first captured event to its last, so waiting and thinking inside a session count — it is elapsed time, not billed or active time. Sessions you ran side by side are each counted in full, so this total can exceed the hours on the clock: two sessions running the same hour contribute two hours, not one.",sessionSpan:"One session's length: last captured event minus the first. Idle stretches inside the session are included, so a session you left open and came back to counts the whole gap.",burnRate:"How fast you're consuming a rate-limit window relative to time elapsed — >100% means you're on track to hit the cap before the window resets.",rateLimitWindow:"A rolling period (e.g. 5-hour or weekly) over which a usage cap applies. Usage resets when the window rolls over."};function InfoTip({term:es,content:$,children:ts,className:is,size:Kr=13,plain:Qr=!1}){const ja=$??(es?GLOSSARY[es]:null);if(!ja)return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:ts});const Ca=ts!=null?jsxRuntimeExports.jsx("span",{tabIndex:0,className:cn$1("cursor-help rounded-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",!Qr&&"underline decoration-dotted decoration-muted-foreground/50 underline-offset-2",is),children:ts}):jsxRuntimeExports.jsx("span",{tabIndex:0,"aria-label":"More information",className:cn$1("inline-flex shrink-0 items-center justify-center align-middle text-muted-foreground/60 transition-colors hover:text-foreground focus-visible:outline-none focus-visible:text-foreground cursor-help",is),children:jsxRuntimeExports.jsx(Info,{style:{width:Kr,height:Kr},"aria-hidden":!0})});return jsxRuntimeExports.jsx(TooltipProvider,{delayDuration:150,children:jsxRuntimeExports.jsxs(Tooltip,{children:[jsxRuntimeExports.jsx(TooltipTrigger,{asChild:!0,children:Ca}),jsxRuntimeExports.jsx(TooltipContent,{className:"max-w-[19rem] whitespace-normal text-xs font-normal leading-relaxed",children:ja})]})})}function activatable(es){return{role:"button",tabIndex:0,onClick:es,onKeyDown:$=>{($.key==="Enter"||$.key===" ")&&($.preventDefault(),es())}}}const FRIENDLY_LABELS={debug_investigate:"Debug/Investigate",implement_feature:"Implement Feature",fix_bug:"Fix Bug",write_script_tool:"Write Script/Tool",refactor_code:"Refactor Code",configure_system:"Configure System",create_pr_commit:"Create PR/Commit",understand_codebase:"Understand Codebase",write_tests:"Write Tests",write_docs:"Write Docs",analyze_data:"Analyze Data",deploy_infra:"Deploy/Infra",warmup_minimal:"Cache Warmup",fully_achieved:"Fully Achieved",mostly_achieved:"Mostly Achieved",partially_achieved:"Partially Achieved",not_achieved:"Not Achieved",unclear_from_transcript:"Unclear",frustrated:"Frustrated",dissatisfied:"Dissatisfied",likely_satisfied:"Likely Satisfied",satisfied:"Satisfied",happy:"Happy",unsure:"Unsure",single_task:"Single Task",multi_task:"Multi Task",iterative_refinement:"Iterative Refinement",exploration:"Exploration",quick_question:"Quick Question",unhelpful:"Unhelpful",slightly_helpful:"Slightly Helpful",very_helpful:"Very Helpful",essential:"Essential",moderately_helpful:"Moderately Helpful",misunderstood_request:"Misunderstood Request",wrong_approach:"Wrong Approach",buggy_code:"Buggy Code",user_rejected_action:"User Rejected Action",excessive_changes:"Excessive Changes",wrong_file_or_location:"Wrong File/Location",slow_or_verbose:"Slow/Verbose",tool_failed:"Tool Failed",claude_code:"Claude Code",cursor:"Cursor",vscode_copilot:"VS Code Copilot",copilot_cli:"Copilot CLI",antigravity:"Antigravity",github_copilot_chat:"GitHub Copilot Chat",github_copilot_fim:"GitHub Copilot FIM"};function friendlyLabel(es){return FRIENDLY_LABELS[es]||es.replace(/_/g," ").replace(/\b\w/g,$=>$.toUpperCase())}function StatCard$2({icon:es,label:$,value:ts,sub:is,info:Kr}){return jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{className:"pt-6",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"rounded-lg bg-primary/10 p-2",children:jsxRuntimeExports.jsx(es,{className:"h-4 w-4 text-primary"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-2xl font-bold font-mono",children:ts}),jsxRuntimeExports.jsxs("p",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[$,Kr&&jsxRuntimeExports.jsx(InfoTip,{term:Kr,size:12})]}),is&&jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:is})]})]})})})}function HorizontalBar({items:es,maxItems:$=8,onItemClick:ts}){const is=Object.entries(es).sort(([,Qr],[,ja])=>ja-Qr).slice(0,$);if(is.length===0)return jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No data"});const Kr=is[0][1];return jsxRuntimeExports.jsx("div",{className:"space-y-2",children:is.map(([Qr,ja])=>jsxRuntimeExports.jsxs("div",{className:`space-y-1 ${ts?"cursor-pointer hover:bg-muted/50 rounded px-1 -mx-1 py-0.5":""}`,...ts?activatable(()=>ts(Qr)):{},children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-xs",children:[jsxRuntimeExports.jsx("span",{className:"font-mono truncate max-w-[200px]",children:friendlyLabel(Qr)}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground font-mono",children:(ja??0).toLocaleString()})]}),jsxRuntimeExports.jsx("div",{className:"h-2 rounded-full bg-muted overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"h-full rounded-full bg-primary transition-all",style:{width:`${ja/Kr*100}%`}})})]},Qr))})}function HourChart({hours:es}){const $=new Array(24).fill(0);for(const is of es)$[is]++;const ts=Math.max(...$,1);return jsxRuntimeExports.jsx("div",{className:"flex items-end gap-0.5 h-20",children:$.map((is,Kr)=>jsxRuntimeExports.jsx("div",{className:"flex-1 bg-primary/60 rounded-t hover:bg-primary transition-colors cursor-default",style:{height:`${is/ts*100}%`,minHeight:is>0?2:0},title:`${Kr}:00 — ${is} messages`},Kr))})}function formatDurationSec(es){return es<60?`${Math.round(es)}s`:es<3600?`${Math.round(es/60)}m`:`${(es/3600).toFixed(1)}h`}function ResponseTimeChart({histogram:es}){const $=Object.entries(es),ts=Math.max(...$.map(([,is])=>is),1);return jsxRuntimeExports.jsx("div",{className:"space-y-1.5",children:$.map(([is,Kr])=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[jsxRuntimeExports.jsx("span",{className:"font-mono text-muted-foreground w-14 text-right shrink-0",children:is}),jsxRuntimeExports.jsx("div",{className:"flex-1 h-4 bg-muted rounded overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"h-full bg-primary/70 rounded transition-all",style:{width:`${Kr/ts*100}%`}})}),jsxRuntimeExports.jsx("span",{className:"font-mono text-muted-foreground w-8 text-right",children:Kr})]},is))})}function OverviewTab({data:es}){const $=es.estimated_cost_usd??0,ts=es.truncated??!1,is=es.response_time,Kr=es.parallel_sessions,Qr=es.tools_used,ja=es.tool_error_categories??{},Ca=es.total_interruptions??0,Aa=es.sessions_with_meta??es.total_sessions,Oa=es.sessions_using_task_agent??0,Ia=es.sessions_using_mcp??0;return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4",children:[jsxRuntimeExports.jsx(StatCard$2,{icon:MessageSquare,label:"Messages",value:(es.total_messages??0).toLocaleString(),sub:`${es.messages_per_day??0}/day avg`}),jsxRuntimeExports.jsx(StatCard$2,{icon:CodeXml,label:"Lines Changed",value:`+${(es.total_lines_added??0).toLocaleString()}`,sub:`-${(es.total_lines_removed??0).toLocaleString()} removed`}),jsxRuntimeExports.jsx(StatCard$2,{icon:CodeXml,label:"Files Modified",value:(es.total_files_modified??0).toLocaleString()}),jsxRuntimeExports.jsx(StatCard$2,{icon:ChartColumn,label:"Days Active",value:es.days_active,sub:`${es.total_sessions} sessions`}),jsxRuntimeExports.jsx(StatCard$2,{icon:GitCommitHorizontal,label:"Git Commits",value:es.git_commits,sub:`${es.git_pushes} pushes`})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[$>0&&jsxRuntimeExports.jsxs("div",{className:"md:col-span-2 space-y-2",children:[jsxRuntimeExports.jsx(CostBreakdownCard,{totalUsd:$,breakdown:es.estimated_cost_breakdown,inputTokens:es.total_input_tokens,outputTokens:es.total_output_tokens,cacheReadTokens:es.total_cache_read_tokens,cacheWriteTokens:es.total_cache_write_tokens,byModel:es.estimated_cost_by_model}),ts&&jsxRuntimeExports.jsxs("p",{className:"flex items-center gap-1.5 text-xs text-amber-600",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-3 w-3 shrink-0"}),"Computed from your 500 most-recent sessions — spend and token totals are a floor, not a complete sum."]})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 gap-4",children:[jsxRuntimeExports.jsx(StatCard$2,{icon:Clock,label:"Total Session Hours",info:"totalSessionHours",value:Math.round(es.total_duration_hours).toLocaleString(),sub:[`summed over ${Aa.toLocaleString()} sessions`,Ca>0?`${Ca} interruptions`:null].filter(Boolean).join(" · ")}),Oa>0&&jsxRuntimeExports.jsx(StatCard$2,{icon:Zap,label:"Task Agents",value:Oa,sub:"sessions"}),Ia>0&&jsxRuntimeExports.jsx(StatCard$2,{icon:Zap,label:"MCP Sessions",value:Ia,sub:"sessions"})]})]}),Kr&&Kr.events>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Parallel Sessions"})}),jsxRuntimeExports.jsxs(CardContent,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-8",children:[jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsx("p",{className:"text-2xl font-bold font-mono",children:Kr.events}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"overlap events"})]}),jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsx("p",{className:"text-2xl font-bold font-mono",children:Kr.sessions_involved}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"sessions involved"})]}),jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsxs("p",{className:"text-2xl font-bold font-mono",children:[es.total_sessions>0?Math.round(Kr.sessions_involved/es.total_sessions*100):0,"%"]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"of sessions"})]})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"Detected when messages from different sessions overlap within 30-minute windows."})]})]}),Qr&&Object.keys(Qr).length>1&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"AI Tools Used"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(HorizontalBar,{items:Qr})})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[is&&is.total_samples>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"User Response Time Distribution"}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:["Median: ",formatDurationSec(is.median_seconds)," · Avg: ",formatDurationSec(is.avg_seconds)," · ",is.total_samples," samples"]})]}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(ResponseTimeChart,{histogram:is.histogram})})]}),es.message_hours.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Messages by Time of Day (UTC)"})}),jsxRuntimeExports.jsxs(CardContent,{children:[jsxRuntimeExports.jsx(HourChart,{hours:es.message_hours}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between text-[10px] text-muted-foreground mt-1 font-mono",children:[jsxRuntimeExports.jsx("span",{children:"0:00"}),jsxRuntimeExports.jsx("span",{children:"6:00"}),jsxRuntimeExports.jsx("span",{children:"12:00"}),jsxRuntimeExports.jsx("span",{children:"18:00"}),jsxRuntimeExports.jsx("span",{children:"23:00"})]})]})]})]}),Object.keys(ja).length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4 text-red-500"}),"Tool Error Encounters"]})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(HorizontalBar,{items:ja})})]})]})}function ToolsTab({data:es}){return jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Tool Usage"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(HorizontalBar,{items:es.tool_counts,maxItems:12})})]}),jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Languages"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(HorizontalBar,{items:es.languages})})]}),jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Feature Usage"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx("div",{className:"space-y-3",children:[{label:"Task Agents",value:es.sessions_using_task_agent},{label:"MCP Servers",value:es.sessions_using_mcp}].map($=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-sm",children:$.label}),jsxRuntimeExports.jsxs(Badge,{variant:$.value>0?"default":"outline",children:[$.value," sessions"]})]},$.label))})})]})]})}function QualityTab({data:es,emptyAction:$}){const ts=useNavigate(),is=[{key:"goal_categories",title:"Goal Categories",items:es.goal_categories??{}},{key:"outcomes",title:"Outcomes",items:es.outcomes??{},onClick:Kr=>ts(`/sessions?outcome=${Kr}`)},{key:"satisfaction",title:"User Satisfaction",items:es.satisfaction??{}},{key:"session_types",title:"Session Types",items:es.session_types??{}},{key:"friction",title:"Friction Points",items:es.friction??{},icon:TriangleAlert,onClick:Kr=>ts(`/sessions?friction=${Kr}`)}].filter(Kr=>Object.keys(Kr.items).length>0);return is.length===0?jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsxs(CardContent,{className:"pt-6 space-y-3",children:[jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:["No quality data yet. Session analysis runs automatically on your local worker — make sure ",jsxRuntimeExports.jsx("code",{className:"text-xs bg-muted px-1 py-0.5 rounded font-mono",children:"rulemetric evals agent"})," is running, then use Generate Recommendations to analyze recent sessions."]}),$]})}):jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:is.map(Kr=>jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:Kr.title})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(HorizontalBar,{items:Kr.items,onItemClick:Kr.onClick})})]},Kr.key))})}function GenerateInsightsButton({idleLabel:es="Generate Insights",successLabel:$="Insights queued!",className:ts}={}){const is=useMutation({mutationFn:()=>apiPost("/api/insights-jobs/regenerate-all",{})});return jsxRuntimeExports.jsx(Button,{size:"sm",variant:"outline",className:cn$1("cursor-pointer",ts),onClick:()=>is.mutate(),disabled:is.isPending||is.isSuccess,children:is.isPending?"Queuing...":is.isSuccess?$:es})}function SkillDownloadButton({skillId:es,content:$}){return jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",className:"cursor-pointer h-7 text-xs gap-1.5 border-primary/30 text-primary hover:bg-primary/10",onClick:ts=>{ts.stopPropagation();const is=new Blob([$],{type:"text/markdown"}),Kr=URL.createObjectURL(is),Qr=document.createElement("a");Qr.href=Kr,Qr.download=`${es}.md`,Qr.click(),URL.revokeObjectURL(Kr)},children:[jsxRuntimeExports.jsx(Download,{className:"h-3 w-3"}),"Download"]})}function SuggestionsTab({rec:es,isAuto:$}){var Aa,Oa,Ia;const{data:ts}=useSkillsRegistry(),Kr=es.recommended_skills??[],Qr=((Aa=es.suggestions)==null?void 0:Aa.features_to_try)??[],ja=((Oa=es.suggestions)==null?void 0:Oa.usage_patterns)??[],Ca=((Ia=es.on_the_horizon)==null?void 0:Ia.opportunities)??[];return Qr.length===0&&ja.length===0&&Ca.length===0&&Kr.length===0?jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsxs(CardContent,{className:"pt-6 space-y-3",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No suggestions yet. Generate insights to get recommendations from your sessions."}),jsxRuntimeExports.jsx(GenerateInsightsButton,{})]})}):jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[$&&jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-border bg-muted/30 px-4 py-2",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Auto-generated from your session data. Generate full AI-powered recommendations for deeper insights."}),jsxRuntimeExports.jsx(GenerateInsightsButton,{idleLabel:"Generate Full Insights",successLabel:"Queued!",className:"text-xs ml-4 shrink-0"})]}),Qr.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(Lightbulb,{className:"h-4 w-4 text-blue-500"}),"Features to Try"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:Qr.map((Da,Ba)=>jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:Da.feature}),Da.example_code&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(RunCommandButton,{prompt:Da.example_code,label:"Run"}),jsxRuntimeExports.jsx(CopyButton$2,{text:Da.example_code})]})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Da.why_for_you}),Da.example_code&&jsxRuntimeExports.jsx("pre",{className:"mt-2 rounded bg-[#0B1120] p-2 text-xs font-mono overflow-x-auto text-muted-foreground",children:Da.example_code})]},Ba))})]}),ja.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(MessageSquare,{className:"h-4 w-4 text-cyan-500"}),"Usage Patterns"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:ja.map((Da,Ba)=>jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:Da.title}),Da.copyable_prompt&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(RunCommandButton,{prompt:Da.copyable_prompt,label:"Run"}),jsxRuntimeExports.jsx(CopyButton$2,{text:Da.copyable_prompt})]})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Da.suggestion}),Da.copyable_prompt&&jsxRuntimeExports.jsx("pre",{className:"mt-2 rounded bg-[#0B1120] p-2 text-xs font-mono overflow-x-auto text-muted-foreground",children:Da.copyable_prompt})]},Ba))})]}),Ca.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(TrendingUp,{className:"h-4 w-4 text-pink-500"}),"On the Horizon"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:Ca.map((Da,Ba)=>jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:Da.title}),Da.copyable_prompt&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(RunCommandButton,{prompt:Da.copyable_prompt,label:"Run"}),jsxRuntimeExports.jsx(CopyButton$2,{text:Da.copyable_prompt})]})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Da.whats_possible}),Da.copyable_prompt&&jsxRuntimeExports.jsx("pre",{className:"mt-2 rounded bg-[#0B1120] p-2 text-xs font-mono overflow-x-auto text-muted-foreground",children:Da.copyable_prompt})]},Ba))})]}),Kr.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(Zap,{className:"h-4 w-4 text-amber-500"}),"Recommended Skills"]})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-3",children:[Kr.map(Da=>{var Fa;const Ba=(Fa=ts==null?void 0:ts.skills)==null?void 0:Fa.find(qa=>qa.id===Da.skillId),Ma=`rulemetric skills install ${Da.skillId}`;return jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:(Ba==null?void 0:Ba.name)??Da.skillId}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[(Ba==null?void 0:Ba.content)&&jsxRuntimeExports.jsx(SkillDownloadButton,{skillId:Da.skillId,content:Ba.content}),jsxRuntimeExports.jsx(RunCommandButton,{prompt:Ma,label:"Install"})]})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Da.reason}),(Ba==null?void 0:Ba.description)&&jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-1 italic",children:Ba.description})]},Da.skillId)}),jsxRuntimeExports.jsx("div",{className:"pt-1",children:jsxRuntimeExports.jsx(Link,{to:"/skills",className:"text-xs text-primary hover:underline font-mono",children:"Browse all skills →"})})]})]})]})}function InsightsSection(){var Qr;const[es,$]=useTabParam(["overview","tools","quality","suggestions"],"overview"),{data:ts,isLoading:is,error:Kr}=useComputedInsights();return is?jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[...Array(4)].map((ja,Ca)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-24"},Ca))}):Kr||!ts||ts.total_sessions===0?jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{className:"pt-6",children:jsxRuntimeExports.jsxs("div",{className:"text-center space-y-3 py-6",children:[jsxRuntimeExports.jsx(TrendingUp,{className:"h-10 w-10 mx-auto text-muted-foreground/50"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:"No insights yet"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Start capturing sessions to see insights here"})]})]})})}):jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("h3",{className:"text-sm font-mono text-muted-foreground",children:"Session Insights"}),jsxRuntimeExports.jsxs("p",{className:"text-[10px] text-muted-foreground",children:[ts.total_sessions," sessions · ",ts.days_active," days"]})]}),jsxRuntimeExports.jsxs(Tabs,{value:es,onValueChange:$,children:[jsxRuntimeExports.jsxs(TabsList,{children:[jsxRuntimeExports.jsx(TabsTrigger,{value:"overview",className:"cursor-pointer",children:"Overview"}),jsxRuntimeExports.jsx(TabsTrigger,{value:"tools",className:"cursor-pointer",children:"Tools"}),jsxRuntimeExports.jsx(TabsTrigger,{value:"quality",className:"cursor-pointer",children:"Quality"}),ts.recommendations&&jsxRuntimeExports.jsx(TabsTrigger,{value:"suggestions",className:"cursor-pointer",children:"Suggestions"})]}),jsxRuntimeExports.jsx(TabsContent,{value:"overview",className:"mt-4",children:jsxRuntimeExports.jsx(OverviewTab,{data:ts})}),jsxRuntimeExports.jsx(TabsContent,{value:"tools",className:"mt-4",children:jsxRuntimeExports.jsx(ToolsTab,{data:ts})}),jsxRuntimeExports.jsx(TabsContent,{value:"quality",className:"mt-4",children:jsxRuntimeExports.jsx(QualityTab,{data:ts,emptyAction:jsxRuntimeExports.jsx(GenerateInsightsButton,{})})}),ts.recommendations&&jsxRuntimeExports.jsx(TabsContent,{value:"suggestions",className:"mt-4",children:jsxRuntimeExports.jsx(SuggestionsTab,{rec:ts.recommendations,isAuto:!!((Qr=ts.recommendations)!=null&&Qr._auto_generated)})})]})]})}function PendingSuggestionsCallout(){const{data:es}=usePendingSuggestionCount();if(!es||es.total===0)return null;const $=es.byProject.slice(0,3);return jsxRuntimeExports.jsx(Link,{to:"/suggestions",className:"block no-underline","data-testid":"pending-suggestions-callout",children:jsxRuntimeExports.jsxs("div",{className:"group flex flex-wrap items-center gap-3 rounded-lg border border-primary/40 bg-primary/[0.06] px-4 py-3 transition-colors hover:bg-primary/[0.1]",children:[jsxRuntimeExports.jsx(Lightbulb,{className:"h-4 w-4 shrink-0 text-primary"}),jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1 basis-56",children:[jsxRuntimeExports.jsxs("p",{className:"text-sm font-medium",children:[es.total," instruction suggestion",es.total===1?"":"s"," await your review"]}),jsxRuntimeExports.jsxs("p",{className:"mt-0.5 truncate text-xs text-muted-foreground",children:[$.map(ts=>`${ts.projectPath.split("/").pop()} (${ts.count})`).join(" · "),es.byProject.length>3&&" · …"]})]}),jsxRuntimeExports.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-sm font-medium text-primary",children:["Review",jsxRuntimeExports.jsx(ChevronRight,{className:"h-4 w-4 transition-transform group-hover:translate-x-0.5"})]})]})})}function DashboardPage(){const{user:es}=useAuth(),{data:$,isLoading:ts}=useInstructions(),{data:is,isLoading:Kr}=useSessionCount();return jsxRuntimeExports.jsxs("div",{className:"space-y-8",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1 basis-56",children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Dashboard"}),jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground break-words",children:["Welcome back, ",es==null?void 0:es.email]})]}),jsxRuntimeExports.jsx("div",{className:"flex gap-2"})]}),jsxRuntimeExports.jsx(PendingSuggestionsCallout,{}),jsxRuntimeExports.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-3",children:[jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{className:"flex flex-row items-center justify-between pb-2",children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Instructions"}),jsxRuntimeExports.jsx(FileText,{className:"h-4 w-4 text-muted-foreground"})]}),jsxRuntimeExports.jsx(CardContent,{children:ts?jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-16"}):jsxRuntimeExports.jsx("div",{className:"text-3xl font-mono font-bold text-primary",children:($==null?void 0:$.length)??0})})]}),jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"flex flex-row items-center justify-between pb-2",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Formats"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx("div",{className:"text-3xl font-mono font-bold text-primary",children:"25+"})})]}),jsxRuntimeExports.jsx(Link,{to:"/sessions",className:"no-underline",children:jsxRuntimeExports.jsxs(Card,{className:"cursor-pointer hover:bg-secondary/30 transition-colors",children:[jsxRuntimeExports.jsxs(CardHeader,{className:"flex flex-row items-center justify-between pb-2",children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Sessions"}),jsxRuntimeExports.jsx(Activity,{className:"h-4 w-4 text-muted-foreground"})]}),jsxRuntimeExports.jsx(CardContent,{children:Kr?jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-16"}):jsxRuntimeExports.jsx("div",{className:"text-3xl font-mono font-bold text-primary","data-testid":"dashboard-session-count",children:((is==null?void 0:is.count)??0).toLocaleString()})})]})})]}),jsxRuntimeExports.jsx(InsightsSection,{})]})}function useApiKeys(){return useQuery({queryKey:["api-keys"],queryFn:()=>apiGet("/api/auth/api-keys")})}function useCreateApiKey(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost("/api/auth/api-keys",$),onSuccess:()=>{es.invalidateQueries({queryKey:["api-keys"]})}})}function useRevokeApiKey(){const es=useQueryClient();return useMutation({mutationFn:$=>apiDelete(`/api/auth/api-keys/${$}`),onSuccess:()=>{es.invalidateQueries({queryKey:["api-keys"]})}})}const apiUrl=window.location.origin,toolGroups=[{label:"Instructions",tools:[{name:"rulemetric_list",desc:"List your instructions"},{name:"rulemetric_summary",desc:"Get instruction metadata and preview"},{name:"rulemetric_get",desc:"Get full instruction content"},{name:"rulemetric_search",desc:"Search instructions by name or content"},{name:"rulemetric_convert",desc:"Convert to any supported format"},{name:"rulemetric_formats",desc:"List all 25+ converter formats"}]},{label:"Collaboration",tools:[{name:"rulemetric_fork",desc:"Fork an instruction to personal scope"},{name:"rulemetric_promote",desc:"Promote to team or org scope"},{name:"rulemetric_upstream",desc:"Check for upstream updates"},{name:"rulemetric_pull_upstream",desc:"Pull upstream changes via 3-way merge"}]},{label:"Catalog & Recommendations",tools:[{name:"rulemetric_catalog",desc:"Browse org/team instruction catalog"},{name:"rulemetric_recommendations",desc:"AI-powered instruction suggestions"},{name:"rulemetric_apply_suggestion",desc:"Accept a precomputed instruction suggestion mid-session"}]},{label:"Sessions & Insights",tools:[{name:"rulemetric_session_list",desc:"List captured AI sessions"},{name:"rulemetric_session_import",desc:"Import session from JSONL or JSON"},{name:"rulemetric_instruction_insights",desc:"Session-based performance insights"},{name:"rulemetric_diagnostics",desc:"Diagnose hook install, config, and API connectivity"}]}];function SetupRow({state:es,label:$,helper:ts}){const is=es==="detected"?CircleCheck:es==="loading"?LoaderCircle:es==="waiting"?Hourglass:CircleAlert,Kr=es==="detected"?"text-teal-400":es==="loading"||es==="waiting"?"text-muted-foreground":"text-amber-400";return jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-3 rounded-lg border border-border bg-background px-3 py-2",children:[jsxRuntimeExports.jsx(is,{className:cn$1("h-4 w-4 mt-0.5 shrink-0",Kr,es==="loading"&&"animate-spin")}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsx("div",{className:"text-sm font-medium",children:$}),ts&&jsxRuntimeExports.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:ts})]})]})}function ConnectPage(){const[es,$]=useTabParam(["claude-code","copilot","manual"],"claude-code"),{session:ts,user:is}=useAuth();ts==null||ts.access_token;const{workers:Kr,activeWorkers:Qr,isConnected:ja,isLoading:Ca}=useWorkerStatus("mcp"),Aa=useSetupProgress(),{openModal:Oa,progress:Ia}=useSetupWalkthrough(),{data:Da,isLoading:Ba}=useApiKeys(),Ma=useCreateApiKey(),Fa=useRevokeApiKey(),[qa,Ha]=reactExports.useState(""),[Ka,Qa]=reactExports.useState(null),[Va,Ya]=reactExports.useState(!0),[Wa,el]=reactExports.useState(null),{profile:tl}=useActiveOrg(),rl=(tl==null?void 0:tl.liveSendSkipped)??!1,cl=(Da==null?void 0:Da.filter(hl=>!hl.revokedAt))??[];function dl(){const hl=qa.trim()||"default";Ma.mutate({name:hl},{onSuccess:jl=>{Qa(jl.key),Ya(!0),Ha("")}})}function fl(hl){Fa.mutate(hl,{onSuccess:()=>el(null)})}const nl="<your-api-key>",ol=`claude mcp add rulemetric -e RULEMETRIC_API_KEY=${nl} -e RULEMETRIC_API_URL=${apiUrl} -e RULEMETRIC_CLIENT_NAME=claude-code -- node /path/to/apps/mcp/dist/index.js`,pl=JSON.stringify({mcpServers:{rulemetric:{command:"node",args:["/path/to/apps/mcp/dist/index.js"],env:{RULEMETRIC_API_KEY:nl,RULEMETRIC_API_URL:apiUrl,RULEMETRIC_CLIENT_NAME:"claude-code"}}}},null,2),Tl=JSON.stringify({"github.copilot.chat.mcp.servers":{rulemetric:{command:"node",args:["/path/to/apps/mcp/dist/index.js"],env:{RULEMETRIC_API_KEY:nl,RULEMETRIC_API_URL:apiUrl,RULEMETRIC_CLIENT_NAME:"vscode-copilot"}}}},null,2),ul=JSON.stringify({servers:{rulemetric:{command:"node",args:["/path/to/apps/mcp/dist/index.js"],env:{RULEMETRIC_API_KEY:nl,RULEMETRIC_API_URL:apiUrl,RULEMETRIC_CLIENT_NAME:"vscode-copilot"}}}},null,2);return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Connect"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Connect RuleMetric to your AI coding tools via the MCP server"})]}),jsxRuntimeExports.jsxs(Card,{className:"bg-card border-border",children:[jsxRuntimeExports.jsxs(CardHeader,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono text-muted-foreground",children:"Setup"}),!Ia.coreComplete&&jsxRuntimeExports.jsx(Button,{variant:"outline",size:"sm",onClick:Oa,className:"cursor-pointer shrink-0",children:"Resume setup"})]}),jsxRuntimeExports.jsxs(CardContent,{className:"grid gap-2 md:grid-cols-2",children:[jsxRuntimeExports.jsx(SetupRow,{state:Aa.steps.install.state,label:"Install the CLI",helper:Aa.steps.install.state==="detected"?"Detected via captured session activity.":`Run: ${INSTALL_CLI}`}),jsxRuntimeExports.jsx(SetupRow,{state:Aa.steps.auth.state,label:"Authenticated",helper:Aa.steps.auth.state==="detected"?(is==null?void 0:is.email)??"Signed in":"Sign in to capture sessions."}),jsxRuntimeExports.jsx(SetupRow,{state:Aa.steps.hooks.state,label:"Hooks installed",helper:Aa.steps.hooks.state==="detected"?"Session hooks are firing — capturing Claude Code directly, no proxy needed. Add the optional proxy for the exact system prompt, other AI tools, and live cost.":"Run: rulemetric hooks install — no CA cert or proxy required."}),jsxRuntimeExports.jsx(SetupRow,{state:Aa.steps.worker.state,label:"Worker running",helper:Aa.steps.worker.state==="detected"?"Local worker is heartbeating.":"Run: rulemetric service install --worker-only"}),jsxRuntimeExports.jsx(SetupRow,{state:Aa.steps.tmux.state,label:"Tmux available",helper:Aa.steps.tmux.state==="detected"?"Live message send is enabled for active sessions.":rl?"Skipped during setup — start a Claude Code session in tmux to enable it anytime.":"Start a Claude Code session in tmux to enable live send."}),jsxRuntimeExports.jsx(SetupRow,{state:Aa.steps.target.state,label:"First live target detected",helper:Aa.steps.target.state==="detected"?"We've seen at least one terminal target from this user.":rl?"Skipped during setup — launch a session anytime to register your first target.":"Launch a session to register your first target."})]})]}),jsxRuntimeExports.jsx(Card,{className:ja?"border-teal-500/30 bg-teal-500/5":"border-border",children:jsxRuntimeExports.jsx(CardContent,{className:"py-4",children:Ca?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsx(Clock,{className:"h-4 w-4 animate-pulse"}),"Checking connection status..."]}):ja?jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-teal-400",children:[jsxRuntimeExports.jsx(Wifi,{className:"h-4 w-4"}),jsxRuntimeExports.jsxs("span",{className:"font-medium",children:[Qr.length," active connection",Qr.length>1?"s":""]})]}),jsxRuntimeExports.jsx("div",{className:"grid gap-2",children:Qr.map(hl=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-teal-500/20 bg-background px-3 py-2 text-sm",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"h-2 w-2 rounded-full bg-teal-500 animate-pulse"}),jsxRuntimeExports.jsx("span",{className:"font-mono",children:hl.clientName}),hl.workerVersion&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-xs",children:["v",hl.workerVersion]})]}),jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:["Last seen ",formatRelativeTime(hl.lastHeartbeat)]})]},hl.id))})]}):Kr&&Kr.length>0?jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsx(WifiOff,{className:"h-4 w-4"}),jsxRuntimeExports.jsxs("span",{children:["No active connections — last seen ",formatRelativeTime(Kr[0].lastHeartbeat)]})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Start your AI coding tool with the RuleMetric MCP server configured to reconnect."})]}):jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsx(WifiOff,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{children:"No MCP connections yet — follow the setup below to get started."})]})})}),jsxRuntimeExports.jsxs(Card,{className:"bg-card border-border",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono text-muted-foreground flex items-center gap-2",children:[jsxRuntimeExports.jsx(Key,{className:"h-4 w-4"}),"API Keys"]})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-4",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"API keys authenticate your CLI, hooks, and proxy. They never expire and are more reliable than session tokens."}),Ka&&jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-teal-500/30 bg-teal-500/5 p-4 space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-teal-400",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4"}),"Copy your API key now — it won't be shown again"]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("code",{className:"flex-1 text-xs font-mono bg-[#0B1120] rounded px-3 py-2 break-all",children:Va?Ka:"rm_"+"•".repeat(40)}),jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",onClick:()=>Ya(!Va),className:"cursor-pointer shrink-0",children:Va?jsxRuntimeExports.jsx(EyeOff,{className:"h-4 w-4"}):jsxRuntimeExports.jsx(Eye,{className:"h-4 w-4"})}),jsxRuntimeExports.jsx(CopyButton$3,{text:Ka})]}),jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",onClick:()=>Qa(null),className:"cursor-pointer text-xs text-muted-foreground",children:"Dismiss"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Input,{placeholder:"Key name (e.g. laptop, work)",value:qa,onChange:hl=>Ha(hl.target.value),onKeyDown:hl=>{hl.key==="Enter"&&!Ma.isPending&&dl()},className:"flex-1"}),jsxRuntimeExports.jsxs(Button,{onClick:dl,disabled:Ma.isPending,className:"cursor-pointer shrink-0",size:"sm",children:[jsxRuntimeExports.jsx(Plus,{className:"mr-1 h-4 w-4"}),Ma.isPending?"Creating...":"Create Key"]})]}),Ba?jsxRuntimeExports.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading keys..."}):cl.length===0&&!Ka?jsxRuntimeExports.jsx("div",{className:"text-sm text-muted-foreground border border-dashed border-border rounded-lg p-4 text-center",children:"No API keys yet. Create one to get started."}):jsxRuntimeExports.jsx("div",{className:"space-y-2",children:cl.map(hl=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-border bg-background px-3 py-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[jsxRuntimeExports.jsxs("code",{className:"text-xs font-mono text-muted-foreground shrink-0",children:[hl.keyPrefix,"..."]}),jsxRuntimeExports.jsx("span",{className:"text-sm truncate",children:hl.name})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:hl.lastUsedAt?`Used ${formatRelativeTime(hl.lastUsedAt)}`:"Never used"}),jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:["Created ",formatRelativeTime(hl.createdAt)]}),Wa===hl.id?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(Button,{variant:"destructive",size:"sm",onClick:()=>fl(hl.id),disabled:Fa.isPending,className:"cursor-pointer text-xs h-7",children:"Confirm"}),jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",onClick:()=>el(null),className:"cursor-pointer text-xs h-7",children:"Cancel"})]}):jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",onClick:()=>el(hl.id),className:"cursor-pointer text-muted-foreground hover:text-destructive h-7",children:jsxRuntimeExports.jsx(Trash2,{className:"h-3 w-3"})})]})]},hl.id))})]})]}),jsxRuntimeExports.jsxs(Card,{className:"bg-card border-border",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono text-muted-foreground flex items-center gap-2",children:[jsxRuntimeExports.jsx(Plug,{className:"h-4 w-4"}),"MCP Server Setup"]})}),jsxRuntimeExports.jsxs(CardContent,{children:[jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground mb-4",children:["The MCP server isn't published to npm yet — clone the RuleMetric repo and run"," ",jsxRuntimeExports.jsx("code",{className:"text-xs bg-muted px-1 py-0.5 rounded font-mono",children:"pnpm install && pnpm build"})," first, then point the config at ",jsxRuntimeExports.jsx("code",{className:"text-xs bg-muted px-1 py-0.5 rounded font-mono",children:"apps/mcp/dist/index.js"})," in your checkout."]}),jsxRuntimeExports.jsxs(Tabs,{value:es,onValueChange:$,children:[jsxRuntimeExports.jsxs(TabsList,{children:[jsxRuntimeExports.jsxs(TabsTrigger,{value:"claude-code",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(Terminal,{className:"mr-2 h-4 w-4"}),"Claude Code"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"copilot",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(CodeXml,{className:"mr-2 h-4 w-4"}),"VS Code Copilot"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"manual",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(FileJson,{className:"mr-2 h-4 w-4"}),"Manual Config"]})]}),jsxRuntimeExports.jsxs(TabsContent,{value:"claude-code",className:"mt-4 space-y-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:"Run this command to add RuleMetric as an MCP server in Claude Code:"}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-1",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:"Terminal"}),jsxRuntimeExports.jsx(CopyButton$3,{text:ol})]}),jsxRuntimeExports.jsx("pre",{className:"overflow-auto rounded-lg border border-border bg-[#0B1120] p-4 text-sm font-mono whitespace-pre-wrap",children:ol})]})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground mb-3",children:["Or add this to a ",jsxRuntimeExports.jsx("code",{className:"text-xs bg-muted px-1 py-0.5 rounded font-mono",children:".mcp.json"})," file in your project root (Claude Code reads MCP servers from there, not from settings.json):"]}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-1",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:".mcp.json"}),jsxRuntimeExports.jsx(CopyButton$3,{text:pl})]}),jsxRuntimeExports.jsx("pre",{className:"max-h-96 overflow-auto rounded-lg border border-border bg-[#0B1120] p-4 text-sm font-mono whitespace-pre-wrap",children:pl})]})]})]}),jsxRuntimeExports.jsxs(TabsContent,{value:"copilot",className:"mt-4 space-y-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-2",children:"Option 1: VS Code Settings"}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground mb-3",children:["Add this to your VS Code settings (",jsxRuntimeExports.jsx("code",{className:"text-xs bg-muted px-1 py-0.5 rounded font-mono",children:"Cmd+Shift+P"}),' → "Preferences: Open User Settings (JSON)"):']}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-1",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:"settings.json"}),jsxRuntimeExports.jsx(CopyButton$3,{text:Tl})]}),jsxRuntimeExports.jsx("pre",{className:"max-h-96 overflow-auto rounded-lg border border-border bg-[#0B1120] p-4 text-sm font-mono whitespace-pre-wrap",children:Tl})]})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-2",children:"Option 2: Project-level .vscode/mcp.json"}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground mb-3",children:["Or create a ",jsxRuntimeExports.jsx("code",{className:"text-xs bg-muted px-1 py-0.5 rounded font-mono",children:".vscode/mcp.json"})," file in your project root for per-project configuration:"]}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-1",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:".vscode/mcp.json"}),jsxRuntimeExports.jsx(CopyButton$3,{text:ul})]}),jsxRuntimeExports.jsx("pre",{className:"max-h-96 overflow-auto rounded-lg border border-border bg-[#0B1120] p-4 text-sm font-mono whitespace-pre-wrap",children:ul})]})]}),jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-4 space-y-2",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium",children:"Using RuleMetric in Copilot Chat"}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:["Once configured, open Copilot Chat in Agent mode (",jsxRuntimeExports.jsx("code",{className:"text-xs bg-muted px-1 py-0.5 rounded font-mono",children:"Cmd+Shift+I"}),") and RuleMetric tools will be available. You can ask Copilot to:"]}),jsxRuntimeExports.jsxs("ul",{className:"text-sm text-muted-foreground list-disc pl-5 space-y-1",children:[jsxRuntimeExports.jsx("li",{children:"List and search your instructions"}),jsxRuntimeExports.jsx("li",{children:"Convert instructions to any format"}),jsxRuntimeExports.jsx("li",{children:"Browse the org/team catalog"}),jsxRuntimeExports.jsx("li",{children:"Get AI-powered recommendations"}),jsxRuntimeExports.jsx("li",{children:"Import and review coding sessions"})]})]})]}),jsxRuntimeExports.jsxs(TabsContent,{value:"manual",className:"mt-4 space-y-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:"Use this JSON config for any MCP-compatible tool (Cursor, Windsurf, etc.):"}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-1",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:"mcp.json"}),jsxRuntimeExports.jsx(CopyButton$3,{text:pl})]}),jsxRuntimeExports.jsx("pre",{className:"max-h-96 overflow-auto rounded-lg border border-border bg-[#0B1120] p-4 text-sm font-mono whitespace-pre-wrap",children:pl})]})]}),jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-4 space-y-2",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium",children:"Getting an API key"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Generate an API key via the CLI. It never expires and is saved automatically:"}),jsxRuntimeExports.jsx("pre",{className:"text-xs font-mono text-muted-foreground bg-[#0B1120] rounded p-3 mt-2",children:`rulemetric auth login
142
- rulemetric auth create-key --name "my-setup"`})]})]})]})]})]}),jsxRuntimeExports.jsx(Card,{className:"border-blue-500/30 bg-blue-500/5",children:jsxRuntimeExports.jsxs(CardContent,{className:"py-3 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsx("strong",{className:"text-blue-400",children:"Tip:"})," Use an API key (",jsxRuntimeExports.jsx("code",{className:"text-xs bg-muted px-1 py-0.5 rounded font-mono",children:"rm_..."}),") instead of a JWT for MCP server config. API keys never expire and work for all integrations. Create one in the API Keys section above, or via CLI:"," ",jsxRuntimeExports.jsx("code",{className:"text-xs bg-muted px-1 py-0.5 rounded font-mono",children:'rulemetric auth create-key --name "my-setup"'})]})}),jsxRuntimeExports.jsxs(Card,{className:"bg-card border-border",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono text-muted-foreground",children:["Available Tools (",toolGroups.reduce((hl,jl)=>hl+jl.tools.length,0),")"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-6",children:toolGroups.map(hl=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-2",children:hl.label}),jsxRuntimeExports.jsx("div",{className:"grid gap-2",children:hl.tools.map(jl=>jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 items-center gap-3 rounded-lg border border-border bg-background p-3",children:[jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"font-mono text-xs shrink-0",children:jl.name}),jsxRuntimeExports.jsx("span",{className:"min-w-0 break-words text-sm text-muted-foreground",children:jl.desc})]},jl.name))})]},hl.label))})]})]})}function projectDisplayName(es){var Kr;if(es.projectName)return es.projectName;const $=lastTwoSegments(es.primaryCheckoutPath);if($)return $;const ts=nameFromRemote((Kr=es.metadata)==null?void 0:Kr.gitRemote);if(ts)return ts;const is=lastTwoSegments(es.projectPath);return is||"—"}function lastTwoSegments(es){if(!es)return null;const $=es.split("/").filter(Boolean);return $.length===0?null:$.slice(-2).join("/")}function nameFromRemote(es){if(typeof es!="string"||!es.trim())return null;const $=es.trim().replace(/\.git$/i,"").replace(/^(https?:\/\/|ssh:\/\/(?:[^@]+@)?|git:\/\/|[^@]+@)/,"").replace(/^([^/:]+):/,"$1/"),ts=$.split("/").filter(Boolean);return ts.length>=3?ts.slice(-2).join("/"):ts.length===2?ts[1]:$||null}function ClaudeCodeIcon(es){return jsxRuntimeExports.jsx("svg",{viewBox:"0 0 24 24",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",...es,children:jsxRuntimeExports.jsx("path",{d:"M12 2.5L13.4 9.2L20 8.5L14.8 12L20 15.5L13.4 14.8L12 21.5L10.6 14.8L4 15.5L9.2 12L4 8.5L10.6 9.2L12 2.5Z"})})}function CursorIcon(es){return jsxRuntimeExports.jsx("svg",{viewBox:"0 0 24 24",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",...es,children:jsxRuntimeExports.jsx("path",{d:"M12 2L13.5 10.5L22 12L13.5 13.5L12 22L10.5 13.5L2 12L10.5 10.5L12 2Z"})})}function VSCodeCopilotIcon(es){return jsxRuntimeExports.jsxs("svg",{viewBox:"0 0 24 24",width:"1em",height:"1em",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round","aria-hidden":"true",...es,children:[jsxRuntimeExports.jsx("path",{d:"M17.5 2.5L21.5 4.5V19.5L17.5 21.5L8 13.5L4 16.5L2.5 15.5V8.5L4 7.5L8 10.5L17.5 2.5Z"}),jsxRuntimeExports.jsx("path",{d:"M17.5 2.5V21.5"})]})}const TOOL_ICON_COMPONENTS={claude_code:ClaudeCodeIcon,cursor:CursorIcon,vscode_copilot:VSCodeCopilotIcon};function ToolIcon({tool:es,...$}){const ts=TOOL_ICON_COMPONENTS[es];return ts?jsxRuntimeExports.jsx(ts,{...$}):jsxRuntimeExports.jsx(Activity,{...$})}function Table({className:es,...$}){return jsxRuntimeExports.jsx("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:jsxRuntimeExports.jsx("table",{"data-slot":"table",className:cn$1("w-full caption-bottom text-sm",es),...$})})}function TableHeader({className:es,...$}){return jsxRuntimeExports.jsx("thead",{"data-slot":"table-header",className:cn$1("[&_tr]:border-b",es),...$})}function TableBody({className:es,...$}){return jsxRuntimeExports.jsx("tbody",{"data-slot":"table-body",className:cn$1("[&_tr:last-child]:border-0",es),...$})}function TableRow({className:es,...$}){return jsxRuntimeExports.jsx("tr",{"data-slot":"table-row",className:cn$1("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",es),...$})}function TableHead({className:es,...$}){return jsxRuntimeExports.jsx("th",{"data-slot":"table-head",className:cn$1("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",es),...$})}function TableCell({className:es,...$}){return jsxRuntimeExports.jsx("td",{"data-slot":"table-cell",className:cn$1("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",es),...$})}function formatDuration(es,$){if(!$)return"—";const ts=new Date($).getTime()-new Date(es).getTime();if(!Number.isFinite(ts)||ts<0)return"—";const is=Math.floor(ts/6e4);if(is<1)return"<1m";if(is<60)return`${is}m`;const Kr=Math.floor(is/60);return Kr<24?`${Kr}h ${is%60}m`:`${Math.floor(Kr/24)}d ${Kr%24}h`}function HeadlessBadge(){return jsxRuntimeExports.jsx("span",{className:"inline-flex items-center rounded-full px-1.5 py-0.5 text-[10px] font-medium bg-slate-500/10 text-slate-500 border border-slate-500/20",title:"Started via `claude -p` (non-interactive). Typically a script or pipeline invocation.",children:"headless"})}function DataTierBadge({tier:es}){return es==="full"?jsxRuntimeExports.jsx("span",{className:"inline-flex items-center rounded-full px-1.5 py-0.5 text-[10px] font-medium bg-teal-500/10 text-teal-600 border border-teal-500/20",children:"Full capture"}):es==="events"?jsxRuntimeExports.jsx("span",{className:"inline-flex items-center rounded-full px-1.5 py-0.5 text-[10px] font-medium bg-amber-500/10 text-amber-600 border border-amber-500/20",children:"Events only"}):null}function SortableHead({label:es,sortKey:$,currentKey:ts,currentDir:is,onSort:Kr,className:Qr}){const ja=ts===$,Ca=ja?is==="asc"?ArrowUp:ArrowDown:ArrowUpDown;return jsxRuntimeExports.jsx(TableHead,{className:`cursor-pointer select-none hover:text-foreground transition-colors ${Qr??""}`,onClick:()=>Kr($),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[es,jsxRuntimeExports.jsx(Ca,{className:`h-3 w-3 ${ja?"text-primary":"text-muted-foreground/50"}`})]})})}function SessionsListPage(){const es=useNavigate(),[$,ts]=useSearchParams(),is=$.get("outcome")??void 0,Kr=$.get("friction")??void 0,Qr=$.get("instructionId")??void 0,ja=[is&&{key:"outcome",label:`outcome: ${is.replace(/_/g," ")}`},Kr&&{key:"friction",label:`friction: ${Kr.replace(/_/g," ")}`},Qr&&{key:"instructionId",label:"linked instruction"}].filter(Boolean),Ca=dl=>{const fl=new URLSearchParams($);fl.delete(dl),ts(fl,{replace:!0})},{data:Aa,isLoading:Oa}=useSessions({hideEmpty:!0,outcome:is,friction:Kr,instructionId:Qr}),[Ia,Da]=reactExports.useState("date"),[Ba,Ma]=reactExports.useState("desc"),[Fa,qa]=reactExports.useState(new Set),[Ha,Ka]=reactExports.useState(new Set),Qa=useDeleteSession(),Va=dl=>{Ka(fl=>{const nl=new Set(fl);return nl.has(dl)?nl.delete(dl):nl.add(dl),nl})},Ya=dl=>{qa(fl=>{const nl=new Set(fl);return nl.has(dl)?nl.delete(dl):nl.add(dl),nl})},Wa=()=>{rl&&(Fa.size===rl.length?qa(new Set):qa(new Set(rl.map(dl=>dl.id))))},el=async()=>{const dl=[...Fa];for(const fl of dl)await Qa.mutateAsync(fl);qa(new Set)},tl=dl=>{dl===Ia?Ma(fl=>fl==="asc"?"desc":"asc"):(Da(dl),Ma("desc"))},rl=Aa?[...Aa].sort((dl,fl)=>{const nl=Ba==="asc"?1:-1;switch(Ia){case"date":return nl*(new Date(dl.lastActivityAt??dl.startedAt).getTime()-new Date(fl.lastActivityAt??fl.startedAt).getTime());case"events":return nl*(dl.eventCount-fl.eventCount);case"project":return nl*projectDisplayName(dl).localeCompare(projectDisplayName(fl));default:return 0}}):void 0,cl=[];if(rl){let dl=null;for(const fl of rl){const nl=new Date(fl.startedAt).toISOString().slice(0,19),ol=`${fl.tool}|${fl.projectPath??"∅"}|${nl}`;dl&&dl.key===ol?dl.siblings.push(fl):(dl&&cl.push(dl),dl={key:ol,rep:fl,siblings:[]})}dl&&cl.push(dl)}return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx("div",{className:"flex items-start justify-between",children:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Sessions"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Review AI coding sessions and analyze instruction performance"}),ja.length>0&&jsxRuntimeExports.jsx("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:ja.map(dl=>jsxRuntimeExports.jsxs(Badge,{variant:"secondary",className:"cursor-pointer font-mono text-xs",onClick:()=>Ca(dl.key),title:"Clear this filter",children:[dl.label,jsxRuntimeExports.jsx(X$1,{className:"ml-1 h-3 w-3"})]},dl.key))})]})}),Fa.size>0&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:[Fa.size," selected"]}),jsxRuntimeExports.jsxs(Button,{variant:"destructive",size:"sm",className:"h-8 text-xs cursor-pointer",onClick:el,disabled:Qa.isPending,children:[jsxRuntimeExports.jsx(Trash2,{className:"h-3 w-3 mr-1"}),Qa.isPending?"Deleting...":"Delete"]}),jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",className:"h-8 text-xs cursor-pointer",onClick:()=>qa(new Set),children:"Cancel"})]}),Oa?jsxRuntimeExports.jsx("div",{className:"space-y-2",children:Array.from({length:5}).map((dl,fl)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-12 w-full"},fl))}):rl!=null&&rl.length?jsxRuntimeExports.jsx("div",{className:"border border-border rounded-lg overflow-hidden",children:jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{className:"bg-card hover:bg-card",children:[jsxRuntimeExports.jsx(TableHead,{className:"w-10",children:jsxRuntimeExports.jsx("button",{role:"checkbox","aria-checked":!!rl&&Fa.size===rl.length&&rl.length>0,"aria-label":"Select all sessions",className:"h-4 w-4 rounded border border-border cursor-pointer flex items-center justify-center text-xs hover:bg-secondary/50 transition-colors",onClick:Wa,children:rl&&Fa.size===rl.length&&rl.length>0?"✓":""})}),jsxRuntimeExports.jsx(TableHead,{className:"w-48",children:"Tool"}),jsxRuntimeExports.jsx(SortableHead,{label:"Project",sortKey:"project",currentKey:Ia,currentDir:Ba,onSort:tl,className:"w-80"}),jsxRuntimeExports.jsx(TableHead,{className:"w-[28rem]",children:"Last message"}),jsxRuntimeExports.jsx(TableHead,{className:"w-24",children:"Branch"}),jsxRuntimeExports.jsx(SortableHead,{label:"Events",sortKey:"events",currentKey:Ia,currentDir:Ba,onSort:tl,className:"text-right"}),jsxRuntimeExports.jsx(TableHead,{className:"text-right",children:"Duration"}),jsxRuntimeExports.jsx(SortableHead,{label:"Last activity",sortKey:"date",currentKey:Ia,currentDir:Ba,onSort:tl,className:"text-right"})]})}),jsxRuntimeExports.jsx(TableBody,{children:cl.flatMap(dl=>{const fl=Ha.has(dl.key),nl=dl.siblings.length>0;return[{session:dl.rep,isSibling:!1},...fl?dl.siblings.map(pl=>({session:pl,isSibling:!0})):[]].map(({session:pl,isSibling:Tl})=>{var hl,jl;const ul=pl.analysis;return jsxRuntimeExports.jsxs(TableRow,{className:`cursor-pointer hover:bg-secondary/50 transition-colors ${Fa.has(pl.id)?"bg-primary/5":""} ${Tl?"bg-muted/20":""}`,onClick:()=>es(`/sessions/${pl.id}`),children:[jsxRuntimeExports.jsx(TableCell,{onClick:Nl=>Nl.stopPropagation(),children:jsxRuntimeExports.jsx("button",{type:"button",role:"checkbox","aria-checked":Fa.has(pl.id),"aria-label":"Select session",className:"h-4 w-4 rounded border border-border flex items-center justify-center text-xs hover:bg-secondary/50 transition-colors",onClick:Nl=>{Nl.stopPropagation(),Ya(pl.id)},children:Fa.has(pl.id)?"✓":""})}),jsxRuntimeExports.jsxs(TableCell,{className:"w-48 align-top",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[nl&&!Tl?jsxRuntimeExports.jsx("button",{type:"button",className:"flex h-4 w-4 items-center justify-center rounded hover:bg-muted cursor-pointer shrink-0",onClick:Nl=>{Nl.stopPropagation(),Va(dl.key)},title:fl?"Collapse parallel sessions":"Expand parallel sessions",children:fl?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3 w-3"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3 w-3"})}):Tl?jsxRuntimeExports.jsx("div",{className:"w-4 shrink-0"}):null,jsxRuntimeExports.jsx(ToolIcon,{tool:pl.tool,className:"h-4 w-4 text-muted-foreground shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm truncate",children:displayTool(pl.tool)})]}),(pl.dataTier||((hl=pl.metadata)==null?void 0:hl.headless)||nl&&!Tl)&&jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-1 mt-1 ml-6",children:[pl.dataTier&&jsxRuntimeExports.jsx(DataTierBadge,{tier:pl.dataTier}),((jl=pl.metadata)==null?void 0:jl.headless)&&jsxRuntimeExports.jsx(HeadlessBadge,{}),nl&&!Tl&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[9px] font-mono px-1 py-0 gap-1",children:[jsxRuntimeExports.jsx(Layers,{className:"h-2.5 w-2.5"}),"+",dl.siblings.length," parallel"]})]})]}),jsxRuntimeExports.jsxs(TableCell,{className:"font-mono text-sm text-muted-foreground w-80 max-w-80 align-top",children:[jsxRuntimeExports.jsx("div",{className:"truncate text-foreground",children:projectDisplayName(pl)}),pl.projectName&&(pl.primaryCheckoutPath||pl.projectPath)&&jsxRuntimeExports.jsx("div",{className:"truncate text-[10px] text-muted-foreground/70",children:pl.primaryCheckoutPath??pl.projectPath}),pl.linkedInstructions&&pl.linkedInstructions.length>0&&jsxRuntimeExports.jsxs("div",{className:"flex gap-1 mt-0.5 flex-wrap",children:[pl.linkedInstructions.slice(0,3).map((Nl,zl)=>{var ql;const Zl=((ql=Nl.contextIdentity)==null?void 0:ql.split("::").pop())??Nl.name,$l=Zl.split("/").pop()??Zl,Il=isGenerated(classifyProvenance({source:Nl.source},null));return jsxRuntimeExports.jsx(Badge,{variant:"outline",className:Il?"text-[9px] font-mono px-1 py-0 border-teal-400/40 text-teal-400":"text-[9px] font-mono px-1 py-0",title:Il?PROVENANCE_TOOLTIP:void 0,"data-testid":Il?"provenance-chip":void 0,children:$l.length>20?$l.slice(0,20)+"...":$l},zl)}),pl.linkedInstructions.length>3&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[9px] font-mono px-1 py-0",children:["+",pl.linkedInstructions.length-3]})]})]}),jsxRuntimeExports.jsx(TableCell,{className:"text-sm text-muted-foreground w-[28rem] max-w-[28rem] align-top",children:jsxRuntimeExports.jsx("div",{className:"truncate",title:pl.lastMessagePreview??void 0,children:pl.lastMessagePreview??"—"})}),jsxRuntimeExports.jsx(TableCell,{className:"text-sm text-muted-foreground w-24 max-w-24 truncate",title:pl.gitBranch??void 0,children:pl.gitBranch??"—"}),jsxRuntimeExports.jsx(TableCell,{className:"text-right font-mono text-sm",children:pl.eventCount}),jsxRuntimeExports.jsx(TableCell,{className:"text-right text-sm text-muted-foreground",children:formatDuration(pl.startedAt,pl.lastActivityAt??pl.endedAt)}),jsxRuntimeExports.jsxs(TableCell,{className:"text-right text-sm text-muted-foreground whitespace-nowrap",children:[jsxRuntimeExports.jsx("div",{children:pl.lastActivityAt??pl.startedAt?new Date(pl.lastActivityAt??pl.startedAt).toLocaleString():"—"}),!!(ul!=null&&ul.outcome)&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[9px] mt-0.5",children:String(ul.outcome).replace(/_/g," ")})]})]},pl.id)})})})]})}):jsxRuntimeExports.jsxs("div",{className:"text-center py-12 text-muted-foreground",children:[jsxRuntimeExports.jsx(Activity,{className:"mx-auto h-12 w-12 mb-4 opacity-50"}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:"No sessions yet"}),jsxRuntimeExports.jsx("p",{className:"text-sm mt-1",children:"Import a session file or install Claude Code hooks to get started"})]})]})}const INJECTED_TYPES=new Set(["system_reminder","claude_md","agents_md","copilot_instructions","memory","skill_catalog","git_context","hook_output","deferred_tools"]);function getContextItems(es){const ts=(es.metadata??{}).contextItems??[];let is=0;for(const Kr of ts)INJECTED_TYPES.has(Kr.type)&&(Kr.instruction_index==null&&(Kr.instruction_index=is),is++);return ts}function useContextSnapshots(es){return useQuery({queryKey:["sessions",es,"context-snapshots"],queryFn:()=>apiGet(`/api/sessions/${es}/context-snapshots`),enabled:!!es,refetchInterval:POLL.ACTIVE})}function useContextSnapshotDetail(es){return useQuery({queryKey:["context-snapshots",es],queryFn:()=>apiGet(`/api/context-snapshots/${es}`),enabled:!!es})}function useLaunchJobs(){return useQuery({queryKey:["launch-jobs"],queryFn:()=>apiGet("/api/launch-jobs?limit=20"),refetchInterval:POLL.LIVE})}function useAvailableLaunchers(){return useQuery({queryKey:["launchers"],queryFn:()=>apiGet("/api/launchers"),staleTime:6e4})}function useCreateLaunchJob(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost("/api/launch-jobs",{tool:$.tool,config:{projectPath:$.projectPath,prompt:$.prompt,model:$.model,mode:$.mode,resumeSessionId:$.resumeSessionId}}),onSuccess:()=>{es.invalidateQueries({queryKey:["launch-jobs"]})}})}function useSessionTerminalTarget(es){return useQuery({queryKey:["terminal-target",es],queryFn:()=>apiGet(`/api/sessions/${es}/terminal-target`),enabled:!!es,refetchInterval:POLL.BACKGROUND})}function useSendMessage$1(es){const $=useQueryClient();return useMutation({mutationFn:ts=>apiPost(`/api/sessions/${es}/send`,ts),onSuccess:()=>{$.invalidateQueries({queryKey:["terminal-target",es]}),$.invalidateQueries({queryKey:["launch-jobs"]})}})}function SessionTargetSummary({target:es,capabilities:$,session:ts}){const is=(es==null?void 0:es.attachCommand)??(es!=null&&es.target?`tmux attach -t ${es.target}`:null),Kr=ts.primaryCheckoutPath??ts.projectPath??null,Qr=displayTool(ts.tool);return jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-md bg-card/60 px-4 py-3 text-xs space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1",children:[jsxRuntimeExports.jsxs("span",{className:"font-mono font-medium",children:[Qr,ts.externalSessionId&&jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:[" · ",ts.externalSessionId.slice(0,12)]})]}),Kr&&jsxRuntimeExports.jsx("span",{className:"text-muted-foreground font-mono truncate max-w-[40ch]",children:Kr}),jsxRuntimeExports.jsx("div",{className:"flex-1"}),jsxRuntimeExports.jsxs(Badge,{variant:$.workerOnline?"default":"destructive",className:"text-[10px] font-mono",children:["worker ",$.workerOnline?"online":"offline"]}),es?jsxRuntimeExports.jsxs(Badge,{variant:es.status==="active"?"default":"outline",className:"text-[10px] font-mono",children:["tmux ",es.status]}):jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] font-mono",children:"no tmux target"})]}),es&&jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-muted-foreground",children:[jsxRuntimeExports.jsx(Terminal,{className:"h-3 w-3 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono",children:es.target}),is&&jsxRuntimeExports.jsx(CopyButton$1,{text:is,label:"Copy attach"})]}),!es&&$.fallbackResume&&ts.externalSessionId&&jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground",children:["No live tmux target. Fallback resume will spawn a new terminal via"," ",jsxRuntimeExports.jsx("code",{className:"font-mono",children:"claude --resume"}),"."]})]})}function CopyButton$1({text:es,label:$}){const{copied:ts,copy:is}=useCopyToClipboard(1500);return jsxRuntimeExports.jsxs(Button,{type:"button",size:"sm",variant:"ghost",className:"h-6 px-2 text-[10px] font-mono cursor-pointer gap-1",onClick:Kr=>{Kr.stopPropagation(),is(es)},children:[ts?jsxRuntimeExports.jsx(Check,{className:"h-3 w-3"}):jsxRuntimeExports.jsx(Copy,{className:"h-3 w-3"}),jsxRuntimeExports.jsx("span",{className:"truncate max-w-[28ch]",children:ts?"Copied":$})]})}function ProvenanceBadge({source:es,frontmatter:$,className:ts}){const is=es==="insights"||es==="evolution"?es:readStampedSource($),Kr=provenanceLabel(is);return!is||!Kr?null:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:cn$1("border-teal-400/40 text-teal-400 text-[10px] font-normal shrink-0",ts),title:PROVENANCE_TOOLTIP,"data-testid":`provenance-${is}`,children:Kr})}const LINK_METHOD_LABELS={project_match:"Auto-linked via project",auto_capture:"Auto-captured",manual:"Manually linked",context_file:"Context file"};function InstructionCard({instruction:es}){const[$,ts]=reactExports.useState(!1),is=es.content.slice(0,200),Kr=es.content.length>200;return jsxRuntimeExports.jsxs(Card,{className:"bg-card border-border",children:[jsxRuntimeExports.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-secondary/30 transition-colors",...activatable(()=>ts(!$)),children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(FileText,{className:"h-4 w-4 text-primary shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium",children:es.name}),jsxRuntimeExports.jsx(ProvenanceBadge,{source:es.source}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs",children:es.scope}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:LINK_METHOD_LABELS[es.linkMethod]??es.linkMethod}),jsxRuntimeExports.jsx("div",{className:"flex-1"}),$?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),!$&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground mt-1 truncate",children:[is,Kr&&"..."]})]}),$&&jsxRuntimeExports.jsx(CardContent,{className:"pt-0 pb-3",children:jsxRuntimeExports.jsx("pre",{className:"p-3 bg-background border border-border rounded text-xs font-mono overflow-x-auto max-h-96 overflow-y-auto whitespace-pre-wrap break-words",children:es.content})})]})}const CATEGORY_ORDER=["instructions","memory","agents","commands","skills","settings"];function extractCategory(es){const $=es.frontmatter;if($&&typeof $.category=="string")return $.category;const ts=es.name.match(/\[([^\]]+)\]$/);return ts?ts[1]:"other"}function cleanName(es){return es.replace(/\s*\[[^\]]+\]$/,"")}function ContextFileRow({instruction:es}){const[$,ts]=reactExports.useState(!1);return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 cursor-pointer hover:bg-secondary/30 transition-colors rounded",...activatable(()=>ts(!$)),children:[jsxRuntimeExports.jsx(FileText,{className:"h-3 w-3 text-teal-500 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-xs",children:cleanName(es.name)}),jsxRuntimeExports.jsx(ProvenanceBadge,{source:es.source}),jsxRuntimeExports.jsx("div",{className:"flex-1"}),$?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3 w-3 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3 w-3 text-muted-foreground"})]}),$&&jsxRuntimeExports.jsx("div",{className:"ml-5 mr-3 mb-2",children:jsxRuntimeExports.jsx("pre",{className:"p-3 bg-background border border-border rounded text-xs font-mono overflow-x-auto max-h-96 overflow-y-auto whitespace-pre-wrap break-words",children:es.content})})]})}function ContextBlock({instructions:es}){const[$,ts]=reactExports.useState(!1),is=reactExports.useMemo(()=>{const ja={};for(const Ca of es){const Aa=extractCategory(Ca);ja[Aa]||(ja[Aa]=[]),ja[Aa].push(Ca)}return ja},[es]),Kr=reactExports.useMemo(()=>es.filter(ja=>isGenerated(classifyProvenance({source:ja.source},null))).length,[es]),Qr=reactExports.useMemo(()=>Object.keys(is).sort((Ca,Aa)=>{const Oa=CATEGORY_ORDER.indexOf(Ca),Ia=CATEGORY_ORDER.indexOf(Aa);return(Oa===-1?999:Oa)-(Ia===-1?999:Ia)}),[is]);return jsxRuntimeExports.jsxs("div",{className:"mb-4",children:[jsxRuntimeExports.jsx("div",{className:"border border-border border-l-2 border-l-teal-500 rounded-lg bg-card cursor-pointer hover:bg-secondary/30 transition-colors",...activatable(()=>ts(!$)),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 px-3 py-2",children:[jsxRuntimeExports.jsx(FileText,{className:"h-3.5 w-3.5 text-teal-500 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:"Session Context"}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs font-mono",children:es.length}),Kr>0&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"border-teal-400/40 text-teal-400 text-[10px] font-normal shrink-0",title:PROVENANCE_TOOLTIP,"data-testid":"provenance-insights",children:Kr===1?"from insights":`${Kr} from insights`}),jsxRuntimeExports.jsx("div",{className:"flex-1"}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1.5",children:!$&&Qr.map(ja=>jsxRuntimeExports.jsxs(Badge,{variant:"secondary",className:"text-xs font-mono",children:[ja," ",is[ja].length]},ja))}),$?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]})}),$&&jsxRuntimeExports.jsx("div",{className:"ml-4 mt-2 space-y-3",children:Qr.map(ja=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground font-medium uppercase tracking-wider mb-1 px-3",children:ja}),jsxRuntimeExports.jsx("div",{children:is[ja].map(Ca=>jsxRuntimeExports.jsx(ContextFileRow,{instruction:Ca},Ca.instructionId))})]},ja))})]})}const PROVIDER_COLORS={anthropic:"bg-orange-500/10 text-orange-600 border-orange-500/20",openai:"bg-teal-500/10 text-teal-600 border-teal-500/20",azure_openai:"bg-blue-500/10 text-blue-600 border-blue-500/20",gemini:"bg-pink-500/10 text-pink-600 border-pink-500/20",bedrock:"bg-amber-500/10 text-amber-600 border-amber-500/20",ollama:"bg-gray-500/10 text-gray-600 border-gray-500/20"};function isAgentResponseEvent(es){return es.eventType==="assistant_response"||es.eventType==="assistant_message"}function eventUsage(es){var is;if(!es)return;const $=(is=es.metadata)==null?void 0:is.usage;if($&&typeof $=="object")return $;const ts=es.tokenUsage;if(ts)return{input_tokens:ts.input_tokens??ts.input,output_tokens:ts.output_tokens??ts.output,cache_read_input_tokens:ts.cache_read_input_tokens??ts.cacheRead,cache_creation_input_tokens:ts.cache_creation_input_tokens??ts.cacheWrite}}function isBlankAssistantMessage(es){return es.eventType==="assistant_message"&&(es.content==null||es.content.trim()==="")}function groupEventsIntoTurns(es){const $=[];let ts={userMessage:null,events:[],assistantResponse:null};for(const is of es)is.eventType==="user_message"?((ts.userMessage||ts.events.length>0)&&$.push(ts),ts={userMessage:is,events:[],assistantResponse:null}):(isAgentResponseEvent(is)&&(ts.assistantResponse=is),ts.events.push(is));return(ts.userMessage||ts.events.length>0)&&$.push(ts),$}function formatTokenCount(es){return es==null?"0":es>=1e3?`${(es/1e3).toFixed(1)}K`:String(es)}function formatEventTimestamp(es){const $=new Date(es),ts=new Date,is=ts.getTime()-$.getTime(),Kr=Math.floor(is/6e4),Qr=$.toDateString()===ts.toDateString();return Kr<1?"just now":Kr<60?`${Kr}m ago`:Qr?$.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"}):$.toLocaleDateString([],{month:"numeric",day:"numeric",year:"numeric"})+" "+$.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function UserBubble({event:es}){return jsxRuntimeExports.jsxs("div",{className:"mt-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[jsxRuntimeExports.jsx(User,{className:"h-4 w-4 text-blue-500"}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:"You"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:formatEventTimestamp(es.timestamp)})]}),jsxRuntimeExports.jsx("div",{className:"bg-blue-500/10 border border-blue-500/20 rounded-lg px-4 py-3 max-w-[85%]",children:jsxRuntimeExports.jsx("p",{className:"text-sm whitespace-pre-wrap break-words",children:es.content})})]})}function AssistantBubble({event:es}){const $=es.content??"",ts=/\[tool_use:\s*([^\]]+)\]/g,is=[];let Kr=0,Qr;for(;(Qr=ts.exec($))!==null;)Qr.index>Kr&&is.push({type:"text",value:$.slice(Kr,Qr.index)}),is.push({type:"tool",value:Qr[1]}),Kr=Qr.index+Qr[0].length;return Kr<$.length&&is.push({type:"text",value:$.slice(Kr)}),jsxRuntimeExports.jsxs("div",{className:"mt-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[jsxRuntimeExports.jsx(Brain,{className:"h-4 w-4 text-primary"}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:"Assistant"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:formatEventTimestamp(es.timestamp)})]}),jsxRuntimeExports.jsx("div",{className:"bg-secondary/50 border border-border rounded-lg px-4 py-3",children:jsxRuntimeExports.jsx("div",{className:"text-sm whitespace-pre-wrap break-words",children:is.length>0?is.map((ja,Ca)=>ja.type==="tool"?jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"mx-1 text-xs font-mono",children:ja.value},Ca):jsxRuntimeExports.jsx("span",{children:ja.value},Ca)):$})})]})}function ToolCallCard({event:es}){const[$,ts]=reactExports.useState(!1),is=es.metadata??{},Kr=is.durationMs,Qr=is.success;return jsxRuntimeExports.jsxs("div",{className:"ml-8 mt-2",children:[jsxRuntimeExports.jsx("div",{className:"border border-border border-l-2 border-l-amber-500 rounded-lg px-3 py-2 bg-card cursor-pointer hover:bg-secondary/30 transition-colors",...activatable(()=>ts(!$)),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Terminal,{className:"h-3.5 w-3.5 text-amber-500 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm",children:es.toolName}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:formatEventTimestamp(es.timestamp)}),Kr!=null&&jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:Kr<1e3?`${Kr}ms`:`${(Kr/1e3).toFixed(1)}s`}),Qr!=null&&(Qr?jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5 text-teal-500"}):jsxRuntimeExports.jsx(X$1,{className:"h-3.5 w-3.5 text-destructive"})),jsxRuntimeExports.jsx("div",{className:"flex-1"}),$?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]})}),$&&jsxRuntimeExports.jsxs("div",{className:"ml-4 mt-1 space-y-2",children:[es.toolInput&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Input"}),jsxRuntimeExports.jsx("pre",{className:"p-2 bg-background border border-border rounded text-xs font-mono overflow-x-auto max-h-64 overflow-y-auto",children:JSON.stringify(es.toolInput,null,2)})]}),es.toolOutput&&Object.keys(es.toolOutput).length>0&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Output"}),jsxRuntimeExports.jsx("pre",{className:"p-2 bg-background border border-border rounded text-xs font-mono overflow-x-auto max-h-64 overflow-y-auto",children:JSON.stringify(es.toolOutput,null,2)})]}),es.content&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Content"}),jsxRuntimeExports.jsx("pre",{className:"p-2 bg-background border border-border rounded text-xs font-mono overflow-x-auto max-h-64 overflow-y-auto whitespace-pre-wrap break-words",children:es.content})]})]})]})}function ThinkingBubble({event:es}){const[$,ts]=reactExports.useState(!0),is=es.content??"",Kr=is.slice(0,150);return jsxRuntimeExports.jsxs("div",{className:"ml-8 mt-2",children:[jsxRuntimeExports.jsx("div",{className:"border border-border border-l-2 border-l-rose-500 rounded-lg px-3 py-2 bg-card cursor-pointer hover:bg-secondary/30 transition-colors",...activatable(()=>ts(!$)),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Brain,{className:"h-3.5 w-3.5 text-rose-500 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"text-sm text-muted-foreground italic",children:$?"Thinking":`${Kr}${is.length>150?"...":""}`}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:formatEventTimestamp(es.timestamp)}),jsxRuntimeExports.jsx("div",{className:"flex-1"}),$?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]})}),$&&jsxRuntimeExports.jsx("div",{className:"ml-4 mt-1",children:jsxRuntimeExports.jsx("p",{className:"text-sm italic text-muted-foreground whitespace-pre-wrap break-words",children:is})})]})}function ToolResultCard({event:es}){const[$,ts]=reactExports.useState(!0),is=es.content??"",Kr=is.slice(0,200),ja=(es.metadata??{}).toolUseId??es.toolName;return jsxRuntimeExports.jsxs("div",{className:"ml-8 mt-2",children:[jsxRuntimeExports.jsx("div",{className:"border border-border border-l-2 border-l-teal-500 rounded-lg px-3 py-2 bg-card cursor-pointer hover:bg-secondary/30 transition-colors",...activatable(()=>ts(!$)),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5 text-teal-500 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:"Result"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:formatEventTimestamp(es.timestamp)}),ja&&jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:ja}),!$&&is&&jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground truncate max-w-xs",children:[Kr,is.length>200?"...":""]}),jsxRuntimeExports.jsx("div",{className:"flex-1"}),$?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]})}),$&&is&&jsxRuntimeExports.jsx("div",{className:"ml-4 mt-1",children:jsxRuntimeExports.jsx("pre",{className:"p-2 bg-background border border-border rounded text-xs font-mono overflow-x-auto max-h-64 overflow-y-auto whitespace-pre-wrap break-words",children:is})})]})}function GenericEvent({event:es}){return jsxRuntimeExports.jsx("div",{className:"mt-2 ml-4",children:jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg px-3 py-2 bg-card/50",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs",children:es.eventType.replace(/_/g," ")}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:formatEventTimestamp(es.timestamp)})]}),es.content&&jsxRuntimeExports.jsxs("p",{className:"text-sm mt-1 text-muted-foreground whitespace-pre-wrap break-words",children:[es.content.slice(0,300),es.content.length>300&&"..."]})]})})}function TokenUsageBar({usage:es}){const $=es.input_tokens??0,ts=es.output_tokens??0,is=es.cache_read_input_tokens??0,Kr=es.cache_creation_input_tokens??0,Qr=$+ts+is+Kr;if(Qr===0)return null;const ja=[{value:is,color:"bg-teal-500",label:"cache read"},{value:Kr,color:"bg-amber-500",label:"cache write"},{value:$,color:"bg-blue-500",label:"input"},{value:ts,color:"bg-primary",label:"output"}].filter(Ca=>Ca.value>0);return jsxRuntimeExports.jsxs("div",{className:"mt-2",children:[jsxRuntimeExports.jsx("div",{className:"h-1.5 rounded-full bg-secondary overflow-hidden flex",children:ja.map(Ca=>jsxRuntimeExports.jsx("div",{className:`${Ca.color} h-full`,style:{width:`${Ca.value/Qr*100}%`},title:`${Ca.label}: ${formatTokenCount(Ca.value)}`},Ca.label))}),jsxRuntimeExports.jsx("div",{className:"flex gap-3 mt-1",children:ja.map(Ca=>jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground flex items-center gap-1",children:[jsxRuntimeExports.jsx("span",{className:`inline-block w-1.5 h-1.5 rounded-full ${Ca.color}`}),formatTokenCount(Ca.value)," ",Ca.label]},Ca.label))})]})}function AssistantResponseCard({event:es}){const $=es.metadata??{},ts=eventUsage(es),is=$.stop_reason,Kr=$.content_block_types,Qr=$.model,ja=$.response_time_ms,Ca=$.streaming;return jsxRuntimeExports.jsx("div",{className:"mt-3 ml-8",children:jsxRuntimeExports.jsxs("div",{className:"bg-primary/5 border border-primary/20 rounded-lg px-4 py-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[jsxRuntimeExports.jsx(Sparkles,{className:"h-3.5 w-3.5 text-primary shrink-0"}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium text-primary",children:"Response"}),Qr&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] font-mono px-1.5 py-0 border-primary/30 text-primary/80",children:Qr}),ja!=null&&jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[jsxRuntimeExports.jsx(Clock,{className:"h-3 w-3"}),ja<1e3?`${ja}ms`:`${(ja/1e3).toFixed(1)}s`]}),is&&jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"text-[10px] font-mono px-1.5 py-0",children:is}),Ca&&jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"text-[10px] px-1.5 py-0",children:"stream"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground ml-auto",children:formatEventTimestamp(es.timestamp)})]}),ts&&jsxRuntimeExports.jsxs("div",{className:"flex gap-2 mt-2 flex-wrap",children:[ts.output_tokens>0&&jsxRuntimeExports.jsxs("span",{className:"text-[11px] font-mono bg-primary/10 text-primary px-2 py-0.5 rounded-full",children:[formatTokenCount(ts.output_tokens)," out"]}),ts.input_tokens>0&&jsxRuntimeExports.jsxs("span",{className:"text-[11px] font-mono bg-blue-500/10 text-blue-400 px-2 py-0.5 rounded-full",children:[formatTokenCount(ts.input_tokens)," in"]}),ts.cache_read_input_tokens>0&&jsxRuntimeExports.jsxs("span",{className:"text-[11px] font-mono bg-teal-500/10 text-teal-400 px-2 py-0.5 rounded-full",children:[formatTokenCount(ts.cache_read_input_tokens)," cache"]}),ts.cache_creation_input_tokens>0&&jsxRuntimeExports.jsxs("span",{className:"text-[11px] font-mono bg-amber-500/10 text-amber-400 px-2 py-0.5 rounded-full",children:[formatTokenCount(ts.cache_creation_input_tokens)," cached"]})]}),es.content&&jsxRuntimeExports.jsx("div",{className:"mt-2 text-sm text-foreground/90 whitespace-pre-wrap break-words leading-relaxed",children:es.content}),Kr&&Object.keys(Kr).length>0&&jsxRuntimeExports.jsx("div",{className:"flex gap-2 mt-2",children:Object.entries(Kr).map(([Aa,Oa])=>jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[Aa,"(",Oa,")"]},Aa))}),ts&&jsxRuntimeExports.jsx(TokenUsageBar,{usage:ts})]})})}function renderEvent(es){switch(es.eventType){case"user_message":return jsxRuntimeExports.jsx(UserBubble,{event:es});case"assistant_message":return isBlankAssistantMessage(es)?jsxRuntimeExports.jsx(AssistantResponseCard,{event:es}):jsxRuntimeExports.jsx(AssistantBubble,{event:es});case"assistant_response":return jsxRuntimeExports.jsx(AssistantResponseCard,{event:es});case"tool_call":return jsxRuntimeExports.jsx(ToolCallCard,{event:es});case"thinking":return jsxRuntimeExports.jsx(ThinkingBubble,{event:es});case"tool_result":return jsxRuntimeExports.jsx(ToolResultCard,{event:es});default:return jsxRuntimeExports.jsx(GenericEvent,{event:es})}}function InlineTurnSnapshot({snapshot:es}){var Aa;const[$,ts]=reactExports.useState(!1),{data:is}=useContextSnapshotDetail($?es.id:void 0),Kr=is??es,Qr=reactExports.useMemo(()=>$?getContextItems(Kr):[],[$,Kr]),ja=reactExports.useMemo(()=>{var Ia;return((es.metadata??{}).contextItems??[]).length||(((Ia=es.injectedInstructions)==null?void 0:Ia.length)??0)},[es]),Ca=PROVIDER_COLORS[es.provider]??PROVIDER_COLORS.ollama;return jsxRuntimeExports.jsxs("div",{className:"ml-8 mt-2",children:[jsxRuntimeExports.jsx("div",{className:"border border-border border-l-2 border-l-cyan-500 rounded-lg px-3 py-2 bg-card cursor-pointer hover:bg-secondary/30 transition-colors",...activatable(()=>ts(!$)),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[jsxRuntimeExports.jsx(Eye,{className:"h-3.5 w-3.5 text-cyan-500 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"text-xs font-medium text-cyan-600 dark:text-cyan-400",children:"Snapshot"}),jsxRuntimeExports.jsx(Badge,{className:`text-[10px] font-mono border ${Ca} px-1.5 py-0`,children:es.provider}),jsxRuntimeExports.jsx("span",{className:"text-[11px] font-mono text-muted-foreground",children:es.model}),jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground",children:["~",(es.estimatedTokens??0).toLocaleString()," tok"]}),ja>0&&jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[ja," context items"]}),Array.isArray(es.tools)&&es.tools.length>0&&jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[es.tools.length," tools"]}),jsxRuntimeExports.jsx("div",{className:"flex-1"}),$?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]})}),$&&jsxRuntimeExports.jsx("div",{className:"ml-4 mt-2 space-y-2",children:is?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Qr.length>0&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium text-muted-foreground mb-1",children:"Context Items"}),Object.entries(Qr.reduce((Oa,Ia)=>{var Da;return(Oa[Da=Ia.type]??(Oa[Da]=[])).push(Ia),Oa},{})).map(([Oa,Ia])=>jsxRuntimeExports.jsxs("div",{className:"mb-1",children:[jsxRuntimeExports.jsxs("p",{className:"text-[10px] font-medium text-muted-foreground/70 capitalize mb-0.5",children:[Oa.replace(/_/g," ")," (",Ia.length,")"]}),Ia.map((Da,Ba)=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 px-2 py-1 text-xs font-mono text-muted-foreground",children:[jsxRuntimeExports.jsx("span",{className:"truncate",children:Da.name}),Da.estimated_tokens!=null&&jsxRuntimeExports.jsxs("span",{className:"text-[10px] shrink-0",children:["~",Da.estimated_tokens.toLocaleString()," tok"]})]},Ba))]},Oa))]}),Kr.systemPrompt&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsxs("span",{children:["System prompt: ",(Kr.systemPrompt.length??0).toLocaleString()," chars"]}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-[10px]",children:["hash: ",((Aa=Kr.systemHash)==null?void 0:Aa.slice(0,12))??"..."]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 text-xs text-muted-foreground flex-wrap",children:[Kr.maxTokens!=null&&jsxRuntimeExports.jsxs("span",{children:["Max tokens: ",Kr.maxTokens.toLocaleString()]}),Kr.temperature!=null&&jsxRuntimeExports.jsxs("span",{children:["Temp: ",Kr.temperature]}),Array.isArray(Kr.tools)&&jsxRuntimeExports.jsxs("span",{children:[Kr.tools.length," tools available"]})]})]}):jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 py-2 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin"}),"Loading snapshot..."]})})]})}function TurnContainer({turn:es,index:$,totalTurns:ts,snapshot:is,hideSnapshot:Kr}){var Aa,Oa,Ia,Da,Ba;const Qr=es.events.filter(Ma=>Ma.eventType==="tool_call").length,ja=eventUsage(es.assistantResponse)??((Aa=is==null?void 0:is.metadata)==null?void 0:Aa.usage),Ca=ja==null?void 0:ja.output_tokens;return((Ia=(Oa=es.assistantResponse)==null?void 0:Oa.metadata)==null?void 0:Ia.response_time_ms)??((Ba=(Da=is==null?void 0:is.metadata)==null?void 0:Da.responseHeaders)==null||Ba["server-timing"]),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 pt-6 pb-2",children:[jsxRuntimeExports.jsxs("div",{className:"text-xs font-mono text-muted-foreground/60",children:["Turn ",ts-$]}),jsxRuntimeExports.jsx("div",{className:"h-px flex-1 bg-border/50"}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[Qr>0&&jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[Qr," tool",Qr!==1?"s":""]}),Ca!=null&&Ca>0&&jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground flex items-center gap-1",children:[jsxRuntimeExports.jsx(Zap,{className:"h-2.5 w-2.5"}),formatTokenCount(Ca)," tokens"]})]})]}),jsxRuntimeExports.jsxs("div",{className:"relative pl-6",children:[jsxRuntimeExports.jsx("div",{className:"absolute left-[11px] top-0 bottom-0 w-px bg-border/40"}),es.userMessage&&jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx("div",{className:"absolute left-[-17px] top-4 w-2 h-2 rounded-full bg-blue-500 ring-2 ring-background"}),jsxRuntimeExports.jsx(UserBubble,{event:es.userMessage})]}),es.events.map(Ma=>{if(Ma.eventType==="assistant_response")return jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx("div",{className:"absolute left-[-17px] top-4 w-2 h-2 rounded-full bg-primary ring-2 ring-background"}),jsxRuntimeExports.jsx(AssistantResponseCard,{event:Ma})]},Ma.id);const Fa=Ma.eventType==="tool_call"?"bg-amber-500":Ma.eventType==="thinking"?"bg-rose-500":Ma.eventType==="tool_result"?"bg-teal-500":Ma.eventType==="assistant_message"?"bg-primary":"bg-muted-foreground";return jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx("div",{className:`absolute left-[-17px] top-3 w-2 h-2 rounded-full ${Fa} ring-2 ring-background`}),renderEvent(Ma)]},Ma.id)}),is&&!Kr&&jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx("div",{className:"absolute left-[-17px] top-3 w-2 h-2 rounded-full bg-cyan-500 ring-2 ring-background"}),jsxRuntimeExports.jsx(InlineTurnSnapshot,{snapshot:is})]})]})]})}function SessionDetailPage(){var ic,Lu;const{id:es}=useParams(),[$,ts]=useSearchParams(),{data:is,isLoading:Kr}=useSession(es),{data:Qr,isLoading:ja,hasNextPage:Ca,fetchNextPage:Aa,isFetchingNextPage:Oa}=useSessionEventsInfinite(es),Ia=useAnalyzeSession(),Da=useCreateLaunchJob(),Ba=(ic=Ia.data)==null?void 0:ic.jobId,{data:Ma}=useInsightsJob(Ba),[Fa,qa]=reactExports.useState(""),{data:Ha}=useContextSnapshots(es),Ka=$.get("filter"),[Qa,Va]=reactExports.useState(Ka??"turns"),Ya=$.get("layout"),[Wa,el]=reactExports.useState(Ya??"default"),tl=reactExports.useMemo(()=>(Qr==null?void 0:Qr.pages.flat())??[],[Qr]),rl=reactExports.useMemo(()=>{switch(Qa){case"conversation":return tl.filter(Bl=>Bl.eventType==="user_message"||isAgentResponseEvent(Bl));case"tools":return tl.filter(Bl=>Bl.eventType==="tool_call");case"responses":return tl.filter(isAgentResponseEvent);default:return tl}},[tl,Qa]),cl=reactExports.useMemo(()=>groupEventsIntoTurns([...tl].sort((Bl,su)=>Bl.sequence-su.sequence)),[tl]),dl=reactExports.useMemo(()=>((is==null?void 0:is.linkedInstructions)??[]).filter(Bl=>Bl.linkMethod==="context_file"),[is==null?void 0:is.linkedInstructions]),fl=reactExports.useMemo(()=>((is==null?void 0:is.linkedInstructions)??[]).filter(Bl=>Bl.linkMethod!=="context_file"),[is==null?void 0:is.linkedInstructions]),nl=reactExports.useMemo(()=>{if(is!=null&&is.eventCounts){const Eu=is.eventCounts.byType??{};return{messages:is.eventCounts.messages,tools:is.eventCounts.toolCalls,assistantResponses:(Eu.assistant_response??0)+(Eu.assistant_message??0),total:is.eventCounts.total}}const Bl=tl.filter(Eu=>Eu.eventType==="user_message"||Eu.eventType==="assistant_message").length,su=tl.filter(Eu=>Eu.eventType==="tool_call").length;return{messages:Bl,tools:su,assistantResponses:0,total:tl.length}},[is==null?void 0:is.eventCounts,tl]);if(Kr)return jsxRuntimeExports.jsx(Skeleton,{className:"h-96 w-full"});if(!is)return jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Session not found"});const ol=is.analysis,pl=ol==null?void 0:ol.adherenceScore,Tl=ol==null?void 0:ol.summary,ul=ol==null?void 0:ol.suggestions,hl=ol==null?void 0:ol.brief_summary,jl=ol==null?void 0:ol.underlying_goal,Nl=ol==null?void 0:ol.outcome,zl=ol==null?void 0:ol.session_type,Zl=ol==null?void 0:ol.goal_categories,$l=ol==null?void 0:ol.friction_counts,Il=ol==null?void 0:ol.friction_detail,ql=ol==null?void 0:ol.primary_success,Fl=ol==null?void 0:ol.tool,ru=is.analyzedAt??(ol==null?void 0:ol.analyzed_at),Gl=is.analyzedEventCount??(ol==null?void 0:ol.analyzed_event_count),cu=is.analyzedTurnCount??(ol==null?void 0:ol.analyzed_turn_count),Al=!!hl||!!jl,Ml=Object.values($l??{}).reduce((Bl,su)=>Bl+su,0),Ql=is.endedAt?Math.max(0,Math.round((new Date(is.endedAt).getTime()-new Date(is.startedAt).getTime())/6e4)):null,eu=ol?jsxRuntimeExports.jsxs("div",{className:`mt-2 flex items-center gap-2 rounded-md border px-3 py-1.5 text-xs ${ru?"border-border bg-muted/40 text-foreground":"border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-300"}`,children:[jsxRuntimeExports.jsx(Clock,{className:"h-3.5 w-3.5 shrink-0"}),jsxRuntimeExports.jsx("div",{className:"flex-1 font-mono",children:ru?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{className:"font-medium",children:"Analyzed"})," ",formatEventTimestamp(ru),jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:[" ","(",new Date(ru).toLocaleString(),")"]}),(cu!=null||Gl!=null)&&jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:[" · ",cu!=null&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["through turn ",cu]}),Gl!=null&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[cu!=null?" ":"","(",Gl," event",Gl===1?"":"s",")"]})]})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{className:"font-medium",children:"Analyzed at unknown time"})," — ","this analysis predates timestamp tracking. Re-analyze to record when it ran and which turn it covered."]})}),!ru&&canAnalyzeWithToolCli(is.tool)&&jsxRuntimeExports.jsx(Button,{size:"sm",variant:"outline",className:"h-7 cursor-pointer text-xs",onClick:()=>Ia.mutate(is.id),disabled:Ia.isPending||Ia.isSuccess,children:Ia.isPending?"Submitting...":Ia.isSuccess?"Queued":"Re-analyze"})]}):null,fu=(is.metadata??{}).clientName,Iu=[{key:"turns",label:"Turns"},{key:"all",label:"All"},{key:"conversation",label:"Conversation"},{key:"tools",label:"Tools"},{key:"responses",label:"Responses"}],yu=(()=>{if(is.tool!=="claude_code"||!is.externalSessionId)return!1;if(!is.endedAt||new Date(is.endedAt).getTime()<new Date(is.startedAt).getTime())return!0;const Bl=10080*60*1e3;return Date.now()-new Date(is.endedAt).getTime()<Bl})();return jsxRuntimeExports.jsxs("div",{className:`space-y-6 ${yu?"pb-40":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"icon",className:"cursor-pointer shrink-0",asChild:!0,children:jsxRuntimeExports.jsx(Link,{to:"/sessions",children:jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"})})}),jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Session Detail"}),is.gitBranch&&jsxRuntimeExports.jsxs("span",{title:`git branch: ${is.gitBranch}`,className:"inline-flex items-center gap-1.5 rounded-md border border-primary/40 bg-primary/10 px-2.5 py-1 font-mono text-sm font-semibold text-primary max-w-[11rem] sm:max-w-[18rem] truncate",children:[jsxRuntimeExports.jsx(GitBranch,{className:"h-4 w-4 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"truncate",children:is.gitBranch})]})]}),jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground font-mono text-sm flex items-center gap-1.5 flex-wrap",children:[jsxRuntimeExports.jsx(ToolIcon,{tool:is.tool,className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{children:displayTool(is.tool)}),is.harnessVersion&&jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground/60",title:"harness version",children:["v",is.harnessVersion]}),fu&&jsxRuntimeExports.jsxs("span",{children:["(",fu,")"]}),is.model&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"·"}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground/80",title:"model (rolled up from the transcript)",children:is.model})]}),jsxRuntimeExports.jsx("span",{children:"·"}),jsxRuntimeExports.jsx("span",{children:projectDisplayName(is)}),jsxRuntimeExports.jsx("span",{children:"·"}),jsxRuntimeExports.jsx("span",{children:formatEventTimestamp(is.startedAt)})," ",jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground/60",children:["(",is.startedAt?new Date(is.startedAt).toLocaleString():"—",")"]})]}),nl.total>0&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground mt-0.5",children:[nl.messages," messages, ",nl.tools," tool calls",nl.assistantResponses>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[", ",nl.assistantResponses," responses"]})]})]})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2",children:!ol&&canAnalyzeWithToolCli(is.tool)&&jsxRuntimeExports.jsx(Button,{onClick:()=>Ia.mutate(is.id),disabled:Ia.isPending||Ia.isSuccess,className:"cursor-pointer bg-primary text-primary-foreground",children:Ia.isPending?"Submitting...":Ia.isSuccess?"Analysis queued...":`Analyze via ${displayTool(is.tool)}`})})]}),jsxRuntimeExports.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:[jsxRuntimeExports.jsx(Card,{className:"bg-card",children:jsxRuntimeExports.jsxs(CardContent,{className:"p-4",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Outcome"}),jsxRuntimeExports.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[Nl==="achieved"||Nl==="mostly_achieved"?jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 text-teal-500"}):jsxRuntimeExports.jsx(CircleHelp,{className:"h-4 w-4 text-muted-foreground"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-lg font-semibold capitalize",children:(Nl==null?void 0:Nl.replace(/_/g," "))??"Not analyzed"})]})]})}),jsxRuntimeExports.jsx(Card,{className:"bg-card",children:jsxRuntimeExports.jsxs(CardContent,{className:"p-4",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Activity"}),jsxRuntimeExports.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[jsxRuntimeExports.jsx(MessageSquare,{className:"h-4 w-4 text-blue-500"}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-lg font-semibold",children:[nl.messages," messages"]})]}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:[nl.tools," tool calls · ",nl.total," events"]})]})}),jsxRuntimeExports.jsx(Card,{className:"bg-card",children:jsxRuntimeExports.jsxs(CardContent,{className:"p-4",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Elapsed time"}),jsxRuntimeExports.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Clock,{className:"h-4 w-4 text-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-lg font-semibold",children:Ql==null?"In progress":Ql<60?`${Ql}m`:`${Math.floor(Ql/60)}h ${Ql%60}m`})]})]})}),jsxRuntimeExports.jsx(Card,{className:Ml>0?"border-amber-500/30 bg-amber-500/5":"bg-card",children:jsxRuntimeExports.jsxs(CardContent,{className:"p-4",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Friction"}),jsxRuntimeExports.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:`h-4 w-4 ${Ml?"text-amber-500":"text-muted-foreground"}`}),jsxRuntimeExports.jsx("span",{className:"font-mono text-lg font-semibold",children:ol?`${Ml} signal${Ml===1?"":"s"}`:"Unknown"})]})]})})]}),(jl||hl)&&jsxRuntimeExports.jsx(Card,{className:"border-primary/20 bg-primary/[0.03]",children:jsxRuntimeExports.jsxs(CardContent,{className:"p-5",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Session goal"}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-base font-medium",children:jl??hl}),jl&&hl&&jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:hl})]})}),Ma&&Ma.status!=="completed"&&jsxRuntimeExports.jsx(Card,{className:"bg-card border-border border-l-2 border-l-primary",children:jsxRuntimeExports.jsx(CardContent,{className:"pt-4 pb-4",children:jsxRuntimeExports.jsx("div",{className:"flex items-center gap-3",children:Ma.status==="failed"?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(X$1,{className:"h-4 w-4 text-destructive"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-destructive",children:"Analysis failed"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:Ma.error})]})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin text-primary"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("p",{className:"text-sm font-medium",children:[Ma.status==="pending"&&"Waiting for worker...",Ma.status==="claimed"&&"Worker picked up job...",Ma.status==="running"&&"Analyzing session..."]}),!!((Lu=Ma.progress)!=null&&Lu.step)&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:[String(Ma.progress.step).replace(/_/g," "),!!Ma.progress.tool&&` via ${displayTool(String(Ma.progress.tool))}`]})]})]})})})}),ol&&Al?jsxRuntimeExports.jsxs(Card,{className:"bg-card border-border",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs(CardTitle,{className:"font-mono text-lg flex items-center gap-2",children:["Analysis",Nl&&jsxRuntimeExports.jsx(Badge,{variant:Nl==="achieved"||Nl==="mostly_achieved"?"default":Nl==="partially_achieved"?"secondary":"destructive",className:"font-mono",children:Nl.replace(/_/g," ")}),zl&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"font-mono text-xs",children:zl.replace(/_/g," ")}),Fl&&jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground ml-auto",children:["via ",displayTool(Fl)]})]}),eu]}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-4",children:[hl&&jsxRuntimeExports.jsx("p",{className:"text-sm",children:hl}),jl&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium text-muted-foreground mb-1",children:"Goal"}),jsxRuntimeExports.jsx("p",{className:"text-sm",children:jl})]}),ql&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium text-muted-foreground mb-1",children:"Primary Success"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-teal-600 dark:text-teal-400",children:ql})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[Zl&&Object.keys(Zl).length>0&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium text-muted-foreground mb-2",children:"Goal Categories"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.entries(Zl).filter(([,Bl])=>Bl>0).sort(([,Bl],[,su])=>su-Bl).map(([Bl,su])=>jsxRuntimeExports.jsxs(Badge,{variant:"secondary",className:"text-xs font-mono",children:[Bl.replace(/_/g," ")," ",su>1?`(${su})`:""]},Bl))})]}),$l&&Object.values($l).some(Bl=>Bl>0)&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium text-muted-foreground mb-2",children:"Friction Points"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.entries($l).filter(([,Bl])=>Bl>0).sort(([,Bl],[,su])=>su-Bl).map(([Bl,su])=>jsxRuntimeExports.jsxs(Badge,{variant:"destructive",className:"text-xs font-mono",children:[Bl.replace(/_/g," ")," (",su,")"]},Bl))}),Il&&jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-1.5",children:Il})]})]})]})]}):ol&&jsxRuntimeExports.jsxs(Card,{className:"bg-card border-border",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs(CardTitle,{className:"font-mono text-lg flex items-center gap-2",children:["Analysis",pl!=null&&jsxRuntimeExports.jsxs(Badge,{variant:pl>=80?"default":pl>=50?"secondary":"destructive",className:"font-mono",children:[pl,"% adherence"]})]}),eu]}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-4",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:Tl}),ul&&ul.length>0&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-2",children:"Suggestions"}),ul.map((Bl,su)=>jsxRuntimeExports.jsxs("div",{className:"border border-border rounded p-3 mb-2 bg-background",children:[jsxRuntimeExports.jsx("p",{className:"text-sm",children:Bl.rationale}),jsxRuntimeExports.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Current"}),jsxRuntimeExports.jsx("pre",{className:"text-xs font-mono p-2 bg-card rounded",children:Bl.currentContent})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-primary mb-1",children:"Suggested"}),jsxRuntimeExports.jsx("pre",{className:"text-xs font-mono p-2 bg-card rounded border-primary/20 border",children:Bl.suggestedContent})]})]})]},su))]})]})]}),jsxRuntimeExports.jsxs(TooltipProvider,{children:[(dl.length>0||fl.length>0)&&jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[dl.length>0&&jsxRuntimeExports.jsx(ContextBlock,{instructions:dl}),fl.length>0&&fl.map(Bl=>jsxRuntimeExports.jsx(InstructionCard,{instruction:Bl},Bl.instructionId))]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-4",children:[jsxRuntimeExports.jsxs("h3",{className:"text-sm font-medium flex items-center gap-1.5",children:["Timeline",jsxRuntimeExports.jsx(InfoTip,{content:"Conversation turns between you and the AI, including tool calls, thinking, and responses. Proxy snapshots show the exact context sent to the LLM for each turn."})]}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1 ml-auto",children:Iu.map(Bl=>jsxRuntimeExports.jsx(Badge,{asChild:!0,className:"py-1",variant:Qa===Bl.key?"default":"outline",children:jsxRuntimeExports.jsx("button",{type:"button",className:"cursor-pointer",onClick:()=>Va(Bl.key),children:Bl.label})},Bl.key))}),((Ha==null?void 0:Ha.length)??0)>0&&jsxRuntimeExports.jsxs(Badge,{variant:"secondary",className:"text-xs font-mono shrink-0",children:[Ha.length," snapshots"]})]}),Qa==="turns"&&jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-3 text-xs",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground font-mono",children:"Layout"}),[{key:"default",label:"Inline"},{key:"split",label:"Side panel"},{key:"capped",label:"Capped + summary"}].map(Bl=>jsxRuntimeExports.jsx(Badge,{asChild:!0,className:"py-1",variant:Wa===Bl.key?"default":"outline",children:jsxRuntimeExports.jsx("button",{type:"button",className:"cursor-pointer",onClick:()=>{el(Bl.key);const su=new URLSearchParams($);Bl.key==="default"?su.delete("layout"):su.set("layout",Bl.key),ts(su,{replace:!0})},children:Bl.label})},Bl.key))]}),ja?jsxRuntimeExports.jsx("div",{className:"space-y-2",children:Array.from({length:10}).map((Bl,su)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-16 w-full"},su))}):Qa==="turns"?jsxRuntimeExports.jsxs("div",{children:[cl.length===0&&((Ha==null?void 0:Ha.length)??0)===0?jsxRuntimeExports.jsxs("div",{className:"text-center py-12 text-muted-foreground",children:[jsxRuntimeExports.jsx(FileText,{className:"mx-auto h-12 w-12 mb-4 opacity-50"}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:"No activity captured"}),jsxRuntimeExports.jsxs("p",{className:"text-sm mt-1",children:["Use ",jsxRuntimeExports.jsx("code",{className:"font-mono text-xs bg-secondary px-1 py-0.5 rounded",children:"rulemetric proxy start"})," to capture LLM context, or install hooks for event capture"]})]}):cl.length===0?jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground py-8 text-center",children:["No conversation turns — ",(Ha==null?void 0:Ha.length)??0," proxy snapshots captured."]}):(()=>{var Eu,lc;const Bl=((lc=(Eu=is==null?void 0:is.eventCounts)==null?void 0:Eu.byType)==null?void 0:lc.user_message)??cl.length,su=[...cl].map((ku,bu)=>({turn:ku,chronoIdx:bu})).reverse();if(Wa==="split")return jsxRuntimeExports.jsx("div",{className:"space-y-2",children:su.map(({turn:ku,chronoIdx:bu},Ua)=>{var yl;const ll=Ha==null?void 0:Ha[bu];return jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[minmax(0,1fr)_360px] gap-6 border-t border-border/40 first:border-t-0",children:[jsxRuntimeExports.jsx(TurnContainer,{turn:ku,index:Ua,totalTurns:Bl,snapshot:ll,hideSnapshot:!0}),jsxRuntimeExports.jsx("div",{className:"hidden lg:block pt-6",children:ll?jsxRuntimeExports.jsx("div",{className:"sticky top-4",children:jsxRuntimeExports.jsx(InlineTurnSnapshot,{snapshot:ll})}):jsxRuntimeExports.jsx("div",{className:"sticky top-4 text-xs text-muted-foreground/60 font-mono pt-2",children:"No snapshot for this turn"})})]},((yl=ku.userMessage)==null?void 0:yl.id)??`turn-${bu}`)})});if(Wa==="capped"){const ku=(Ha??[]).reduce((Ua,ll)=>Ua+(ll.estimatedTokens??0),0),bu=nl.tools;return jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-[minmax(0,1fr)_320px] gap-8",children:[jsxRuntimeExports.jsx("div",{className:"max-w-3xl",children:su.map(({turn:Ua,chronoIdx:ll},yl)=>{var Dl;return jsxRuntimeExports.jsx(TurnContainer,{turn:Ua,index:yl,totalTurns:Bl,snapshot:Ha==null?void 0:Ha[ll]},((Dl=Ua.userMessage)==null?void 0:Dl.id)??`turn-${ll}`)})}),jsxRuntimeExports.jsx("aside",{className:"hidden xl:block",children:jsxRuntimeExports.jsxs("div",{className:"sticky top-4 space-y-3 border border-border rounded-lg p-4 bg-card",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"Session Summary"}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Turns"}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:Bl})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Tool calls"}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:bu})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Snapshots"}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:(Ha==null?void 0:Ha.length)??0})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"~Total tokens"}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:ku.toLocaleString()})]})]}),jsxRuntimeExports.jsxs("div",{className:"border-t border-border/40 pt-3",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium text-muted-foreground mb-2",children:"Per-turn"}),jsxRuntimeExports.jsx("div",{className:"space-y-1 max-h-96 overflow-y-auto pr-1",children:su.map(({turn:Ua,chronoIdx:ll},yl)=>{var bl,_l;const Dl=Ha==null?void 0:Ha[ll],kl=Bl-yl,Ga=Ua.events.filter(Ol=>Ol.eventType==="tool_call").length,al=eventUsage(Ua.assistantResponse)??((bl=Dl==null?void 0:Dl.metadata)==null?void 0:bl.usage),El=al==null?void 0:al.output_tokens;return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-[11px] font-mono",children:[jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground/60 w-10",children:["T",kl]}),Ga>0&&jsxRuntimeExports.jsxs("span",{className:"text-amber-500",children:[Ga,"t"]}),El!=null&&El>0&&jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:[formatTokenCount(El),"tk"]}),(Dl==null?void 0:Dl.estimatedTokens)!=null&&jsxRuntimeExports.jsxs("span",{className:"text-cyan-500/80 ml-auto",children:[formatTokenCount(Dl.estimatedTokens)," ctx"]})]},((_l=Ua.userMessage)==null?void 0:_l.id)??`meta-${ll}`)})})]})]})})]})}return su.map(({turn:ku,chronoIdx:bu},Ua)=>{var ll;return jsxRuntimeExports.jsx(TurnContainer,{turn:ku,index:Ua,totalTurns:Bl,snapshot:Ha==null?void 0:Ha[bu]},((ll=ku.userMessage)==null?void 0:ll.id)??`turn-${bu}`)})})(),Ca&&jsxRuntimeExports.jsx("div",{className:"flex justify-center pt-6 pb-2",children:jsxRuntimeExports.jsx(Button,{variant:"outline",onClick:()=>Aa(),disabled:Oa,className:"cursor-pointer",children:Oa?"Loading...":"Load more events"})})]}):rl.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground py-8 text-center",children:"No events match the current filter."}):jsxRuntimeExports.jsxs("div",{children:[rl.map(Bl=>jsxRuntimeExports.jsx("div",{children:renderEvent(Bl)},Bl.id)),Ca&&jsxRuntimeExports.jsx("div",{className:"flex justify-center pt-6 pb-2",children:jsxRuntimeExports.jsx(Button,{variant:"outline",onClick:()=>Aa(),disabled:Oa,className:"cursor-pointer",children:Oa?"Loading...":"Load more events"})})]})]})]}),yu&&jsxRuntimeExports.jsx(ResumeBar,{sessionId:is.id,session:is,externalSessionId:is.externalSessionId,launchProjectPath:is.primaryCheckoutPath??is.projectPath??"/tmp",resumePrompt:Fa,setResumePrompt:qa,resumeMutation:Da})]})}function ResumeBar({sessionId:es,session:$,externalSessionId:ts,launchProjectPath:is,resumePrompt:Kr,setResumePrompt:Qr,resumeMutation:ja}){const{data:Ca}=useSessionTerminalTarget(es),Aa=useSendMessage$1(es),{data:Oa}=useLaunchJobs(),Ia=(Ca==null?void 0:Ca.target)??null,Da=(Ca==null?void 0:Ca.capabilities)??{liveSend:!1,fallbackResume:!0,tmuxAvailable:!1,workerOnline:!1},Ba=(()=>{const ol=!!(Ia&&Ia.status==="active");return!Da.workerOnline&&ol?"worker_offline":ol&&Da.liveSend?"live_ready":Ia&&Ia.status!=="active"?"target_missing":Da.tmuxAvailable?"launch_ready":"tmux_missing"})(),Ma=Aa.isPending?"sending":Aa.isError?"send_failed":Aa.isSuccess?"sent":Ba,Fa=Ba==="live_ready"&&(Ma==="live_ready"||Ma==="sending"||Ma==="sent"),qa=Fa?"Send to live Claude session… (Enter submits, Shift+Enter for newline)":"Resume this session… (Enter submits, Shift+Enter for newline)",Ha=(()=>{switch(Ma){case"live_ready":return"Send to live Claude";case"launch_ready":return"Resume in Terminal";case"tmux_missing":return"Resume in Terminal";case"target_missing":return"Start new live session";case"worker_offline":return"Worker offline";case"sending":return Fa?"Sending…":"Resuming…";case"sent":return Fa?"Sent":"Resumed";case"send_failed":return"Retry"}})(),Ka=Ma==="worker_offline"||Ma==="sending"||ja.isPending,Qa=Aa.data,Va=(Qa==null?void 0:Qa.delivery)==="live"?Qa.target.target:null,Ya=(Ia==null?void 0:Ia.attachCommand)??(Ia!=null&&Ia.target?`tmux attach -t ${Ia.target}`:null),Wa=(Oa??[]).find(ol=>{var pl;return((pl=ol.config)==null?void 0:pl.resumeSessionId)===ts}),el=Wa==null?void 0:Wa.status,tl=!!(Wa!=null&&Wa.completedAt)&&Date.now()-new Date(Wa.completedAt).getTime()<3e4,rl=(()=>{var ol;return Ma==="send_failed"?{dot:"bg-red-500",label:Aa.error instanceof Error?Aa.error.message:"Send failed"}:Ma==="sent"&&Fa&&Va?{dot:"bg-teal-500",label:`Sent to ${Va}`}:el==="pending"||el==="claimed"?{dot:"bg-amber-500 animate-pulse",label:"Queued — waiting for worker"}:el==="running"?{dot:"bg-teal-500 animate-pulse",label:(ol=Wa==null?void 0:Wa.result)!=null&&ol.pid?`Running (PID ${Wa.result.pid})`:"Running"}:el==="failed"?{dot:"bg-red-500",label:(Wa==null?void 0:Wa.error)??"Failed"}:el==="completed"&&tl?{dot:"bg-teal-500",label:"Resumed — Claude is now active"}:null})(),cl=Da.workerOnline?"":" Worker offline — job will queue and run when the worker connects.",dl=(()=>{switch(Ba){case"worker_offline":return"Start worker: `rulemetric service install` or `rulemetric evals agent`";case"tmux_missing":return"Install tmux to enable live send."+cl;case"target_missing":return"The previous tmux session ended. Starting a new one will spawn a fresh terminal."+cl;case"launch_ready":return"Live send needs a tmux target. Fallback will spawn a new terminal."+cl;default:return null}})(),fl=ol=>{ts&&ja.mutate({tool:"claude_code",projectPath:is,mode:"interactive",resumeSessionId:ts,...ol?{prompt:ol}:{}},{onSuccess:()=>{ue$1(ol?"Resume request sent":"Resume request sent (no prompt)"),Qr("")},onError:pl=>ue$1.error(pl instanceof Error?pl.message:"Failed to resume")})},nl=()=>{if(Ka)return;const ol=Kr.trim();if(!ol){if(Ba==="live_ready"){ue$1.error("Type a message to send");return}if(!ts)return;fl("");return}if(Ba==="live_ready"){Aa.mutate({message:ol,delivery:"live",submit:!0},{onSuccess:()=>Qr("")});return}ts&&fl(ol)};return jsxRuntimeExports.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-20 border-t border-border bg-background shadow-[0_-4px_20px_rgba(0,0,0,0.15)]",children:[rl&&jsxRuntimeExports.jsx("div",{className:"border-b border-border/60 bg-secondary/40",children:jsxRuntimeExports.jsxs("div",{className:"max-w-screen-xl mx-auto px-6 py-1.5 sm:px-8 flex items-center gap-2 text-xs",children:[jsxRuntimeExports.jsx("span",{className:`h-2 w-2 rounded-full ${rl.dot}`}),jsxRuntimeExports.jsx("span",{className:"font-mono",children:rl.label}),Ya&&Ma==="sent"&&Fa&&jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground/70 font-mono ml-2",children:["· ",Ya]})]})}),jsxRuntimeExports.jsxs("div",{className:"max-w-screen-xl mx-auto px-6 py-3 sm:px-8 space-y-2",children:[jsxRuntimeExports.jsx(SessionTargetSummary,{target:Ia,capabilities:Da,session:$}),dl&&jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground font-mono",children:dl}),jsxRuntimeExports.jsxs("form",{onSubmit:ol=>{ol.preventDefault(),nl()},className:"flex items-end gap-2",children:[jsxRuntimeExports.jsx("textarea",{value:Kr,onChange:ol=>Qr(ol.target.value),onKeyDown:ol=>{var pl;ol.key==="Enter"&&!ol.shiftKey&&!ol.nativeEvent.isComposing&&(ol.preventDefault(),(pl=ol.currentTarget.form)==null||pl.requestSubmit())},placeholder:qa,rows:2,className:"flex-1 resize-none rounded-md border border-input bg-card px-3 py-2 text-sm font-mono ring-offset-background placeholder:text-muted-foreground/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",disabled:Ka}),jsxRuntimeExports.jsx(Button,{type:"submit",disabled:Ka,className:"cursor-pointer self-end",children:Ha})]})]})]})}function useProjects(es={}){const $=new URLSearchParams;es.limit&&$.set("limit",String(es.limit)),es.offset&&$.set("offset",String(es.offset));const ts=$.toString();return useQuery({queryKey:["projects",es],queryFn:()=>apiGet(`/api/projects${ts?`?${ts}`:""}`),refetchInterval:POLL.ACTIVE})}function useProject(es){return useQuery({queryKey:["projects",es],queryFn:()=>apiGet(`/api/projects/${es}`),enabled:!!es,refetchInterval:POLL.ACTIVE})}function Select({...es}){return jsxRuntimeExports.jsx(Root2$1,{"data-slot":"select",...es})}function SelectValue({...es}){return jsxRuntimeExports.jsx(Value,{"data-slot":"select-value",...es})}function SelectTrigger({className:es,size:$="default",children:ts,...is}){return jsxRuntimeExports.jsxs(Trigger$3,{"data-slot":"select-trigger","data-size":$,className:cn$1("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",es),...is,children:[ts,jsxRuntimeExports.jsx(Icon,{asChild:!0,children:jsxRuntimeExports.jsx(ChevronDown,{className:"size-4 opacity-50"})})]})}function SelectContent({className:es,children:$,position:ts="item-aligned",align:is="center",...Kr}){return jsxRuntimeExports.jsx(Portal$2,{children:jsxRuntimeExports.jsxs(Content2$2,{"data-slot":"select-content",className:cn$1("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",ts==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",es),position:ts,align:is,...Kr,children:[jsxRuntimeExports.jsx(SelectScrollUpButton,{}),jsxRuntimeExports.jsx(Viewport,{className:cn$1("p-1",ts==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:$}),jsxRuntimeExports.jsx(SelectScrollDownButton,{})]})})}function SelectItem({className:es,children:$,...ts}){return jsxRuntimeExports.jsxs(Item,{"data-slot":"select-item",className:cn$1("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",es),...ts,children:[jsxRuntimeExports.jsx("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:jsxRuntimeExports.jsx(ItemIndicator,{children:jsxRuntimeExports.jsx(Check,{className:"size-4"})})}),jsxRuntimeExports.jsx(ItemText,{children:$})]})}function SelectScrollUpButton({className:es,...$}){return jsxRuntimeExports.jsx(ScrollUpButton,{"data-slot":"select-scroll-up-button",className:cn$1("flex cursor-default items-center justify-center py-1",es),...$,children:jsxRuntimeExports.jsx(ChevronUp,{className:"size-4"})})}function SelectScrollDownButton({className:es,...$}){return jsxRuntimeExports.jsx(ScrollDownButton,{"data-slot":"select-scroll-down-button",className:cn$1("flex cursor-default items-center justify-center py-1",es),...$,children:jsxRuntimeExports.jsx(ChevronDown,{className:"size-4"})})}function Textarea({className:es,...$}){return jsxRuntimeExports.jsx("textarea",{"data-slot":"textarea",className:cn$1("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",es),...$})}function sanitizeTmuxName(es){return`rm-${es.trim().replace(/[^A-Za-z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"session"}`}function previewTmuxTarget(es){return sanitizeTmuxName("claude-auto")}function LaunchSessionDialog({open:es,onOpenChange:$,initialProjectPath:ts}){const is=useNavigate(),{data:Kr}=useAvailableLaunchers(),Qr=useCreateLaunchJob(),[ja,Ca]=reactExports.useState(""),[Aa,Oa]=reactExports.useState(ts??""),[Ia,Da]=reactExports.useState(""),[Ba,Ma]=reactExports.useState(""),[Fa,qa]=reactExports.useState("interactive");reactExports.useEffect(()=>{es&&Oa(Ya=>Ya||(ts??""))},[es,ts]);const Ha=()=>{Ca(""),Oa(ts??""),Da(""),Ma(""),qa("interactive")},Ka=reactExports.useMemo(()=>previewTmuxTarget(),[]),Qa=Ya=>{Ya.preventDefault(),!(!ja||!Aa)&&Qr.mutate({tool:ja,projectPath:Aa,prompt:Ia||void 0,model:Ba||void 0,mode:Fa},{onSuccess:Wa=>{var cl;const el=Wa.result,tl=(cl=el==null?void 0:el.terminalTarget)==null?void 0:cl.target,rl=(el==null?void 0:el.terminalTarget)&&el.terminalTarget.live===!1;ue$1(Fa==="headless"?"Starting headless Claude Code job":tl?`Starting Claude Code in tmux target ${tl}`:rl?"Starting Claude Code in Terminal fallback":`Starting Claude Code in tmux target ${Ka}`),Wa.noLiveWorker&&ue$1.error("No worker online — start `rulemetric evals agent` to process this launch"),Wa.sessionId?is(`/sessions/${Wa.sessionId}`):is("/sessions"),Ha(),$(!1)},onError:Wa=>{ue$1.error(Wa instanceof Error?Wa.message:"Failed to create launch job")}})},Va=!!(ja&&Aa);return jsxRuntimeExports.jsx(Dialog,{open:es,onOpenChange:$,children:jsxRuntimeExports.jsxs(DialogContent,{className:"sm:max-w-md",children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsx(DialogTitle,{children:"Launch Session"})}),jsxRuntimeExports.jsxs("form",{onSubmit:Qa,className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"tool",children:"Tool"}),jsxRuntimeExports.jsxs(Select,{value:ja,onValueChange:Ca,children:[jsxRuntimeExports.jsx(SelectTrigger,{id:"tool",className:"w-full",children:jsxRuntimeExports.jsx(SelectValue,{placeholder:"Select a tool"})}),jsxRuntimeExports.jsx(SelectContent,{children:Kr==null?void 0:Kr.map(Ya=>jsxRuntimeExports.jsx(SelectItem,{value:Ya.tool,children:Ya.tool.replace(/_/g," ")},Ya.tool))})]})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"projectPath",children:"Project Path"}),jsxRuntimeExports.jsx(Input,{id:"projectPath",value:Aa,onChange:Ya=>Oa(Ya.target.value),placeholder:"/path/to/project",required:!0})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"prompt",children:"Prompt"}),jsxRuntimeExports.jsx(Textarea,{id:"prompt",value:Ia,onChange:Ya=>Da(Ya.target.value),placeholder:"Optional prompt for the session",rows:3})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"model",children:"Model"}),jsxRuntimeExports.jsx(Input,{id:"model",value:Ba,onChange:Ya=>Ma(Ya.target.value),placeholder:"Optional model override"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"mode",children:"Mode"}),jsxRuntimeExports.jsxs(Select,{value:Fa,onValueChange:Ya=>qa(Ya),children:[jsxRuntimeExports.jsx(SelectTrigger,{id:"mode",className:"w-full",children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:"interactive",children:"Interactive"}),jsxRuntimeExports.jsx(SelectItem,{value:"headless",children:"Headless"})]})]})]}),Va&&jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3 text-xs font-mono space-y-1",children:[jsxRuntimeExports.jsx("div",{className:"text-muted-foreground uppercase tracking-wide text-[10px] mb-1",children:"Launch summary"}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"Tool"}),jsxRuntimeExports.jsx("span",{className:"truncate",children:ja.replace(/_/g," ")})]}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"Mode"}),jsxRuntimeExports.jsx("span",{children:Fa})]}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"Project path"}),jsxRuntimeExports.jsx("span",{className:"truncate",title:Aa,children:Aa})]}),Ia&&jsxRuntimeExports.jsxs("div",{className:"flex justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"Prompt"}),jsxRuntimeExports.jsx("span",{className:"truncate max-w-[16rem]",title:Ia,children:Ia})]}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"Expected target"}),jsxRuntimeExports.jsx("span",{className:"truncate",title:Ka,children:Ka})]}),Fa==="interactive"&&jsxRuntimeExports.jsx("div",{className:"pt-1 text-[10px] text-amber-600",children:"Live send requires tmux on the worker host."})]}),jsxRuntimeExports.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"ghost",onClick:()=>$(!1),children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"submit",disabled:!ja||!Aa||Qr.isPending,children:Qr.isPending?"Launching...":"Launch"})]})]})]})})}function ProjectCard$1({p:es,onClick:$,onLaunch:ts}){return jsxRuntimeExports.jsxs(Card,{className:"cursor-pointer hover:bg-secondary/30 transition-colors",onClick:$,children:[jsxRuntimeExports.jsxs(CardHeader,{className:"flex flex-row items-start justify-between space-y-0 pb-3",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsx("h3",{className:"font-mono text-base font-semibold truncate",children:es.name}),es.gitRemoteUrl&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground font-mono flex items-center gap-1 mt-1",children:[jsxRuntimeExports.jsx(GitBranch,{className:"h-3 w-3 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"truncate",children:es.gitRemoteUrl})]}),es.primaryCheckoutPath&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground font-mono flex items-center gap-1 mt-0.5",children:[jsxRuntimeExports.jsx(Folder,{className:"h-3 w-3 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"truncate",children:es.primaryCheckoutPath})]})]}),jsxRuntimeExports.jsx("div",{className:"flex flex-col items-end gap-1 shrink-0 ml-3",children:es.activeSessionCount>0?jsxRuntimeExports.jsxs(Badge,{className:"bg-teal-500/15 text-teal-600 border-teal-500/30",children:[es.activeSessionCount," active"]}):jsxRuntimeExports.jsx(Badge,{variant:"outline",children:"idle"})})]}),jsxRuntimeExports.jsxs(CardContent,{className:"pt-0 pb-4 text-xs text-muted-foreground font-mono flex items-center justify-between",children:[jsxRuntimeExports.jsxs("span",{children:[es.sessionCount," session",es.sessionCount===1?"":"s"," total"]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsxs("span",{children:["last activity ",formatRelativeTime(es.lastActivityAt,{fallback:"never"})]}),es.primaryCheckoutPath&&jsxRuntimeExports.jsxs(Button,{type:"button",size:"sm",variant:"outline",className:"h-7 px-2 text-[11px] cursor-pointer",onClick:is=>{is.stopPropagation(),ts(es.primaryCheckoutPath)},title:`Launch a new session in ${es.primaryCheckoutPath}`,children:[jsxRuntimeExports.jsx(Rocket,{className:"h-3 w-3 mr-1"}),"Launch"]})]})]})]})}function ProjectsListPage(){const es=useNavigate(),{data:$,isLoading:ts,isError:is}=useProjects({limit:100}),[Kr,Qr]=reactExports.useState("cards"),[ja,Ca]=reactExports.useState(!1),[Aa,Oa]=reactExports.useState(void 0),Ia=Ba=>{Oa(Ba),Ca(!0)};let Da;return ts?Da=jsxRuntimeExports.jsxs("div",{className:"grid gap-4",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-28 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-28 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-28 w-full"})]}):is?Da=jsxRuntimeExports.jsx("div",{className:"text-center py-12 text-destructive font-mono",children:"Failed to load projects."}):!$||$.projects.length===0?Da=jsxRuntimeExports.jsxs("div",{className:"text-center py-12 text-muted-foreground",children:[jsxRuntimeExports.jsx(Layers,{className:"mx-auto h-12 w-12 mb-4 opacity-50"}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:"No projects yet"}),jsxRuntimeExports.jsx("p",{className:"text-sm mt-1",children:"Projects appear after your first captured session in this org."})]}):Kr==="cards"?Da=jsxRuntimeExports.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:$.projects.map(Ba=>jsxRuntimeExports.jsx(ProjectCard$1,{p:Ba,onClick:()=>es(`/projects/${Ba.id}`),onLaunch:Ma=>Ia(Ma)},Ba.id))}):Da=jsxRuntimeExports.jsx("div",{className:"border border-border rounded-lg overflow-hidden",children:jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{className:"bg-card hover:bg-card",children:[jsxRuntimeExports.jsx(TableHead,{children:"Project"}),jsxRuntimeExports.jsx(TableHead,{className:"w-32 text-right",children:"Active"}),jsxRuntimeExports.jsx(TableHead,{className:"w-32 text-right",children:"Total"}),jsxRuntimeExports.jsx(TableHead,{className:"w-40 text-right",children:"Last activity"}),jsxRuntimeExports.jsx(TableHead,{className:"w-28 text-right",children:"Actions"})]})}),jsxRuntimeExports.jsx(TableBody,{children:$.projects.map(Ba=>jsxRuntimeExports.jsxs(TableRow,{className:"cursor-pointer hover:bg-secondary/50 transition-colors",onClick:()=>es(`/projects/${Ba.id}`),children:[jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("div",{className:"font-mono text-sm font-semibold truncate",children:Ba.name}),Ba.gitRemoteUrl&&jsxRuntimeExports.jsx("div",{className:"text-xs text-muted-foreground font-mono truncate",children:Ba.gitRemoteUrl})]})}),jsxRuntimeExports.jsx(TableCell,{className:"text-right",children:Ba.activeSessionCount>0?jsxRuntimeExports.jsx(Badge,{className:"bg-teal-500/15 text-teal-600 border-teal-500/30",children:Ba.activeSessionCount}):jsxRuntimeExports.jsx("span",{className:"text-muted-foreground font-mono text-sm",children:"—"})}),jsxRuntimeExports.jsx(TableCell,{className:"text-right font-mono text-sm",children:Ba.sessionCount}),jsxRuntimeExports.jsx(TableCell,{className:"text-right text-sm text-muted-foreground whitespace-nowrap",children:formatRelativeTime(Ba.lastActivityAt,{fallback:"never"})}),jsxRuntimeExports.jsx(TableCell,{className:"text-right",onClick:Ma=>Ma.stopPropagation(),children:Ba.primaryCheckoutPath?jsxRuntimeExports.jsxs(Button,{type:"button",size:"sm",variant:"outline",className:"h-7 px-2 text-[11px] cursor-pointer",onClick:()=>Ia(Ba.primaryCheckoutPath),title:`Launch a new session in ${Ba.primaryCheckoutPath}`,children:[jsxRuntimeExports.jsx(Rocket,{className:"h-3 w-3 mr-1"}),"Launch"]}):jsxRuntimeExports.jsx("span",{className:"text-muted-foreground text-xs",children:"—"})})]},Ba.id))})]})}),jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1 basis-56",children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Projects"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"All projects in your active org. Click one to see its sessions."})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[jsxRuntimeExports.jsxs(Button,{size:"sm",className:"h-8 cursor-pointer",onClick:()=>Ia(void 0),children:[jsxRuntimeExports.jsx(Rocket,{className:"h-3.5 w-3.5 mr-1.5"}),"Launch session"]}),jsxRuntimeExports.jsxs("div",{role:"group","aria-label":"View mode",className:"inline-flex items-center rounded-md border border-border bg-card p-0.5",children:[jsxRuntimeExports.jsx(Button,{type:"button",size:"sm",variant:Kr==="cards"?"secondary":"ghost","aria-pressed":Kr==="cards",className:"h-7 px-3 text-xs cursor-pointer",onClick:()=>Qr("cards"),children:"Cards"}),jsxRuntimeExports.jsx(Button,{type:"button",size:"sm",variant:Kr==="list"?"secondary":"ghost","aria-pressed":Kr==="list",className:"h-7 px-3 text-xs cursor-pointer",onClick:()=>Qr("list"),children:"List"})]})]})]}),Da,jsxRuntimeExports.jsx(LaunchSessionDialog,{open:ja,onOpenChange:Ca,initialProjectPath:Aa})]})}function useRuns(es={}){const $=new URLSearchParams;es.limit&&$.set("limit",String(es.limit)),es.offset&&$.set("offset",String(es.offset)),es.projectId&&$.set("projectId",es.projectId);const ts=$.toString();return useQuery({queryKey:["runs","list",es],queryFn:()=>apiGet(`/api/runs${ts?`?${ts}`:""}`),enabled:es.projectId===void 0||!!es.projectId,refetchInterval:POLL.ACTIVE})}function useRunsEnabled(){return"false"==="1"}function sessionGoal(es){var ts;const $=(ts=es.analysis)==null?void 0:ts.goalSummary;return $?{text:$,isFallback:!1}:es.firstUserPrompt?{text:es.firstUserPrompt,isFallback:!0}:{text:"(no goal yet)",isFallback:!0}}function isActive(es){if(es.endedAt)return!1;const $=new Date(es.lastActivityAt??es.startedAt).getTime();return Date.now()-$<1800*1e3}function duration$1(es){const ts=new Date(es.endedAt??es.lastActivityAt??es.startedAt).getTime()-new Date(es.startedAt).getTime();if(!Number.isFinite(ts)||ts<0)return"—";const is=Math.floor(ts/6e4);return is<1?"<1m":is<60?`${is}m`:`${Math.floor(is/60)}h ${is%60}m`}function SessionCard({s:es,emphasized:$,onOpen:ts}){const is=sessionGoal(es);return jsxRuntimeExports.jsx(Card,{className:`cursor-pointer transition-colors hover:bg-secondary/30 ${$?"border-teal-500/40 shadow-[0_0_12px_-4px_rgba(16,185,129,0.35)]":""}`,onClick:ts,children:jsxRuntimeExports.jsxs(CardContent,{className:"py-3 flex flex-col gap-2 h-full",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground font-mono flex-wrap",children:[jsxRuntimeExports.jsx(ToolIcon,{tool:captureToolKey(es.tool),className:"h-4 w-4 shrink-0"}),jsxRuntimeExports.jsx("span",{children:displayTool(es.tool)}),es.gitBranch&&jsxRuntimeExports.jsxs("span",{children:["· ",es.gitBranch]}),jsxRuntimeExports.jsxs("span",{children:["· ",formatRelativeTime(es.lastActivityAt??es.startedAt)]}),isActive(es)&&jsxRuntimeExports.jsx(Badge,{className:"bg-teal-500/15 text-teal-600 border-teal-500/30 text-[10px]",children:"active"})]}),jsxRuntimeExports.jsx("p",{className:`text-sm line-clamp-2 ${is.isFallback?"italic text-muted-foreground":"text-foreground"}`,children:is.text}),es.lastMessagePreview&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground line-clamp-2 font-mono",children:["↳ ",es.lastMessagePreview]}),jsxRuntimeExports.jsxs("div",{className:"mt-auto pt-1 text-[11px] text-muted-foreground font-mono",children:[es.eventCount," events · ",duration$1(es)]})]})})}function ProjectDetailPage(){const{id:es}=useParams(),$=useNavigate(),ts=useProject(es),is=useSessions({projectId:es,hideEmpty:!1,limit:200}),Kr=useRunsEnabled();useRuns({projectId:""});const[Qr,ja]=reactExports.useState("cards"),[Ca,Aa]=reactExports.useState(!1);if(ts.isLoading)return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-64"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-24 w-full"})]});if(ts.isError||!ts.data)return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs(Link,{to:"/projects",className:"text-sm text-muted-foreground hover:text-foreground inline-flex items-center gap-1",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-3 w-3"})," Projects"]}),jsxRuntimeExports.jsx("div",{className:"text-center py-12 text-destructive font-mono",children:"Project not found."})]});const Oa=ts.data,Ia=is.data??[],Da=null,Ba=Ia;let Ma;if(is.isLoading)Ma=jsxRuntimeExports.jsx(Skeleton,{className:"h-40 w-full"});else if(Ia.length===0)Ma=jsxRuntimeExports.jsx("div",{className:"text-center py-12 text-muted-foreground font-mono text-sm",children:"No sessions yet for this project."});else if(Qr==="cards"){const Fa=Ba.filter(isActive),qa=Ba.filter(Ha=>!isActive(Ha));Ma=jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[Fa.length>0&&jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs("span",{className:"relative flex h-2 w-2",children:[jsxRuntimeExports.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-teal-500 opacity-60"}),jsxRuntimeExports.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-teal-500"})]}),jsxRuntimeExports.jsxs("h4",{className:"text-sm font-mono font-semibold text-teal-600",children:["Active now · ",Fa.length]})]}),jsxRuntimeExports.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:Fa.map(Ha=>jsxRuntimeExports.jsx(SessionCard,{s:Ha,emphasized:!0,onOpen:()=>$(`/sessions/${Ha.id}`)},Ha.id))})]}),qa.length>0&&jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[Fa.length>0&&jsxRuntimeExports.jsx("h4",{className:"text-sm font-mono font-semibold text-muted-foreground",children:"Earlier"}),jsxRuntimeExports.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:qa.map(Ha=>jsxRuntimeExports.jsx(SessionCard,{s:Ha,onOpen:()=>$(`/sessions/${Ha.id}`)},Ha.id))})]})]})}else Ma=jsxRuntimeExports.jsx("div",{className:"border border-border rounded-lg overflow-hidden",children:jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{className:"bg-card hover:bg-card",children:[jsxRuntimeExports.jsx(TableHead,{className:"w-40",children:"Tool"}),jsxRuntimeExports.jsx(TableHead,{className:"w-40",children:"Branch"}),jsxRuntimeExports.jsx(TableHead,{children:"Goal"}),jsxRuntimeExports.jsx(TableHead,{className:"w-24",children:"Status"}),jsxRuntimeExports.jsx(TableHead,{className:"w-32 text-right",children:"Last activity"})]})}),jsxRuntimeExports.jsx(TableBody,{children:Ba.map(Fa=>{const qa=sessionGoal(Fa);return jsxRuntimeExports.jsxs(TableRow,{className:"cursor-pointer hover:bg-secondary/50 transition-colors",onClick:()=>$(`/sessions/${Fa.id}`),children:[jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(ToolIcon,{tool:captureToolKey(Fa.tool),className:"h-4 w-4 text-muted-foreground shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm truncate",children:displayTool(Fa.tool)})]})}),jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-sm text-muted-foreground",children:Fa.gitBranch??"—"}),jsxRuntimeExports.jsx(TableCell,{className:"max-w-md",children:jsxRuntimeExports.jsx("p",{className:`text-sm line-clamp-2 ${qa.isFallback?"italic text-muted-foreground":"text-foreground"}`,children:qa.text})}),jsxRuntimeExports.jsx(TableCell,{children:isActive(Fa)?jsxRuntimeExports.jsx(Badge,{className:"bg-teal-500/15 text-teal-600 border-teal-500/30",children:"active"}):Fa.endedAt?jsxRuntimeExports.jsx("span",{className:"text-muted-foreground text-xs font-mono",children:"ended"}):jsxRuntimeExports.jsx("span",{className:"text-muted-foreground text-xs font-mono",children:"idle"})}),jsxRuntimeExports.jsx(TableCell,{className:"text-right text-sm text-muted-foreground whitespace-nowrap",children:formatRelativeTime(Fa.lastActivityAt??Fa.startedAt)})]},Fa.id)})})]})});return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs(Link,{to:"/projects",className:"text-sm text-muted-foreground hover:text-foreground inline-flex items-center gap-1",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-3 w-3"})," Projects"]}),jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardHeader,{className:"pb-3",children:jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight truncate",children:Oa.name}),Oa.description&&jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Oa.description}),jsxRuntimeExports.jsxs("div",{className:"mt-2 space-y-1",children:[Oa.gitRemoteUrl&&jsxRuntimeExports.jsxs("div",{className:"text-xs text-muted-foreground font-mono flex items-center gap-1.5",children:[jsxRuntimeExports.jsx(GitBranch,{className:"h-3 w-3 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"truncate",children:Oa.gitRemoteUrl})]}),Oa.primaryCheckoutPath&&jsxRuntimeExports.jsxs("div",{className:"text-xs text-muted-foreground font-mono flex items-center gap-1.5",children:[jsxRuntimeExports.jsx(Folder,{className:"h-3 w-3 shrink-0"}),jsxRuntimeExports.jsx("span",{className:"truncate",children:Oa.primaryCheckoutPath})]})]})]}),jsxRuntimeExports.jsxs("div",{className:"text-right shrink-0 space-y-1.5 flex flex-col items-end",children:[Kr,Oa.activeSessionCount>0&&jsxRuntimeExports.jsxs(Badge,{className:"bg-teal-500/15 text-teal-600 border-teal-500/30",children:[Oa.activeSessionCount," active"]}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[Oa.sessionCount," total"]}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:["last ",formatRelativeTime(Oa.lastActivityAt)]})]})]})})}),Da,jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-mono font-semibold",children:"Sessions"}),jsxRuntimeExports.jsxs("div",{role:"group","aria-label":"View mode",className:"inline-flex items-center rounded-md border border-border bg-card p-0.5",children:[jsxRuntimeExports.jsx(Button,{type:"button",size:"sm",variant:Qr==="cards"?"secondary":"ghost","aria-pressed":Qr==="cards",className:"h-7 px-3 text-xs cursor-pointer",onClick:()=>ja("cards"),children:"Cards"}),jsxRuntimeExports.jsx(Button,{type:"button",size:"sm",variant:Qr==="list"?"secondary":"ghost","aria-pressed":Qr==="list",className:"h-7 px-3 text-xs cursor-pointer",onClick:()=>ja("list"),children:"List"})]})]}),Ma,Kr]})}function useEvalTargets(es){return useQuery({queryKey:["eval-targets",es],queryFn:()=>apiGet("/api/eval-targets")})}function useEvalTarget(es){return useQuery({queryKey:["eval-targets",es],queryFn:()=>apiGet(`/api/eval-targets/${es}`),enabled:!!es})}function useEvals(es){return useQuery({queryKey:["eval-targets",es,"evals"],queryFn:()=>apiGet(`/api/eval-targets/${es}/evals`),enabled:!!es})}function useEvalRuns(es,$){return useQuery({queryKey:["eval-targets",es,"runs",$],queryFn:()=>apiGet(`/api/eval-targets/${es}/runs`),enabled:!!es})}function useBenchmarks(es){return useQuery({queryKey:["eval-targets",es,"benchmarks"],queryFn:()=>apiGet(`/api/eval-targets/${es}/benchmarks`),enabled:!!es})}function useEvalComparisons(es){return useQuery({queryKey:["eval-targets",es,"comparisons"],queryFn:()=>apiGet(`/api/eval-targets/${es}/comparisons`),enabled:!!es})}function useEvalComparison(es,$=!0){return useQuery({queryKey:["eval-comparisons",es],queryFn:()=>apiGet(`/api/eval-comparisons/${es}`),enabled:!!es&&$})}function useGradeAnnotations(es){return useQuery({queryKey:["eval-targets",es,"annotations"],queryFn:()=>apiGet(`/api/eval-targets/${es}/annotations?limit=500`),enabled:!!es})}function useAnnotateGrade(es){const $=useQueryClient();return useMutation({mutationFn:({runId:ts,expectationIndex:is,verdict:Kr,flag:Qr,note:ja})=>apiPut(`/api/eval-runs/${ts}/annotations/${is}`,{verdict:Kr,...Qr!==void 0?{flag:Qr}:{},...ja!==void 0?{note:ja}:{}}),onSuccess:()=>{$.invalidateQueries({queryKey:["eval-targets",es,"annotations"]}),$.invalidateQueries({queryKey:["eval-targets",es,"judge-calibration"]})}})}function useRemoveGradeAnnotation(es){const $=useQueryClient();return useMutation({mutationFn:({runId:ts,expectationIndex:is})=>apiDelete(`/api/eval-runs/${ts}/annotations/${is}`),onSuccess:()=>{$.invalidateQueries({queryKey:["eval-targets",es,"annotations"]}),$.invalidateQueries({queryKey:["eval-targets",es,"judge-calibration"]})}})}function useJudgeDisagreements(es){return useQuery({queryKey:["eval-targets",es,"judge-disagreements"],queryFn:()=>apiGet(`/api/eval-targets/${es}/judge-reviews/disagreements`),enabled:!!es})}function useResolveJudgeReview(es){const $=useQueryClient();return useMutation({mutationFn:({id:ts,resolution:is})=>apiPatch(`/api/judge-reviews/${ts}/resolve`,{resolution:is}),onSuccess:()=>{$.invalidateQueries({queryKey:["eval-targets",es,"judge-disagreements"]})}})}function useJudgeCalibration(es){return useQuery({queryKey:["eval-targets",es,"judge-calibration"],queryFn:()=>apiGet(`/api/eval-targets/${es}/judge-calibration`),enabled:!!es})}function useAnnotationQueue(es){return useQuery({queryKey:["eval-targets",es,"annotation-queue"],queryFn:()=>apiGet(`/api/eval-targets/${es}/annotation-queue`),enabled:!!es})}function EvalTargetsListPage(){const es=useNavigate(),{data:$,isLoading:ts}=useEvalTargets();return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Eval Targets"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Manage eval targets and view benchmark results"})]}),ts?jsxRuntimeExports.jsx("div",{className:"space-y-2",children:Array.from({length:5}).map((is,Kr)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-12 w-full"},Kr))}):$!=null&&$.length?jsxRuntimeExports.jsx("div",{className:"border border-border rounded-lg overflow-hidden",children:jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{className:"bg-card hover:bg-card",children:[jsxRuntimeExports.jsx(TableHead,{children:"Name"}),jsxRuntimeExports.jsx(TableHead,{children:"Type"}),jsxRuntimeExports.jsx(TableHead,{className:"text-right",children:"Version"}),jsxRuntimeExports.jsx(TableHead,{children:"Description"}),jsxRuntimeExports.jsx(TableHead,{children:"Updated"})]})}),jsxRuntimeExports.jsx(TableBody,{children:$.map(is=>jsxRuntimeExports.jsxs(TableRow,{className:"cursor-pointer hover:bg-secondary/50 transition-colors",onClick:()=>es(`/eval-targets/${is.id}`),children:[jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-sm font-medium",children:is.name}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"font-mono",children:is.type})}),jsxRuntimeExports.jsxs(TableCell,{className:"text-right font-mono text-sm",children:["v",is.version]}),jsxRuntimeExports.jsx(TableCell,{className:"text-sm text-muted-foreground max-w-64 truncate",children:is.description||"—"}),jsxRuntimeExports.jsx(TableCell,{className:"text-sm text-muted-foreground",children:new Date(is.updatedAt).toLocaleDateString()})]},is.id))})]})}):jsxRuntimeExports.jsxs("div",{className:"text-center py-12 text-muted-foreground",children:[jsxRuntimeExports.jsx(FlaskConical,{className:"mx-auto h-12 w-12 mb-4 opacity-50"}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:"No eval targets yet"}),jsxRuntimeExports.jsxs("p",{className:"text-sm mt-1",children:["Create eval targets via the CLI with"," ",jsxRuntimeExports.jsx("code",{className:"bg-muted px-1 rounded",children:"rulemetric eval-targets create"})]})]})]})}function usePromotions(es){return useQuery({queryKey:["eval-targets",es,"promotions"],queryFn:()=>apiGet(`/api/eval-targets/${es}/promotions?limit=50`),enabled:!!es})}function useEvalJobs(es){return useQuery({queryKey:["eval-jobs",es],queryFn:()=>apiGet(`/api/eval-targets/${es}/jobs`),enabled:!!es})}function useCreateEvalJob(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost("/api/eval-jobs",$),onSuccess:$=>{es.invalidateQueries({queryKey:["eval-jobs",$.evalTargetId]})}})}function useCancelEvalJob(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost(`/api/eval-jobs/${$}/cancel`,{}),onSuccess:$=>{es.invalidateQueries({queryKey:["eval-jobs",$.evalTargetId]})}})}function useRealtimeEvalJobs(es,$){const ts=useQueryClient(),[is,Kr]=reactExports.useState(null);return reactExports.useEffect(()=>{if(!es)return;const Qr=`user_id=eq.${es}`,ja=supabase.channel(`eval-jobs-${$??"all"}`).on("postgres_changes",{event:"INSERT",schema:"public",table:"eval_jobs",filter:Qr},Ca=>{const Aa=Ca.new;$&&Aa.evalTargetId!==$||(Kr(Aa),ts.invalidateQueries({queryKey:["eval-jobs",Aa.evalTargetId]}))}).on("postgres_changes",{event:"UPDATE",schema:"public",table:"eval_jobs",filter:Qr},Ca=>{const Aa=Ca.new;$&&Aa.evalTargetId!==$||(Aa.status==="completed"||Aa.status==="failed"||Aa.status==="cancelled"?(Kr(null),ts.invalidateQueries({queryKey:["eval-runs",Aa.evalTargetId]}),ts.invalidateQueries({queryKey:["eval-jobs",Aa.evalTargetId]})):Kr(Aa))}).subscribe();return()=>{supabase.removeChannel(ja)}},[es,$,ts]),is}function useEvalConversation(es){return useQuery({queryKey:["eval-conversation",es],queryFn:()=>apiGet(`/api/eval-targets/${es}/conversations`),enabled:!!es})}function useCreateConversation(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost(`/api/eval-targets/${$}/conversations`,{}),onSuccess:$=>{es.invalidateQueries({queryKey:["eval-conversation",$.evalTargetId]})}})}function useSendMessage(){const es=useQueryClient();return useMutation({mutationFn:({conversationId:$,content:ts})=>apiPost(`/api/eval-conversations/${$}/messages`,{content:ts}),onSuccess:($,ts)=>{es.invalidateQueries({queryKey:["eval-conversation-messages",ts.conversationId]})}})}function useConversationMessages(es,$=2e3){return useQuery({queryKey:["eval-conversation-messages",es],queryFn:()=>apiGet(`/api/eval-conversations/${es}/messages`),enabled:!!es,refetchInterval:$})}function useApplyProposal(){const es=useQueryClient(),$=useNavigate();return useMutation({mutationFn:({conversationId:ts,messageId:is})=>apiPost(`/api/eval-conversations/${ts}/apply-proposal`,{messageId:is}),onSuccess:ts=>{es.invalidateQueries({queryKey:["eval-targets"]}),es.invalidateQueries({queryKey:["eval-conversation"]}),es.invalidateQueries({queryKey:["eval-conversation-messages"]}),$(`/eval-targets/${ts.newTarget.id}`)}})}function ChatPanel({targetId:es}){const{data:$}=useEvalConversation(es),ts=useCreateConversation(),is=useSendMessage(),Kr=useApplyProposal(),Qr=$==null?void 0:$.id,{data:ja}=useConversationMessages(Qr,2e3),[Ca,Aa]=reactExports.useState(""),[Oa,Ia]=reactExports.useState(!1),[Da,Ba]=reactExports.useState(!1),Ma=reactExports.useRef(null);reactExports.useEffect(()=>{var Va;(Va=Ma.current)==null||Va.scrollIntoView({behavior:"smooth"})},[ja==null?void 0:ja.length]);const Fa=reactExports.useCallback(async Va=>{if(!(!Va.trim()||Oa)){Ia(!0);try{let Ya=Qr;Ya||(Ya=(await ts.mutateAsync(es)).id);const Wa=await is.mutateAsync({conversationId:Ya,content:Va.trim()});Ba(Wa.noLiveWorker),Aa("")}finally{Ia(!1)}}},[Qr,ts,is,es,Oa]),qa=async()=>{await Fa(Ca)},Ha=Va=>{Va.key==="Enter"&&!Va.shiftKey&&(Va.preventDefault(),qa())},Ka=Va=>{Qr&&Kr.mutate({conversationId:Qr,messageId:Va})},Qa=ja??($==null?void 0:$.messages)??[];return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-[600px]",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 overflow-y-auto space-y-3 p-4",children:[Qa.length===0&&jsxRuntimeExports.jsxs("div",{className:"text-center text-muted-foreground text-sm py-12 space-y-3",children:[jsxRuntimeExports.jsx("p",{children:"Start by running evals or generating test cases."}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 justify-center",children:[jsxRuntimeExports.jsxs(Button,{size:"sm",variant:"outline",disabled:Oa,onClick:()=>Fa("Generate test cases for this instruction"),children:[jsxRuntimeExports.jsx(Sparkles,{className:"h-3 w-3 mr-1"}),"Generate Test Cases"]}),jsxRuntimeExports.jsxs(Button,{size:"sm",variant:"outline",disabled:Oa,onClick:()=>Fa("Run the evals"),children:[jsxRuntimeExports.jsx(Play,{className:"h-3 w-3 mr-1"}),"Run Evals"]})]})]}),Qa.map((Va,Ya)=>Va.type==="status"&&Qa.slice(Ya+1).some(Wa=>Wa.type==="results"||Wa.type==="proposal"||Wa.type==="generated"||Wa.role==="user")?null:jsxRuntimeExports.jsx(MessageBubble,{message:Va,onApply:Ka,applyingProposal:Kr.isPending,isLastStatus:Va.type==="status"},Va.id)),jsxRuntimeExports.jsx("div",{ref:Ma})]}),Da&&jsxRuntimeExports.jsxs("div",{className:"border-t border-amber-500/30 bg-amber-500/5 px-3 py-2 text-xs text-amber-500",children:["No CLI worker is listening — your message is queued but nothing will answer it. Start one with ",jsxRuntimeExports.jsx("code",{className:"bg-muted px-1 rounded",children:"rulemetric evals agent"}),"."]}),jsxRuntimeExports.jsxs("div",{className:"border-t border-border p-3 flex gap-2",children:[jsxRuntimeExports.jsx("textarea",{value:Ca,onChange:Va=>Aa(Va.target.value),onKeyDown:Ha,placeholder:"Type a message... (e.g. 'run evals', 'this output is missing X')",className:"flex-1 bg-muted rounded-lg px-3 py-2 text-sm resize-none min-h-[40px] max-h-[120px] focus:outline-none focus:ring-1 focus:ring-primary",rows:1,disabled:Oa}),jsxRuntimeExports.jsx(Button,{size:"icon",onClick:qa,disabled:Oa||!Ca.trim(),className:"shrink-0",children:Oa?jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin"}):jsxRuntimeExports.jsx(Send,{className:"h-4 w-4"})})]})]})}function MessageBubble({message:es,onApply:$,applyingProposal:ts,isLastStatus:is}){if(es.role==="user")return jsxRuntimeExports.jsx("div",{className:"flex justify-end",children:jsxRuntimeExports.jsx("div",{className:"bg-primary text-primary-foreground rounded-lg px-3 py-2 max-w-[80%] text-sm",children:es.content})});switch(es.type){case"status":return jsxRuntimeExports.jsx(StatusMessage,{content:es.content,isActive:!!is});case"results":return jsxRuntimeExports.jsx(ResultsMessage,{content:es.content,data:es.data});case"proposal":return jsxRuntimeExports.jsx(ProposalMessage,{content:es.content,data:es.data,messageId:es.id,onApply:$,applying:ts});case"applied":return jsxRuntimeExports.jsx(AppliedMessage,{content:es.content});case"generated":return jsxRuntimeExports.jsx(GeneratedMessage,{content:es.content,data:es.data});default:return jsxRuntimeExports.jsx("div",{className:"flex justify-start",children:jsxRuntimeExports.jsx("div",{className:"bg-card border border-border rounded-lg px-3 py-2 max-w-[80%] text-sm",children:es.content})})}}function StatusMessage({content:es,isActive:$}){return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground px-3 py-1",children:[$?jsxRuntimeExports.jsx(LoaderCircle,{className:"h-3 w-3 animate-spin"}):jsxRuntimeExports.jsx(CircleCheck,{className:"h-3 w-3 text-muted-foreground/50"}),es]})}function ResultsMessage({content:es,data:$}){const[ts,is]=reactExports.useState(null);if(!$)return jsxRuntimeExports.jsx("div",{className:"text-sm text-muted-foreground",children:es});const{summary:Kr,results:Qr}=$,ja=Kr.passRate>=.8?"text-teal-500":Kr.passRate>=.5?"text-yellow-500":"text-red-500";return jsxRuntimeExports.jsxs("div",{className:"bg-card border border-border rounded-lg p-4 space-y-3 max-w-[90%]",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsxs("span",{className:`font-mono text-lg font-bold ${ja}`,children:[Kr.passed,"/",Kr.total]}),jsxRuntimeExports.jsxs("span",{className:"text-sm text-muted-foreground",children:["evals passed (",Math.round(Kr.passRate*100),"%)"]})]}),jsxRuntimeExports.jsx("div",{className:"space-y-1",children:Qr.map((Ca,Aa)=>jsxRuntimeExports.jsxs("div",{className:"border border-border rounded",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>is(ts===Aa?null:Aa),className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-left hover:bg-secondary/30",children:[ts===Aa?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3 w-3"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3 w-3"}),Ca.passed?jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 text-teal-500"}):jsxRuntimeExports.jsx(CircleX,{className:"h-4 w-4 text-red-500"}),jsxRuntimeExports.jsx("span",{className:"font-mono",children:Ca.evalName})]}),ts===Aa&&jsxRuntimeExports.jsxs("div",{className:"px-3 pb-3 space-y-2 border-t border-border pt-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-medium",children:"Output:"}),jsxRuntimeExports.jsx("pre",{className:"text-xs bg-muted p-2 rounded mt-1 overflow-x-auto max-h-40 whitespace-pre-wrap",children:Ca.output})]}),Ca.evidence&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-medium",children:"Evidence:"}),jsxRuntimeExports.jsx("pre",{className:"text-xs bg-muted p-2 rounded mt-1 overflow-x-auto max-h-32 whitespace-pre-wrap",children:Ca.evidence})]})]})]},Aa))})]})}function ProposalMessage({content:es,data:$,messageId:ts,onApply:is,applying:Kr}){const[Qr,ja]=reactExports.useState(!1);return jsxRuntimeExports.jsxs("div",{className:"bg-card border border-primary/30 rounded-lg p-4 space-y-3 max-w-[90%]",children:[jsxRuntimeExports.jsx("p",{className:"text-sm",children:es}),($==null?void 0:$.suggestions)&&$.suggestions.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("button",{onClick:()=>ja(!Qr),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground",children:[Qr?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3 w-3"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3 w-3"}),$.suggestions.length," suggested change",$.suggestions.length>1?"s":""]}),Qr&&jsxRuntimeExports.jsx("div",{className:"space-y-2",children:$.suggestions.map((Ca,Aa)=>jsxRuntimeExports.jsxs("div",{className:"bg-muted rounded p-3 text-xs space-y-1",children:[jsxRuntimeExports.jsx("div",{className:"font-mono font-medium text-primary",children:Ca.section}),Ca.current&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{className:"text-red-400 font-medium",children:"- "}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:Ca.current})]}),Ca.proposed&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{className:"text-teal-400 font-medium",children:"+ "}),jsxRuntimeExports.jsx("span",{children:Ca.proposed})]}),jsxRuntimeExports.jsx("div",{className:"text-muted-foreground italic",children:Ca.reasoning})]},Aa))})]}),jsxRuntimeExports.jsx("div",{className:"flex gap-2",children:jsxRuntimeExports.jsxs(Button,{size:"sm",onClick:()=>is(ts),disabled:Kr,children:[Kr?jsxRuntimeExports.jsx(LoaderCircle,{className:"h-3 w-3 animate-spin mr-1"}):null,"Apply Changes"]})})]})}function AppliedMessage({content:es}){return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-teal-500 px-3 py-1",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4"}),es]})}function GeneratedMessage({content:es,data:$}){const[ts,is]=reactExports.useState(null);return jsxRuntimeExports.jsxs("div",{className:"bg-card border border-border rounded-lg p-4 space-y-3 max-w-[90%]",children:[jsxRuntimeExports.jsx("p",{className:"text-sm",children:es}),($==null?void 0:$.cases)&&jsxRuntimeExports.jsx("div",{className:"space-y-1",children:$.cases.map((Kr,Qr)=>jsxRuntimeExports.jsxs("div",{className:"border border-border rounded",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>is(ts===Qr?null:Qr),className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-left hover:bg-secondary/30",children:[ts===Qr?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3 w-3"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3 w-3"}),jsxRuntimeExports.jsx("span",{className:"font-mono",children:Kr.name})]}),ts===Qr&&jsxRuntimeExports.jsxs("div",{className:"px-3 pb-3 space-y-2 border-t border-border pt-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-medium",children:"Prompt:"}),jsxRuntimeExports.jsx("pre",{className:"text-xs bg-muted p-2 rounded mt-1 whitespace-pre-wrap",children:Kr.prompt})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground font-medium",children:"Expectations:"}),jsxRuntimeExports.jsx("div",{className:"mt-1 space-y-1",children:Kr.expectations.map((ja,Ca)=>jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs font-normal",children:ja},Ca))})]})]})]},Qr))})]})}const MIN_QUOTE_LEN=12,MIN_CODE_LEN=4,SHORT_CANDIDATE_LEN=20;function extractEvidenceQuotes(es){const $=[],ts=is=>{const Kr=is==null?void 0:is.trim();Kr&&$.push(Kr)};for(const is of[/"([^"]+)"/g,/“([^”]+)”/g,/'([^']+)'/g,/‘([^’]+)’/g])for(const Kr of es.matchAll(is))Kr[1].length>=MIN_QUOTE_LEN&&ts(Kr[1]);for(const is of es.matchAll(/`([^`]+)`/g))is[1].length>=MIN_CODE_LEN&&ts(is[1]);return es.trim().length>=SHORT_CANDIDATE_LEN&&ts(es),[...new Set($)]}function findEvidenceRanges(es,$){if(!es||!$)return[];const ts=[];for(const Kr of extractEvidenceQuotes($))for(const[Qr,ja]of[[es,Kr],[es.toLowerCase(),Kr.toLowerCase()]]){let Ca=0,Aa=!1;for(;;){const Oa=Qr.indexOf(ja,Ca);if(Oa===-1||(ts.push([Oa,Oa+ja.length]),Aa=!0,Kr.length<SHORT_CANDIDATE_LEN))break;Ca=Oa+ja.length}if(Aa)break}ts.sort((Kr,Qr)=>Kr[0]-Qr[0]||Kr[1]-Qr[1]);const is=[];for(const[Kr,Qr]of ts){const ja=is[is.length-1];ja&&Kr<=ja[1]?ja[1]=Math.max(ja[1],Qr):is.push([Kr,Qr])}return is}function segmentByRanges(es,$){if($.length===0)return[{text:es,highlighted:!1}];const ts=[];let is=0;for(const[Kr,Qr]of $)Kr>is&&ts.push({text:es.slice(is,Kr),highlighted:!1}),ts.push({text:es.slice(Kr,Qr),highlighted:!0}),is=Qr;return is<es.length&&ts.push({text:es.slice(is),highlighted:!1}),ts}function SecondOpinions({flags:es,actions:$}){const ts=reactExports.useMemo(()=>{const Ka=new Map;for(const Qa of es){const Va=`${Qa.evalRunId}:${Qa.expectationIndex}`;Ka.set(Va,[...Ka.get(Va)??[],Qa])}return[...Ka.entries()].map(([Qa,Va])=>({key:Qa,rows:Va,first:Va[0],humanVerdict:Va[0].humanPassed===Va[0].judgePassed?"approve":"reject",consensus:new Set(Va.map(Ya=>Ya.reviewerEngine)).size>1})).sort((Qa,Va)=>Number(Va.consensus)-Number(Qa.consensus))},[es]),[is,Kr]=reactExports.useState(new Set),[Qr,ja]=reactExports.useState(null),[Ca,Aa]=reactExports.useState(!1),Oa=ts.length>0&&ts.every(Ka=>is.has(Ka.key)),Ia=()=>Kr(Oa?new Set:new Set(ts.map(Ka=>Ka.key))),Da=Ka=>Kr(Qa=>{const Va=new Set(Qa);return Va.has(Ka)?Va.delete(Ka):Va.add(Ka),Va}),Ba=async(Ka,Qa,Va)=>{Aa(!0);let Ya=0,Wa=0;for(const el of Va)try{await Qa(el),Ya+=1}catch{Wa+=1}Aa(!1),Kr(new Set),Wa===0?ue$1.success(`${Ka} ${Ya} label${Ya===1?"":"s"}`):ue$1.error(`${Ka} ${Ya}, ${Wa} failed — the rest are still flagged`)},Ma=Ka=>$.resolve({id:Ka.first.id,resolution:"kept"}),Fa=async Ka=>{await $.annotate({runId:Ka.first.evalRunId,expectationIndex:Ka.first.expectationIndex,verdict:Ka.humanVerdict==="approve"?"reject":"approve"}),await $.resolve({id:Ka.first.id,resolution:"relabeled"})},qa=async Ka=>{await $.removeAnnotation({runId:Ka.first.evalRunId,expectationIndex:Ka.first.expectationIndex}),await $.resolve({id:Ka.first.id,resolution:"relabeled"})};if(ts.length===0)return null;const Ha=ts.filter(Ka=>is.has(Ka.key));return jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3 border-b border-border px-3 py-2",children:[jsxRuntimeExports.jsxs("label",{className:"flex cursor-pointer items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:Oa,onChange:Ia,className:"h-3.5 w-3.5 accent-teal-500","aria-label":"Select all flags"}),jsxRuntimeExports.jsxs("span",{className:"text-sm font-medium",children:["Second opinions",jsxRuntimeExports.jsxs("span",{className:"ml-1.5 text-muted-foreground font-normal",children:[ts.length," label",ts.length===1?"":"s"," flagged"]})]})]}),Ha.length>0?jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[jsxRuntimeExports.jsxs(Button,{size:"sm",variant:"outline",className:"h-6 px-2 text-xs",disabled:Ca,onClick:()=>Ba("Kept",Ma,Ha),children:["Keep ",Ha.length," label",Ha.length===1?"":"s"]}),jsxRuntimeExports.jsxs(Button,{size:"sm",variant:"outline",className:"h-6 px-2 text-xs",disabled:Ca,onClick:()=>Ba("Flipped",Fa,Ha),children:["Flip ",Ha.length]}),jsxRuntimeExports.jsxs(Button,{size:"sm",variant:"ghost",className:"h-6 px-2 text-xs text-muted-foreground",disabled:Ca,onClick:()=>Ba("Removed",qa,Ha),children:["Remove ",Ha.length," & requeue"]})]}):jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:"A second model disagrees with these labels — keep yours, or flip it if the reviewer caught a judge error."})]}),jsxRuntimeExports.jsx("div",{className:"divide-y divide-border",children:ts.map(Ka=>{const Qa=Ka.first,Va=Qr===Ka.key;return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:cn$1("flex items-center gap-2 px-3 py-1.5 text-sm",is.has(Ka.key)&&"bg-primary/[0.04]"),children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:is.has(Ka.key),onChange:()=>Da(Ka.key),className:"h-3.5 w-3.5 shrink-0 accent-teal-500","aria-label":`Select ${Qa.expectationText}`}),jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>ja(Va?null:Ka.key),className:"flex min-w-0 flex-1 items-center gap-2 text-left",children:[Va?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),jsxRuntimeExports.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-[13px]",children:Qa.expectationText}),jsxRuntimeExports.jsxs("span",{className:"hidden shrink-0 font-mono text-[11px] text-muted-foreground sm:inline",children:[Qa.evalName??"case"," #",Qa.runNumber]}),Ka.consensus&&jsxRuntimeExports.jsx("span",{className:"shrink-0 rounded bg-amber-500/10 px-1.5 py-0.5 text-[10px] font-medium text-amber-500",children:"2 vendors"}),jsxRuntimeExports.jsxs("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px]",children:["You: ",Ka.humanVerdict==="approve"?"right":"wrong"]}),jsxRuntimeExports.jsxs("span",{className:"shrink-0 rounded bg-red-500/10 px-1.5 py-0.5 text-[10px] text-red-500",children:[Ka.rows.length," reviewer",Ka.rows.length===1?"":"s"," disagree"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[jsxRuntimeExports.jsx(Button,{size:"sm",variant:"ghost",className:"h-6 px-2 text-xs",disabled:Ca,onClick:()=>Ba("Kept",Ma,[Ka]),children:"Keep"}),jsxRuntimeExports.jsx(Button,{size:"sm",variant:"ghost",className:"h-6 px-2 text-xs text-red-500 hover:text-red-400",disabled:Ca,onClick:()=>Ba("Flipped",Fa,[Ka]),children:"Flip"})]})]}),Va&&jsxRuntimeExports.jsxs("div",{className:"space-y-2 border-t border-border/50 bg-muted/20 px-9 py-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[jsxRuntimeExports.jsxs("span",{className:"rounded bg-muted px-1.5 py-0.5",children:["Judge: ",Qa.judgePassed?"PASS":"FAIL"]}),jsxRuntimeExports.jsxs("span",{className:"rounded bg-muted px-1.5 py-0.5",children:["You: judge was ",Ka.humanVerdict==="approve"?"right":"wrong"]}),Ka.rows.map(Ya=>jsxRuntimeExports.jsxs("span",{className:"rounded bg-red-500/10 px-1.5 py-0.5 text-red-500",children:[Ya.reviewerModel,": ",Ya.reviewerPassed?"PASS":"FAIL"]},Ya.id)),jsxRuntimeExports.jsx("span",{className:"font-mono text-muted-foreground",children:Qa.configuration})]}),Qa.outputExcerpt&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Agent output (excerpt)"}),jsxRuntimeExports.jsx("pre",{className:"max-h-48 overflow-y-auto whitespace-pre-wrap rounded-md bg-muted p-2 text-xs",children:Qa.outputExcerpt})]})]})]},Ka.key)})})]})}function AnchorProgressCard({check:es,judge:$,pooling:ts}){const is=Math.min(100,Math.round(es.nAnchors/es.pilotTarget*100));return jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg p-4 space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("h3",{className:"font-mono font-medium flex items-center gap-1.5",children:["Anchor set",jsxRuntimeExports.jsx(InfoTip,{term:"anchorSet"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[($==null?void 0:$.currentModel)&&jsxRuntimeExports.jsxs("span",{className:"font-mono text-xs text-muted-foreground flex items-center gap-1",children:[jsxRuntimeExports.jsx(InfoTip,{term:"judge",children:"judge"}),": ",$.currentModel]}),es.adequate?jsxRuntimeExports.jsx(Badge,{className:"font-mono text-xs",children:"adequate"}):jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"font-mono text-xs",children:"not yet adequate"}),jsxRuntimeExports.jsx(InfoTip,{term:"adequate"})]})]}),$!=null&&$.staleAnchors>0&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-amber-500",children:[$.staleAnchors," label",$.staleAnchors===1?"":"s"," from an older judge model no longer count toward this judge's calibration — the queue below only serves runs graded by the current judge."]}),jsxRuntimeExports.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntimeExports.jsx("div",{className:"bg-primary rounded-full h-2 transition-all duration-300",style:{width:`${is}%`}})}),ts&&jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:ts.engaged?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["rectifier: ",jsxRuntimeExports.jsx("span",{className:"text-foreground",children:"pooled"})," from"," ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:ts.poolTargets})," same-judge targets /"," ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:ts.poolAnchors})," anchors (λ=",jsxRuntimeExports.jsx("span",{className:"font-mono",children:ts.withLambda.toFixed(2)}),Math.abs(ts.withLambda-ts.withoutLambda)>.01&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[" / ",ts.withoutLambda.toFixed(2)]}),")"]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["rectifier: ",jsxRuntimeExports.jsx("span",{className:"text-foreground",children:"target-specific"}),ts.withReason?` — ${ts.withReason}`:""]})}),(ts==null?void 0:ts.engaged)&&ts.assumedExchangeability&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-amber-500",children:["Pool spans ",ts.poolTargets," of the 3 targets needed to MEASURE between-target variance — until then the judge is assumed to behave the same across targets rather than shown to. No calibrated verdict rests on that assumption."]}),jsxRuntimeExports.jsxs("p",{className:"text-sm",children:[jsxRuntimeExports.jsxs("span",{className:"font-mono",children:[es.nAnchors," / ",es.pilotTarget]})," ",jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx(InfoTip,{term:"humanLabeledRuns",children:"human-labeled runs"})," (with"," ",es.nAnchorsWith," · without ",es.nAnchorsWithout,")",es.mde!=null&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[" · ",jsxRuntimeExports.jsx(InfoTip,{term:"mde",children:"MDE"})," ±",(es.mde*100).toFixed(0),"pp vs ±",(es.targetEffect*100).toFixed(0),"pp target"]})]})]}),es.adequate?jsxRuntimeExports.jsx("p",{className:"text-xs text-teal-500",children:"Pilot target, cohort minimums, and target detectable effect all met — corrected estimates are publishable at this precision."}):jsxRuntimeExports.jsx("ul",{className:"text-xs text-muted-foreground space-y-0.5",children:es.reasons.map((Kr,Qr)=>jsxRuntimeExports.jsxs("li",{children:["— ",Kr]},Qr))})]})}function CaseDiscriminationCard({data:es}){const $=Kr=>`${(Kr*100).toFixed(0)}%`,ts=es.nonDiscriminating+es.unpaired,is=es.total>0&&ts/es.total>=.5;return jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg p-4 space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("h3",{className:"font-mono font-medium flex items-center gap-1.5",children:["Case discrimination",jsxRuntimeExports.jsx(InfoTip,{term:"discrimination"})]}),is?jsxRuntimeExports.jsxs(Badge,{variant:"destructive",className:"font-mono text-xs",children:[ts,"/",es.total," measure nothing"]}):jsxRuntimeExports.jsxs(Badge,{variant:"secondary",className:"font-mono text-xs",children:[es.discriminating,"/",es.total," discriminate"]})]}),is&&jsxRuntimeExports.jsx("p",{className:"text-xs text-amber-500",children:"Most cases don't separate with vs without, so the effect can't be resolved by adding runs — the variance is structural. Cull or replace the flagged cases before labeling."}),jsxRuntimeExports.jsxs("ul",{className:"text-xs space-y-1",children:[es.cases.map(Kr=>jsxRuntimeExports.jsxs("li",{className:"flex items-baseline justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{className:Kr.discriminating?"text-foreground":"text-muted-foreground line-through",children:Kr.name}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-muted-foreground whitespace-nowrap",children:[$(Kr.withPassRate)," vs ",$(Kr.withoutPassRate),Kr.discriminating?jsxRuntimeExports.jsxs("span",{className:"text-teal-500",children:[" · ",jsxRuntimeExports.jsxs(InfoTip,{term:"separation",children:["Δ",$(Kr.separation)]})]}):jsxRuntimeExports.jsxs("span",{className:"text-amber-500",children:[" · ",jsxRuntimeExports.jsx(InfoTip,{term:"flat",children:"flat"})]})]})]},Kr.name)),es.unpaired>0&&jsxRuntimeExports.jsxs("li",{className:"text-muted-foreground",children:["+ ",es.unpaired," case",es.unpaired===1?"":"s"," with no baseline cohort (can't be diagnosed — every baseline run missing or failed)"]})]})]})}function JudgeCalibrationCard({data:es}){const{anchors:$,calibration:ts,judge:is}=es,Kr=Qr=>`${(Qr*100).toFixed(0)}%`;return jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg p-4 space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("h3",{className:"font-mono font-medium",children:"Judge calibration"}),jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:[(is==null?void 0:is.currentModel)&&`judge ${is.currentModel} · `,$.llmAnchors," human label",$.llmAnchors===1?"":"s",$.flagged>0&&` · ${$.flagged} flagged`]})]}),is!=null&&(is.staleAnchors>0||is.staleRuns>0)&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-amber-500",children:["Judge model changed — ",is.staleRuns," graded run",is.staleRuns===1?"":"s"," and ",is.staleAnchors," label",is.staleAnchors===1?"":"s"," from older judges are excluded here. Re-run evals and re-label in the Review tab to rebuild the anchor set under the current judge."]}),$.llmAnchors===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No human labels yet. Work through the Review tab (approve/reject each judge grade) — labels measure the judge's bias and correct the pass-rate estimates below (PPI)."}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[$.agreementRate!=null&&jsxRuntimeExports.jsxs("p",{className:"text-sm",children:["Judge/human agreement:"," ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:Kr($.agreementRate)}),$.agreementCi&&jsxRuntimeExports.jsxs("span",{className:"font-mono text-xs text-muted-foreground",children:[" ","[",Kr($.agreementCi.lower),"–",Kr($.agreementCi.upper),"]"]})," ",jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:["on ",$.llmAnchors," reviewed assertion",$.llmAnchors===1?"":"s"]})]}),ts&&(ts.sufficient?jsxRuntimeExports.jsxs("div",{className:"text-sm space-y-1",children:[jsxRuntimeExports.jsxs("p",{children:["Corrected pass rates:"," ",jsxRuntimeExports.jsxs("span",{className:"font-mono",children:["with ",Kr(ts.with.estimate)," · without"," ",Kr(ts.without.estimate)]})," ",jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:["(judge-only said ",Kr(ts.with.naive)," ·"," ",Kr(ts.without.naive),")"]})]}),jsxRuntimeExports.jsxs("p",{children:["Corrected delta:"," ",jsxRuntimeExports.jsxs("span",{className:`font-mono ${ts.significant?ts.delta>=0?"text-teal-500":"text-red-500":""}`,children:[ts.delta>=0?"+":"",Kr(ts.delta)]})," ",jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:["95% CI ",Kr(ts.ci.lower)," to ",Kr(ts.ci.upper),ts.significant?"":" — not significant"," (unpaired, judge-bias-corrected)"]})]})]}):jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:[ts.insufficientReason??`need >= ${$.minAnchors} fully-reviewed runs per cohort for a corrected estimate`,". Fully-reviewed runs so far: ",$.labeledRuns.with," with ·"," ",$.labeledRuns.without," without."]})),es.powerCheck&&(es.powerCheck.adequate?jsxRuntimeExports.jsxs("p",{className:"text-xs text-teal-500",children:["Anchor set adequate — pilot target, cohort minimums, and ±",(es.powerCheck.targetEffect*100).toFixed(0),"pp detectable-effect target all met."]}):jsxRuntimeExports.jsxs("p",{className:"text-xs text-amber-500",children:["Anchor set not yet adequate (",es.powerCheck.nAnchors,"/",es.powerCheck.pilotTarget," pilot labels",es.powerCheck.mde!=null&&`, MDE ±${(es.powerCheck.mde*100).toFixed(0)}pp vs ±${(es.powerCheck.targetEffect*100).toFixed(0)}pp target`,") — treat corrected numbers as provisional; grow it in the Review tab."]}))]})]})}function CopyButton({text:es,what:$}){const{copy:ts}=useCopyToClipboard();return jsxRuntimeExports.jsx("button",{type:"button",onClick:async()=>await ts(es)?ue$1.success(`Copied ${$}`):ue$1.error("Copy failed — clipboard unavailable"),title:`Copy ${$}`,className:"rounded p-1 text-muted-foreground/60 transition-colors hover:text-foreground",children:jsxRuntimeExports.jsx(Copy,{className:"h-3.5 w-3.5"})})}function Kbd({children:es,className:$}){return jsxRuntimeExports.jsx("kbd",{className:cn$1("inline-flex items-center rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] font-medium text-muted-foreground",$),children:es})}function ReviewerAgreementCard({reviewers:es}){const $=is=>`${(is*100).toFixed(0)}%`,ts=is=>is==null?"—":is.toFixed(2);return jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border",children:[jsxRuntimeExports.jsx("div",{className:"border-b border-border px-3 py-2",children:jsxRuntimeExports.jsxs("span",{className:"text-sm font-medium",children:["Second-opinion agreement",jsxRuntimeExports.jsx("span",{className:"ml-1.5 font-normal text-muted-foreground",children:"vs your current labels"})]})}),jsxRuntimeExports.jsx("div",{className:"divide-y divide-border",children:es.filter(is=>is.pairs>0).map(is=>{const Kr=is.kappa!=null&&is.snapshotKappa!=null&&Math.abs(is.kappa-is.snapshotKappa)>=.005;return jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 px-3 py-2 text-xs",children:[jsxRuntimeExports.jsx("span",{className:"font-mono text-[13px] text-foreground",children:is.models.join(", ")}),jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:[is.pairs," assertion",is.pairs===1?"":"s",is.orphaned>0&&` (+${is.orphaned} requeued)`]}),is.agreementRate!=null&&jsxRuntimeExports.jsxs("span",{children:["matches you ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:$(is.agreementRate)})]}),jsxRuntimeExports.jsxs("span",{children:["κ ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:ts(is.kappa)}),Kr&&jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:[" ","(was ",ts(is.snapshotKappa)," before your corrections)"]})]}),is.judgeAgreementRate!=null&&jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:["judge matches you ",$(is.judgeAgreementRate)]}),is.suggestedAnchorWeight!=null&&jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:["anchor weight ",is.suggestedAnchorWeight.toFixed(2)]})]},is.engine)})})]})}function ReviewTab({targetId:es,queue:$,isFetching:ts,refetchQueue:is,annotations:Kr,powerCheck:Qr,judge:ja,caseDiscrimination:Ca,pooling:Aa,reviewers:Oa,targetContent:Ia,targetType:Da}){var Gl,cu;const[Ba,Ma]=reactExports.useState(0),[Fa,qa]=reactExports.useState(!1),Ha=reactExports.useRef(!1);reactExports.useEffect(()=>{Aa!=null&&Aa.engaged&&!Ha.current&&(Ha.current=!0,qa(!0))},[Aa==null?void 0:Aa.engaged]);const[Ka,Qa]=reactExports.useState(!1),[Va,Ya]=reactExports.useState({}),Wa=reactExports.useRef([]),el=useJudgeDisagreements(es),tl=useResolveJudgeReview(es),[rl,cl]=reactExports.useState({}),dl=useAnnotateGrade(es),fl=useRemoveGradeAnnotation(es),nl=new Map(Kr.map(Al=>[`${Al.evalRunId}:${Al.expectationIndex}`,Al])),ol=(Al,Ml)=>{var xu,fu;const Ql=`${Al.id}:${Ml}`;if(Ql in rl)return rl[Ql];const eu=nl.get(Ql);return eu?eu.verdict:((fu=(xu=Al.expectations[Ml])==null?void 0:xu.annotation)==null?void 0:fu.verdict)??null},pl=(Al,Ml,Ql,eu)=>{const xu=`${Al}:${Ml}`;eu===Ql?(cl(fu=>{const Iu={...fu};return delete Iu[xu],Iu}),fl.mutate({runId:Al,expectationIndex:Ml},{onError:()=>ue$1.error("Couldn't remove the label — it may still be recorded. Retry in a moment.")})):(cl(fu=>({...fu,[xu]:Ql})),Wa.current.push({runId:Al,expectationIndex:Ml}),dl.mutate({runId:Al,expectationIndex:Ml,verdict:Ql},{onError:()=>{cl(fu=>{const Iu={...fu};return delete Iu[xu],Iu}),ue$1.error("Label didn't save — check your connection and mark it again.")}}))},Tl=$==null?void 0:$.runs[Ba],ul=(Tl==null?void 0:Tl.expectations.filter(Al=>Al.method==="llm"&&!Al.errored))??[],hl=Tl?ul.filter(Al=>ol(Tl,Al.index)!=null).length:0,jl=Tl!=null&&ul.length>0&&hl===ul.length,Nl=Tl?((Gl=ul.find(Al=>ol(Tl,Al.index)==null))==null?void 0:Gl.index)??null:null,[zl,Zl]=reactExports.useState(null);reactExports.useEffect(()=>{Zl(null),Qa(!1)},[Tl==null?void 0:Tl.id]);const $l=zl??Nl,Il=reactExports.useRef(null),ql=reactExports.useRef(null),Fl=reactExports.useMemo(()=>{const Al=Tl==null?void 0:Tl.expectations.find(Ql=>Ql.method==="llm"&&Ql.index===$l);if(!Al||!(Tl!=null&&Tl.output))return{segments:null,count:0};const Ml=findEvidenceRanges(Tl.output,Al.evidence);return Ml.length===0?{segments:null,count:0}:{segments:segmentByRanges(Tl.output,Ml),count:Ml.length}},[Tl,$l]);reactExports.useEffect(()=>{const Al=Il.current,Ml=ql.current;if(!Al||!Ml)return;const Ql=Ml.getBoundingClientRect().top-Al.getBoundingClientRect().top;Al.scrollTo({top:Al.scrollTop+Ql-48,behavior:"smooth"})},[$l,Tl==null?void 0:Tl.id,Fl.count]),reactExports.useEffect(()=>{const Al=Ml=>{if(Ml.metaKey||Ml.ctrlKey||Ml.altKey)return;const Ql=Ml.target;if(Ql&&(Ql.tagName==="INPUT"||Ql.tagName==="TEXTAREA"||Ql.isContentEditable)||!Tl)return;const eu=Ml.key.toLowerCase();if((eu==="1"||eu==="a")&&Nl!=null)Ml.preventDefault(),pl(Tl.id,Nl,"approve",null);else if((eu==="2"||eu==="d")&&Nl!=null)Ml.preventDefault(),pl(Tl.id,Nl,"reject",null);else if((Ml.key==="Enter"||eu==="n")&&jl)Ml.preventDefault(),Ma(xu=>xu+1);else if(eu==="s")Ml.preventDefault(),Ma(xu=>xu+1);else if(eu==="u"){const xu=Wa.current.pop();if(xu){Ml.preventDefault();const fu=`${xu.runId}:${xu.expectationIndex}`;cl(Iu=>{const yu={...Iu};return delete yu[fu],yu}),fl.mutate(xu,{onError:()=>ue$1.error("Couldn't undo — the label may still be recorded.")})}}else Ml.key==="ArrowRight"&&$&&Ba<$.runs.length-1?(Ml.preventDefault(),Ma(xu=>xu+1)):Ml.key==="ArrowLeft"&&Ba>0&&(Ml.preventDefault(),Ma(xu=>xu-1))};return window.addEventListener("keydown",Al),()=>window.removeEventListener("keydown",Al)},[Tl,Nl,jl,Ba,$]);const ru=Al=>{const Ml=Al.expectations.filter(eu=>eu.method==="llm");if(Ml.length===0)return"done";const Ql=Ml.filter(eu=>ol(Al,eu.index)!=null).length;return Ql===Ml.length?"done":Ql>0?"partial":"todo"};return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[$&&$.remaining>0&&jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-primary/40 bg-primary/[0.06] px-4 py-3",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:"Review the judge's grade — not the output."}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-[13px] text-muted-foreground",children:["For each assertion below, decide whether the AI judge got the pass/fail right — mark"," ",jsxRuntimeExports.jsx("span",{className:"text-foreground",children:"Judge was right"})," if it did, or"," ",jsxRuntimeExports.jsx("span",{className:"text-foreground",children:"Judge was wrong"})," if it didn't. Each mark adds one"," ",jsxRuntimeExports.jsx(InfoTip,{term:"humanLabeledRuns",children:"human anchor"}),Qr&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[" ","(",jsxRuntimeExports.jsxs("span",{className:"font-mono",children:[Qr.nAnchors,"/",Qr.pilotTarget]}),")"]})," ","toward calibrating this judge — so a real verdict can be shown."]}),jsxRuntimeExports.jsxs("p",{className:"mt-2 flex flex-wrap items-center gap-x-1.5 gap-y-1 text-xs text-muted-foreground",children:["Keyboard: ",jsxRuntimeExports.jsx(Kbd,{children:"1"})," judge was right ",jsxRuntimeExports.jsx(Kbd,{children:"2"})," judge was wrong",jsxRuntimeExports.jsx(Kbd,{children:"U"})," undo last ",jsxRuntimeExports.jsx(Kbd,{children:"Enter"})," next run ",jsxRuntimeExports.jsx(Kbd,{children:"S"})," skip ",jsxRuntimeExports.jsx(Kbd,{children:"←"}),jsxRuntimeExports.jsx(Kbd,{children:"→"})," switch run"]})]}),Kr.length>=10&&Kr.every(Al=>Al.verdict==="approve")&&(((cu=el.data)==null?void 0:cu.length)??0)===0&&jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-amber-500/40 bg-amber-500/[0.06] px-4 py-3",children:[jsxRuntimeExports.jsxs("p",{className:"text-sm font-medium text-amber-500",children:["All ",Kr.length," labels agree with the judge"]}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-[13px] text-muted-foreground",children:["A label set with zero rejects can't detect judge bias — don't hunt for rejects, but if the judge looks wrong, say so. To surface likely judge errors worth a second look, run"," ",jsxRuntimeExports.jsxs("span",{className:"font-mono text-foreground",children:["rulemetric evals validate-judge ",es]})," ","— assertions where a second model disagrees with the judge are the best candidates."]})]}),el.data&&el.data.length>0&&jsxRuntimeExports.jsx(SecondOpinions,{flags:el.data,actions:{annotate:Al=>dl.mutateAsync(Al),removeAnnotation:Al=>fl.mutateAsync(Al),resolve:Al=>tl.mutateAsync(Al)}}),Oa&&Oa.some(Al=>Al.pairs>0)&&jsxRuntimeExports.jsx(ReviewerAgreementCard,{reviewers:Oa}),Qr?jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>qa(Al=>!Al),className:"flex w-full items-center gap-3 rounded-lg px-4 py-2.5 text-left transition-colors hover:bg-muted/40",children:[Fa?jsxRuntimeExports.jsx(ChevronDown,{className:"h-4 w-4 shrink-0 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-3 text-sm",children:[jsxRuntimeExports.jsxs("span",{className:"font-mono",children:[Qr.nAnchors,"/",Qr.pilotTarget," labeled"]}),jsxRuntimeExports.jsxs("span",{className:"truncate text-xs text-muted-foreground",children:[$?`${$.remaining} to review`:"",Qr.mde!=null&&` · MDE ±${(Qr.mde*100).toFixed(0)}pp`,Ca&&Ca.total>0&&` · ${Ca.discriminating}/${Ca.total} cases discriminate`,Aa&&(Aa.engaged?jsxRuntimeExports.jsx("span",{className:"text-teal-500",children:` · pooled ✓ (${Aa.poolTargets} targets / ${Aa.poolAnchors} anchors)`}):" · rectifier: target-specific")]})]}),jsxRuntimeExports.jsx("div",{className:"mt-1.5 h-1.5 w-full rounded-full bg-muted",children:jsxRuntimeExports.jsx("div",{className:"h-1.5 rounded-full bg-primary transition-all",style:{width:`${Math.min(100,Math.round(Qr.nAnchors/Qr.pilotTarget*100))}%`}})})]})]}),Fa&&jsxRuntimeExports.jsxs("div",{className:"space-y-4 border-t border-border p-4",children:[jsxRuntimeExports.jsx(AnchorProgressCard,{check:Qr,judge:ja,pooling:Aa}),Ca&&Ca.total>0&&jsxRuntimeExports.jsx(CaseDiscriminationCard,{data:Ca})]})]}):Ca&&Ca.total>0&&jsxRuntimeExports.jsx(CaseDiscriminationCard,{data:Ca}),$?$.remaining===0?jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-sm",children:"All caught up — every LLM-judged assertion of this target is reviewed."}):Tl?jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 p-3 border-b border-border",children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1",children:[jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"font-mono text-xs",title:Tl.configuration==="with_target"?"This run executed WITH the content under test in the agent's context":"Baseline arm — this run executed WITHOUT the content under test",children:Tl.configuration==="with_target"?"with instruction":"baseline · no instruction"}),jsxRuntimeExports.jsxs("span",{className:"min-w-0 break-words font-mono text-sm",children:[Tl.evalName," · run #",Tl.runNumber]})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[jsxRuntimeExports.jsx("span",{className:"mr-1 text-xs text-muted-foreground",children:"batch"}),$.runs.map((Al,Ml)=>{const Ql=ru(Al);return jsxRuntimeExports.jsx("button",{onClick:()=>Ma(Ml),title:`${Al.evalName} · ${Al.configuration}${Ql==="done"?" · reviewed":Ql==="partial"?" · partially reviewed":""}`,className:cn$1("h-6 min-w-6 rounded border px-1 font-mono text-[11px] transition-colors",Ql==="done"?"bg-teal-500/10 text-teal-500":Ql==="partial"?"bg-amber-500/10 text-amber-500":"text-muted-foreground hover:text-foreground",Ml===Ba?"border-primary/70":"border-border"),children:Ql==="done"?"✓":Ml+1},Al.id)})]})]}),jsxRuntimeExports.jsxs("div",{className:"p-4 grid gap-4 xl:grid-cols-2",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 space-y-3 xl:sticky xl:top-4 xl:self-start",children:[jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-border","data-testid":"review-input-panel",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-border/60 bg-muted/40 px-3 py-1.5",children:[jsxRuntimeExports.jsx("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Input — what the agent was asked"}),jsxRuntimeExports.jsx(CopyButton,{text:Tl.prompt,what:"prompt"})]}),jsxRuntimeExports.jsx("p",{className:"max-h-44 overflow-y-auto whitespace-pre-wrap p-3 text-sm",children:Tl.prompt})]}),Tl.configuration==="with_target"&&Ia&&jsxRuntimeExports.jsxs("details",{className:"rounded-md border border-border","data-testid":"review-target-panel",children:[jsxRuntimeExports.jsxs("summary",{className:"cursor-pointer rounded-md bg-muted/40 px-3 py-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground transition-colors hover:text-foreground",children:["Also in context — the ",Da," under test"]}),jsxRuntimeExports.jsx("pre",{className:"max-h-60 overflow-y-auto whitespace-pre-wrap border-t border-border/60 p-3 text-xs",children:Ia})]}),!Tl.output&&jsxRuntimeExports.jsx("div",{className:"rounded-md border border-dashed border-border px-3 py-2.5 text-xs text-muted-foreground",children:"No output was captured for this run — the judge graded an empty transcript. Treat its passes with suspicion."}),Tl.output&&jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-border","data-testid":"review-output-panel",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-border/60 bg-muted/40 px-3 py-1.5",children:[jsxRuntimeExports.jsxs("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Output — what the judge graded",Tl.outputTruncated?" (first 20k chars)":""]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-0.5",children:[jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>Qa(Al=>!Al),className:"rounded px-1.5 py-0.5 text-[11px] text-muted-foreground/70 transition-colors hover:text-foreground",children:Ka?"Collapse":"Show all"}),jsxRuntimeExports.jsx(CopyButton,{text:Tl.output,what:"output"})]})]}),jsxRuntimeExports.jsx("pre",{ref:Il,className:cn$1("text-xs p-3 overflow-x-auto overflow-y-auto whitespace-pre-wrap rounded-b-md bg-muted/30",Ka?"max-h-none":"max-h-[26rem]"),children:Fl.segments?Fl.segments.map((Al,Ml)=>{if(!Al.highlighted)return jsxRuntimeExports.jsx("span",{children:Al.text},Ml);const Ql=Fl.segments.findIndex(eu=>eu.highlighted)===Ml;return jsxRuntimeExports.jsx("mark",{ref:Ql?ql:void 0,className:"bg-teal-500/25 text-inherit rounded-sm",children:Al.text},Ml)}):Tl.output})]})]}),jsxRuntimeExports.jsxs("div",{className:"min-w-0 space-y-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium",children:"Judge grades — did the judge get each one right?"}),jsxRuntimeExports.jsx(InfoTip,{content:"You're checking the AI JUDGE, not re-grading the output. For each assertion, decide whether the judge's pass/fail verdict was correct: approve if the judge got it right, reject if it got it wrong. Each click is one human anchor that calibrates how much to trust the judge."})]}),Tl.expectations.map(Al=>{const Ml=Al.method==="llm"&&!Al.errored,Ql=Ml?ol(Tl,Al.index):null,eu=Ml&&Al.index===Nl,xu=Ml&&Al.index===$l;return jsxRuntimeExports.jsxs("div",{onMouseEnter:Ml?()=>Zl(Al.index):void 0,onMouseLeave:Ml?()=>Zl(null):void 0,className:cn$1("rounded-md border p-3 transition-colors",eu?"border-primary/60 bg-primary/[0.04]":"border-border"),children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2.5",children:[Al.errored?jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"mt-0.5 shrink-0 text-[10px] text-muted-foreground",title:"The grader crashed or the assertion definition is broken — no verdict exists to review. Re-run grading.",children:"grader errored"}):Ml?jsxRuntimeExports.jsxs("span",{className:cn$1("mt-0.5 shrink-0 rounded px-1.5 py-0.5 font-mono text-[10px] font-medium",Al.passed?"bg-teal-500/10 text-teal-500":"bg-red-500/10 text-red-500"),children:["Judge: ",Al.passed?"PASS":"FAIL"]}):jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"mt-0.5 shrink-0 text-[10px]",children:["auto ",Al.passed?"✓":"✗"]}),jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsx("p",{className:"font-mono text-sm",children:Al.text}),Al.evidence&&jsxRuntimeExports.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsxs("span",{className:"font-medium text-muted-foreground/70",children:["Judge's evidence:"," "]}),Al.evidence]}),xu&&(Fl.count>0?jsxRuntimeExports.jsxs("p",{className:"mt-1 text-[11px] text-teal-500",children:[Fl.count," cited span",Fl.count===1?"":"s"," highlighted in the output above"]}):jsxRuntimeExports.jsx("p",{className:"mt-1 text-[11px] text-muted-foreground/70",children:"evidence isn't quoted verbatim — nothing to highlight"}))]})]}),Ml&&jsxRuntimeExports.jsxs("div",{className:"mt-2.5 flex flex-wrap items-center gap-2 pl-0.5",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>pl(Tl.id,Al.index,"approve",Ql),disabled:dl.isPending||fl.isPending,className:cn$1("flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-xs transition-colors",Ql==="approve"?"border-teal-500/60 bg-teal-500/10 text-teal-500":"border-border text-muted-foreground hover:border-teal-500/40 hover:text-teal-500"),children:[jsxRuntimeExports.jsx(ThumbsUp,{className:"h-3.5 w-3.5"})," Judge was right",eu&&jsxRuntimeExports.jsx(Kbd,{children:"1"})]}),jsxRuntimeExports.jsxs("button",{onClick:()=>pl(Tl.id,Al.index,"reject",Ql),disabled:dl.isPending||fl.isPending,className:cn$1("flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-xs transition-colors",Ql==="reject"?"border-red-500/60 bg-red-500/10 text-red-500":"border-border text-muted-foreground hover:border-red-500/40 hover:text-red-500"),children:[jsxRuntimeExports.jsx(ThumbsDown,{className:"h-3.5 w-3.5"})," Judge was wrong",eu&&jsxRuntimeExports.jsx(Kbd,{children:"2"})]}),Ql&&jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:"✓ recorded"})]}),Ml&&Ql==="reject"&&(()=>{var Bl;const fu=`${Tl.id}:${Al.index}`,Iu=((Bl=nl.get(fu))==null?void 0:Bl.note)??"",yu=Va[fu]??Iu,ic=yu!==Iu,Lu=()=>dl.mutate({runId:Tl.id,expectationIndex:Al.index,verdict:"reject",note:yu.trim()||null},{onError:()=>ue$1.error("Note didn't save — try again.")});return jsxRuntimeExports.jsxs("div",{className:"mt-2 flex items-center gap-2 pl-0.5",children:[jsxRuntimeExports.jsx("input",{type:"text",value:yu,maxLength:2e3,onChange:su=>Ya(Eu=>({...Eu,[fu]:su.target.value})),onKeyDown:su=>{su.key==="Enter"&&ic&&(su.preventDefault(),Lu())},placeholder:"Why was the judge wrong? (optional — saved with the label)",className:"h-7 min-w-0 flex-1 rounded-md border border-border bg-background px-2 text-xs placeholder:text-muted-foreground/60 focus:border-primary/50 focus:outline-none"}),jsxRuntimeExports.jsx(Button,{size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",disabled:!ic||dl.isPending,onClick:Lu,children:Iu&&!ic?"Saved":"Save note"})]})})()]},Al.index)})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 border-t border-border p-3",children:[jsxRuntimeExports.jsxs("span",{className:"min-w-0 flex-1 basis-48 text-xs text-muted-foreground",children:[hl,"/",ul.length," assertions reviewed",jl?jsxRuntimeExports.jsx("span",{className:"text-teal-500",children:" · this run now counts toward the pilot"}):ul.length>1?jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground/70",children:[" ","· label all ",ul.length," for this run to count toward the pilot"]}):null]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[!jl&&ul.length>1&&jsxRuntimeExports.jsxs(Button,{size:"sm",variant:"outline",disabled:dl.isPending,onClick:()=>{for(const Al of ul)ol(Tl,Al.index)==null&&pl(Tl.id,Al.index,"approve",null)},children:["Mark all ",ul.length," right"]}),jsxRuntimeExports.jsxs(Button,{size:"sm",variant:jl?"default":"ghost",onClick:()=>Ma(Ba+1),children:[jl?"Next run":"Skip run",jsxRuntimeExports.jsx(Kbd,{className:"ml-1.5 border-transparent bg-transparent",children:jl?"↵":"S"}),jsxRuntimeExports.jsx(ChevronRight,{className:"ml-0.5 h-3 w-3"})]})]})]})]}):jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg p-6 text-center space-y-3",children:[jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:["Batch reviewed — ",$.remaining," run",$.remaining===1?"":"s"," still need",$.remaining===1?"s":""," review."]}),jsxRuntimeExports.jsxs(Button,{size:"sm",disabled:ts,onClick:()=>{Ma(0),is()},children:[ts&&jsxRuntimeExports.jsx(LoaderCircle,{className:"h-3 w-3 mr-1.5 animate-spin"}),"Load next batch"]})]}):jsxRuntimeExports.jsx(Skeleton,{className:"h-48 w-full"})]})}const FINISHED_FILTERS=["all","evolution","decided","skipped","failed"],FinishedFilterSchema=enumType(FINISHED_FILTERS),PAGE_SIZES=[20,50,100],JobOutcomeSchema=enumType(["ok","skipped","decided","failed"]),PendingKindSchema=objectType({kind:stringType(),count:numberType(),oldestMinutes:numberType()}).strict(),WorkerVerdictSchema=objectType({severity:enumType(["ok","warn","fail"]),headline:stringType(),hints:arrayType(stringType()),stuck:arrayType(PendingKindSchema),unclaimable:arrayType(PendingKindSchema),engineBlocked:arrayType(PendingKindSchema)}).strict(),WorkerSchema=objectType({present:booleanType(),active:booleanType(),ageSeconds:numberType().nullable(),clientName:stringType().nullable(),clientVersion:stringType().nullable(),lastHeartbeat:stringType().nullable()}).strict(),ReviewGateTargetSchema=objectType({id:stringType(),name:stringType(),awaitingReview:numberType(),humanLabeled:numberType(),humanLabeledWith:numberType(),humanLabeledWithout:numberType(),pilotTarget:numberType()}).strict(),ReviewGateSchema=objectType({blocking:booleanType(),totalAwaitingReview:numberType(),targets:arrayType(ReviewGateTargetSchema)}).strict(),RunningJobSchema=objectType({id:stringType(),kind:stringType(),label:stringType().nullable(),claimedAt:stringType().nullable(),elapsedSeconds:numberType().nullable(),leaseHealthy:booleanType()}).strict(),QueuedJobSchema=objectType({id:stringType(),kind:stringType(),label:stringType().nullable(),createdAt:stringType(),waitedSeconds:numberType(),attempts:numberType()}).strict(),FinishedJobSchema=objectType({id:stringType(),kind:stringType(),label:stringType().nullable(),finishedAt:stringType().nullable(),durationSeconds:numberType().nullable(),outcome:JobOutcomeSchema,reason:stringType().nullable(),detail:stringType().nullable()}).strict(),LoopProposalSchema=objectType({id:stringType(),evalTargetId:stringType().nullable(),targetName:stringType().nullable(),createdAt:stringType(),decision:stringType(),applied:booleanType(),effectClass:stringType(),proposalSource:stringType()}).strict(),LoopChangesSchema=objectType({decisions:numberType(),applied:numberType(),byDecision:objectType({promote:numberType(),revert:numberType(),refuse:numberType()}).strict(),readyToApply:numberType(),readyToApplyTargetId:stringType().nullable(),readyToApplyPromotionId:stringType().nullable(),lastAppliedAt:stringType().nullable(),lastDecidedAt:stringType().nullable(),suggestionsProposed:numberType(),suggestionsAccepted:numberType(),suggestionsPending:numberType(),lastAcceptedAt:stringType().nullable(),landedTotal:numberType(),window:objectType({hours:numberType(),landed:numberType(),decisions:numberType(),promotionsApplied:numberType(),adoptionApplied:numberType(),suggestionsSurfaced:numberType(),suggestionsAccepted:numberType(),suggestionsDeclined:numberType()}).strict()}).strict(),DeliveryProjectSchema=objectType({projectId:stringType(),name:stringType().nullable(),canonicalPath:stringType().nullable(),canonicalLastSeenAt:stringType().nullable(),stale:booleanType(),lastActivityAt:stringType().nullable(),lastAnalysedAt:stringType().nullable(),suggestionsPending:numberType(),suggestionsAccepted:numberType(),lastAcceptedAt:stringType().nullable()}).strict(),RecommendationApplicationSchema=objectType({id:stringType(),instructionId:stringType(),title:stringType(),artifact:stringType(),harness:stringType(),targetPath:stringType(),projectPath:stringType(),status:stringType(),applyMode:stringType(),verdictDetail:stringType().nullable(),updatedAt:stringType()}).strict(),PromotionPathProjectSchema=objectType({projectId:stringType(),trials:objectType({running:numberType(),orphaned:numberType(),eligible:numberType(),maxConcurrent:numberType(),maxPerRun:numberType(),blocked:enumType(["none","concurrency","per-run","no-candidates"])}).strict(),autoAccept:objectType({enabled:booleanType(),usedInWindow:numberType(),maxPerWindow:numberType(),maxPerRun:numberType(),windowDays:numberType(),eligible:numberType(),windowResetsAt:stringType().nullable()}).strict()}).strict(),LoopSummarySchema=objectType({worker:WorkerSchema,verdict:WorkerVerdictSchema,reviewGate:ReviewGateSchema,running:arrayType(RunningJobSchema),queued:arrayType(QueuedJobSchema),failedInWindow:numberType(),proposals:arrayType(LoopProposalSchema),proposalTotal:numberType(),changes:LoopChangesSchema,counts:objectType({experimentsRunning:numberType(),suggestions:recordType(stringType(),numberType())}).strict(),windowHours:numberType()}).strict(),LoopDiagnosticsSchema=objectType({recent:arrayType(FinishedJobSchema),recentTotal:numberType(),filterCounts:objectType({all:numberType(),evolution:numberType(),decided:numberType(),skipped:numberType(),failed:numberType()}).strict(),insights:objectType({entries:numberType(),distinct:numberType(),repeated:numberType(),dismissed:numberType(),maxTimesGenerated:numberType(),lastSeenAt:stringType().nullable()}).strict(),delivery:objectType({projects:arrayType(DeliveryProjectSchema),total:numberType(),staleCount:numberType()}).strict(),promotionPaths:objectType({projects:arrayType(PromotionPathProjectSchema)}).strict(),adoption:objectType({available:booleanType(),counts:recordType(stringType(),numberType()),applications:arrayType(RecommendationApplicationSchema)}).strict(),windowHours:numberType(),limit:numberType(),filter:FinishedFilterSchema}).strict();LoopSummarySchema.merge(LoopDiagnosticsSchema).strict();Object.keys(LoopSummarySchema.shape);Object.keys(LoopDiagnosticsSchema.shape);const loopQueryKeys={summary:es=>["loop","summary",es.hours,es.limit],diagnostics:es=>["loop","diagnostics",es.hours,es.limit,es.filter]};function summaryPollInterval(es){var ts,is;return(((ts=es==null?void 0:es.running)==null?void 0:ts.length)??0)>0||(((is=es==null?void 0:es.queued)==null?void 0:is.length)??0)>0?POLL.LIVE:POLL.HEARTBEAT}function assertLoopPayload(es,$){const ts=es==="summary"?["running","queued","proposals"]:["recent"],is=$;if(!(typeof is=="object"&&is!==null&&ts.every(Qr=>Array.isArray(is[Qr]))&&(es==="summary"?typeof is.changes=="object"&&is.changes!==null&&typeof is.worker=="object":typeof is.filterCounts=="object"&&is.filterCounts!==null))){const Qr=typeof $=="string"?`${$.slice(0,40).replace(/\s+/g," ")}…`:typeof $;throw new Error(`/api/loop/${es} returned something that is not a loop ${es} (got ${Qr}). An API that predates this page answers with the SPA fallback — is the API you are talking to current?`)}return $}function diagnosticsQuery(es){return{enabled:es.open,refetchInterval:es.open?POLL.HEARTBEAT:!1}}function diagnosticsPanelState(es){return es.open?es.hasData?"ready":es.isError?"error":"loading":"closed"}function headlineInputs(es){return{workerPresent:es.worker.present,leaseUnhealthy:es.running.some($=>!$.leaseHealthy),readyToApply:es.changes.readyToApply,failedRecently:es.failedInWindow,running:es.running.length,queued:es.queued.length,engineBlocked:(es.verdict.engineBlocked??[]).reduce(($,ts)=>$+ts.count,0)}}function useProvenanceImpact(){return useQuery({queryKey:["provenance-impact"],queryFn:()=>apiGet("/api/insights/provenance-impact"),refetchInterval:POLL.SLOW})}function usePromotionDetail(es,$){return useQuery({queryKey:["promotion",es],queryFn:()=>apiGet(`/api/promotions/${es}`),enabled:$&&!!es,staleTime:5*6e4})}function useApplyPromotion(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost(`/api/promotions/${$}/apply`,{}),onSuccess:()=>{es.invalidateQueries({queryKey:["loop"]}),es.invalidateQueries({queryKey:["promotion"]})}})}function useRunLoopNow(){const es=useQueryClient();return useMutation({mutationFn:()=>apiPost("/api/loop/run-now",{}),onSuccess:()=>{es.invalidateQueries({queryKey:["loop"]})}})}function useLoopSummary(es){const $=new URLSearchParams({hours:String(es.hours),limit:String(es.limit)});return useQuery({queryKey:loopQueryKeys.summary(es),queryFn:async()=>assertLoopPayload("summary",await apiGet(`/api/loop/summary?${$.toString()}`)),placeholderData:ts=>ts,refetchInterval:ts=>summaryPollInterval(ts.state.data)})}function useLoopDiagnostics(es,$){const ts=new URLSearchParams({hours:String(es.hours),limit:String(es.limit),filter:es.filter}),is=diagnosticsQuery($);return useQuery({queryKey:loopQueryKeys.diagnostics(es),queryFn:async()=>assertLoopPayload("diagnostics",await apiGet(`/api/loop/diagnostics?${ts.toString()}`)),enabled:is.enabled,placeholderData:Kr=>Kr,refetchInterval:is.refetchInterval})}const MAX_LINES=4e3,toLines=es=>es===""?[]:es.split(`
143
- `);function lineDiff(es,$){const ts=toLines(es),is=toLines($);if(ts.length>MAX_LINES||is.length>MAX_LINES)return[...ts.map((Aa,Oa)=>({op:"remove",text:Aa,oldLine:Oa+1,newLine:null})),...is.map((Aa,Oa)=>({op:"add",text:Aa,oldLine:null,newLine:Oa+1}))];const Kr=Array.from({length:ts.length+1},()=>new Array(is.length+1).fill(0));for(let Aa=ts.length-1;Aa>=0;Aa--)for(let Oa=is.length-1;Oa>=0;Oa--)Kr[Aa][Oa]=ts[Aa]===is[Oa]?Kr[Aa+1][Oa+1]+1:Math.max(Kr[Aa+1][Oa],Kr[Aa][Oa+1]);const Qr=[];let ja=0,Ca=0;for(;ja<ts.length&&Ca<is.length;)ts[ja]===is[Ca]?(Qr.push({op:"same",text:ts[ja],oldLine:ja+1,newLine:Ca+1}),ja++,Ca++):Kr[ja+1][Ca]>=Kr[ja][Ca+1]?(Qr.push({op:"remove",text:ts[ja],oldLine:ja+1,newLine:null}),ja++):(Qr.push({op:"add",text:is[Ca],oldLine:null,newLine:Ca+1}),Ca++);for(;ja<ts.length;)Qr.push({op:"remove",text:ts[ja],oldLine:++ja,newLine:null});for(;Ca<is.length;)Qr.push({op:"add",text:is[Ca],oldLine:null,newLine:++Ca});return Qr}function toHunks(es,$=3){const ts=new Set;es.forEach((Ca,Aa)=>{if(Ca.op!=="same")for(let Oa=Math.max(0,Aa-$);Oa<=Math.min(es.length-1,Aa+$);Oa++)ts.add(Oa)});const is=[];let Kr=[],Qr=0,ja=0;return es.forEach((Ca,Aa)=>{ts.has(Aa)?(Kr.length===0&&(Qr=ja,ja=0),Kr.push(Ca)):(Kr.length>0&&(is.push({lines:Kr,skippedBefore:Qr}),Kr=[]),ja++)}),Kr.length>0&&is.push({lines:Kr,skippedBefore:Qr}),is}function diffStat(es){let $=0,ts=0;for(const is of es)is.op==="add"?$++:is.op==="remove"&&ts++;return{added:$,removed:ts}}function EvidenceJson({label:es,value:$}){return Object.keys($).length===0?null:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium text-foreground",children:es}),jsxRuntimeExports.jsx("pre",{className:"mt-1 overflow-x-auto rounded border border-border bg-background/60 p-2 text-xs text-muted-foreground",children:JSON.stringify($,null,2)})]})}function PromotionDetailPanel({promotionId:es,open:$,allowApply:ts=!1,testId:is}){const{data:Kr,isLoading:Qr,isError:ja}=usePromotionDetail(es,$),Ca=useApplyPromotion();if(!$)return null;const Aa=Kr?lineDiff(Kr.fromContent,Kr.toContent):[],Oa=Kr?toHunks(Aa):[],Ia=diffStat(Aa);return jsxRuntimeExports.jsxs("div",{className:"reveal min-w-0 border-t border-border bg-muted/10 px-3 py-3","data-testid":is??`proposal-detail-${es}`,children:[Qr&&jsxRuntimeExports.jsx(Skeleton,{className:"h-24 w-full"}),ja&&jsxRuntimeExports.jsx("p",{className:"text-xs text-amber-400/90",children:"Could not load this proposed change."}),Kr&&jsxRuntimeExports.jsxs("div",{className:"min-w-0 space-y-3",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-3 text-sm md:grid-cols-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Decision rationale"}),jsxRuntimeExports.jsx("p",{className:"pt-1 text-foreground",children:Kr.rationale||"No final rationale was recorded."})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Proposal rationale"}),jsxRuntimeExports.jsx("p",{className:"pt-1 text-foreground",children:Kr.proposalRationale||"No proposal rationale was recorded."})]})]}),Kr.refusals.length>0&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-amber-400",children:"Refusal reasons"}),jsxRuntimeExports.jsx("ul",{className:"list-disc space-y-1 pt-1 pl-5 text-sm text-foreground",children:Kr.refusals.map((Da,Ba)=>jsxRuntimeExports.jsx("li",{children:Da},Ba))})]}),Kr.touchedSections.length>0&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx("span",{className:"font-medium text-foreground",children:"Touched sections:"})," ",Kr.touchedSections.join(" · ")]}),jsxRuntimeExports.jsxs("div",{className:"grid min-w-0 gap-3 md:grid-cols-2",children:[jsxRuntimeExports.jsx(EvidenceJson,{label:"Verdict evidence",value:Kr.verdict}),jsxRuntimeExports.jsx(EvidenceJson,{label:"Decision gates",value:Kr.gates})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("p",{className:"pb-1 font-mono text-xs text-muted-foreground",children:[jsxRuntimeExports.jsxs("span",{className:"text-teal-400",children:["+",Ia.added]})," ",jsxRuntimeExports.jsxs("span",{className:"text-amber-400",children:["−",Ia.removed]})," lines"]}),jsxRuntimeExports.jsx("div",{className:"max-h-96 max-w-full overflow-auto rounded border border-border bg-background/50","data-testid":"promotion-diff",children:jsxRuntimeExports.jsx("div",{className:"w-max min-w-full font-mono text-xs leading-relaxed",children:Oa.map((Da,Ba)=>jsxRuntimeExports.jsxs("div",{children:[Da.skippedBefore>0&&jsxRuntimeExports.jsxs("div",{className:"bg-muted/30 px-2 py-0.5 text-muted-foreground",children:["… ",Da.skippedBefore," unchanged line",Da.skippedBefore===1?"":"s"]}),Da.lines.map((Ma,Fa)=>jsxRuntimeExports.jsxs("div",{className:cn$1("px-2",Ma.op==="add"&&"bg-teal-400/10 text-teal-300",Ma.op==="remove"&&"bg-amber-400/10 text-amber-300",Ma.op==="same"&&"text-muted-foreground"),children:[jsxRuntimeExports.jsx("span",{className:"select-none pr-2 opacity-50",children:Ma.op==="add"?"+":Ma.op==="remove"?"−":" "}),Ma.text||" "]},Fa))]},Ba))})})]}),ts&&jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx("button",{type:"button",disabled:Ca.isPending||Ca.isSuccess,onClick:()=>Ca.mutate(es),className:cn$1("rounded border px-3 py-1 text-xs transition-colors duration-150",Ca.isSuccess?"border-teal-400/40 text-teal-400":"cursor-pointer border-teal-400/40 text-teal-400 hover:bg-teal-400/10",Ca.isPending&&"opacity-60"),"data-testid":"apply-promotion",children:Ca.isSuccess?"Applied":Ca.isPending?"Applying…":"Apply this change"}),Ca.isError&&jsxRuntimeExports.jsx("span",{className:"text-xs text-amber-400/90","data-testid":"apply-error",children:Ca.error instanceof Error?Ca.error.message:"Could not apply this change."})]})]})]})}function PromotionsTab({promotions:es,isLoading:$}){const[ts,is]=reactExports.useState(null);return $?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading promotions…"}):es.length===0?jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-border px-4 py-3",children:jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No evolution decisions yet. The nightly loop records one row here per measured proposal — promote, revert, or refuse."})}):jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-border divide-y divide-border",children:es.map(Kr=>{const Qr=ts===Kr.id;return jsxRuntimeExports.jsxs("div",{"data-testid":"promotion-row",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>is(Qr?null:Kr.id),"aria-expanded":Qr,"aria-controls":`proposal-detail-${Kr.id}`,className:"flex min-h-11 w-full cursor-pointer items-start justify-between gap-4 px-4 py-3 text-left hover:bg-muted/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring","data-testid":`promotion-toggle-${Kr.id}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[Qr?jsxRuntimeExports.jsx(ChevronDown,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsxs("p",{className:"font-mono text-sm",children:[Kr.decision," · ",Kr.effectClass," · ",new Date(Kr.createdAt).toLocaleDateString()]}),jsxRuntimeExports.jsxs("p",{className:"pt-1 text-xs text-muted-foreground",children:["via ",Kr.proposalSource]}),Kr.rationale&&jsxRuntimeExports.jsx("p",{className:"pt-1 text-xs text-muted-foreground",children:Kr.rationale})]})]}),jsxRuntimeExports.jsx("span",{className:cn$1("shrink-0 rounded border px-2 py-0.5 text-xs",Kr.applied?"border-teal-400/40 text-teal-400":"border-muted-foreground/40 text-muted-foreground"),children:Kr.applied?"applied":"not applied"})]}),jsxRuntimeExports.jsx(PromotionDetailPanel,{promotionId:Kr.id,open:Qr})]},Kr.id)})})}const TAB_KEYS=["chat","evals","runs","review","benchmarks","comparisons","promotions"],RUNS_PAGE_LIMIT=50,COMPARISONS_PAGE_LIMIT=50;function EvalTargetDetailPage(){const{id:es}=useParams(),[$,ts]=useTabParam(TAB_KEYS,"chat"),{data:is,isLoading:Kr}=useEvalTarget(es),{data:Qr,isLoading:ja}=useEvals(es),{data:Ca,isLoading:Aa}=useEvalRuns(es),{data:Oa,isLoading:Ia}=useBenchmarks(es),{data:Da,isLoading:Ba}=useEvalComparisons(es),{data:Ma}=useGradeAnnotations(es),{data:Fa}=useJudgeCalibration(es),{data:qa,isFetching:Ha,refetch:Ka}=useAnnotationQueue(es),{data:Qa,isLoading:Va}=usePromotions(es),{data:Ya}=useJudgeDisagreements(es),{user:Wa}=useAuth(),{data:el}=useEvalJobs(es),tl=useCreateEvalJob(),rl=useCancelEvalJob(),cl=useRealtimeEvalJobs(Wa==null?void 0:Wa.id,es),{isConnected:dl,workerCount:fl}=useWorkerStatus("cli-worker"),nl=cl??(el==null?void 0:el.find(hl=>["pending","claimed","running"].includes(hl.status)))??null,ol=!!nl&&["pending","claimed","running"].includes(nl.status),pl=(el==null?void 0:el[0])??null,Tl=!ol&&(pl==null?void 0:pl.status)==="failed"?pl:null;if(Kr)return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-64"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-96"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-64 w-full"})]});if(!is)return jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Eval target not found."});const ul=[{key:"chat",label:"Chat"},{key:"evals",label:"Evals",count:Qr==null?void 0:Qr.length},{key:"runs",label:"Runs",count:Ca&&Ca.length>=RUNS_PAGE_LIMIT?`${RUNS_PAGE_LIMIT}+`:Ca==null?void 0:Ca.length},{key:"review",label:"Review",count:qa==null?void 0:qa.remaining},{key:"benchmarks",label:"Benchmarks",count:Oa==null?void 0:Oa.length},{key:"comparisons",label:"Comparisons",count:Da&&Da.length>=COMPARISONS_PAGE_LIMIT?`${COMPARISONS_PAGE_LIMIT}+`:Da==null?void 0:Da.length},{key:"promotions",label:"Promotions",count:Qa==null?void 0:Qa.total}];return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",asChild:!0,children:jsxRuntimeExports.jsx(Link,{to:"/eval-targets",children:jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"})})}),jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1 basis-64",children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight break-words",children:is.name}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground break-words",children:[jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"mr-2 font-mono",children:is.type}),"v",is.version,is.description&&` — ${is.description}`]})]}),jsxRuntimeExports.jsxs("div",{className:"ml-auto flex items-center gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx("div",{className:`h-2 w-2 rounded-full ${dl?"bg-teal-500":"bg-red-500"}`}),dl?`${fl} worker${fl>1?"s":""} online`:"No workers"]}),ol?jsxRuntimeExports.jsxs(Button,{variant:"destructive",size:"sm",onClick:()=>nl&&rl.mutate(nl.id),disabled:rl.isPending,children:[jsxRuntimeExports.jsx(Square,{className:"h-3 w-3 mr-1.5"}),"Cancel Run"]}):jsxRuntimeExports.jsxs(Button,{size:"sm",onClick:()=>es&&tl.mutate({evalTargetId:es}),disabled:tl.isPending||!(Qr!=null&&Qr.length)||!dl,title:dl?Qr!=null&&Qr.length?void 0:"Add eval cases first — none defined for this target":"Start a CLI worker: rulemetric evals agent",children:[jsxRuntimeExports.jsx(Play,{className:"h-3 w-3 mr-1.5"}),"Run Evals"]})]})]}),!ol&&Qr&&Qr.length===0&&jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/5 px-4 py-3",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-amber-500 font-medium",children:"No eval cases defined"}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Add cases via CLI: ",jsxRuntimeExports.jsxs("code",{className:"bg-muted px-1 py-0.5 rounded text-[11px]",children:["rulemetric evals create ",es,' --name "..." --prompt "..." -e "..."']})]})]}),nl&&["pending","claimed","running"].includes(nl.status)&&jsxRuntimeExports.jsx(ActiveJobCard,{job:nl}),Tl&&jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-red-500/30 bg-red-500/5 px-4 py-3",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-red-500 font-medium",children:"Last run failed"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-1 font-mono break-words",children:Tl.error??"No error recorded for this job."})]}),$!=="review"&&(((qa==null?void 0:qa.remaining)??0)>0||((Ya==null?void 0:Ya.length)??0)>0)&&jsxRuntimeExports.jsx("button",{type:"button","data-testid":"review-callout",onClick:()=>ts("review"),className:"group w-full rounded-lg border border-primary/40 bg-primary/[0.06] px-4 py-3 text-left transition-colors hover:bg-primary/[0.1]",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsxs("p",{className:"text-sm font-medium",children:[((qa==null?void 0:qa.remaining)??0)>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[qa.remaining," run",qa.remaining===1?"":"s"," await your review"]}),((qa==null?void 0:qa.remaining)??0)>0&&((Ya==null?void 0:Ya.length)??0)>0&&" · ",((Ya==null?void 0:Ya.length)??0)>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Ya.length," label",Ya.length===1?"":"s"," flagged by a second opinion"]})]}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-[13px] text-muted-foreground",children:"For each run you'll see the prompt, the agent's output, and the judge's pass/fail on every assertion — you mark whether the judge got it right. A few minutes of labels calibrate the judge so its verdicts can be trusted."})]}),jsxRuntimeExports.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-sm font-medium text-primary",children:["Start reviewing",jsxRuntimeExports.jsx(ChevronRight,{className:"h-4 w-4 transition-transform group-hover:translate-x-0.5"})]})]})}),jsxRuntimeExports.jsx("div",{className:"flex gap-1 border-b border-border overflow-x-auto",children:ul.map(hl=>jsxRuntimeExports.jsxs("button",{onClick:()=>ts(hl.key),className:`shrink-0 whitespace-nowrap px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px ${$===hl.key?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[hl.label,hl.count!=null&&jsxRuntimeExports.jsxs("span",{className:"ml-1.5 text-xs text-muted-foreground",children:["(",hl.count,")"]})]},hl.key))}),$==="evals"&&jsxRuntimeExports.jsx(EvalsTab,{evalCases:Qr??[],isLoading:ja}),$==="runs"&&jsxRuntimeExports.jsx(RunsTab,{targetId:es,runs:Ca??[],isLoading:Aa,annotations:Ma??[]}),$==="review"&&jsxRuntimeExports.jsx(ReviewTab,{targetId:es,queue:qa,isFetching:Ha,refetchQueue:Ka,annotations:Ma??[],powerCheck:Fa==null?void 0:Fa.powerCheck,judge:Fa==null?void 0:Fa.judge,caseDiscrimination:Fa==null?void 0:Fa.caseDiscrimination,pooling:Fa==null?void 0:Fa.pooling,reviewers:Fa==null?void 0:Fa.reviewers,targetContent:is.content??null,targetType:is.type}),$==="benchmarks"&&jsxRuntimeExports.jsx(BenchmarksTab,{benchmarks:Oa??[],isLoading:Ia,judgeCalibration:Fa}),$==="comparisons"&&jsxRuntimeExports.jsx(ComparisonsTab,{comparisons:Da??[],isLoading:Ba}),$==="promotions"&&jsxRuntimeExports.jsx(PromotionsTab,{promotions:(Qa==null?void 0:Qa.promotions)??[],isLoading:Va}),$==="chat"&&es&&jsxRuntimeExports.jsx(ChatPanel,{targetId:es})]})}function EvalsTab({evalCases:es,isLoading:$}){return $?jsxRuntimeExports.jsx(Skeleton,{className:"h-32 w-full"}):es.length?jsxRuntimeExports.jsx("div",{className:"space-y-3",children:es.map(ts=>jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg p-4 space-y-2",children:[jsxRuntimeExports.jsx("h3",{className:"font-mono font-medium",children:ts.name}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:ts.prompt}),ts.expectations.length>0&&jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1",children:ts.expectations.map((is,Kr)=>jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs",children:is},Kr))})]},ts.id))}):jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-sm",children:"No evals defined yet."})}function RunsTab({targetId:es,runs:$,isLoading:ts,annotations:is}){const[Kr,Qr]=reactExports.useState(null),ja=useAnnotateGrade(es),Ca=useRemoveGradeAnnotation(es),Aa=new Map(is.map(Ia=>[`${Ia.evalRunId}:${Ia.expectationIndex}`,Ia])),Oa=(Ia,Da,Ba)=>{const Ma=Aa.get(`${Ia}:${Da}`);(Ma==null?void 0:Ma.verdict)===Ba?Ca.mutate({runId:Ia,expectationIndex:Da}):ja.mutate({runId:Ia,expectationIndex:Da,verdict:Ba})};return ts?jsxRuntimeExports.jsx(Skeleton,{className:"h-32 w-full"}):$.length?jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[$.length>=RUNS_PAGE_LIMIT&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:["Showing the ",RUNS_PAGE_LIMIT," most recent runs — older runs are not loaded."]}),$.map(Ia=>{var Ma,Fa,qa,Ha,Ka;const Da=Kr===Ia.id,Ba=(Fa=(Ma=Ia.grading)==null?void 0:Ma.summary)==null?void 0:Fa.pass_rate;return jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>Qr(Da?null:Ia.id),className:"w-full flex items-center justify-between p-3 text-left hover:bg-secondary/30 transition-colors",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[Da?jsxRuntimeExports.jsx(ChevronDown,{className:"h-4 w-4 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-4 w-4 text-muted-foreground"}),jsxRuntimeExports.jsx(Badge,{variant:Ia.status==="completed"?"default":"destructive",className:"font-mono text-xs",children:Ia.status}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-sm",children:[Ia.configuration," · run #",Ia.runNumber," · iter ",Ia.iteration]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 text-sm text-muted-foreground",children:[Ba!=null&&jsxRuntimeExports.jsxs("span",{className:"font-mono",children:[(Ba*100).toFixed(0),"% pass"]}),((qa=Ia.timing)==null?void 0:qa.duration_ms)&&jsxRuntimeExports.jsxs("span",{children:[(Ia.timing.duration_ms/1e3).toFixed(1),"s"]}),jsxRuntimeExports.jsx("span",{children:new Date(Ia.createdAt).toLocaleDateString()})]})]}),Da&&jsxRuntimeExports.jsxs("div",{className:"border-t border-border p-4 space-y-3",children:[((Ha=Ia.grading)==null?void 0:Ha.expectations)&&jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium",children:"Expectations"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:"— review each grade: your labels calibrate the judge"})]}),Ia.grading.expectations.map((Qa,Va)=>{const Ya=Aa.get(`${Ia.id}:${Va}`);return jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2 text-sm group",children:[Qa.passed?jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 text-teal-500 mt-0.5 shrink-0"}):jsxRuntimeExports.jsx(CircleX,{className:"h-4 w-4 text-red-500 mt-0.5 shrink-0"}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsx("span",{className:"font-mono",children:Qa.text}),Qa.method==="deterministic"&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"ml-1.5 text-[10px] align-middle",children:"deterministic"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-xs",children:Qa.evidence})]}),Qa.method!=="deterministic"&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Oa(Ia.id,Va,"approve"),disabled:ja.isPending||Ca.isPending,title:"Judge graded this correctly",className:`p-1 rounded transition-colors ${(Ya==null?void 0:Ya.verdict)==="approve"?"text-teal-500 bg-teal-500/10":"text-muted-foreground/50 hover:text-teal-500"}`,children:jsxRuntimeExports.jsx(ThumbsUp,{className:"h-3.5 w-3.5"})}),jsxRuntimeExports.jsx("button",{onClick:()=>Oa(Ia.id,Va,"reject"),disabled:ja.isPending||Ca.isPending,title:"Judge got this grade wrong",className:`p-1 rounded transition-colors ${(Ya==null?void 0:Ya.verdict)==="reject"?"text-red-500 bg-red-500/10":"text-muted-foreground/50 hover:text-red-500"}`,children:jsxRuntimeExports.jsx(ThumbsDown,{className:"h-3.5 w-3.5"})})]})]},Va)})]}),!!((Ka=Ia.outputs)!=null&&Ka.transcript)&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-1",children:"Output"}),jsxRuntimeExports.jsx("pre",{className:"text-xs bg-muted p-3 rounded-md overflow-x-auto max-h-48",children:String(Ia.outputs.transcript)})]})]})]},Ia.id)})]}):jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-sm",children:"No runs yet. Execute evals via the CLI."})}function BenchmarksTab({benchmarks:es,isLoading:$,judgeCalibration:ts}){return $?jsxRuntimeExports.jsx(Skeleton,{className:"h-32 w-full"}):es.length?jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[ts&&jsxRuntimeExports.jsx(JudgeCalibrationCard,{data:ts}),es.map(is=>jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg p-4 space-y-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("h3",{className:"font-mono font-medium",children:["Iteration ",is.iteration]}),jsxRuntimeExports.jsx("span",{className:"text-sm text-muted-foreground",children:new Date(is.createdAt).toLocaleDateString()})]}),Object.entries(is.runSummary).map(([Kr,Qr])=>Kr==="delta"?jsxRuntimeExports.jsxs("div",{className:"bg-muted/50 rounded-md p-3",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-1",children:"Delta (with - without target)"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-4 text-sm font-mono",children:Object.entries(Qr).map(([ja,Ca])=>jsxRuntimeExports.jsxs("span",{children:[ja,": ",Ca]},ja))}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"Mean difference only — no significance test. At the default 1 run per eval this is a single-run difference and is not statistically meaningful."})]},Kr):jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-1",children:Kr}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:Object.entries(Qr).map(([ja,Ca])=>{const Aa=Ca;return jsxRuntimeExports.jsxs("div",{className:"bg-muted/30 rounded-md p-2 text-sm",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground text-xs",children:ja}),jsxRuntimeExports.jsxs("div",{className:"font-mono",children:[Aa.mean.toFixed(3),jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground ml-1",children:["±",Aa.stddev.toFixed(3)]})]}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-muted-foreground",children:["[",Aa.min.toFixed(3),", ",Aa.max.toFixed(3),"]"]})]},ja)})})]},Kr)),is.notes.length>0&&jsxRuntimeExports.jsx("div",{className:"text-sm space-y-1",children:is.notes.map((Kr,Qr)=>jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground",children:["— ",Kr]},Qr))})]},is.id))]}):jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[ts&&jsxRuntimeExports.jsx(JudgeCalibrationCard,{data:ts}),jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground text-sm",children:["No benchmarks yet. Run"," ",jsxRuntimeExports.jsx("code",{className:"bg-muted px-1 rounded",children:"rulemetric evals benchmark"})," ","to create one."]})]})}function ComparisonsTab({comparisons:es,isLoading:$}){const[ts,is]=reactExports.useState(null);return $?jsxRuntimeExports.jsx(Skeleton,{className:"h-32 w-full"}):es.length?jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[es.length>=COMPARISONS_PAGE_LIMIT&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:["Showing the ",COMPARISONS_PAGE_LIMIT," most recent comparisons — older ones are not loaded."]}),es.map(Kr=>{var Aa,Oa;const Qr=ts===Kr.id,ja=Ia=>Ia===Kr.targetAId?`${Kr.targetAName} v${Kr.targetAVersion}`:Ia===Kr.targetBId?`${Kr.targetBName} v${Kr.targetBVersion}`:null,Ca=Kr.status==="parse_failed"?"unparseable":ja(Kr.winnerTargetId)??"TIE";return jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>is(Qr?null:Kr.id),className:"w-full flex items-center justify-between p-3 text-left hover:bg-secondary/30 transition-colors",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[Qr?jsxRuntimeExports.jsx(ChevronDown,{className:"h-4 w-4 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-4 w-4 text-muted-foreground"}),jsxRuntimeExports.jsx(Badge,{variant:Kr.status==="parse_failed"?"destructive":Kr.winnerTargetId?"default":"secondary",className:"font-mono text-xs",children:Ca}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-sm",children:[Kr.targetAName," v",Kr.targetAVersion," vs ",Kr.targetBName," v",Kr.targetBVersion]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 text-sm text-muted-foreground",children:[Kr.model&&jsxRuntimeExports.jsx("span",{className:"font-mono text-xs",children:Kr.model}),jsxRuntimeExports.jsx("span",{children:new Date(Kr.createdAt).toLocaleDateString()})]})]}),Qr&&jsxRuntimeExports.jsxs("div",{className:"border-t border-border p-4 space-y-3",children:[jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:["Judged blind",Kr.isSwapped?" (labels swapped)":""," — winners shown unblinded."]}),Kr.status==="parse_failed"?jsxRuntimeExports.jsx(ComparisonRawOutput,{id:Kr.id}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Kr.overall.reasoning&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-1",children:"Overall"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:Kr.overall.reasoning})]}),(Aa=Kr.overall.strengthsWinner)!=null&&Aa.length||(Oa=Kr.overall.weaknessesLoser)!=null&&Oa.length?jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-sm",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"font-medium mb-1",children:"Winner strengths"}),jsxRuntimeExports.jsx("ul",{className:"text-muted-foreground list-disc list-inside space-y-0.5",children:(Kr.overall.strengthsWinner??[]).map((Ia,Da)=>jsxRuntimeExports.jsx("li",{children:Ia},Da))})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"font-medium mb-1",children:"Loser weaknesses"}),jsxRuntimeExports.jsx("ul",{className:"text-muted-foreground list-disc list-inside space-y-0.5",children:(Kr.overall.weaknessesLoser??[]).map((Ia,Da)=>jsxRuntimeExports.jsx("li",{children:Ia},Da))})]})]}):null,Kr.perEval.length>0&&jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium",children:"Per eval"}),Kr.perEval.map((Ia,Da)=>jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[jsxRuntimeExports.jsx(Badge,{variant:Ia.winnerTargetId?"default":"secondary",className:"font-mono text-xs shrink-0",children:ja(Ia.winnerTargetId)??"TIE"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{className:"font-mono",children:Ia.evalName}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-xs",children:Ia.reasoning})]})]},Da))]})]})]})]},Kr.id)})]}):jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground text-sm",children:["No comparisons yet. Run"," ",jsxRuntimeExports.jsx("code",{className:"bg-muted px-1 rounded",children:"rulemetric evals compare <target-a> <target-b>"})," ","to create one."]})}function ComparisonRawOutput({id:es}){const{data:$,isLoading:ts}=useEvalComparison(es);return ts?jsxRuntimeExports.jsx(Skeleton,{className:"h-16 w-full"}):jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-1",children:"Judge output (not parseable as a structured verdict)"}),jsxRuntimeExports.jsx("pre",{className:"text-xs bg-muted p-3 rounded-md overflow-x-auto max-h-48 whitespace-pre-wrap",children:($==null?void 0:$.rawOutput)??"No raw output recorded."})]})}function ActiveJobCard({job:es}){const $=es.progress,ts=$.total>0?Math.round($.completed/$.total*100):0;return jsxRuntimeExports.jsxs("div",{className:"border border-border rounded-lg p-4 bg-secondary/20 space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin text-primary"}),jsxRuntimeExports.jsxs("span",{className:"text-sm font-medium",children:[es.status==="pending"&&"Waiting for CLI worker to pick up job...",es.status==="claimed"&&`Claimed by ${es.claimedBy}. Starting...`,es.status==="running"&&($.message||"Running...")]})]}),$.total>0&&jsxRuntimeExports.jsxs("span",{className:"text-sm font-mono text-muted-foreground",children:[$.completed,"/",$.total," (",ts,"%)"]})]}),$.total>0&&jsxRuntimeExports.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntimeExports.jsx("div",{className:"bg-primary rounded-full h-2 transition-all duration-300",style:{width:`${ts}%`}})}),$.current&&jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground font-mono truncate",children:$.current})]})}function PublicDocsShell({children:es}){return jsxRuntimeExports.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[jsxRuntimeExports.jsx("nav",{className:"sticky top-0 z-50 border-b border-border bg-background/80 backdrop-blur-sm",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-6xl flex items-center justify-between px-4 h-14",children:[jsxRuntimeExports.jsxs(Link,{to:"/",className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"h-2 w-2 rounded-full bg-primary"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-semibold",children:"RuleMetric"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",className:"cursor-pointer",asChild:!0,children:jsxRuntimeExports.jsx(Link,{to:"/login",children:"Sign in"})}),jsxRuntimeExports.jsx(Button,{className:"cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",asChild:!0,children:jsxRuntimeExports.jsx(Link,{to:"/signup",children:"Get Started"})})]})]})}),jsxRuntimeExports.jsx("main",{className:"mx-auto max-w-6xl px-4 py-8",children:es})]})}function DocsRoute(){const{session:es,loading:$}=useAuth();return $?jsxRuntimeExports.jsx("div",{className:"flex h-screen items-center justify-center",children:jsxRuntimeExports.jsxs("div",{className:"space-y-4 w-64",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-3/4"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-1/2"})]})}):es?jsxRuntimeExports.jsx(RootLayout,{children:jsxRuntimeExports.jsx(DocsPage,{})}):jsxRuntimeExports.jsx(PublicDocsShell,{children:jsxRuntimeExports.jsx(DocsPage,{})})}function useHarnessReleases(es,$=50){const ts=new URLSearchParams;return ts.set("harness",es),ts.set("limit",String($)),useQuery({queryKey:["harness-releases",es,$],queryFn:()=>apiGet(`/api/harness-releases?${ts}`)})}function useSyncHarnessReleases(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost("/api/harness-releases/sync",{harness:$}),onSuccess:()=>es.invalidateQueries({queryKey:["harness-releases"]})})}function AnalysisFreshnessBanner({freshness:es,totalAnalyzed:$}){if(!es||$===0)return null;const{with_timestamp:ts,pre_instrumentation:is,stale_30d:Kr,oldest_analyzed_at:Qr}=es,ja=$>0?Math.round(is/$*100):0,Ca=ts>0?Math.round(Kr/ts*100):0;if(is===0&&Kr===0)return null;const Aa=ja>=25||Ca>=50?"warn":"info",Oa=Aa==="warn"?"border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-300":"border-border bg-muted/40 text-muted-foreground";return jsxRuntimeExports.jsxs("div",{className:`flex items-start gap-2 rounded-md border px-3 py-2 text-xs ${Oa}`,children:[Aa==="warn"?jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4 shrink-0 mt-0.5"}):jsxRuntimeExports.jsx(Clock,{className:"h-4 w-4 shrink-0 mt-0.5"}),jsxRuntimeExports.jsxs("div",{className:"flex-1 font-mono space-y-0.5",children:[jsxRuntimeExports.jsx("p",{className:"font-medium",children:Aa==="warn"?"Some inputs to these stats are stale or untimestamped":"Input freshness"}),jsxRuntimeExports.jsxs("p",{children:[is>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[is," of ",$," analyzed sessions (",ja,"%) predate timestamp tracking. Re-analyze them to participate in freshness checks."]}),is>0&&Kr>0&&" ",Kr>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Kr," of ",ts," timestamped analyses (",Ca,"%) are over 30 days old",Qr&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[" ","(oldest: ",new Date(Qr).toLocaleDateString(),")"]}),"."]})]})]})]})}function jobStepLabel(es){const $=es.progress;return $!=null&&$.step&&($!=null&&$.current)&&($!=null&&$.total)?`${$.step} (${$.current}/${$.total})`:$!=null&&$.step?$.step:es.status==="claimed"?"starting...":es.status==="pending"?"queued":es.status}function JobStatusIcon({status:es}){switch(es){case"completed":return jsxRuntimeExports.jsx(CircleCheck,{className:"h-3.5 w-3.5 text-teal-500 shrink-0"});case"running":case"claimed":return jsxRuntimeExports.jsx(LoaderCircle,{className:"h-3.5 w-3.5 text-blue-500 animate-spin shrink-0"});case"failed":return jsxRuntimeExports.jsx(CircleX,{className:"h-3.5 w-3.5 text-red-500 shrink-0"});case"pending":default:return jsxRuntimeExports.jsx(CircleDashed,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"})}}function JobTracker({jobs:es}){if(es.length===0)return null;const $=es.filter(Da=>Da.status==="completed").length,ts=es.filter(Da=>Da.status==="failed").length,is=es.filter(Da=>Da.status==="running"||Da.status==="claimed").length,Kr=es.filter(Da=>Da.status==="pending").length,Qr=es.length,ja=$+ts,Ca=ja===Qr,Aa=$/Qr*100,Oa=ts/Qr*100,Ia=is/Qr*100;return jsxRuntimeExports.jsx(Card,{className:Ca?"border-teal-500/30 bg-teal-500/5":"border-blue-500/30 bg-blue-500/5",children:jsxRuntimeExports.jsxs(CardContent,{className:"pt-4 pb-4 space-y-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[Ca?jsxRuntimeExports.jsx(Check,{className:"h-4 w-4 text-teal-500"}):jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin text-blue-500"}),jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:Ca?Qr===1?"Recommendations ready":`All ${Qr} projects done`:Qr===1?`Generating recommendations — ${jobStepLabel(es[0])}`:`Generating recommendations — ${ja}/${Qr} complete`})]}),Qr>1&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 text-xs text-muted-foreground font-mono",children:[$>0&&jsxRuntimeExports.jsxs("span",{className:"text-teal-500",children:[$," done"]}),is>0&&jsxRuntimeExports.jsxs("span",{className:"text-blue-500",children:[is," running"]}),Kr>0&&jsxRuntimeExports.jsxs("span",{children:[Kr," queued"]}),ts>0&&jsxRuntimeExports.jsxs("span",{className:"text-red-500",children:[ts," failed"]})]})]}),jsxRuntimeExports.jsx("div",{className:"h-1.5 rounded-full bg-muted overflow-hidden flex",children:Qr===1?(()=>{const Da=es[0],Ba=Da.progress,Ma=Ba!=null&&Ba.current&&(Ba!=null&&Ba.total)?Ba.current/Ba.total*100:0;return Da.status==="completed"?jsxRuntimeExports.jsx("div",{className:"h-full bg-teal-500",style:{width:"100%"}}):Da.status==="failed"?jsxRuntimeExports.jsx("div",{className:"h-full bg-red-500",style:{width:"100%"}}):jsxRuntimeExports.jsx("div",{className:"h-full bg-blue-500 animate-pulse transition-all duration-500",style:{width:`${Math.max(Ma,5)}%`}})})():jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Aa>0&&jsxRuntimeExports.jsx("div",{className:"h-full bg-teal-500 transition-all duration-500",style:{width:`${Aa}%`}}),Oa>0&&jsxRuntimeExports.jsx("div",{className:"h-full bg-red-500 transition-all duration-500",style:{width:`${Oa}%`}}),Ia>0&&jsxRuntimeExports.jsx("div",{className:"h-full bg-blue-500 animate-pulse transition-all duration-500",style:{width:`${Ia}%`}})]})}),Qr>1&&jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-x-6 gap-y-1",children:es.map(Da=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-xs py-0.5",children:[jsxRuntimeExports.jsx(JobStatusIcon,{status:Da.status}),jsxRuntimeExports.jsx("span",{className:"font-mono truncate",children:Da.projectPath??"global"}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground ml-auto shrink-0",children:Da.status==="running"||Da.status==="claimed"?jobStepLabel(Da):Da.status==="failed"?"error":Da.status==="completed"?"done":"queued"})]},Da.id))})]})})}function ProjectJobBadge({job:es}){return es.status==="completed"?jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] bg-teal-500/10 text-teal-500 border-teal-500/20 font-mono",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"mr-1 h-2.5 w-2.5"})," done"]}):es.status==="failed"?jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] bg-red-500/10 text-red-500 border-red-500/20 font-mono",children:[jsxRuntimeExports.jsx(CircleX,{className:"mr-1 h-2.5 w-2.5"})," failed"]}):es.status==="running"||es.status==="claimed"?jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] bg-blue-500/10 text-blue-500 border-blue-500/20 font-mono",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"mr-1 h-2.5 w-2.5 animate-spin"})," ",jobStepLabel(es)]}):jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] bg-amber-500/10 text-amber-500 border-amber-500/20 font-mono",children:[jsxRuntimeExports.jsx(CircleDashed,{className:"mr-1 h-2.5 w-2.5"})," queued"]})}function WorkerOfflineBanner(){const{workers:es,isLoading:$}=useWorkerStatus("cli-worker");if($)return null;const ts=es.slice().sort((Qr,ja)=>new Date(ja.lastHeartbeat).getTime()-new Date(Qr.lastHeartbeat).getTime())[0];if((ts==null?void 0:ts.status)==="active")return null;const Kr=ts?`${Math.round((Date.now()-new Date(ts.lastHeartbeat).getTime())/1e3)}s ago`:"never";return jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-amber-500/40 bg-amber-500/10 px-4 py-3 text-sm",children:[jsxRuntimeExports.jsx("div",{className:"font-medium text-amber-500 mb-1",children:"Worker offline"}),jsxRuntimeExports.jsxs("div",{className:"text-muted-foreground",children:["No cli-worker has heartbeat'd within the last 60s (last seen: ",Kr,"). Insights jobs will queue but won't run until the worker is healthy. Restart with"," ",jsxRuntimeExports.jsx("code",{className:"font-mono text-xs bg-secondary px-1 py-0.5 rounded",children:"launchctl kickstart -k gui/$UID/com.rulemetric.worker"}),"."]})]})}function formatCompact(es){return new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(es)}function parseTimestamp(es){if(!es)return null;const $=es.replace(" ","T").replace(/([+-]\d{2})$/,"$1:00"),ts=new Date($);return Number.isNaN(ts.getTime())?null:ts}function formatSessionRange(es,$){const ts=parseTimestamp(es),is=parseTimestamp($),Kr={month:"short",day:"numeric",year:"numeric"};if(ts&&is){const ja=ts.getFullYear()===is.getFullYear();return`${ts.toLocaleDateString(void 0,ja?{month:"short",day:"numeric"}:Kr)} – ${is.toLocaleDateString(void 0,Kr)}`}const Qr=ts??is;return Qr?Qr.toLocaleDateString(void 0,Kr):null}function outcomeScore(es){const $=(es.achieved??0)+(es.mostly_achieved??0),ts=Object.values(es).reduce((is,Kr)=>is+Kr,0);return ts?Math.round($/ts*100):null}function InsightsOverview({computed:es}){var Ca;const $=outcomeScore(es.outcomes??{}),ts=es.total_sessions?Math.round(es.sessions_with_analysis/es.total_sessions*100):0,is=Object.entries(es.friction??{}).sort((Aa,Oa)=>Oa[1]-Aa[1])[0],Kr=Object.entries(es.tool_counts??{}).sort((Aa,Oa)=>Oa[1]-Aa[1]).slice(0,5),Qr=((Ca=Kr[0])==null?void 0:Ca[1])??1,ja=[{label:"Successful outcomes",value:$==null?"—":`${$}%`,detail:`${es.sessions_with_analysis} analyzed`,icon:CircleCheck},{label:"Estimated spend",value:`$${(es.estimated_cost_usd??0).toFixed(2)}`,detail:`${formatCompact(es.total_input_tokens+es.total_output_tokens)} tokens`,icon:DollarSign},{label:"Tool errors",value:es.total_tool_errors.toLocaleString(),detail:`${es.total_interruptions} interruptions`,icon:TriangleAlert},{label:"Code changed",value:`+${formatCompact(es.total_lines_added)}`,detail:`${formatCompact(es.total_lines_removed)} removed · ${es.git_commits} commits`,icon:TrendingUp}];return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:ja.map(({label:Aa,value:Oa,detail:Ia,icon:Da})=>jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsxs(CardContent,{className:"p-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-muted-foreground",children:[jsxRuntimeExports.jsx("span",{className:"text-xs font-medium uppercase tracking-wide",children:Aa}),jsxRuntimeExports.jsx(Da,{className:"h-4 w-4"})]}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-2xl font-mono font-semibold",children:Oa}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:Ia})]})},Aa))}),es.truncated&&jsxRuntimeExports.jsxs("p",{className:"flex items-center gap-1.5 text-xs text-amber-600",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-3 w-3 shrink-0"}),"Computed from your 500 most-recent sessions — spend and token totals are a floor, not a complete sum."]}),jsxRuntimeExports.jsxs("div",{className:"grid gap-4 lg:grid-cols-3",children:[jsxRuntimeExports.jsxs(Card,{className:"lg:col-span-2",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-3",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-base",children:"What is slowing work down?"})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-3",children:[Object.entries(es.friction??{}).sort((Aa,Oa)=>Oa[1]-Aa[1]).slice(0,5).map(([Aa,Oa])=>{const Ia=Math.max(1,Object.values(es.friction).reduce((Da,Ba)=>Da+Ba,0));return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"mb-1 flex justify-between text-sm",children:[jsxRuntimeExports.jsx("span",{children:Aa.replace(/_/g," ")}),jsxRuntimeExports.jsx("span",{className:"font-mono text-muted-foreground",children:Oa})]}),jsxRuntimeExports.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-muted",children:jsxRuntimeExports.jsx("div",{className:"h-full rounded-full bg-amber-500",style:{width:`${Math.max(4,Oa/Ia*100)}%`}})})]},Aa)}),!is&&jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No friction has been detected in analyzed sessions."})]})]}),jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-3",children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-base flex items-center gap-2",children:[jsxRuntimeExports.jsx(Wrench,{className:"h-4 w-4"})," Most-used tools"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:Kr.map(([Aa,Oa])=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 text-sm",children:[jsxRuntimeExports.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:Aa}),jsxRuntimeExports.jsx("div",{className:"h-1.5 w-20 overflow-hidden rounded-full bg-muted",children:jsxRuntimeExports.jsx("div",{className:"h-full bg-primary",style:{width:`${Oa/Qr*100}%`}})}),jsxRuntimeExports.jsx("span",{className:"w-10 text-right font-mono text-xs text-muted-foreground",children:Oa})]},Aa))})]})]}),ts<80&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:["Analysis coverage is ",ts,"%. Outcome and friction metrics reflect ",es.sessions_with_analysis," of ",es.total_sessions," sessions."]})]})}function ProjectCard({project:es,hasReport:$,activeJob:ts,onClick:is}){const Kr=formatSessionRange(es.firstSession,es.lastSession);return jsxRuntimeExports.jsxs(Card,{className:"cursor-pointer hover:border-primary/50 transition-colors",...activatable(is),children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-base font-mono",children:es.name}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[ts?jsxRuntimeExports.jsx(ProjectJobBadge,{job:ts}):$?jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs bg-teal-500/10 text-teal-500 border-teal-500/20",children:"Recommendations"}):null,jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-xs",children:[es.enrichedCount," enriched"]})]})]})}),jsxRuntimeExports.jsxs(CardContent,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-6 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsxs("span",{children:[es.sessionCount," sessions"]}),es.analyzedCount>0&&jsxRuntimeExports.jsxs("span",{children:[es.analyzedCount," analyzed"]})]}),Kr&&jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:Kr})]})]})}function ReleaseCategorySection({label:es,items:$,colorClass:ts}){const[is,Kr]=reactExports.useState(!1);return $.length===0?null:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>Kr(!is),className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors w-full text-left cursor-pointer",children:[is?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3.5 w-3.5 shrink-0"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3.5 w-3.5 shrink-0"}),jsxRuntimeExports.jsx("span",{className:ts,children:es}),jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",$.length,")"]})]}),is&&jsxRuntimeExports.jsx("ul",{className:"mt-1.5 ml-5 space-y-1",children:$.map((Qr,ja)=>jsxRuntimeExports.jsx("li",{className:"text-xs text-muted-foreground leading-relaxed",children:Qr},ja))})]})}function ReleaseCard({release:es}){var ja,Ca,Aa;const $=es.categories??{features:[],fixes:[],security:[]},ts=((ja=$.features)==null?void 0:ja.length)??0,is=((Ca=$.fixes)==null?void 0:Ca.length)??0,Kr=((Aa=$.security)==null?void 0:Aa.length)??0,Qr=new Date(es.publishedAt).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"});return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{className:"pb-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-base font-mono",children:es.version}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:Qr})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[ts>0&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] bg-teal-500/10 text-teal-500 border-teal-500/20",children:[ts," feature",ts!==1?"s":""]}),is>0&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] bg-amber-500/10 text-amber-500 border-amber-500/20",children:[is," fix",is!==1?"es":""]}),Kr>0&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] bg-red-500/10 text-red-500 border-red-500/20",children:[Kr," security"]})]})]}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-2",children:[jsxRuntimeExports.jsx(ReleaseCategorySection,{label:"Features",items:$.features??[],colorClass:"text-teal-500"}),jsxRuntimeExports.jsx(ReleaseCategorySection,{label:"Fixes",items:$.fixes??[],colorClass:"text-amber-500"}),jsxRuntimeExports.jsx(ReleaseCategorySection,{label:"Security",items:$.security??[],colorClass:"text-red-500"}),es.url&&jsxRuntimeExports.jsx("div",{className:"pt-1 flex justify-end",children:jsxRuntimeExports.jsxs("a",{href:es.url,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline flex items-center gap-1",children:["View release ",jsxRuntimeExports.jsx(ExternalLink,{className:"h-3 w-3"})]})})]})]})}function HarnessUpdatesTab(){const{data:es,isLoading:$}=useHarnessReleases("claude_code"),ts=useSyncHarnessReleases();return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-mono font-semibold",children:"Claude Code Releases"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Changelog from the Claude Code GitHub repository"})]}),jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",onClick:()=>ts.mutate("claude_code"),disabled:ts.isPending,className:"cursor-pointer",children:[ts.isPending?jsxRuntimeExports.jsx(LoaderCircle,{className:"mr-2 h-3.5 w-3.5 animate-spin"}):jsxRuntimeExports.jsx(RefreshCw,{className:"mr-2 h-3.5 w-3.5"}),"Sync"]})]}),ts.isSuccess&&jsxRuntimeExports.jsxs("div",{className:"text-xs text-muted-foreground",children:["Synced ",ts.data.synced," new release",ts.data.synced!==1?"s":""," (",ts.data.total," total checked)"]}),$?jsxRuntimeExports.jsx("div",{className:"space-y-3",children:[...Array(4)].map((is,Kr)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-32"},Kr))}):!es||es.length===0?jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{className:"pt-6",children:jsxRuntimeExports.jsxs("div",{className:"text-center space-y-4 py-8",children:[jsxRuntimeExports.jsx(Package,{className:"h-12 w-12 mx-auto text-muted-foreground"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold",children:"No releases synced yet"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"Click Sync to fetch the latest releases from GitHub."})]})]})})}):jsxRuntimeExports.jsx("div",{className:"space-y-3",children:es.map(is=>jsxRuntimeExports.jsx(ReleaseCard,{release:is},is.id))})]})}function InsightsListPage(){const[es,$]=useTabParam(["overview","harness-updates"],"overview"),ts=useNavigate(),{data:is,isLoading:Kr}=useComputedInsights(),{data:Qr}=useInsightsProjects(),ja=useRegenerateAllInsights(),Ca=useActiveInsightsJobs(),{data:Aa}=useInsightsJobs(void 0,500),Oa=(Aa??[]).filter(qa=>qa.status!=="cancelled"),Ia=(()=>{if(Oa.length<2)return[];const qa=[...Oa].sort((Ka,Qa)=>new Date(Ka.createdAt).getTime()-new Date(Qa.createdAt).getTime());let Ha=[];for(let Ka=0;Ka<qa.length;Ka++){const Qa=new Date(qa[Ka].createdAt).getTime(),Va=qa.filter(Ya=>new Date(Ya.createdAt).getTime()-Qa<12e4&&new Date(Ya.createdAt).getTime()>=Qa);Va.length>Ha.length&&(Ha=Va)}return Ha.length<2?[]:Ha})(),Da=Ia.length>1,Ba=new Map;for(const qa of Ia)qa.projectPath&&!Ba.has(qa.projectPath)&&Ba.set(qa.projectPath,qa);const Ma=new Set(Oa.filter(qa=>qa.status==="completed"&&qa.projectPath).map(qa=>qa.projectPath)),Fa=qa=>{if(qa.errors.length>0&&ue$1.error(`${qa.errors.length} project${qa.errors.length===1?"":"s"} failed to enqueue`,{description:`${qa.errors[0].projectPath}: ${qa.errors[0].error}`}),qa.created>0){ue$1.success(`Started ${qa.created} regeneration job${qa.created===1?"":"s"}`,qa.noLiveWorker?{description:"No live worker — start `rulemetric evals agent` to run them."}:void 0);return}const Ha=qa.skipped.filter(Qa=>Qa.reason==="fresh").length,Ka=qa.skipped.length-Ha;Ha>0?ue$1(Ka>0?`${Ha} project${Ha===1?"":"s"} fresh (<4h), ${Ka} skipped`:`All ${Ha} project${Ha===1?" is":"s are"} fresh (regenerated <4h ago)`,{action:{label:"Force regenerate",onClick:()=>ja.mutate({force:!0},{onSuccess:Fa,onError:Qa=>ue$1.error("Couldn't start the regeneration",{description:Qa instanceof Error?Qa.message:"Please try again."})})}}):Ka>0?ue$1(`${Ka} project${Ka===1?"":"s"} skipped (no checkout or too few sessions)`):qa.errors.length===0&&ue$1("No projects eligible for regeneration")};return Kr?jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Insights"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Loading..."})]}),jsxRuntimeExports.jsx("div",{className:"space-y-4",children:[...Array(3)].map((qa,Ha)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-28"},Ha))})]}):!is||is.total_sessions===0?jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Insights"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Claude Code session analytics and AI-powered recommendations"})]}),jsxRuntimeExports.jsxs(Tabs,{value:es,onValueChange:$,children:[jsxRuntimeExports.jsxs(TabsList,{children:[jsxRuntimeExports.jsxs(TabsTrigger,{value:"overview",children:[jsxRuntimeExports.jsx(ChartColumn,{className:"h-4 w-4"}),"Overview"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"harness-updates",children:[jsxRuntimeExports.jsx(Package,{className:"h-4 w-4"}),"Harness Updates"]})]}),jsxRuntimeExports.jsx(TabsContent,{value:"overview",className:"space-y-4 pt-2",children:jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{className:"pt-6",children:jsxRuntimeExports.jsxs("div",{className:"text-center space-y-4 py-8",children:[jsxRuntimeExports.jsx(TrendingUp,{className:"h-12 w-12 mx-auto text-muted-foreground"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold",children:"No sessions captured yet"}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground max-w-md mx-auto mt-2",children:["Run ",jsxRuntimeExports.jsx("code",{className:"font-mono",children:"rulemetric hooks install"})," in a project to start capturing Claude Code sessions. Insights will appear automatically after your next session."]})]})]})})})}),jsxRuntimeExports.jsx(TabsContent,{value:"harness-updates",className:"pt-2",children:jsxRuntimeExports.jsx(HarnessUpdatesTab,{})})]})]}):jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx(WorkerOfflineBanner,{}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Insights"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Claude Code session analytics and AI-powered recommendations"})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2",children:jsxRuntimeExports.jsx(Button,{onClick:()=>ja.mutate(void 0,{onSuccess:Fa,onError:qa=>ue$1.error("Couldn't start the regeneration",{description:qa instanceof Error?qa.message:"Please try again."})}),disabled:ja.isPending||Ca.length>0,className:"cursor-pointer",children:Ca.length>0?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"mr-2 h-4 w-4 animate-spin"}),"Generating (",Ca.length," remaining)..."]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(RefreshCw,{className:"mr-2 h-4 w-4"}),"Regenerate All"]})})})]}),jsxRuntimeExports.jsxs(Tabs,{value:es,onValueChange:$,children:[jsxRuntimeExports.jsxs(TabsList,{children:[jsxRuntimeExports.jsxs(TabsTrigger,{value:"overview",children:[jsxRuntimeExports.jsx(ChartColumn,{className:"h-4 w-4"}),"Overview"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"harness-updates",children:[jsxRuntimeExports.jsx(Package,{className:"h-4 w-4"}),"Harness Updates"]})]}),jsxRuntimeExports.jsxs(TabsContent,{value:"overview",className:"space-y-4 pt-2",children:[Da&&jsxRuntimeExports.jsx(JobTracker,{jobs:Ia}),(is==null?void 0:is.analysis_freshness)&&jsxRuntimeExports.jsx(AnalysisFreshnessBanner,{freshness:is.analysis_freshness,totalAnalyzed:is.sessions_with_analysis}),jsxRuntimeExports.jsxs("div",{className:"space-y-5",children:[jsxRuntimeExports.jsx(InsightsOverview,{computed:is}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>ts("/insights/computed"),className:"text-sm font-medium text-primary hover:underline cursor-pointer",children:"Explore detailed trends and recommendations →"}),Qr&&Qr.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("h3",{className:"text-sm font-mono font-semibold text-muted-foreground pt-2",children:"By Project"}),Qr.filter(qa=>qa.sessionCount>=3).map(qa=>{const Ha=Ma.has(qa.projectPath),Ka=Ba.get(qa.projectPath),Qa=qa.projectId??void 0,Va=Qa?`/insights/computed?projectPath=${encodeURIComponent(qa.projectPath)}&projectId=${encodeURIComponent(Qa)}`:`/insights/computed?projectPath=${encodeURIComponent(qa.projectPath)}`;return jsxRuntimeExports.jsx(ProjectCard,{project:qa,hasReport:Ha,activeJob:Ka,onClick:()=>ts(Va)},Qa??qa.projectPath)})]})]})]}),jsxRuntimeExports.jsx(TabsContent,{value:"harness-updates",className:"pt-2",children:jsxRuntimeExports.jsx(HarnessUpdatesTab,{})})]})]})}function verdictState(es){return es.sufficient?es.significant?"significant":"no-effect":(es.strataDroppedForTimeSeparation??0)>0?"no-comparable-cohort":"insufficient"}function VerdictBadge({verdict:es}){const $=`95% CI ${(es.ci.lower*100).toFixed(0)}–${(es.ci.upper*100).toFixed(0)}%`,ts=`n=${es.nWith}`,is=es.strata!=null?` · within ${es.strata} project${es.strata===1?"":"s"}`:"",Kr=es.confounded?` · observational${is}`:"",Qr=verdictState(es);if(Qr==="no-comparable-cohort"){const Oa=es.strataDroppedForTimeSeparation;return jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:`No comparable cohort. ${Oa} project-month${Oa===1?"":"s"} held both exposed and unexposed sessions, but they're separated in time — this treatment's sessions all ran later than the ones without it, so any difference is a calendar difference, not an effect. More sessions won't resolve it; a randomised holdout would.`,children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] font-mono shrink-0 text-amber-400 border-amber-400/40",children:"no comparable cohort"})})}if(Qr==="insufficient")return jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:`Not enough sessions to measure this yet, so no number is shown (rather than a fabricated one).${es.insufficientReason?` ${es.insufficientReason}`:""}`,children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] font-mono shrink-0 text-muted-foreground",children:"insufficient data"})});if(Qr==="no-effect")return jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:`The with-vs-without difference isn't statistically distinguishable from zero, so we report no effect rather than noise. ${$}, ${ts}${Kr}.`,children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] font-mono shrink-0 text-muted-foreground",children:"no measured effect"})});const ja=es.delta>0,Ca=`${ja?"+":""}${(es.delta*100).toFixed(0)}%`,Aa=es.pValue!=null?`, p=${es.pValue.toFixed(3)}`:"";return jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:`Sessions with this ${ja?"did measurably BETTER":"did measurably WORSE"} than sessions without it, and the difference is statistically significant. ${$}, ${ts}${Aa}${Kr}. Observational — a correlation from real sessions, not a controlled experiment.`,children:jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:cn$1("text-[10px] font-mono shrink-0",ja?"text-teal-400 border-teal-400/40":"text-red-400 border-red-400/40"),children:[Ca," outcome"]})})}function SessionsTab({data:es}){return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[Object.keys(es.projects).length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono",children:["Projects (",Object.keys(es.projects).length,")"]})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(HorizontalBar,{items:es.projects})})]}),es.session_summaries.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono",children:["Sessions with Analysis (",es.session_summaries.length,")"]})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx("div",{className:"space-y-2 max-h-96 overflow-y-auto",children:es.session_summaries.map($=>{const ts=$.id.length===36&&$.id.includes("-"),is=jsxRuntimeExports.jsxs("div",{className:`flex items-start gap-3 rounded-lg border border-border bg-background p-3 ${ts?"hover:border-primary/50 cursor-pointer":""}`,children:[jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"font-mono text-xs shrink-0",children:$.date}),jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsx("p",{className:"text-sm truncate",children:$.summary||$.goal||"No summary"}),$.goal&&$.summary&&jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 truncate",children:$.goal}),"outcome"in $&&$.outcome&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"mt-1 text-[10px]",children:friendlyLabel($.outcome)})]})]});return ts?jsxRuntimeExports.jsx(Link,{to:`/sessions/${$.id}`,children:is},$.id):jsxRuntimeExports.jsx("div",{children:is},$.id)})})})]})]})}function RecEntryControls({item:es,projectPath:$}){const ts=useDismissRecommendation();return es.id?jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1 shrink-0",children:[(es.timesGenerated??1)>1&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] font-mono text-muted-foreground",title:`This exact advice has been generated by ${es.timesGenerated} separate insights runs. Dismissing it stops the repetition for 90 days.`,"data-testid":"rec-seen-count",children:["seen ×",es.timesGenerated]}),jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",className:"cursor-pointer h-6 w-6 p-0 text-muted-foreground",title:"Dismiss — hidden for 90 days",disabled:ts.isPending,"data-testid":"rec-dismiss",onClick:()=>ts.mutate({contentHash:es.id,projectPath:$},{onError:is=>ue$1.error(is.message)}),children:jsxRuntimeExports.jsx(X$1,{className:"h-3 w-3"})})]}):null}function RecommendationsTab({rec:es,projectPath:$,autoAddAvailable:ts}){var ja,Ca,Aa,Oa,Ia,Da;const is=useAutoAddSuggestion(),[Kr,Qr]=reactExports.useState(new Set);return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[es.at_a_glance&&jsxRuntimeExports.jsxs(Card,{className:"border-amber-500/30 bg-amber-500/5",children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(Sparkles,{className:"h-4 w-4 text-amber-500"}),"At a Glance"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:Object.entries(es.at_a_glance).map(([Ba,Ma])=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-1",children:Ba.replace(/_/g," ")}),jsxRuntimeExports.jsx("p",{className:"text-sm",children:Ma})]},Ba))})]}),((ja=es.what_works)==null?void 0:ja.impressive_workflows)&&es.what_works.impressive_workflows.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Impressive Things You Did"})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:es.what_works.impressive_workflows.map((Ba,Ma)=>jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:Ba.title}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Ba.description})]},Ma))})]}),((Ca=es.friction_analysis)==null?void 0:Ca.categories)&&es.friction_analysis.categories.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4 text-amber-500"}),"Where Things Go Wrong"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:es.friction_analysis.categories.map((Ba,Ma)=>jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:Ba.category}),jsxRuntimeExports.jsx(RecEntryControls,{item:Ba,projectPath:$})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Ba.description}),Ba.examples.length>0&&jsxRuntimeExports.jsx("ul",{className:"mt-2 space-y-1",children:Ba.examples.map((Fa,qa)=>jsxRuntimeExports.jsx("li",{className:"text-xs text-muted-foreground pl-3 border-l-2 border-border",children:Fa},qa))})]},Ba.id??Ma))})]}),((Aa=es.suggestions)==null?void 0:Aa.features_to_try)&&es.suggestions.features_to_try.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(Lightbulb,{className:"h-4 w-4 text-blue-500"}),"Features to Try"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:es.suggestions.features_to_try.map((Ba,Ma)=>jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:Ba.feature}),Ba.example_code&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(RunCommandButton,{prompt:Ba.example_code}),jsxRuntimeExports.jsx(CopyButton$2,{text:Ba.example_code})]})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Ba.why_for_you}),Ba.example_code&&jsxRuntimeExports.jsx("pre",{className:"mt-2 rounded bg-[#0B1120] p-2 text-xs font-mono overflow-x-auto",children:Ba.example_code})]},Ma))})]}),((Oa=es.suggestions)==null?void 0:Oa.claude_md_additions)&&es.suggestions.claude_md_additions.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Suggested CLAUDE.md Additions"})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:es.suggestions.claude_md_additions.map((Ba,Ma)=>jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2",children:[jsxRuntimeExports.jsx("pre",{className:"text-xs font-mono bg-muted px-2 py-1 rounded flex-1 overflow-x-auto",children:Ba.addition}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(RecEntryControls,{item:Ba,projectPath:$}),jsxRuntimeExports.jsx(CopyButton$2,{text:Ba.addition}),$&&ts&&jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",className:"cursor-pointer h-7 text-xs",disabled:Kr.has(Ma)||is.isPending,onClick:Fa=>{Fa.stopPropagation(),is.mutate({projectPath:$,addition:Ba.addition,why:Ba.why},{onSuccess:qa=>{(qa.success||qa.reason==="already_present")&&Qr(Ha=>new Set(Ha).add(Ma))},onError:qa=>{const Ha=qa instanceof ApiError&&(qa.code==="not_local_mode"||qa.statusCode===501);ue$1.error(Ha?"Add to CLAUDE.md only works when the API runs on your machine (local mode) — use the copy button instead.":qa instanceof Error?qa.message:"Failed to update CLAUDE.md")}})},children:is.isPending?jsxRuntimeExports.jsx(LoaderCircle,{className:"h-3 w-3 animate-spin"}):Kr.has(Ma)?jsxRuntimeExports.jsx(Check,{className:"h-3 w-3 text-teal-500"}):jsxRuntimeExports.jsx(Upload,{className:"h-3 w-3"})})]})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:Ba.why}),Kr.has(Ma)&&jsxRuntimeExports.jsx("p",{className:"text-xs text-teal-500 mt-1",children:"Added to CLAUDE.md"})]},Ma))})]}),((Ia=es.suggestions)==null?void 0:Ia.usage_patterns)&&es.suggestions.usage_patterns.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(MessageSquare,{className:"h-4 w-4 text-cyan-500"}),"Usage Patterns"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:es.suggestions.usage_patterns.map((Ba,Ma)=>jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:Ba.title}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[Ba.copyable_prompt&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(RunCommandButton,{prompt:Ba.copyable_prompt}),jsxRuntimeExports.jsx(CopyButton$2,{text:Ba.copyable_prompt})]}),jsxRuntimeExports.jsx(RecEntryControls,{item:Ba,projectPath:$})]})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Ba.suggestion}),Ba.copyable_prompt&&jsxRuntimeExports.jsx("pre",{className:"mt-2 rounded bg-[#0B1120] p-2 text-xs font-mono overflow-x-auto",children:Ba.copyable_prompt})]},Ba.id??Ma))})]}),((Da=es.on_the_horizon)==null?void 0:Da.opportunities)&&es.on_the_horizon.opportunities.length>0&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-2",children:[jsxRuntimeExports.jsx(TrendingUp,{className:"h-4 w-4 text-pink-500"}),"On the Horizon"]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:es.on_the_horizon.opportunities.map((Ba,Ma)=>jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:Ba.title}),Ba.copyable_prompt&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(RunCommandButton,{prompt:Ba.copyable_prompt}),jsxRuntimeExports.jsx(CopyButton$2,{text:Ba.copyable_prompt})]})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Ba.whats_possible}),Ba.copyable_prompt&&jsxRuntimeExports.jsx("pre",{className:"mt-2 rounded bg-[#0B1120] p-2 text-xs font-mono overflow-x-auto",children:Ba.copyable_prompt})]},Ma))})]}),es.fun_ending&&jsxRuntimeExports.jsx(Card,{className:"border-pink-500/20 bg-pink-500/5",children:jsxRuntimeExports.jsxs(CardContent,{className:"pt-6",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:es.fun_ending.headline}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:es.fun_ending.detail})]})})]})}function ScorePair({label:es,withVal:$,withoutVal:ts,delta:is,unit:Kr,inverted:Qr}){const ja=Oa=>Oa!=null?`${Oa}${Kr}`:"—",Ca=is!=null&&is!==0?(Qr?is<0:is>0)?"text-teal-500":"text-red-500":"text-muted-foreground",Aa=is!=null&&is>0?"+":"";return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-muted-foreground mb-1",children:es}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsx("span",{className:"font-mono",children:ja($)}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"vs"}),jsxRuntimeExports.jsx("span",{className:"font-mono",children:ja(ts)})]}),is!=null&&is!==0&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:`text-[10px] mt-1 ${Ca} ${(Qr?is<0:is>0)?"bg-teal-500/10 border-teal-500/20":"bg-red-500/10 border-red-500/20"}`,children:[Aa,is,Kr]})]})}function SegmentLine({title:es,noun:$,segments:ts}){if(!ts||ts.length===0)return null;const is=ts.filter(Qr=>Qr.verdict.sufficient),Kr=ts.length-is.length;return is.length===0&&Kr===0?null:jsxRuntimeExports.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-1.5",children:[jsxRuntimeExports.jsx("span",{className:"text-[10px] text-muted-foreground mr-0.5",children:es}),is.map(Qr=>{const ja=Qr.verdict,Ca=ja.delta>0,Aa=ja.significant?`${Ca?"+":""}${(ja.delta*100).toFixed(0)}%`:"no effect",Oa=ja.significant?Ca?"text-teal-400 border-teal-400/40":"text-red-400 border-red-400/40":"text-muted-foreground",Ia=`95% CI ${(ja.ci.lower*100).toFixed(0)}–${(ja.ci.upper*100).toFixed(0)}%, n=${ja.nWith} exposed / ${ja.nWithout} unexposed (observational)`;return jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:cn$1("text-[10px] font-mono",Oa),title:Ia,children:[Qr.label," ",Aa]},Qr.label)}),Kr>0&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] font-mono text-muted-foreground",title:`Not enough exposed + unexposed sessions within a project to measure ${Kr===1?`this ${$}`:`these ${$}s`} yet.`,children:[Kr," ",$,Kr===1?"":"s",": insufficient"]})]})}function SegmentBreakdown({impact:es}){const $=(es.segments??[]).map(is=>({label:is.model,verdict:is.verdict})),ts=(es.harnessSegments??[]).map(is=>({label:is.harness,verdict:is.verdict}));return $.length===0&&ts.length===0?null:jsxRuntimeExports.jsxs("div",{className:"mt-3 pt-3 border-t",children:[jsxRuntimeExports.jsx(SegmentLine,{title:"By model:",noun:"model",segments:$}),jsxRuntimeExports.jsx(SegmentLine,{title:"By harness:",noun:"harness",segments:ts})]})}function RandomisedBadges({randomised:es}){const $=ts=>ts.split("/").filter(Boolean).pop()??ts;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[es.verdicts.map(ts=>jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:`RANDOMISED verdict on ${ts.projectPath}: sessions were assigned to receive or not receive this instruction, and the ${ts.decision==="always"?"receiving":"withheld"} arm did measurably ${ts.decision==="always"?"better":"better without it"}. ${(ts.delta>0?"+":"")+(ts.delta*100).toFixed(0)}pp, 95% CI ${(ts.ciLower*100).toFixed(0)} to ${(ts.ciUpper*100).toFixed(0)}pp, n=${ts.nTreated}/${ts.nControl}. This supersedes the observational estimate for that project — assignment, not correlation.`,children:jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:ts.decision==="always"?"text-[10px] font-mono shrink-0 text-teal-400 border-teal-400/40":"text-[10px] font-mono shrink-0 text-red-400 border-red-400/40","data-testid":"randomised-verdict-badge",children:["randomised · ",ts.delta>0?"+":"",(ts.delta*100).toFixed(0),"pp on ",$(ts.projectPath)]})},ts.projectPath)),es.experiments.map(ts=>jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:`Under randomised measurement on ${ts.projectPath} right now — injected to some sessions and withheld from the rest until the arms decide.`,children:jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] font-mono shrink-0 text-muted-foreground","data-testid":"randomised-running-badge",children:["measuring · ",$(ts.projectPath)]})},ts.id))]})}function ImpactCard({impact:es,linkedSessions:$,source:ts}){const is=es.with,Kr=es.without,Qr=es.comparison;return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2",children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono truncate",children:es.instructionName}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[jsxRuntimeExports.jsx(ProvenanceBadge,{source:ts}),es.autoAdded&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] font-mono text-teal-400 border-teal-400/40",title:`Auto-added from a recommendation${es.autoAdded.count>1?` ×${es.autoAdded.count}`:""}`+(es.autoAdded.lastAssignedAt?` (last ${new Date(es.autoAdded.lastAssignedAt).toLocaleDateString()})`:"")+" — the verdict beside this is whether it helped.",children:["auto-added",es.autoAdded.count>1?` ×${es.autoAdded.count}`:""]}),es.randomised&&jsxRuntimeExports.jsx(RandomisedBadges,{randomised:es.randomised}),jsxRuntimeExports.jsx(VerdictBadge,{verdict:es.verdict}),$!=null&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] font-mono",children:[$," sessions"]})]})]})}),jsxRuntimeExports.jsxs(CardContent,{children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-xs",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-muted-foreground mb-1",children:"Sessions"}),jsxRuntimeExports.jsxs("p",{className:"font-mono",children:[is.sessionCount," with / ",Kr.sessionCount," without"]}),jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground mt-0.5",children:[is.enrichedCount," / ",Kr.enrichedCount," enriched"]})]}),jsxRuntimeExports.jsx(ScorePair,{label:"Outcome Score",withVal:is.avgOutcomeScore,withoutVal:Kr.avgOutcomeScore,delta:Qr.outcomeScoreDelta,unit:""}),jsxRuntimeExports.jsx(ScorePair,{label:"Tool Errors",withVal:is.avgToolErrors,withoutVal:Kr.avgToolErrors,delta:Qr.toolErrorsDelta,unit:"",inverted:!0}),jsxRuntimeExports.jsx(ScorePair,{label:"Avg Duration",withVal:is.avgDurationMinutes,withoutVal:Kr.avgDurationMinutes,delta:Qr.durationDelta,unit:"m",inverted:!0})]}),jsxRuntimeExports.jsx(SegmentBreakdown,{impact:es})]})]})}function InstructionImpactLoader({instructionId:es,linkedSessions:$,source:ts}){const{data:is,isLoading:Kr}=useInstructionImpact(es);return Kr?jsxRuntimeExports.jsx(Skeleton,{className:"h-24"}):!is||is.with.sessionCount===0&&is.without.sessionCount===0?null:jsxRuntimeExports.jsx(ImpactCard,{impact:is,linkedSessions:$,source:ts})}function GroomingCard(){const{data:es,isLoading:$}=useGroomCandidates(),ts=useArchiveInstruction(),is=useRestoreInstruction(),[Kr,Qr]=reactExports.useState(new Set);if($||!es)return null;if(!es.captureHealthy)return jsxRuntimeExports.jsxs(Card,{className:"border-amber-500/30",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm",children:"Grooming paused"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:es.reason})})]});const ja=es.harmful??[],Ca=es.bloated??[],Aa=es.candidates.length+ja.length;if(Aa===0&&Ca.length===0)return null;const Oa=Da=>jsxRuntimeExports.jsx(Button,{size:"sm",variant:"outline",className:"h-6 text-[10px] shrink-0",disabled:Kr.has(Da)||ts.isPending,onClick:()=>ts.mutate(Da,{onSuccess:()=>{Qr(Ba=>new Set(Ba).add(Da)),ue$1.success("Archived",{description:"Soft delete — this can be restored.",action:{label:"Undo",onClick:()=>is.mutate(Da,{onSuccess:()=>{Qr(Ba=>{const Ma=new Set(Ba);return Ma.delete(Da),Ma}),ue$1.success("Restored")},onError:()=>ue$1.error("Restore failed")})}})},onError:()=>ue$1.error("Archive failed")}),children:Kr.has(Da)?"Archived":"Archive"}),Ia=es.safetyGuarded+(es.harmfulSafetyGuarded??0);return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{className:"pb-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2",children:[jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm",children:["Instructions worth a second look (",Aa+Ca.length,")"]}),Ia>0&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] font-mono text-muted-foreground shrink-0",title:"Safety / destructive-guardrail rules are never proposed for retirement, however rarely they fire or however they score.",children:[Ia," safety rule",Ia===1?"":"s"," protected"]})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Your own instructions worth a second look. Archiving is reversible; safety rules are never listed here."})]}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-4",children:[Ca.length>0&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[11px] font-medium text-amber-400/90 mb-0.5",children:"Expensive, no measurable effect"}),jsxRuntimeExports.jsx("p",{className:"text-[10px] text-muted-foreground mb-1.5",children:"Enough exposure to detect an effect and none was found — so these are candidates to SHORTEN, not to retire. Neutral means undetected, not worthless; the rule may carry something the outcome score cannot see. No archive button here on purpose."}),jsxRuntimeExports.jsx("div",{className:"space-y-1.5 max-h-64 overflow-y-auto",children:Ca.map(Da=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2 text-xs",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"font-mono truncate",title:Da.name,children:Da.name}),jsxRuntimeExports.jsx(VerdictBadge,{verdict:Da.verdict}),Da.containsSafetyLanguage&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] border-amber-500/40 text-amber-400 shrink-0",title:"Contains destructive-command or credential guardrail language. Shown anyway — a trim changes nothing on its own — but preserve those lines when shortening.",children:"has guardrails"})]}),jsxRuntimeExports.jsxs("span",{className:"text-[10px] font-mono text-muted-foreground shrink-0",title:"Estimated from content length (chars/4), not a tokenizer count.",children:["~",Da.estimatedTokens.toLocaleString()," tok/session"]})]},Da.id))})]}),ja.length>0&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[11px] font-medium text-red-400/90 mb-0.5",children:"Measurably worse outcomes"}),jsxRuntimeExports.jsx("p",{className:"text-[10px] text-muted-foreground mb-1.5",children:"Present in sessions that scored significantly lower. Correlational, not proven cause — the rule may just ride along with harder tasks — so review before retiring; the verdict beside each shows the effect."}),jsxRuntimeExports.jsx("div",{className:"space-y-1.5 max-h-64 overflow-y-auto",children:ja.map(Da=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2 text-xs",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"font-mono truncate",title:Da.name,children:Da.name}),jsxRuntimeExports.jsx(VerdictBadge,{verdict:Da.verdict})]}),Oa(Da.id)]},Da.id))})]}),es.candidates.length>0&&jsxRuntimeExports.jsxs("div",{children:[ja.length>0&&jsxRuntimeExports.jsx("p",{className:"text-[11px] font-medium text-muted-foreground mb-1.5",children:"No recent use"}),jsxRuntimeExports.jsx("div",{className:"space-y-1.5 max-h-80 overflow-y-auto",children:es.candidates.map(Da=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2 text-xs",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"font-mono truncate",title:Da.name,children:Da.name}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] shrink-0 text-muted-foreground",children:Da.reason})]}),Oa(Da.id)]},Da.id))})]})]})]})}function InstructionsTab({projectFilter:es}){const{data:$,isLoading:ts}=useLinkedInstructions(es);return ts?jsxRuntimeExports.jsx("div",{className:"space-y-3",children:[...Array(3)].map((is,Kr)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-24"},Kr))}):jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsx(GroomingCard,{}),!$||$.length===0?jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{className:"pt-6",children:jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No instructions linked to sessions yet. Instructions are auto-captured from context snapshots — the session-end hook snapshots your on-disk CLAUDE.md files, and the proxy additionally captures runtime-rendered prompts and skills."})})}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Instructions linked to sessions, ranked by usage. Comparing sessions with vs. without each instruction."}),$.map(is=>jsxRuntimeExports.jsx(InstructionImpactLoader,{instructionId:is.id,linkedSessions:is.linkedSessions,source:is.source},is.id))]})]})}function InsightsDetailPage(){const{id:es}=useParams(),[$]=useSearchParams(),ts=es==="computed",is=ts?$.get("projectPath")??$.get("project")??void 0:void 0,Kr=ts?$.get("projectId")??void 0:void 0,[Qr,ja]=reactExports.useState(""),{data:Ca,recommendations:Aa,isLoading:Oa,fullProjectPath:Ia,title:Da,subtitle:Ba,lastCompletedJob:Ma,activeJobs:Fa,createJob:qa}=useProjectInsights(es,is,Kr,Qr||void 0),[Ha,Ka]=useTabParam(["overview","tools","quality","sessions","instructions","recommendations"],"overview");if(Oa)return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-48"}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[...Array(4)].map((Wa,el)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-24"},el))})]});if(!Ca)return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/insights",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"})," Back"]})}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Report not found."})]});const Qa=ts?Ca.tools_used??{}:{},Va=Object.keys(Qa).sort((Wa,el)=>(Qa[el]??0)-(Qa[Wa]??0)),Ya=Ca.autoAddAvailable!==!1;return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",asChild:!0,className:"cursor-pointer",children:jsxRuntimeExports.jsxs(Link,{to:"/insights",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-1 h-4 w-4"})," Back"]})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:Da}),ts&&(Va.length>1||Qr)&&jsxRuntimeExports.jsxs("select",{value:Qr,onChange:Wa=>ja(Wa.target.value),className:"h-8 rounded-md border border-input bg-background px-2 text-xs font-mono cursor-pointer focus:outline-none focus:ring-1 focus:ring-ring",children:[jsxRuntimeExports.jsx("option",{value:"",children:"All Tools"}),Va.map(Wa=>jsxRuntimeExports.jsxs("option",{value:Wa,children:[displayTool(Wa)," (",Qa[Wa],")"]},Wa)),Qr&&!Va.includes(Qr)&&jsxRuntimeExports.jsx("option",{value:Qr,children:displayTool(Qr)})]})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:Ba}),ts&&Va.length>0&&!Qr&&jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1.5 mt-1 flex-wrap",children:Va.map(Wa=>jsxRuntimeExports.jsx(Badge,{asChild:!0,variant:"outline",children:jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>ja(Wa),className:"text-[10px] font-mono cursor-pointer hover:bg-primary/10",children:[displayTool(Wa),": ",Qa[Wa]]})},Wa))})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[Ma&&jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground",children:["Last generated ",new Date(Ma.completedAt).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})]}),jsxRuntimeExports.jsxs(Button,{onClick:()=>qa.mutate(Ia??is,{onSuccess:Wa=>{Wa.noLiveWorker?ue$1.warning("Queued, but no worker is listening",{description:"Start one with `rulemetric evals agent` (or `rulemetric service install --worker-only`) and it will pick this up."}):ue$1.success("Generating recommendations…")},onError:Wa=>ue$1.error("Couldn't start the run",{description:Wa instanceof Error?Wa.message:"Please try again."})}),disabled:qa.isPending||Fa.length>0,variant:"outline",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(Sparkles,{className:"mr-2 h-4 w-4"}),Fa.length>0?`Generating — ${jobStepLabel(Fa[0])}`:Aa?"Refresh Recommendations":"Generate Recommendations"]})]})]}),ts&&jsxRuntimeExports.jsx(AnalysisFreshnessBanner,{freshness:Ca.analysis_freshness,totalAnalyzed:Ca.sessions_with_analysis??0}),jsxRuntimeExports.jsx(WorkerOfflineBanner,{}),Fa.length>0&&jsxRuntimeExports.jsx(JobTracker,{jobs:Fa}),jsxRuntimeExports.jsxs(Tabs,{value:Ha,onValueChange:Ka,children:[jsxRuntimeExports.jsxs(TabsList,{children:[jsxRuntimeExports.jsxs(TabsTrigger,{value:"overview",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(ChartColumn,{className:"mr-2 h-4 w-4"}),"Overview"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"tools",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(Terminal,{className:"mr-2 h-4 w-4"}),"Tools"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"quality",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(TrendingUp,{className:"mr-2 h-4 w-4"}),"Quality"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"sessions",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(MessageSquare,{className:"mr-2 h-4 w-4"}),"Sessions"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"instructions",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(Lightbulb,{className:"mr-2 h-4 w-4"}),"Instructions"]}),jsxRuntimeExports.jsxs(TabsTrigger,{value:"recommendations",className:"cursor-pointer",children:[jsxRuntimeExports.jsx(Sparkles,{className:"mr-2 h-4 w-4"}),"Recommendations"]})]}),jsxRuntimeExports.jsx(TabsContent,{value:"overview",className:"mt-6",children:jsxRuntimeExports.jsx(OverviewTab,{data:Ca})}),jsxRuntimeExports.jsx(TabsContent,{value:"tools",className:"mt-6",children:jsxRuntimeExports.jsx(ToolsTab,{data:Ca})}),jsxRuntimeExports.jsx(TabsContent,{value:"quality",className:"mt-6",children:jsxRuntimeExports.jsx(QualityTab,{data:Ca})}),jsxRuntimeExports.jsx(TabsContent,{value:"sessions",className:"mt-6",children:jsxRuntimeExports.jsx(SessionsTab,{data:Ca})}),jsxRuntimeExports.jsx(TabsContent,{value:"instructions",className:"mt-6",children:jsxRuntimeExports.jsx(InstructionsTab,{projectFilter:is})}),jsxRuntimeExports.jsx(TabsContent,{value:"recommendations",className:"mt-6",children:Aa?jsxRuntimeExports.jsx(RecommendationsTab,{rec:Aa,projectPath:Ia,autoAddAvailable:Ya}):jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{className:"pt-6",children:jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:Fa.length>0?`Generating recommendations — ${jobStepLabel(Fa[0])}`:'No recommendations yet. Use "Generate Recommendations" above to analyze this project’s sessions.'})})})})]})]})}const MEMORY_PAGE_SIZE=50;function useMemories(es="active",$="",ts="all"){return useInfiniteQuery({queryKey:["memories",{status:es,search:$,kind:ts}],initialPageParam:0,queryFn:({pageParam:is})=>{const Kr=new URLSearchParams({status:es,limit:String(MEMORY_PAGE_SIZE),offset:String(is)});return $&&Kr.set("search",$),ts&&ts!=="all"&&Kr.set("kind",ts),apiGet(`/api/memories?${Kr.toString()}`).then(Qr=>Qr.memories)},getNextPageParam:(is,Kr)=>is.length<MEMORY_PAGE_SIZE?void 0:Kr.length*MEMORY_PAGE_SIZE})}function useMemory(es){return useQuery({queryKey:["memories",es],queryFn:()=>apiGet(`/api/memories/${es}`),enabled:!!es})}function useMemoryImpact(es){return useQuery({queryKey:["insights","memory-impact",es],queryFn:()=>apiGet(`/api/insights/memory-impact?memoryId=${es}`),enabled:!!es})}function useMemoryExperiments(es){return useQuery({queryKey:["memories",es,"experiments"],queryFn:()=>apiGet(`/api/memories/${es}/experiments`),enabled:!!es,select:$=>$.experiments,refetchInterval:$=>{var is;return(((is=$.state.data)==null?void 0:is.experiments)??[]).some(Kr=>Kr.status==="pending"||Kr.status==="running")?5e3:!1}})}function useCreateExperiment(es){const $=useQueryClient();return useMutation({mutationFn:ts=>apiPost(`/api/memories/${es}/experiments`,ts),onSuccess:()=>$.invalidateQueries({queryKey:["memories",es,"experiments"]})})}function useCreateMemory(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPost("/api/memories",$),onSuccess:()=>es.invalidateQueries({queryKey:["memories"]})})}function useUpdateMemory(){const es=useQueryClient();return useMutation({mutationFn:({id:$,...ts})=>apiPatch(`/api/memories/${$}`,ts),onSuccess:($,ts)=>{es.invalidateQueries({queryKey:["memories"]}),es.invalidateQueries({queryKey:["memories",ts.id]})}})}function useArchiveMemory(){const es=useQueryClient();return useMutation({mutationFn:$=>apiDelete(`/api/memories/${$}`),onSuccess:($,ts)=>{es.invalidateQueries({queryKey:["memories"]}),es.invalidateQueries({queryKey:["memories",ts]})}})}const KINDS=["fact","decision","correction","convention"];function MemoryFormDialog({open:es,onOpenChange:$,memory:ts}){const is=!!ts,Kr=useCreateMemory(),Qr=useUpdateMemory(),[ja,Ca]=reactExports.useState("fact"),[Aa,Oa]=reactExports.useState(""),[Ia,Da]=reactExports.useState("");reactExports.useEffect(()=>{es&&(Ca((ts==null?void 0:ts.kind)??"fact"),Oa((ts==null?void 0:ts.title)??""),Da((ts==null?void 0:ts.body)??""))},[es,ts==null?void 0:ts.id]);const Ba=Kr.isPending||Qr.isPending,Ma=Aa.trim().length>0&&Ia.trim().length>0&&!Ba,Fa=()=>{if(!Ma)return;const qa=Ka=>()=>{ue$1.success(`Memory ${Ka}`),$(!1)},Ha=Ka=>ue$1.error(Ka instanceof Error?Ka.message:"Something went wrong");is?Qr.mutate({id:ts.id,kind:ja,title:Aa.trim(),body:Ia.trim()},{onSuccess:qa("updated"),onError:Ha}):Kr.mutate({kind:ja,title:Aa.trim(),body:Ia.trim()},{onSuccess:qa("created"),onError:Ha})};return jsxRuntimeExports.jsx(Dialog,{open:es,onOpenChange:$,children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:is?"Edit memory":"New memory"}),jsxRuntimeExports.jsx(DialogDescription,{children:"A durable note the session-start hook injects into future sessions as context. Its measured effect is tracked automatically."})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1.5",children:[jsxRuntimeExports.jsx(Label,{children:"Kind"}),jsxRuntimeExports.jsxs(Select,{value:ja,onValueChange:qa=>Ca(qa),children:[jsxRuntimeExports.jsx(SelectTrigger,{className:"cursor-pointer",children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsx(SelectContent,{children:KINDS.map(qa=>jsxRuntimeExports.jsx(SelectItem,{value:qa,className:"capitalize",children:qa},qa))})]})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-1.5",children:[jsxRuntimeExports.jsx(Label,{children:"Title"}),jsxRuntimeExports.jsx(Input,{value:Aa,onChange:qa=>Oa(qa.target.value),placeholder:"Short, memorable summary",maxLength:300})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-1.5",children:[jsxRuntimeExports.jsx(Label,{children:"Body"}),jsxRuntimeExports.jsx(Textarea,{value:Ia,onChange:qa=>Da(qa.target.value),placeholder:"The fact / decision / correction / convention to remember.",rows:5})]})]}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{variant:"outline",onClick:()=>$(!1),className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{onClick:Fa,disabled:!Ma,className:"cursor-pointer",children:Ba?"Saving…":is?"Save changes":"Create"})]})]})})}const kindColors={fact:"bg-blue-500/15 text-blue-400 border-blue-500/30",decision:"bg-primary/15 text-primary border-primary/30",correction:"bg-red-500/15 text-red-400 border-red-500/30",convention:"bg-pink-500/15 text-pink-400 border-pink-500/30"};function useDebouncedValue(es,$){const[ts,is]=reactExports.useState(es);return reactExports.useEffect(()=>{const Kr=setTimeout(()=>is(es),$);return()=>clearTimeout(Kr)},[es,$]),ts}function MemoryList(){const[es,$]=reactExports.useState("active"),[ts,is]=reactExports.useState(""),[Kr,Qr]=reactExports.useState("all"),[ja,Ca]=reactExports.useState(!1),Aa=useNavigate(),Oa=useDebouncedValue(ts.trim(),300),{data:Ia,isLoading:Da,error:Ba,hasNextPage:Ma,fetchNextPage:Fa,isFetchingNextPage:qa}=useMemories(es,Oa,Kr),Ha=reactExports.useMemo(()=>(Ia==null?void 0:Ia.pages.flat())??[],[Ia]),Ka=Oa!==""||Kr!=="all";if(Ba)return jsxRuntimeExports.jsxs("div",{className:"text-center py-12 text-destructive",children:["Failed to load memories: ",Ba.message]});const Qa=es!=="active";return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"relative min-w-40 flex-1",children:[jsxRuntimeExports.jsx(Search,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),jsxRuntimeExports.jsx(Input,{placeholder:"Search memories...",value:ts,onChange:Va=>is(Va.target.value),className:"pl-9 bg-background border-border"})]}),jsxRuntimeExports.jsxs(Select,{value:Kr,onValueChange:Qr,children:[jsxRuntimeExports.jsx(SelectTrigger,{className:"w-36 cursor-pointer",children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:"all",children:"All kinds"}),jsxRuntimeExports.jsx(SelectItem,{value:"fact",children:"Fact"}),jsxRuntimeExports.jsx(SelectItem,{value:"decision",children:"Decision"}),jsxRuntimeExports.jsx(SelectItem,{value:"correction",children:"Correction"}),jsxRuntimeExports.jsx(SelectItem,{value:"convention",children:"Convention"})]})]}),jsxRuntimeExports.jsxs(Select,{value:es,onValueChange:Va=>$(Va),children:[jsxRuntimeExports.jsx(SelectTrigger,{className:"w-32 cursor-pointer",children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:"active",children:"Active"}),jsxRuntimeExports.jsx(SelectItem,{value:"archived",children:"Archived"}),jsxRuntimeExports.jsx(SelectItem,{value:"all",children:"All"})]})]}),jsxRuntimeExports.jsxs(Button,{className:"cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",onClick:()=>Ca(!0),children:[jsxRuntimeExports.jsx(Plus,{className:"mr-2 h-4 w-4"}),"New"]})]}),Da?jsxRuntimeExports.jsx("div",{className:"space-y-2",children:Array.from({length:6}).map((Va,Ya)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-12 rounded-lg"},Ya))}):Ha.length===0?jsxRuntimeExports.jsxs("div",{className:"text-center py-12",children:[jsxRuntimeExports.jsx(Brain,{className:"mx-auto h-8 w-8 text-muted-foreground/40 mb-3"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground mb-4",children:Ka?"No memories match your filters.":"No memories yet. Create one, or let the distiller extract them from your sessions."}),!Ka&&jsxRuntimeExports.jsxs(Button,{className:"cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",onClick:()=>Ca(!0),children:[jsxRuntimeExports.jsx(Plus,{className:"mr-2 h-4 w-4"}),"Create memory"]})]}):jsxRuntimeExports.jsx("div",{className:"bg-card border border-border rounded-lg",children:jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{className:"hover:bg-transparent",children:[jsxRuntimeExports.jsx(TableHead,{children:"Title"}),jsxRuntimeExports.jsx(TableHead,{children:"Kind"}),jsxRuntimeExports.jsx(TableHead,{className:"hidden md:table-cell",children:"Scope"}),jsxRuntimeExports.jsx(TableHead,{className:"hidden lg:table-cell",children:"Source"}),Qa&&jsxRuntimeExports.jsx(TableHead,{children:"Status"}),jsxRuntimeExports.jsx(TableHead,{className:"text-right",children:"Updated"})]})}),jsxRuntimeExports.jsx(TableBody,{children:Ha.map(Va=>jsxRuntimeExports.jsxs(TableRow,{className:"hover:bg-secondary/50 transition-colors duration-200 cursor-pointer",onClick:()=>Aa(`/memories/${Va.id}`),children:[jsxRuntimeExports.jsx(TableCell,{className:"font-medium max-w-md truncate",children:Va.title}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:`capitalize ${kindColors[Va.kind]}`,children:Va.kind})}),jsxRuntimeExports.jsx(TableCell,{className:"hidden md:table-cell text-xs text-muted-foreground",children:Va.projectId?"Project":"Global"}),jsxRuntimeExports.jsx(TableCell,{className:"hidden lg:table-cell text-xs text-muted-foreground",children:Va.source}),Qa&&jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs capitalize text-muted-foreground",children:Va.status})}),jsxRuntimeExports.jsx(TableCell,{className:"text-right text-xs text-muted-foreground",children:formatDistanceToNow(Va.updatedAt)})]},Va.id))})]})}),Ma&&jsxRuntimeExports.jsx("div",{className:"flex justify-center",children:jsxRuntimeExports.jsx(Button,{variant:"outline",className:"cursor-pointer",disabled:qa,onClick:()=>Fa(),children:qa?"Loading…":"Load more"})}),jsxRuntimeExports.jsx(MemoryFormDialog,{open:ja,onOpenChange:Ca})]})}function MemoriesListPage(){return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Memories"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Durable project facts your agent recalls — injected at session start, and measured for whether they actually help."})]}),jsxRuntimeExports.jsx(MemoryList,{})]})}function ExperimentRow({exp:es}){return jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-3 py-2 border-b border-border last:border-0",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsx("p",{className:"text-xs font-mono truncate",title:es.taskPrompt,children:es.taskPrompt}),jsxRuntimeExports.jsxs("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:["v",es.memoryVersion," · ",es.trials," trials · ",formatDistanceToNow(es.createdAt)]}),es.status==="failed"&&es.error&&jsxRuntimeExports.jsx("p",{className:"text-[10px] text-red-400 mt-0.5",title:es.error,children:es.error})]}),jsxRuntimeExports.jsx("div",{className:"shrink-0",children:es.status==="completed"&&es.result?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground",children:["n=",es.result.completedTrials]}),jsxRuntimeExports.jsx(VerdictBadge,{verdict:es.result.verdict})]}):es.status==="failed"?jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] text-red-400 border-red-400/40",children:"failed"}):jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] text-muted-foreground gap-1",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"h-3 w-3 animate-spin"}),es.status==="running"?"running":"queued"]})})]})}function MemoryExperiments({memoryId:es}){const{data:$,isLoading:ts}=useMemoryExperiments(es),is=useCreateExperiment(es),[Kr,Qr]=reactExports.useState(!1),[ja,Ca]=reactExports.useState(""),[Aa,Oa]=reactExports.useState(""),[Ia,Da]=reactExports.useState(10);function Ba(){const Ma=Aa.split(`
144
- `).map(Fa=>Fa.trim()).filter(Boolean);if(!ja.trim()||Ma.length===0){ue$1.error("A task prompt and at least one expectation are required.");return}is.mutate({taskPrompt:ja.trim(),expectations:Ma,trials:Ia},{onSuccess:Fa=>{ue$1.success(Fa.noLiveWorker?"Queued — start `rulemetric evals agent` on your laptop to run it":"Controlled A/B started — the causal verdict appears when it finishes"),Ca(""),Oa(""),Qr(!1)},onError:Fa=>ue$1.error(`Failed: ${Fa.message}`)})}return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2",children:[jsxRuntimeExports.jsxs(CardTitle,{className:"text-sm font-mono flex items-center gap-1.5",children:[jsxRuntimeExports.jsx(FlaskConical,{className:"h-3.5 w-3.5"})," Controlled A/B"]}),jsxRuntimeExports.jsx(Button,{variant:"outline",size:"sm",className:"cursor-pointer h-7 text-xs",onClick:()=>Qr(Ma=>!Ma),children:Kr?"Cancel":"Run A/B"})]})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-3",children:[jsxRuntimeExports.jsxs("p",{className:"text-[10px] text-muted-foreground",children:["The gold-standard causal test: the same task run with vs without this memory injected, graded and paired. Unlike the observational effect above, this holds the task constant — so its delta isn't confounded. Each trial runs"," ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:"claude"})," on your laptop (needs"," ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:"rulemetric evals agent"}),"); ≥10 trials to clear the significance gate."]}),Kr&&jsxRuntimeExports.jsxs("div",{className:"space-y-2 rounded-md border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"ab-task",className:"text-xs",children:"Task prompt"}),jsxRuntimeExports.jsx(Textarea,{id:"ab-task",value:ja,onChange:Ma=>Ca(Ma.target.value),placeholder:"e.g. Add a new dependency to this project.",className:"text-xs min-h-16"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"ab-exp",className:"text-xs",children:"Expectations (one per line)"}),jsxRuntimeExports.jsx(Textarea,{id:"ab-exp",value:Aa,onChange:Ma=>Oa(Ma.target.value),placeholder:`Uses pnpm, not npm
145
- Runs the install command`,className:"text-xs min-h-16"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-end justify-between gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"ab-trials",className:"text-xs",children:"Trials"}),jsxRuntimeExports.jsx(Input,{id:"ab-trials",type:"number",min:1,max:50,value:Ia,onChange:Ma=>Da(Math.max(1,Math.min(50,Number(Ma.target.value)||1))),className:"text-xs h-8 w-20"})]}),jsxRuntimeExports.jsx(Button,{size:"sm",className:"cursor-pointer",disabled:is.isPending,onClick:Ba,children:is.isPending?"Starting…":"Run experiment"})]})]}),ts?jsxRuntimeExports.jsx(Skeleton,{className:"h-12"}):!$||$.length===0?jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"No controlled experiments yet. Run one to get an unconfounded causal delta."}):jsxRuntimeExports.jsx("div",{children:$.map(Ma=>jsxRuntimeExports.jsx(ExperimentRow,{exp:Ma},Ma.id))})]})]})}function formatTokens(es){return es==null?"—":es>=1e6?`${(es/1e6).toFixed(1)}M`:es>=1e3?`${(es/1e3).toFixed(0)}K`:String(es)}function Cohort({label:es,value:$}){return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-muted-foreground mb-1",children:es}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:$})]})}function MemoryImpactCard({impact:es}){const $=es.with,ts=es.without,is=es.comparison,Kr=$.avgOutcomeScore!=null&&ts.avgOutcomeScore!=null?`${$.avgOutcomeScore} vs ${ts.avgOutcomeScore}${is.outcomeScoreDelta!=null?` (${is.outcomeScoreDelta>0?"+":""}${is.outcomeScoreDelta})`:""}`:"—",Qr=$.avgTotalTokens!=null&&ts.avgTotalTokens!=null?`${formatTokens($.avgTotalTokens)} vs ${formatTokens(ts.avgTotalTokens)}`:"—";return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2",children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Measured effect"}),jsxRuntimeExports.jsx(VerdictBadge,{verdict:es.verdict})]})}),jsxRuntimeExports.jsxs(CardContent,{children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-xs",children:[jsxRuntimeExports.jsx(Cohort,{label:"Sessions",value:`${$.sessionCount} with / ${ts.sessionCount} without`}),jsxRuntimeExports.jsx(Cohort,{label:"Outcome score",value:Kr}),jsxRuntimeExports.jsx(Cohort,{label:"Avg tokens/session",value:Qr})]}),jsxRuntimeExports.jsx("p",{className:"text-[10px] text-muted-foreground mt-3",children:"Observational — sessions exposed to this memory vs not, compared within each project. Not a controlled experiment; cost is estimated."})]})]})}function VersionHistoryCard({versions:es}){return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Effect by version"})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-2",children:[es.map($=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2 text-xs",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs("span",{className:"font-mono",children:["v",$.version]}),$.isCurrent&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] py-0 text-muted-foreground",children:"current"}),jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:[$.with.sessionCount," session",$.with.sessionCount===1?"":"s"]})]}),jsxRuntimeExports.jsx(VerdictBadge,{verdict:$.verdict})]},$.version)),jsxRuntimeExports.jsx("p",{className:"text-[10px] text-muted-foreground pt-1",children:"Each edit bumps the version and re-opens measurement, so a version is scored only on the sessions that actually saw it."})]})]})}function MemoryImpactLoader({memoryId:es}){const{data:$,isLoading:ts}=useMemoryImpact(es);return ts?jsxRuntimeExports.jsx(Skeleton,{className:"h-28"}):!$||$.with.sessionCount===0&&$.without.sessionCount===0?jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardContent,{className:"pt-6",children:jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No measured effect yet. Once this memory is injected into sessions (via the session-start hook) and those sessions are analyzed, its verdict appears here."})})}):jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx(MemoryImpactCard,{impact:$}),$.versions.length>1&&jsxRuntimeExports.jsx(VersionHistoryCard,{versions:$.versions})]})}function MemoryDetail({id:es}){const{data:$,isLoading:ts,error:is}=useMemory(es),Kr=useArchiveMemory(),Qr=useUpdateMemory(),[ja,Ca]=reactExports.useState(!1);if(ts)return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-64"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-40"})]});if(is||!$)return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",asChild:!0,className:"cursor-pointer",children:jsxRuntimeExports.jsxs(Link,{to:"/memories",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"})," Back"]})}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Memory not found."})]});const Aa=$.status==="archived";return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-4",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",asChild:!0,className:"cursor-pointer",children:jsxRuntimeExports.jsxs(Link,{to:"/memories",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-1 h-4 w-4"})," Back"]})}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",className:"cursor-pointer",onClick:()=>Ca(!0),children:[jsxRuntimeExports.jsx(Pencil,{className:"mr-1.5 h-3.5 w-3.5"})," Edit"]}),Aa?jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",className:"cursor-pointer",disabled:Qr.isPending,onClick:()=>Qr.mutate({id:$.id,status:"active"},{onSuccess:()=>ue$1.success("Memory restored"),onError:()=>ue$1.error("Restore failed")}),children:[jsxRuntimeExports.jsx(RotateCcw,{className:"mr-1.5 h-3.5 w-3.5"})," Restore"]}):jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",className:"cursor-pointer text-red-400 hover:text-red-400",disabled:Kr.isPending,onClick:()=>Kr.mutate($.id,{onSuccess:()=>ue$1.success("Memory archived (reversible)"),onError:()=>ue$1.error("Archive failed")}),children:[jsxRuntimeExports.jsx(Archive,{className:"mr-1.5 h-3.5 w-3.5"})," Archive"]})]})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[jsxRuntimeExports.jsx(Badge,{variant:"outline",className:`capitalize ${kindColors[$.kind]??""}`,children:$.kind}),Aa&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-muted-foreground",children:"archived"}),jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:["v",$.version," · ",$.source," · ",$.projectId?"project-scoped":"global"]})]}),jsxRuntimeExports.jsx("h2",{className:"text-2xl font-bold tracking-tight mt-2",children:$.title})]}),jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono",children:"Content"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx("p",{className:"text-sm whitespace-pre-wrap leading-relaxed",children:$.body})})]}),jsxRuntimeExports.jsx(MemoryImpactLoader,{memoryId:$.id}),jsxRuntimeExports.jsx(MemoryExperiments,{memoryId:$.id}),jsxRuntimeExports.jsx(MemoryFormDialog,{open:ja,onOpenChange:Ca,memory:$})]})}function MemoryDetailPage(){const{id:es}=useParams();return es?jsxRuntimeExports.jsx(MemoryDetail,{id:es}):null}const CATEGORY_LABELS={workflow:"Workflow",language:"Language",framework:"Framework",tool:"Tool",security:"Security",testing:"Testing",architecture:"Architecture",devops:"DevOps",documentation:"Documentation",performance:"Performance",other:"Other"};function CopyInstallButton({skill:es}){const{copied:$,copy:ts}=useCopyToClipboard(),is=`rulemetric skills install ${es.id}`;return jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",className:"cursor-pointer h-7 text-xs gap-1.5",onClick:Kr=>{Kr.stopPropagation(),ts(is)},title:is,children:[$?jsxRuntimeExports.jsx(Check,{className:"h-3 w-3"}):jsxRuntimeExports.jsx(Copy,{className:"h-3 w-3"}),$?"Copied!":"Install"]})}function SkillCard({skill:es,onSelect:$}){return jsxRuntimeExports.jsxs(Card,{className:"cursor-pointer hover:bg-secondary/30 transition-colors",onClick:()=>$(es),children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-2",children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-mono leading-tight",children:es.name}),jsxRuntimeExports.jsx(CopyInstallButton,{skill:es})]})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-3",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground line-clamp-2",children:es.description}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-1",children:[jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"text-[10px] font-mono",children:CATEGORY_LABELS[es.category]??es.category}),es.tools.slice(0,3).map(ts=>jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px] font-mono",children:displayTool(ts)},ts)),es.tools.length>3&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] font-mono",children:["+",es.tools.length-3]})]}),es.tags.length>0&&jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1",children:es.tags.slice(0,4).map(ts=>jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-muted-foreground font-mono",children:["#",ts]},ts))})]})]})}function SkillDetailDialog({skill:es,open:$,onClose:ts}){var Oa;const{copied:is,copy:Kr}=useCopyToClipboard(),{data:Qr,isLoading:ja}=useSkill($?es==null?void 0:es.id:void 0);if(!es)return null;const Ca=Qr??es,Aa=`rulemetric skills install ${Ca.id}`;return jsxRuntimeExports.jsx(Dialog,{open:$,onOpenChange:Ia=>!Ia&&ts(),children:jsxRuntimeExports.jsxs(DialogContent,{className:"sm:max-w-[95vw] max-h-[90vh] overflow-y-auto",children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsx(DialogTitle,{className:"font-mono",children:Ca.name})}),jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:Ca.description}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"font-mono text-xs",children:CATEGORY_LABELS[Ca.category]??Ca.category}),Ca.tools.map(Ia=>jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"font-mono text-xs",children:displayTool(Ia)},Ia))]}),(((Oa=Ca.languages)==null?void 0:Oa.length)??0)>0&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:"Languages:"}),Ca.languages.map(Ia=>jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs font-mono",children:Ia},Ia))]}),jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-2",children:[jsxRuntimeExports.jsx("span",{className:"text-xs font-medium font-mono",children:"Install"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5",children:[Ca.content&&jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",className:"cursor-pointer h-7 text-xs gap-1.5 border-primary/30 text-primary hover:bg-primary/10",onClick:()=>{const Ia=new Blob([Ca.content],{type:"text/markdown"}),Da=URL.createObjectURL(Ia),Ba=document.createElement("a");Ba.href=Da,Ba.download=`${Ca.id}.md`,Ba.click(),URL.revokeObjectURL(Da)},children:[jsxRuntimeExports.jsx(Download,{className:"h-3 w-3"}),"Download"]}),jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",className:"cursor-pointer h-7 text-xs gap-1.5",onClick:()=>{Kr(Aa)},children:[is?jsxRuntimeExports.jsx(Check,{className:"h-3 w-3"}):jsxRuntimeExports.jsx(Copy,{className:"h-3 w-3"}),is?"Copied!":"Copy CLI"]})]})]}),jsxRuntimeExports.jsx("pre",{className:"text-xs font-mono bg-[#0B1120] text-muted-foreground rounded p-2 overflow-x-auto",children:Aa})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h4",{className:"text-xs font-medium font-mono mb-2",children:"Content"}),ja&&!Ca.content?jsxRuntimeExports.jsx(Skeleton,{className:"h-40 w-full"}):Ca.content?jsxRuntimeExports.jsx("pre",{className:"text-xs font-mono bg-[#0B1120] text-muted-foreground rounded p-3 overflow-x-auto whitespace-pre-wrap max-h-[55vh]",children:Ca.content}):jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"No content available."})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[jsxRuntimeExports.jsxs("span",{children:["Source:"," ",jsxRuntimeExports.jsxs("a",{href:Ca.source.url,target:"_blank",rel:"noopener noreferrer",className:"underline inline-flex items-center gap-1",children:[Ca.source.repo,jsxRuntimeExports.jsx(ExternalLink,{className:"h-3 w-3"})]})]}),Ca.source.license&&jsxRuntimeExports.jsx("span",{children:Ca.source.license})]})]})]})})}const PAGE_SIZE$1=60;function SkillsListPage(){const{data:es,isLoading:$}=useSkillsRegistry(),[ts,is]=reactExports.useState(""),[Kr,Qr]=reactExports.useState(null),[ja,Ca]=reactExports.useState(null),[Aa,Oa]=reactExports.useState(null),[Ia,Da]=reactExports.useState(PAGE_SIZE$1),Ba=(es==null?void 0:es.skills)??[],Ma=reactExports.useMemo(()=>[...new Set(Ba.map(Qa=>Qa.category))].sort(),[Ba]),Fa=reactExports.useMemo(()=>[...new Set(Ba.flatMap(Qa=>Qa.tools))].sort(),[Ba]),qa=reactExports.useMemo(()=>{let Qa=Ba;if(ts){const Va=ts.toLowerCase();Qa=Qa.filter(Ya=>Ya.name.toLowerCase().includes(Va)||Ya.description.toLowerCase().includes(Va)||Ya.tags.some(Wa=>Wa.toLowerCase().includes(Va))||Ya.id.toLowerCase().includes(Va))}return Kr&&(Qa=Qa.filter(Va=>Va.category===Kr)),ja&&(Qa=Qa.filter(Va=>Va.tools.includes(ja)||Va.tools.includes("universal"))),Qa.sort((Va,Ya)=>{var tl,rl;const Wa=((tl=Va.popularity)==null?void 0:tl.stars)??0,el=((rl=Ya.popularity)==null?void 0:rl.stars)??0;return Wa!==el?el-Wa:Va.name.localeCompare(Ya.name)}),Qa},[Ba,ts,Kr,ja]);reactExports.useEffect(()=>{Da(PAGE_SIZE$1)},[ts,Kr,ja]);const Ha=qa.slice(0,Ia),Ka=qa.length>Ia;return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Skills Registry"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Browse and install community-contributed skills for your AI coding tools"})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"relative flex-1",children:[jsxRuntimeExports.jsx(Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),jsxRuntimeExports.jsx(Input,{placeholder:"Search skills...",value:ts,onChange:Qa=>is(Qa.target.value),className:"pl-9 font-mono"})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 flex-wrap",children:[Kr&&jsxRuntimeExports.jsxs(Button,{variant:"secondary",size:"sm",className:"cursor-pointer gap-1 font-mono text-xs",onClick:()=>Qr(null),children:[CATEGORY_LABELS[Kr]??Kr,jsxRuntimeExports.jsx(X$1,{className:"h-3 w-3"})]}),ja&&jsxRuntimeExports.jsxs(Button,{variant:"secondary",size:"sm",className:"cursor-pointer gap-1 font-mono text-xs",onClick:()=>Ca(null),children:[displayTool(ja),jsxRuntimeExports.jsx(X$1,{className:"h-3 w-3"})]})]})]}),!Kr&&!ja&&jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground mr-1 self-center",children:"Category:"}),Ma.map(Qa=>jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"cursor-pointer text-xs font-mono hover:bg-secondary",onClick:()=>Qr(Qa),children:CATEGORY_LABELS[Qa]??Qa},Qa))]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground mr-1 self-center",children:"Tool:"}),Fa.map(Qa=>jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"cursor-pointer text-xs font-mono hover:bg-secondary",onClick:()=>Ca(Qa),children:displayTool(Qa)},Qa))]})]}),$?jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:Array.from({length:6}).map((Qa,Va)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-40"},Va))}):qa.length===0?jsxRuntimeExports.jsxs("div",{className:"text-center py-12 text-muted-foreground",children:[jsxRuntimeExports.jsx(Sparkles,{className:"mx-auto h-12 w-12 mb-4 opacity-50"}),jsxRuntimeExports.jsx("p",{className:"font-mono",children:Ba.length===0?"No skills in registry":"No matching skills"}),Ba.length===0&&jsxRuntimeExports.jsxs("p",{className:"text-sm mt-1",children:["Run"," ",jsxRuntimeExports.jsx("code",{className:"bg-muted px-1 rounded",children:"rulemetric skills update"})," ","to fetch the registry"]})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground font-mono",children:["Showing ",Ha.length," of ",qa.length," skill",qa.length!==1?"s":"",ts||Kr||ja?" matching filters":""]}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:Ha.map(Qa=>jsxRuntimeExports.jsx(SkillCard,{skill:Qa,onSelect:Oa},Qa.id))}),Ka&&jsxRuntimeExports.jsx("div",{className:"flex justify-center pt-2",children:jsxRuntimeExports.jsxs(Button,{variant:"outline",className:"cursor-pointer font-mono",onClick:()=>Da(Qa=>Qa+PAGE_SIZE$1),children:["Load ",Math.min(PAGE_SIZE$1,qa.length-Ia)," more"]})})]}),jsxRuntimeExports.jsx(SkillDetailDialog,{skill:Aa,open:!!Aa,onClose:()=>Oa(null)})]})}function relativeDate(es){if(!es)return"recently";const $=new Date(es).getTime();if(Number.isNaN($))return"recently";const ts=Math.floor((Date.now()-$)/864e5);return ts<1?"today":ts===1?"yesterday":ts<30?`${ts}d ago`:ts<365?`${Math.floor(ts/30)}mo ago`:`${Math.floor(ts/365)}y ago`}function formatStars(es){return es>=1e3?`${(es/1e3).toFixed(1)}k`:String(es)}function PublicCatalogPage(){const[es,$]=reactExports.useState(""),[ts,is]=reactExports.useState(es);reactExports.useEffect(()=>{const Da=setTimeout(()=>is(es),250);return()=>clearTimeout(Da)},[es]);const{data:Kr,isLoading:Qr,isFetchingNextPage:ja,fetchNextPage:Ca,hasNextPage:Aa,error:Oa}=usePublicCatalog(ts||void 0),Ia=reactExports.useMemo(()=>(Kr==null?void 0:Kr.pages.flat())??[],[Kr]);return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("h2",{className:"text-2xl font-bold tracking-tight flex items-center gap-2",children:[jsxRuntimeExports.jsx(Globe,{className:"h-6 w-6"}),"Public Catalog"]}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Community-maintained skills and instructions, browsable here for reference."})]}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Search,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),jsxRuntimeExports.jsx(Input,{placeholder:"Search public catalog...",value:es,onChange:Da=>$(Da.target.value),className:"pl-9"})]}),Oa?jsxRuntimeExports.jsxs("div",{className:"text-center py-12 text-destructive",children:["Failed to load public catalog: ",Oa.message]}):Qr?jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:Array.from({length:6}).map((Da,Ba)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-40 rounded-lg"},Ba))}):Ia.length===0?jsxRuntimeExports.jsx("div",{className:"text-center py-12 text-muted-foreground",children:ts?`No public skills match "${ts}".`:"No public skills available yet. The registry syncs daily."}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:Ia.map(Da=>jsxRuntimeExports.jsx(Link,{to:`/catalog/public/${Da.id}`,className:"block",children:jsxRuntimeExports.jsxs(Card,{className:"flex flex-col h-full hover:border-primary/50 hover:bg-muted/30 transition-colors cursor-pointer",children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsx(CardTitle,{className:"text-base",children:Da.name}),Da.description&&jsxRuntimeExports.jsx(CardDescription,{className:"line-clamp-3",children:Da.description})]}),jsxRuntimeExports.jsxs(CardContent,{className:"mt-auto space-y-2",children:[Da.tags&&Da.tags.length>0&&jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1",children:Da.tags.slice(0,5).map(Ba=>jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs",children:Ba},Ba))}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[jsxRuntimeExports.jsxs("span",{title:Da.sourceUpdatedAt??Da.updatedAt,children:["Updated ",relativeDate(Da.sourceUpdatedAt??Da.updatedAt)]}),typeof Da.popularityScore=="number"&&Da.popularityScore>0&&jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1",title:"GitHub stars on the source repo",children:[jsxRuntimeExports.jsx(Star,{className:"h-3 w-3 fill-current"}),formatStars(Da.popularityScore)]})]})]})]})},Da.id))}),Aa&&jsxRuntimeExports.jsx("div",{className:"flex justify-center pt-4",children:jsxRuntimeExports.jsx(Button,{variant:"outline",onClick:()=>Ca(),disabled:ja,className:"cursor-pointer",children:ja?"Loading…":`Load more (showing ${Ia.length})`})}),!Aa&&Ia.length>0&&jsxRuntimeExports.jsxs("div",{className:"text-center text-xs text-muted-foreground pt-2",children:[Ia.length," skill",Ia.length===1?"":"s"," loaded"]})]})]})}function PublicSkillDetailPage(){var Kr,Qr;const{id:es}=useParams(),{data:$,isLoading:ts,error:is}=useQuery({queryKey:["instruction",es],queryFn:()=>apiGet(`/api/instructions/${es}`),enabled:!!es});return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/catalog/public",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Back to Public Catalog"]})}),is?jsxRuntimeExports.jsxs("div",{className:"text-destructive",children:["Failed to load: ",is.message]}):ts||!$?jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-1/2"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-3/4"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-64 w-full"})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Globe,{className:"h-4 w-4 text-muted-foreground"}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs",children:$.scope}),((Kr=$.frontmatter)==null?void 0:Kr.category)&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs",children:$.frontmatter.category})]}),jsxRuntimeExports.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:$.name}),$.description&&jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:$.description})]}),$.tags&&$.tags.length>0&&jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1",children:$.tags.map(ja=>jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs",children:ja},ja))}),((Qr=$.frontmatter)==null?void 0:Qr.source)&&jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm",children:"Source"})}),jsxRuntimeExports.jsxs(CardContent,{className:"text-sm space-y-1",children:[jsxRuntimeExports.jsxs("div",{className:"font-mono text-xs text-muted-foreground",children:[$.frontmatter.source.repo,$.frontmatter.source.path&&` / ${$.frontmatter.source.path}`]}),$.frontmatter.source.url&&jsxRuntimeExports.jsxs("a",{href:$.frontmatter.source.url,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:["View on GitHub ",jsxRuntimeExports.jsx(ExternalLink,{className:"h-3 w-3"})]}),$.frontmatter.source.license&&jsxRuntimeExports.jsxs("div",{className:"text-xs text-muted-foreground",children:["License: ",$.frontmatter.source.license]})]})]}),jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm",children:"Content"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx("pre",{className:"whitespace-pre-wrap break-words text-xs font-mono bg-muted/40 rounded p-3 max-h-[60vh] overflow-y-auto",children:$.content})})]}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-muted-foreground",children:["Version ",$.version," · updated ",new Date($.updatedAt).toLocaleString()]})]})]})}const scopeColors={public:"bg-teal-500/15 text-teal-400 border-teal-500/30",org:"bg-blue-500/15 text-blue-400 border-blue-500/30",team:"bg-primary/15 text-primary border-primary/30",personal:"bg-muted text-muted-foreground border-border"};function SuggestionRow({suggestion:es,projectPath:$,verdict:ts,experiment:is,evidence:Kr}){var Ya;const Qr=useLogSuggestionEvent(),ja=usePromoteFromPublic(),Ca=useArchiveInstruction(),Aa=useRestoreInstruction(),Oa=useNominateExperiment(),Ia=es.kind??"add",[Da,Ba]=reactExports.useState(!1),Ma=useInstructionDetail(es.instructionId,Da),Fa=Qr.isPending||ja.isPending||Ca.isPending||Oa.isPending;function qa(Wa){Oa.mutate({instructionId:es.instructionId,projectPath:$,source:Wa},{onSuccess:()=>ue$1(`Under measurement: ${es.name}`,{description:"Injected to half your sessions on this project; the verdict decides."}),onError:el=>ue$1.error(`Could not start the trial: ${el.message}`)})}async function Ha(){try{await Ca.mutateAsync(es.instructionId),await Qr.mutateAsync({suggestionId:es.id,eventType:"accepted",projectPath:$}),ue$1(`Retired: ${es.name}`,{description:"Archived — soft delete, restorable.",action:{label:"Undo",onClick:()=>Aa.mutate(es.instructionId,{onSuccess:()=>ue$1.success("Restored"),onError:()=>ue$1.error("Restore failed")})}})}catch(Wa){ue$1.error(`Failed: ${Wa.message}`)}}async function Ka(){try{await Qr.mutateAsync({suggestionId:es.id,eventType:"accepted",projectPath:$}),ue$1(`Noted: ${es.name}`,{description:"Nothing changed — shorten it yourself and the next cycle re-measures it."})}catch(Wa){ue$1.error(`Failed: ${Wa.message}`)}}async function Qa(){try{es.instructionScope==="public"&&await ja.mutateAsync({sourceInstructionId:es.instructionId,targetScope:"personal"}),await Qr.mutateAsync({suggestionId:es.id,eventType:"accepted",projectPath:$}),ue$1(`Accepted: ${es.name}`)}catch(Wa){ue$1.error(`Failed: ${Wa.message}`)}}async function Va(){try{await Qr.mutateAsync({suggestionId:es.id,eventType:"dismissed",projectPath:$}),ue$1(`Dismissed: ${es.name}`)}catch(Wa){ue$1.error(`Failed: ${Wa.message}`)}}return jsxRuntimeExports.jsxs("div",{"data-testid":"suggestion-row","data-suggestion-id":es.id,"data-kind":Ia,className:"flex flex-wrap items-start justify-between gap-x-4 gap-y-2 py-3 border-b border-border last:border-0",children:[jsxRuntimeExports.jsxs("div",{...activatable(()=>Ba(Wa=>!Wa)),"aria-expanded":Da,"data-testid":"suggestion-row-toggle",className:"flex-1 min-w-0 basis-56 space-y-1 cursor-pointer rounded-md -mx-1 px-1 hover:bg-secondary/30 transition-colors",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[jsxRuntimeExports.jsx(ChevronRight,{"aria-hidden":!0,className:cn$1("h-4 w-4 shrink-0 text-muted-foreground transition-transform",Da&&"rotate-90")}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:scopeColors[es.instructionScope]??scopeColors.personal,children:es.instructionScope}),jsxRuntimeExports.jsx("span",{className:"min-w-0 break-words font-medium",children:es.name}),Ia!=="add"&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:Ia==="remove"?"text-xs border-red-500/40 text-red-400":"text-xs border-amber-500/40 text-amber-400",children:Ia==="remove"?"retire":"trim"}),es.estimatedTokens!=null&&es.estimatedTokens>0&&Ia!=="add"&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"font-mono text-xs text-muted-foreground",title:"Estimated from content length (chars/4), not a tokenizer count.",children:["~",es.estimatedTokens.toLocaleString()," tok/session"]}),jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"font-mono text-xs",children:es.score.toFixed(2)}),es.isStale&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs",children:"stale"}),(ts==null?void 0:ts.sufficient)&&jsxRuntimeExports.jsx(VerdictBadge,{verdict:ts}),is&&jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:"This instruction is under randomised measurement on this project: injected to some sessions and withheld from the rest, until the arms decide. It is not being pitched while the question is being answered.",children:jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:"text-[10px] font-mono text-teal-400 border-teal-400/40","data-testid":"under-measurement-badge",children:[jsxRuntimeExports.jsx(FlaskConical,{className:"mr-1 h-3 w-3"}),"under measurement",is.source==="trial"?" · trial":is.source==="borrow"?" · borrowed":""]})}),(Kr??[]).map(Wa=>jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:`Measured on ${Wa.projectPath}: ${Wa.decision==="always"?"helped":"hurt"} (${Number(Wa.delta)>0?"+":""}${(Number(Wa.delta)*100).toFixed(0)}pp, 95% CI ${(Number(Wa.ciLower)*100).toFixed(0)} to ${(Number(Wa.ciUpper)*100).toFixed(0)}pp, n=${Wa.nTreated}/${Wa.nControl}). That evidence was earned THERE — it does not transfer here; it argues for measuring here.`,children:jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:Wa.decision==="always"?"text-[10px] font-mono text-teal-400 border-teal-400/40":"text-[10px] font-mono text-red-400 border-red-400/40","data-testid":"cross-project-evidence",children:[Number(Wa.delta)>0?"+":"",(Number(Wa.delta)*100).toFixed(0),"pp elsewhere"]})},Wa.projectPath))]}),es.reason&&jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:es.reason}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:["Generated ",formatDistanceToNow(es.generatedAt)]})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 shrink-0",children:[Ia==="add"&&!is&&jsxRuntimeExports.jsxs(Button,{size:"sm",variant:"ghost",className:"cursor-pointer",onClick:()=>qa(((Kr==null?void 0:Kr.length)??0)>0?"borrow":"trial"),disabled:Fa,"data-testid":"trial-button",children:[jsxRuntimeExports.jsx(FlaskConical,{className:"h-4 w-4 mr-1"}),((Kr==null?void 0:Kr.length)??0)>0?"Test here":"Trial"]}),jsxRuntimeExports.jsxs(Button,{size:"sm",variant:"outline",className:"cursor-pointer",onClick:Ia==="remove"?Ha:Ia==="trim"?Ka:Qa,disabled:Fa,children:[jsxRuntimeExports.jsx(Check,{className:"h-4 w-4 mr-1"}),Ia==="remove"?"Retire":Ia==="trim"?"Noted":"Accept"]}),jsxRuntimeExports.jsxs(Button,{size:"sm",variant:"ghost",className:"cursor-pointer",onClick:Va,disabled:Fa,children:[jsxRuntimeExports.jsx(X$1,{className:"h-4 w-4 mr-1"}),"Dismiss"]})]}),Da&&jsxRuntimeExports.jsx("div",{className:"basis-full","data-testid":"suggestion-detail",children:Ma.isLoading?jsxRuntimeExports.jsx(Skeleton,{className:"h-16","data-testid":"suggestion-detail-loading"}):Ma.isError?jsxRuntimeExports.jsxs("p",{className:"text-xs text-amber-400/90","data-testid":"suggestion-detail-error",children:["Could not load this instruction's body: ",Ma.error.message]}):(Ya=Ma.data)!=null&&Ya.content?jsxRuntimeExports.jsx("pre",{"data-testid":"suggestion-detail-content",className:"whitespace-pre-wrap break-words rounded-md border border-border bg-secondary/20 p-3 font-mono text-xs",children:Ma.data.content}):Ma.data?jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground","data-testid":"suggestion-detail-empty",children:"This instruction stores no body — it is tracked by reference, so there is nothing to preview here."}):null})]})}function SuggestionsListPage(){const es=useProjectPaths(),$=es.data??[],ts=useSuggestionsForProjects($),is=es.isLoading,Kr=ts.some(Oa=>Oa.isLoading),Qr=ts.map((Oa,Ia)=>{var Da,Ba,Ma;return{projectPath:$[Ia],suggestions:((Da=Oa.data)==null?void 0:Da.suggestions)??[],experiments:(Ba=Oa.data)==null?void 0:Ba.experiments,crossProject:(Ma=Oa.data)==null?void 0:Ma.crossProject,isLoading:Oa.isLoading}}).filter(Oa=>Oa.projectPath),ja=Qr.reduce((Oa,Ia)=>Oa+Ia.suggestions.length,0),Ca=Qr.flatMap(Oa=>Oa.suggestions.map(Ia=>Ia.instructionId)),{data:Aa}=useSuggestionImpacts(Ca);return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("h2",{className:"text-2xl font-bold tracking-tight flex items-center gap-2",children:[jsxRuntimeExports.jsx(Lightbulb,{className:"h-6 w-6"}),"Suggestions"]}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Precomputed instruction suggestions for your recent projects. Updated daily at 04:30."})]}),is?jsxRuntimeExports.jsx("div",{className:"space-y-4",children:Array.from({length:3}).map((Oa,Ia)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-40 rounded-lg"},Ia))}):Qr.length===0?jsxRuntimeExports.jsx("div",{className:"text-center py-12 text-muted-foreground",children:"No recent projects found. Run a session through Claude Code or Cursor to populate this view."}):!Kr&&ja===0?jsxRuntimeExports.jsx("div",{className:"text-center py-12 text-muted-foreground",children:"No suggestions yet. The cron runs daily at 04:30 and scores your recent projects against your library."}):jsxRuntimeExports.jsx("div",{className:"space-y-4",children:Qr.map(Oa=>jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-base font-mono truncate",children:Oa.projectPath})}),jsxRuntimeExports.jsx(CardContent,{children:Oa.isLoading?jsxRuntimeExports.jsx(Skeleton,{className:"h-16"}):Oa.suggestions.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No suggestions for this project."}):jsxRuntimeExports.jsx("div",{children:Oa.suggestions.map(Ia=>{var Da,Ba;return jsxRuntimeExports.jsx(SuggestionRow,{suggestion:Ia,projectPath:Oa.projectPath,verdict:Aa==null?void 0:Aa[Ia.instructionId],experiment:(Da=Oa.experiments)==null?void 0:Da[Ia.instructionId],evidence:(Ba=Oa.crossProject)==null?void 0:Ba[Ia.instructionId]},Ia.id)})})})]},Oa.projectPath))})]})}function useInstructionExperiments(es=50){return useQuery({queryKey:["instruction-experiments",es],queryFn:()=>apiGet(`/api/instruction-experiments?limit=${es}`)})}const LIMIT=50,pp=es=>`${es>0?"+":""}${(es*100).toFixed(0)}pp`;function VerdictHeadline({verdict:es}){if(es.resolution==="resolved"&&es.delta!=null&&es.ci!=null){const $=es.delta>0;return jsxRuntimeExports.jsxs("div",{className:"space-y-1","data-testid":"verdict-resolved",children:[jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:cn$1("font-mono text-sm",$?"text-teal-400 border-teal-400/40":"text-red-400 border-red-400/40"),"data-testid":"verdict-delta",children:[pp(es.delta)," outcome"]}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:["Sessions that received this instruction scored measurably"," ",$?"better":"worse"," than the sessions it was withheld from."]}),jsxRuntimeExports.jsxs("p",{className:"font-mono text-xs text-muted-foreground","data-testid":"verdict-ci",children:["95% CI ",pp(es.ci.lower)," to ",pp(es.ci.upper)," · n=",es.measured.treated," ","treated / ",es.measured.control," control"]})]})}return es.contentChanged?jsxRuntimeExports.jsxs("div",{className:"space-y-1","data-testid":"verdict-edited",children:[jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:"The instruction was edited while the experiment ran, so the arms measured different texts and no verdict transfers to the new content. The experiment stopped; the instruction re-enters testing as new content.",children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"font-mono text-sm text-amber-400 border-amber-400/40",children:"edited mid-test"})}),es.reason&&jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:es.reason})]}):es.randomisationSuspect?jsxRuntimeExports.jsxs("div",{className:"space-y-1","data-testid":"verdict-suspect",children:[jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:"The two arms ran at different times. Randomisation interleaves them by construction, so this is evidence the assignment itself broke — an experiment created mid-stream, a re-salted experiment, or a backfilled arm. More sessions will not resolve it.",children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"font-mono text-sm text-amber-400 border-amber-400/40",children:"randomisation suspect"})}),es.reason&&jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:es.reason})]}):es.resolution==="insufficient"?jsxRuntimeExports.jsxs("div",{className:"space-y-1","data-testid":"verdict-insufficient",children:[jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:"Not enough graded sessions on one or both arms yet, so no number is shown rather than a fabricated one. This one resolves itself: keep running sessions on this project.",children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"font-mono text-sm text-muted-foreground",children:"insufficient data"})}),es.reason&&jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:es.reason})]}):jsxRuntimeExports.jsxs("div",{className:"space-y-1","data-testid":"verdict-inconclusive",children:[jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"font-mono text-sm text-muted-foreground",children:"no measured effect"}),es.reason&&jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:es.reason})]})}function ArmCounts({verdict:es}){const $=es.assigned.treated+es.assigned.control,ts=es.measured.treated+es.measured.control,is=$-ts,Kr=({label:Qr,arm:ja})=>jsxRuntimeExports.jsxs("div",{className:"contents",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:Qr}),jsxRuntimeExports.jsx("span",{className:"text-right font-mono","data-testid":`assigned-${ja}`,children:es.assigned[ja]}),jsxRuntimeExports.jsx("span",{className:"text-right font-mono","data-testid":`measured-${ja}`,children:es.measured[ja]})]});return jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-[1fr_auto_auto] gap-x-6 gap-y-1 text-sm",children:[jsxRuntimeExports.jsx("span",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:"arm"}),jsxRuntimeExports.jsx("span",{className:"text-right text-xs uppercase tracking-wide text-muted-foreground",children:jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:"Sessions bucketed into this arm before anything was injected.",children:jsxRuntimeExports.jsx("span",{className:"cursor-help border-b border-dotted border-muted-foreground/50",children:"assigned"})})}),jsxRuntimeExports.jsx("span",{className:"text-right text-xs uppercase tracking-wide text-muted-foreground",children:jsxRuntimeExports.jsx(InfoTip,{plain:!0,content:"Assigned sessions that came back with a graded outcome. This is the verdict's real n.",children:jsxRuntimeExports.jsx("span",{className:"cursor-help border-b border-dotted border-muted-foreground/50",children:"measured"})})}),jsxRuntimeExports.jsx(Kr,{label:"treated (shown)",arm:"treated"}),jsxRuntimeExports.jsx(Kr,{label:"control (withheld)",arm:"control"})]}),is>0&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground","data-testid":"ungraded-note",children:[is," assigned session",is===1?"":"s"," ",is===1?"has":"have"," no graded outcome yet — counted as assigned, not toward the verdict."]})]})}function ExperimentCard({experiment:es}){return jsxRuntimeExports.jsxs(Card,{"data-testid":"experiment-card","data-experiment-id":es.id,children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[jsxRuntimeExports.jsx(CardTitle,{className:"min-w-0 break-words text-base","data-testid":"experiment-name",children:es.instructionName}),jsxRuntimeExports.jsx(ProvenanceBadge,{source:es.instructionSource}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:cn$1("text-xs",es.status==="running"?"text-teal-400 border-teal-400/40":"text-muted-foreground"),children:es.status}),es.source!=="manual"&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs text-muted-foreground","data-testid":"source-badge",children:es.source==="groom"?"nominated by grooming":es.source==="trial"?"trial":"borrowed evidence"}),es.stoppedReason==="trial_neutral"&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs text-muted-foreground","data-testid":"stopped-reason-badge",children:"ended · no detectable effect"}),es.stoppedReason==="content_changed"&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs text-amber-400 border-amber-400/40","data-testid":"stopped-reason-badge",children:"ended · content edited"}),es.graduation&&jsxRuntimeExports.jsxs(Badge,{variant:"outline",className:cn$1("font-mono text-xs",es.graduation.decision==="always"?"text-teal-400 border-teal-400/40":"text-red-400 border-red-400/40"),"data-testid":"graduation-badge",children:["graduated · ",es.graduation.decision==="always"?"always inject":"never inject"]})]}),jsxRuntimeExports.jsx("p",{className:"min-w-0 break-all font-mono text-xs text-muted-foreground",children:es.projectPath})]}),jsxRuntimeExports.jsx(CardContent,{className:"grid gap-6 md:grid-cols-2",children:es.verdict?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(VerdictHeadline,{verdict:es.verdict}),jsxRuntimeExports.jsx(ArmCounts,{verdict:es.verdict})]}):jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"This experiment is no longer readable — it was removed while the page was open."})})]})}function ExperimentsListPage(){const{data:es,isLoading:$,isError:ts,error:is}=useInstructionExperiments(LIMIT),Kr=(es==null?void 0:es.experiments)??[],Qr=(es==null?void 0:es.total)??0;return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("h2",{className:"flex items-center gap-2 text-2xl font-bold tracking-tight",children:[jsxRuntimeExports.jsx(FlaskConical,{className:"h-6 w-6"}),"Experiments"]}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Instructions being withheld from half your sessions, so the difference they make is measured rather than assumed."})]}),$?jsxRuntimeExports.jsx("div",{className:"space-y-4",children:Array.from({length:2}).map((ja,Ca)=>jsxRuntimeExports.jsx(Skeleton,{className:"h-48 rounded-lg"},Ca))}):ts?jsxRuntimeExports.jsxs("div",{className:"py-12 text-center text-muted-foreground","data-testid":"experiments-error",children:["Could not load experiments: ",is.message]}):Kr.length===0?jsxRuntimeExports.jsx("div",{className:"py-12 text-center text-muted-foreground","data-testid":"experiments-empty",children:"No instructions are under test. An instruction enters the loop when it is nominated for measurement — until then, nothing is being withheld from any session."}):jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[Kr.map(ja=>jsxRuntimeExports.jsx(ExperimentCard,{experiment:ja},ja.id)),Qr>Kr.length&&jsxRuntimeExports.jsxs("p",{className:"text-center text-xs text-muted-foreground","data-testid":"experiments-truncated",children:["Showing ",Kr.length," of ",Qr,"."]})]})]})}function isNotable(es){return es.outcome==="decided"||es.outcome==="failed"?!0:typeof es.detail=="string"&&es.detail.trim().length>0}function partitionFinished(es){const $=[],ts=new Map;for(const Kr of es){if(isNotable(Kr)){$.push(Kr);continue}const Qr=ts.get(Kr.kind)??{kind:Kr.kind,count:0,outcomes:{},totalSeconds:0,slowestSeconds:0};Qr.count+=1,Qr.outcomes[Kr.outcome]=(Qr.outcomes[Kr.outcome]??0)+1;const ja=Kr.durationSeconds??0;Qr.totalSeconds+=ja,Qr.slowestSeconds=Math.max(Qr.slowestSeconds,ja),ts.set(Kr.kind,Qr)}const is=[...ts.values()].sort((Kr,Qr)=>Qr.count-Kr.count);return{notable:$,routine:is,routineCount:is.reduce((Kr,Qr)=>Kr+Qr.count,0)}}function duration(es){return es==null?"—":es<60?`${es}s`:es<3600?`${Math.floor(es/60)}m ${es%60}s`:`${Math.floor(es/3600)}h ${Math.floor(es%3600/60)}m`}function shortDuration(es){return es==null?"—":es<60?`${Math.round(es)}s`:es<3600?`${Math.round(es/60)}m`:`${(es/3600).toFixed(1)}h`}function headlineState(es){const{workerPresent:$,leaseUnhealthy:ts,readyToApply:is,failedRecently:Kr,running:Qr,queued:ja,engineBlocked:Ca}=es;return ts?{tone:"critical",text:"A job is claimed but its lease has expired — the worker took work and stopped."}:$?Ca>0?{tone:"critical",text:(Ca===1?"1 job needs":`${Ca} jobs need`)+" a local LLM engine (`claude` or `codex`) that the worker cannot find — they will finish empty, not fail."}:is>0?{tone:"action",text:`${is} measured edit${is===1?"":"s"} waiting for you to apply.`}:Kr>0?{tone:"warn",text:`${Kr} job${Kr===1?"":"s"} failed in this window.`}:Qr>0||ja>0?{tone:"calm",text:`${Qr} running, ${ja} queued.`}:{tone:"calm",text:"Idle — nothing queued, nothing waiting on you."}:{tone:"critical",text:"No worker is connected, so nothing will run."}}function loopFunnel(es){const $=es.window??{hours:0,landed:es.applied+es.suggestionsAccepted,decisions:es.decisions,promotionsApplied:es.applied,suggestionsSurfaced:es.suggestionsProposed,suggestionsAccepted:es.suggestionsAccepted,suggestionsDeclined:0},ts=$.suggestionsAccepted+$.suggestionsDeclined,is=es.byDecision.promote;return{windowHours:$.hours,landed:$.landed,landedTotal:es.landedTotal??es.applied+es.suggestionsAccepted,surfaced:$.suggestionsSurfaced,accepted:$.suggestionsAccepted,declined:$.suggestionsDeclined,answered:ts,answeredRate:$.suggestionsSurfaced>0?ts/$.suggestionsSurfaced:null,pending:es.suggestionsPending??0,promotesApplied:es.applied,promotes:is,decisionsWithoutEdit:es.byDecision.revert+es.byDecision.refuse,lastLandedAt:[es.lastAppliedAt,es.lastAcceptedAt].filter(Kr=>typeof Kr=="string"&&Kr.length>0).sort().at(-1)??null,neverActed:(es.landedTotal??es.applied+es.suggestionsAccepted)===0&&es.decisions+es.suggestionsProposed>0}}const FILTERS=[{key:"all",label:"All",testId:"filter-all"},{key:"evolution",label:"Evolution",testId:"filter-evolution"},{key:"decided",label:"Decisions",testId:"filter-decided"},{key:"skipped",label:"Skipped",testId:"filter-skipped"},{key:"failed",label:"Failed",testId:"filter-failed"}],HISTORY_RANGES=[{hours:24,label:"24h",testId:"range-24"},{hours:168,label:"7d",testId:"range-168"},{hours:720,label:"30d",testId:"range-720"}],GROUP="inline-flex flex-wrap items-center gap-0.5 self-start rounded-lg border border-border bg-card p-0.5",SEGMENT="inline-flex min-h-11 cursor-pointer items-center whitespace-nowrap rounded-md px-2.5 text-xs transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",SEGMENT_ACTIVE="bg-teal-400/10 font-medium text-teal-400",SEGMENT_IDLE="text-muted-foreground hover:bg-muted/60 hover:text-foreground";function LoopRangeControl({hours:es,onChange:$}){return jsxRuntimeExports.jsx("div",{className:GROUP,role:"group","aria-label":"History range","data-testid":"loop-controls",children:HISTORY_RANGES.map(ts=>jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>$({hours:ts.hours}),"aria-pressed":ts.hours===es,className:cn$1(SEGMENT,ts.hours===es?SEGMENT_ACTIVE:SEGMENT_IDLE),"data-testid":ts.testId,children:ts.label},ts.hours))})}function FinishedControls({counts:es,filter:$,limit:ts,onChange:is}){return jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2 font-normal",children:[jsxRuntimeExports.jsx("div",{className:GROUP,role:"group","aria-label":"Finished job filter",children:FILTERS.map(Kr=>{const Qr=Kr.key===$,ja=es[Kr.key];return jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>is({filter:Kr.key}),"aria-pressed":Qr,className:cn$1(SEGMENT,Qr?SEGMENT_ACTIVE:SEGMENT_IDLE,!Qr&&ja===0&&"opacity-60"),"data-testid":Kr.testId,children:[Kr.label,jsxRuntimeExports.jsx("span",{className:"pl-1.5 tabular-nums opacity-70",children:ja})]},Kr.key)})}),jsxRuntimeExports.jsxs("label",{className:"ml-auto flex items-center gap-1 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Rows"}),jsxRuntimeExports.jsx("select",{value:ts,onChange:Kr=>is({limit:Number(Kr.target.value)}),className:cn$1("min-h-11 cursor-pointer rounded-lg border border-border bg-card px-2.5 text-xs","text-muted-foreground transition-colors duration-150 hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),"data-testid":"limit-select",children:PAGE_SIZES.map(Kr=>jsxRuntimeExports.jsxs("option",{value:Kr,children:[Kr," rows"]},Kr))})]})]})}function Funnel({f:es}){const $=ts=>es.surfaced>0?ts/es.surfaced*100:0;return jsxRuntimeExports.jsxs("div",{className:"space-y-1.5",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-1.5 gap-y-0.5 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx("span",{className:"font-semibold tabular-nums text-foreground",children:es.surfaced}),jsxRuntimeExports.jsx("span",{children:"surfaced"}),jsxRuntimeExports.jsx(ChevronRight,{className:"h-3 w-3 shrink-0","aria-hidden":!0}),jsxRuntimeExports.jsx("span",{className:"font-semibold tabular-nums text-foreground","data-testid":"funnel-answered",children:es.answered}),jsxRuntimeExports.jsx("span",{children:"answered"}),jsxRuntimeExports.jsx(ChevronRight,{className:"h-3 w-3 shrink-0","aria-hidden":!0}),jsxRuntimeExports.jsx("span",{className:"font-semibold tabular-nums text-teal-400","data-testid":"changes-accepted",children:es.accepted}),jsxRuntimeExports.jsx("span",{children:"accepted"})]}),jsxRuntimeExports.jsxs("div",{className:"flex h-1.5 overflow-hidden rounded-full bg-border","aria-hidden":!0,children:[jsxRuntimeExports.jsx("div",{className:"bg-teal-400 transition-[width] duration-500 ease-out",style:{width:`${$(es.accepted)}%`}}),jsxRuntimeExports.jsx("div",{className:"bg-muted-foreground/50 transition-[width] duration-500 ease-out",style:{width:`${$(es.declined)}%`}})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground","data-testid":"funnel-rate",children:es.answeredRate==null?"Nothing surfaced in this window.":`${Math.round(es.answeredRate*100)}% answered · ${es.declined} declined · ${es.pending} still open`})]})}function Chip({value:es,of:$,label:ts,good:is,testId:Kr,ratioTestId:Qr,to:ja}){const Ca=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{className:cn$1("font-semibold tabular-nums",is?"text-teal-400":"text-foreground"),"data-testid":Kr,children:es}),$!=null&&jsxRuntimeExports.jsxs("span",{className:"tabular-nums text-muted-foreground",children:["/",$]})," ",jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:ts})]});return ja?jsxRuntimeExports.jsx(Link,{to:ja,className:"inline-block min-h-11 whitespace-nowrap leading-[2.75rem] transition-colors duration-150 hover:text-foreground","data-testid":Qr,children:Ca}):jsxRuntimeExports.jsx("span",{className:"whitespace-nowrap","data-testid":Qr,children:Ca})}function KpiStrip({status:es,insights:$}){const{changes:ts,counts:is}=es,Kr=loopFunnel(ts),Qr=HISTORY_RANGES.find(ja=>ja.hours===Kr.windowHours);return jsxRuntimeExports.jsx(Card,{className:cn$1(Kr.neverActed&&"border-amber-400/40"),"data-testid":"changes-headline",children:jsxRuntimeExports.jsxs(CardContent,{className:"p-0",children:[jsxRuntimeExports.jsxs("div",{className:"grid divide-y divide-border sm:grid-cols-[minmax(0,15.5rem)_minmax(0,1fr)] sm:divide-x sm:divide-y-0",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 px-4 py-3",children:[jsxRuntimeExports.jsxs("p",{className:"flex items-baseline gap-1.5",children:[jsxRuntimeExports.jsx("span",{className:cn$1("text-4xl font-semibold tabular-nums",Kr.landed>0?"text-teal-400":"text-muted-foreground"),"data-testid":"changes-landed",children:Kr.landed}),Qr&&jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:["in ",Qr.label]})]}),jsxRuntimeExports.jsx("p",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:"changes landed"}),jsxRuntimeExports.jsxs("p",{className:"pt-0.5 font-mono text-[11px] leading-snug text-muted-foreground/80","data-testid":"changes-landed-detail",children:[Kr.landedTotal," all time",Kr.lastLandedAt&&` · last ${Kr.lastLandedAt.slice(0,10)}`]})]}),jsxRuntimeExports.jsxs("div",{className:"min-w-0 space-y-2 px-4 py-3",children:[jsxRuntimeExports.jsx(Funnel,{f:Kr}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 border-t border-border pt-1 text-xs",children:[jsxRuntimeExports.jsx(Chip,{value:Kr.promotesApplied,of:Kr.promotes||void 0,label:"promotes applied",good:Kr.promotesApplied>0,testId:"changes-applied",ratioTestId:"changes-applied-ratio"}),jsxRuntimeExports.jsx(Chip,{value:is.experimentsRunning,label:"trials running",good:is.experimentsRunning>0,testId:"changes-trials",to:"/experiments"}),$&&jsxRuntimeExports.jsx(Chip,{value:$.repeated,of:$.distinct||void 0,label:"insights repeated",good:$.repeated>0,testId:"changes-insights"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-muted-foreground/80","data-testid":"changes-applied-detail",children:`${ts.byDecision.promote}P · ${ts.byDecision.revert}R · ${ts.byDecision.refuse}X`})]})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 border-t border-border px-4 py-1.5 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx("span",{"data-testid":"apply-scope-note",children:"“Applied” updates the stored instruction body, not the file on disk."}),jsxRuntimeExports.jsx(InfoTip,{content:'Deciding is not applying. A proposal can be measured, gated and recorded as "promote" and still never touch a file — that separation is deliberate (effectiveness.md §13). Applying updates `eval_targets.content`, which is what future eval runs measure against; the only code that writes an instruction FILE is retraction, and only for removals.'}),Kr.neverActed&&jsxRuntimeExports.jsx("span",{className:"text-amber-400/90","data-testid":"never-acted",children:"· Measuring, not acting: nothing has ever been applied or accepted."})]})]})})}function windowLabel(es){return es%24===0&&es>=48?`${es/24}d`:`${es}h`}function RunningRow({job:es}){return jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-3 py-2","data-testid":"running-job",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[jsxRuntimeExports.jsx(Activity,{className:"h-4 w-4 shrink-0 text-teal-400"}),jsxRuntimeExports.jsx("span",{className:"truncate font-mono text-sm",children:es.kind}),!es.leaseHealthy&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"shrink-0 border-red-400/40 text-red-400",children:"lease expired"})]}),es.label&&jsxRuntimeExports.jsx("p",{className:"truncate text-sm text-muted-foreground",title:es.label,children:es.label})]}),jsxRuntimeExports.jsx("span",{className:"shrink-0 font-mono text-sm text-muted-foreground",children:duration(es.elapsedSeconds)})]})}function QueuedRow({job:es}){return jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-3 py-2","data-testid":"queued-job",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[jsxRuntimeExports.jsx(Clock,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),jsxRuntimeExports.jsx("span",{className:"truncate font-mono text-sm",children:es.kind})]}),es.label&&jsxRuntimeExports.jsx("p",{className:"truncate text-sm text-muted-foreground",title:es.label,children:es.label})]}),jsxRuntimeExports.jsxs("span",{className:"shrink-0 font-mono text-sm text-muted-foreground",children:["waited ",duration(es.waitedSeconds)]})]})}const OUTCOME_ICON={ok:jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 shrink-0 text-teal-400"}),decided:jsxRuntimeExports.jsx(CircleCheck,{className:"h-4 w-4 shrink-0 text-teal-400"}),skipped:jsxRuntimeExports.jsx(CircleMinus,{className:"h-4 w-4 shrink-0 text-amber-400"}),failed:jsxRuntimeExports.jsx(CircleX,{className:"h-4 w-4 shrink-0 text-red-400"})};function FinishedRow({job:es}){return jsxRuntimeExports.jsxs("div",{className:"py-2","data-testid":`finished-job-${es.outcome}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[OUTCOME_ICON[es.outcome],jsxRuntimeExports.jsx("span",{className:"truncate font-mono text-sm",children:es.kind}),es.outcome==="skipped"&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"shrink-0 border-amber-400/40 text-amber-400",children:"skipped"}),es.outcome==="decided"&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"shrink-0 border-teal-400/40 text-teal-400",children:es.reason})]}),jsxRuntimeExports.jsx("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:duration(es.durationSeconds)})]}),es.label&&jsxRuntimeExports.jsx("p",{className:"truncate pl-6 text-sm text-muted-foreground",title:es.label,children:es.label}),es.detail&&jsxRuntimeExports.jsx("p",{className:"whitespace-pre-wrap break-words pl-6 font-mono text-xs text-amber-400/90","data-testid":"finished-reason",children:es.detail})]})}function RoutineRow({group:es}){const $=es.outcomes.failed??0;return jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-3 py-1.5 text-xs","data-testid":"routine-group",children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"truncate font-mono text-muted-foreground",children:es.kind}),jsxRuntimeExports.jsxs("span",{className:"shrink-0 tabular-nums text-muted-foreground/70",children:["×",es.count]}),$>0&&jsxRuntimeExports.jsxs("span",{className:"shrink-0 text-amber-400/90","data-testid":"routine-failed",children:[$," failed"]})]}),jsxRuntimeExports.jsxs("span",{className:"shrink-0 tabular-nums text-muted-foreground/70",children:["slowest ",shortDuration(es.slowestSeconds)]})]})}function FinishedList({status:es,idle:$,workerPresent:ts,controls:is}){const[Kr,Qr]=reactExports.useState(!1),{notable:ja,routine:Ca,routineCount:Aa}=partitionFinished(es.recent);return jsxRuntimeExports.jsxs(Card,{className:"gap-2",children:[jsxRuntimeExports.jsxs(CardHeader,{className:"gap-2 pb-0",children:[jsxRuntimeExports.jsxs(CardTitle,{className:"flex flex-wrap items-baseline gap-x-2 text-base",children:["Finished",jsxRuntimeExports.jsxs("span",{className:"text-xs font-normal text-muted-foreground","data-testid":"finished-window",children:["last ",windowLabel(es.windowHours),es.filter!=="all"&&` · ${es.filter}`,es.recentTotal>es.recent.length&&` · ${es.recent.length} of ${es.recentTotal}`]})]}),is]}),jsxRuntimeExports.jsx(CardContent,{className:"pt-0",children:es.recent.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground","data-testid":"nothing-finished",children:es.filter!=="all"&&es.filterCounts.all>0?`No ${es.filter} jobs in the last ${windowLabel(es.windowHours)} — ${es.filterCounts.all} finished overall.`:$&&!ts?"No worker connected, so nothing has run.":`No jobs finished in the last ${windowLabel(es.windowHours)}.`}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[ja.length>0?jsxRuntimeExports.jsx("div",{className:"divide-y divide-border",children:ja.map(Oa=>jsxRuntimeExports.jsx(FinishedRow,{job:Oa},Oa.id))}):jsxRuntimeExports.jsx("p",{className:"py-1 text-sm text-muted-foreground","data-testid":"nothing-notable",children:"Nothing decided, failed or explained itself — just throughput."}),Aa>0&&jsxRuntimeExports.jsxs("div",{className:"mt-2 border-t border-border pt-2",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>Qr(Oa=>!Oa),className:"flex min-h-11 w-full cursor-pointer items-center justify-between gap-2 text-xs text-muted-foreground transition-colors duration-150 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","aria-expanded":Kr,"data-testid":"toggle-routine",children:[jsxRuntimeExports.jsxs("span",{children:[Aa," routine job",Aa===1?"":"s"," across ",Ca.length," ","kind",Ca.length===1?"":"s"]}),Kr?jsxRuntimeExports.jsx(ChevronDown,{className:"h-3 w-3 shrink-0"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-3 w-3 shrink-0"})]}),Kr&&jsxRuntimeExports.jsx("div",{className:"reveal divide-y divide-border pt-1",children:Ca.map(Oa=>jsxRuntimeExports.jsx(RoutineRow,{group:Oa},Oa.kind))})]})]})})]})}function when(es){return es?new Date(es).toLocaleDateString():"never"}function DeliveryRow({project:es}){const $=es.canonicalPath;return jsxRuntimeExports.jsxs("div",{className:"py-2","data-testid":es.stale?"delivery-stale":"delivery-row",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsx("p",{className:"truncate text-sm",title:es.name??"",children:es.name??"(unnamed project)"}),jsxRuntimeExports.jsx("p",{className:"break-all font-mono text-xs text-muted-foreground","data-testid":"delivery-path",children:$??"no checkout recorded — nothing can be written"})]}),jsxRuntimeExports.jsxs("span",{className:"shrink-0 text-right font-mono text-[11px] text-muted-foreground",children:[es.suggestionsAccepted," adopted"]})]}),jsxRuntimeExports.jsxs("p",{className:"pt-0.5 font-mono text-[11px] text-muted-foreground/80",children:["seen ",when(es.canonicalLastSeenAt)," · analysed ",when(es.lastAnalysedAt)," ·"," ",es.suggestionsPending," pending"]}),es.stale&&jsxRuntimeExports.jsxs("p",{className:"flex items-start gap-1.5 pt-1 text-xs text-amber-400/90","data-testid":"delivery-stale-note",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"mt-0.5 h-3 w-3 shrink-0"}),jsxRuntimeExports.jsx("span",{children:"This project is active but its recorded checkout is not — edits written here land in a path nobody is working in."})]})]})}function DeliveryBlock({status:es}){const{projects:$,total:ts,staleCount:is}=es.delivery;return jsxRuntimeExports.jsxs(Card,{className:cn$1("gap-2",is>0&&"border-amber-400/40"),"data-testid":"delivery",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-0",children:jsxRuntimeExports.jsxs(CardTitle,{className:"flex flex-wrap items-baseline gap-x-2 text-base",children:["Where edits land",ts>$.length&&jsxRuntimeExports.jsxs("span",{className:"text-xs font-normal text-muted-foreground",children:[$.length," of ",ts," projects"]}),jsxRuntimeExports.jsx(InfoTip,{content:"Insights analyse a project at its canonical checkout path, and the auto-accept actuator writes the CLAUDE.md under that same path. If the path is stale, every stage still succeeds — it just succeeds somewhere nobody is working. Ranking is live-before-stale, then real checkout before worktree, then most recently seen."})]})}),jsxRuntimeExports.jsxs(CardContent,{className:"pt-0",children:[is>0&&jsxRuntimeExports.jsxs("p",{className:"pb-2 text-xs text-amber-400/90","data-testid":"delivery-stale-summary",children:[is," of ",ts," project",ts===1?"":"s"," would be written to a checkout that has gone quiet."]}),$.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground","data-testid":"delivery-empty",children:"No project has recorded sessions yet, so there is nowhere to write."}):jsxRuntimeExports.jsx("div",{className:"divide-y divide-border",children:$.map(Kr=>jsxRuntimeExports.jsx(DeliveryRow,{project:Kr},Kr.projectId))})]})]})}function AdoptionBlock({status:es}){const[$,ts]=reactExports.useState("all"),[is,Kr]=reactExports.useState("all"),[Qr,ja]=reactExports.useState("all"),Ca=es.adoption??{available:!1,counts:{},applications:[]},Aa=reactExports.useMemo(()=>Ca.applications.filter(Ia=>($==="all"||Ia.harness===$)&&(is==="all"||Ia.artifact===is)&&(Qr==="all"||Ia.status===Qr)),[Ca.applications,$,is,Qr]),Oa=Ia=>[...new Set(Ca.applications.map(Da=>Da[Ia]))].sort();return jsxRuntimeExports.jsxs(Card,{className:"gap-2","data-testid":"adoption-ledger",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-0",children:jsxRuntimeExports.jsxs(CardTitle,{className:"flex items-center justify-between text-base",children:["Cross-harness adoption",jsxRuntimeExports.jsx(Link,{to:"/insights",className:"inline-flex min-h-11 items-center text-xs font-normal text-teal-400 transition-colors duration-150 hover:underline",children:"View insights"})]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-3",children:Ca.available?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",children:[["Harness",$,ts,Oa("harness")],["Artifact",is,Kr,Oa("artifact")],["State",Qr,ja,Oa("status")]].map(([Ia,Da,Ba,Ma])=>jsxRuntimeExports.jsxs("label",{className:"text-xs text-muted-foreground",children:[Ia," ",jsxRuntimeExports.jsxs("select",{value:Da,onChange:Fa=>Ba(Fa.target.value),className:"rounded border border-border bg-background px-2 py-1 text-foreground",children:[jsxRuntimeExports.jsx("option",{value:"all",children:"all"}),Ma.map(Fa=>jsxRuntimeExports.jsx("option",{value:Fa,children:Fa},Fa))]})]},Ia))}),jsxRuntimeExports.jsx("p",{className:"font-mono text-xs text-muted-foreground",children:Object.entries(Ca.counts).filter(([,Ia])=>Ia>0).map(([Ia,Da])=>`${Da} ${Ia}`).join(" · ")||"No applications yet"}),jsxRuntimeExports.jsxs("div",{className:"divide-y divide-border",children:[Aa.map(Ia=>jsxRuntimeExports.jsxs("details",{className:"py-2",children:[jsxRuntimeExports.jsxs("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-2 text-sm",children:[jsxRuntimeExports.jsx("span",{className:"min-w-0 truncate",children:Ia.title}),jsxRuntimeExports.jsxs("span",{className:"flex shrink-0 gap-1",children:[jsxRuntimeExports.jsx(Badge,{variant:"outline",children:Ia.harness}),jsxRuntimeExports.jsx(Badge,{variant:"outline",children:Ia.status})]})]}),jsxRuntimeExports.jsxs("div",{className:"pt-2 font-mono text-xs text-muted-foreground",children:[jsxRuntimeExports.jsxs("p",{children:[Ia.artifact," · ",Ia.applyMode," apply"]}),jsxRuntimeExports.jsxs("p",{className:"break-all",children:[Ia.projectPath,"/",Ia.targetPath]}),Ia.verdictDetail&&jsxRuntimeExports.jsx("p",{className:"pt-1 font-sans",children:Ia.verdictDetail})]})]},Ia.id)),Aa.length===0&&jsxRuntimeExports.jsx("p",{className:"py-2 text-sm text-muted-foreground",children:"No applications match these filters."})]})]}):jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Adoption tracking is gated off until migration 00187 is applied."})})]})}function PromotionPathsBlock({status:es}){const $=es.promotionPaths??{projects:[]},ts=new Map(es.delivery.projects.map(Kr=>[Kr.projectId,Kr.name])),is=$.projects.filter(Kr=>Kr.trials.running>0||Kr.trials.orphaned>0||Kr.trials.eligible>0||Kr.autoAccept.usedInWindow>0||Kr.autoAccept.eligible>0);return jsxRuntimeExports.jsxs(Card,{className:"gap-2","data-testid":"promotion-paths",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-0",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-base",children:"Promotion throughput"})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-4",children:is.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground","data-testid":"paths-empty",children:"Nothing is being trialled or adopted anywhere — no eligible suggestions, no running experiments, no budget spent."}):is.map(Kr=>jsxRuntimeExports.jsx(ProjectPaths,{paths:Kr,name:ts.get(Kr.projectId)??null},Kr.projectId))})]})}function ProjectPaths({paths:es,name:$}){const{trials:ts,autoAccept:is}=es,Kr=Math.max(0,is.maxPerWindow-is.usedInWindow);return jsxRuntimeExports.jsxs("div",{className:"space-y-1","data-testid":"paths-project",children:[jsxRuntimeExports.jsx("p",{className:"truncate text-sm font-medium",children:$??es.projectId}),jsxRuntimeExports.jsxs("p",{className:"font-mono text-xs text-muted-foreground","data-testid":"paths-trials",children:[ts.running,"/",ts.maxConcurrent," trial slots in use · ",ts.eligible," eligible waiting",ts.blocked==="concurrency"&&" · at capacity",ts.blocked==="no-candidates"&&ts.running===0&&" · nothing to trial"]}),ts.orphaned>0&&jsxRuntimeExports.jsxs("p",{className:"font-mono text-xs text-amber-400/90","data-testid":"paths-orphaned",children:[ts.orphaned," running trial",ts.orphaned===1?"":"s"," aimed at a stale subpath — no sessions arrive there, so they will never conclude"]}),jsxRuntimeExports.jsx("p",{className:"font-mono text-xs text-muted-foreground","data-testid":"paths-auto-accept",children:is.enabled?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["auto-accept ",is.usedInWindow,"/",is.maxPerWindow," used this"," ",is.windowDays,"d window · ",is.eligible," above the bar",Kr===0&&is.windowResetsAt&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[" · budget resets ",new Date(is.windowResetsAt).toLocaleDateString()]})]}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"auto-accept is off for this project"})})]})}function ProvenanceBlock(){const{data:es}=useProvenanceImpact();return!es||es.groups.length===0?null:jsxRuntimeExports.jsxs(Card,{className:"gap-2",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-0",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-base",children:"Does generated advice help?"})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-3",children:[jsxRuntimeExports.jsx("div",{className:"overflow-x-auto",children:jsxRuntimeExports.jsxs("table",{className:"w-full text-sm","data-testid":"provenance-table",children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{className:"text-left text-xs uppercase tracking-wide text-muted-foreground",children:[jsxRuntimeExports.jsx("th",{className:"py-1 pr-4 font-normal",children:"Source"}),jsxRuntimeExports.jsx("th",{className:"py-1 pr-4 font-normal",children:"Rules"}),jsxRuntimeExports.jsx("th",{className:"py-1 pr-4 font-normal",children:"Sessions reached"}),jsxRuntimeExports.jsx("th",{className:"py-1 pr-4 font-normal",children:"Accepted"}),jsxRuntimeExports.jsx("th",{className:"py-1 font-normal",children:"Measured effect"})]})}),jsxRuntimeExports.jsx("tbody",{children:es.groups.map($=>jsxRuntimeExports.jsxs("tr",{className:"border-t border-border",children:[jsxRuntimeExports.jsx("td",{className:"py-1.5 pr-4 font-mono text-xs",children:$.provenance}),jsxRuntimeExports.jsx("td",{className:"py-1.5 pr-4",children:$.instructions}),jsxRuntimeExports.jsx("td",{className:"py-1.5 pr-4",children:$.exposedSessions}),jsxRuntimeExports.jsx("td",{className:"py-1.5 pr-4",children:$.accepted}),jsxRuntimeExports.jsx("td",{className:"py-1.5",children:$.evidenceClass==="randomised"&&$.meanDelta!=null?jsxRuntimeExports.jsxs("span",{className:cn$1("font-mono",$.meanDelta>0?"text-teal-400":"text-red-400"),children:[$.meanDelta>0?"+":"",($.meanDelta*100).toFixed(1),"pp",jsxRuntimeExports.jsxs("span",{className:"pl-1 text-xs text-muted-foreground",children:["(",$.randomisedVerdicts," verdict",$.randomisedVerdicts===1?"":"s",")"]})]}):jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:"not yet measurable"})})]},$.provenance))})]})}),es.note&&jsxRuntimeExports.jsx("p",{className:"text-xs text-amber-400/90","data-testid":"provenance-note",children:es.note})]})]})}function InFlightCard({summary:es}){return es.running.length===0&&es.queued.length===0?null:jsxRuntimeExports.jsxs(Card,{className:"gap-2",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-0",children:jsxRuntimeExports.jsxs(CardTitle,{className:"flex items-center justify-between text-base",children:["In flight",jsxRuntimeExports.jsx(InfoTip,{content:"Jobs are claimed one at a time by your local worker, oldest first, and background crons are claimed last so they never starve user-visible work. A long wait here is usually queueing, not a failure."})]})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-3 pt-0",children:[es.running.length>0&&jsxRuntimeExports.jsx("div",{className:"divide-y divide-border",children:es.running.map($=>jsxRuntimeExports.jsx(RunningRow,{job:$},$.id))}),es.queued.length>0&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("p",{className:"pb-1 text-xs uppercase tracking-wide text-muted-foreground",children:["Queued (",es.queued.length,")"]}),jsxRuntimeExports.jsx("div",{className:"divide-y divide-border",children:es.queued.map($=>jsxRuntimeExports.jsx(QueuedRow,{job:$},$.id))})]})]})]})}function InsightsMemory({insights:es,suggestions:$}){return jsxRuntimeExports.jsxs(Card,{className:"gap-2",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-0",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-base",children:"Insights memory"})}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{"data-testid":"insights-memory",children:[jsxRuntimeExports.jsxs("p",{className:"font-mono text-xs text-muted-foreground",children:[es.entries," entries · ",es.distinct," distinct · ",es.repeated," repeated ·"," ",es.dismissed," dismissed · max seen ×",es.maxTimesGenerated]}),es.entries>0&&es.repeated===0&&jsxRuntimeExports.jsx("p",{className:"pt-1 text-xs text-amber-400/90",children:"Nothing has repeated yet — identity is a verbatim content hash, so a paraphrase counts as a new ask."})]}),jsxRuntimeExports.jsxs("p",{className:"border-t border-border pt-2 text-xs text-muted-foreground",children:["suggestions:"," ",Object.entries($).map(([ts,is])=>`${is} ${ts}`).join(" · ")||"none"]})]})]})}function OperationalDetails({summary:es,query:$,onChange:ts,onDiagnostics:is}){const[Kr,Qr]=reactExports.useState(!1),{data:ja,isError:Ca,isPlaceholderData:Aa}=useLoopDiagnostics($,{open:Kr}),Oa=diagnosticsPanelState({open:Kr,hasData:ja!=null,isError:Ca});reactExports.useEffect(()=>{is==null||is(ja)},[ja,is]);const Ia=es.running.length===0&&es.queued.length===0;return jsxRuntimeExports.jsxs("section",{"data-testid":"operational-details","aria-labelledby":"operational-details-toggle",children:[jsxRuntimeExports.jsxs("button",{id:"operational-details-toggle",type:"button",onClick:()=>Qr(Da=>!Da),"aria-expanded":Kr,"aria-controls":"operational-details-body",className:"flex min-h-11 w-full cursor-pointer items-center gap-2 rounded-md border border-border bg-card px-3 text-left text-sm transition-colors duration-150 hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","data-testid":"operational-details-toggle",children:[Kr?jsxRuntimeExports.jsx(ChevronDown,{className:"h-4 w-4 shrink-0 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),jsxRuntimeExports.jsx("span",{className:"font-medium",children:"Operational details"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:"in-flight and finished jobs, where edits land, throughput, adoption"})]}),Oa!=="closed"&&jsxRuntimeExports.jsxs("div",{id:"operational-details-body",className:cn$1("reveal space-y-4 pt-4 transition-opacity duration-200",Aa&&"opacity-50"),"data-testid":"operational-details-body",children:[Oa==="loading"&&jsxRuntimeExports.jsxs("div",{className:"space-y-4","data-testid":"diagnostics-loading",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-40 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-40 w-full"})]}),Oa==="error"&&jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsxs(CardContent,{className:"flex items-center gap-2 py-6 text-sm text-muted-foreground","data-testid":"diagnostics-error",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4 shrink-0 text-amber-400"}),"Could not load the operational details. The summary above is still live."]})}),Oa==="ready"&&ja&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Ca&&jsxRuntimeExports.jsx("p",{className:"text-xs text-amber-400/90","data-testid":"diagnostics-stale",children:"The last refresh failed — showing the details as of the previous load."}),jsxRuntimeExports.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 space-y-4",children:[jsxRuntimeExports.jsx(InFlightCard,{summary:es}),jsxRuntimeExports.jsx(FinishedList,{status:ja,idle:Ia,workerPresent:es.worker.present,controls:jsxRuntimeExports.jsx(FinishedControls,{counts:ja.filterCounts,filter:$.filter,limit:$.limit,onChange:ts})}),jsxRuntimeExports.jsx(DeliveryBlock,{status:ja}),jsxRuntimeExports.jsx(PromotionPathsBlock,{status:ja})]}),jsxRuntimeExports.jsxs("div",{className:"min-w-0 space-y-4",children:[jsxRuntimeExports.jsx(InsightsMemory,{insights:ja.insights,suggestions:es.counts.suggestions}),jsxRuntimeExports.jsx(AdoptionBlock,{status:ja}),jsxRuntimeExports.jsx(ProvenanceBlock,{})]})]})]})]})]})}function useLoopQuery(){const[es,$]=useSearchParams(),ts=(Ca,Aa,Oa)=>Aa.includes(Ca)?Ca:Oa,is=Number(es.get("hours")),Kr=Number(es.get("limit")),Qr={hours:HISTORY_RANGES.some(Ca=>Ca.hours===is)?is:24,limit:PAGE_SIZES.includes(Kr)?Kr:20,filter:ts(es.get("filter"),FINISHED_FILTERS,"all")};return{query:Qr,update:Ca=>{const Aa={...Qr,...Ca},Oa=new URLSearchParams;Aa.hours!==24&&Oa.set("hours",String(Aa.hours)),Aa.limit!==20&&Oa.set("limit",String(Aa.limit)),Aa.filter!=="all"&&Oa.set("filter",Aa.filter),$(Oa,{replace:!0})}}}function WorkerChip({status:es}){const{worker:$,verdict:ts}=es,is=$.present&&ts.severity!=="ok";return jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2","data-testid":"worker-chip",children:[jsxRuntimeExports.jsx("span",{className:cn$1("inline-block h-2 w-2 rounded-full",$.present?$.active?"bg-teal-400":"bg-amber-400":"bg-muted-foreground")}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:$.present?$.active?"Worker running":"Worker stale":"No worker seen"}),$.clientName&&jsxRuntimeExports.jsxs("span",{className:"font-mono text-xs text-muted-foreground",children:[$.clientName," · ",$.clientVersion??"?",$.ageSeconds!=null&&` · ${duration($.ageSeconds)} ago`]}),is&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:cn$1("min-w-0 whitespace-normal break-words text-left",ts.severity==="fail"?"border-red-400/40 text-red-400":"border-amber-400/40 text-amber-400"),children:ts.headline})]})}function PendingDiff({promotionId:es}){const[$,ts]=reactExports.useState(!1);return jsxRuntimeExports.jsxs("div",{className:"pt-2",children:[jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>ts(is=>!is),className:"inline-flex min-h-11 cursor-pointer items-center text-xs text-teal-400 transition-colors duration-150 hover:underline","data-testid":"toggle-pending-diff",children:$?"Hide the diff":"Show what it would change →"}),jsxRuntimeExports.jsx("div",{className:"pt-2",children:jsxRuntimeExports.jsx(PromotionDetailPanel,{promotionId:es,open:$,allowApply:!0,testId:"pending-diff"})})]})}function ReviewGateCallout({gate:es}){const $=(es==null?void 0:es.targets)??[];if(!(es!=null&&es.blocking)||$.length===0)return null;const ts=$[0];return jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-amber-400/50 bg-amber-400/10 p-4","data-testid":"review-gate",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-x-4 gap-y-1",children:[jsxRuntimeExports.jsxs("p",{className:"text-base font-semibold text-amber-300","data-testid":"review-gate-headline",children:["The loop is waiting on you — ",es.totalAwaitingReview," run",es.totalAwaitingReview===1?"":"s"," need human review"]}),jsxRuntimeExports.jsx(Link,{to:`/eval-targets/${ts.id}?tab=review`,className:"inline-flex min-h-[36px] items-center rounded-md border border-amber-400/60 bg-amber-400/10 px-3 text-sm font-medium text-amber-200 transition-colors duration-150 hover:bg-amber-400/20","data-testid":"review-gate-action",children:"Review runs →"})]}),jsxRuntimeExports.jsx("p",{className:"pt-1 text-sm text-muted-foreground",children:"Nothing else can do this step: an LLM labeling anchors to calibrate an LLM judge is circular. Until these are labeled the loop keeps measuring and keeps refusing to decide."}),jsxRuntimeExports.jsx("ul",{className:"pt-2 space-y-1",children:$.map(is=>jsxRuntimeExports.jsxs("li",{className:"text-sm","data-testid":"review-gate-target",children:[jsxRuntimeExports.jsx("span",{className:"font-medium",children:is.name})," ",jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:["— ",is.awaitingReview," unreviewed, and"," ",jsxRuntimeExports.jsx("span",{className:"text-amber-300/90",children:"no human labels yet in this judge segment"}),"."]})]},is.id))})]})}function ReadyToApplyCallout({changes:es}){return es.readyToApply<=0?null:jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-teal-400/40 bg-teal-400/5 p-3","data-testid":"ready-to-apply",children:[jsxRuntimeExports.jsxs("p",{className:"text-sm",children:[jsxRuntimeExports.jsxs("span",{className:"font-medium text-teal-400",children:[es.readyToApply," measured improvement",es.readyToApply===1?" is":"s are"," ","ready to apply"]})," ","— decided ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:"promote"}),", never applied, and still measured against the file as it stands today."]}),es.readyToApplyPromotionId&&jsxRuntimeExports.jsx(PendingDiff,{promotionId:es.readyToApplyPromotionId})]})}function RunNowButton(){const es=useRunLoopNow();return jsxRuntimeExports.jsxs("div",{className:"text-right",children:[jsxRuntimeExports.jsx("button",{type:"button",disabled:es.isPending,onClick:()=>es.mutate(),className:cn$1("cursor-pointer rounded border border-teal-400/40 px-3 py-1.5 text-sm text-teal-400 transition-colors duration-150 hover:bg-teal-400/10",es.isPending&&"opacity-60"),"data-testid":"run-loop-now",children:es.isPending?"Queuing…":"Run cycle now"}),es.isSuccess&&jsxRuntimeExports.jsx("p",{className:"pt-1 font-mono text-xs text-muted-foreground","data-testid":"run-now-result",children:Object.entries(es.data).map(([$,ts])=>`${$}: ${String(ts).replace(/^regenerated: /,"")}`).join(" · ")}),es.isError&&jsxRuntimeExports.jsx("p",{className:"pt-1 text-xs text-amber-400/90",children:"Could not queue the cycle."})]})}function StatusBanner({status:es}){const $=headlineState(headlineInputs(es));return jsxRuntimeExports.jsx("p",{className:cn$1("text-sm",$.tone==="critical"&&"text-red-400",$.tone==="action"&&"text-teal-400",$.tone==="warn"&&"text-amber-400/90",$.tone==="calm"&&"text-muted-foreground"),"data-testid":"loop-headline",children:$.text})}function LoopPage(){const{query:es,update:$}=useLoopQuery(),{data:ts,isLoading:is,isError:Kr,isPlaceholderData:Qr}=useLoopSummary(es),[ja,Ca]=reactExports.useState(null),[Aa,Oa]=reactExports.useState(void 0);return is?jsxRuntimeExports.jsxs("div",{className:"space-y-4 p-6",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-48"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-40 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-40 w-full"})]}):Kr||!ts?jsxRuntimeExports.jsx("div",{className:"p-6",children:jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsxs(CardContent,{className:"flex items-center gap-2 py-6 text-muted-foreground",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4"}),"Could not load loop status."]})})}):jsxRuntimeExports.jsxs("div",{className:"space-y-4 p-6","data-testid":"loop-page",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxRuntimeExports.jsx("h1",{className:"text-2xl font-semibold",children:"Loop"}),jsxRuntimeExports.jsx(RunNowButton,{})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 pt-1",children:[jsxRuntimeExports.jsx(WorkerChip,{status:ts}),jsxRuntimeExports.jsx(StatusBanner,{status:ts})]})]}),jsxRuntimeExports.jsx(ReviewGateCallout,{gate:ts.reviewGate}),jsxRuntimeExports.jsx(LoopRangeControl,{hours:es.hours,onChange:$}),jsxRuntimeExports.jsxs("div",{className:cn$1("space-y-4 transition-opacity duration-200",Qr&&"opacity-50"),children:[jsxRuntimeExports.jsx(ReadyToApplyCallout,{changes:ts.changes}),jsxRuntimeExports.jsx(KpiStrip,{status:ts,insights:Aa==null?void 0:Aa.insights}),jsxRuntimeExports.jsxs(Card,{className:"gap-2",children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-0",children:jsxRuntimeExports.jsxs(CardTitle,{className:"text-base",children:["Proposed changes",ts.proposalTotal>ts.proposals.length&&jsxRuntimeExports.jsxs("span",{className:"pl-2 font-normal text-muted-foreground",children:["showing ",ts.proposals.length," of ",ts.proposalTotal]})]})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-4",children:ts.proposals.length>0?jsxRuntimeExports.jsx("div",{className:"divide-y divide-border",children:ts.proposals.map(Ia=>{const Da=ja===Ia.id;return jsxRuntimeExports.jsxs("div",{"data-testid":"proposal",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>Ca(Da?null:Ia.id),"aria-expanded":Da,"aria-controls":`proposal-detail-${Ia.id}`,className:"flex min-h-11 w-full cursor-pointer items-start justify-between gap-3 rounded-sm px-1 py-2 text-left transition-colors duration-150 hover:bg-muted/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","data-testid":`proposal-toggle-${Ia.id}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[Da?jsxRuntimeExports.jsx(ChevronDown,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}):jsxRuntimeExports.jsx(ChevronRight,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsxs("p",{className:"truncate text-sm",title:Ia.targetName??"",children:[Ia.targetName?Ia.targetName.split("/").pop():"(target deleted)",Ia.targetName&&jsxRuntimeExports.jsx("span",{className:"pl-1.5 text-xs text-muted-foreground",children:Ia.targetName.split("/").slice(-3,-1).join("/")})]}),jsxRuntimeExports.jsxs("p",{className:"font-mono text-xs text-muted-foreground",children:[Ia.decision," · ",Ia.effectClass," · via ",Ia.proposalSource," ·"," ",new Date(Ia.createdAt).toLocaleDateString()]})]})]}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:cn$1("shrink-0",Ia.applied?"border-teal-400/40 text-teal-400":"border-muted-foreground/40 text-muted-foreground"),"data-testid":"proposal-applied",children:Ia.applied?"applied":"not applied"})]}),jsxRuntimeExports.jsx(PromotionDetailPanel,{promotionId:Ia.id,open:Da})]},Ia.id)})}):jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No changes proposed yet."})})]}),jsxRuntimeExports.jsx(OperationalDetails,{summary:ts,query:es,onChange:$,onDiagnostics:Oa})]})]})}function ToggleSwitch({checked:es,label:$,onToggle:ts,disabled:is,danger:Kr,testId:Qr,id:ja}){return jsxRuntimeExports.jsx("button",{type:"button",id:ja,role:"switch","aria-checked":es,"aria-label":$,disabled:is,onClick:ts,"data-testid":Qr,className:cn$1("relative flex h-11 w-11 shrink-0 items-center justify-center rounded-md",is?"cursor-not-allowed opacity-60":"cursor-pointer"),children:jsxRuntimeExports.jsx("span",{className:cn$1("relative block h-6 w-11 rounded-full border transition-colors",es?Kr?"border-amber-400/60 bg-amber-400/30":"border-teal-400/60 bg-teal-400/30":"border-muted-foreground/40 bg-muted"),children:jsxRuntimeExports.jsx("span",{className:cn$1("absolute top-0.5 h-4 w-4 rounded-full transition-all",es?cn$1("left-6",Kr?"bg-amber-400":"bg-teal-400"):"left-0.5 bg-muted-foreground")})})})}function useAutoAcceptSettings(es){return useQuery({queryKey:["settings","auto-accept",null],queryFn:()=>apiGet("/api/settings/auto-accept")})}function useSetAutoAccept(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPatch("/api/settings/auto-accept",$),onSuccess:()=>{es.invalidateQueries({queryKey:["settings","auto-accept"]}),es.invalidateQueries({queryKey:["loop-status"]})}})}function useEvolutionTargets(){return useQuery({queryKey:["settings","evolution"],queryFn:()=>apiGet("/api/settings/evolution/targets")})}function useSetEvolution(){const es=useQueryClient();return useMutation({mutationFn:({evalTargetId:$,...ts})=>apiPatch(`/api/settings/evolution?evalTargetId=${encodeURIComponent($)}`,ts),onSuccess:()=>{es.invalidateQueries({queryKey:["settings","evolution"]}),es.invalidateQueries({queryKey:["loop-status"]})}})}function useEvolutionAccount(){return useQuery({queryKey:["settings","evolution-account"],queryFn:()=>apiGet("/api/settings/evolution-account")})}function useSetEvolutionAccount(){const es=useQueryClient();return useMutation({mutationFn:$=>apiPatch("/api/settings/evolution-account",$),onSuccess:()=>{es.invalidateQueries({queryKey:["settings","evolution-account"]}),es.invalidateQueries({queryKey:["settings","evolution"]}),es.invalidateQueries({queryKey:["loop-status"]})}})}function Row({label:es,hint:$,htmlFor:ts,children:is}){return jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-start gap-3","data-testid":"evolution-setting-row",children:[jsxRuntimeExports.jsxs("label",{htmlFor:ts,className:"min-w-0 cursor-pointer text-xs",children:[es,$&&jsxRuntimeExports.jsx("span",{className:"block text-[11px] text-muted-foreground",children:$})]}),is]})}function TargetRow({target:es,minPairs:$,maxPairs:ts,onPatch:is,pending:Kr}){const{settings:Qr,name:ja}=es,Ca=ja.split("/").pop()||ja,Aa=ja.slice(0,Math.max(0,ja.length-Ca.length-1)),Oa=Ia=>`evolution-${Ia}-${es.evalTargetId}`;return jsxRuntimeExports.jsxs("div",{className:"space-y-3 rounded-md border border-border p-3","data-testid":"evolution-target",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("p",{className:"truncate font-mono text-sm",title:ja,children:Ca}),Aa&&jsxRuntimeExports.jsx("p",{className:"truncate text-xs text-muted-foreground",title:ja,children:Aa}),jsxRuntimeExports.jsx("p",{className:"pt-1 text-xs text-muted-foreground","data-testid":"evolution-summary",children:es.summary}),Qr.pausedBy==="account"&&jsxRuntimeExports.jsx("p",{className:"pt-1 text-[11px] text-amber-400/90",children:"Held by the account-wide pause above — the per-target switch cannot clear it."})]}),jsxRuntimeExports.jsxs("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:[jsxRuntimeExports.jsx(Row,{label:"Enrolled",hint:"measure this instruction",htmlFor:Oa("enabled"),children:jsxRuntimeExports.jsx(ToggleSwitch,{id:Oa("enabled"),checked:Qr.enabled,label:`Enrol ${Ca} in evolution`,testId:"evolution-enabled",disabled:Kr,onToggle:()=>is({enabled:!Qr.enabled})})}),jsxRuntimeExports.jsx(Row,{label:"May rewrite",hint:"act on a verdict, not just record it",htmlFor:Oa("apply"),children:jsxRuntimeExports.jsx(ToggleSwitch,{id:Oa("apply"),checked:Qr.apply,danger:!0,label:`Allow evolution to rewrite ${Ca}`,testId:"evolution-apply",disabled:Kr,onToggle:()=>is({apply:!Qr.apply})})}),jsxRuntimeExports.jsx(Row,{label:"Paused",hint:"stop spending, keep the opt-in",htmlFor:Oa("paused"),children:jsxRuntimeExports.jsx(ToggleSwitch,{id:Oa("paused"),checked:Qr.pausedBy==="target",label:`Pause evolution for ${Ca}`,testId:"evolution-paused",disabled:Kr||Qr.pausedBy==="account",onToggle:()=>is({paused:Qr.pausedBy!=="target"})})}),jsxRuntimeExports.jsx(Row,{label:"Skip auto-enrolment",hint:"never picked up by the rule",htmlFor:Oa("optout"),children:jsxRuntimeExports.jsx(ToggleSwitch,{id:Oa("optout"),checked:Qr.optOut,label:`Exclude ${Ca} from automatic enrolment`,testId:"evolution-optout",disabled:Kr,onToggle:()=>is({optOut:!Qr.optOut})})}),jsxRuntimeExports.jsx(Row,{label:"Pool across nights",hint:"one candidate, evidence accumulated",htmlFor:Oa("accumulate"),children:jsxRuntimeExports.jsx(ToggleSwitch,{id:Oa("accumulate"),checked:Qr.accumulate,label:`Accumulate evidence across nights for ${Ca}`,testId:"evolution-accumulate",disabled:Kr,onToggle:()=>is({accumulate:!Qr.accumulate})})})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-t border-border pt-3",children:[jsxRuntimeExports.jsx("label",{className:"text-xs",htmlFor:`pairs-${es.evalTargetId}`,children:"Evidence required"}),jsxRuntimeExports.jsx("input",{id:`pairs-${es.evalTargetId}`,type:"number",min:$,max:ts,defaultValue:Qr.pairs,disabled:Kr,"data-testid":"evolution-pairs",onBlur:Ia=>{const Da=Number(Ia.currentTarget.value);Number.isFinite(Da)&&Da!==Qr.pairs&&is({pairs:Da})},className:"w-20 rounded border border-border bg-transparent px-2 py-1 text-xs"}),jsxRuntimeExports.jsxs("span",{className:"text-xs text-muted-foreground",children:["paired tasks before it may act (",$,"–",ts,"). Higher is stricter: more evidence and a tighter interval, at a bigger nightly bill."]})]})]})}function EvolutionCard(){const{data:es,isLoading:$}=useEvolutionTargets(),{data:ts}=useEvolutionAccount(),is=useSetEvolution(),Kr=useSetEvolutionAccount(),Qr=(ts==null?void 0:ts.paused)??(es==null?void 0:es.accountPaused)??!1;return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-3",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-base",children:"Instruction evolution"})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-4",children:$||!es?jsxRuntimeExports.jsx(Skeleton,{className:"h-24 w-full"}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-6 rounded-md border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("p",{className:"text-sm",children:"Stop all instruction evolution"}),jsxRuntimeExports.jsx("p",{className:"pt-1 text-xs text-muted-foreground",children:"Account-wide. No instruction is measured or rewritten while this is on, whatever its own switches say. Turning it off restores exactly what was set before."})]}),jsxRuntimeExports.jsx(ToggleSwitch,{checked:Qr,danger:!0,label:"Pause instruction evolution for the whole account",testId:"evolution-account-pause",disabled:Kr.isPending,onToggle:()=>Kr.mutate({paused:!Qr})})]}),jsxRuntimeExports.jsx("p",{className:"text-sm","data-testid":"evolution-writable",children:Qr?jsxRuntimeExports.jsx("span",{className:"font-medium text-amber-400",children:"Evolution is paused for this account."}):es.writable===0?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"No instruction may be rewritten automatically. The loop can still measure and record decisions."}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("span",{className:"font-medium text-amber-400",children:[es.writable," instruction",es.writable===1?"":"s"]})," ","may be rewritten by the nightly loop without asking."]})}),es.targets.length===0?jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:["None of your ",es.totalInstructionTargets," instructions are enrolled. Evolution measures a proposed edit against the current version and only acts on a controlled verdict."]}):jsxRuntimeExports.jsx("div",{className:"space-y-3",children:es.targets.map(ja=>jsxRuntimeExports.jsx(TargetRow,{target:ja,minPairs:es.limits.minPairs,maxPairs:es.limits.maxPairs,pending:is.isPending,onPatch:Ca=>is.mutate({evalTargetId:ja.evalTargetId,...Ca})},ja.evalTargetId))}),es.unconfigured>0&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:[es.unconfigured," other instruction",es.unconfigured===1?" is":"s are"," not configured for evolution and are left alone."]}),(is.isError||Kr.isError)&&jsxRuntimeExports.jsxs("p",{className:"flex items-center gap-2 text-xs text-amber-400/90",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-3 w-3"}),"Could not save that. Try again."]})]})})]})}function SettingsPage(){const{data:es,isLoading:$}=useAutoAcceptSettings(),ts=useSetAutoAccept();return jsxRuntimeExports.jsxs("div",{className:"space-y-6 p-6","data-testid":"settings-page",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h1",{className:"text-2xl font-semibold",children:"Settings"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"What RuleMetric is allowed to do on its own."})]}),jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-3",children:jsxRuntimeExports.jsx(CardTitle,{className:"text-base",children:"Automatic adoption"})}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-4",children:$||!es?jsxRuntimeExports.jsx(Skeleton,{className:"h-24 w-full"}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsxs("p",{className:"text-sm",children:["Let the nightly loop add high-confidence suggestions to your"," ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:"CLAUDE.md"})," without asking."]}),jsxRuntimeExports.jsx("p",{className:"pt-1 text-xs text-muted-foreground",children:"On by default. Every rule it adds is a tagged block you can remove with one command, and it never removes or edits anything you wrote."})]}),jsxRuntimeExports.jsx(ToggleSwitch,{checked:es.effective,label:"Automatic adoption",disabled:ts.isPending,onToggle:()=>ts.mutate({enabled:!es.effective}),testId:"auto-accept-toggle"})]}),jsxRuntimeExports.jsxs("p",{className:"text-sm","data-testid":"auto-accept-state",children:["Currently"," ",jsxRuntimeExports.jsx("span",{className:es.effective?"font-medium text-teal-400":"font-medium",children:es.effective?"ON":"OFF"}),es.source==="project"&&" for this project"]}),jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-border p-3",children:[jsxRuntimeExports.jsx("p",{className:"pb-2 text-xs uppercase tracking-wide text-muted-foreground",children:"What it may do"}),jsxRuntimeExports.jsxs("ul",{className:"space-y-1 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsxs("li",{children:["• Only ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:es.limits.kind})," proposals — removals and trims always wait for you"]}),jsxRuntimeExports.jsxs("li",{children:["• Only above score ",es.limits.minScore,", which is already injected into every session"]}),jsxRuntimeExports.jsx("li",{children:"• Never text containing unfilled placeholders"}),jsxRuntimeExports.jsxs("li",{children:["• At most ",es.limits.maxPerRun," per night and ",es.limits.maxPerWindow," per"," ",es.limits.windowDays," days, per project"]})]})]}),ts.isError&&jsxRuntimeExports.jsxs("p",{className:"flex items-center gap-2 text-xs text-amber-400/90",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-3 w-3"}),"Could not save that. Try again."]}),jsxRuntimeExports.jsxs("div",{className:"border-t border-border pt-3 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx("p",{children:"Also available from the CLI:"}),jsxRuntimeExports.jsxs("pre",{className:"overflow-x-auto pt-1 font-mono",children:["rulemetric suggestions auto --off",`
146
- `,"rulemetric suggestions auto --off --project <project-id>",`
147
- `,"rulemetric suggestions undo <instruction-id>"]})]})]})})]}),jsxRuntimeExports.jsx(EvolutionCard,{})]})}function tierFor(es){return es>=95?"red":es>=80?"orange":es>=60?"yellow":"green"}const TIER_COLOR={green:"stroke-teal-500",yellow:"stroke-yellow-500",orange:"stroke-orange-500",red:"stroke-red-500"},TIER_TEXT={green:"text-teal-600",yellow:"text-yellow-600",orange:"text-orange-600",red:"text-red-600"};function formatCountdown(es,$){const ts=es.getTime()-$.getTime();if(ts<=0)return"resetting now";const is=Math.floor(ts/6e4),Kr=Math.floor(is/1440),Qr=Math.floor((is-Kr*60*24)/60),ja=is-Kr*60*24-Qr*60;return Kr>0?`resets in ${Kr}d ${Qr}h`:Qr>0?`resets in ${Qr}h ${ja}m`:`resets in ${ja}m`}function formatObservedAt(es,$){const ts=$.getTime()-es.getTime();if(ts<6e4)return{label:"live",fresh:!0};const is=Math.floor(ts/6e4);return is<60?{label:`synced ${is}m ago`,fresh:!1}:{label:`synced ${Math.floor(is/60)}h ago`,fresh:!1}}function Ring({pct:es,tier:$}){const is=2*Math.PI*30,Qr=Math.max(0,Math.min(100,es))/100*is;return jsxRuntimeExports.jsxs("svg",{width:80,height:80,viewBox:"0 0 80 80",className:"-rotate-90",children:[jsxRuntimeExports.jsx("circle",{cx:40,cy:40,r:30,strokeWidth:8,fill:"none",className:"stroke-muted"}),jsxRuntimeExports.jsx("circle",{cx:40,cy:40,r:30,strokeWidth:8,fill:"none",strokeLinecap:"round",strokeDasharray:`${Qr} ${is}`,className:cn$1("transition-all duration-500",TIER_COLOR[$])})]})}function LimitRing(es){const{label:$,usedPercentage:ts,resetsAt:is,observedAt:Kr,inferredCap:Qr,unit:ja,confidenceBandPct:Ca,capQualifier:Aa="inferred cap",providerReported:Oa=!1}=es,[Ia,Da]=reactExports.useState(()=>new Date);reactExports.useEffect(()=>{const Ya=setInterval(()=>Da(new Date),6e4);return()=>clearInterval(Ya)},[]);const Ba=assessLimitWindow({usedPercentage:ts,resetsAt:is,now:Ia}),Ma=Ba.kind==="current",Fa=Ma?Ba.usedPercentage:0,qa=tierFor(Fa),Ha=Ma?Fa>=100?{icon:Ban,text:"hit",color:"text-red-600"}:Fa>=95?{icon:TriangleAlert,text:"imminent",color:"text-red-600"}:Fa>=80?{icon:TriangleAlert,text:"approaching",color:"text-yellow-600"}:null:null,Ka=Ba.kind==="expired"?`window ended ${formatElapsed(Ba.endedMsAgo)} ago`:is?formatCountdown(new Date(is),Ia):"—",Qa=Kr?formatObservedAt(new Date(Kr),Ia):null,Va=Ma&&Qr!=null?Math.round(Fa/100*Qr):null;return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4 rounded-lg border border-border bg-card p-4",children:[jsxRuntimeExports.jsx(Ring,{pct:Fa,tier:qa}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2",children:[jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-semibold",children:$}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[jsxRuntimeExports.jsx("span",{className:cn$1("font-mono",Ma?TIER_TEXT[qa]:"text-muted-foreground"),children:Ma?`${Math.round(Fa)}%`:"—"}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:Ka}),Qa?jsxRuntimeExports.jsx("span",{className:cn$1("text-xs",Qa.fresh?"text-teal-600":"text-muted-foreground"),children:Qa.fresh?"✓ live":Qa.label}):jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"? unknown"})]})]}),jsxRuntimeExports.jsxs("div",{className:"mt-1 flex items-center justify-between gap-2 text-xs text-muted-foreground",children:[jsxRuntimeExports.jsx(TooltipProvider,{children:jsxRuntimeExports.jsxs(Tooltip,{children:[jsxRuntimeExports.jsx(TooltipTrigger,{asChild:!0,children:Oa?jsxRuntimeExports.jsx("span",{className:"cursor-help font-mono",children:"Provider-reported quota window percentage"}):jsxRuntimeExports.jsxs("span",{className:"cursor-help font-mono",children:["≈"," ",Va??"?"," ","/ ",Qr??"?"," ",ja," (",Aa," · ±",Ca,"%)"]})}),jsxRuntimeExports.jsx(TooltipContent,{className:"max-w-xs",children:jsxRuntimeExports.jsx("p",{className:"text-xs",children:Oa?"Reported directly by the provider's rate-limit feed — the percentage is authoritative, not an estimate.":"Estimate based on Anthropic-published ranges. Actuals vary per user."})})]})}),Ha?jsxRuntimeExports.jsxs("span",{className:cn$1("flex items-center gap-1 font-mono",Ha.color),children:[jsxRuntimeExports.jsx(Ha.icon,{className:"h-3 w-3"}),Ha.text]}):null]}),Ba.kind==="never-observed"?jsxRuntimeExports.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:Oa?"no observation yet — run this tool through the proxy":"~ estimated · no observation yet"}):null,Ba.kind==="expired"?jsxRuntimeExports.jsxs("div",{className:"mt-1 text-xs text-muted-foreground",children:["last seen ",Math.round(Ba.lastPercentage),"% before this window closed · nothing observed since",Oa?" — run this tool through the proxy":""]}):null]})]})}const SOURCE_LABEL="Live usage · all tracked tools",COST_POLL_MS=3e4,RATE_LIMIT_RINGS=[{key:"five_hour",label:"5-hour window",unit:"msgs"},{key:"seven_day",label:"7-day (Sonnet tier)",unit:"hrs"},{key:"seven_day_opus",label:"7-day (Opus tier)",unit:"hrs"}],CODEX_RINGS=[{key:"five_hour",label:"Codex 5-hour window"},{key:"seven_day",label:"Codex 7-day window"}],PLAN_LABELS={max_20x:"Max-20x",max_5x:"Max-5x",pro:"Pro"};function planLabel(es){return PLAN_LABELS[es]??es}function startOfMonthIso(){const es=new Date;return new Date(es.getFullYear(),es.getMonth(),1).toISOString()}function UsagePage(){var el,tl,rl,cl,dl,fl,nl,ol,pl,Tl,ul,hl,jl,Nl,zl,Zl,$l,Il,ql,Fl;const es=useCurrentLimits(),$=useCurrentLimits("codex"),ts=useInferredCaps(),is=startOfMonthIso(),Kr=useComputedInsights(void 0,void 0,{since:is,refetchIntervalMs:COST_POLL_MS}),Qr=((el=es.data)==null?void 0:el.five_hour)??null,ja=((tl=es.data)==null?void 0:tl.seven_day)??null,Ca=((rl=es.data)==null?void 0:rl.seven_day_opus)??null,Aa=((cl=$.data)==null?void 0:cl.five_hour)??null,Oa=((dl=$.data)==null?void 0:dl.seven_day)??null,Ia={five_hour:Aa,seven_day:Oa},Da=!!(Aa||Oa),Ba=((fl=ts.data)==null?void 0:fl.five_hour_percent.inferred_cap)??null,Ma=((nl=ts.data)==null?void 0:nl.five_hour_percent.confidence_band_pct)??20,Fa=((ol=ts.data)==null?void 0:ol.seven_day_percent.inferred_cap)??null,qa=((pl=ts.data)==null?void 0:pl.seven_day_percent.confidence_band_pct)??20,Ha=((Tl=ts.data)==null?void 0:Tl.seven_day_opus_percent.inferred_cap)??null,Ka=((ul=ts.data)==null?void 0:ul.seven_day_opus_percent.confidence_band_pct)??20,Qa=ts.data?`${planLabel(ts.data.plan)}${ts.data.assumed?" est.":""}`:"inferred cap",Va=es.isLoading||ts.isLoading,Ya={five_hour:{obs:Qr,cap:Ba,band:Ma},seven_day:{obs:ja,cap:Fa,band:qa},seven_day_opus:{obs:Ca,cap:Ha,band:Ka}},Wa=new Date(is).toLocaleString(void 0,{month:"long",year:"numeric"});return jsxRuntimeExports.jsxs("div",{className:"max-w-3xl mx-auto space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Gauge,{className:"h-6 w-6 text-primary"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h1",{className:"font-mono text-xl font-semibold",children:"Usage"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:SOURCE_LABEL})]})]}),jsxRuntimeExports.jsxs("section",{className:"space-y-4",children:[jsxRuntimeExports.jsx("h2",{className:"font-mono text-xs uppercase tracking-wide text-muted-foreground",children:"Rate limits"}),Va?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-24 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-24 w-full"})]}):es.isError?jsxRuntimeExports.jsxs("div",{role:"status",className:"flex items-center gap-2 rounded-lg border border-destructive/40 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4 flex-shrink-0"}),jsxRuntimeExports.jsxs("span",{children:["Couldn't load rate limits",es.error instanceof Error?`: ${es.error.message}`:"",". Retrying…"]})]}):jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsx("h3",{className:"font-mono text-sm font-semibold",children:"Claude Code"}),RATE_LIMIT_RINGS.map(ru=>{var cu,Al,Ml;const Gl=Ya[ru.key];return jsxRuntimeExports.jsx(LimitRing,{label:ru.label,usedPercentage:((cu=Gl.obs)==null?void 0:cu.used_percentage)??null,resetsAt:((Al=Gl.obs)==null?void 0:Al.resets_at)??null,observedAt:((Ml=Gl.obs)==null?void 0:Ml.observed_at)??null,inferredCap:Gl.cap,unit:ru.unit,confidenceBandPct:Gl.band,capQualifier:Qa},ru.key)})]}),Da?jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsx("h3",{className:"font-mono text-sm font-semibold",children:"Codex"}),CODEX_RINGS.map(ru=>{const Gl=Ia[ru.key];return jsxRuntimeExports.jsx(LimitRing,{label:ru.label,usedPercentage:(Gl==null?void 0:Gl.used_percentage)??null,resetsAt:(Gl==null?void 0:Gl.resets_at)??null,observedAt:(Gl==null?void 0:Gl.observed_at)??null,inferredCap:null,unit:"",confidenceBandPct:0,providerReported:!0},ru.key)})]}):null]}),jsxRuntimeExports.jsxs("section",{className:"space-y-3",children:[jsxRuntimeExports.jsxs("h2",{className:"font-mono text-xs uppercase tracking-wide text-muted-foreground",children:["Estimated cost · ",Wa]}),Kr.isLoading?jsxRuntimeExports.jsx(Skeleton,{className:"h-48 w-full"}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CostBreakdownCard,{totalUsd:((hl=Kr.data)==null?void 0:hl.estimated_cost_usd)??0,breakdown:(jl=Kr.data)==null?void 0:jl.estimated_cost_breakdown,inputTokens:((Nl=Kr.data)==null?void 0:Nl.total_input_tokens)??0,outputTokens:((zl=Kr.data)==null?void 0:zl.total_output_tokens)??0,cacheReadTokens:((Zl=Kr.data)==null?void 0:Zl.total_cache_read_tokens)??0,cacheWriteTokens:(($l=Kr.data)==null?void 0:$l.total_cache_write_tokens)??0,byModel:(Il=Kr.data)==null?void 0:Il.estimated_cost_by_model,byTool:(ql=Kr.data)==null?void 0:ql.estimated_cost_by_tool}),(Fl=Kr.data)!=null&&Fl.truncated?jsxRuntimeExports.jsxs("p",{className:"flex items-center gap-1.5 text-xs text-amber-600",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-3 w-3 flex-shrink-0"}),"Showing your 500 most recent sessions this month — older sessions in the window aren't counted, so this is a lower bound."]}):null]})]})]})}function AdminOverviewPage(){var Aa,Oa,Ia,Da,Ba,Ma;const{activeOrg:es}=useActiveOrg(),$=(es==null?void 0:es.slug)??"",ts=useQuery({queryKey:["org-detail",$],queryFn:()=>getOrg($),enabled:!!$}),is=useQuery({queryKey:["org-activity",$,"7d"],queryFn:()=>getOrgActivity($,"7d"),enabled:!!$}),Kr=(Aa=ts.data)==null?void 0:Aa.members.length,Qr=(Oa=ts.data)==null?void 0:Oa.teams.length,ja=(Ia=is.data)==null?void 0:Ia.sessionCount,Ca=((Ma=(Ba=(Da=is.data)==null?void 0:Da.topTools)==null?void 0:Ba[0])==null?void 0:Ma.tool)??null;return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground text-sm",children:[jsxRuntimeExports.jsx(Building2,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{children:"Organization admin"})]}),jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight mt-1",children:(es==null?void 0:es.name)??"—"}),jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground text-sm",children:[jsxRuntimeExports.jsx("code",{className:"text-xs",children:es==null?void 0:es.slug}),es&&jsxRuntimeExports.jsxs("span",{className:"ml-2 capitalize",children:["· you are ",es.role]})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",className:"cursor-pointer",children:jsxRuntimeExports.jsx(Link,{to:"/admin/members",children:"Members"})}),jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",className:"cursor-pointer",children:jsxRuntimeExports.jsx(Link,{to:"/admin/members/invitations",children:"Pending invites"})}),jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",className:"cursor-pointer",children:jsxRuntimeExports.jsx(Link,{to:"/admin/settings",children:"Settings"})})]})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[jsxRuntimeExports.jsx(StatCard$1,{icon:jsxRuntimeExports.jsx(Users,{className:"h-4 w-4"}),label:"Members",value:Kr,loading:ts.isLoading,error:!!ts.error}),jsxRuntimeExports.jsx(StatCard$1,{icon:jsxRuntimeExports.jsx(Layers,{className:"h-4 w-4"}),label:"Teams",value:Qr,loading:ts.isLoading,error:!!ts.error}),jsxRuntimeExports.jsx(StatCard$1,{icon:jsxRuntimeExports.jsx(Activity,{className:"h-4 w-4"}),label:"Sessions (7d)",value:ja,loading:is.isLoading,error:!!is.error}),jsxRuntimeExports.jsx(StatCard$1,{icon:jsxRuntimeExports.jsx(Wrench,{className:"h-4 w-4"}),label:"Top tool",value:Ca??"—",loading:is.isLoading,error:!!is.error})]})]})}function StatCard$1({icon:es,label:$,value:ts,loading:is,error:Kr}){return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs(CardTitle,{className:"flex items-center gap-2 text-sm font-medium text-muted-foreground",children:[es,$]})}),jsxRuntimeExports.jsx(CardContent,{children:is?jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-20"}):Kr?jsxRuntimeExports.jsx("span",{className:"text-sm text-destructive",children:"failed to load"}):jsxRuntimeExports.jsx("span",{className:"text-3xl font-mono font-semibold tabular-nums",children:ts??"—"})})]})}const NO_TEAM="__none";function InviteDialog({open:es,onOpenChange:$,orgSlug:ts}){const is=useQueryClient(),[Kr,Qr]=reactExports.useState(""),[ja,Ca]=reactExports.useState("member"),[Aa,Oa]=reactExports.useState(NO_TEAM),[Ia,Da]=reactExports.useState(null);reactExports.useEffect(()=>{es&&(Qr(""),Ca("member"),Oa(NO_TEAM),Da(null))},[es]);const Ba=useQuery({queryKey:["org-teams",ts],queryFn:()=>listTeams(ts),enabled:es&&!!ts}),Ma=useMutation({mutationFn:qa=>createInvitation(ts,qa),onSuccess:qa=>{qa.emailSent?ue$1.success(`Invitation sent to ${qa.email}`):ue$1.warning("Invite created, but the email could not be sent",{description:qa.emailError?`${qa.emailError} — share the invite link directly.`:"Share the invite link directly.",duration:3e4,action:{label:"Copy invite link",onClick:()=>{var Ha;(Ha=navigator.clipboard)==null||Ha.writeText(qa.acceptUrl).then(()=>ue$1.success("Invite link copied")).catch(()=>ue$1.error("Couldn't copy — the link is in the invite row"))}}}),is.invalidateQueries({queryKey:["org-invitations",ts]}),$(!1)},onError:qa=>{if(qa instanceof ApiError){if(qa.code==="INVITE_ALREADY_PENDING"){Da("There's already a pending invitation for this email. Resend it from the Pending Invites page instead.");return}if(qa.code==="INVALID_TEAM"){Da("That team no longer exists in this organization. Refresh and try again.");return}ue$1.error(qa.message);return}ue$1.error(qa instanceof Error?qa.message:"Failed to send invite")}});function Fa(qa){qa.preventDefault(),Da(null);const Ha=Kr.trim();if(!Ha){Da("Email is required.");return}if(!/^\S+@\S+\.\S+$/.test(Ha)){Da("Enter a valid email address.");return}Ma.mutate({email:Ha,role:ja,...Aa!==NO_TEAM?{teamId:Aa}:{}})}return jsxRuntimeExports.jsx(Dialog,{open:es,onOpenChange:$,children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Invite a member"}),jsxRuntimeExports.jsx(DialogDescription,{children:"Send an invitation email. The recipient gets a link that's valid for 7 days."})]}),jsxRuntimeExports.jsxs("form",{onSubmit:Fa,className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"invite-email",children:"Email"}),jsxRuntimeExports.jsx(Input,{id:"invite-email",type:"email",autoComplete:"off",value:Kr,onChange:qa=>Qr(qa.target.value),placeholder:"teammate@example.com",required:!0,disabled:Ma.isPending})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"invite-role",children:"Role"}),jsxRuntimeExports.jsxs(Select,{value:ja,onValueChange:qa=>Ca(qa),disabled:Ma.isPending,children:[jsxRuntimeExports.jsx(SelectTrigger,{id:"invite-role",className:"w-full",children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:"member",children:"Member"}),jsxRuntimeExports.jsx(SelectItem,{value:"admin",children:"Admin"})]})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Admins can invite, remove, and re-role other members. Members have read-only access to admin pages."})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"invite-team",children:"Team (optional)"}),jsxRuntimeExports.jsxs(Select,{value:Aa,onValueChange:Oa,disabled:Ma.isPending||Ba.isLoading,children:[jsxRuntimeExports.jsx(SelectTrigger,{id:"invite-team",className:"w-full",children:jsxRuntimeExports.jsx(SelectValue,{placeholder:"No team"})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:NO_TEAM,children:"No team"}),(Ba.data??[]).map(qa=>jsxRuntimeExports.jsx(SelectItem,{value:qa.id,children:qa.name},qa.id))]})]}),Ba.error&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-destructive",children:["Couldn't load teams: ",Ba.error.message]})]}),Ia&&jsxRuntimeExports.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:Ia}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>$(!1),disabled:Ma.isPending,className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"submit",disabled:Ma.isPending,className:"cursor-pointer",children:Ma.isPending?"Sending…":"Send invitation"})]})]})]})})}function AdminMembersPage(){const{activeOrg:es}=useActiveOrg(),$=(es==null?void 0:es.slug)??"",ts=useQueryClient(),[is,Kr]=reactExports.useState(!1),[Qr,ja]=reactExports.useState(null),Ca=useQuery({queryKey:["org-members",$],queryFn:()=>listMembers($),enabled:!!$}),Aa=useMutation({mutationFn:({userId:Da,role:Ba})=>updateMemberRole($,Da,Ba),onSuccess:()=>{ue$1.success("Role updated"),ts.invalidateQueries({queryKey:["org-members",$]}),ts.invalidateQueries({queryKey:["orgs"]})},onError:Da=>{Da instanceof ApiError&&Da.code==="LAST_OWNER"?ue$1.error("Cannot demote the last owner."):ue$1.error(Da instanceof Error?Da.message:"Failed to update role"),ts.invalidateQueries({queryKey:["org-members",$]})}}),Oa=useMutation({mutationFn:Da=>removeMember($,Da),onSuccess:()=>{ue$1.success("Member removed"),ts.invalidateQueries({queryKey:["org-members",$]}),ts.invalidateQueries({queryKey:["orgs"]}),ja(null)},onError:Da=>{Da instanceof ApiError&&Da.code==="LAST_OWNER"?ue$1.error("Cannot remove the last owner."):ue$1.error(Da instanceof Error?Da.message:"Failed to remove member")}}),Ia=Ca.data??[];return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Members"}),jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground text-sm",children:["Manage who has access to"," ",jsxRuntimeExports.jsx("strong",{className:"font-medium",children:(es==null?void 0:es.name)??"—"}),"."]})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",className:"cursor-pointer",children:jsxRuntimeExports.jsxs(Link,{to:"/admin/members/invitations",children:[jsxRuntimeExports.jsx(Mail,{className:"mr-2 h-4 w-4"}),"Pending invites"]})}),jsxRuntimeExports.jsxs(Button,{onClick:()=>Kr(!0),className:"cursor-pointer",children:[jsxRuntimeExports.jsx(UserPlus,{className:"mr-2 h-4 w-4"}),"Invite"]})]})]}),Ca.error?jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:["Failed to load members: ",Ca.error.message]}):jsxRuntimeExports.jsx("div",{className:"rounded-md border border-border",children:jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableHead,{className:"w-12"}),jsxRuntimeExports.jsx(TableHead,{children:"Email"}),jsxRuntimeExports.jsx(TableHead,{children:"Display name"}),jsxRuntimeExports.jsx(TableHead,{children:"Role"}),jsxRuntimeExports.jsx(TableHead,{children:"Teams"}),jsxRuntimeExports.jsx(TableHead,{children:"Last active"}),jsxRuntimeExports.jsx(TableHead,{className:"w-12"})]})}),jsxRuntimeExports.jsx(TableBody,{children:Ca.isLoading?jsxRuntimeExports.jsx(SkeletonRows$2,{}):Ia.length===0?jsxRuntimeExports.jsx(TableRow,{children:jsxRuntimeExports.jsx(TableCell,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"No members yet."})}):Ia.map(Da=>{var Ba;return jsxRuntimeExports.jsx(MemberRow,{member:Da,pending:Aa.isPending&&((Ba=Aa.variables)==null?void 0:Ba.userId)===Da.userId,onRoleChange:Ma=>Aa.mutate({userId:Da.userId,role:Ma}),onRemove:()=>ja(Da)},Da.userId)})})]})}),jsxRuntimeExports.jsx(InviteDialog,{open:is,onOpenChange:Kr,orgSlug:$}),jsxRuntimeExports.jsx(RemoveMemberDialog$1,{member:Qr,onCancel:()=>ja(null),onConfirm:()=>Qr&&Oa.mutate(Qr.userId),pending:Oa.isPending})]})}function MemberRow({member:es,pending:$,onRoleChange:ts,onRemove:is}){const Kr=reactExports.useMemo(()=>(es.email??es.displayName??"?").slice(0,1).toUpperCase(),[es.email,es.displayName]);return jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Avatar,{size:"sm",children:jsxRuntimeExports.jsx(AvatarFallback,{children:Kr})})}),jsxRuntimeExports.jsx(TableCell,{className:"font-medium",children:es.email??"—"}),jsxRuntimeExports.jsx(TableCell,{className:"text-muted-foreground",children:es.displayName??"—"}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsxs(Select,{value:es.role,onValueChange:Qr=>ts(Qr),disabled:$,children:[jsxRuntimeExports.jsx(SelectTrigger,{size:"sm",className:"w-32 capitalize",children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:"owner",children:"Owner"}),jsxRuntimeExports.jsx(SelectItem,{value:"admin",children:"Admin"}),jsxRuntimeExports.jsx(SelectItem,{value:"member",children:"Member"})]})]})}),jsxRuntimeExports.jsx(TableCell,{children:es.teams.length===0?jsxRuntimeExports.jsx("span",{className:"text-muted-foreground text-xs",children:"—"}):jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-1",children:es.teams.map(Qr=>jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"text-xs",children:Qr.name},Qr.id))})}),jsxRuntimeExports.jsx(TableCell,{className:"text-muted-foreground text-sm",children:es.lastActiveAt?formatDistanceToNow(es.lastActiveAt):"never"}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsxs(DropdownMenu,{children:[jsxRuntimeExports.jsx(DropdownMenuTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs(Button,{variant:"ghost",size:"icon",className:"h-8 w-8 cursor-pointer",children:[jsxRuntimeExports.jsx(Ellipsis,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Member actions"})]})}),jsxRuntimeExports.jsx(DropdownMenuContent,{align:"end",children:jsxRuntimeExports.jsx(DropdownMenuItem,{onClick:is,className:"text-destructive focus:text-destructive cursor-pointer",children:"Remove from organization"})})]})})]})}function SkeletonRows$2(){return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Array.from({length:4}).map((es,$)=>jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-6 rounded-full"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-40"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-24"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-32"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-20"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-16"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-8"})})]},$))})}function RemoveMemberDialog$1({member:es,onCancel:$,onConfirm:ts,pending:is}){return jsxRuntimeExports.jsx(Dialog,{open:!!es,onOpenChange:Kr=>{Kr||$()},children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Remove member?"}),jsxRuntimeExports.jsxs(DialogDescription,{children:[(es==null?void 0:es.email)??"This member"," will lose access to the organization. They can be re-invited later."]})]}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:$,disabled:is,className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"destructive",onClick:ts,disabled:is,className:"cursor-pointer",children:is?"Removing…":"Remove"})]})]})})}function AdminInvitationsPage(){const{activeOrg:es}=useActiveOrg(),$=(es==null?void 0:es.slug)??"",ts=useQueryClient(),[is,Kr]=reactExports.useState(!1),[Qr,ja]=reactExports.useState(null),Ca=useQuery({queryKey:["org-invitations",$],queryFn:()=>listInvitations($),enabled:!!$}),Aa=useMutation({mutationFn:Da=>resendInvitation($,Da),onSuccess:Da=>{Da.emailSent?ue$1.success(`Resent invitation to ${Da.email}`):ue$1.warning("Invite link refreshed, but the email could not be sent",{description:Da.emailError?`${Da.emailError} — share the invite link directly.`:"Share the invite link directly.",duration:3e4,action:{label:"Copy invite link",onClick:()=>{var Ba;(Ba=navigator.clipboard)==null||Ba.writeText(Da.acceptUrl).then(()=>ue$1.success("Invite link copied")).catch(()=>ue$1.error("Couldn't copy the invite link"))}}}),ts.invalidateQueries({queryKey:["org-invitations",$]})},onError:Da=>ue$1.error(Da instanceof Error?Da.message:"Failed to resend invitation")}),Oa=useMutation({mutationFn:Da=>revokeInvitation($,Da),onSuccess:()=>{ue$1.success("Invitation revoked"),ts.invalidateQueries({queryKey:["org-invitations",$]}),ja(null)},onError:Da=>ue$1.error(Da instanceof Error?Da.message:"Failed to revoke invitation")}),Ia=Ca.data??[];return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"ghost",size:"sm",className:"cursor-pointer mb-2 -ml-2 text-muted-foreground",children:jsxRuntimeExports.jsxs(Link,{to:"/admin/members",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-1 h-4 w-4"}),"Back to members"]})}),jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Pending invitations"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-sm",children:"Sent but not yet accepted. Invitations expire 7 days after they're issued or last resent."})]}),jsxRuntimeExports.jsxs(Button,{onClick:()=>Kr(!0),className:"cursor-pointer",children:[jsxRuntimeExports.jsx(UserPlus,{className:"mr-2 h-4 w-4"}),"Invite"]})]}),Ca.error?jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:["Failed to load invitations:"," ",Ca.error.message]}):jsxRuntimeExports.jsx("div",{className:"rounded-md border border-border",children:jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableHead,{children:"Email"}),jsxRuntimeExports.jsx(TableHead,{children:"Role"}),jsxRuntimeExports.jsx(TableHead,{children:"Team"}),jsxRuntimeExports.jsx(TableHead,{children:"Invited by"}),jsxRuntimeExports.jsx(TableHead,{children:"Expires"}),jsxRuntimeExports.jsx(TableHead,{className:"w-48 text-right",children:"Actions"})]})}),jsxRuntimeExports.jsx(TableBody,{children:Ca.isLoading?jsxRuntimeExports.jsx(SkeletonRows$1,{}):Ia.length===0?jsxRuntimeExports.jsx(TableRow,{children:jsxRuntimeExports.jsx(TableCell,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"No pending invitations. Send one from the Members tab."})}):Ia.map(Da=>jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableCell,{className:"font-medium",children:Da.email}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"capitalize",children:Da.role})}),jsxRuntimeExports.jsx(TableCell,{className:"text-muted-foreground",children:Da.teamName??"—"}),jsxRuntimeExports.jsx(TableCell,{className:"text-muted-foreground",children:Da.invitedByName??"—"}),jsxRuntimeExports.jsx(TableCell,{className:"text-muted-foreground text-sm",children:formatDistanceToFuture(Da.expiresAt)}),jsxRuntimeExports.jsx(TableCell,{className:"text-right",children:jsxRuntimeExports.jsxs("div",{className:"flex justify-end gap-2",children:[jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",disabled:Aa.isPending&&Aa.variables===Da.id,onClick:()=>Aa.mutate(Da.id),className:"cursor-pointer",children:[jsxRuntimeExports.jsx(RefreshCw,{className:"mr-1 h-3 w-3"}),"Resend"]}),jsxRuntimeExports.jsxs(Button,{variant:"outline",size:"sm",onClick:()=>ja(Da),className:"cursor-pointer text-destructive hover:text-destructive",children:[jsxRuntimeExports.jsx(Trash2,{className:"mr-1 h-3 w-3"}),"Revoke"]})]})})]},Da.id))})]})}),jsxRuntimeExports.jsx(InviteDialog,{open:is,onOpenChange:Kr,orgSlug:$}),jsxRuntimeExports.jsx(Dialog,{open:!!Qr,onOpenChange:Da=>{Da||ja(null)},children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Revoke invitation?"}),jsxRuntimeExports.jsxs(DialogDescription,{children:[Qr!=null&&Qr.email?`${Qr.email} will no longer be able to accept this invitation.`:"This invitation will be revoked."," ","You can send a new one from the Members tab."]})]}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>ja(null),disabled:Oa.isPending,className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"destructive",onClick:()=>Qr&&Oa.mutate(Qr.id),disabled:Oa.isPending,className:"cursor-pointer",children:Oa.isPending?"Revoking…":"Revoke"})]})]})})]})}function SkeletonRows$1(){return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Array.from({length:3}).map((es,$)=>jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-40"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-16"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-20"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-24"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-16"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsxs("div",{className:"flex justify-end gap-2",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-20"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-20"})]})})]},$))})}const SLUG_REGEX$2=/^(?=.{3,40}$)[a-z0-9]+(?:-[a-z0-9]+)*$/;function slugify$1(es){return es.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)}function AdminTeamsPage(){const{activeOrg:es}=useActiveOrg(),$=(es==null?void 0:es.slug)??"",[ts,is]=reactExports.useState(!1),[Kr,Qr]=reactExports.useState(null),[ja,Ca]=reactExports.useState(null),Aa=useQuery({queryKey:["org-teams",$],queryFn:()=>listTeams($),enabled:!!$}),Oa=Aa.data??[];return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Teams"}),jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground text-sm",children:["Group members of"," ",jsxRuntimeExports.jsx("strong",{className:"font-medium",children:(es==null?void 0:es.name)??"—"})," ","to scope activity dashboards."]})]}),jsxRuntimeExports.jsxs(Button,{onClick:()=>is(!0),className:"cursor-pointer",children:[jsxRuntimeExports.jsx(Plus,{className:"mr-2 h-4 w-4"}),"New team"]})]}),Aa.error?jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:["Failed to load teams: ",Aa.error.message]}):Aa.isLoading?jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Array.from({length:4}).map((Ia,Da)=>jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-5 w-32"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-20 mt-2"})]}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-24"})})]},Da))}):Oa.length===0?jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center justify-center rounded-md border border-dashed border-border py-16 text-center",children:[jsxRuntimeExports.jsx(Layers,{className:"h-10 w-10 text-muted-foreground mb-3"}),jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:"No teams yet."}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Create one to start grouping members."}),jsxRuntimeExports.jsxs(Button,{onClick:()=>is(!0),className:"cursor-pointer",variant:"outline",children:[jsxRuntimeExports.jsx(Plus,{className:"mr-2 h-4 w-4"}),"Create team"]})]}):jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Oa.map(Ia=>jsxRuntimeExports.jsx(TeamCard,{team:Ia,onRename:()=>Qr(Ia),onDelete:()=>Ca(Ia)},Ia.id))}),jsxRuntimeExports.jsx(CreateTeamDialog,{open:ts,onOpenChange:is,orgSlug:$}),jsxRuntimeExports.jsx(RenameTeamDialog,{team:Kr,orgSlug:$,onClose:()=>Qr(null)}),jsxRuntimeExports.jsx(DeleteTeamDialog,{team:ja,orgSlug:$,onClose:()=>Ca(null)})]})}function TeamCard({team:es,onRename:$,onDelete:ts}){return jsxRuntimeExports.jsxs(Card,{className:"relative",children:[jsxRuntimeExports.jsxs(CardHeader,{className:"flex flex-row items-start justify-between space-y-0",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsx(CardTitle,{className:"truncate",children:jsxRuntimeExports.jsx(Link,{to:`/admin/teams/${encodeURIComponent(es.slug)}`,className:"hover:underline",children:es.name})}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:jsxRuntimeExports.jsx("code",{children:es.slug})})]}),jsxRuntimeExports.jsxs(DropdownMenu,{children:[jsxRuntimeExports.jsx(DropdownMenuTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs(Button,{variant:"ghost",size:"icon",className:"h-8 w-8 cursor-pointer -mr-2 -mt-1",children:[jsxRuntimeExports.jsx(Ellipsis,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Team actions"})]})}),jsxRuntimeExports.jsxs(DropdownMenuContent,{align:"end",children:[jsxRuntimeExports.jsx(DropdownMenuItem,{onClick:$,className:"cursor-pointer",children:"Rename"}),jsxRuntimeExports.jsx(DropdownMenuItem,{onClick:ts,className:"text-destructive focus:text-destructive cursor-pointer",children:"Delete"})]})]})]}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[jsxRuntimeExports.jsx(Users,{className:"h-4 w-4"}),es.memberCount," ",es.memberCount===1?"member":"members"]})})]})}function CreateTeamDialog({open:es,onOpenChange:$,orgSlug:ts}){const is=useQueryClient(),[Kr,Qr]=reactExports.useState(""),[ja,Ca]=reactExports.useState(""),[Aa,Oa]=reactExports.useState(!1),[Ia,Da]=reactExports.useState(null);reactExports.useEffect(()=>{es&&(Qr(""),Ca(""),Oa(!1),Da(null))},[es]);const Ba=useMutation({mutationFn:qa=>createTeam(ts,qa),onSuccess:()=>{ue$1.success("Team created"),is.invalidateQueries({queryKey:["org-teams",ts]}),is.invalidateQueries({queryKey:["org-detail",ts]}),$(!1)},onError:qa=>{if(qa instanceof ApiError&&qa.code==="TEAM_SLUG_TAKEN"){Da("That slug is already in use by another team.");return}if(qa instanceof ApiError&&qa.code==="VALIDATION_ERROR"){Da("Slug must be lowercase letters, numbers, and dashes (3–40 chars).");return}ue$1.error(qa instanceof Error?qa.message:"Failed to create team")}});function Ma(qa){Qr(qa),Aa||Ca(slugify$1(qa))}function Fa(qa){qa.preventDefault(),Da(null);const Ha=Kr.trim(),Ka=ja.trim();if(!Ha){Da("Name is required.");return}if(!SLUG_REGEX$2.test(Ka)){Da("Slug must be lowercase letters, numbers, and dashes (3–40 chars).");return}Ba.mutate({name:Ha,slug:Ka})}return jsxRuntimeExports.jsx(Dialog,{open:es,onOpenChange:$,children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"New team"}),jsxRuntimeExports.jsx(DialogDescription,{children:"Teams group members of an organization for scoped activity views."})]}),jsxRuntimeExports.jsxs("form",{onSubmit:Fa,className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"team-name",children:"Name"}),jsxRuntimeExports.jsx(Input,{id:"team-name",value:Kr,onChange:qa=>Ma(qa.target.value),placeholder:"Platform",required:!0,disabled:Ba.isPending})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"team-slug",children:"Slug"}),jsxRuntimeExports.jsx(Input,{id:"team-slug",value:ja,onChange:qa=>{Ca(qa.target.value),Oa(!0)},placeholder:"platform",required:!0,disabled:Ba.isPending}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Lowercase letters, numbers, and dashes. Used in URLs."})]}),Ia&&jsxRuntimeExports.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:Ia}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>$(!1),disabled:Ba.isPending,className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"submit",disabled:Ba.isPending,className:"cursor-pointer",children:Ba.isPending?"Creating…":"Create team"})]})]})]})})}function RenameTeamDialog({team:es,orgSlug:$,onClose:ts}){const is=useQueryClient(),[Kr,Qr]=reactExports.useState(""),[ja,Ca]=reactExports.useState(""),[Aa,Oa]=reactExports.useState(null);reactExports.useEffect(()=>{es&&(Qr(es.name),Ca(es.slug),Oa(null))},[es]);const Ia=useMutation({mutationFn:({name:Ba,slug:Ma})=>updateTeam($,es.id,{name:Ba,slug:Ma}),onSuccess:()=>{ue$1.success("Team updated"),is.invalidateQueries({queryKey:["org-teams",$]}),is.invalidateQueries({queryKey:["org-detail",$]}),ts()},onError:Ba=>{if(Ba instanceof ApiError&&Ba.code==="TEAM_SLUG_TAKEN"){Oa("That slug is already in use by another team.");return}if(Ba instanceof ApiError&&Ba.code==="VALIDATION_ERROR"){Oa("Slug must be lowercase letters, numbers, and dashes (3–40 chars).");return}ue$1.error(Ba instanceof Error?Ba.message:"Failed to update team")}});function Da(Ba){Ba.preventDefault(),Oa(null);const Ma=Kr.trim(),Fa=ja.trim();if(!Ma){Oa("Name is required.");return}if(!SLUG_REGEX$2.test(Fa)){Oa("Slug must be lowercase letters, numbers, and dashes (3–40 chars).");return}Ia.mutate({name:Ma,slug:Fa})}return jsxRuntimeExports.jsx(Dialog,{open:!!es,onOpenChange:Ba=>{Ba||ts()},children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Rename team"}),jsxRuntimeExports.jsx(DialogDescription,{children:"Change the team's display name and/or URL slug."})]}),jsxRuntimeExports.jsxs("form",{onSubmit:Da,className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"rename-team-name",children:"Name"}),jsxRuntimeExports.jsx(Input,{id:"rename-team-name",value:Kr,onChange:Ba=>Qr(Ba.target.value),required:!0,disabled:Ia.isPending})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"rename-team-slug",children:"Slug"}),jsxRuntimeExports.jsx(Input,{id:"rename-team-slug",value:ja,onChange:Ba=>Ca(Ba.target.value),required:!0,disabled:Ia.isPending}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Changing the slug breaks any bookmarked links to this team."})]}),Aa&&jsxRuntimeExports.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:Aa}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:ts,disabled:Ia.isPending,className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"submit",disabled:Ia.isPending,className:"cursor-pointer",children:Ia.isPending?"Saving…":"Save"})]})]})]})})}function DeleteTeamDialog({team:es,orgSlug:$,onClose:ts}){const is=useQueryClient(),Kr=useMutation({mutationFn:()=>deleteTeam($,es.id),onSuccess:()=>{ue$1.success("Team deleted"),is.invalidateQueries({queryKey:["org-teams",$]}),is.invalidateQueries({queryKey:["org-detail",$]}),ts()},onError:Qr=>{ue$1.error(Qr instanceof Error?Qr.message:"Failed to delete team")}});return jsxRuntimeExports.jsx(Dialog,{open:!!es,onOpenChange:Qr=>{Qr||ts()},children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Delete team?"}),jsxRuntimeExports.jsxs(DialogDescription,{children:[jsxRuntimeExports.jsx("strong",{children:es==null?void 0:es.name})," will be permanently deleted. Members will remain in the organization but will no longer be grouped under this team."]})]}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:ts,disabled:Kr.isPending,className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"destructive",onClick:()=>Kr.mutate(),disabled:Kr.isPending,className:"cursor-pointer",children:Kr.isPending?"Deleting…":"Delete"})]})]})})}function TeamDetailPage(){const{activeOrg:es}=useActiveOrg(),$=(es==null?void 0:es.slug)??"",{teamSlug:ts=""}=useParams(),[is,Kr]=useTabParam(["members","activity"],"members"),Qr=useQuery({queryKey:["org-teams",$],queryFn:()=>listTeams($),enabled:!!$}),ja=reactExports.useMemo(()=>{var Ca;return((Ca=Qr.data)==null?void 0:Ca.find(Aa=>Aa.slug===ts))??null},[Qr.data,ts]);return Qr.isLoading?jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-64"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-32"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-10 w-full"})]}):Qr.error?jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:["Failed to load team: ",Qr.error.message]}):ja?jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx("div",{className:"flex items-start justify-between gap-4",children:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs(Link,{to:"/admin/teams",className:"text-xs text-muted-foreground hover:text-foreground inline-flex items-center",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-1 h-3 w-3"}),"All teams"]}),jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight mt-1",children:ja.name}),jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground text-sm",children:[jsxRuntimeExports.jsx("code",{className:"text-xs",children:ja.slug}),jsxRuntimeExports.jsxs("span",{className:"ml-2",children:["· ",ja.memberCount," ",ja.memberCount===1?"member":"members"]})]})]})}),jsxRuntimeExports.jsxs(Tabs,{value:is,onValueChange:Kr,children:[jsxRuntimeExports.jsxs(TabsList,{variant:"line",children:[jsxRuntimeExports.jsx(TabsTrigger,{value:"members",children:"Members"}),jsxRuntimeExports.jsx(TabsTrigger,{value:"activity",children:"Activity"})]}),jsxRuntimeExports.jsx(TabsContent,{value:"members",className:"pt-4",children:jsxRuntimeExports.jsx(MembersTab,{orgSlug:$,teamId:ja.id})}),jsxRuntimeExports.jsx(TabsContent,{value:"activity",className:"pt-4",children:jsxRuntimeExports.jsx(ActivityTab,{orgSlug:$,teamId:ja.id})})]})]}):jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center justify-center rounded-md border border-dashed border-border py-16 text-center",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium",children:"Team not found"}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground mb-4",children:["No team with slug ",jsxRuntimeExports.jsx("code",{className:"text-xs",children:ts})," in this organization."]}),jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",className:"cursor-pointer",children:jsxRuntimeExports.jsxs(Link,{to:"/admin/teams",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Back to teams"]})})]})}function MembersTab({orgSlug:es,teamId:$}){const ts=useQueryClient(),[is,Kr]=reactExports.useState(!1),[Qr,ja]=reactExports.useState(null),Ca=useQuery({queryKey:["org-members",es],queryFn:()=>listMembers(es),enabled:!!es}),Aa=reactExports.useMemo(()=>(Ca.data??[]).filter(Da=>Da.teams.some(Ba=>Ba.id===$)),[Ca.data,$]),Oa=reactExports.useMemo(()=>(Ca.data??[]).filter(Da=>!Da.teams.some(Ba=>Ba.id===$)),[Ca.data,$]),Ia=useMutation({mutationFn:Da=>removeTeamMember(es,$,Da),onSuccess:()=>{ue$1.success("Member removed from team"),ts.invalidateQueries({queryKey:["org-members",es]}),ts.invalidateQueries({queryKey:["org-teams",es]}),ja(null)},onError:Da=>{ue$1.error(Da instanceof Error?Da.message:"Failed to remove member")}});return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Members in this team. Adding a member here doesn't change their organization role — only the team grouping."}),jsxRuntimeExports.jsxs(Button,{onClick:()=>Kr(!0),className:"cursor-pointer",children:[jsxRuntimeExports.jsx(UserPlus,{className:"mr-2 h-4 w-4"}),"Add member"]})]}),Ca.error?jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:["Failed to load members: ",Ca.error.message]}):jsxRuntimeExports.jsx("div",{className:"rounded-md border border-border",children:jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableHead,{className:"w-12"}),jsxRuntimeExports.jsx(TableHead,{children:"Email"}),jsxRuntimeExports.jsx(TableHead,{children:"Display name"}),jsxRuntimeExports.jsx(TableHead,{children:"Org role"}),jsxRuntimeExports.jsx(TableHead,{className:"w-12"})]})}),jsxRuntimeExports.jsx(TableBody,{children:Ca.isLoading?jsxRuntimeExports.jsx(SkeletonRows,{}):Aa.length===0?jsxRuntimeExports.jsx(TableRow,{children:jsxRuntimeExports.jsx(TableCell,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"No members in this team yet."})}):Aa.map(Da=>jsxRuntimeExports.jsx(TeamMemberRow,{member:Da,onRemove:()=>ja(Da)},Da.userId))})]})}),jsxRuntimeExports.jsx(AddMemberDialog,{open:is,onOpenChange:Kr,orgSlug:es,teamId:$,addable:Oa,loading:Ca.isLoading}),jsxRuntimeExports.jsx(RemoveMemberDialog,{member:Qr,onCancel:()=>ja(null),onConfirm:()=>Qr&&Ia.mutate(Qr.userId),pending:Ia.isPending})]})}function TeamMemberRow({member:es,onRemove:$}){const ts=reactExports.useMemo(()=>(es.email??es.displayName??"?").slice(0,1).toUpperCase(),[es.email,es.displayName]);return jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Avatar,{size:"sm",children:jsxRuntimeExports.jsx(AvatarFallback,{children:ts})})}),jsxRuntimeExports.jsx(TableCell,{className:"font-medium",children:es.email??"—"}),jsxRuntimeExports.jsx(TableCell,{className:"text-muted-foreground",children:es.displayName??"—"}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Badge,{variant:"secondary",className:"capitalize",children:es.role})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsxs(DropdownMenu,{children:[jsxRuntimeExports.jsx(DropdownMenuTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs(Button,{variant:"ghost",size:"icon",className:"h-8 w-8 cursor-pointer",children:[jsxRuntimeExports.jsx(Ellipsis,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Member actions"})]})}),jsxRuntimeExports.jsx(DropdownMenuContent,{align:"end",children:jsxRuntimeExports.jsx(DropdownMenuItem,{onClick:$,className:"text-destructive focus:text-destructive cursor-pointer",children:"Remove from team"})})]})})]})}function SkeletonRows(){return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Array.from({length:3}).map((es,$)=>jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-6 rounded-full"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-40"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-24"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-16"})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-8"})})]},$))})}const NO_USER="__none";function AddMemberDialog({open:es,onOpenChange:$,orgSlug:ts,teamId:is,addable:Kr,loading:Qr}){const ja=useQueryClient(),[Ca,Aa]=reactExports.useState(NO_USER),[Oa,Ia]=reactExports.useState(null);reactExports.useEffect(()=>{es&&(Aa(NO_USER),Ia(null))},[es]);const Da=useMutation({mutationFn:Ma=>addTeamMember(ts,is,Ma),onSuccess:()=>{ue$1.success("Member added to team"),ja.invalidateQueries({queryKey:["org-members",ts]}),ja.invalidateQueries({queryKey:["org-teams",ts]}),$(!1)},onError:Ma=>{ue$1.error(Ma instanceof Error?Ma.message:"Failed to add member")}});function Ba(Ma){if(Ma.preventDefault(),Ca===NO_USER){Ia("Pick a member to add.");return}Da.mutate(Ca)}return jsxRuntimeExports.jsx(Dialog,{open:es,onOpenChange:$,children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Add member to team"}),jsxRuntimeExports.jsx(DialogDescription,{children:"Pick an organization member to add. Only members not already on this team are listed."})]}),jsxRuntimeExports.jsxs("form",{onSubmit:Ba,className:"space-y-4",children:[jsxRuntimeExports.jsx("div",{className:"space-y-2",children:jsxRuntimeExports.jsxs(Select,{value:Ca,onValueChange:Ma=>{Aa(Ma),Ia(null)},disabled:Da.isPending||Qr,children:[jsxRuntimeExports.jsx(SelectTrigger,{className:"w-full",children:jsxRuntimeExports.jsx(SelectValue,{placeholder:Qr?"Loading…":"Select member"})}),jsxRuntimeExports.jsx(SelectContent,{children:Kr.length===0?jsxRuntimeExports.jsx(SelectItem,{value:NO_USER,disabled:!0,children:Qr?"Loading…":"All org members are on this team."}):Kr.map(Ma=>jsxRuntimeExports.jsx(SelectItem,{value:Ma.userId,children:Ma.email??Ma.displayName??Ma.userId},Ma.userId))})]})}),Oa&&jsxRuntimeExports.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:Oa}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>$(!1),disabled:Da.isPending,className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"submit",disabled:Da.isPending||Kr.length===0||Ca===NO_USER,className:"cursor-pointer",children:Da.isPending?"Adding…":"Add"})]})]})]})})}function RemoveMemberDialog({member:es,onCancel:$,onConfirm:ts,pending:is}){return jsxRuntimeExports.jsx(Dialog,{open:!!es,onOpenChange:Kr=>{Kr||$()},children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Remove from team?"}),jsxRuntimeExports.jsxs(DialogDescription,{children:[(es==null?void 0:es.email)??"This member"," will no longer be grouped under this team. They'll remain in the organization."]})]}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:$,disabled:is,className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"destructive",onClick:ts,disabled:is,className:"cursor-pointer",children:is?"Removing…":"Remove"})]})]})})}function ActivityTab({orgSlug:es,teamId:$}){var ja,Ca;const[ts,is]=reactExports.useState("7d"),Kr=useQuery({queryKey:["team-activity",es,$,ts],queryFn:()=>getTeamActivity(es,$,ts),enabled:!!es&&!!$});if(Kr.error)return jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:["Failed to load activity: ",Kr.error.message]});const Qr=Kr.data;return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center justify-end",children:jsxRuntimeExports.jsxs(Select,{value:ts,onValueChange:Aa=>is(Aa),children:[jsxRuntimeExports.jsx(SelectTrigger,{size:"sm",className:"w-32",children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:"7d",children:"Last 7 days"}),jsxRuntimeExports.jsx(SelectItem,{value:"30d",children:"Last 30 days"})]})]})}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[jsxRuntimeExports.jsx(StatCard,{icon:jsxRuntimeExports.jsx(Activity,{className:"h-4 w-4"}),label:`Sessions (${ts})`,value:Qr==null?void 0:Qr.sessionCount,loading:Kr.isLoading}),jsxRuntimeExports.jsx(StatCard,{icon:jsxRuntimeExports.jsx(Users,{className:"h-4 w-4"}),label:"Active members",value:Qr==null?void 0:Qr.memberCount,loading:Kr.isLoading}),jsxRuntimeExports.jsx(StatCard,{icon:jsxRuntimeExports.jsx(Wrench,{className:"h-4 w-4"}),label:"Top tool",value:((Ca=(ja=Qr==null?void 0:Qr.topTools)==null?void 0:ja[0])==null?void 0:Ca.tool)??"—",loading:Kr.isLoading}),jsxRuntimeExports.jsx(StatCard,{icon:jsxRuntimeExports.jsx(Activity,{className:"h-4 w-4"}),label:"Avg friction",value:Qr!=null&&Qr.frictionTrend&&Qr.frictionTrend.length>0?(Qr.frictionTrend.reduce((Aa,Oa)=>Aa+Oa.avgFriction,0)/Qr.frictionTrend.length).toFixed(2):"—",loading:Kr.isLoading})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:[jsxRuntimeExports.jsx(TopToolsCard,{data:Qr,loading:Kr.isLoading}),jsxRuntimeExports.jsx(TopMembersCard,{data:Qr,loading:Kr.isLoading}),jsxRuntimeExports.jsx(FrictionTrendCard,{data:Qr,loading:Kr.isLoading}),jsxRuntimeExports.jsx(InstructionEffectivenessCard,{data:Qr,loading:Kr.isLoading})]})]})}function StatCard({icon:es,label:$,value:ts,loading:is}){return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs(CardTitle,{className:"flex items-center gap-2 text-sm font-medium text-muted-foreground",children:[es,$]})}),jsxRuntimeExports.jsx(CardContent,{children:is?jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-20"}):jsxRuntimeExports.jsx("span",{className:"text-3xl font-mono font-semibold tabular-nums",children:ts??"—"})})]})}function TopToolsCard({data:es,loading:$}){var Kr;const ts=(es==null?void 0:es.topTools)??[],is=((Kr=ts[0])==null?void 0:Kr.count)??0;return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-medium",children:"Top tools"})}),jsxRuntimeExports.jsx(CardContent,{children:$?jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-full"})]}):ts.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No data yet."}):jsxRuntimeExports.jsx("ul",{className:"space-y-2",children:ts.map(Qr=>jsxRuntimeExports.jsxs("li",{className:"space-y-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-baseline justify-between text-sm",children:[jsxRuntimeExports.jsx("span",{className:"font-medium",children:Qr.tool}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground tabular-nums",children:Qr.count})]}),jsxRuntimeExports.jsx("div",{className:"h-1.5 w-full rounded-full bg-muted overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"h-full bg-primary",style:{width:`${is>0?Qr.count/is*100:0}%`}})})]},Qr.tool))})})]})}function TopMembersCard({data:es,loading:$}){const ts=(es==null?void 0:es.topMembers)??[];return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-medium",children:"Top members"})}),jsxRuntimeExports.jsx(CardContent,{children:$?jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-full"})]}):ts.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No data yet."}):jsxRuntimeExports.jsx("ul",{className:"space-y-2",children:ts.map(is=>jsxRuntimeExports.jsxs("li",{className:"flex items-baseline justify-between text-sm",children:[jsxRuntimeExports.jsx("span",{className:"truncate font-medium",children:is.email??is.displayName??is.userId}),jsxRuntimeExports.jsx("span",{className:"text-muted-foreground tabular-nums",children:is.count})]},is.userId))})})]})}function FrictionTrendCard({data:es,loading:$}){const ts=(es==null?void 0:es.frictionTrend)??[],is=ts.reduce((Kr,Qr)=>Math.max(Kr,Qr.avgFriction),0);return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-medium",children:"Friction trend"})}),jsxRuntimeExports.jsx(CardContent,{children:$?jsxRuntimeExports.jsx(Skeleton,{className:"h-24 w-full"}):ts.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No friction data in this range."}):jsxRuntimeExports.jsx("ul",{className:"space-y-1.5",children:ts.map(Kr=>jsxRuntimeExports.jsxs("li",{className:"space-y-0.5",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-baseline justify-between text-xs",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground tabular-nums",children:Kr.day}),jsxRuntimeExports.jsx("span",{className:"font-medium tabular-nums",children:Kr.avgFriction.toFixed(2)})]}),jsxRuntimeExports.jsx("div",{className:"h-1 w-full rounded-full bg-muted overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"h-full bg-primary",style:{width:`${is>0?Kr.avgFriction/is*100:0}%`}})})]},Kr.day))})})]})}function InstructionEffectivenessCard({data:es,loading:$}){const ts=(es==null?void 0:es.instructionEffectiveness)??[];return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm font-medium",children:"Instruction effectiveness"})}),jsxRuntimeExports.jsx(CardContent,{children:$?jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-6 w-full"})]}):ts.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No linked instructions in this range."}):jsxRuntimeExports.jsx("ul",{className:"space-y-2",children:ts.map(is=>jsxRuntimeExports.jsxs("li",{className:"flex items-baseline justify-between gap-2 text-sm",children:[jsxRuntimeExports.jsxs("span",{className:"flex min-w-0 items-baseline gap-1.5",children:[jsxRuntimeExports.jsx("span",{className:"truncate font-medium",children:is.name}),jsxRuntimeExports.jsx(ProvenanceBadge,{source:is.source})]}),jsxRuntimeExports.jsx("span",{className:is.deltaPct==null?"text-muted-foreground tabular-nums":is.deltaPct>=0?"text-teal-600 dark:text-teal-500 tabular-nums":"text-destructive tabular-nums",children:is.deltaPct==null?"—":`${is.deltaPct>=0?"+":""}${is.deltaPct.toFixed(1)}%`})]},is.instructionId))})})]})}const SLUG_REGEX$1=/^(?=.{3,40}$)[a-z0-9]+(?:-[a-z0-9]+)*$/;function AdminSettingsPage(){const{activeOrg:es}=useActiveOrg();if(!es)return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-64"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-40 w-full"})]});const $=es.role==="owner";return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight",children:"Settings"}),jsxRuntimeExports.jsxs("p",{className:"text-muted-foreground text-sm",children:["Manage"," ",jsxRuntimeExports.jsx("strong",{className:"font-medium",children:es.name}),"'s name, slug, ownership, and lifecycle."]})]}),jsxRuntimeExports.jsx(GeneralSection,{orgName:es.name,orgSlug:es.slug}),$&&jsxRuntimeExports.jsx(TransferOwnershipSection,{orgSlug:es.slug}),$&&jsxRuntimeExports.jsx(DeleteOrgSection,{orgName:es.name,orgSlug:es.slug})]})}function Section({title:es,description:$,destructive:ts,children:is}){return jsxRuntimeExports.jsx(Card,{className:ts?"border-destructive/30":void 0,children:jsxRuntimeExports.jsx(CardContent,{className:"p-6",children:jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 gap-6 md:grid-cols-[200px_1fr]",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx("h3",{className:ts?"font-mono text-base font-semibold text-destructive":"font-mono text-base font-semibold",children:es}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:$})]}),jsxRuntimeExports.jsx("div",{className:"space-y-4",children:is})]})})})}function GeneralSection({orgName:es,orgSlug:$}){const ts=useQueryClient(),is=useNavigate(),[Kr,Qr]=reactExports.useState(es),[ja,Ca]=reactExports.useState($),[Aa,Oa]=reactExports.useState(null);reactExports.useEffect(()=>{Qr(es),Ca($),Oa(null)},[es,$]);const Ia=useMutation({mutationFn:Ma=>updateOrg($,Ma),onSuccess:Ma=>{ue$1.success("Organization updated"),ts.invalidateQueries({queryKey:["profile"]}),ts.invalidateQueries({queryKey:["orgs"]}),ts.invalidateQueries({queryKey:["org-detail",$]}),Ma.slug!==$&&is("/admin/settings",{replace:!0})},onError:Ma=>{if(Ma instanceof ApiError&&Ma.code==="ORG_SLUG_TAKEN"){Oa("That slug is already taken by another organization.");return}if(Ma instanceof ApiError&&Ma.code==="VALIDATION_ERROR"){Oa("Slug must be lowercase letters, numbers, and dashes (3–40 chars).");return}ue$1.error(Ma instanceof Error?Ma.message:"Failed to update organization")}});function Da(Ma){Ma.preventDefault(),Oa(null);const Fa=Kr.trim(),qa=ja.trim();if(!Fa){Oa("Name is required.");return}if(!SLUG_REGEX$1.test(qa)){Oa("Slug must be lowercase letters, numbers, and dashes (3–40 chars).");return}const Ha={};Fa!==es&&(Ha.name=Fa),qa!==$&&(Ha.slug=qa),!(!Ha.name&&!Ha.slug)&&Ia.mutate(Ha)}const Ba=Kr.trim()!==es||ja.trim()!==$;return jsxRuntimeExports.jsx(Section,{title:"General",description:"The display name and URL slug of this organization.",children:jsxRuntimeExports.jsxs("form",{onSubmit:Da,className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"org-name",children:"Name"}),jsxRuntimeExports.jsx(Input,{id:"org-name",value:Kr,onChange:Ma=>Qr(Ma.target.value),required:!0,disabled:Ia.isPending})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"org-slug",children:"Slug"}),jsxRuntimeExports.jsx(Input,{id:"org-slug",value:ja,onChange:Ma=>Ca(Ma.target.value),required:!0,disabled:Ia.isPending}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Lowercase letters, numbers, and dashes. Used in URLs and CLI commands. Changing the slug breaks any bookmarked links."})]}),Aa&&jsxRuntimeExports.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:Aa}),jsxRuntimeExports.jsx("div",{className:"flex justify-end",children:jsxRuntimeExports.jsx(Button,{type:"submit",disabled:Ia.isPending||!Ba,className:"cursor-pointer",children:Ia.isPending?"Saving…":"Save"})})]})})}function TransferOwnershipSection({orgSlug:es}){const $=useQueryClient(),ts=useNavigate(),is=useQuery({queryKey:["org-members",es],queryFn:()=>listMembers(es),enabled:!!es}),Kr=reactExports.useMemo(()=>(is.data??[]).filter(Da=>Da.role==="admin"),[is.data]),[Qr,ja]=reactExports.useState(null),[Ca,Aa]=reactExports.useState(!1),Oa=useMutation({mutationFn:Da=>transferOwnership(es,Da),onSuccess:()=>{ue$1.success("Ownership transferred. You're now an admin."),$.invalidateQueries({queryKey:["org-members",es]}),$.invalidateQueries({queryKey:["orgs"]}),$.invalidateQueries({queryKey:["profile"]}),Aa(!1),ts("/admin/members")},onError:Da=>{if(Da instanceof ApiError&&Da.code==="SAME_USER"){ue$1.error("You can't transfer ownership to yourself.");return}if(Da instanceof ApiError&&Da.code==="NOT_A_MEMBER"){ue$1.error("That user is no longer a member of this organization.");return}ue$1.error(Da instanceof Error?Da.message:"Failed to transfer ownership")}}),Ia=Kr.find(Da=>Da.userId===Qr);return jsxRuntimeExports.jsxs(Section,{title:"Transfer ownership",description:"Promote another admin to owner. You will become an admin afterward.",children:[is.isLoading?jsxRuntimeExports.jsx(Skeleton,{className:"h-10 w-full"}):Kr.length===0?jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-dashed border-border px-4 py-6 text-sm text-muted-foreground",children:["No other admins to transfer to. Promote a member to admin first on the"," ",jsxRuntimeExports.jsx("a",{href:"/admin/members",className:"underline",children:"Members"})," ","page."]}):jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"transfer-target",children:"New owner"}),jsxRuntimeExports.jsxs(Select,{value:Qr??"",onValueChange:Da=>ja(Da),disabled:Oa.isPending,children:[jsxRuntimeExports.jsx(SelectTrigger,{id:"transfer-target",className:"w-full",children:jsxRuntimeExports.jsx(SelectValue,{placeholder:"Select an admin…"})}),jsxRuntimeExports.jsx(SelectContent,{children:Kr.map(Da=>jsxRuntimeExports.jsx(SelectItem,{value:Da.userId,children:Da.email??Da.displayName??Da.userId},Da.userId))})]})]}),jsxRuntimeExports.jsx("div",{className:"flex justify-end",children:jsxRuntimeExports.jsxs(Button,{type:"button",variant:"outline",disabled:!Qr||Oa.isPending,onClick:()=>Aa(!0),className:"cursor-pointer",children:[jsxRuntimeExports.jsx(ArrowRightLeft,{className:"mr-2 h-4 w-4"}),"Transfer ownership"]})})]}),jsxRuntimeExports.jsx(Dialog,{open:Ca,onOpenChange:Aa,children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Transfer ownership?"}),jsxRuntimeExports.jsxs(DialogDescription,{children:[jsxRuntimeExports.jsx("strong",{children:(Ia==null?void 0:Ia.email)??(Ia==null?void 0:Ia.displayName)??"the selected user"})," ","will become the new owner of this organization. You'll keep admin access but lose the ability to delete the org or transfer ownership again."]})]}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>Aa(!1),disabled:Oa.isPending,className:"cursor-pointer",children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"button",onClick:()=>Qr&&Oa.mutate(Qr),disabled:!Qr||Oa.isPending,className:"cursor-pointer",children:Oa.isPending?"Transferring…":"Transfer"})]})]})})]})}function DeleteOrgSection({orgName:es,orgSlug:$}){const ts=useQueryClient(),is=useSetActiveOrg(),Kr=useNavigate(),[Qr,ja]=reactExports.useState(""),Ca=Qr===$,Aa=useMutation({mutationFn:()=>deleteOrg($),onSuccess:async()=>{ue$1.success(`Deleted ${es}`);try{await is.mutateAsync(null)}catch{}ts.clear(),Kr("/",{replace:!0})},onError:Oa=>{ue$1.error(Oa instanceof Error?Oa.message:"Failed to delete organization")}});return jsxRuntimeExports.jsxs(Section,{title:"Delete organization",description:"Permanently delete this organization, its teams, invitations, and member roles. Sessions are preserved (org_id is cleared).",destructive:!0,children:[jsxRuntimeExports.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/5 px-4 py-3",children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4 mt-0.5 text-destructive shrink-0"}),jsxRuntimeExports.jsx("div",{className:"text-sm text-destructive",children:"This action cannot be undone."})]})}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs(Label,{htmlFor:"delete-confirm",children:["Type ",jsxRuntimeExports.jsx("code",{className:"text-xs font-mono px-1 rounded bg-muted",children:$})," to confirm"]}),jsxRuntimeExports.jsx(Input,{id:"delete-confirm",value:Qr,onChange:Oa=>ja(Oa.target.value),autoComplete:"off",disabled:Aa.isPending})]}),jsxRuntimeExports.jsx("div",{className:"flex justify-end",children:jsxRuntimeExports.jsxs(Button,{type:"button",variant:"destructive",disabled:!Ca||Aa.isPending,onClick:()=>Aa.mutate(),className:"cursor-pointer",children:[jsxRuntimeExports.jsx(Trash2,{className:"mr-2 h-4 w-4"}),Aa.isPending?"Deleting…":"Delete organization"]})})]})}function useActiveLimits(){return useQuery({queryKey:["research","active-limits"],queryFn:()=>apiGet("/api/research/active-limits")})}function useObservations(es={}){const $=new URLSearchParams;es.provider&&$.set("provider",es.provider),es.plan&&$.set("plan",es.plan),es.limitType&&$.set("limit_type",es.limitType),es.limit!=null&&$.set("limit",String(es.limit)),es.offset!=null&&$.set("offset",String(es.offset));const ts=$.toString();return useQuery({queryKey:["research","observations",es],queryFn:()=>apiGet(`/api/research/observations${ts?`?${ts}`:""}`)})}function useDocChanges(es){return useQuery({queryKey:["research","doc-changes","default"],queryFn:()=>apiGet("/api/research/doc-changes")})}function useDisagreements(es=14){return useQuery({queryKey:["research","disagreements",es],queryFn:()=>apiGet(`/api/research/disagreements?since_days=${es}`)})}function useConfidenceHistory(es,$,ts,is=90){return useQuery({queryKey:["research","confidence-history",es,$,ts,is],queryFn:()=>{const Qr=new URLSearchParams({provider:es,plan:$,limit_type:ts,days:String(is)});return apiGet(`/api/research/confidence-history?${Qr}`)},enabled:!!es&&!!$&&!!ts})}function ConfidenceBar({value:es}){const $=Math.max(0,Math.min(1,es))*100,ts=es>=.9?"high":es>=.6?"mid":"low",is=ts==="high"?"bg-teal-500":ts==="mid"?"bg-amber-500":"bg-rose-500";return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"h-1.5 w-16 rounded-full bg-muted overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:`h-full ${is}`,style:{width:`${$}%`}})}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-xs tabular-nums text-muted-foreground",children:[$.toFixed(0),"%"]})]})}function ConfidenceTrendSparkline({provider:es,plan:$,limitType:ts,width:is=80,height:Kr=20}){const{data:Qr,isLoading:ja}=useConfidenceHistory(es,$,ts);if(ja)return jsxRuntimeExports.jsx("div",{className:"h-5 w-20 animate-pulse rounded bg-muted"});const Ca=(Qr==null?void 0:Qr.items)??[];if(Ca.length===0)return jsxRuntimeExports.jsx("span",{className:"text-xs text-muted-foreground",children:"—"});if(Ca.length===1)return jsxRuntimeExports.jsxs("span",{className:"font-mono text-xs tabular-nums text-muted-foreground",children:[(Ca[0].confidence*100).toFixed(0),"%"]});const Aa=Ca.map((Ma,Fa)=>Fa/(Ca.length-1)*is),Oa=Ca.map(Ma=>Kr-Ma.confidence*Kr),Ia=Aa.map((Ma,Fa)=>`${Fa===0?"M":"L"}${Ma.toFixed(1)},${Oa[Fa].toFixed(1)}`).join(" "),Da=Ca[Ca.length-1].confidence,Ba=Da>=.9?"stroke-teal-500":Da>=.6?"stroke-amber-500":"stroke-rose-500";return jsxRuntimeExports.jsx("svg",{width:is,height:Kr,viewBox:`0 0 ${is} ${Kr}`,className:"overflow-visible",role:"img","aria-label":`Confidence trend (${Ca.length} points)`,children:jsxRuntimeExports.jsx("path",{d:Ia,fill:"none",className:Ba,strokeWidth:1.5,strokeLinejoin:"round"})})}function ActiveLimitsTable(){const{data:es,isLoading:$,error:ts}=useActiveLimits();if($)return jsxRuntimeExports.jsx(Skeleton,{className:"h-40 w-full"});if(ts)return jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",children:"Failed to load active limits."});const is=((es==null?void 0:es.items)??[]).slice().sort((Kr,Qr)=>Kr.provider!==Qr.provider?Kr.provider.localeCompare(Qr.provider):Kr.plan!==Qr.plan?Kr.plan.localeCompare(Qr.plan):Kr.limitType.localeCompare(Qr.limitType));return is.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No active limits recorded yet."}):jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableHead,{children:"Provider"}),jsxRuntimeExports.jsx(TableHead,{children:"Plan"}),jsxRuntimeExports.jsx(TableHead,{children:"Limit type"}),jsxRuntimeExports.jsx(TableHead,{className:"text-right",children:"Value"}),jsxRuntimeExports.jsx(TableHead,{children:"Unit"}),jsxRuntimeExports.jsx(TableHead,{children:"Confidence"}),jsxRuntimeExports.jsx(TableHead,{children:"Trend (90d)"}),jsxRuntimeExports.jsx(TableHead,{children:"Effective from"})]})}),jsxRuntimeExports.jsx(TableBody,{children:is.map(Kr=>jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-xs",children:Kr.provider}),jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-xs",children:Kr.plan}),jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-xs",children:Kr.limitType}),jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-right tabular-nums",children:Number(Kr.value).toLocaleString()}),jsxRuntimeExports.jsx(TableCell,{className:"text-xs text-muted-foreground",children:Kr.unit}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(ConfidenceBar,{value:Number(Kr.confidence)})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(ConfidenceTrendSparkline,{provider:Kr.provider,plan:Kr.plan,limitType:Kr.limitType})}),jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-xs text-muted-foreground",children:new Date(Kr.effectiveFrom).toLocaleString()})]},`${Kr.provider}-${Kr.plan}-${Kr.limitType}-${Kr.effectiveFrom}`))})]})}function RecentDocChanges(){const{data:es,isLoading:$,error:ts}=useDocChanges(),[is,Kr]=reactExports.useState(null);if($)return jsxRuntimeExports.jsx(Skeleton,{className:"h-32 w-full"});if(ts)return jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",children:"Failed to load doc snapshots."});const ja=((es==null?void 0:es.items)??[]).slice().sort((Ca,Aa)=>Ca.changed!==Aa.changed?Ca.changed?-1:1:new Date(Aa.latestFetchedAt).getTime()-new Date(Ca.latestFetchedAt).getTime());return ja.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No doc snapshots in window."}):jsxRuntimeExports.jsx("ul",{className:"divide-y divide-border rounded-md border border-border",children:ja.map(Ca=>{const Aa=`${Ca.provider}::${Ca.docUrl}`,Oa=is===Aa;return jsxRuntimeExports.jsxs("li",{className:"px-3 py-2",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>Kr(Oa?null:Aa),className:"flex w-full items-center justify-between gap-3 text-left cursor-pointer",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"font-mono text-xs",children:Ca.provider}),Ca.changed?jsxRuntimeExports.jsx(Badge,{variant:"default",className:"text-[10px]",children:"changed"}):jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-[10px]",children:"stable"}),!Ca.parseSuccess&&jsxRuntimeExports.jsx(Badge,{variant:"destructive",className:"text-[10px]",children:"parse-fail"})]}),jsxRuntimeExports.jsx("div",{className:"truncate font-mono text-xs text-muted-foreground",children:Ca.docUrl})]}),jsxRuntimeExports.jsx("div",{className:"flex-shrink-0 font-mono text-xs text-muted-foreground tabular-nums",children:new Date(Ca.latestFetchedAt).toLocaleString()})]}),Oa&&jsxRuntimeExports.jsx(DocSnapshotDetail,{group:Ca})]},Aa)})})}function DocSnapshotDetail({group:es}){return jsxRuntimeExports.jsx("div",{className:"mt-2 ml-2 border-l-2 border-border pl-3 space-y-1",children:es.snapshots.slice(0,5).map($=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 font-mono text-xs",children:[jsxRuntimeExports.jsx("span",{className:"text-muted-foreground tabular-nums",children:new Date($.fetchedAt).toLocaleString()}),jsxRuntimeExports.jsx("span",{className:"truncate text-muted-foreground",children:$.contentHash.slice(0,12)}),!$.parseSuccess&&jsxRuntimeExports.jsx(Badge,{variant:"destructive",className:"text-[10px]",children:"parse-fail"})]},$.id))})}function SourceBadge({sourceType:es}){const $=LABELS[es]??es,ts=VARIANTS[es]??"outline";return jsxRuntimeExports.jsx(Badge,{variant:ts,className:"font-mono text-[10px] uppercase tracking-wide",children:$})}const LABELS={oauth_usage:"live",self_observed_429:"429",official_docs:"docs",self_observed_lower_bound:"lower",community:"community",llm_research:"llm"},VARIANTS={oauth_usage:"default",self_observed_429:"destructive",official_docs:"secondary",self_observed_lower_bound:"outline",community:"outline",llm_research:"outline"},PAGE_SIZE=50,ANY="__any";function ObservationsList(){const[es,$]=reactExports.useState(""),[ts,is]=reactExports.useState(""),[Kr,Qr]=reactExports.useState(""),[ja,Ca]=reactExports.useState(0),Aa=useActiveLimits(),Oa=reactExports.useMemo(()=>{var Qa;const qa=new Set,Ha=new Set,Ka=new Set;for(const Va of((Qa=Aa.data)==null?void 0:Qa.items)??[])qa.add(Va.provider),Ha.add(Va.plan),Ka.add(Va.limitType);return{providers:Array.from(qa).sort(),plans:Array.from(Ha).sort(),limitTypes:Array.from(Ka).sort()}},[Aa.data]),{data:Ia,isLoading:Da,error:Ba}=useObservations({provider:es||void 0,plan:ts||void 0,limitType:Kr||void 0,limit:PAGE_SIZE,offset:ja}),Ma=(Ia==null?void 0:Ia.total)??0,Fa=(Ia==null?void 0:Ia.items)??[];return jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[jsxRuntimeExports.jsx(FilterSelect,{label:"Provider",value:es,options:Oa.providers,onChange:qa=>{$(qa),Ca(0)}}),jsxRuntimeExports.jsx(FilterSelect,{label:"Plan",value:ts,options:Oa.plans,onChange:qa=>{is(qa),Ca(0)}}),jsxRuntimeExports.jsx(FilterSelect,{label:"Limit type",value:Kr,options:Oa.limitTypes,onChange:qa=>{Qr(qa),Ca(0)}}),jsxRuntimeExports.jsx("div",{className:"ml-auto font-mono text-xs text-muted-foreground tabular-nums",children:Ma>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[ja+1,"–",Math.min(ja+PAGE_SIZE,Ma)," of ",Ma]})})]}),Da?jsxRuntimeExports.jsx(Skeleton,{className:"h-48 w-full"}):Ba?jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",children:"Failed to load observations."}):Fa.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No observations match these filters."}):jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableHead,{children:"Observed at"}),jsxRuntimeExports.jsx(TableHead,{children:"Provider"}),jsxRuntimeExports.jsx(TableHead,{children:"Plan"}),jsxRuntimeExports.jsx(TableHead,{children:"Limit type"}),jsxRuntimeExports.jsx(TableHead,{className:"text-right",children:"Value"}),jsxRuntimeExports.jsx(TableHead,{children:"Unit"}),jsxRuntimeExports.jsx(TableHead,{children:"Source"}),jsxRuntimeExports.jsx(TableHead,{children:"Confidence"})]})}),jsxRuntimeExports.jsx(TableBody,{children:Fa.map(qa=>jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-xs text-muted-foreground tabular-nums",children:new Date(qa.observedAt).toLocaleString()}),jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-xs",children:qa.provider}),jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-xs",children:qa.plan}),jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-xs",children:qa.limitType}),jsxRuntimeExports.jsx(TableCell,{className:"font-mono text-right tabular-nums",children:Number(qa.value).toLocaleString()}),jsxRuntimeExports.jsx(TableCell,{className:"text-xs text-muted-foreground",children:qa.unit}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(SourceBadge,{sourceType:qa.sourceType})}),jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsx(ConfidenceBar,{value:Number(qa.confidence)})})]},qa.id))})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-end gap-2",children:[jsxRuntimeExports.jsx(Button,{variant:"outline",size:"sm",disabled:ja===0,onClick:()=>Ca(Math.max(0,ja-PAGE_SIZE)),children:"Previous"}),jsxRuntimeExports.jsx(Button,{variant:"outline",size:"sm",disabled:ja+PAGE_SIZE>=Ma,onClick:()=>Ca(ja+PAGE_SIZE),children:"Next"})]})]})}function FilterSelect({label:es,value:$,options:ts,onChange:is}){return jsxRuntimeExports.jsxs(Select,{value:$||ANY,onValueChange:Kr=>is(Kr===ANY?"":Kr),children:[jsxRuntimeExports.jsx(SelectTrigger,{className:"h-8 w-[180px] text-xs",children:jsxRuntimeExports.jsx(SelectValue,{placeholder:es})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsxs(SelectItem,{value:ANY,children:["All ",es.toLowerCase(),"s"]}),ts.map(Kr=>jsxRuntimeExports.jsx(SelectItem,{value:Kr,className:"font-mono text-xs",children:Kr},Kr))]})]})}function DisagreementView(){const{data:es,isLoading:$,error:ts}=useDisagreements();if($)return jsxRuntimeExports.jsx(Skeleton,{className:"h-40 w-full"});if(ts)return jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",children:"Failed to load disagreements."});const is=(es==null?void 0:es.items)??[];return is.length===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"No disagreements (>20% spread) detected in the last 14 days."}):jsxRuntimeExports.jsx("div",{className:"space-y-3",children:is.map(Kr=>jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{className:"pb-2",children:jsxRuntimeExports.jsxs(CardTitle,{className:"flex items-center justify-between gap-2 text-sm",children:[jsxRuntimeExports.jsxs("span",{className:"font-mono",children:[Kr.provider," / ",Kr.plan," / ",Kr.limitType]}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-xs text-destructive tabular-nums",children:["Δ ",Kr.spreadPct.toFixed(1),"% (",Kr.minValue.toLocaleString()," →"," ",Kr.maxValue.toLocaleString(),")"]})]})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx("ul",{className:"divide-y divide-border",children:Kr.observations.map(Qr=>jsxRuntimeExports.jsxs("li",{className:"flex items-center gap-3 py-1.5 font-mono text-xs",children:[jsxRuntimeExports.jsx("span",{className:"w-40 text-muted-foreground tabular-nums",children:new Date(Qr.observedAt).toLocaleString()}),jsxRuntimeExports.jsx("span",{className:"w-24 text-right tabular-nums",children:Qr.value.toLocaleString()}),jsxRuntimeExports.jsx("span",{className:"w-16 text-muted-foreground",children:Qr.unit}),jsxRuntimeExports.jsx(SourceBadge,{sourceType:Qr.sourceType}),jsxRuntimeExports.jsx("div",{className:"ml-auto",children:jsxRuntimeExports.jsx(ConfidenceBar,{value:Qr.confidence})})]},Qr.id))})})]},`${Kr.provider}-${Kr.plan}-${Kr.limitType}`))})}function AdminResearchPage(){const[es,$]=useTabParam(["active","docs","observations","disagreements"],"active");return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground text-sm",children:[jsxRuntimeExports.jsx(Database,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{children:"Usage research"})]}),jsxRuntimeExports.jsx("h2",{className:"text-2xl font-mono font-bold tracking-tight mt-1",children:"Provider limits intelligence"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Fused view of provider rate-limits sourced from OAuth headers, 429 responses, official docs, and community signals."})]}),jsxRuntimeExports.jsxs(Tabs,{value:es,onValueChange:$,className:"space-y-4",children:[jsxRuntimeExports.jsxs(TabsList,{children:[jsxRuntimeExports.jsx(TabsTrigger,{value:"active",children:"Active limits"}),jsxRuntimeExports.jsx(TabsTrigger,{value:"docs",children:"Doc changes"}),jsxRuntimeExports.jsx(TabsTrigger,{value:"observations",children:"Observations"}),jsxRuntimeExports.jsx(TabsTrigger,{value:"disagreements",children:"Disagreements"})]}),jsxRuntimeExports.jsx(TabsContent,{value:"active",children:jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm",children:"Active fused limits"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(ActiveLimitsTable,{})})]})}),jsxRuntimeExports.jsx(TabsContent,{value:"docs",children:jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm",children:"Recent doc snapshots (7d)"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(RecentDocChanges,{})})]})}),jsxRuntimeExports.jsx(TabsContent,{value:"observations",children:jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm",children:"Raw observations"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(ObservationsList,{})})]})}),jsxRuntimeExports.jsx(TabsContent,{value:"disagreements",children:jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsx(CardTitle,{className:"text-sm",children:"Source disagreements (14d, >20% spread)"})}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(DisagreementView,{})})]})})]})]})}function statusBadgeVariant(es){switch(es){case"draft":return{className:"bg-muted text-muted-foreground",label:"draft"};case"queued":return{className:"bg-blue-500/15 text-blue-700 dark:text-blue-300",label:"queued"};case"sending":return{className:"bg-blue-500/15 text-blue-700 dark:text-blue-300 animate-pulse",label:"sending"};case"sent":return{className:"bg-teal-500/15 text-teal-700 dark:text-teal-300",label:"sent"};case"failed":return{className:"bg-destructive/15 text-destructive",label:"failed"}}}function StatusBadge({status:es}){const{className:$,label:ts}=statusBadgeVariant(es);return jsxRuntimeExports.jsx(Badge,{variant:"outline",className:cn$1("font-mono text-xs",$),children:ts})}function AdminAnnouncementsPage(){var Qr;const{profile:es,isLoading:$}=useActiveOrg(),[ts,is]=reactExports.useState(null),Kr=useQuery({queryKey:["admin","announcements"],queryFn:()=>apiGet("/api/announcements"),refetchInterval:POLL.BACKGROUND,enabled:!!(es!=null&&es.isSuperadmin)});return reactExports.useEffect(()=>{var ja;!ts&&((ja=Kr.data)!=null&&ja.announcements.length)&&is(Kr.data.announcements[0].id)},[Kr.data,ts]),$?jsxRuntimeExports.jsx("div",{className:"p-6",children:jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-64"})}):es!=null&&es.isSuperadmin?jsxRuntimeExports.jsxs("div",{className:"flex h-[calc(100vh-4rem)] flex-col",children:[jsxRuntimeExports.jsxs("header",{className:"border-b border-border p-6",children:[jsxRuntimeExports.jsx("h1",{className:"text-2xl font-semibold",children:"Announcements"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Superadmin · CHANGELOG-driven product announcement emails. Drafts are editable; sent ones are immutable."})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden md:flex-row",children:[jsxRuntimeExports.jsx("aside",{className:"max-h-64 w-full shrink-0 overflow-y-auto border-b border-border md:max-h-none md:w-80 md:border-b-0 md:border-r",children:Kr.isLoading?jsxRuntimeExports.jsxs("div",{className:"space-y-2 p-4",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-16"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-16"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-16"})]}):Kr.error?jsxRuntimeExports.jsxs("p",{className:"p-4 text-sm text-destructive",children:["Failed to load: ",Kr.error.message]}):(((Qr=Kr.data)==null?void 0:Qr.announcements.length)??0)===0?jsxRuntimeExports.jsx("div",{className:"p-6 text-center",children:jsxRuntimeExports.jsxs("p",{className:"text-sm text-muted-foreground",children:["No announcements yet. Add an entry to"," ",jsxRuntimeExports.jsx("code",{className:"font-mono",children:"CHANGELOG.md"}),", then run"," ",jsxRuntimeExports.jsx("code",{className:"font-mono",children:"rulemetric crons run cron_check_changelog"})," ","if this release merits an announcement draft."]})}):jsxRuntimeExports.jsx("ul",{className:"divide-y divide-border",children:Kr.data.announcements.map(ja=>{const Ca=ja.id===ts;return jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>is(ja.id),className:cn$1("flex w-full flex-col gap-1 px-4 py-3 text-left transition-colors","hover:bg-muted/50",Ca&&"bg-secondary"),children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2",children:[jsxRuntimeExports.jsxs("span",{className:"font-mono text-sm font-medium",children:["v",ja.version]}),jsxRuntimeExports.jsx(StatusBadge,{status:ja.status})]}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-muted-foreground",children:[ja.releaseDate,ja.status==="sent"&&ja.recipientCount!==null&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[" · ",ja.recipientCount," recipients"]})]}),jsxRuntimeExports.jsx("div",{className:"line-clamp-2 text-sm",children:ja.subject})]})},ja.id)})})}),jsxRuntimeExports.jsx("main",{className:"flex-1 overflow-y-auto",children:ts?jsxRuntimeExports.jsx(AnnouncementDetailPane,{id:ts}):jsxRuntimeExports.jsx("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:"Select an announcement to view details."})})]})]}):jsxRuntimeExports.jsx(Navigate,{to:"/admin",replace:!0})}function AnnouncementDetailPane({id:es}){var cl,dl;const $=useQueryClient(),ts=useQuery({queryKey:["admin","announcement",es],queryFn:()=>apiGet(`/api/announcements/${es}`),refetchInterval:fl=>{var ol;const nl=(ol=fl.state.data)==null?void 0:ol.status;return nl==="queued"||nl==="sending"?3e3:!1}}),is=useQuery({queryKey:["admin","announcement",es,"recipient-count"],queryFn:()=>apiGet(`/api/announcements/${es}/recipients/count`)}),[Kr,Qr]=reactExports.useState(!1),[ja,Ca]=reactExports.useState(""),[Aa,Oa]=reactExports.useState(!1),[Ia,Da]=reactExports.useState(""),[Ba,Ma]=reactExports.useState("");reactExports.useEffect(()=>{Qr(!1),Oa(!1)},[es]);const Fa=ts.data,qa=(Fa==null?void 0:Fa.status)==="draft",Ha=()=>{$.invalidateQueries({queryKey:["admin","announcements"]}),$.invalidateQueries({queryKey:["admin","announcement",es]})},Ka=useMutation({mutationFn:fl=>apiPatch(`/api/announcements/${es}`,fl),onSuccess:()=>{ue$1.success("Saved"),Qr(!1),Oa(!1),Ha()},onError:fl=>{const nl=fl instanceof ApiError?fl.message:String(fl);ue$1.error(`Save failed: ${nl}`)}}),[Qa,Va]=reactExports.useState(!1),Ya=useMutation({mutationFn:()=>apiPost(`/api/announcements/${es}/send`,{}),onSuccess:fl=>{ue$1.success(fl.resumed?"Resuming send…":"Sending…"),Va(!1),Ha()},onError:fl=>{const nl=fl instanceof ApiError?fl.message:String(fl);ue$1.error(`Send failed: ${nl}`)}}),Wa=reactExports.useMemo(()=>!(Fa!=null&&Fa.sections)||typeof Fa.sections!="object"?[]:Object.entries(Fa.sections).map(([nl,ol])=>({key:nl,items:Array.isArray(ol)?ol.map(String):[String(ol)]})),[Fa==null?void 0:Fa.sections]);if(ts.isLoading)return jsxRuntimeExports.jsxs("div",{className:"space-y-4 p-6",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-2/3"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-64 w-full"})]});if(ts.error||!Fa)return jsxRuntimeExports.jsxs("p",{className:"p-6 text-sm text-destructive",children:["Failed to load announcement:"," ",((cl=ts.error)==null?void 0:cl.message)??"not found"]});const el=((dl=is.data)==null?void 0:dl.count)??null,tl=!qa||el===0||Ya.isPending,rl=qa?el===0?"No opted-in recipients":"":`Already ${Fa.status} — cannot resend`;return jsxRuntimeExports.jsxs("div",{className:"space-y-6 p-6",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx(StatusBadge,{status:Fa.status}),jsxRuntimeExports.jsxs("span",{className:"font-mono text-sm text-muted-foreground",children:["v",Fa.version]}),jsxRuntimeExports.jsx("span",{className:"text-sm text-muted-foreground",children:Fa.releaseDate}),Fa.sentAt&&jsxRuntimeExports.jsxs("span",{className:"text-sm text-muted-foreground",children:["· Sent ",new Date(Fa.sentAt).toLocaleString()]}),Fa.recipientCount!==null&&Fa.status==="sent"&&jsxRuntimeExports.jsxs("span",{className:"text-sm text-muted-foreground",children:["· ",Fa.recipientCount," recipients"]})]}),Fa.deliveryCounts&&Object.keys(Fa.deliveryCounts).length>0&&jsxRuntimeExports.jsx("div",{className:"flex flex-wrap items-center gap-2",children:["sent","failed","skipped","pending"].filter(fl=>{var nl;return(((nl=Fa.deliveryCounts)==null?void 0:nl[fl])??0)>0}).map(fl=>{var nl;return jsxRuntimeExports.jsxs(Badge,{variant:fl==="failed"?"destructive":"outline",className:"font-mono text-xs",children:[(nl=Fa.deliveryCounts)==null?void 0:nl[fl]," ",fl]},fl)})}),Kr?jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(Input,{value:ja,onChange:fl=>Ca(fl.target.value),autoFocus:!0,className:"text-lg"}),jsxRuntimeExports.jsx(Button,{size:"sm",disabled:!ja.trim()||Ka.isPending,onClick:()=>Ka.mutate({subject:ja.trim()}),children:Ka.isPending?"Saving…":"Save"}),jsxRuntimeExports.jsx(Button,{size:"sm",variant:"outline",onClick:()=>Qr(!1),children:"Cancel"})]}):jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2",children:[jsxRuntimeExports.jsx("h2",{className:"text-xl font-semibold",children:Fa.subject}),qa&&jsxRuntimeExports.jsx(Button,{size:"icon",variant:"ghost",onClick:()=>{Ca(Fa.subject),Qr(!0)},"aria-label":"Edit subject",children:jsxRuntimeExports.jsx(Pencil,{className:"h-4 w-4"})})]})]}),Fa.error&&jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-3 text-sm",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 font-medium text-destructive",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4"})," Last error"]}),jsxRuntimeExports.jsx("pre",{className:"mt-2 whitespace-pre-wrap font-mono text-xs",children:Fa.error})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 rounded-md border border-border bg-muted/30 p-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:"Recipients (opted in)"}),jsxRuntimeExports.jsx("div",{className:"font-mono text-3xl font-semibold",children:is.isLoading?"…":el??"?"}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:["Live count from ",jsxRuntimeExports.jsx("code",{children:"notification_preferences"})," — server-side aggregation, not a client filter."]})]}),jsxRuntimeExports.jsx(TooltipProvider,{children:jsxRuntimeExports.jsxs(Tooltip,{children:[jsxRuntimeExports.jsx(TooltipTrigger,{asChild:!0,children:jsxRuntimeExports.jsx("span",{tabIndex:tl?0:-1,children:jsxRuntimeExports.jsxs(Button,{size:"lg",disabled:tl,onClick:()=>Va(!0),children:[jsxRuntimeExports.jsx(Send,{className:"mr-2 h-4 w-4"}),"Send announcement"]})})}),rl&&jsxRuntimeExports.jsx(TooltipContent,{children:rl})]})})]}),jsxRuntimeExports.jsxs("section",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("h3",{className:"text-sm font-medium",children:"HTML preview"}),qa&&jsxRuntimeExports.jsx(Button,{size:"sm",variant:"outline",onClick:()=>{Aa||(Da(Fa.htmlBody),Ma(Fa.textBody)),Oa(fl=>!fl)},children:Aa?"Close editor":"Edit body"})]}),jsxRuntimeExports.jsx("iframe",{sandbox:"allow-same-origin",srcDoc:Fa.htmlBody,title:"Announcement HTML preview",className:"h-[480px] w-full rounded-md border border-border bg-white"})]}),Aa&&jsxRuntimeExports.jsxs("section",{className:"space-y-4 rounded-md border border-border p-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx("label",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"html_body"}),jsxRuntimeExports.jsx(Textarea,{value:Ia,onChange:fl=>Da(fl.target.value),rows:12,className:"font-mono text-xs"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx("label",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"text_body"}),jsxRuntimeExports.jsx(Textarea,{value:Ba,onChange:fl=>Ma(fl.target.value),rows:8,className:"font-mono text-xs"})]}),jsxRuntimeExports.jsxs("div",{className:"flex justify-end gap-2",children:[jsxRuntimeExports.jsx(Button,{variant:"outline",size:"sm",onClick:()=>Oa(!1),children:"Cancel"}),jsxRuntimeExports.jsx(Button,{size:"sm",disabled:Ka.isPending||Ia===Fa.htmlBody&&Ba===Fa.textBody,onClick:()=>Ka.mutate({htmlBody:Ia,textBody:Ba}),children:Ka.isPending?"Saving…":"Save body"})]})]}),jsxRuntimeExports.jsx(CollapsibleSection,{title:"Plain-text body",children:jsxRuntimeExports.jsx("pre",{className:"max-h-96 overflow-auto whitespace-pre-wrap rounded-md border border-border bg-muted/30 p-3 font-mono text-xs",children:Fa.textBody})}),Wa.length>0&&jsxRuntimeExports.jsx(CollapsibleSection,{title:"Parsed sections",children:jsxRuntimeExports.jsx("div",{className:"space-y-3",children:Wa.map(({key:fl,items:nl})=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:fl}),jsxRuntimeExports.jsx("ul",{className:"ml-4 list-disc text-sm",children:nl.map((ol,pl)=>jsxRuntimeExports.jsx("li",{children:ol},pl))})]},fl))})}),jsxRuntimeExports.jsx(Dialog,{open:Qa,onOpenChange:Va,children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Send announcement?"}),jsxRuntimeExports.jsxs(DialogDescription,{children:["Send ",jsxRuntimeExports.jsxs("span",{className:"font-semibold",children:['"',Fa.subject,'"']})," to"," ",jsxRuntimeExports.jsx("span",{className:"font-mono font-semibold",children:el??"?"})," ","recipients?"]})]}),jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-3 text-sm",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 font-medium text-destructive",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-4 w-4"}),"This cannot be undone."]}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-xs",children:"Recipients will receive an email within ~1 minute."})]}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{variant:"outline",onClick:()=>Va(!1),disabled:Ya.isPending,children:"Cancel"}),jsxRuntimeExports.jsx(Button,{onClick:()=>Ya.mutate(),disabled:Ya.isPending,children:Ya.isPending?"Queuing…":"Send now"})]})]})})]})}function CollapsibleSection({title:es,children:$}){const[ts,is]=reactExports.useState(!1);return jsxRuntimeExports.jsxs("section",{className:"rounded-md border border-border",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>is(Kr=>!Kr),className:"flex w-full items-center justify-between px-4 py-2 text-left text-sm font-medium hover:bg-muted/30",children:[jsxRuntimeExports.jsx("span",{children:es}),jsxRuntimeExports.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:ts?"−":"+"})]}),ts&&jsxRuntimeExports.jsx("div",{className:"border-t border-border p-4",children:$})]})}function listUsers(es={}){const $=new URLSearchParams;es.search&&$.set("search",es.search),es.limit!==void 0&&$.set("limit",String(es.limit)),es.offset!==void 0&&$.set("offset",String(es.offset));const ts=$.toString();return apiGet(`/api/superadmin/users${ts?`?${ts}`:""}`)}function getUserDetail(es){return apiGet(`/api/superadmin/users/${es}`)}function listAllOrgs(){return apiGet("/api/superadmin/orgs")}function assignUserToOrg(es,$){return apiPost(`/api/superadmin/users/${es}/assign`,$)}function removeUserFromOrg(es,$){return apiDelete(`/api/superadmin/users/${es}/orgs/${$}`)}function forceLogoutUser(es){return apiPost(`/api/superadmin/users/${es}/force-logout`,{})}function resetUserPassword(es){return apiPost(`/api/superadmin/users/${es}/reset-password`,{})}function setUserSuspended(es,$){return apiPatch(`/api/superadmin/users/${es}/suspend`,{suspended:$})}function deleteUser(es,$){return api(`/api/superadmin/users/${es}`,{method:"DELETE",body:{confirmEmail:$}})}function inviteUser(es){return apiPost("/api/superadmin/users/invite",es)}function SuperadminUsersPage(){var Ia,Da,Ba,Ma;const[es,$]=reactExports.useState(""),[ts,is]=reactExports.useState(""),[Kr,Qr]=reactExports.useState(null),[ja,Ca]=reactExports.useState(!1),Aa=Fa=>{$(Fa);const qa=window.setTimeout(()=>is(Fa),300);return()=>window.clearTimeout(qa)},Oa=useQuery({queryKey:["superadmin","users",ts],queryFn:()=>listUsers({search:ts||void 0,limit:100})});return jsxRuntimeExports.jsxs("div",{className:"space-y-4 p-6",children:[jsxRuntimeExports.jsxs("header",{className:"flex items-start justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h1",{className:"text-2xl font-semibold",children:"Superadmin · Users"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Platform-level user directory. Click Manage to assign org membership, reset passwords, suspend, or delete."})]}),jsxRuntimeExports.jsx(Button,{onClick:()=>Ca(!0),children:"Invite user"})]}),jsxRuntimeExports.jsxs("div",{className:"relative max-w-md",children:[jsxRuntimeExports.jsx(Search,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),jsxRuntimeExports.jsx(Input,{value:es,onChange:Fa=>Aa(Fa.target.value),placeholder:"Search by email…",className:"pl-9"})]}),Oa.isLoading?jsxRuntimeExports.jsx(Skeleton,{className:"h-64 w-full"}):Oa.error?jsxRuntimeExports.jsxs("p",{className:"text-sm text-destructive",children:["Failed to load: ",Oa.error.message]}):jsxRuntimeExports.jsxs("div",{className:"rounded-md border",children:[jsxRuntimeExports.jsxs(Table,{children:[jsxRuntimeExports.jsx(TableHeader,{children:jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableHead,{children:"Email"}),jsxRuntimeExports.jsx(TableHead,{className:"w-24 text-right",children:"Orgs"}),jsxRuntimeExports.jsx(TableHead,{className:"w-32 text-right",children:"Sessions"}),jsxRuntimeExports.jsx(TableHead,{className:"w-32 text-right",children:"Orphan org_id"}),jsxRuntimeExports.jsx(TableHead,{className:"w-28",children:"Created"}),jsxRuntimeExports.jsx(TableHead,{className:"w-28 text-right",children:"Actions"})]})}),jsxRuntimeExports.jsxs(TableBody,{children:[(Ia=Oa.data)==null?void 0:Ia.users.map(Fa=>jsxRuntimeExports.jsx(UserRow,{user:Fa,onManage:()=>Qr(Fa.id)},Fa.id)),((Da=Oa.data)==null?void 0:Da.users.length)===0&&jsxRuntimeExports.jsx(TableRow,{children:jsxRuntimeExports.jsx(TableCell,{colSpan:6,className:"text-center text-muted-foreground py-8",children:"No users."})})]})]}),jsxRuntimeExports.jsxs("div",{className:"border-t p-2 text-xs text-muted-foreground text-right",children:["Showing ",(Ba=Oa.data)==null?void 0:Ba.users.length," of ",(Ma=Oa.data)==null?void 0:Ma.total," total"]})]}),Kr&&jsxRuntimeExports.jsx(ManageUserSheet,{userId:Kr,onClose:()=>Qr(null)}),jsxRuntimeExports.jsx(InviteUserDialog,{open:ja,onOpenChange:Ca})]})}function InviteUserDialog({open:es,onOpenChange:$}){var Da;const ts=useQueryClient(),[is,Kr]=reactExports.useState(""),[Qr,ja]=reactExports.useState(""),[Ca,Aa]=reactExports.useState("member"),Oa=useQuery({queryKey:["superadmin","all-orgs"],queryFn:listAllOrgs,enabled:es}),Ia=useMutation({mutationFn:()=>inviteUser({email:is,orgId:Qr||void 0,role:Qr?Ca:void 0}),onSuccess:Ba=>{ue$1.success(`Invite sent to ${Ba.email}`+(Ba.assigned?` · pre-assigned as ${Ba.assigned.role}`:"")),ts.invalidateQueries({queryKey:["superadmin","users"]}),Kr(""),ja(""),Aa("member"),$(!1)},onError:Ba=>{const Ma=Ba instanceof ApiError?Ba.message:String(Ba);ue$1.error(`Invite failed: ${Ma}`)}});return jsxRuntimeExports.jsx(Dialog,{open:es,onOpenChange:$,children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Invite user"}),jsxRuntimeExports.jsx(DialogDescription,{children:"Sends a Supabase invite email. Optionally pre-assign them to an org."})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-3 py-2",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"invite-email",children:"Email"}),jsxRuntimeExports.jsx(Input,{id:"invite-email",type:"email",value:is,onChange:Ba=>Kr(Ba.target.value),placeholder:"user@example.com"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx(Label,{children:"Pre-assign to org (optional)"}),jsxRuntimeExports.jsxs(Select,{value:Qr,onValueChange:ja,children:[jsxRuntimeExports.jsx(SelectTrigger,{children:jsxRuntimeExports.jsx(SelectValue,{placeholder:"None — invite only"})}),jsxRuntimeExports.jsx(SelectContent,{children:(((Da=Oa.data)==null?void 0:Da.orgs)??[]).map(Ba=>jsxRuntimeExports.jsx(SelectItem,{value:Ba.id,children:Ba.name},Ba.id))})]})]}),Qr&&jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx(Label,{children:"Role"}),jsxRuntimeExports.jsxs(Select,{value:Ca,onValueChange:Ba=>Aa(Ba),children:[jsxRuntimeExports.jsx(SelectTrigger,{children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:"owner",children:"owner"}),jsxRuntimeExports.jsx(SelectItem,{value:"admin",children:"admin"}),jsxRuntimeExports.jsx(SelectItem,{value:"member",children:"member"})]})]})]})]}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{variant:"outline",onClick:()=>$(!1),children:"Cancel"}),jsxRuntimeExports.jsx(Button,{disabled:!is||Ia.isPending,onClick:()=>Ia.mutate(),children:Ia.isPending?"Sending…":"Send invite"})]})]})})}function UserRow({user:es,onManage:$}){return jsxRuntimeExports.jsxs(TableRow,{children:[jsxRuntimeExports.jsx(TableCell,{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"font-mono text-sm",children:es.email??"—"}),es.isSuperadmin&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"text-xs",children:"superadmin"})]})}),jsxRuntimeExports.jsx(TableCell,{className:"text-right",children:es.orgCount}),jsxRuntimeExports.jsx(TableCell,{className:"text-right",children:es.sessionCount}),jsxRuntimeExports.jsx(TableCell,{className:"text-right",children:es.orphanSessionCount>0?jsxRuntimeExports.jsx(Badge,{variant:"destructive",className:"font-mono",children:es.orphanSessionCount}):jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:"0"})}),jsxRuntimeExports.jsx(TableCell,{className:"text-xs text-muted-foreground",children:new Date(es.createdAt).toISOString().slice(0,10)}),jsxRuntimeExports.jsx(TableCell,{className:"text-right",children:jsxRuntimeExports.jsx(Button,{size:"sm",variant:"outline",onClick:$,children:"Manage"})})]})}function ManageUserSheet({userId:es,onClose:$}){var fl;const ts=useQueryClient(),is=useQuery({queryKey:["superadmin","user",es],queryFn:()=>getUserDetail(es)}),Kr=useQuery({queryKey:["superadmin","all-orgs"],queryFn:listAllOrgs}),[Qr,ja]=reactExports.useState(""),[Ca,Aa]=reactExports.useState("member"),[Oa,Ia]=reactExports.useState(!0),Da=()=>{ts.invalidateQueries({queryKey:["superadmin","users"]}),ts.invalidateQueries({queryKey:["superadmin","user",es]})},Ba=useMutation({mutationFn:()=>assignUserToOrg(es,{orgId:Qr,role:Ca,claimSessions:Oa}),onSuccess:nl=>{ue$1.success(`Assigned as ${nl.role}`+(nl.claimed_sessions>0?` · claimed ${nl.claimed_sessions} orphan session${nl.claimed_sessions===1?"":"s"}`:"")),ja(""),Da()},onError:nl=>{const ol=nl instanceof ApiError?nl.message:String(nl);ue$1.error(`Assign failed: ${ol}`)}}),Ma=useMutation({mutationFn:nl=>removeUserFromOrg(es,nl),onSuccess:()=>{ue$1.success("Removed from org"),Da()},onError:nl=>{const ol=nl instanceof ApiError?nl.message:String(nl);ue$1.error(`Remove failed: ${ol}`)}}),Fa=nl=>ol=>{const pl=ol instanceof ApiError?ol.message:String(ol);ue$1.error(`${nl} failed: ${pl}`)},qa=useMutation({mutationFn:()=>forceLogoutUser(es),onSuccess:()=>ue$1.success("All sessions revoked"),onError:Fa("Force logout")}),Ha=useMutation({mutationFn:()=>resetUserPassword(es),onSuccess:nl=>{nl.actionLink?(navigator.clipboard.writeText(nl.actionLink).catch(()=>{}),ue$1.success(`Recovery link copied for ${nl.email}`)):ue$1.success(`Recovery email sent to ${nl.email}`)},onError:Fa("Reset password")}),Ka=useMutation({mutationFn:nl=>setUserSuspended(es,nl),onSuccess:nl=>{ue$1.success(nl.suspended?"User suspended":"User reinstated"),Da()},onError:Fa("Suspend")}),[Qa,Va]=reactExports.useState(!1),[Ya,Wa]=reactExports.useState(""),el=useMutation({mutationFn:()=>deleteUser(es,Ya),onSuccess:()=>{ue$1.success("User deleted"),Va(!1),Wa(""),ts.invalidateQueries({queryKey:["superadmin","users"]}),$()},onError:Fa("Delete")}),tl=is.data,rl=((fl=Kr.data)==null?void 0:fl.orgs)??[],cl=new Set((tl==null?void 0:tl.memberships.map(nl=>nl.orgId))??[]),dl=rl.filter(nl=>!cl.has(nl.id));return jsxRuntimeExports.jsxs(Sheet,{open:!0,onOpenChange:nl=>!nl&&$(),children:[jsxRuntimeExports.jsxs(SheetContent,{side:"right",className:"w-full sm:max-w-md overflow-y-auto",children:[jsxRuntimeExports.jsxs(SheetHeader,{children:[jsxRuntimeExports.jsx(SheetTitle,{className:"font-mono text-base",children:(tl==null?void 0:tl.user.email)??"Loading…"}),jsxRuntimeExports.jsx(SheetDescription,{children:tl?`${tl.sessionCounts.total} sessions, ${tl.sessionCounts.orphan} without an org`:""})]}),jsxRuntimeExports.jsxs("div",{className:"mt-6 space-y-6 px-1",children:[jsxRuntimeExports.jsxs("section",{children:[jsxRuntimeExports.jsx("h3",{className:"mb-2 text-sm font-medium",children:"Current memberships"}),(tl==null?void 0:tl.memberships.length)===0?jsxRuntimeExports.jsx("p",{className:"text-sm text-muted-foreground",children:"Not a member of any org."}):jsxRuntimeExports.jsx("ul",{className:"space-y-1",children:tl==null?void 0:tl.memberships.map(nl=>jsxRuntimeExports.jsxs("li",{className:"flex items-center justify-between rounded-md border px-3 py-2 text-sm",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-medium",children:nl.orgName}),jsxRuntimeExports.jsx("div",{className:"text-xs text-muted-foreground",children:nl.orgSlug})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Badge,{variant:"secondary",children:nl.role}),jsxRuntimeExports.jsx(Button,{size:"icon",variant:"ghost",disabled:Ma.isPending,onClick:()=>Ma.mutate(nl.orgId),"aria-label":"Remove from org",children:jsxRuntimeExports.jsx(X$1,{className:"h-4 w-4"})})]})]},nl.orgId))})]}),jsxRuntimeExports.jsxs("section",{className:"space-y-2 rounded-md border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("h3",{className:"text-sm font-medium",children:"Account actions"}),(tl==null?void 0:tl.user.banned)&&jsxRuntimeExports.jsx(Badge,{variant:"destructive",children:"Suspended"})]}),(tl==null?void 0:tl.user.lastSignInAt)&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-muted-foreground",children:["Last sign-in: ",new Date(tl.user.lastSignInAt).toLocaleString()]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsx(Button,{variant:"outline",size:"sm",disabled:Ha.isPending,onClick:()=>Ha.mutate(),children:Ha.isPending?"Generating…":"Reset password"}),jsxRuntimeExports.jsx(Button,{variant:"outline",size:"sm",disabled:qa.isPending,onClick:()=>qa.mutate(),children:qa.isPending?"Revoking…":"Force logout"}),jsxRuntimeExports.jsx(Button,{variant:"outline",size:"sm",disabled:Ka.isPending,onClick:()=>Ka.mutate(!(tl!=null&&tl.user.banned)),children:Ka.isPending?"Updating…":tl!=null&&tl.user.banned?"Reinstate":"Suspend"}),jsxRuntimeExports.jsx(Button,{variant:"destructive",size:"sm",onClick:()=>Va(!0),children:"Delete user"})]})]}),jsxRuntimeExports.jsxs("section",{className:"space-y-3 rounded-md border p-3",children:[jsxRuntimeExports.jsx("h3",{className:"text-sm font-medium",children:"Add to org"}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs(Select,{value:Qr,onValueChange:ja,children:[jsxRuntimeExports.jsx(SelectTrigger,{children:jsxRuntimeExports.jsx(SelectValue,{placeholder:"Choose an org…"})}),jsxRuntimeExports.jsx(SelectContent,{children:dl.length===0?jsxRuntimeExports.jsx("div",{className:"p-2 text-sm text-muted-foreground",children:"No orgs available (already a member of all)."}):dl.map(nl=>jsxRuntimeExports.jsxs(SelectItem,{value:nl.id,children:[nl.name," ",jsxRuntimeExports.jsxs("span",{className:"text-muted-foreground",children:["(",nl.memberCount,")"]})]},nl.id))})]}),jsxRuntimeExports.jsxs(Select,{value:Ca,onValueChange:nl=>Aa(nl),children:[jsxRuntimeExports.jsx(SelectTrigger,{children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:"owner",children:"owner"}),jsxRuntimeExports.jsx(SelectItem,{value:"admin",children:"admin"}),jsxRuntimeExports.jsx(SelectItem,{value:"member",children:"member"})]})]}),jsxRuntimeExports.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:Oa,onChange:nl=>Ia(nl.target.checked),className:"h-4 w-4"}),"Claim ",(tl==null?void 0:tl.sessionCounts.orphan)??0," orphan session",(tl==null?void 0:tl.sessionCounts.orphan)===1?"":"s"," for this org"]}),jsxRuntimeExports.jsx(Button,{disabled:!Qr||Ba.isPending,onClick:()=>Ba.mutate(),className:"w-full",children:Ba.isPending?"Assigning…":"Assign"})]})]})]})]}),jsxRuntimeExports.jsx(Dialog,{open:Qa,onOpenChange:Va,children:jsxRuntimeExports.jsxs(DialogContent,{children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Delete user"}),jsxRuntimeExports.jsxs(DialogDescription,{children:["This permanently deletes the auth user and cascades all their sessions and memberships. Type"," ",jsxRuntimeExports.jsx("span",{className:"font-mono",children:(tl==null?void 0:tl.user.email)??"—"})," to confirm."]})]}),jsxRuntimeExports.jsx(Input,{value:Ya,onChange:nl=>Wa(nl.target.value),placeholder:(tl==null?void 0:tl.user.email)??"",autoComplete:"off"}),jsxRuntimeExports.jsxs(DialogFooter,{children:[jsxRuntimeExports.jsx(Button,{variant:"outline",onClick:()=>Va(!1),children:"Cancel"}),jsxRuntimeExports.jsx(Button,{variant:"destructive",disabled:!(tl!=null&&tl.user.email)||Ya.toLowerCase()!==tl.user.email.toLowerCase()||el.isPending,onClick:()=>el.mutate(),children:el.isPending?"Deleting…":"Delete permanently"})]})]})})]})}function SuperAdminGuard({children:es}){const{profile:$,isLoading:ts}=useActiveOrg();return ts?jsxRuntimeExports.jsx("div",{className:"flex h-full items-center justify-center p-8",children:jsxRuntimeExports.jsxs("div",{className:"space-y-4 w-64",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-full"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-3/4"})]})}):$!=null&&$.isSuperadmin?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:es??jsxRuntimeExports.jsx(Outlet,{})}):jsxRuntimeExports.jsx(Navigate,{to:"/dashboard",replace:!0})}const SLUG_REGEX=/^(?=.{3,40}$)[a-z0-9]+(?:-[a-z0-9]+)*$/;function slugify(es){return es.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)}function NewOrgPage(){const es=useNavigate(),$=useSetActiveOrg(),[ts,is]=reactExports.useState(""),[Kr,Qr]=reactExports.useState(""),[ja,Ca]=reactExports.useState(!1),[Aa,Oa]=reactExports.useState(null),[Ia,Da]=reactExports.useState(null),Ba=useMutation({mutationFn:Ha=>createOrg(Ha),onSuccess:async Ha=>{try{await $.mutateAsync(Ha.id)}catch{}ue$1.success(`Created ${Ha.name}`),es("/admin",{replace:!0})},onError:Ha=>{if(Ha instanceof ApiError&&Ha.code==="ORG_SLUG_TAKEN"){const Ka=Kr.replace(/-\d+$/,""),Qa=(()=>{const Ya=Kr.match(/-(\d+)$/);return Ya?Number(Ya[1])+1:2})(),Va=`${Ka}-${Qa}`.slice(0,40);Da(Va),Oa("That slug is already taken.");return}if(Ha instanceof ApiError&&Ha.code==="VALIDATION_ERROR"){Oa("Slug must be lowercase letters, numbers, and dashes (3–40 chars).");return}ue$1.error(Ha instanceof Error?Ha.message:"Failed to create organization")}});function Ma(Ha){is(Ha),ja||Qr(slugify(Ha))}function Fa(Ha){Ha.preventDefault(),Oa(null),Da(null);const Ka=ts.trim(),Qa=Kr.trim();if(!Ka){Oa("Name is required.");return}if(Ka.length>100){Oa("Name must be 100 characters or fewer.");return}if(!SLUG_REGEX.test(Qa)){Oa("Slug must be lowercase letters, numbers, and dashes (3–40 chars).");return}Ba.mutate({name:Ka,slug:Qa})}function qa(){Ia&&(Qr(Ia),Ca(!0),Da(null),Oa(null))}return jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 py-12 bg-background",children:jsxRuntimeExports.jsxs("div",{className:"w-full max-w-md space-y-4",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",asChild:!0,className:"cursor-pointer -ml-2",children:jsxRuntimeExports.jsxs(Link,{to:"/dashboard",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Back to dashboard"]})}),jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx(Building2,{className:"h-5 w-5 text-muted-foreground"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"New organization"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"text-2xl font-mono",children:"Create organization"}),jsxRuntimeExports.jsx(CardDescription,{children:"You'll be the owner. Your existing personal sessions stay where they are — only sessions captured after you switch to this org will be attributed to it."})]}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsxs("form",{onSubmit:Fa,className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"org-name",children:"Name"}),jsxRuntimeExports.jsx(Input,{id:"org-name",value:ts,onChange:Ha=>Ma(Ha.target.value),placeholder:"Acme Inc.",required:!0,maxLength:100,disabled:Ba.isPending,autoFocus:!0})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx(Label,{htmlFor:"org-slug",children:"Slug"}),jsxRuntimeExports.jsx(Input,{id:"org-slug",value:Kr,onChange:Ha=>{Qr(Ha.target.value),Ca(!0)},placeholder:"acme",required:!0,disabled:Ba.isPending}),jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:"Lowercase letters, numbers, and dashes. Used in URLs and CLI commands."})]}),Aa&&jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive space-y-1",children:[jsxRuntimeExports.jsx("div",{children:Aa}),Ia&&jsxRuntimeExports.jsxs("div",{children:["Try"," ",jsxRuntimeExports.jsx("button",{type:"button",onClick:qa,className:"font-mono underline cursor-pointer",children:Ia}),"?"]})]}),jsxRuntimeExports.jsx(Button,{type:"submit",disabled:Ba.isPending,className:"w-full cursor-pointer",children:Ba.isPending?"Creating…":"Create organization"})]})})]})]})})}function AcceptInvitationPage(){const{token:es}=useParams(),{session:$,loading:ts}=useAuth(),is=useNavigate(),Kr=useSetActiveOrg(),Qr=useQuery({queryKey:["invitation-preview",es,($==null?void 0:$.user.id)??null],queryFn:()=>previewInvitation(es),enabled:!!es&&!ts,retry:!1}),[ja,Ca]=reactExports.useState(!1),Aa=useMutation({mutationFn:()=>{var Da;return acceptInvitation({token:es,acknowledgedSessionCount:((Da=Qr.data)==null?void 0:Da.sessionCount)??0})},onMutate:()=>{Ca(!0)},onSuccess:async Da=>{var Ba;try{await Kr.mutateAsync(Da.orgId)}catch{}ue$1.success(`Joined ${((Ba=Qr.data)==null?void 0:Ba.orgName)??"the organization"}`),is("/admin",{replace:!0})},onError:async Da=>{if(Ca(!1),Da instanceof ApiError){if(Da.code==="ALREADY_MEMBER"){ue$1.success("You're already a member. Taking you there now."),is("/admin",{replace:!0});return}if(Da.code==="INVITE_EMAIL_MISMATCH"){ue$1.error("This invitation was sent to a different email address. Sign out and sign in with the correct email to accept.");return}if(Da.code==="SESSION_COUNT_CHANGED"){await Qr.refetch(),ue$1.error("Your session count changed since you reviewed the consent notice. Please re-confirm.");return}if(Da.code==="INVITE_GONE"||Da.code==="INVITE_NOT_FOUND"){ue$1.error("This invitation is no longer valid.");return}}ue$1.error(Da instanceof Error?Da.message:"Failed to accept invitation")}}),Oa=Qr.error,Ia=Oa instanceof ApiError&&(Oa.code==="INVITE_GONE"||Oa.code==="INVITE_NOT_FOUND"||Oa.statusCode===410||Oa.statusCode===404);return reactExports.useEffect(()=>{Aa.isSuccess&&Ca(!1)},[Aa.isSuccess]),jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center px-4 py-12 bg-background",children:jsxRuntimeExports.jsx("div",{className:"w-full max-w-md",children:es?ts||Qr.isLoading?jsxRuntimeExports.jsx(LoadingCard$1,{}):Ia?jsxRuntimeExports.jsx(GoneCard,{message:"This invitation is no longer valid. It may have been revoked, expired, or already accepted."}):Oa?jsxRuntimeExports.jsx(ErrorCard,{message:Oa.message}):Qr.data?jsxRuntimeExports.jsx(InvitationCard,{preview:Qr.data,token:es,isSignedIn:!!$,accepting:ja||Aa.isPending,onAccept:()=>Aa.mutate()}):jsxRuntimeExports.jsx(LoadingCard$1,{}):jsxRuntimeExports.jsx(GoneCard,{message:"Missing invitation token in URL."})})})}function LoadingCard$1(){return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-5 w-32"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-8 w-48 mt-2"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-full mt-2"})]}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-3",children:[jsxRuntimeExports.jsx(Skeleton,{className:"h-4 w-3/4"}),jsxRuntimeExports.jsx(Skeleton,{className:"h-10 w-full"})]})]})}function GoneCard({message:es}){return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-5 w-5 text-destructive"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-destructive",children:"Invitation unavailable"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"text-xl font-mono",children:"This invitation is no longer valid"}),jsxRuntimeExports.jsx(CardDescription,{children:es})]}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",className:"w-full cursor-pointer",children:jsxRuntimeExports.jsx(Link,{to:"/",children:"Back home"})})})]})}function ErrorCard({message:es}){return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-5 w-5 text-destructive"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-destructive",children:"Couldn't load invitation"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"text-xl font-mono",children:"Something went wrong"}),jsxRuntimeExports.jsx(CardDescription,{children:es})]}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",className:"w-full cursor-pointer",children:jsxRuntimeExports.jsx(Link,{to:"/",children:"Back home"})})})]})}function InvitationCard({preview:es,token:$,isSignedIn:ts,accepting:is,onAccept:Kr}){const Qr=`/invite/${encodeURIComponent($)}`;return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx(Building2,{className:"h-5 w-5 text-muted-foreground"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"Organization invitation"})]}),jsxRuntimeExports.jsx(CardTitle,{className:"text-2xl font-mono",children:es.orgName}),jsxRuntimeExports.jsx(CardDescription,{className:"space-y-2",children:jsxRuntimeExports.jsx("span",{className:"block",children:es.inviterName?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("strong",{children:es.inviterName})," invited you to join"," ",jsxRuntimeExports.jsx("strong",{children:es.orgName})," as"," ",jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"capitalize ml-1",children:es.role})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["You've been invited to join ",jsxRuntimeExports.jsx("strong",{children:es.orgName})," ","as"," ",jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"capitalize ml-1",children:es.role})]})})})]}),jsxRuntimeExports.jsx(CardContent,{className:"space-y-4",children:ts?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(ConsentNotice,{orgName:es.orgName,sessionCount:es.sessionCount}),jsxRuntimeExports.jsxs(Button,{type:"button",onClick:Kr,disabled:is,className:"w-full cursor-pointer",children:[jsxRuntimeExports.jsx(UserCheck,{className:"mr-2 h-4 w-4"}),is?"Joining…":`Accept and join ${es.orgName}`]})]}):jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsx("div",{className:"rounded-md border border-border bg-muted/50 px-4 py-3 text-sm",children:"Sign in or sign up with the email this invitation was sent to, and we'll bring you back here to accept."}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"default",className:"flex-1 cursor-pointer",children:jsxRuntimeExports.jsx(Link,{to:`/login?next=${encodeURIComponent(Qr)}`,children:"Sign in"})}),jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",className:"flex-1 cursor-pointer",children:jsxRuntimeExports.jsx(Link,{to:`/signup?next=${encodeURIComponent(Qr)}`,children:"Sign up"})})]})]})})]})}function ConsentNotice({orgName:es,sessionCount:$}){return $===null?jsxRuntimeExports.jsx("div",{className:"rounded-md border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm",children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(ShieldAlert,{className:"h-4 w-4 mt-0.5 shrink-0"}),jsxRuntimeExports.jsx("div",{children:"You're signed in with a different email than this invitation was sent to. Sign out and sign in with the matching email to accept."})]})}):$===0?jsxRuntimeExports.jsxs("div",{className:"rounded-md border border-border bg-muted/40 px-4 py-3 text-sm text-muted-foreground",children:["Accepting will give you ",es," access. You don't have any existing sessions, so nothing will be retroactively shared."]}):jsxRuntimeExports.jsx("div",{className:"rounded-md border border-border bg-muted/40 px-4 py-3 text-sm",children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(ShieldAlert,{className:"h-4 w-4 mt-0.5 shrink-0 text-muted-foreground"}),jsxRuntimeExports.jsxs("div",{children:["By accepting, all of your existing personal RuleMetric sessions"," (","at least"," ",jsxRuntimeExports.jsx("strong",{className:"font-mono tabular-nums",children:$}),$===1?" session":" sessions"," as of now",") will become visible to ",jsxRuntimeExports.jsx("strong",{children:es})," admins."]})]})})}const API_BASE="";async function fetchUnsubscribePreview(es){const $=await fetch(`${API_BASE}/api/unsubscribe/${encodeURIComponent(es)}`);if($.status===404){const ts=new Error("invalid_token");throw ts.statusCode=404,ts}if(!$.ok)throw new Error(`HTTP ${$.status}`);return await $.json()}async function postUnsubscribe(es){const $=await fetch(`${API_BASE}/api/unsubscribe/${encodeURIComponent(es)}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!$.ok){const ts=new Error(`HTTP ${$.status}`);throw ts.statusCode=$.status,ts}}function UnsubscribePage(){const{token:es}=useParams(),[$,ts]=reactExports.useState(!1),is=useQuery({queryKey:["unsubscribe-preview",es],queryFn:()=>fetchUnsubscribePreview(es),enabled:!!es,retry:!1}),Kr=useMutation({mutationFn:()=>postUnsubscribe(es),onSuccess:()=>ts(!0)});return jsxRuntimeExports.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background px-4 py-12",children:jsxRuntimeExports.jsx("div",{className:"w-full max-w-md",children:es?is.isLoading?jsxRuntimeExports.jsx(LoadingCard,{}):is.error?jsxRuntimeExports.jsx(InvalidCard,{}):is.data?$?jsxRuntimeExports.jsx(UnsubscribedCard,{justConfirmed:!0}):is.data.alreadyUnsubscribed?jsxRuntimeExports.jsx(UnsubscribedCard,{}):jsxRuntimeExports.jsx(ConfirmCard,{onConfirm:()=>Kr.mutate(),pending:Kr.isPending,error:Kr.error?"Failed to unsubscribe. Please try again.":null}):jsxRuntimeExports.jsx(LoadingCard,{}):jsxRuntimeExports.jsx(InvalidCard,{})})})}function LoadingCard(){return jsxRuntimeExports.jsx(Card,{children:jsxRuntimeExports.jsx(CardHeader,{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"h-5 w-5 animate-spin text-muted-foreground"}),jsxRuntimeExports.jsx(CardTitle,{className:"text-lg",children:"Loading…"})]})})})}function InvalidCard(){return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[jsxRuntimeExports.jsx(TriangleAlert,{className:"h-5 w-5 text-destructive"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-destructive",children:"Link invalid"})]}),jsxRuntimeExports.jsx(CardTitle,{children:"This unsubscribe link is invalid or expired"}),jsxRuntimeExports.jsx(CardDescription,{children:"The unsubscribe link you used isn't recognized. It may have been truncated by your email client, or the preference may have been reset."})]}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(Link,{to:"/",className:"text-sm text-primary underline",children:"Return to RuleMetric"})})]})}function ConfirmCard({onConfirm:es,pending:$,error:ts}){return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Bell,{className:"h-5 w-5 text-muted-foreground"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-muted-foreground",children:"Product announcements"})]}),jsxRuntimeExports.jsx(CardTitle,{children:"Unsubscribe from RuleMetric product announcements?"}),jsxRuntimeExports.jsx(CardDescription,{children:"You won't receive product update emails from us anymore. You'll still receive transactional emails like sign-in links, invitations, and security alerts."})]}),jsxRuntimeExports.jsxs(CardContent,{className:"space-y-3",children:[jsxRuntimeExports.jsx(Button,{onClick:es,disabled:$,className:"w-full",variant:"destructive",children:$?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"mr-2 h-4 w-4 animate-spin"}),"Unsubscribing…"]}):"Confirm unsubscribe"}),ts?jsxRuntimeExports.jsx("p",{className:"text-sm text-destructive",role:"alert",children:ts}):null,jsxRuntimeExports.jsx(Link,{to:"/",className:"block text-center text-sm text-muted-foreground underline",children:"Cancel"})]})]})}function UnsubscribedCard({justConfirmed:es=!1}){return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsxs(CardHeader,{children:[jsxRuntimeExports.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[jsxRuntimeExports.jsx(CircleCheck,{className:"h-5 w-5 text-teal-500"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-sm font-medium text-teal-600",children:"Unsubscribed"})]}),jsxRuntimeExports.jsx(CardTitle,{children:es?"You've been unsubscribed":"You're already unsubscribed"}),jsxRuntimeExports.jsx(CardDescription,{children:es?"You'll still receive transactional emails (sign-in, invitations, security alerts).":"You're already off the product-announcements list. You'll still receive transactional emails (sign-in, invitations, security alerts)."})]}),jsxRuntimeExports.jsx(CardContent,{children:jsxRuntimeExports.jsx(Link,{to:"/",className:"text-sm text-primary underline",children:"Return to RuleMetric"})})]})}function NotFoundPage(){return jsxRuntimeExports.jsxs("div",{className:"flex min-h-screen flex-col items-center justify-center gap-4",children:[jsxRuntimeExports.jsx("h1",{className:"text-4xl font-bold",children:"404"}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground",children:"Page not found"}),jsxRuntimeExports.jsx(Button,{asChild:!0,children:jsxRuntimeExports.jsx(Link,{to:"/dashboard",children:"Go to Dashboard"})})]})}const queryClient=new QueryClient({defaultOptions:{queries:{staleTime:3e4,retry:1}}});function App(){const es=useRunsEnabled();return jsxRuntimeExports.jsx(ErrorBoundary,{children:jsxRuntimeExports.jsx(QueryClientProvider,{client:queryClient,children:jsxRuntimeExports.jsxs(AuthProvider,{children:[jsxRuntimeExports.jsx(BrowserRouter,{children:jsxRuntimeExports.jsx(PostHogProvider,{children:jsxRuntimeExports.jsxs(Routes,{children:[jsxRuntimeExports.jsx(Route,{path:"/",element:jsxRuntimeExports.jsx(LandingPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/login",element:jsxRuntimeExports.jsx(LoginPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/signup",element:jsxRuntimeExports.jsx(SignupPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/auth/confirm",element:jsxRuntimeExports.jsx(ConfirmPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/auth/extension",element:jsxRuntimeExports.jsx(ExtensionAuthPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/forgot-password",element:jsxRuntimeExports.jsx(ForgotPasswordPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/reset-password",element:jsxRuntimeExports.jsx(ResetPasswordPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/invite/:token",element:jsxRuntimeExports.jsx(AcceptInvitationPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/unsubscribe/:token",element:jsxRuntimeExports.jsx(UnsubscribePage,{})}),jsxRuntimeExports.jsx(Route,{path:"/docs",element:jsxRuntimeExports.jsx(DocsRoute,{})}),jsxRuntimeExports.jsxs(Route,{element:jsxRuntimeExports.jsx(AuthGuard,{}),children:[jsxRuntimeExports.jsx(Route,{path:"/orgs/new",element:jsxRuntimeExports.jsx(NewOrgPage,{})}),jsxRuntimeExports.jsxs(Route,{element:jsxRuntimeExports.jsx(RootLayout,{}),children:[jsxRuntimeExports.jsx(Route,{path:"/dashboard",element:jsxRuntimeExports.jsx(DashboardPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/connect",element:jsxRuntimeExports.jsx(ConnectPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/sessions",element:jsxRuntimeExports.jsx(SessionsListPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/sessions/:id",element:jsxRuntimeExports.jsx(SessionDetailPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/projects",element:jsxRuntimeExports.jsx(ProjectsListPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/projects/:id",element:jsxRuntimeExports.jsx(ProjectDetailPage,{})}),es,jsxRuntimeExports.jsx(Route,{path:"/eval-targets",element:jsxRuntimeExports.jsx(EvalTargetsListPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/eval-targets/:id",element:jsxRuntimeExports.jsx(EvalTargetDetailPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/insights",element:jsxRuntimeExports.jsx(InsightsListPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/insights/:id",element:jsxRuntimeExports.jsx(InsightsDetailPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/memories",element:jsxRuntimeExports.jsx(MemoriesListPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/memories/:id",element:jsxRuntimeExports.jsx(MemoryDetailPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/skills",element:jsxRuntimeExports.jsx(SkillsListPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/catalog/public",element:jsxRuntimeExports.jsx(PublicCatalogPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/catalog/public/:id",element:jsxRuntimeExports.jsx(PublicSkillDetailPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/suggestions",element:jsxRuntimeExports.jsx(SuggestionsListPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/experiments",element:jsxRuntimeExports.jsx(ExperimentsListPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/loop",element:jsxRuntimeExports.jsx(LoopPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/settings",element:jsxRuntimeExports.jsx(SettingsPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/usage",element:jsxRuntimeExports.jsx(UsagePage,{})}),jsxRuntimeExports.jsxs(Route,{element:jsxRuntimeExports.jsx(SuperAdminGuard,{}),children:[jsxRuntimeExports.jsx(Route,{path:"/superadmin",element:jsxRuntimeExports.jsx(Navigate,{to:"/superadmin/users",replace:!0})}),jsxRuntimeExports.jsx(Route,{path:"/superadmin/users",element:jsxRuntimeExports.jsx(SuperadminUsersPage,{})})]}),jsxRuntimeExports.jsxs(Route,{element:jsxRuntimeExports.jsx(OrgAdminGuard,{}),children:[jsxRuntimeExports.jsx(Route,{path:"/admin",element:jsxRuntimeExports.jsx(AdminOverviewPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/admin/members",element:jsxRuntimeExports.jsx(AdminMembersPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/admin/members/invitations",element:jsxRuntimeExports.jsx(AdminInvitationsPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/admin/teams",element:jsxRuntimeExports.jsx(AdminTeamsPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/admin/teams/:teamSlug",element:jsxRuntimeExports.jsx(TeamDetailPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/admin/settings",element:jsxRuntimeExports.jsx(AdminSettingsPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/admin/research",element:jsxRuntimeExports.jsx(AdminResearchPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/admin/announcements",element:jsxRuntimeExports.jsx(AdminAnnouncementsPage,{})})]})]})]}),jsxRuntimeExports.jsx(Route,{path:"*",element:jsxRuntimeExports.jsx(NotFoundPage,{})})]})})}),jsxRuntimeExports.jsx(Toaster,{})]})})})}"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js").catch(es=>{console.error("Service worker registration failed:",es)})});clientExports.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(reactExports.StrictMode,{children:jsxRuntimeExports.jsx(App,{})}));