devchain-cli 0.8.4 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ReviewsPage-DLD6BGoH.js","assets/useReviewSubscription-CptabtYL.js","assets/useReviewSubscription-T3uj2-aP.css","assets/ReviewDetailPage-C4NizGFT.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ReviewsPage-Dow8B8sr.js","assets/useReviewSubscription-CNhZ4Xwh.js","assets/useReviewSubscription-T3uj2-aP.css","assets/ReviewDetailPage-DNZbiwkx.js"])))=>i.map(i=>d[i]);
2
2
  var m4=e=>{throw TypeError(e)};var mw=(e,t,s)=>t.has(e)||m4("Cannot "+s);var ue=(e,t,s)=>(mw(e,t,"read from private field"),s?s.call(e):t.get(e)),Mt=(e,t,s)=>t.has(e)?m4("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),ot=(e,t,s,a)=>(mw(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s),rs=(e,t,s)=>(mw(e,t,"access private method"),s);var Iv=(e,t,s,a)=>({set _(o){ot(e,t,o,s)},get _(){return ue(e,t,a)}});function V$(e,t){for(var s=0;s<t.length;s++){const a=t[s];if(typeof a!="string"&&!Array.isArray(a)){for(const o in a)if(o!=="default"&&!(o in e)){const c=Object.getOwnPropertyDescriptor(a,o);c&&Object.defineProperty(e,o,c.get?c:{enumerable:!0,get:()=>a[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const c of o)if(c.type==="childList")for(const p of c.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&a(p)}).observe(document,{childList:!0,subtree:!0});function s(o){const c={};return o.integrity&&(c.integrity=o.integrity),o.referrerPolicy&&(c.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?c.credentials="include":o.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function a(o){if(o.ep)return;o.ep=!0;const c=s(o);fetch(o.href,c)}})();function oN(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function R$(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var s=function a(){return this instanceof a?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};s.prototype=t.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(e).forEach(function(a){var o=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(s,a,o.get?o:{enumerable:!0,get:function(){return e[a]}})}),s}var m9={exports:{}},sE={},f9={exports:{}},Rb={exports:{}};Rb.exports;(function(e,t){/**
3
3
  * @license React
4
4
  * react.development.js
@@ -234,7 +234,7 @@ Check the top-level render call using <`+Ke+">.")}return _e}}function $t(ne,_e){
234
234
  <%s {...props} />
235
235
  React keys must be passed directly to JSX without using spread:
236
236
  let props = %s;
237
- <%s key={someKey} {...props} />`,tt,it,ni,it),ri[it+tt]=!0}}return ne===a?di(ee):Ns(ee),ee}}function yi(ne,_e,Ke){return xi(ne,_e,Ke,!0)}function ui(ne,_e,Ke){return xi(ne,_e,Ke,!1)}var de=ui,We=yi;gb.Fragment=a,gb.jsx=de,gb.jsxs=We})();U9.exports=gb;var re=U9.exports,$9=b.createContext(void 0),Zs=e=>{const t=b.useContext($9);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},TW=({client:e,children:t})=>(b.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),re.jsx($9.Provider,{value:e,children:t})),H9=b.createContext(!1),W9=()=>b.useContext(H9);H9.Provider;function VW(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var RW=b.createContext(VW()),q9=()=>b.useContext(RW),K9=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},G9=e=>{b.useEffect(()=>{e.clearReset()},[e])},Y9=({result:e,errorResetBoundary:t,throwOnError:s,query:a,suspense:o})=>e.isError&&!t.isReset()&&!e.isFetching&&a&&(o&&e.data===void 0||M9(s,[e.error,a])),Q9=e=>{if(e.suspense){const s=o=>o==="static"?o:Math.max(o??1e3,1e3),a=e.staleTime;e.staleTime=typeof a=="function"?(...o)=>s(a(...o)):s(a),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},X9=(e,t)=>e.isLoading&&e.isFetching&&!t,_E=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,Lb=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function kW({queries:e,...t},s){const a=Zs(),o=W9(),c=q9(),p=b.useMemo(()=>e.map(S=>{const x=a.defaultQueryOptions(S);return x._optimisticResults=o?"isRestoring":"optimistic",x}),[e,a,o]);p.forEach(S=>{Q9(S),K9(S,c)}),G9(c);const[l]=b.useState(()=>new CW(a,p,t)),[d,h,v]=l.getOptimisticResult(p,t.combine),f=!o&&t.subscribed!==!1;b.useSyncExternalStore(b.useCallback(S=>f?l.subscribe(Ui.batchCalls(S)):Hr,[l,f]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),b.useEffect(()=>{l.setQueries(p,t)},[p,t,l]);const w=d.some((S,x)=>_E(p[x],S))?d.flatMap((S,x)=>{const N=p[x];if(N){const g=new OD(a,N);if(_E(N,S))return Lb(N,g,c);X9(S,o)&&Lb(N,g,c)}return[]}):[];if(w.length>0)throw Promise.all(w);const C=d.find((S,x)=>{const N=p[x];return N&&Y9({result:S,errorResetBoundary:c,throwOnError:N.throwOnError,query:a.getQueryCache().get(N.queryHash),suspense:N.suspense})});if(C!=null&&C.error)throw C.error;return h(v())}function AW(e,t,s){var f,E,w,C,S;if(typeof e!="object"||Array.isArray(e))throw new Error('Bad argument type. Starting with v5, only the "Object" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object');const a=W9(),o=q9(),c=Zs(),p=c.defaultQueryOptions(e);(E=(f=c.getDefaultOptions().queries)==null?void 0:f._experimental_beforeQuery)==null||E.call(f,p),p.queryFn||console.error(`[${p.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`),p._optimisticResults=a?"isRestoring":"optimistic",Q9(p),K9(p,o),G9(o);const l=!c.getQueryCache().get(p.queryHash),[d]=b.useState(()=>new t(c,p)),h=d.getOptimisticResult(p),v=!a&&e.subscribed!==!1;if(b.useSyncExternalStore(b.useCallback(x=>{const N=v?d.subscribe(Ui.batchCalls(x)):Hr;return d.updateResult(),N},[d,v]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),b.useEffect(()=>{d.setOptions(p)},[p,d]),_E(p,h))throw Lb(p,d,o);if(Y9({result:h,errorResetBoundary:o,throwOnError:p.throwOnError,query:c.getQueryCache().get(p.queryHash),suspense:p.suspense}))throw h.error;if((C=(w=c.getDefaultOptions().queries)==null?void 0:w._experimental_afterQuery)==null||C.call(w,p,h),p.experimental_prefetchInRender&&!xu&&X9(h,a)){const x=l?Lb(p,d,o):(S=c.getQueryCache().get(p.queryHash))==null?void 0:S.promise;x==null||x.catch(Hr).finally(()=>{d.updateResult()})}return p.notifyOnChangeProps?h:d.trackResult(h)}function rt(e,t){return AW(e,OD)}function Ct(e,t){const s=Zs(),[a]=b.useState(()=>new SW(s,e));b.useEffect(()=>{a.setOptions(e)},[a,e]);const o=b.useSyncExternalStore(b.useCallback(p=>a.subscribe(Ui.batchCalls(p)),[a]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),c=b.useCallback((p,l)=>{a.mutate(p,l).catch(Hr)},[a]);if(o.error&&M9(a.options.throwOnError,[o.error]))throw o.error;return{...o,mutate:c,mutateAsync:o.mutate}}const po="devchain:selectedProjectId",Z9=b.createContext(void 0);async function MW(){const e=await fetch("/api/projects");if(!e.ok)throw new Error("Failed to fetch projects");const t=await e.json(),s=await Promise.all(t.items.map(async a=>{try{const o=await fetch(`/api/projects/${a.id}/stats`);if(o.ok){const c=await o.json();return{...a,stats:c}}}catch{}return a}));return{...t,items:s}}function OW(){return typeof window>"u"?null:window.sessionStorage.getItem(po)??window.localStorage.getItem(po)}function Op(e){typeof window>"u"||(e?(window.sessionStorage.setItem(po,e),window.localStorage.setItem(po,e)):window.sessionStorage.removeItem(po))}function LW({children:e}){const[t,s]=b.useState(()=>{if(!(typeof window>"u"))return OW()??void 0}),a=b.useRef(!1),o=b.useRef(!1),{data:c,isLoading:p,isError:l,refetch:d}=rt({queryKey:["projects"],queryFn:MW});b.useEffect(()=>{if(typeof window>"u"||o.current)return;const w=window.sessionStorage.getItem(po),C=window.localStorage.getItem(po);!w&&C&&window.sessionStorage.setItem(po,C),o.current=!0},[]),b.useEffect(()=>{if(typeof window>"u"||!c||a.current)return;const w=new URLSearchParams(window.location.search||""),C=w.get("projectId"),S=w.get("projectPath"),x=c.items??[],N=g=>g.replace(/\/+$/,"");if(C&&x.some(y=>y.id===C)){s(C),Op(C),a.current=!0;return}if(S){const g=N(S),y=x.find(_=>N(_.rootPath)===g);if(y){s(y.id),Op(y.id),a.current=!0;return}}},[c]),b.useEffect(()=>{if(!c)return;const w=c.items??[];if(w.length===1){const C=w[0].id;t!==C&&(s(C),Op(C));return}if(t&&!w.some(C=>C.id===t)){if(typeof window<"u"){const C=window.localStorage.getItem(po);if(window.sessionStorage.removeItem(po),C&&w.some(S=>S.id===C)){s(C),Op(C);return}}s(void 0),Op(void 0)}},[c,t]);const h=b.useCallback(w=>{s(w),Op(w)},[]),v=b.useMemo(()=>{var w;return(w=c==null?void 0:c.items)==null?void 0:w.find(C=>C.id===t)},[c,t]),f=b.useCallback(async()=>{await d()},[d]),E=b.useMemo(()=>({projects:(c==null?void 0:c.items)??[],projectsLoading:p,projectsError:l,refetchProjects:f,selectedProjectId:t,selectedProject:v,setSelectedProjectId:h}),[c,p,l,f,t,v,h]);return i.jsxDEV(Z9.Provider,{value:E,children:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/hooks/useProjectSelection.tsx",lineNumber:241,columnNumber:5},this)}function fr(){const e=b.useContext(Z9);if(!e)throw new Error("useSelectedProject must be used within a ProjectSelectionProvider");return e}const IW="modulepreload",FW=function(e){return"/"+e},V4={},uN=function(t,s,a){let o=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const p=document.querySelector("meta[property=csp-nonce]"),l=(p==null?void 0:p.nonce)||(p==null?void 0:p.getAttribute("nonce"));o=Promise.allSettled(s.map(d=>{if(d=FW(d),d in V4)return;V4[d]=!0;const h=d.endsWith(".css"),v=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${v}`))return;const f=document.createElement("link");if(f.rel=h?"stylesheet":IW,h||(f.as="script"),f.crossOrigin="",f.href=d,l&&f.setAttribute("nonce",l),document.head.appendChild(f),h)return new Promise((E,w)=>{f.addEventListener("load",E),f.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${d}`)))})}))}function c(p){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=p,window.dispatchEvent(l),!l.defaultPrevented)throw p}return o.then(p=>{for(const l of p||[])l.status==="rejected"&&c(l.reason);return t().catch(c)})};function J9(e){var t,s,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(s=J9(e[t]))&&(a&&(a+=" "),a+=s)}else for(s in e)e[s]&&(a&&(a+=" "),a+=s);return a}function e6(){for(var e,t,s=0,a="",o=arguments.length;s<o;s++)(e=arguments[s])&&(t=J9(e))&&(a&&(a+=" "),a+=t);return a}const ID="-",BW=e=>{const t=UW(e),{conflictingClassGroups:s,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:p=>{const l=p.split(ID);return l[0]===""&&l.length!==1&&l.shift(),t6(l,t)||zW(p)},getConflictingClassGroupIds:(p,l)=>{const d=s[p]||[];return l&&a[p]?[...d,...a[p]]:d}}},t6=(e,t)=>{var p;if(e.length===0)return t.classGroupId;const s=e[0],a=t.nextPart.get(s),o=a?t6(e.slice(1),a):void 0;if(o)return o;if(t.validators.length===0)return;const c=e.join(ID);return(p=t.validators.find(({validator:l})=>l(c)))==null?void 0:p.classGroupId},R4=/^\[(.+)\]$/,zW=e=>{if(R4.test(e)){const t=R4.exec(e)[1],s=t==null?void 0:t.substring(0,t.indexOf(":"));if(s)return"arbitrary.."+s}},UW=e=>{const{theme:t,classGroups:s}=e,a={nextPart:new Map,validators:[]};for(const o in s)CE(s[o],a,o,t);return a},CE=(e,t,s,a)=>{e.forEach(o=>{if(typeof o=="string"){const c=o===""?t:k4(t,o);c.classGroupId=s;return}if(typeof o=="function"){if($W(o)){CE(o(a),t,s,a);return}t.validators.push({validator:o,classGroupId:s});return}Object.entries(o).forEach(([c,p])=>{CE(p,k4(t,c),s,a)})})},k4=(e,t)=>{let s=e;return t.split(ID).forEach(a=>{s.nextPart.has(a)||s.nextPart.set(a,{nextPart:new Map,validators:[]}),s=s.nextPart.get(a)}),s},$W=e=>e.isThemeGetter,HW=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,s=new Map,a=new Map;const o=(c,p)=>{s.set(c,p),t++,t>e&&(t=0,a=s,s=new Map)};return{get(c){let p=s.get(c);if(p!==void 0)return p;if((p=a.get(c))!==void 0)return o(c,p),p},set(c,p){s.has(c)?s.set(c,p):o(c,p)}}},jE="!",PE=":",WW=PE.length,qW=e=>{const{prefix:t,experimentalParseClassName:s}=e;let a=o=>{const c=[];let p=0,l=0,d=0,h;for(let C=0;C<o.length;C++){let S=o[C];if(p===0&&l===0){if(S===PE){c.push(o.slice(d,C)),d=C+WW;continue}if(S==="/"){h=C;continue}}S==="["?p++:S==="]"?p--:S==="("?l++:S===")"&&l--}const v=c.length===0?o:o.substring(d),f=KW(v),E=f!==v,w=h&&h>d?h-d:void 0;return{modifiers:c,hasImportantModifier:E,baseClassName:f,maybePostfixModifierPosition:w}};if(t){const o=t+PE,c=a;a=p=>p.startsWith(o)?c(p.substring(o.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:p,maybePostfixModifierPosition:void 0}}if(s){const o=a;a=c=>s({className:c,parseClassName:o})}return a},KW=e=>e.endsWith(jE)?e.substring(0,e.length-1):e.startsWith(jE)?e.substring(1):e,GW=e=>{const t=Object.fromEntries(e.orderSensitiveModifiers.map(a=>[a,!0]));return a=>{if(a.length<=1)return a;const o=[];let c=[];return a.forEach(p=>{p[0]==="["||t[p]?(o.push(...c.sort(),p),c=[]):c.push(p)}),o.push(...c.sort()),o}},YW=e=>({cache:HW(e.cacheSize),parseClassName:qW(e),sortModifiers:GW(e),...BW(e)}),QW=/\s+/,XW=(e,t)=>{const{parseClassName:s,getClassGroupId:a,getConflictingClassGroupIds:o,sortModifiers:c}=t,p=[],l=e.trim().split(QW);let d="";for(let h=l.length-1;h>=0;h-=1){const v=l[h],{isExternal:f,modifiers:E,hasImportantModifier:w,baseClassName:C,maybePostfixModifierPosition:S}=s(v);if(f){d=v+(d.length>0?" "+d:d);continue}let x=!!S,N=a(x?C.substring(0,S):C);if(!N){if(!x){d=v+(d.length>0?" "+d:d);continue}if(N=a(C),!N){d=v+(d.length>0?" "+d:d);continue}x=!1}const g=c(E).join(":"),y=w?g+jE:g,_=y+N;if(p.includes(_))continue;p.push(_);const P=o(N,x);for(let R=0;R<P.length;++R){const j=P[R];p.push(y+j)}d=v+(d.length>0?" "+d:d)}return d};function ZW(){let e=0,t,s,a="";for(;e<arguments.length;)(t=arguments[e++])&&(s=s6(t))&&(a&&(a+=" "),a+=s);return a}const s6=e=>{if(typeof e=="string")return e;let t,s="";for(let a=0;a<e.length;a++)e[a]&&(t=s6(e[a]))&&(s&&(s+=" "),s+=t);return s};function JW(e,...t){let s,a,o,c=p;function p(d){const h=t.reduce((v,f)=>f(v),e());return s=YW(h),a=s.cache.get,o=s.cache.set,c=l,l(d)}function l(d){const h=a(d);if(h)return h;const v=XW(d,s);return o(d,v),v}return function(){return c(ZW.apply(null,arguments))}}const hr=e=>{const t=s=>s[e]||[];return t.isThemeGetter=!0,t},i6=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,r6=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eq=/^\d+\/\d+$/,tq=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,sq=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,iq=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,rq=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,nq=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Lp=e=>eq.test(e),Os=e=>!!e&&!Number.isNaN(Number(e)),ql=e=>!!e&&Number.isInteger(Number(e)),bw=e=>e.endsWith("%")&&Os(e.slice(0,-1)),Jo=e=>tq.test(e),aq=()=>!0,oq=e=>sq.test(e)&&!iq.test(e),n6=()=>!1,lq=e=>rq.test(e),cq=e=>nq.test(e),uq=e=>!Ft(e)&&!Bt(e),pq=e=>Dd(e,l6,n6),Ft=e=>i6.test(e),nu=e=>Dd(e,c6,oq),Nw=e=>Dd(e,gq,Os),A4=e=>Dd(e,a6,n6),dq=e=>Dd(e,o6,cq),Uv=e=>Dd(e,u6,lq),Bt=e=>r6.test(e),vm=e=>Sd(e,c6),hq=e=>Sd(e,vq),M4=e=>Sd(e,a6),mq=e=>Sd(e,l6),fq=e=>Sd(e,o6),$v=e=>Sd(e,u6,!0),Dd=(e,t,s)=>{const a=i6.exec(e);return a?a[1]?t(a[1]):s(a[2]):!1},Sd=(e,t,s=!1)=>{const a=r6.exec(e);return a?a[1]?t(a[1]):s:!1},a6=e=>e==="position"||e==="percentage",o6=e=>e==="image"||e==="url",l6=e=>e==="length"||e==="size"||e==="bg-size",c6=e=>e==="length",gq=e=>e==="number",vq=e=>e==="family-name",u6=e=>e==="shadow",bq=()=>{const e=hr("color"),t=hr("font"),s=hr("text"),a=hr("font-weight"),o=hr("tracking"),c=hr("leading"),p=hr("breakpoint"),l=hr("container"),d=hr("spacing"),h=hr("radius"),v=hr("shadow"),f=hr("inset-shadow"),E=hr("text-shadow"),w=hr("drop-shadow"),C=hr("blur"),S=hr("perspective"),x=hr("aspect"),N=hr("ease"),g=hr("animate"),y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],_=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],P=()=>[..._(),Bt,Ft],R=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],T=()=>[Bt,Ft,d],A=()=>[Lp,"full","auto",...T()],k=()=>[ql,"none","subgrid",Bt,Ft],F=()=>["auto",{span:["full",ql,Bt,Ft]},ql,Bt,Ft],M=()=>[ql,"auto",Bt,Ft],L=()=>["auto","min","max","fr",Bt,Ft],U=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Z=()=>["start","end","center","stretch","center-safe","end-safe"],q=()=>["auto",...T()],Y=()=>[Lp,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...T()],K=()=>[e,Bt,Ft],O=()=>[..._(),M4,A4,{position:[Bt,Ft]}],B=()=>["no-repeat",{repeat:["","x","y","space","round"]}],z=()=>["auto","cover","contain",mq,pq,{size:[Bt,Ft]}],H=()=>[bw,vm,nu],J=()=>["","none","full",h,Bt,Ft],te=()=>["",Os,vm,nu],Ne=()=>["solid","dashed","dotted","double"],De=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Q=()=>[Os,bw,M4,A4],W=()=>["","none",C,Bt,Ft],ae=()=>["none",Os,Bt,Ft],le=()=>["none",Os,Bt,Ft],xe=()=>[Os,Bt,Ft],he=()=>[Lp,"full",...T()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Jo],breakpoint:[Jo],color:[aq],container:[Jo],"drop-shadow":[Jo],ease:["in","out","in-out"],font:[uq],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Jo],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Jo],shadow:[Jo],spacing:["px",Os],text:[Jo],"text-shadow":[Jo],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Lp,Ft,Bt,x]}],container:["container"],columns:[{columns:[Os,Ft,Bt,l]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:P()}],overflow:[{overflow:R()}],"overflow-x":[{"overflow-x":R()}],"overflow-y":[{"overflow-y":R()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{start:A()}],end:[{end:A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[ql,"auto",Bt,Ft]}],basis:[{basis:[Lp,"full","auto",l,...T()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Os,Lp,"auto","initial","none",Ft]}],grow:[{grow:["",Os,Bt,Ft]}],shrink:[{shrink:["",Os,Bt,Ft]}],order:[{order:[ql,"first","last","none",Bt,Ft]}],"grid-cols":[{"grid-cols":k()}],"col-start-end":[{col:F()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":k()}],"row-start-end":[{row:F()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":L()}],"auto-rows":[{"auto-rows":L()}],gap:[{gap:T()}],"gap-x":[{"gap-x":T()}],"gap-y":[{"gap-y":T()}],"justify-content":[{justify:[...U(),"normal"]}],"justify-items":[{"justify-items":[...Z(),"normal"]}],"justify-self":[{"justify-self":["auto",...Z()]}],"align-content":[{content:["normal",...U()]}],"align-items":[{items:[...Z(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Z(),{baseline:["","last"]}]}],"place-content":[{"place-content":U()}],"place-items":[{"place-items":[...Z(),"baseline"]}],"place-self":[{"place-self":["auto",...Z()]}],p:[{p:T()}],px:[{px:T()}],py:[{py:T()}],ps:[{ps:T()}],pe:[{pe:T()}],pt:[{pt:T()}],pr:[{pr:T()}],pb:[{pb:T()}],pl:[{pl:T()}],m:[{m:q()}],mx:[{mx:q()}],my:[{my:q()}],ms:[{ms:q()}],me:[{me:q()}],mt:[{mt:q()}],mr:[{mr:q()}],mb:[{mb:q()}],ml:[{ml:q()}],"space-x":[{"space-x":T()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":T()}],"space-y-reverse":["space-y-reverse"],size:[{size:Y()}],w:[{w:[l,"screen",...Y()]}],"min-w":[{"min-w":[l,"screen","none",...Y()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[p]},...Y()]}],h:[{h:["screen","lh",...Y()]}],"min-h":[{"min-h":["screen","lh","none",...Y()]}],"max-h":[{"max-h":["screen","lh",...Y()]}],"font-size":[{text:["base",s,vm,nu]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,Bt,Nw]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",bw,Ft]}],"font-family":[{font:[hq,Ft,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[o,Bt,Ft]}],"line-clamp":[{"line-clamp":[Os,"none",Bt,Nw]}],leading:[{leading:[c,...T()]}],"list-image":[{"list-image":["none",Bt,Ft]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Bt,Ft]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:K()}],"text-color":[{text:K()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ne(),"wavy"]}],"text-decoration-thickness":[{decoration:[Os,"from-font","auto",Bt,nu]}],"text-decoration-color":[{decoration:K()}],"underline-offset":[{"underline-offset":[Os,"auto",Bt,Ft]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:T()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Bt,Ft]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Bt,Ft]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:O()}],"bg-repeat":[{bg:B()}],"bg-size":[{bg:z()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ql,Bt,Ft],radial:["",Bt,Ft],conic:[ql,Bt,Ft]},fq,dq]}],"bg-color":[{bg:K()}],"gradient-from-pos":[{from:H()}],"gradient-via-pos":[{via:H()}],"gradient-to-pos":[{to:H()}],"gradient-from":[{from:K()}],"gradient-via":[{via:K()}],"gradient-to":[{to:K()}],rounded:[{rounded:J()}],"rounded-s":[{"rounded-s":J()}],"rounded-e":[{"rounded-e":J()}],"rounded-t":[{"rounded-t":J()}],"rounded-r":[{"rounded-r":J()}],"rounded-b":[{"rounded-b":J()}],"rounded-l":[{"rounded-l":J()}],"rounded-ss":[{"rounded-ss":J()}],"rounded-se":[{"rounded-se":J()}],"rounded-ee":[{"rounded-ee":J()}],"rounded-es":[{"rounded-es":J()}],"rounded-tl":[{"rounded-tl":J()}],"rounded-tr":[{"rounded-tr":J()}],"rounded-br":[{"rounded-br":J()}],"rounded-bl":[{"rounded-bl":J()}],"border-w":[{border:te()}],"border-w-x":[{"border-x":te()}],"border-w-y":[{"border-y":te()}],"border-w-s":[{"border-s":te()}],"border-w-e":[{"border-e":te()}],"border-w-t":[{"border-t":te()}],"border-w-r":[{"border-r":te()}],"border-w-b":[{"border-b":te()}],"border-w-l":[{"border-l":te()}],"divide-x":[{"divide-x":te()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":te()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ne(),"hidden","none"]}],"divide-style":[{divide:[...Ne(),"hidden","none"]}],"border-color":[{border:K()}],"border-color-x":[{"border-x":K()}],"border-color-y":[{"border-y":K()}],"border-color-s":[{"border-s":K()}],"border-color-e":[{"border-e":K()}],"border-color-t":[{"border-t":K()}],"border-color-r":[{"border-r":K()}],"border-color-b":[{"border-b":K()}],"border-color-l":[{"border-l":K()}],"divide-color":[{divide:K()}],"outline-style":[{outline:[...Ne(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Os,Bt,Ft]}],"outline-w":[{outline:["",Os,vm,nu]}],"outline-color":[{outline:K()}],shadow:[{shadow:["","none",v,$v,Uv]}],"shadow-color":[{shadow:K()}],"inset-shadow":[{"inset-shadow":["none",f,$v,Uv]}],"inset-shadow-color":[{"inset-shadow":K()}],"ring-w":[{ring:te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:K()}],"ring-offset-w":[{"ring-offset":[Os,nu]}],"ring-offset-color":[{"ring-offset":K()}],"inset-ring-w":[{"inset-ring":te()}],"inset-ring-color":[{"inset-ring":K()}],"text-shadow":[{"text-shadow":["none",E,$v,Uv]}],"text-shadow-color":[{"text-shadow":K()}],opacity:[{opacity:[Os,Bt,Ft]}],"mix-blend":[{"mix-blend":[...De(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":De()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Os]}],"mask-image-linear-from-pos":[{"mask-linear-from":Q()}],"mask-image-linear-to-pos":[{"mask-linear-to":Q()}],"mask-image-linear-from-color":[{"mask-linear-from":K()}],"mask-image-linear-to-color":[{"mask-linear-to":K()}],"mask-image-t-from-pos":[{"mask-t-from":Q()}],"mask-image-t-to-pos":[{"mask-t-to":Q()}],"mask-image-t-from-color":[{"mask-t-from":K()}],"mask-image-t-to-color":[{"mask-t-to":K()}],"mask-image-r-from-pos":[{"mask-r-from":Q()}],"mask-image-r-to-pos":[{"mask-r-to":Q()}],"mask-image-r-from-color":[{"mask-r-from":K()}],"mask-image-r-to-color":[{"mask-r-to":K()}],"mask-image-b-from-pos":[{"mask-b-from":Q()}],"mask-image-b-to-pos":[{"mask-b-to":Q()}],"mask-image-b-from-color":[{"mask-b-from":K()}],"mask-image-b-to-color":[{"mask-b-to":K()}],"mask-image-l-from-pos":[{"mask-l-from":Q()}],"mask-image-l-to-pos":[{"mask-l-to":Q()}],"mask-image-l-from-color":[{"mask-l-from":K()}],"mask-image-l-to-color":[{"mask-l-to":K()}],"mask-image-x-from-pos":[{"mask-x-from":Q()}],"mask-image-x-to-pos":[{"mask-x-to":Q()}],"mask-image-x-from-color":[{"mask-x-from":K()}],"mask-image-x-to-color":[{"mask-x-to":K()}],"mask-image-y-from-pos":[{"mask-y-from":Q()}],"mask-image-y-to-pos":[{"mask-y-to":Q()}],"mask-image-y-from-color":[{"mask-y-from":K()}],"mask-image-y-to-color":[{"mask-y-to":K()}],"mask-image-radial":[{"mask-radial":[Bt,Ft]}],"mask-image-radial-from-pos":[{"mask-radial-from":Q()}],"mask-image-radial-to-pos":[{"mask-radial-to":Q()}],"mask-image-radial-from-color":[{"mask-radial-from":K()}],"mask-image-radial-to-color":[{"mask-radial-to":K()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":_()}],"mask-image-conic-pos":[{"mask-conic":[Os]}],"mask-image-conic-from-pos":[{"mask-conic-from":Q()}],"mask-image-conic-to-pos":[{"mask-conic-to":Q()}],"mask-image-conic-from-color":[{"mask-conic-from":K()}],"mask-image-conic-to-color":[{"mask-conic-to":K()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:O()}],"mask-repeat":[{mask:B()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Bt,Ft]}],filter:[{filter:["","none",Bt,Ft]}],blur:[{blur:W()}],brightness:[{brightness:[Os,Bt,Ft]}],contrast:[{contrast:[Os,Bt,Ft]}],"drop-shadow":[{"drop-shadow":["","none",w,$v,Uv]}],"drop-shadow-color":[{"drop-shadow":K()}],grayscale:[{grayscale:["",Os,Bt,Ft]}],"hue-rotate":[{"hue-rotate":[Os,Bt,Ft]}],invert:[{invert:["",Os,Bt,Ft]}],saturate:[{saturate:[Os,Bt,Ft]}],sepia:[{sepia:["",Os,Bt,Ft]}],"backdrop-filter":[{"backdrop-filter":["","none",Bt,Ft]}],"backdrop-blur":[{"backdrop-blur":W()}],"backdrop-brightness":[{"backdrop-brightness":[Os,Bt,Ft]}],"backdrop-contrast":[{"backdrop-contrast":[Os,Bt,Ft]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Os,Bt,Ft]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Os,Bt,Ft]}],"backdrop-invert":[{"backdrop-invert":["",Os,Bt,Ft]}],"backdrop-opacity":[{"backdrop-opacity":[Os,Bt,Ft]}],"backdrop-saturate":[{"backdrop-saturate":[Os,Bt,Ft]}],"backdrop-sepia":[{"backdrop-sepia":["",Os,Bt,Ft]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":T()}],"border-spacing-x":[{"border-spacing-x":T()}],"border-spacing-y":[{"border-spacing-y":T()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Bt,Ft]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Os,"initial",Bt,Ft]}],ease:[{ease:["linear","initial",N,Bt,Ft]}],delay:[{delay:[Os,Bt,Ft]}],animate:[{animate:["none",g,Bt,Ft]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[S,Bt,Ft]}],"perspective-origin":[{"perspective-origin":P()}],rotate:[{rotate:ae()}],"rotate-x":[{"rotate-x":ae()}],"rotate-y":[{"rotate-y":ae()}],"rotate-z":[{"rotate-z":ae()}],scale:[{scale:le()}],"scale-x":[{"scale-x":le()}],"scale-y":[{"scale-y":le()}],"scale-z":[{"scale-z":le()}],"scale-3d":["scale-3d"],skew:[{skew:xe()}],"skew-x":[{"skew-x":xe()}],"skew-y":[{"skew-y":xe()}],transform:[{transform:[Bt,Ft,"","none","gpu","cpu"]}],"transform-origin":[{origin:P()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:he()}],"translate-x":[{"translate-x":he()}],"translate-y":[{"translate-y":he()}],"translate-z":[{"translate-z":he()}],"translate-none":["translate-none"],accent:[{accent:K()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:K()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Bt,Ft]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":T()}],"scroll-mx":[{"scroll-mx":T()}],"scroll-my":[{"scroll-my":T()}],"scroll-ms":[{"scroll-ms":T()}],"scroll-me":[{"scroll-me":T()}],"scroll-mt":[{"scroll-mt":T()}],"scroll-mr":[{"scroll-mr":T()}],"scroll-mb":[{"scroll-mb":T()}],"scroll-ml":[{"scroll-ml":T()}],"scroll-p":[{"scroll-p":T()}],"scroll-px":[{"scroll-px":T()}],"scroll-py":[{"scroll-py":T()}],"scroll-ps":[{"scroll-ps":T()}],"scroll-pe":[{"scroll-pe":T()}],"scroll-pt":[{"scroll-pt":T()}],"scroll-pr":[{"scroll-pr":T()}],"scroll-pb":[{"scroll-pb":T()}],"scroll-pl":[{"scroll-pl":T()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Bt,Ft]}],fill:[{fill:["none",...K()]}],"stroke-w":[{stroke:[Os,vm,nu,Nw]}],stroke:[{stroke:["none",...K()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Nq=JW(bq);function Pe(...e){return Nq(e6(e))}const qt=({className:e,...t})=>i.jsxDEV("div",{className:Pe("animate-pulse rounded-md bg-muted",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/skeleton.tsx",lineNumber:5,columnNumber:3},void 0),xq=b.lazy(()=>uN(()=>import("./ReviewsPage-DLD6BGoH.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.ReviewsPage})));let O4=null;function L4(){O4||(O4=uN(()=>import("./ReviewsPage-DLD6BGoH.js"),__vite__mapDeps([0,1,2])))}function yq(){return i.jsxDEV("div",{className:"flex flex-col h-full",children:[i.jsxDEV("div",{className:"border-b p-4 bg-card",children:i.jsxDEV("div",{className:"flex items-center gap-4",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-9 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:38,columnNumber:13},this),i.jsxDEV(qt,{className:"h-9 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:39,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:37,columnNumber:11},this),i.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:41,columnNumber:11},this),i.jsxDEV(qt,{className:"h-9 w-24"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:42,columnNumber:11},this),i.jsxDEV(qt,{className:"h-9 w-9"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:43,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:36,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:35,columnNumber:7},this),i.jsxDEV("div",{className:"flex-1 flex min-h-0",children:[i.jsxDEV("div",{className:"w-64 border-r bg-card p-3 space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-3",children:[i.jsxDEV(qt,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:52,columnNumber:13},this),i.jsxDEV(qt,{className:"h-4 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:53,columnNumber:13},this),i.jsxDEV(qt,{className:"h-5 w-6"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:54,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:51,columnNumber:11},this),Array.from({length:8}).map((e,t)=>i.jsxDEV(qt,{className:"h-8 w-full"},t,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:57,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:50,columnNumber:9},this),i.jsxDEV("div",{className:"flex-1 min-w-0 bg-background p-4",children:i.jsxDEV("div",{className:"space-y-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-4",children:[i.jsxDEV(qt,{className:"h-5 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:65,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:66,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:67,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:64,columnNumber:13},this),Array.from({length:12}).map((e,t)=>i.jsxDEV(qt,{className:"h-6 w-full",style:{width:`${60+Math.random()*40}%`}},t,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:70,columnNumber:15},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:63,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:62,columnNumber:9},this),i.jsxDEV("div",{className:"w-80 border-l bg-card p-4 space-y-3",children:[i.jsxDEV(qt,{className:"h-5 w-24 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:81,columnNumber:11},this),Array.from({length:4}).map((e,t)=>i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-6 w-6 rounded-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:85,columnNumber:17},this),i.jsxDEV(qt,{className:"h-4 w-20"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:86,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:84,columnNumber:15},this),i.jsxDEV(qt,{className:"h-16 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:88,columnNumber:15},this)]},t,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:83,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:80,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:33,columnNumber:5},this)}function wq(){return i.jsxDEV(b.Suspense,{fallback:i.jsxDEV(yq,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:103,columnNumber:25},this),children:i.jsxDEV(xq,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:104,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:103,columnNumber:5},this)}function I4(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function pf(...e){return t=>{let s=!1;const a=e.map(o=>{const c=I4(o,t);return!s&&typeof c=="function"&&(s=!0),c});if(s)return()=>{for(let o=0;o<a.length;o++){const c=a[o];typeof c=="function"?c():I4(e[o],null)}}}}function _s(...e){return b.useCallback(pf(...e),e)}function dc(e){const t=Dq(e),s=b.forwardRef((a,o)=>{const{children:c,...p}=a,l=b.Children.toArray(c),d=l.find(_q);if(d){const h=d.props.children,v=l.map(f=>f===d?b.Children.count(h)>1?b.Children.only(null):b.isValidElement(h)?h.props.children:null:f);return re.jsx(t,{...p,ref:o,children:b.isValidElement(h)?b.cloneElement(h,void 0,v):null})}return re.jsx(t,{...p,ref:o,children:c})});return s.displayName=`${e}.Slot`,s}var Eq=dc("Slot");function Dq(e){const t=b.forwardRef((s,a)=>{const{children:o,...c}=s;if(b.isValidElement(o)){const p=jq(o),l=Cq(c,o.props);return o.type!==b.Fragment&&(l.ref=a?pf(a,p):p),b.cloneElement(o,l)}return b.Children.count(o)>1?b.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var p6=Symbol("radix.slottable");function Sq(e){const t=({children:s})=>re.jsx(re.Fragment,{children:s});return t.displayName=`${e}.Slottable`,t.__radixId=p6,t}function _q(e){return b.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===p6}function Cq(e,t){const s={...t};for(const a in t){const o=e[a],c=t[a];/^on[A-Z]/.test(a)?o&&c?s[a]=(...l)=>{const d=c(...l);return o(...l),d}:o&&(s[a]=o):a==="style"?s[a]={...o,...c}:a==="className"&&(s[a]=[o,c].filter(Boolean).join(" "))}return{...e,...s}}function jq(e){var a,o;let t=(a=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:a.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,s=t&&"isReactWarning"in t&&t.isReactWarning,s?e.props.ref:e.props.ref||e.ref)}const F4=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,B4=e6,df=(e,t)=>s=>{var a;if((t==null?void 0:t.variants)==null)return B4(e,s==null?void 0:s.class,s==null?void 0:s.className);const{variants:o,defaultVariants:c}=t,p=Object.keys(o).map(h=>{const v=s==null?void 0:s[h],f=c==null?void 0:c[h];if(v===null)return null;const E=F4(v)||F4(f);return o[h][E]}),l=s&&Object.entries(s).reduce((h,v)=>{let[f,E]=v;return E===void 0||(h[f]=E),h},{}),d=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((h,v)=>{let{class:f,className:E,...w}=v;return Object.entries(w).every(C=>{let[S,x]=C;return Array.isArray(x)?x.includes({...c,...l}[S]):{...c,...l}[S]===x})?[...h,f,E]:h},[]);return B4(e,p,d,s==null?void 0:s.class,s==null?void 0:s.className)},Pq=df("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),ce=b.forwardRef(({className:e,variant:t,size:s,asChild:a=!1,...o},c)=>{const p=a?Eq:"button";return i.jsxDEV(p,{className:Pe(Pq({variant:t,size:s,className:e})),ref:c,...o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/button.tsx",lineNumber:42,columnNumber:7},void 0)});ce.displayName="Button";function TE(e,[t,s]){return Math.min(s,Math.max(t,e))}function st(e,t,{checkForDefaultPrevented:s=!0}={}){return function(o){if(e==null||e(o),s===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function Tq(e,t){const s=b.createContext(t),a=c=>{const{children:p,...l}=c,d=b.useMemo(()=>l,Object.values(l));return re.jsx(s.Provider,{value:d,children:p})};a.displayName=e+"Provider";function o(c){const p=b.useContext(s);if(p)return p;if(t!==void 0)return t;throw new Error(`\`${c}\` must be used within \`${e}\``)}return[a,o]}function Mr(e,t=[]){let s=[];function a(c,p){const l=b.createContext(p),d=s.length;s=[...s,p];const h=f=>{var N;const{scope:E,children:w,...C}=f,S=((N=E==null?void 0:E[e])==null?void 0:N[d])||l,x=b.useMemo(()=>C,Object.values(C));return re.jsx(S.Provider,{value:x,children:w})};h.displayName=c+"Provider";function v(f,E){var S;const w=((S=E==null?void 0:E[e])==null?void 0:S[d])||l,C=b.useContext(w);if(C)return C;if(p!==void 0)return p;throw new Error(`\`${f}\` must be used within \`${c}\``)}return[h,v]}const o=()=>{const c=s.map(p=>b.createContext(p));return function(l){const d=(l==null?void 0:l[e])||c;return b.useMemo(()=>({[`__scope${e}`]:{...l,[e]:d}}),[l,d])}};return o.scopeName=e,[a,Vq(o,...t)]}function Vq(...e){const t=e[0];if(e.length===1)return t;const s=()=>{const a=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(c){const p=a.reduce((l,{useScope:d,scopeName:h})=>{const f=d(c)[`__scope${h}`];return{...l,...f}},{});return b.useMemo(()=>({[`__scope${t.scopeName}`]:p}),[p])}};return s.scopeName=t.scopeName,s}function pN(e){const t=e+"CollectionProvider",[s,a]=Mr(t),[o,c]=s(t,{collectionRef:{current:null},itemMap:new Map}),p=S=>{const{scope:x,children:N}=S,g=tl.useRef(null),y=tl.useRef(new Map).current;return re.jsx(o,{scope:x,itemMap:y,collectionRef:g,children:N})};p.displayName=t;const l=e+"CollectionSlot",d=dc(l),h=tl.forwardRef((S,x)=>{const{scope:N,children:g}=S,y=c(l,N),_=_s(x,y.collectionRef);return re.jsx(d,{ref:_,children:g})});h.displayName=l;const v=e+"CollectionItemSlot",f="data-radix-collection-item",E=dc(v),w=tl.forwardRef((S,x)=>{const{scope:N,children:g,...y}=S,_=tl.useRef(null),P=_s(x,_),R=c(v,N);return tl.useEffect(()=>(R.itemMap.set(_,{ref:_,...y}),()=>void R.itemMap.delete(_))),re.jsx(E,{[f]:"",ref:P,children:g})});w.displayName=v;function C(S){const x=c(e+"CollectionConsumer",S);return tl.useCallback(()=>{const g=x.collectionRef.current;if(!g)return[];const y=Array.from(g.querySelectorAll(`[${f}]`));return Array.from(x.itemMap.values()).sort((R,j)=>y.indexOf(R.ref.current)-y.indexOf(j.ref.current))},[x.collectionRef,x.itemMap])}return[{Provider:p,Slot:h,ItemSlot:w},C,a]}var Rq=b.createContext(void 0);function hf(e){const t=b.useContext(Rq);return e||t||"ltr"}var kq=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ot=kq.reduce((e,t)=>{const s=dc(`Primitive.${t}`),a=b.forwardRef((o,c)=>{const{asChild:p,...l}=o,d=p?s:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),re.jsx(d,{...l,ref:c})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function FD(e,t){e&&ha.flushSync(()=>e.dispatchEvent(t))}function Ai(e){const t=b.useRef(e);return b.useEffect(()=>{t.current=e}),b.useMemo(()=>(...s)=>{var a;return(a=t.current)==null?void 0:a.call(t,...s)},[])}function Aq(e,t=globalThis==null?void 0:globalThis.document){const s=Ai(e);b.useEffect(()=>{const a=o=>{o.key==="Escape"&&s(o)};return t.addEventListener("keydown",a,{capture:!0}),()=>t.removeEventListener("keydown",a,{capture:!0})},[s,t])}var Mq="DismissableLayer",VE="dismissableLayer.update",Oq="dismissableLayer.pointerDownOutside",Lq="dismissableLayer.focusOutside",z4,d6=b.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Tu=b.forwardRef((e,t)=>{const{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:c,onInteractOutside:p,onDismiss:l,...d}=e,h=b.useContext(d6),[v,f]=b.useState(null),E=(v==null?void 0:v.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,w]=b.useState({}),C=_s(t,j=>f(j)),S=Array.from(h.layers),[x]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),N=S.indexOf(x),g=v?S.indexOf(v):-1,y=h.layersWithOutsidePointerEventsDisabled.size>0,_=g>=N,P=Fq(j=>{const T=j.target,A=[...h.branches].some(k=>k.contains(T));!_||A||(o==null||o(j),p==null||p(j),j.defaultPrevented||l==null||l())},E),R=Bq(j=>{const T=j.target;[...h.branches].some(k=>k.contains(T))||(c==null||c(j),p==null||p(j),j.defaultPrevented||l==null||l())},E);return Aq(j=>{g===h.layers.size-1&&(a==null||a(j),!j.defaultPrevented&&l&&(j.preventDefault(),l()))},E),b.useEffect(()=>{if(v)return s&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(z4=E.body.style.pointerEvents,E.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(v)),h.layers.add(v),U4(),()=>{s&&h.layersWithOutsidePointerEventsDisabled.size===1&&(E.body.style.pointerEvents=z4)}},[v,E,s,h]),b.useEffect(()=>()=>{v&&(h.layers.delete(v),h.layersWithOutsidePointerEventsDisabled.delete(v),U4())},[v,h]),b.useEffect(()=>{const j=()=>w({});return document.addEventListener(VE,j),()=>document.removeEventListener(VE,j)},[]),re.jsx(Ot.div,{...d,ref:C,style:{pointerEvents:y?_?"auto":"none":void 0,...e.style},onFocusCapture:st(e.onFocusCapture,R.onFocusCapture),onBlurCapture:st(e.onBlurCapture,R.onBlurCapture),onPointerDownCapture:st(e.onPointerDownCapture,P.onPointerDownCapture)})});Tu.displayName=Mq;var Iq="DismissableLayerBranch",h6=b.forwardRef((e,t)=>{const s=b.useContext(d6),a=b.useRef(null),o=_s(t,a);return b.useEffect(()=>{const c=a.current;if(c)return s.branches.add(c),()=>{s.branches.delete(c)}},[s.branches]),re.jsx(Ot.div,{...e,ref:o})});h6.displayName=Iq;function Fq(e,t=globalThis==null?void 0:globalThis.document){const s=Ai(e),a=b.useRef(!1),o=b.useRef(()=>{});return b.useEffect(()=>{const c=l=>{if(l.target&&!a.current){let d=function(){m6(Oq,s,h,{discrete:!0})};const h={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=d,t.addEventListener("click",o.current,{once:!0})):d()}else t.removeEventListener("click",o.current);a.current=!1},p=window.setTimeout(()=>{t.addEventListener("pointerdown",c)},0);return()=>{window.clearTimeout(p),t.removeEventListener("pointerdown",c),t.removeEventListener("click",o.current)}},[t,s]),{onPointerDownCapture:()=>a.current=!0}}function Bq(e,t=globalThis==null?void 0:globalThis.document){const s=Ai(e),a=b.useRef(!1);return b.useEffect(()=>{const o=c=>{c.target&&!a.current&&m6(Lq,s,{originalEvent:c},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,s]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}function U4(){const e=new CustomEvent(VE);document.dispatchEvent(e)}function m6(e,t,s,{discrete:a}){const o=s.originalEvent.target,c=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:s});t&&o.addEventListener(e,t,{once:!0}),a?FD(o,c):o.dispatchEvent(c)}var zq=Tu,Uq=h6,xw=0;function dN(){b.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??$4()),document.body.insertAdjacentElement("beforeend",e[1]??$4()),xw++,()=>{xw===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),xw--}},[])}function $4(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var yw="focusScope.autoFocusOnMount",ww="focusScope.autoFocusOnUnmount",H4={bubbles:!1,cancelable:!0},$q="FocusScope",mf=b.forwardRef((e,t)=>{const{loop:s=!1,trapped:a=!1,onMountAutoFocus:o,onUnmountAutoFocus:c,...p}=e,[l,d]=b.useState(null),h=Ai(o),v=Ai(c),f=b.useRef(null),E=_s(t,S=>d(S)),w=b.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;b.useEffect(()=>{if(a){let S=function(y){if(w.paused||!l)return;const _=y.target;l.contains(_)?f.current=_:Ql(f.current,{select:!0})},x=function(y){if(w.paused||!l)return;const _=y.relatedTarget;_!==null&&(l.contains(_)||Ql(f.current,{select:!0}))},N=function(y){if(document.activeElement===document.body)for(const P of y)P.removedNodes.length>0&&Ql(l)};document.addEventListener("focusin",S),document.addEventListener("focusout",x);const g=new MutationObserver(N);return l&&g.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",x),g.disconnect()}}},[a,l,w.paused]),b.useEffect(()=>{if(l){q4.add(w);const S=document.activeElement;if(!l.contains(S)){const N=new CustomEvent(yw,H4);l.addEventListener(yw,h),l.dispatchEvent(N),N.defaultPrevented||(Hq(Yq(f6(l)),{select:!0}),document.activeElement===S&&Ql(l))}return()=>{l.removeEventListener(yw,h),setTimeout(()=>{const N=new CustomEvent(ww,H4);l.addEventListener(ww,v),l.dispatchEvent(N),N.defaultPrevented||Ql(S??document.body,{select:!0}),l.removeEventListener(ww,v),q4.remove(w)},0)}}},[l,h,v,w]);const C=b.useCallback(S=>{if(!s&&!a||w.paused)return;const x=S.key==="Tab"&&!S.altKey&&!S.ctrlKey&&!S.metaKey,N=document.activeElement;if(x&&N){const g=S.currentTarget,[y,_]=Wq(g);y&&_?!S.shiftKey&&N===_?(S.preventDefault(),s&&Ql(y,{select:!0})):S.shiftKey&&N===y&&(S.preventDefault(),s&&Ql(_,{select:!0})):N===g&&S.preventDefault()}},[s,a,w.paused]);return re.jsx(Ot.div,{tabIndex:-1,...p,ref:E,onKeyDown:C})});mf.displayName=$q;function Hq(e,{select:t=!1}={}){const s=document.activeElement;for(const a of e)if(Ql(a,{select:t}),document.activeElement!==s)return}function Wq(e){const t=f6(e),s=W4(t,e),a=W4(t.reverse(),e);return[s,a]}function f6(e){const t=[],s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const o=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||o?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)t.push(s.currentNode);return t}function W4(e,t){for(const s of e)if(!qq(s,{upTo:t}))return s}function qq(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Kq(e){return e instanceof HTMLInputElement&&"select"in e}function Ql(e,{select:t=!1}={}){if(e&&e.focus){const s=document.activeElement;e.focus({preventScroll:!0}),e!==s&&Kq(e)&&t&&e.select()}}var q4=Gq();function Gq(){let e=[];return{add(t){const s=e[0];t!==s&&(s==null||s.pause()),e=K4(e,t),e.unshift(t)},remove(t){var s;e=K4(e,t),(s=e[0])==null||s.resume()}}}function K4(e,t){const s=[...e],a=s.indexOf(t);return a!==-1&&s.splice(a,1),s}function Yq(e){return e.filter(t=>t.tagName!=="A")}var Hi=globalThis!=null&&globalThis.document?b.useLayoutEffect:()=>{},Qq=SD[" useId ".trim().toString()]||(()=>{}),Xq=0;function dn(e){const[t,s]=b.useState(Qq());return Hi(()=>{s(a=>a??String(Xq++))},[e]),e||(t?`radix-${t}`:"")}const Zq=["top","right","bottom","left"],hc=Math.min,$n=Math.max,Ib=Math.round,Hv=Math.floor,go=e=>({x:e,y:e}),Jq={left:"right",right:"left",bottom:"top",top:"bottom"},eK={start:"end",end:"start"};function RE(e,t,s){return $n(e,hc(t,s))}function hl(e,t){return typeof e=="function"?e(t):e}function ml(e){return e.split("-")[0]}function _d(e){return e.split("-")[1]}function BD(e){return e==="x"?"y":"x"}function zD(e){return e==="y"?"height":"width"}const tK=new Set(["top","bottom"]);function mo(e){return tK.has(ml(e))?"y":"x"}function UD(e){return BD(mo(e))}function sK(e,t,s){s===void 0&&(s=!1);const a=_d(e),o=UD(e),c=zD(o);let p=o==="x"?a===(s?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[c]>t.floating[c]&&(p=Fb(p)),[p,Fb(p)]}function iK(e){const t=Fb(e);return[kE(e),t,kE(t)]}function kE(e){return e.replace(/start|end/g,t=>eK[t])}const G4=["left","right"],Y4=["right","left"],rK=["top","bottom"],nK=["bottom","top"];function aK(e,t,s){switch(e){case"top":case"bottom":return s?t?Y4:G4:t?G4:Y4;case"left":case"right":return t?rK:nK;default:return[]}}function oK(e,t,s,a){const o=_d(e);let c=aK(ml(e),s==="start",a);return o&&(c=c.map(p=>p+"-"+o),t&&(c=c.concat(c.map(kE)))),c}function Fb(e){return e.replace(/left|right|bottom|top/g,t=>Jq[t])}function lK(e){return{top:0,right:0,bottom:0,left:0,...e}}function g6(e){return typeof e!="number"?lK(e):{top:e,right:e,bottom:e,left:e}}function Bb(e){const{x:t,y:s,width:a,height:o}=e;return{width:a,height:o,top:s,left:t,right:t+a,bottom:s+o,x:t,y:s}}function Q4(e,t,s){let{reference:a,floating:o}=e;const c=mo(t),p=UD(t),l=zD(p),d=ml(t),h=c==="y",v=a.x+a.width/2-o.width/2,f=a.y+a.height/2-o.height/2,E=a[l]/2-o[l]/2;let w;switch(d){case"top":w={x:v,y:a.y-o.height};break;case"bottom":w={x:v,y:a.y+a.height};break;case"right":w={x:a.x+a.width,y:f};break;case"left":w={x:a.x-o.width,y:f};break;default:w={x:a.x,y:a.y}}switch(_d(t)){case"start":w[p]-=E*(s&&h?-1:1);break;case"end":w[p]+=E*(s&&h?-1:1);break}return w}const cK=async(e,t,s)=>{const{placement:a="bottom",strategy:o="absolute",middleware:c=[],platform:p}=s,l=c.filter(Boolean),d=await(p.isRTL==null?void 0:p.isRTL(t));let h=await p.getElementRects({reference:e,floating:t,strategy:o}),{x:v,y:f}=Q4(h,a,d),E=a,w={},C=0;for(let S=0;S<l.length;S++){const{name:x,fn:N}=l[S],{x:g,y,data:_,reset:P}=await N({x:v,y:f,initialPlacement:a,placement:E,strategy:o,middlewareData:w,rects:h,platform:p,elements:{reference:e,floating:t}});v=g??v,f=y??f,w={...w,[x]:{...w[x],..._}},P&&C<=50&&(C++,typeof P=="object"&&(P.placement&&(E=P.placement),P.rects&&(h=P.rects===!0?await p.getElementRects({reference:e,floating:t,strategy:o}):P.rects),{x:v,y:f}=Q4(h,E,d)),S=-1)}return{x:v,y:f,placement:E,strategy:o,middlewareData:w}};async function Bm(e,t){var s;t===void 0&&(t={});const{x:a,y:o,platform:c,rects:p,elements:l,strategy:d}=e,{boundary:h="clippingAncestors",rootBoundary:v="viewport",elementContext:f="floating",altBoundary:E=!1,padding:w=0}=hl(t,e),C=g6(w),x=l[E?f==="floating"?"reference":"floating":f],N=Bb(await c.getClippingRect({element:(s=await(c.isElement==null?void 0:c.isElement(x)))==null||s?x:x.contextElement||await(c.getDocumentElement==null?void 0:c.getDocumentElement(l.floating)),boundary:h,rootBoundary:v,strategy:d})),g=f==="floating"?{x:a,y:o,width:p.floating.width,height:p.floating.height}:p.reference,y=await(c.getOffsetParent==null?void 0:c.getOffsetParent(l.floating)),_=await(c.isElement==null?void 0:c.isElement(y))?await(c.getScale==null?void 0:c.getScale(y))||{x:1,y:1}:{x:1,y:1},P=Bb(c.convertOffsetParentRelativeRectToViewportRelativeRect?await c.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:g,offsetParent:y,strategy:d}):g);return{top:(N.top-P.top+C.top)/_.y,bottom:(P.bottom-N.bottom+C.bottom)/_.y,left:(N.left-P.left+C.left)/_.x,right:(P.right-N.right+C.right)/_.x}}const uK=e=>({name:"arrow",options:e,async fn(t){const{x:s,y:a,placement:o,rects:c,platform:p,elements:l,middlewareData:d}=t,{element:h,padding:v=0}=hl(e,t)||{};if(h==null)return{};const f=g6(v),E={x:s,y:a},w=UD(o),C=zD(w),S=await p.getDimensions(h),x=w==="y",N=x?"top":"left",g=x?"bottom":"right",y=x?"clientHeight":"clientWidth",_=c.reference[C]+c.reference[w]-E[w]-c.floating[C],P=E[w]-c.reference[w],R=await(p.getOffsetParent==null?void 0:p.getOffsetParent(h));let j=R?R[y]:0;(!j||!await(p.isElement==null?void 0:p.isElement(R)))&&(j=l.floating[y]||c.floating[C]);const T=_/2-P/2,A=j/2-S[C]/2-1,k=hc(f[N],A),F=hc(f[g],A),M=k,L=j-S[C]-F,U=j/2-S[C]/2+T,Z=RE(M,U,L),q=!d.arrow&&_d(o)!=null&&U!==Z&&c.reference[C]/2-(U<M?k:F)-S[C]/2<0,Y=q?U<M?U-M:U-L:0;return{[w]:E[w]+Y,data:{[w]:Z,centerOffset:U-Z-Y,...q&&{alignmentOffset:Y}},reset:q}}}),pK=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var s,a;const{placement:o,middlewareData:c,rects:p,initialPlacement:l,platform:d,elements:h}=t,{mainAxis:v=!0,crossAxis:f=!0,fallbackPlacements:E,fallbackStrategy:w="bestFit",fallbackAxisSideDirection:C="none",flipAlignment:S=!0,...x}=hl(e,t);if((s=c.arrow)!=null&&s.alignmentOffset)return{};const N=ml(o),g=mo(l),y=ml(l)===l,_=await(d.isRTL==null?void 0:d.isRTL(h.floating)),P=E||(y||!S?[Fb(l)]:iK(l)),R=C!=="none";!E&&R&&P.push(...oK(l,S,C,_));const j=[l,...P],T=await Bm(t,x),A=[];let k=((a=c.flip)==null?void 0:a.overflows)||[];if(v&&A.push(T[N]),f){const U=sK(o,p,_);A.push(T[U[0]],T[U[1]])}if(k=[...k,{placement:o,overflows:A}],!A.every(U=>U<=0)){var F,M;const U=(((F=c.flip)==null?void 0:F.index)||0)+1,Z=j[U];if(Z&&(!(f==="alignment"?g!==mo(Z):!1)||k.every(K=>mo(K.placement)===g?K.overflows[0]>0:!0)))return{data:{index:U,overflows:k},reset:{placement:Z}};let q=(M=k.filter(Y=>Y.overflows[0]<=0).sort((Y,K)=>Y.overflows[1]-K.overflows[1])[0])==null?void 0:M.placement;if(!q)switch(w){case"bestFit":{var L;const Y=(L=k.filter(K=>{if(R){const O=mo(K.placement);return O===g||O==="y"}return!0}).map(K=>[K.placement,K.overflows.filter(O=>O>0).reduce((O,B)=>O+B,0)]).sort((K,O)=>K[1]-O[1])[0])==null?void 0:L[0];Y&&(q=Y);break}case"initialPlacement":q=l;break}if(o!==q)return{reset:{placement:q}}}return{}}}};function X4(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Z4(e){return Zq.some(t=>e[t]>=0)}const dK=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:s}=t,{strategy:a="referenceHidden",...o}=hl(e,t);switch(a){case"referenceHidden":{const c=await Bm(t,{...o,elementContext:"reference"}),p=X4(c,s.reference);return{data:{referenceHiddenOffsets:p,referenceHidden:Z4(p)}}}case"escaped":{const c=await Bm(t,{...o,altBoundary:!0}),p=X4(c,s.floating);return{data:{escapedOffsets:p,escaped:Z4(p)}}}default:return{}}}}},v6=new Set(["left","top"]);async function hK(e,t){const{placement:s,platform:a,elements:o}=e,c=await(a.isRTL==null?void 0:a.isRTL(o.floating)),p=ml(s),l=_d(s),d=mo(s)==="y",h=v6.has(p)?-1:1,v=c&&d?-1:1,f=hl(t,e);let{mainAxis:E,crossAxis:w,alignmentAxis:C}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return l&&typeof C=="number"&&(w=l==="end"?C*-1:C),d?{x:w*v,y:E*h}:{x:E*h,y:w*v}}const mK=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var s,a;const{x:o,y:c,placement:p,middlewareData:l}=t,d=await hK(t,e);return p===((s=l.offset)==null?void 0:s.placement)&&(a=l.arrow)!=null&&a.alignmentOffset?{}:{x:o+d.x,y:c+d.y,data:{...d,placement:p}}}}},fK=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:s,y:a,placement:o}=t,{mainAxis:c=!0,crossAxis:p=!1,limiter:l={fn:x=>{let{x:N,y:g}=x;return{x:N,y:g}}},...d}=hl(e,t),h={x:s,y:a},v=await Bm(t,d),f=mo(ml(o)),E=BD(f);let w=h[E],C=h[f];if(c){const x=E==="y"?"top":"left",N=E==="y"?"bottom":"right",g=w+v[x],y=w-v[N];w=RE(g,w,y)}if(p){const x=f==="y"?"top":"left",N=f==="y"?"bottom":"right",g=C+v[x],y=C-v[N];C=RE(g,C,y)}const S=l.fn({...t,[E]:w,[f]:C});return{...S,data:{x:S.x-s,y:S.y-a,enabled:{[E]:c,[f]:p}}}}}},gK=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:s,y:a,placement:o,rects:c,middlewareData:p}=t,{offset:l=0,mainAxis:d=!0,crossAxis:h=!0}=hl(e,t),v={x:s,y:a},f=mo(o),E=BD(f);let w=v[E],C=v[f];const S=hl(l,t),x=typeof S=="number"?{mainAxis:S,crossAxis:0}:{mainAxis:0,crossAxis:0,...S};if(d){const y=E==="y"?"height":"width",_=c.reference[E]-c.floating[y]+x.mainAxis,P=c.reference[E]+c.reference[y]-x.mainAxis;w<_?w=_:w>P&&(w=P)}if(h){var N,g;const y=E==="y"?"width":"height",_=v6.has(ml(o)),P=c.reference[f]-c.floating[y]+(_&&((N=p.offset)==null?void 0:N[f])||0)+(_?0:x.crossAxis),R=c.reference[f]+c.reference[y]+(_?0:((g=p.offset)==null?void 0:g[f])||0)-(_?x.crossAxis:0);C<P?C=P:C>R&&(C=R)}return{[E]:w,[f]:C}}}},vK=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var s,a;const{placement:o,rects:c,platform:p,elements:l}=t,{apply:d=()=>{},...h}=hl(e,t),v=await Bm(t,h),f=ml(o),E=_d(o),w=mo(o)==="y",{width:C,height:S}=c.floating;let x,N;f==="top"||f==="bottom"?(x=f,N=E===(await(p.isRTL==null?void 0:p.isRTL(l.floating))?"start":"end")?"left":"right"):(N=f,x=E==="end"?"top":"bottom");const g=S-v.top-v.bottom,y=C-v.left-v.right,_=hc(S-v[x],g),P=hc(C-v[N],y),R=!t.middlewareData.shift;let j=_,T=P;if((s=t.middlewareData.shift)!=null&&s.enabled.x&&(T=y),(a=t.middlewareData.shift)!=null&&a.enabled.y&&(j=g),R&&!E){const k=$n(v.left,0),F=$n(v.right,0),M=$n(v.top,0),L=$n(v.bottom,0);w?T=C-2*(k!==0||F!==0?k+F:$n(v.left,v.right)):j=S-2*(M!==0||L!==0?M+L:$n(v.top,v.bottom))}await d({...t,availableWidth:T,availableHeight:j});const A=await p.getDimensions(l.floating);return C!==A.width||S!==A.height?{reset:{rects:!0}}:{}}}};function hN(){return typeof window<"u"}function Cd(e){return b6(e)?(e.nodeName||"").toLowerCase():"#document"}function Hn(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Eo(e){var t;return(t=(b6(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function b6(e){return hN()?e instanceof Node||e instanceof Hn(e).Node:!1}function Ia(e){return hN()?e instanceof Element||e instanceof Hn(e).Element:!1}function No(e){return hN()?e instanceof HTMLElement||e instanceof Hn(e).HTMLElement:!1}function J4(e){return!hN()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Hn(e).ShadowRoot}const bK=new Set(["inline","contents"]);function ff(e){const{overflow:t,overflowX:s,overflowY:a,display:o}=Fa(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+s)&&!bK.has(o)}const NK=new Set(["table","td","th"]);function xK(e){return NK.has(Cd(e))}const yK=[":popover-open",":modal"];function mN(e){return yK.some(t=>{try{return e.matches(t)}catch{return!1}})}const wK=["transform","translate","scale","rotate","perspective"],EK=["transform","translate","scale","rotate","perspective","filter"],DK=["paint","layout","strict","content"];function $D(e){const t=HD(),s=Ia(e)?Fa(e):e;return wK.some(a=>s[a]?s[a]!=="none":!1)||(s.containerType?s.containerType!=="normal":!1)||!t&&(s.backdropFilter?s.backdropFilter!=="none":!1)||!t&&(s.filter?s.filter!=="none":!1)||EK.some(a=>(s.willChange||"").includes(a))||DK.some(a=>(s.contain||"").includes(a))}function SK(e){let t=mc(e);for(;No(t)&&!dd(t);){if($D(t))return t;if(mN(t))return null;t=mc(t)}return null}function HD(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const _K=new Set(["html","body","#document"]);function dd(e){return _K.has(Cd(e))}function Fa(e){return Hn(e).getComputedStyle(e)}function fN(e){return Ia(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function mc(e){if(Cd(e)==="html")return e;const t=e.assignedSlot||e.parentNode||J4(e)&&e.host||Eo(e);return J4(t)?t.host:t}function N6(e){const t=mc(e);return dd(t)?e.ownerDocument?e.ownerDocument.body:e.body:No(t)&&ff(t)?t:N6(t)}function zm(e,t,s){var a;t===void 0&&(t=[]),s===void 0&&(s=!0);const o=N6(e),c=o===((a=e.ownerDocument)==null?void 0:a.body),p=Hn(o);if(c){const l=AE(p);return t.concat(p,p.visualViewport||[],ff(o)?o:[],l&&s?zm(l):[])}return t.concat(o,zm(o,[],s))}function AE(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function x6(e){const t=Fa(e);let s=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const o=No(e),c=o?e.offsetWidth:s,p=o?e.offsetHeight:a,l=Ib(s)!==c||Ib(a)!==p;return l&&(s=c,a=p),{width:s,height:a,$:l}}function WD(e){return Ia(e)?e:e.contextElement}function Qp(e){const t=WD(e);if(!No(t))return go(1);const s=t.getBoundingClientRect(),{width:a,height:o,$:c}=x6(t);let p=(c?Ib(s.width):s.width)/a,l=(c?Ib(s.height):s.height)/o;return(!p||!Number.isFinite(p))&&(p=1),(!l||!Number.isFinite(l))&&(l=1),{x:p,y:l}}const CK=go(0);function y6(e){const t=Hn(e);return!HD()||!t.visualViewport?CK:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function jK(e,t,s){return t===void 0&&(t=!1),!s||t&&s!==Hn(e)?!1:t}function wu(e,t,s,a){t===void 0&&(t=!1),s===void 0&&(s=!1);const o=e.getBoundingClientRect(),c=WD(e);let p=go(1);t&&(a?Ia(a)&&(p=Qp(a)):p=Qp(e));const l=jK(c,s,a)?y6(c):go(0);let d=(o.left+l.x)/p.x,h=(o.top+l.y)/p.y,v=o.width/p.x,f=o.height/p.y;if(c){const E=Hn(c),w=a&&Ia(a)?Hn(a):a;let C=E,S=AE(C);for(;S&&a&&w!==C;){const x=Qp(S),N=S.getBoundingClientRect(),g=Fa(S),y=N.left+(S.clientLeft+parseFloat(g.paddingLeft))*x.x,_=N.top+(S.clientTop+parseFloat(g.paddingTop))*x.y;d*=x.x,h*=x.y,v*=x.x,f*=x.y,d+=y,h+=_,C=Hn(S),S=AE(C)}}return Bb({width:v,height:f,x:d,y:h})}function gN(e,t){const s=fN(e).scrollLeft;return t?t.left+s:wu(Eo(e)).left+s}function w6(e,t){const s=e.getBoundingClientRect(),a=s.left+t.scrollLeft-gN(e,s),o=s.top+t.scrollTop;return{x:a,y:o}}function PK(e){let{elements:t,rect:s,offsetParent:a,strategy:o}=e;const c=o==="fixed",p=Eo(a),l=t?mN(t.floating):!1;if(a===p||l&&c)return s;let d={scrollLeft:0,scrollTop:0},h=go(1);const v=go(0),f=No(a);if((f||!f&&!c)&&((Cd(a)!=="body"||ff(p))&&(d=fN(a)),No(a))){const w=wu(a);h=Qp(a),v.x=w.x+a.clientLeft,v.y=w.y+a.clientTop}const E=p&&!f&&!c?w6(p,d):go(0);return{width:s.width*h.x,height:s.height*h.y,x:s.x*h.x-d.scrollLeft*h.x+v.x+E.x,y:s.y*h.y-d.scrollTop*h.y+v.y+E.y}}function TK(e){return Array.from(e.getClientRects())}function VK(e){const t=Eo(e),s=fN(e),a=e.ownerDocument.body,o=$n(t.scrollWidth,t.clientWidth,a.scrollWidth,a.clientWidth),c=$n(t.scrollHeight,t.clientHeight,a.scrollHeight,a.clientHeight);let p=-s.scrollLeft+gN(e);const l=-s.scrollTop;return Fa(a).direction==="rtl"&&(p+=$n(t.clientWidth,a.clientWidth)-o),{width:o,height:c,x:p,y:l}}const ej=25;function RK(e,t){const s=Hn(e),a=Eo(e),o=s.visualViewport;let c=a.clientWidth,p=a.clientHeight,l=0,d=0;if(o){c=o.width,p=o.height;const v=HD();(!v||v&&t==="fixed")&&(l=o.offsetLeft,d=o.offsetTop)}const h=gN(a);if(h<=0){const v=a.ownerDocument,f=v.body,E=getComputedStyle(f),w=v.compatMode==="CSS1Compat"&&parseFloat(E.marginLeft)+parseFloat(E.marginRight)||0,C=Math.abs(a.clientWidth-f.clientWidth-w);C<=ej&&(c-=C)}else h<=ej&&(c+=h);return{width:c,height:p,x:l,y:d}}const kK=new Set(["absolute","fixed"]);function AK(e,t){const s=wu(e,!0,t==="fixed"),a=s.top+e.clientTop,o=s.left+e.clientLeft,c=No(e)?Qp(e):go(1),p=e.clientWidth*c.x,l=e.clientHeight*c.y,d=o*c.x,h=a*c.y;return{width:p,height:l,x:d,y:h}}function tj(e,t,s){let a;if(t==="viewport")a=RK(e,s);else if(t==="document")a=VK(Eo(e));else if(Ia(t))a=AK(t,s);else{const o=y6(e);a={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Bb(a)}function E6(e,t){const s=mc(e);return s===t||!Ia(s)||dd(s)?!1:Fa(s).position==="fixed"||E6(s,t)}function MK(e,t){const s=t.get(e);if(s)return s;let a=zm(e,[],!1).filter(l=>Ia(l)&&Cd(l)!=="body"),o=null;const c=Fa(e).position==="fixed";let p=c?mc(e):e;for(;Ia(p)&&!dd(p);){const l=Fa(p),d=$D(p);!d&&l.position==="fixed"&&(o=null),(c?!d&&!o:!d&&l.position==="static"&&!!o&&kK.has(o.position)||ff(p)&&!d&&E6(e,p))?a=a.filter(v=>v!==p):o=l,p=mc(p)}return t.set(e,a),a}function OK(e){let{element:t,boundary:s,rootBoundary:a,strategy:o}=e;const p=[...s==="clippingAncestors"?mN(t)?[]:MK(t,this._c):[].concat(s),a],l=p[0],d=p.reduce((h,v)=>{const f=tj(t,v,o);return h.top=$n(f.top,h.top),h.right=hc(f.right,h.right),h.bottom=hc(f.bottom,h.bottom),h.left=$n(f.left,h.left),h},tj(t,l,o));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function LK(e){const{width:t,height:s}=x6(e);return{width:t,height:s}}function IK(e,t,s){const a=No(t),o=Eo(t),c=s==="fixed",p=wu(e,!0,c,t);let l={scrollLeft:0,scrollTop:0};const d=go(0);function h(){d.x=gN(o)}if(a||!a&&!c)if((Cd(t)!=="body"||ff(o))&&(l=fN(t)),a){const w=wu(t,!0,c,t);d.x=w.x+t.clientLeft,d.y=w.y+t.clientTop}else o&&h();c&&!a&&o&&h();const v=o&&!a&&!c?w6(o,l):go(0),f=p.left+l.scrollLeft-d.x-v.x,E=p.top+l.scrollTop-d.y-v.y;return{x:f,y:E,width:p.width,height:p.height}}function Ew(e){return Fa(e).position==="static"}function sj(e,t){if(!No(e)||Fa(e).position==="fixed")return null;if(t)return t(e);let s=e.offsetParent;return Eo(e)===s&&(s=s.ownerDocument.body),s}function D6(e,t){const s=Hn(e);if(mN(e))return s;if(!No(e)){let o=mc(e);for(;o&&!dd(o);){if(Ia(o)&&!Ew(o))return o;o=mc(o)}return s}let a=sj(e,t);for(;a&&xK(a)&&Ew(a);)a=sj(a,t);return a&&dd(a)&&Ew(a)&&!$D(a)?s:a||SK(e)||s}const FK=async function(e){const t=this.getOffsetParent||D6,s=this.getDimensions,a=await s(e.floating);return{reference:IK(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function BK(e){return Fa(e).direction==="rtl"}const zK={convertOffsetParentRelativeRectToViewportRelativeRect:PK,getDocumentElement:Eo,getClippingRect:OK,getOffsetParent:D6,getElementRects:FK,getClientRects:TK,getDimensions:LK,getScale:Qp,isElement:Ia,isRTL:BK};function S6(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function UK(e,t){let s=null,a;const o=Eo(e);function c(){var l;clearTimeout(a),(l=s)==null||l.disconnect(),s=null}function p(l,d){l===void 0&&(l=!1),d===void 0&&(d=1),c();const h=e.getBoundingClientRect(),{left:v,top:f,width:E,height:w}=h;if(l||t(),!E||!w)return;const C=Hv(f),S=Hv(o.clientWidth-(v+E)),x=Hv(o.clientHeight-(f+w)),N=Hv(v),y={rootMargin:-C+"px "+-S+"px "+-x+"px "+-N+"px",threshold:$n(0,hc(1,d))||1};let _=!0;function P(R){const j=R[0].intersectionRatio;if(j!==d){if(!_)return p();j?p(!1,j):a=setTimeout(()=>{p(!1,1e-7)},1e3)}j===1&&!S6(h,e.getBoundingClientRect())&&p(),_=!1}try{s=new IntersectionObserver(P,{...y,root:o.ownerDocument})}catch{s=new IntersectionObserver(P,y)}s.observe(e)}return p(!0),c}function $K(e,t,s,a){a===void 0&&(a={});const{ancestorScroll:o=!0,ancestorResize:c=!0,elementResize:p=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:d=!1}=a,h=WD(e),v=o||c?[...h?zm(h):[],...zm(t)]:[];v.forEach(N=>{o&&N.addEventListener("scroll",s,{passive:!0}),c&&N.addEventListener("resize",s)});const f=h&&l?UK(h,s):null;let E=-1,w=null;p&&(w=new ResizeObserver(N=>{let[g]=N;g&&g.target===h&&w&&(w.unobserve(t),cancelAnimationFrame(E),E=requestAnimationFrame(()=>{var y;(y=w)==null||y.observe(t)})),s()}),h&&!d&&w.observe(h),w.observe(t));let C,S=d?wu(e):null;d&&x();function x(){const N=wu(e);S&&!S6(S,N)&&s(),S=N,C=requestAnimationFrame(x)}return s(),()=>{var N;v.forEach(g=>{o&&g.removeEventListener("scroll",s),c&&g.removeEventListener("resize",s)}),f==null||f(),(N=w)==null||N.disconnect(),w=null,d&&cancelAnimationFrame(C)}}const HK=mK,WK=fK,qK=pK,KK=vK,GK=dK,ij=uK,YK=gK,QK=(e,t,s)=>{const a=new Map,o={platform:zK,...s},c={...o.platform,_c:a};return cK(e,t,{...o,platform:c})};var XK=typeof document<"u",ZK=function(){},vb=XK?b.useLayoutEffect:ZK;function zb(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let s,a,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(s=e.length,s!==t.length)return!1;for(a=s;a--!==0;)if(!zb(e[a],t[a]))return!1;return!0}if(o=Object.keys(e),s=o.length,s!==Object.keys(t).length)return!1;for(a=s;a--!==0;)if(!{}.hasOwnProperty.call(t,o[a]))return!1;for(a=s;a--!==0;){const c=o[a];if(!(c==="_owner"&&e.$$typeof)&&!zb(e[c],t[c]))return!1}return!0}return e!==e&&t!==t}function _6(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function rj(e,t){const s=_6(e);return Math.round(t*s)/s}function Dw(e){const t=b.useRef(e);return vb(()=>{t.current=e}),t}function JK(e){e===void 0&&(e={});const{placement:t="bottom",strategy:s="absolute",middleware:a=[],platform:o,elements:{reference:c,floating:p}={},transform:l=!0,whileElementsMounted:d,open:h}=e,[v,f]=b.useState({x:0,y:0,strategy:s,placement:t,middlewareData:{},isPositioned:!1}),[E,w]=b.useState(a);zb(E,a)||w(a);const[C,S]=b.useState(null),[x,N]=b.useState(null),g=b.useCallback(K=>{K!==R.current&&(R.current=K,S(K))},[]),y=b.useCallback(K=>{K!==j.current&&(j.current=K,N(K))},[]),_=c||C,P=p||x,R=b.useRef(null),j=b.useRef(null),T=b.useRef(v),A=d!=null,k=Dw(d),F=Dw(o),M=Dw(h),L=b.useCallback(()=>{if(!R.current||!j.current)return;const K={placement:t,strategy:s,middleware:E};F.current&&(K.platform=F.current),QK(R.current,j.current,K).then(O=>{const B={...O,isPositioned:M.current!==!1};U.current&&!zb(T.current,B)&&(T.current=B,ha.flushSync(()=>{f(B)}))})},[E,t,s,F,M]);vb(()=>{h===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,f(K=>({...K,isPositioned:!1})))},[h]);const U=b.useRef(!1);vb(()=>(U.current=!0,()=>{U.current=!1}),[]),vb(()=>{if(_&&(R.current=_),P&&(j.current=P),_&&P){if(k.current)return k.current(_,P,L);L()}},[_,P,L,k,A]);const Z=b.useMemo(()=>({reference:R,floating:j,setReference:g,setFloating:y}),[g,y]),q=b.useMemo(()=>({reference:_,floating:P}),[_,P]),Y=b.useMemo(()=>{const K={position:s,left:0,top:0};if(!q.floating)return K;const O=rj(q.floating,v.x),B=rj(q.floating,v.y);return l?{...K,transform:"translate("+O+"px, "+B+"px)",..._6(q.floating)>=1.5&&{willChange:"transform"}}:{position:s,left:O,top:B}},[s,l,q.floating,v.x,v.y]);return b.useMemo(()=>({...v,update:L,refs:Z,elements:q,floatingStyles:Y}),[v,L,Z,q,Y])}const eG=e=>{function t(s){return{}.hasOwnProperty.call(s,"current")}return{name:"arrow",options:e,fn(s){const{element:a,padding:o}=typeof e=="function"?e(s):e;return a&&t(a)?a.current!=null?ij({element:a.current,padding:o}).fn(s):{}:a?ij({element:a,padding:o}).fn(s):{}}}},tG=(e,t)=>({...HK(e),options:[e,t]}),sG=(e,t)=>({...WK(e),options:[e,t]}),iG=(e,t)=>({...YK(e),options:[e,t]}),rG=(e,t)=>({...qK(e),options:[e,t]}),nG=(e,t)=>({...KK(e),options:[e,t]}),aG=(e,t)=>({...GK(e),options:[e,t]}),oG=(e,t)=>({...eG(e),options:[e,t]});var lG="Arrow",C6=b.forwardRef((e,t)=>{const{children:s,width:a=10,height:o=5,...c}=e;return re.jsx(Ot.svg,{...c,ref:t,width:a,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?s:re.jsx("polygon",{points:"0,0 30,0 15,10"})})});C6.displayName=lG;var cG=C6;function qD(e){const[t,s]=b.useState(void 0);return Hi(()=>{if(e){s({width:e.offsetWidth,height:e.offsetHeight});const a=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const c=o[0];let p,l;if("borderBoxSize"in c){const d=c.borderBoxSize,h=Array.isArray(d)?d[0]:d;p=h.inlineSize,l=h.blockSize}else p=e.offsetWidth,l=e.offsetHeight;s({width:p,height:l})});return a.observe(e,{box:"border-box"}),()=>a.unobserve(e)}else s(void 0)},[e]),t}var KD="Popper",[j6,vc]=Mr(KD),[uG,P6]=j6(KD),T6=e=>{const{__scopePopper:t,children:s}=e,[a,o]=b.useState(null);return re.jsx(uG,{scope:t,anchor:a,onAnchorChange:o,children:s})};T6.displayName=KD;var V6="PopperAnchor",R6=b.forwardRef((e,t)=>{const{__scopePopper:s,virtualRef:a,...o}=e,c=P6(V6,s),p=b.useRef(null),l=_s(t,p),d=b.useRef(null);return b.useEffect(()=>{const h=d.current;d.current=(a==null?void 0:a.current)||p.current,h!==d.current&&c.onAnchorChange(d.current)}),a?null:re.jsx(Ot.div,{...o,ref:l})});R6.displayName=V6;var GD="PopperContent",[pG,dG]=j6(GD),k6=b.forwardRef((e,t)=>{var Q,W,ae,le,xe,he;const{__scopePopper:s,side:a="bottom",sideOffset:o=0,align:c="center",alignOffset:p=0,arrowPadding:l=0,avoidCollisions:d=!0,collisionBoundary:h=[],collisionPadding:v=0,sticky:f="partial",hideWhenDetached:E=!1,updatePositionStrategy:w="optimized",onPlaced:C,...S}=e,x=P6(GD,s),[N,g]=b.useState(null),y=_s(t,Me=>g(Me)),[_,P]=b.useState(null),R=qD(_),j=(R==null?void 0:R.width)??0,T=(R==null?void 0:R.height)??0,A=a+(c!=="center"?"-"+c:""),k=typeof v=="number"?v:{top:0,right:0,bottom:0,left:0,...v},F=Array.isArray(h)?h:[h],M=F.length>0,L={padding:k,boundary:F.filter(mG),altBoundary:M},{refs:U,floatingStyles:Z,placement:q,isPositioned:Y,middlewareData:K}=JK({strategy:"fixed",placement:A,whileElementsMounted:(...Me)=>$K(...Me,{animationFrame:w==="always"}),elements:{reference:x.anchor},middleware:[tG({mainAxis:o+T,alignmentAxis:p}),d&&sG({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?iG():void 0,...L}),d&&rG({...L}),nG({...L,apply:({elements:Me,rects:me,availableWidth:Ee,availableHeight:Fe})=>{const{width:Le,height:gt}=me.reference,Gt=Me.floating.style;Gt.setProperty("--radix-popper-available-width",`${Ee}px`),Gt.setProperty("--radix-popper-available-height",`${Fe}px`),Gt.setProperty("--radix-popper-anchor-width",`${Le}px`),Gt.setProperty("--radix-popper-anchor-height",`${gt}px`)}}),_&&oG({element:_,padding:l}),fG({arrowWidth:j,arrowHeight:T}),E&&aG({strategy:"referenceHidden",...L})]}),[O,B]=O6(q),z=Ai(C);Hi(()=>{Y&&(z==null||z())},[Y,z]);const H=(Q=K.arrow)==null?void 0:Q.x,J=(W=K.arrow)==null?void 0:W.y,te=((ae=K.arrow)==null?void 0:ae.centerOffset)!==0,[Ne,De]=b.useState();return Hi(()=>{N&&De(window.getComputedStyle(N).zIndex)},[N]),re.jsx("div",{ref:U.setFloating,"data-radix-popper-content-wrapper":"",style:{...Z,transform:Y?Z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Ne,"--radix-popper-transform-origin":[(le=K.transformOrigin)==null?void 0:le.x,(xe=K.transformOrigin)==null?void 0:xe.y].join(" "),...((he=K.hide)==null?void 0:he.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:re.jsx(pG,{scope:s,placedSide:O,onArrowChange:P,arrowX:H,arrowY:J,shouldHideArrow:te,children:re.jsx(Ot.div,{"data-side":O,"data-align":B,...S,ref:y,style:{...S.style,animation:Y?void 0:"none"}})})})});k6.displayName=GD;var A6="PopperArrow",hG={top:"bottom",right:"left",bottom:"top",left:"right"},M6=b.forwardRef(function(t,s){const{__scopePopper:a,...o}=t,c=dG(A6,a),p=hG[c.placedSide];return re.jsx("span",{ref:c.onArrowChange,style:{position:"absolute",left:c.arrowX,top:c.arrowY,[p]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[c.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[c.placedSide],visibility:c.shouldHideArrow?"hidden":void 0},children:re.jsx(cG,{...o,ref:s,style:{...o.style,display:"block"}})})});M6.displayName=A6;function mG(e){return e!==null}var fG=e=>({name:"transformOrigin",options:e,fn(t){var x,N,g;const{placement:s,rects:a,middlewareData:o}=t,p=((x=o.arrow)==null?void 0:x.centerOffset)!==0,l=p?0:e.arrowWidth,d=p?0:e.arrowHeight,[h,v]=O6(s),f={start:"0%",center:"50%",end:"100%"}[v],E=(((N=o.arrow)==null?void 0:N.x)??0)+l/2,w=(((g=o.arrow)==null?void 0:g.y)??0)+d/2;let C="",S="";return h==="bottom"?(C=p?f:`${E}px`,S=`${-d}px`):h==="top"?(C=p?f:`${E}px`,S=`${a.floating.height+d}px`):h==="right"?(C=`${-d}px`,S=p?f:`${w}px`):h==="left"&&(C=`${a.floating.width+d}px`,S=p?f:`${w}px`),{data:{x:C,y:S}}}});function O6(e){const[t,s="center"]=e.split("-");return[t,s]}var gf=T6,vf=R6,vN=k6,bN=M6,gG="Portal",jd=b.forwardRef((e,t)=>{var l;const{container:s,...a}=e,[o,c]=b.useState(!1);Hi(()=>c(!0),[]);const p=s||o&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return p?M$.createPortal(re.jsx(Ot.div,{...a,ref:t}),p):null});jd.displayName=gG;var vG=SD[" useInsertionEffect ".trim().toString()]||Hi;function qn({prop:e,defaultProp:t,onChange:s=()=>{},caller:a}){const[o,c,p]=bG({defaultProp:t,onChange:s}),l=e!==void 0,d=l?e:o;{const v=b.useRef(e!==void 0);b.useEffect(()=>{const f=v.current;f!==l&&console.warn(`${a} is changing from ${f?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),v.current=l},[l,a])}const h=b.useCallback(v=>{var f;if(l){const E=NG(v)?v(e):v;E!==e&&((f=p.current)==null||f.call(p,E))}else c(v)},[l,e,c,p]);return[d,h]}function bG({defaultProp:e,onChange:t}){const[s,a]=b.useState(e),o=b.useRef(s),c=b.useRef(t);return vG(()=>{c.current=t},[t]),b.useEffect(()=>{var p;o.current!==s&&((p=c.current)==null||p.call(c,s),o.current=s)},[s,o]),[s,a,c]}function NG(e){return typeof e=="function"}function YD(e){const t=b.useRef({value:e,previous:e});return b.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var L6=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),xG="VisuallyHidden",NN=b.forwardRef((e,t)=>re.jsx(Ot.span,{...e,ref:t,style:{...L6,...e.style}}));NN.displayName=xG;var yG=NN,wG=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ip=new WeakMap,Wv=new WeakMap,qv={},Sw=0,I6=function(e){return e&&(e.host||I6(e.parentNode))},EG=function(e,t){return t.map(function(s){if(e.contains(s))return s;var a=I6(s);return a&&e.contains(a)?a:(console.error("aria-hidden",s,"in not contained inside",e,". Doing nothing"),null)}).filter(function(s){return!!s})},DG=function(e,t,s,a){var o=EG(t,Array.isArray(e)?e:[e]);qv[s]||(qv[s]=new WeakMap);var c=qv[s],p=[],l=new Set,d=new Set(o),h=function(f){!f||l.has(f)||(l.add(f),h(f.parentNode))};o.forEach(h);var v=function(f){!f||d.has(f)||Array.prototype.forEach.call(f.children,function(E){if(l.has(E))v(E);else try{var w=E.getAttribute(a),C=w!==null&&w!=="false",S=(Ip.get(E)||0)+1,x=(c.get(E)||0)+1;Ip.set(E,S),c.set(E,x),p.push(E),S===1&&C&&Wv.set(E,!0),x===1&&E.setAttribute(s,"true"),C||E.setAttribute(a,"true")}catch(N){console.error("aria-hidden: cannot operate on ",E,N)}})};return v(t),l.clear(),Sw++,function(){p.forEach(function(f){var E=Ip.get(f)-1,w=c.get(f)-1;Ip.set(f,E),c.set(f,w),E||(Wv.has(f)||f.removeAttribute(a),Wv.delete(f)),w||f.removeAttribute(s)}),Sw--,Sw||(Ip=new WeakMap,Ip=new WeakMap,Wv=new WeakMap,qv={})}},xN=function(e,t,s){s===void 0&&(s="data-aria-hidden");var a=Array.from(Array.isArray(e)?e:[e]),o=wG(e);return o?(a.push.apply(a,Array.from(o.querySelectorAll("[aria-live], script"))),DG(a,o,s,"aria-hidden")):function(){return null}},ho=function(){return ho=Object.assign||function(t){for(var s,a=1,o=arguments.length;a<o;a++){s=arguments[a];for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&(t[c]=s[c])}return t},ho.apply(this,arguments)};function F6(e,t){var s={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(s[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(s[a[o]]=e[a[o]]);return s}function SG(e,t,s){if(s||arguments.length===2)for(var a=0,o=t.length,c;a<o;a++)(c||!(a in t))&&(c||(c=Array.prototype.slice.call(t,0,a)),c[a]=t[a]);return e.concat(c||Array.prototype.slice.call(t))}var bb="right-scroll-bar-position",Nb="width-before-scroll-bar",_G="with-scroll-bars-hidden",CG="--removed-body-scroll-bar-size";function _w(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function jG(e,t){var s=b.useState(function(){return{value:e,callback:t,facade:{get current(){return s.value},set current(a){var o=s.value;o!==a&&(s.value=a,s.callback(a,o))}}}})[0];return s.callback=t,s.facade}var PG=typeof window<"u"?b.useLayoutEffect:b.useEffect,nj=new WeakMap;function TG(e,t){var s=jG(null,function(a){return e.forEach(function(o){return _w(o,a)})});return PG(function(){var a=nj.get(s);if(a){var o=new Set(a),c=new Set(e),p=s.current;o.forEach(function(l){c.has(l)||_w(l,null)}),c.forEach(function(l){o.has(l)||_w(l,p)})}nj.set(s,e)},[e]),s}function VG(e){return e}function RG(e,t){t===void 0&&(t=VG);var s=[],a=!1,o={read:function(){if(a)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return s.length?s[s.length-1]:e},useMedium:function(c){var p=t(c,a);return s.push(p),function(){s=s.filter(function(l){return l!==p})}},assignSyncMedium:function(c){for(a=!0;s.length;){var p=s;s=[],p.forEach(c)}s={push:function(l){return c(l)},filter:function(){return s}}},assignMedium:function(c){a=!0;var p=[];if(s.length){var l=s;s=[],l.forEach(c),p=s}var d=function(){var v=p;p=[],v.forEach(c)},h=function(){return Promise.resolve().then(d)};h(),s={push:function(v){p.push(v),h()},filter:function(v){return p=p.filter(v),s}}}};return o}function kG(e){e===void 0&&(e={});var t=RG(null);return t.options=ho({async:!0,ssr:!1},e),t}var B6=function(e){var t=e.sideCar,s=F6(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var a=t.read();if(!a)throw new Error("Sidecar medium not found");return b.createElement(a,ho({},s))};B6.isSideCarExport=!0;function AG(e,t){return e.useMedium(t),B6}var z6=kG(),Cw=function(){},yN=b.forwardRef(function(e,t){var s=b.useRef(null),a=b.useState({onScrollCapture:Cw,onWheelCapture:Cw,onTouchMoveCapture:Cw}),o=a[0],c=a[1],p=e.forwardProps,l=e.children,d=e.className,h=e.removeScrollBar,v=e.enabled,f=e.shards,E=e.sideCar,w=e.noRelative,C=e.noIsolation,S=e.inert,x=e.allowPinchZoom,N=e.as,g=N===void 0?"div":N,y=e.gapMode,_=F6(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),P=E,R=TG([s,t]),j=ho(ho({},_),o);return b.createElement(b.Fragment,null,v&&b.createElement(P,{sideCar:z6,removeScrollBar:h,shards:f,noRelative:w,noIsolation:C,inert:S,setCallbacks:c,allowPinchZoom:!!x,lockRef:s,gapMode:y}),p?b.cloneElement(b.Children.only(l),ho(ho({},j),{ref:R})):b.createElement(g,ho({},j,{className:d,ref:R}),l))});yN.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};yN.classNames={fullWidth:Nb,zeroRight:bb};var MG=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function OG(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=MG();return t&&e.setAttribute("nonce",t),e}function LG(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function IG(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var FG=function(){var e=0,t=null;return{add:function(s){e==0&&(t=OG())&&(LG(t,s),IG(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},BG=function(){var e=FG();return function(t,s){b.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&s])}},U6=function(){var e=BG(),t=function(s){var a=s.styles,o=s.dynamic;return e(a,o),null};return t},zG={left:0,top:0,right:0,gap:0},jw=function(e){return parseInt(e||"",10)||0},UG=function(e){var t=window.getComputedStyle(document.body),s=t[e==="padding"?"paddingLeft":"marginLeft"],a=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[jw(s),jw(a),jw(o)]},$G=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return zG;var t=UG(e),s=document.documentElement.clientWidth,a=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,a-s+t[2]-t[0])}},HG=U6(),Xp="data-scroll-locked",WG=function(e,t,s,a){var o=e.left,c=e.top,p=e.right,l=e.gap;return s===void 0&&(s="margin"),`
237
+ <%s key={someKey} {...props} />`,tt,it,ni,it),ri[it+tt]=!0}}return ne===a?di(ee):Ns(ee),ee}}function yi(ne,_e,Ke){return xi(ne,_e,Ke,!0)}function ui(ne,_e,Ke){return xi(ne,_e,Ke,!1)}var de=ui,We=yi;gb.Fragment=a,gb.jsx=de,gb.jsxs=We})();U9.exports=gb;var re=U9.exports,$9=b.createContext(void 0),Zs=e=>{const t=b.useContext($9);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},TW=({client:e,children:t})=>(b.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),re.jsx($9.Provider,{value:e,children:t})),H9=b.createContext(!1),W9=()=>b.useContext(H9);H9.Provider;function VW(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var RW=b.createContext(VW()),q9=()=>b.useContext(RW),K9=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},G9=e=>{b.useEffect(()=>{e.clearReset()},[e])},Y9=({result:e,errorResetBoundary:t,throwOnError:s,query:a,suspense:o})=>e.isError&&!t.isReset()&&!e.isFetching&&a&&(o&&e.data===void 0||M9(s,[e.error,a])),Q9=e=>{if(e.suspense){const s=o=>o==="static"?o:Math.max(o??1e3,1e3),a=e.staleTime;e.staleTime=typeof a=="function"?(...o)=>s(a(...o)):s(a),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},X9=(e,t)=>e.isLoading&&e.isFetching&&!t,_E=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,Lb=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function kW({queries:e,...t},s){const a=Zs(),o=W9(),c=q9(),p=b.useMemo(()=>e.map(S=>{const x=a.defaultQueryOptions(S);return x._optimisticResults=o?"isRestoring":"optimistic",x}),[e,a,o]);p.forEach(S=>{Q9(S),K9(S,c)}),G9(c);const[l]=b.useState(()=>new CW(a,p,t)),[d,h,v]=l.getOptimisticResult(p,t.combine),f=!o&&t.subscribed!==!1;b.useSyncExternalStore(b.useCallback(S=>f?l.subscribe(Ui.batchCalls(S)):Hr,[l,f]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),b.useEffect(()=>{l.setQueries(p,t)},[p,t,l]);const w=d.some((S,x)=>_E(p[x],S))?d.flatMap((S,x)=>{const N=p[x];if(N){const g=new OD(a,N);if(_E(N,S))return Lb(N,g,c);X9(S,o)&&Lb(N,g,c)}return[]}):[];if(w.length>0)throw Promise.all(w);const C=d.find((S,x)=>{const N=p[x];return N&&Y9({result:S,errorResetBoundary:c,throwOnError:N.throwOnError,query:a.getQueryCache().get(N.queryHash),suspense:N.suspense})});if(C!=null&&C.error)throw C.error;return h(v())}function AW(e,t,s){var f,E,w,C,S;if(typeof e!="object"||Array.isArray(e))throw new Error('Bad argument type. Starting with v5, only the "Object" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object');const a=W9(),o=q9(),c=Zs(),p=c.defaultQueryOptions(e);(E=(f=c.getDefaultOptions().queries)==null?void 0:f._experimental_beforeQuery)==null||E.call(f,p),p.queryFn||console.error(`[${p.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`),p._optimisticResults=a?"isRestoring":"optimistic",Q9(p),K9(p,o),G9(o);const l=!c.getQueryCache().get(p.queryHash),[d]=b.useState(()=>new t(c,p)),h=d.getOptimisticResult(p),v=!a&&e.subscribed!==!1;if(b.useSyncExternalStore(b.useCallback(x=>{const N=v?d.subscribe(Ui.batchCalls(x)):Hr;return d.updateResult(),N},[d,v]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),b.useEffect(()=>{d.setOptions(p)},[p,d]),_E(p,h))throw Lb(p,d,o);if(Y9({result:h,errorResetBoundary:o,throwOnError:p.throwOnError,query:c.getQueryCache().get(p.queryHash),suspense:p.suspense}))throw h.error;if((C=(w=c.getDefaultOptions().queries)==null?void 0:w._experimental_afterQuery)==null||C.call(w,p,h),p.experimental_prefetchInRender&&!xu&&X9(h,a)){const x=l?Lb(p,d,o):(S=c.getQueryCache().get(p.queryHash))==null?void 0:S.promise;x==null||x.catch(Hr).finally(()=>{d.updateResult()})}return p.notifyOnChangeProps?h:d.trackResult(h)}function rt(e,t){return AW(e,OD)}function Ct(e,t){const s=Zs(),[a]=b.useState(()=>new SW(s,e));b.useEffect(()=>{a.setOptions(e)},[a,e]);const o=b.useSyncExternalStore(b.useCallback(p=>a.subscribe(Ui.batchCalls(p)),[a]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),c=b.useCallback((p,l)=>{a.mutate(p,l).catch(Hr)},[a]);if(o.error&&M9(a.options.throwOnError,[o.error]))throw o.error;return{...o,mutate:c,mutateAsync:o.mutate}}const po="devchain:selectedProjectId",Z9=b.createContext(void 0);async function MW(){const e=await fetch("/api/projects");if(!e.ok)throw new Error("Failed to fetch projects");const t=await e.json(),s=await Promise.all(t.items.map(async a=>{try{const o=await fetch(`/api/projects/${a.id}/stats`);if(o.ok){const c=await o.json();return{...a,stats:c}}}catch{}return a}));return{...t,items:s}}function OW(){return typeof window>"u"?null:window.sessionStorage.getItem(po)??window.localStorage.getItem(po)}function Op(e){typeof window>"u"||(e?(window.sessionStorage.setItem(po,e),window.localStorage.setItem(po,e)):window.sessionStorage.removeItem(po))}function LW({children:e}){const[t,s]=b.useState(()=>{if(!(typeof window>"u"))return OW()??void 0}),a=b.useRef(!1),o=b.useRef(!1),{data:c,isLoading:p,isError:l,refetch:d}=rt({queryKey:["projects"],queryFn:MW});b.useEffect(()=>{if(typeof window>"u"||o.current)return;const w=window.sessionStorage.getItem(po),C=window.localStorage.getItem(po);!w&&C&&window.sessionStorage.setItem(po,C),o.current=!0},[]),b.useEffect(()=>{if(typeof window>"u"||!c||a.current)return;const w=new URLSearchParams(window.location.search||""),C=w.get("projectId"),S=w.get("projectPath"),x=c.items??[],N=g=>g.replace(/\/+$/,"");if(C&&x.some(y=>y.id===C)){s(C),Op(C),a.current=!0;return}if(S){const g=N(S),y=x.find(_=>N(_.rootPath)===g);if(y){s(y.id),Op(y.id),a.current=!0;return}}},[c]),b.useEffect(()=>{if(!c)return;const w=c.items??[];if(w.length===1){const C=w[0].id;t!==C&&(s(C),Op(C));return}if(t&&!w.some(C=>C.id===t)){if(typeof window<"u"){const C=window.localStorage.getItem(po);if(window.sessionStorage.removeItem(po),C&&w.some(S=>S.id===C)){s(C),Op(C);return}}s(void 0),Op(void 0)}},[c,t]);const h=b.useCallback(w=>{s(w),Op(w)},[]),v=b.useMemo(()=>{var w;return(w=c==null?void 0:c.items)==null?void 0:w.find(C=>C.id===t)},[c,t]),f=b.useCallback(async()=>{await d()},[d]),E=b.useMemo(()=>({projects:(c==null?void 0:c.items)??[],projectsLoading:p,projectsError:l,refetchProjects:f,selectedProjectId:t,selectedProject:v,setSelectedProjectId:h}),[c,p,l,f,t,v,h]);return i.jsxDEV(Z9.Provider,{value:E,children:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/hooks/useProjectSelection.tsx",lineNumber:241,columnNumber:5},this)}function fr(){const e=b.useContext(Z9);if(!e)throw new Error("useSelectedProject must be used within a ProjectSelectionProvider");return e}const IW="modulepreload",FW=function(e){return"/"+e},V4={},uN=function(t,s,a){let o=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const p=document.querySelector("meta[property=csp-nonce]"),l=(p==null?void 0:p.nonce)||(p==null?void 0:p.getAttribute("nonce"));o=Promise.allSettled(s.map(d=>{if(d=FW(d),d in V4)return;V4[d]=!0;const h=d.endsWith(".css"),v=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${v}`))return;const f=document.createElement("link");if(f.rel=h?"stylesheet":IW,h||(f.as="script"),f.crossOrigin="",f.href=d,l&&f.setAttribute("nonce",l),document.head.appendChild(f),h)return new Promise((E,w)=>{f.addEventListener("load",E),f.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${d}`)))})}))}function c(p){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=p,window.dispatchEvent(l),!l.defaultPrevented)throw p}return o.then(p=>{for(const l of p||[])l.status==="rejected"&&c(l.reason);return t().catch(c)})};function J9(e){var t,s,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(s=J9(e[t]))&&(a&&(a+=" "),a+=s)}else for(s in e)e[s]&&(a&&(a+=" "),a+=s);return a}function e6(){for(var e,t,s=0,a="",o=arguments.length;s<o;s++)(e=arguments[s])&&(t=J9(e))&&(a&&(a+=" "),a+=t);return a}const ID="-",BW=e=>{const t=UW(e),{conflictingClassGroups:s,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:p=>{const l=p.split(ID);return l[0]===""&&l.length!==1&&l.shift(),t6(l,t)||zW(p)},getConflictingClassGroupIds:(p,l)=>{const d=s[p]||[];return l&&a[p]?[...d,...a[p]]:d}}},t6=(e,t)=>{var p;if(e.length===0)return t.classGroupId;const s=e[0],a=t.nextPart.get(s),o=a?t6(e.slice(1),a):void 0;if(o)return o;if(t.validators.length===0)return;const c=e.join(ID);return(p=t.validators.find(({validator:l})=>l(c)))==null?void 0:p.classGroupId},R4=/^\[(.+)\]$/,zW=e=>{if(R4.test(e)){const t=R4.exec(e)[1],s=t==null?void 0:t.substring(0,t.indexOf(":"));if(s)return"arbitrary.."+s}},UW=e=>{const{theme:t,classGroups:s}=e,a={nextPart:new Map,validators:[]};for(const o in s)CE(s[o],a,o,t);return a},CE=(e,t,s,a)=>{e.forEach(o=>{if(typeof o=="string"){const c=o===""?t:k4(t,o);c.classGroupId=s;return}if(typeof o=="function"){if($W(o)){CE(o(a),t,s,a);return}t.validators.push({validator:o,classGroupId:s});return}Object.entries(o).forEach(([c,p])=>{CE(p,k4(t,c),s,a)})})},k4=(e,t)=>{let s=e;return t.split(ID).forEach(a=>{s.nextPart.has(a)||s.nextPart.set(a,{nextPart:new Map,validators:[]}),s=s.nextPart.get(a)}),s},$W=e=>e.isThemeGetter,HW=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,s=new Map,a=new Map;const o=(c,p)=>{s.set(c,p),t++,t>e&&(t=0,a=s,s=new Map)};return{get(c){let p=s.get(c);if(p!==void 0)return p;if((p=a.get(c))!==void 0)return o(c,p),p},set(c,p){s.has(c)?s.set(c,p):o(c,p)}}},jE="!",PE=":",WW=PE.length,qW=e=>{const{prefix:t,experimentalParseClassName:s}=e;let a=o=>{const c=[];let p=0,l=0,d=0,h;for(let C=0;C<o.length;C++){let S=o[C];if(p===0&&l===0){if(S===PE){c.push(o.slice(d,C)),d=C+WW;continue}if(S==="/"){h=C;continue}}S==="["?p++:S==="]"?p--:S==="("?l++:S===")"&&l--}const v=c.length===0?o:o.substring(d),f=KW(v),E=f!==v,w=h&&h>d?h-d:void 0;return{modifiers:c,hasImportantModifier:E,baseClassName:f,maybePostfixModifierPosition:w}};if(t){const o=t+PE,c=a;a=p=>p.startsWith(o)?c(p.substring(o.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:p,maybePostfixModifierPosition:void 0}}if(s){const o=a;a=c=>s({className:c,parseClassName:o})}return a},KW=e=>e.endsWith(jE)?e.substring(0,e.length-1):e.startsWith(jE)?e.substring(1):e,GW=e=>{const t=Object.fromEntries(e.orderSensitiveModifiers.map(a=>[a,!0]));return a=>{if(a.length<=1)return a;const o=[];let c=[];return a.forEach(p=>{p[0]==="["||t[p]?(o.push(...c.sort(),p),c=[]):c.push(p)}),o.push(...c.sort()),o}},YW=e=>({cache:HW(e.cacheSize),parseClassName:qW(e),sortModifiers:GW(e),...BW(e)}),QW=/\s+/,XW=(e,t)=>{const{parseClassName:s,getClassGroupId:a,getConflictingClassGroupIds:o,sortModifiers:c}=t,p=[],l=e.trim().split(QW);let d="";for(let h=l.length-1;h>=0;h-=1){const v=l[h],{isExternal:f,modifiers:E,hasImportantModifier:w,baseClassName:C,maybePostfixModifierPosition:S}=s(v);if(f){d=v+(d.length>0?" "+d:d);continue}let x=!!S,N=a(x?C.substring(0,S):C);if(!N){if(!x){d=v+(d.length>0?" "+d:d);continue}if(N=a(C),!N){d=v+(d.length>0?" "+d:d);continue}x=!1}const g=c(E).join(":"),y=w?g+jE:g,_=y+N;if(p.includes(_))continue;p.push(_);const P=o(N,x);for(let R=0;R<P.length;++R){const j=P[R];p.push(y+j)}d=v+(d.length>0?" "+d:d)}return d};function ZW(){let e=0,t,s,a="";for(;e<arguments.length;)(t=arguments[e++])&&(s=s6(t))&&(a&&(a+=" "),a+=s);return a}const s6=e=>{if(typeof e=="string")return e;let t,s="";for(let a=0;a<e.length;a++)e[a]&&(t=s6(e[a]))&&(s&&(s+=" "),s+=t);return s};function JW(e,...t){let s,a,o,c=p;function p(d){const h=t.reduce((v,f)=>f(v),e());return s=YW(h),a=s.cache.get,o=s.cache.set,c=l,l(d)}function l(d){const h=a(d);if(h)return h;const v=XW(d,s);return o(d,v),v}return function(){return c(ZW.apply(null,arguments))}}const hr=e=>{const t=s=>s[e]||[];return t.isThemeGetter=!0,t},i6=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,r6=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eq=/^\d+\/\d+$/,tq=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,sq=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,iq=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,rq=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,nq=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Lp=e=>eq.test(e),Os=e=>!!e&&!Number.isNaN(Number(e)),ql=e=>!!e&&Number.isInteger(Number(e)),bw=e=>e.endsWith("%")&&Os(e.slice(0,-1)),Jo=e=>tq.test(e),aq=()=>!0,oq=e=>sq.test(e)&&!iq.test(e),n6=()=>!1,lq=e=>rq.test(e),cq=e=>nq.test(e),uq=e=>!Ft(e)&&!Bt(e),pq=e=>Dd(e,l6,n6),Ft=e=>i6.test(e),nu=e=>Dd(e,c6,oq),Nw=e=>Dd(e,gq,Os),A4=e=>Dd(e,a6,n6),dq=e=>Dd(e,o6,cq),Uv=e=>Dd(e,u6,lq),Bt=e=>r6.test(e),vm=e=>Sd(e,c6),hq=e=>Sd(e,vq),M4=e=>Sd(e,a6),mq=e=>Sd(e,l6),fq=e=>Sd(e,o6),$v=e=>Sd(e,u6,!0),Dd=(e,t,s)=>{const a=i6.exec(e);return a?a[1]?t(a[1]):s(a[2]):!1},Sd=(e,t,s=!1)=>{const a=r6.exec(e);return a?a[1]?t(a[1]):s:!1},a6=e=>e==="position"||e==="percentage",o6=e=>e==="image"||e==="url",l6=e=>e==="length"||e==="size"||e==="bg-size",c6=e=>e==="length",gq=e=>e==="number",vq=e=>e==="family-name",u6=e=>e==="shadow",bq=()=>{const e=hr("color"),t=hr("font"),s=hr("text"),a=hr("font-weight"),o=hr("tracking"),c=hr("leading"),p=hr("breakpoint"),l=hr("container"),d=hr("spacing"),h=hr("radius"),v=hr("shadow"),f=hr("inset-shadow"),E=hr("text-shadow"),w=hr("drop-shadow"),C=hr("blur"),S=hr("perspective"),x=hr("aspect"),N=hr("ease"),g=hr("animate"),y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],_=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],P=()=>[..._(),Bt,Ft],R=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],T=()=>[Bt,Ft,d],A=()=>[Lp,"full","auto",...T()],k=()=>[ql,"none","subgrid",Bt,Ft],F=()=>["auto",{span:["full",ql,Bt,Ft]},ql,Bt,Ft],M=()=>[ql,"auto",Bt,Ft],L=()=>["auto","min","max","fr",Bt,Ft],U=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Z=()=>["start","end","center","stretch","center-safe","end-safe"],q=()=>["auto",...T()],Y=()=>[Lp,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...T()],K=()=>[e,Bt,Ft],O=()=>[..._(),M4,A4,{position:[Bt,Ft]}],B=()=>["no-repeat",{repeat:["","x","y","space","round"]}],z=()=>["auto","cover","contain",mq,pq,{size:[Bt,Ft]}],H=()=>[bw,vm,nu],J=()=>["","none","full",h,Bt,Ft],te=()=>["",Os,vm,nu],Ne=()=>["solid","dashed","dotted","double"],De=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Q=()=>[Os,bw,M4,A4],W=()=>["","none",C,Bt,Ft],ae=()=>["none",Os,Bt,Ft],le=()=>["none",Os,Bt,Ft],xe=()=>[Os,Bt,Ft],he=()=>[Lp,"full",...T()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Jo],breakpoint:[Jo],color:[aq],container:[Jo],"drop-shadow":[Jo],ease:["in","out","in-out"],font:[uq],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Jo],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Jo],shadow:[Jo],spacing:["px",Os],text:[Jo],"text-shadow":[Jo],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Lp,Ft,Bt,x]}],container:["container"],columns:[{columns:[Os,Ft,Bt,l]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:P()}],overflow:[{overflow:R()}],"overflow-x":[{"overflow-x":R()}],"overflow-y":[{"overflow-y":R()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{start:A()}],end:[{end:A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[ql,"auto",Bt,Ft]}],basis:[{basis:[Lp,"full","auto",l,...T()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Os,Lp,"auto","initial","none",Ft]}],grow:[{grow:["",Os,Bt,Ft]}],shrink:[{shrink:["",Os,Bt,Ft]}],order:[{order:[ql,"first","last","none",Bt,Ft]}],"grid-cols":[{"grid-cols":k()}],"col-start-end":[{col:F()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":k()}],"row-start-end":[{row:F()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":L()}],"auto-rows":[{"auto-rows":L()}],gap:[{gap:T()}],"gap-x":[{"gap-x":T()}],"gap-y":[{"gap-y":T()}],"justify-content":[{justify:[...U(),"normal"]}],"justify-items":[{"justify-items":[...Z(),"normal"]}],"justify-self":[{"justify-self":["auto",...Z()]}],"align-content":[{content:["normal",...U()]}],"align-items":[{items:[...Z(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Z(),{baseline:["","last"]}]}],"place-content":[{"place-content":U()}],"place-items":[{"place-items":[...Z(),"baseline"]}],"place-self":[{"place-self":["auto",...Z()]}],p:[{p:T()}],px:[{px:T()}],py:[{py:T()}],ps:[{ps:T()}],pe:[{pe:T()}],pt:[{pt:T()}],pr:[{pr:T()}],pb:[{pb:T()}],pl:[{pl:T()}],m:[{m:q()}],mx:[{mx:q()}],my:[{my:q()}],ms:[{ms:q()}],me:[{me:q()}],mt:[{mt:q()}],mr:[{mr:q()}],mb:[{mb:q()}],ml:[{ml:q()}],"space-x":[{"space-x":T()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":T()}],"space-y-reverse":["space-y-reverse"],size:[{size:Y()}],w:[{w:[l,"screen",...Y()]}],"min-w":[{"min-w":[l,"screen","none",...Y()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[p]},...Y()]}],h:[{h:["screen","lh",...Y()]}],"min-h":[{"min-h":["screen","lh","none",...Y()]}],"max-h":[{"max-h":["screen","lh",...Y()]}],"font-size":[{text:["base",s,vm,nu]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,Bt,Nw]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",bw,Ft]}],"font-family":[{font:[hq,Ft,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[o,Bt,Ft]}],"line-clamp":[{"line-clamp":[Os,"none",Bt,Nw]}],leading:[{leading:[c,...T()]}],"list-image":[{"list-image":["none",Bt,Ft]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Bt,Ft]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:K()}],"text-color":[{text:K()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ne(),"wavy"]}],"text-decoration-thickness":[{decoration:[Os,"from-font","auto",Bt,nu]}],"text-decoration-color":[{decoration:K()}],"underline-offset":[{"underline-offset":[Os,"auto",Bt,Ft]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:T()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Bt,Ft]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Bt,Ft]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:O()}],"bg-repeat":[{bg:B()}],"bg-size":[{bg:z()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ql,Bt,Ft],radial:["",Bt,Ft],conic:[ql,Bt,Ft]},fq,dq]}],"bg-color":[{bg:K()}],"gradient-from-pos":[{from:H()}],"gradient-via-pos":[{via:H()}],"gradient-to-pos":[{to:H()}],"gradient-from":[{from:K()}],"gradient-via":[{via:K()}],"gradient-to":[{to:K()}],rounded:[{rounded:J()}],"rounded-s":[{"rounded-s":J()}],"rounded-e":[{"rounded-e":J()}],"rounded-t":[{"rounded-t":J()}],"rounded-r":[{"rounded-r":J()}],"rounded-b":[{"rounded-b":J()}],"rounded-l":[{"rounded-l":J()}],"rounded-ss":[{"rounded-ss":J()}],"rounded-se":[{"rounded-se":J()}],"rounded-ee":[{"rounded-ee":J()}],"rounded-es":[{"rounded-es":J()}],"rounded-tl":[{"rounded-tl":J()}],"rounded-tr":[{"rounded-tr":J()}],"rounded-br":[{"rounded-br":J()}],"rounded-bl":[{"rounded-bl":J()}],"border-w":[{border:te()}],"border-w-x":[{"border-x":te()}],"border-w-y":[{"border-y":te()}],"border-w-s":[{"border-s":te()}],"border-w-e":[{"border-e":te()}],"border-w-t":[{"border-t":te()}],"border-w-r":[{"border-r":te()}],"border-w-b":[{"border-b":te()}],"border-w-l":[{"border-l":te()}],"divide-x":[{"divide-x":te()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":te()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ne(),"hidden","none"]}],"divide-style":[{divide:[...Ne(),"hidden","none"]}],"border-color":[{border:K()}],"border-color-x":[{"border-x":K()}],"border-color-y":[{"border-y":K()}],"border-color-s":[{"border-s":K()}],"border-color-e":[{"border-e":K()}],"border-color-t":[{"border-t":K()}],"border-color-r":[{"border-r":K()}],"border-color-b":[{"border-b":K()}],"border-color-l":[{"border-l":K()}],"divide-color":[{divide:K()}],"outline-style":[{outline:[...Ne(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Os,Bt,Ft]}],"outline-w":[{outline:["",Os,vm,nu]}],"outline-color":[{outline:K()}],shadow:[{shadow:["","none",v,$v,Uv]}],"shadow-color":[{shadow:K()}],"inset-shadow":[{"inset-shadow":["none",f,$v,Uv]}],"inset-shadow-color":[{"inset-shadow":K()}],"ring-w":[{ring:te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:K()}],"ring-offset-w":[{"ring-offset":[Os,nu]}],"ring-offset-color":[{"ring-offset":K()}],"inset-ring-w":[{"inset-ring":te()}],"inset-ring-color":[{"inset-ring":K()}],"text-shadow":[{"text-shadow":["none",E,$v,Uv]}],"text-shadow-color":[{"text-shadow":K()}],opacity:[{opacity:[Os,Bt,Ft]}],"mix-blend":[{"mix-blend":[...De(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":De()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Os]}],"mask-image-linear-from-pos":[{"mask-linear-from":Q()}],"mask-image-linear-to-pos":[{"mask-linear-to":Q()}],"mask-image-linear-from-color":[{"mask-linear-from":K()}],"mask-image-linear-to-color":[{"mask-linear-to":K()}],"mask-image-t-from-pos":[{"mask-t-from":Q()}],"mask-image-t-to-pos":[{"mask-t-to":Q()}],"mask-image-t-from-color":[{"mask-t-from":K()}],"mask-image-t-to-color":[{"mask-t-to":K()}],"mask-image-r-from-pos":[{"mask-r-from":Q()}],"mask-image-r-to-pos":[{"mask-r-to":Q()}],"mask-image-r-from-color":[{"mask-r-from":K()}],"mask-image-r-to-color":[{"mask-r-to":K()}],"mask-image-b-from-pos":[{"mask-b-from":Q()}],"mask-image-b-to-pos":[{"mask-b-to":Q()}],"mask-image-b-from-color":[{"mask-b-from":K()}],"mask-image-b-to-color":[{"mask-b-to":K()}],"mask-image-l-from-pos":[{"mask-l-from":Q()}],"mask-image-l-to-pos":[{"mask-l-to":Q()}],"mask-image-l-from-color":[{"mask-l-from":K()}],"mask-image-l-to-color":[{"mask-l-to":K()}],"mask-image-x-from-pos":[{"mask-x-from":Q()}],"mask-image-x-to-pos":[{"mask-x-to":Q()}],"mask-image-x-from-color":[{"mask-x-from":K()}],"mask-image-x-to-color":[{"mask-x-to":K()}],"mask-image-y-from-pos":[{"mask-y-from":Q()}],"mask-image-y-to-pos":[{"mask-y-to":Q()}],"mask-image-y-from-color":[{"mask-y-from":K()}],"mask-image-y-to-color":[{"mask-y-to":K()}],"mask-image-radial":[{"mask-radial":[Bt,Ft]}],"mask-image-radial-from-pos":[{"mask-radial-from":Q()}],"mask-image-radial-to-pos":[{"mask-radial-to":Q()}],"mask-image-radial-from-color":[{"mask-radial-from":K()}],"mask-image-radial-to-color":[{"mask-radial-to":K()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":_()}],"mask-image-conic-pos":[{"mask-conic":[Os]}],"mask-image-conic-from-pos":[{"mask-conic-from":Q()}],"mask-image-conic-to-pos":[{"mask-conic-to":Q()}],"mask-image-conic-from-color":[{"mask-conic-from":K()}],"mask-image-conic-to-color":[{"mask-conic-to":K()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:O()}],"mask-repeat":[{mask:B()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Bt,Ft]}],filter:[{filter:["","none",Bt,Ft]}],blur:[{blur:W()}],brightness:[{brightness:[Os,Bt,Ft]}],contrast:[{contrast:[Os,Bt,Ft]}],"drop-shadow":[{"drop-shadow":["","none",w,$v,Uv]}],"drop-shadow-color":[{"drop-shadow":K()}],grayscale:[{grayscale:["",Os,Bt,Ft]}],"hue-rotate":[{"hue-rotate":[Os,Bt,Ft]}],invert:[{invert:["",Os,Bt,Ft]}],saturate:[{saturate:[Os,Bt,Ft]}],sepia:[{sepia:["",Os,Bt,Ft]}],"backdrop-filter":[{"backdrop-filter":["","none",Bt,Ft]}],"backdrop-blur":[{"backdrop-blur":W()}],"backdrop-brightness":[{"backdrop-brightness":[Os,Bt,Ft]}],"backdrop-contrast":[{"backdrop-contrast":[Os,Bt,Ft]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Os,Bt,Ft]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Os,Bt,Ft]}],"backdrop-invert":[{"backdrop-invert":["",Os,Bt,Ft]}],"backdrop-opacity":[{"backdrop-opacity":[Os,Bt,Ft]}],"backdrop-saturate":[{"backdrop-saturate":[Os,Bt,Ft]}],"backdrop-sepia":[{"backdrop-sepia":["",Os,Bt,Ft]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":T()}],"border-spacing-x":[{"border-spacing-x":T()}],"border-spacing-y":[{"border-spacing-y":T()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Bt,Ft]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Os,"initial",Bt,Ft]}],ease:[{ease:["linear","initial",N,Bt,Ft]}],delay:[{delay:[Os,Bt,Ft]}],animate:[{animate:["none",g,Bt,Ft]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[S,Bt,Ft]}],"perspective-origin":[{"perspective-origin":P()}],rotate:[{rotate:ae()}],"rotate-x":[{"rotate-x":ae()}],"rotate-y":[{"rotate-y":ae()}],"rotate-z":[{"rotate-z":ae()}],scale:[{scale:le()}],"scale-x":[{"scale-x":le()}],"scale-y":[{"scale-y":le()}],"scale-z":[{"scale-z":le()}],"scale-3d":["scale-3d"],skew:[{skew:xe()}],"skew-x":[{"skew-x":xe()}],"skew-y":[{"skew-y":xe()}],transform:[{transform:[Bt,Ft,"","none","gpu","cpu"]}],"transform-origin":[{origin:P()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:he()}],"translate-x":[{"translate-x":he()}],"translate-y":[{"translate-y":he()}],"translate-z":[{"translate-z":he()}],"translate-none":["translate-none"],accent:[{accent:K()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:K()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Bt,Ft]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":T()}],"scroll-mx":[{"scroll-mx":T()}],"scroll-my":[{"scroll-my":T()}],"scroll-ms":[{"scroll-ms":T()}],"scroll-me":[{"scroll-me":T()}],"scroll-mt":[{"scroll-mt":T()}],"scroll-mr":[{"scroll-mr":T()}],"scroll-mb":[{"scroll-mb":T()}],"scroll-ml":[{"scroll-ml":T()}],"scroll-p":[{"scroll-p":T()}],"scroll-px":[{"scroll-px":T()}],"scroll-py":[{"scroll-py":T()}],"scroll-ps":[{"scroll-ps":T()}],"scroll-pe":[{"scroll-pe":T()}],"scroll-pt":[{"scroll-pt":T()}],"scroll-pr":[{"scroll-pr":T()}],"scroll-pb":[{"scroll-pb":T()}],"scroll-pl":[{"scroll-pl":T()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Bt,Ft]}],fill:[{fill:["none",...K()]}],"stroke-w":[{stroke:[Os,vm,nu,Nw]}],stroke:[{stroke:["none",...K()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Nq=JW(bq);function Pe(...e){return Nq(e6(e))}const qt=({className:e,...t})=>i.jsxDEV("div",{className:Pe("animate-pulse rounded-md bg-muted",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/skeleton.tsx",lineNumber:5,columnNumber:3},void 0),xq=b.lazy(()=>uN(()=>import("./ReviewsPage-Dow8B8sr.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.ReviewsPage})));let O4=null;function L4(){O4||(O4=uN(()=>import("./ReviewsPage-Dow8B8sr.js"),__vite__mapDeps([0,1,2])))}function yq(){return i.jsxDEV("div",{className:"flex flex-col h-full",children:[i.jsxDEV("div",{className:"border-b p-4 bg-card",children:i.jsxDEV("div",{className:"flex items-center gap-4",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-9 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:38,columnNumber:13},this),i.jsxDEV(qt,{className:"h-9 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:39,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:37,columnNumber:11},this),i.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:41,columnNumber:11},this),i.jsxDEV(qt,{className:"h-9 w-24"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:42,columnNumber:11},this),i.jsxDEV(qt,{className:"h-9 w-9"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:43,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:36,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:35,columnNumber:7},this),i.jsxDEV("div",{className:"flex-1 flex min-h-0",children:[i.jsxDEV("div",{className:"w-64 border-r bg-card p-3 space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-3",children:[i.jsxDEV(qt,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:52,columnNumber:13},this),i.jsxDEV(qt,{className:"h-4 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:53,columnNumber:13},this),i.jsxDEV(qt,{className:"h-5 w-6"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:54,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:51,columnNumber:11},this),Array.from({length:8}).map((e,t)=>i.jsxDEV(qt,{className:"h-8 w-full"},t,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:57,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:50,columnNumber:9},this),i.jsxDEV("div",{className:"flex-1 min-w-0 bg-background p-4",children:i.jsxDEV("div",{className:"space-y-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-4",children:[i.jsxDEV(qt,{className:"h-5 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:65,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:66,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:67,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:64,columnNumber:13},this),Array.from({length:12}).map((e,t)=>i.jsxDEV(qt,{className:"h-6 w-full",style:{width:`${60+Math.random()*40}%`}},t,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:70,columnNumber:15},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:63,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:62,columnNumber:9},this),i.jsxDEV("div",{className:"w-80 border-l bg-card p-4 space-y-3",children:[i.jsxDEV(qt,{className:"h-5 w-24 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:81,columnNumber:11},this),Array.from({length:4}).map((e,t)=>i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-6 w-6 rounded-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:85,columnNumber:17},this),i.jsxDEV(qt,{className:"h-4 w-20"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:86,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:84,columnNumber:15},this),i.jsxDEV(qt,{className:"h-16 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:88,columnNumber:15},this)]},t,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:83,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:80,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:33,columnNumber:5},this)}function wq(){return i.jsxDEV(b.Suspense,{fallback:i.jsxDEV(yq,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:103,columnNumber:25},this),children:i.jsxDEV(xq,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:104,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.lazy.tsx",lineNumber:103,columnNumber:5},this)}function I4(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function pf(...e){return t=>{let s=!1;const a=e.map(o=>{const c=I4(o,t);return!s&&typeof c=="function"&&(s=!0),c});if(s)return()=>{for(let o=0;o<a.length;o++){const c=a[o];typeof c=="function"?c():I4(e[o],null)}}}}function _s(...e){return b.useCallback(pf(...e),e)}function dc(e){const t=Dq(e),s=b.forwardRef((a,o)=>{const{children:c,...p}=a,l=b.Children.toArray(c),d=l.find(_q);if(d){const h=d.props.children,v=l.map(f=>f===d?b.Children.count(h)>1?b.Children.only(null):b.isValidElement(h)?h.props.children:null:f);return re.jsx(t,{...p,ref:o,children:b.isValidElement(h)?b.cloneElement(h,void 0,v):null})}return re.jsx(t,{...p,ref:o,children:c})});return s.displayName=`${e}.Slot`,s}var Eq=dc("Slot");function Dq(e){const t=b.forwardRef((s,a)=>{const{children:o,...c}=s;if(b.isValidElement(o)){const p=jq(o),l=Cq(c,o.props);return o.type!==b.Fragment&&(l.ref=a?pf(a,p):p),b.cloneElement(o,l)}return b.Children.count(o)>1?b.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var p6=Symbol("radix.slottable");function Sq(e){const t=({children:s})=>re.jsx(re.Fragment,{children:s});return t.displayName=`${e}.Slottable`,t.__radixId=p6,t}function _q(e){return b.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===p6}function Cq(e,t){const s={...t};for(const a in t){const o=e[a],c=t[a];/^on[A-Z]/.test(a)?o&&c?s[a]=(...l)=>{const d=c(...l);return o(...l),d}:o&&(s[a]=o):a==="style"?s[a]={...o,...c}:a==="className"&&(s[a]=[o,c].filter(Boolean).join(" "))}return{...e,...s}}function jq(e){var a,o;let t=(a=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:a.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,s=t&&"isReactWarning"in t&&t.isReactWarning,s?e.props.ref:e.props.ref||e.ref)}const F4=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,B4=e6,df=(e,t)=>s=>{var a;if((t==null?void 0:t.variants)==null)return B4(e,s==null?void 0:s.class,s==null?void 0:s.className);const{variants:o,defaultVariants:c}=t,p=Object.keys(o).map(h=>{const v=s==null?void 0:s[h],f=c==null?void 0:c[h];if(v===null)return null;const E=F4(v)||F4(f);return o[h][E]}),l=s&&Object.entries(s).reduce((h,v)=>{let[f,E]=v;return E===void 0||(h[f]=E),h},{}),d=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((h,v)=>{let{class:f,className:E,...w}=v;return Object.entries(w).every(C=>{let[S,x]=C;return Array.isArray(x)?x.includes({...c,...l}[S]):{...c,...l}[S]===x})?[...h,f,E]:h},[]);return B4(e,p,d,s==null?void 0:s.class,s==null?void 0:s.className)},Pq=df("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),ce=b.forwardRef(({className:e,variant:t,size:s,asChild:a=!1,...o},c)=>{const p=a?Eq:"button";return i.jsxDEV(p,{className:Pe(Pq({variant:t,size:s,className:e})),ref:c,...o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/button.tsx",lineNumber:42,columnNumber:7},void 0)});ce.displayName="Button";function TE(e,[t,s]){return Math.min(s,Math.max(t,e))}function st(e,t,{checkForDefaultPrevented:s=!0}={}){return function(o){if(e==null||e(o),s===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function Tq(e,t){const s=b.createContext(t),a=c=>{const{children:p,...l}=c,d=b.useMemo(()=>l,Object.values(l));return re.jsx(s.Provider,{value:d,children:p})};a.displayName=e+"Provider";function o(c){const p=b.useContext(s);if(p)return p;if(t!==void 0)return t;throw new Error(`\`${c}\` must be used within \`${e}\``)}return[a,o]}function Mr(e,t=[]){let s=[];function a(c,p){const l=b.createContext(p),d=s.length;s=[...s,p];const h=f=>{var N;const{scope:E,children:w,...C}=f,S=((N=E==null?void 0:E[e])==null?void 0:N[d])||l,x=b.useMemo(()=>C,Object.values(C));return re.jsx(S.Provider,{value:x,children:w})};h.displayName=c+"Provider";function v(f,E){var S;const w=((S=E==null?void 0:E[e])==null?void 0:S[d])||l,C=b.useContext(w);if(C)return C;if(p!==void 0)return p;throw new Error(`\`${f}\` must be used within \`${c}\``)}return[h,v]}const o=()=>{const c=s.map(p=>b.createContext(p));return function(l){const d=(l==null?void 0:l[e])||c;return b.useMemo(()=>({[`__scope${e}`]:{...l,[e]:d}}),[l,d])}};return o.scopeName=e,[a,Vq(o,...t)]}function Vq(...e){const t=e[0];if(e.length===1)return t;const s=()=>{const a=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(c){const p=a.reduce((l,{useScope:d,scopeName:h})=>{const f=d(c)[`__scope${h}`];return{...l,...f}},{});return b.useMemo(()=>({[`__scope${t.scopeName}`]:p}),[p])}};return s.scopeName=t.scopeName,s}function pN(e){const t=e+"CollectionProvider",[s,a]=Mr(t),[o,c]=s(t,{collectionRef:{current:null},itemMap:new Map}),p=S=>{const{scope:x,children:N}=S,g=tl.useRef(null),y=tl.useRef(new Map).current;return re.jsx(o,{scope:x,itemMap:y,collectionRef:g,children:N})};p.displayName=t;const l=e+"CollectionSlot",d=dc(l),h=tl.forwardRef((S,x)=>{const{scope:N,children:g}=S,y=c(l,N),_=_s(x,y.collectionRef);return re.jsx(d,{ref:_,children:g})});h.displayName=l;const v=e+"CollectionItemSlot",f="data-radix-collection-item",E=dc(v),w=tl.forwardRef((S,x)=>{const{scope:N,children:g,...y}=S,_=tl.useRef(null),P=_s(x,_),R=c(v,N);return tl.useEffect(()=>(R.itemMap.set(_,{ref:_,...y}),()=>void R.itemMap.delete(_))),re.jsx(E,{[f]:"",ref:P,children:g})});w.displayName=v;function C(S){const x=c(e+"CollectionConsumer",S);return tl.useCallback(()=>{const g=x.collectionRef.current;if(!g)return[];const y=Array.from(g.querySelectorAll(`[${f}]`));return Array.from(x.itemMap.values()).sort((R,j)=>y.indexOf(R.ref.current)-y.indexOf(j.ref.current))},[x.collectionRef,x.itemMap])}return[{Provider:p,Slot:h,ItemSlot:w},C,a]}var Rq=b.createContext(void 0);function hf(e){const t=b.useContext(Rq);return e||t||"ltr"}var kq=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ot=kq.reduce((e,t)=>{const s=dc(`Primitive.${t}`),a=b.forwardRef((o,c)=>{const{asChild:p,...l}=o,d=p?s:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),re.jsx(d,{...l,ref:c})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function FD(e,t){e&&ha.flushSync(()=>e.dispatchEvent(t))}function Ai(e){const t=b.useRef(e);return b.useEffect(()=>{t.current=e}),b.useMemo(()=>(...s)=>{var a;return(a=t.current)==null?void 0:a.call(t,...s)},[])}function Aq(e,t=globalThis==null?void 0:globalThis.document){const s=Ai(e);b.useEffect(()=>{const a=o=>{o.key==="Escape"&&s(o)};return t.addEventListener("keydown",a,{capture:!0}),()=>t.removeEventListener("keydown",a,{capture:!0})},[s,t])}var Mq="DismissableLayer",VE="dismissableLayer.update",Oq="dismissableLayer.pointerDownOutside",Lq="dismissableLayer.focusOutside",z4,d6=b.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Tu=b.forwardRef((e,t)=>{const{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:c,onInteractOutside:p,onDismiss:l,...d}=e,h=b.useContext(d6),[v,f]=b.useState(null),E=(v==null?void 0:v.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,w]=b.useState({}),C=_s(t,j=>f(j)),S=Array.from(h.layers),[x]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),N=S.indexOf(x),g=v?S.indexOf(v):-1,y=h.layersWithOutsidePointerEventsDisabled.size>0,_=g>=N,P=Fq(j=>{const T=j.target,A=[...h.branches].some(k=>k.contains(T));!_||A||(o==null||o(j),p==null||p(j),j.defaultPrevented||l==null||l())},E),R=Bq(j=>{const T=j.target;[...h.branches].some(k=>k.contains(T))||(c==null||c(j),p==null||p(j),j.defaultPrevented||l==null||l())},E);return Aq(j=>{g===h.layers.size-1&&(a==null||a(j),!j.defaultPrevented&&l&&(j.preventDefault(),l()))},E),b.useEffect(()=>{if(v)return s&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(z4=E.body.style.pointerEvents,E.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(v)),h.layers.add(v),U4(),()=>{s&&h.layersWithOutsidePointerEventsDisabled.size===1&&(E.body.style.pointerEvents=z4)}},[v,E,s,h]),b.useEffect(()=>()=>{v&&(h.layers.delete(v),h.layersWithOutsidePointerEventsDisabled.delete(v),U4())},[v,h]),b.useEffect(()=>{const j=()=>w({});return document.addEventListener(VE,j),()=>document.removeEventListener(VE,j)},[]),re.jsx(Ot.div,{...d,ref:C,style:{pointerEvents:y?_?"auto":"none":void 0,...e.style},onFocusCapture:st(e.onFocusCapture,R.onFocusCapture),onBlurCapture:st(e.onBlurCapture,R.onBlurCapture),onPointerDownCapture:st(e.onPointerDownCapture,P.onPointerDownCapture)})});Tu.displayName=Mq;var Iq="DismissableLayerBranch",h6=b.forwardRef((e,t)=>{const s=b.useContext(d6),a=b.useRef(null),o=_s(t,a);return b.useEffect(()=>{const c=a.current;if(c)return s.branches.add(c),()=>{s.branches.delete(c)}},[s.branches]),re.jsx(Ot.div,{...e,ref:o})});h6.displayName=Iq;function Fq(e,t=globalThis==null?void 0:globalThis.document){const s=Ai(e),a=b.useRef(!1),o=b.useRef(()=>{});return b.useEffect(()=>{const c=l=>{if(l.target&&!a.current){let d=function(){m6(Oq,s,h,{discrete:!0})};const h={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=d,t.addEventListener("click",o.current,{once:!0})):d()}else t.removeEventListener("click",o.current);a.current=!1},p=window.setTimeout(()=>{t.addEventListener("pointerdown",c)},0);return()=>{window.clearTimeout(p),t.removeEventListener("pointerdown",c),t.removeEventListener("click",o.current)}},[t,s]),{onPointerDownCapture:()=>a.current=!0}}function Bq(e,t=globalThis==null?void 0:globalThis.document){const s=Ai(e),a=b.useRef(!1);return b.useEffect(()=>{const o=c=>{c.target&&!a.current&&m6(Lq,s,{originalEvent:c},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,s]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}function U4(){const e=new CustomEvent(VE);document.dispatchEvent(e)}function m6(e,t,s,{discrete:a}){const o=s.originalEvent.target,c=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:s});t&&o.addEventListener(e,t,{once:!0}),a?FD(o,c):o.dispatchEvent(c)}var zq=Tu,Uq=h6,xw=0;function dN(){b.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??$4()),document.body.insertAdjacentElement("beforeend",e[1]??$4()),xw++,()=>{xw===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),xw--}},[])}function $4(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var yw="focusScope.autoFocusOnMount",ww="focusScope.autoFocusOnUnmount",H4={bubbles:!1,cancelable:!0},$q="FocusScope",mf=b.forwardRef((e,t)=>{const{loop:s=!1,trapped:a=!1,onMountAutoFocus:o,onUnmountAutoFocus:c,...p}=e,[l,d]=b.useState(null),h=Ai(o),v=Ai(c),f=b.useRef(null),E=_s(t,S=>d(S)),w=b.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;b.useEffect(()=>{if(a){let S=function(y){if(w.paused||!l)return;const _=y.target;l.contains(_)?f.current=_:Ql(f.current,{select:!0})},x=function(y){if(w.paused||!l)return;const _=y.relatedTarget;_!==null&&(l.contains(_)||Ql(f.current,{select:!0}))},N=function(y){if(document.activeElement===document.body)for(const P of y)P.removedNodes.length>0&&Ql(l)};document.addEventListener("focusin",S),document.addEventListener("focusout",x);const g=new MutationObserver(N);return l&&g.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",x),g.disconnect()}}},[a,l,w.paused]),b.useEffect(()=>{if(l){q4.add(w);const S=document.activeElement;if(!l.contains(S)){const N=new CustomEvent(yw,H4);l.addEventListener(yw,h),l.dispatchEvent(N),N.defaultPrevented||(Hq(Yq(f6(l)),{select:!0}),document.activeElement===S&&Ql(l))}return()=>{l.removeEventListener(yw,h),setTimeout(()=>{const N=new CustomEvent(ww,H4);l.addEventListener(ww,v),l.dispatchEvent(N),N.defaultPrevented||Ql(S??document.body,{select:!0}),l.removeEventListener(ww,v),q4.remove(w)},0)}}},[l,h,v,w]);const C=b.useCallback(S=>{if(!s&&!a||w.paused)return;const x=S.key==="Tab"&&!S.altKey&&!S.ctrlKey&&!S.metaKey,N=document.activeElement;if(x&&N){const g=S.currentTarget,[y,_]=Wq(g);y&&_?!S.shiftKey&&N===_?(S.preventDefault(),s&&Ql(y,{select:!0})):S.shiftKey&&N===y&&(S.preventDefault(),s&&Ql(_,{select:!0})):N===g&&S.preventDefault()}},[s,a,w.paused]);return re.jsx(Ot.div,{tabIndex:-1,...p,ref:E,onKeyDown:C})});mf.displayName=$q;function Hq(e,{select:t=!1}={}){const s=document.activeElement;for(const a of e)if(Ql(a,{select:t}),document.activeElement!==s)return}function Wq(e){const t=f6(e),s=W4(t,e),a=W4(t.reverse(),e);return[s,a]}function f6(e){const t=[],s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const o=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||o?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)t.push(s.currentNode);return t}function W4(e,t){for(const s of e)if(!qq(s,{upTo:t}))return s}function qq(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Kq(e){return e instanceof HTMLInputElement&&"select"in e}function Ql(e,{select:t=!1}={}){if(e&&e.focus){const s=document.activeElement;e.focus({preventScroll:!0}),e!==s&&Kq(e)&&t&&e.select()}}var q4=Gq();function Gq(){let e=[];return{add(t){const s=e[0];t!==s&&(s==null||s.pause()),e=K4(e,t),e.unshift(t)},remove(t){var s;e=K4(e,t),(s=e[0])==null||s.resume()}}}function K4(e,t){const s=[...e],a=s.indexOf(t);return a!==-1&&s.splice(a,1),s}function Yq(e){return e.filter(t=>t.tagName!=="A")}var Hi=globalThis!=null&&globalThis.document?b.useLayoutEffect:()=>{},Qq=SD[" useId ".trim().toString()]||(()=>{}),Xq=0;function dn(e){const[t,s]=b.useState(Qq());return Hi(()=>{s(a=>a??String(Xq++))},[e]),e||(t?`radix-${t}`:"")}const Zq=["top","right","bottom","left"],hc=Math.min,$n=Math.max,Ib=Math.round,Hv=Math.floor,go=e=>({x:e,y:e}),Jq={left:"right",right:"left",bottom:"top",top:"bottom"},eK={start:"end",end:"start"};function RE(e,t,s){return $n(e,hc(t,s))}function hl(e,t){return typeof e=="function"?e(t):e}function ml(e){return e.split("-")[0]}function _d(e){return e.split("-")[1]}function BD(e){return e==="x"?"y":"x"}function zD(e){return e==="y"?"height":"width"}const tK=new Set(["top","bottom"]);function mo(e){return tK.has(ml(e))?"y":"x"}function UD(e){return BD(mo(e))}function sK(e,t,s){s===void 0&&(s=!1);const a=_d(e),o=UD(e),c=zD(o);let p=o==="x"?a===(s?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[c]>t.floating[c]&&(p=Fb(p)),[p,Fb(p)]}function iK(e){const t=Fb(e);return[kE(e),t,kE(t)]}function kE(e){return e.replace(/start|end/g,t=>eK[t])}const G4=["left","right"],Y4=["right","left"],rK=["top","bottom"],nK=["bottom","top"];function aK(e,t,s){switch(e){case"top":case"bottom":return s?t?Y4:G4:t?G4:Y4;case"left":case"right":return t?rK:nK;default:return[]}}function oK(e,t,s,a){const o=_d(e);let c=aK(ml(e),s==="start",a);return o&&(c=c.map(p=>p+"-"+o),t&&(c=c.concat(c.map(kE)))),c}function Fb(e){return e.replace(/left|right|bottom|top/g,t=>Jq[t])}function lK(e){return{top:0,right:0,bottom:0,left:0,...e}}function g6(e){return typeof e!="number"?lK(e):{top:e,right:e,bottom:e,left:e}}function Bb(e){const{x:t,y:s,width:a,height:o}=e;return{width:a,height:o,top:s,left:t,right:t+a,bottom:s+o,x:t,y:s}}function Q4(e,t,s){let{reference:a,floating:o}=e;const c=mo(t),p=UD(t),l=zD(p),d=ml(t),h=c==="y",v=a.x+a.width/2-o.width/2,f=a.y+a.height/2-o.height/2,E=a[l]/2-o[l]/2;let w;switch(d){case"top":w={x:v,y:a.y-o.height};break;case"bottom":w={x:v,y:a.y+a.height};break;case"right":w={x:a.x+a.width,y:f};break;case"left":w={x:a.x-o.width,y:f};break;default:w={x:a.x,y:a.y}}switch(_d(t)){case"start":w[p]-=E*(s&&h?-1:1);break;case"end":w[p]+=E*(s&&h?-1:1);break}return w}const cK=async(e,t,s)=>{const{placement:a="bottom",strategy:o="absolute",middleware:c=[],platform:p}=s,l=c.filter(Boolean),d=await(p.isRTL==null?void 0:p.isRTL(t));let h=await p.getElementRects({reference:e,floating:t,strategy:o}),{x:v,y:f}=Q4(h,a,d),E=a,w={},C=0;for(let S=0;S<l.length;S++){const{name:x,fn:N}=l[S],{x:g,y,data:_,reset:P}=await N({x:v,y:f,initialPlacement:a,placement:E,strategy:o,middlewareData:w,rects:h,platform:p,elements:{reference:e,floating:t}});v=g??v,f=y??f,w={...w,[x]:{...w[x],..._}},P&&C<=50&&(C++,typeof P=="object"&&(P.placement&&(E=P.placement),P.rects&&(h=P.rects===!0?await p.getElementRects({reference:e,floating:t,strategy:o}):P.rects),{x:v,y:f}=Q4(h,E,d)),S=-1)}return{x:v,y:f,placement:E,strategy:o,middlewareData:w}};async function Bm(e,t){var s;t===void 0&&(t={});const{x:a,y:o,platform:c,rects:p,elements:l,strategy:d}=e,{boundary:h="clippingAncestors",rootBoundary:v="viewport",elementContext:f="floating",altBoundary:E=!1,padding:w=0}=hl(t,e),C=g6(w),x=l[E?f==="floating"?"reference":"floating":f],N=Bb(await c.getClippingRect({element:(s=await(c.isElement==null?void 0:c.isElement(x)))==null||s?x:x.contextElement||await(c.getDocumentElement==null?void 0:c.getDocumentElement(l.floating)),boundary:h,rootBoundary:v,strategy:d})),g=f==="floating"?{x:a,y:o,width:p.floating.width,height:p.floating.height}:p.reference,y=await(c.getOffsetParent==null?void 0:c.getOffsetParent(l.floating)),_=await(c.isElement==null?void 0:c.isElement(y))?await(c.getScale==null?void 0:c.getScale(y))||{x:1,y:1}:{x:1,y:1},P=Bb(c.convertOffsetParentRelativeRectToViewportRelativeRect?await c.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:g,offsetParent:y,strategy:d}):g);return{top:(N.top-P.top+C.top)/_.y,bottom:(P.bottom-N.bottom+C.bottom)/_.y,left:(N.left-P.left+C.left)/_.x,right:(P.right-N.right+C.right)/_.x}}const uK=e=>({name:"arrow",options:e,async fn(t){const{x:s,y:a,placement:o,rects:c,platform:p,elements:l,middlewareData:d}=t,{element:h,padding:v=0}=hl(e,t)||{};if(h==null)return{};const f=g6(v),E={x:s,y:a},w=UD(o),C=zD(w),S=await p.getDimensions(h),x=w==="y",N=x?"top":"left",g=x?"bottom":"right",y=x?"clientHeight":"clientWidth",_=c.reference[C]+c.reference[w]-E[w]-c.floating[C],P=E[w]-c.reference[w],R=await(p.getOffsetParent==null?void 0:p.getOffsetParent(h));let j=R?R[y]:0;(!j||!await(p.isElement==null?void 0:p.isElement(R)))&&(j=l.floating[y]||c.floating[C]);const T=_/2-P/2,A=j/2-S[C]/2-1,k=hc(f[N],A),F=hc(f[g],A),M=k,L=j-S[C]-F,U=j/2-S[C]/2+T,Z=RE(M,U,L),q=!d.arrow&&_d(o)!=null&&U!==Z&&c.reference[C]/2-(U<M?k:F)-S[C]/2<0,Y=q?U<M?U-M:U-L:0;return{[w]:E[w]+Y,data:{[w]:Z,centerOffset:U-Z-Y,...q&&{alignmentOffset:Y}},reset:q}}}),pK=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var s,a;const{placement:o,middlewareData:c,rects:p,initialPlacement:l,platform:d,elements:h}=t,{mainAxis:v=!0,crossAxis:f=!0,fallbackPlacements:E,fallbackStrategy:w="bestFit",fallbackAxisSideDirection:C="none",flipAlignment:S=!0,...x}=hl(e,t);if((s=c.arrow)!=null&&s.alignmentOffset)return{};const N=ml(o),g=mo(l),y=ml(l)===l,_=await(d.isRTL==null?void 0:d.isRTL(h.floating)),P=E||(y||!S?[Fb(l)]:iK(l)),R=C!=="none";!E&&R&&P.push(...oK(l,S,C,_));const j=[l,...P],T=await Bm(t,x),A=[];let k=((a=c.flip)==null?void 0:a.overflows)||[];if(v&&A.push(T[N]),f){const U=sK(o,p,_);A.push(T[U[0]],T[U[1]])}if(k=[...k,{placement:o,overflows:A}],!A.every(U=>U<=0)){var F,M;const U=(((F=c.flip)==null?void 0:F.index)||0)+1,Z=j[U];if(Z&&(!(f==="alignment"?g!==mo(Z):!1)||k.every(K=>mo(K.placement)===g?K.overflows[0]>0:!0)))return{data:{index:U,overflows:k},reset:{placement:Z}};let q=(M=k.filter(Y=>Y.overflows[0]<=0).sort((Y,K)=>Y.overflows[1]-K.overflows[1])[0])==null?void 0:M.placement;if(!q)switch(w){case"bestFit":{var L;const Y=(L=k.filter(K=>{if(R){const O=mo(K.placement);return O===g||O==="y"}return!0}).map(K=>[K.placement,K.overflows.filter(O=>O>0).reduce((O,B)=>O+B,0)]).sort((K,O)=>K[1]-O[1])[0])==null?void 0:L[0];Y&&(q=Y);break}case"initialPlacement":q=l;break}if(o!==q)return{reset:{placement:q}}}return{}}}};function X4(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Z4(e){return Zq.some(t=>e[t]>=0)}const dK=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:s}=t,{strategy:a="referenceHidden",...o}=hl(e,t);switch(a){case"referenceHidden":{const c=await Bm(t,{...o,elementContext:"reference"}),p=X4(c,s.reference);return{data:{referenceHiddenOffsets:p,referenceHidden:Z4(p)}}}case"escaped":{const c=await Bm(t,{...o,altBoundary:!0}),p=X4(c,s.floating);return{data:{escapedOffsets:p,escaped:Z4(p)}}}default:return{}}}}},v6=new Set(["left","top"]);async function hK(e,t){const{placement:s,platform:a,elements:o}=e,c=await(a.isRTL==null?void 0:a.isRTL(o.floating)),p=ml(s),l=_d(s),d=mo(s)==="y",h=v6.has(p)?-1:1,v=c&&d?-1:1,f=hl(t,e);let{mainAxis:E,crossAxis:w,alignmentAxis:C}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return l&&typeof C=="number"&&(w=l==="end"?C*-1:C),d?{x:w*v,y:E*h}:{x:E*h,y:w*v}}const mK=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var s,a;const{x:o,y:c,placement:p,middlewareData:l}=t,d=await hK(t,e);return p===((s=l.offset)==null?void 0:s.placement)&&(a=l.arrow)!=null&&a.alignmentOffset?{}:{x:o+d.x,y:c+d.y,data:{...d,placement:p}}}}},fK=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:s,y:a,placement:o}=t,{mainAxis:c=!0,crossAxis:p=!1,limiter:l={fn:x=>{let{x:N,y:g}=x;return{x:N,y:g}}},...d}=hl(e,t),h={x:s,y:a},v=await Bm(t,d),f=mo(ml(o)),E=BD(f);let w=h[E],C=h[f];if(c){const x=E==="y"?"top":"left",N=E==="y"?"bottom":"right",g=w+v[x],y=w-v[N];w=RE(g,w,y)}if(p){const x=f==="y"?"top":"left",N=f==="y"?"bottom":"right",g=C+v[x],y=C-v[N];C=RE(g,C,y)}const S=l.fn({...t,[E]:w,[f]:C});return{...S,data:{x:S.x-s,y:S.y-a,enabled:{[E]:c,[f]:p}}}}}},gK=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:s,y:a,placement:o,rects:c,middlewareData:p}=t,{offset:l=0,mainAxis:d=!0,crossAxis:h=!0}=hl(e,t),v={x:s,y:a},f=mo(o),E=BD(f);let w=v[E],C=v[f];const S=hl(l,t),x=typeof S=="number"?{mainAxis:S,crossAxis:0}:{mainAxis:0,crossAxis:0,...S};if(d){const y=E==="y"?"height":"width",_=c.reference[E]-c.floating[y]+x.mainAxis,P=c.reference[E]+c.reference[y]-x.mainAxis;w<_?w=_:w>P&&(w=P)}if(h){var N,g;const y=E==="y"?"width":"height",_=v6.has(ml(o)),P=c.reference[f]-c.floating[y]+(_&&((N=p.offset)==null?void 0:N[f])||0)+(_?0:x.crossAxis),R=c.reference[f]+c.reference[y]+(_?0:((g=p.offset)==null?void 0:g[f])||0)-(_?x.crossAxis:0);C<P?C=P:C>R&&(C=R)}return{[E]:w,[f]:C}}}},vK=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var s,a;const{placement:o,rects:c,platform:p,elements:l}=t,{apply:d=()=>{},...h}=hl(e,t),v=await Bm(t,h),f=ml(o),E=_d(o),w=mo(o)==="y",{width:C,height:S}=c.floating;let x,N;f==="top"||f==="bottom"?(x=f,N=E===(await(p.isRTL==null?void 0:p.isRTL(l.floating))?"start":"end")?"left":"right"):(N=f,x=E==="end"?"top":"bottom");const g=S-v.top-v.bottom,y=C-v.left-v.right,_=hc(S-v[x],g),P=hc(C-v[N],y),R=!t.middlewareData.shift;let j=_,T=P;if((s=t.middlewareData.shift)!=null&&s.enabled.x&&(T=y),(a=t.middlewareData.shift)!=null&&a.enabled.y&&(j=g),R&&!E){const k=$n(v.left,0),F=$n(v.right,0),M=$n(v.top,0),L=$n(v.bottom,0);w?T=C-2*(k!==0||F!==0?k+F:$n(v.left,v.right)):j=S-2*(M!==0||L!==0?M+L:$n(v.top,v.bottom))}await d({...t,availableWidth:T,availableHeight:j});const A=await p.getDimensions(l.floating);return C!==A.width||S!==A.height?{reset:{rects:!0}}:{}}}};function hN(){return typeof window<"u"}function Cd(e){return b6(e)?(e.nodeName||"").toLowerCase():"#document"}function Hn(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Eo(e){var t;return(t=(b6(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function b6(e){return hN()?e instanceof Node||e instanceof Hn(e).Node:!1}function Ia(e){return hN()?e instanceof Element||e instanceof Hn(e).Element:!1}function No(e){return hN()?e instanceof HTMLElement||e instanceof Hn(e).HTMLElement:!1}function J4(e){return!hN()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Hn(e).ShadowRoot}const bK=new Set(["inline","contents"]);function ff(e){const{overflow:t,overflowX:s,overflowY:a,display:o}=Fa(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+s)&&!bK.has(o)}const NK=new Set(["table","td","th"]);function xK(e){return NK.has(Cd(e))}const yK=[":popover-open",":modal"];function mN(e){return yK.some(t=>{try{return e.matches(t)}catch{return!1}})}const wK=["transform","translate","scale","rotate","perspective"],EK=["transform","translate","scale","rotate","perspective","filter"],DK=["paint","layout","strict","content"];function $D(e){const t=HD(),s=Ia(e)?Fa(e):e;return wK.some(a=>s[a]?s[a]!=="none":!1)||(s.containerType?s.containerType!=="normal":!1)||!t&&(s.backdropFilter?s.backdropFilter!=="none":!1)||!t&&(s.filter?s.filter!=="none":!1)||EK.some(a=>(s.willChange||"").includes(a))||DK.some(a=>(s.contain||"").includes(a))}function SK(e){let t=mc(e);for(;No(t)&&!dd(t);){if($D(t))return t;if(mN(t))return null;t=mc(t)}return null}function HD(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const _K=new Set(["html","body","#document"]);function dd(e){return _K.has(Cd(e))}function Fa(e){return Hn(e).getComputedStyle(e)}function fN(e){return Ia(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function mc(e){if(Cd(e)==="html")return e;const t=e.assignedSlot||e.parentNode||J4(e)&&e.host||Eo(e);return J4(t)?t.host:t}function N6(e){const t=mc(e);return dd(t)?e.ownerDocument?e.ownerDocument.body:e.body:No(t)&&ff(t)?t:N6(t)}function zm(e,t,s){var a;t===void 0&&(t=[]),s===void 0&&(s=!0);const o=N6(e),c=o===((a=e.ownerDocument)==null?void 0:a.body),p=Hn(o);if(c){const l=AE(p);return t.concat(p,p.visualViewport||[],ff(o)?o:[],l&&s?zm(l):[])}return t.concat(o,zm(o,[],s))}function AE(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function x6(e){const t=Fa(e);let s=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const o=No(e),c=o?e.offsetWidth:s,p=o?e.offsetHeight:a,l=Ib(s)!==c||Ib(a)!==p;return l&&(s=c,a=p),{width:s,height:a,$:l}}function WD(e){return Ia(e)?e:e.contextElement}function Qp(e){const t=WD(e);if(!No(t))return go(1);const s=t.getBoundingClientRect(),{width:a,height:o,$:c}=x6(t);let p=(c?Ib(s.width):s.width)/a,l=(c?Ib(s.height):s.height)/o;return(!p||!Number.isFinite(p))&&(p=1),(!l||!Number.isFinite(l))&&(l=1),{x:p,y:l}}const CK=go(0);function y6(e){const t=Hn(e);return!HD()||!t.visualViewport?CK:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function jK(e,t,s){return t===void 0&&(t=!1),!s||t&&s!==Hn(e)?!1:t}function wu(e,t,s,a){t===void 0&&(t=!1),s===void 0&&(s=!1);const o=e.getBoundingClientRect(),c=WD(e);let p=go(1);t&&(a?Ia(a)&&(p=Qp(a)):p=Qp(e));const l=jK(c,s,a)?y6(c):go(0);let d=(o.left+l.x)/p.x,h=(o.top+l.y)/p.y,v=o.width/p.x,f=o.height/p.y;if(c){const E=Hn(c),w=a&&Ia(a)?Hn(a):a;let C=E,S=AE(C);for(;S&&a&&w!==C;){const x=Qp(S),N=S.getBoundingClientRect(),g=Fa(S),y=N.left+(S.clientLeft+parseFloat(g.paddingLeft))*x.x,_=N.top+(S.clientTop+parseFloat(g.paddingTop))*x.y;d*=x.x,h*=x.y,v*=x.x,f*=x.y,d+=y,h+=_,C=Hn(S),S=AE(C)}}return Bb({width:v,height:f,x:d,y:h})}function gN(e,t){const s=fN(e).scrollLeft;return t?t.left+s:wu(Eo(e)).left+s}function w6(e,t){const s=e.getBoundingClientRect(),a=s.left+t.scrollLeft-gN(e,s),o=s.top+t.scrollTop;return{x:a,y:o}}function PK(e){let{elements:t,rect:s,offsetParent:a,strategy:o}=e;const c=o==="fixed",p=Eo(a),l=t?mN(t.floating):!1;if(a===p||l&&c)return s;let d={scrollLeft:0,scrollTop:0},h=go(1);const v=go(0),f=No(a);if((f||!f&&!c)&&((Cd(a)!=="body"||ff(p))&&(d=fN(a)),No(a))){const w=wu(a);h=Qp(a),v.x=w.x+a.clientLeft,v.y=w.y+a.clientTop}const E=p&&!f&&!c?w6(p,d):go(0);return{width:s.width*h.x,height:s.height*h.y,x:s.x*h.x-d.scrollLeft*h.x+v.x+E.x,y:s.y*h.y-d.scrollTop*h.y+v.y+E.y}}function TK(e){return Array.from(e.getClientRects())}function VK(e){const t=Eo(e),s=fN(e),a=e.ownerDocument.body,o=$n(t.scrollWidth,t.clientWidth,a.scrollWidth,a.clientWidth),c=$n(t.scrollHeight,t.clientHeight,a.scrollHeight,a.clientHeight);let p=-s.scrollLeft+gN(e);const l=-s.scrollTop;return Fa(a).direction==="rtl"&&(p+=$n(t.clientWidth,a.clientWidth)-o),{width:o,height:c,x:p,y:l}}const ej=25;function RK(e,t){const s=Hn(e),a=Eo(e),o=s.visualViewport;let c=a.clientWidth,p=a.clientHeight,l=0,d=0;if(o){c=o.width,p=o.height;const v=HD();(!v||v&&t==="fixed")&&(l=o.offsetLeft,d=o.offsetTop)}const h=gN(a);if(h<=0){const v=a.ownerDocument,f=v.body,E=getComputedStyle(f),w=v.compatMode==="CSS1Compat"&&parseFloat(E.marginLeft)+parseFloat(E.marginRight)||0,C=Math.abs(a.clientWidth-f.clientWidth-w);C<=ej&&(c-=C)}else h<=ej&&(c+=h);return{width:c,height:p,x:l,y:d}}const kK=new Set(["absolute","fixed"]);function AK(e,t){const s=wu(e,!0,t==="fixed"),a=s.top+e.clientTop,o=s.left+e.clientLeft,c=No(e)?Qp(e):go(1),p=e.clientWidth*c.x,l=e.clientHeight*c.y,d=o*c.x,h=a*c.y;return{width:p,height:l,x:d,y:h}}function tj(e,t,s){let a;if(t==="viewport")a=RK(e,s);else if(t==="document")a=VK(Eo(e));else if(Ia(t))a=AK(t,s);else{const o=y6(e);a={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Bb(a)}function E6(e,t){const s=mc(e);return s===t||!Ia(s)||dd(s)?!1:Fa(s).position==="fixed"||E6(s,t)}function MK(e,t){const s=t.get(e);if(s)return s;let a=zm(e,[],!1).filter(l=>Ia(l)&&Cd(l)!=="body"),o=null;const c=Fa(e).position==="fixed";let p=c?mc(e):e;for(;Ia(p)&&!dd(p);){const l=Fa(p),d=$D(p);!d&&l.position==="fixed"&&(o=null),(c?!d&&!o:!d&&l.position==="static"&&!!o&&kK.has(o.position)||ff(p)&&!d&&E6(e,p))?a=a.filter(v=>v!==p):o=l,p=mc(p)}return t.set(e,a),a}function OK(e){let{element:t,boundary:s,rootBoundary:a,strategy:o}=e;const p=[...s==="clippingAncestors"?mN(t)?[]:MK(t,this._c):[].concat(s),a],l=p[0],d=p.reduce((h,v)=>{const f=tj(t,v,o);return h.top=$n(f.top,h.top),h.right=hc(f.right,h.right),h.bottom=hc(f.bottom,h.bottom),h.left=$n(f.left,h.left),h},tj(t,l,o));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function LK(e){const{width:t,height:s}=x6(e);return{width:t,height:s}}function IK(e,t,s){const a=No(t),o=Eo(t),c=s==="fixed",p=wu(e,!0,c,t);let l={scrollLeft:0,scrollTop:0};const d=go(0);function h(){d.x=gN(o)}if(a||!a&&!c)if((Cd(t)!=="body"||ff(o))&&(l=fN(t)),a){const w=wu(t,!0,c,t);d.x=w.x+t.clientLeft,d.y=w.y+t.clientTop}else o&&h();c&&!a&&o&&h();const v=o&&!a&&!c?w6(o,l):go(0),f=p.left+l.scrollLeft-d.x-v.x,E=p.top+l.scrollTop-d.y-v.y;return{x:f,y:E,width:p.width,height:p.height}}function Ew(e){return Fa(e).position==="static"}function sj(e,t){if(!No(e)||Fa(e).position==="fixed")return null;if(t)return t(e);let s=e.offsetParent;return Eo(e)===s&&(s=s.ownerDocument.body),s}function D6(e,t){const s=Hn(e);if(mN(e))return s;if(!No(e)){let o=mc(e);for(;o&&!dd(o);){if(Ia(o)&&!Ew(o))return o;o=mc(o)}return s}let a=sj(e,t);for(;a&&xK(a)&&Ew(a);)a=sj(a,t);return a&&dd(a)&&Ew(a)&&!$D(a)?s:a||SK(e)||s}const FK=async function(e){const t=this.getOffsetParent||D6,s=this.getDimensions,a=await s(e.floating);return{reference:IK(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function BK(e){return Fa(e).direction==="rtl"}const zK={convertOffsetParentRelativeRectToViewportRelativeRect:PK,getDocumentElement:Eo,getClippingRect:OK,getOffsetParent:D6,getElementRects:FK,getClientRects:TK,getDimensions:LK,getScale:Qp,isElement:Ia,isRTL:BK};function S6(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function UK(e,t){let s=null,a;const o=Eo(e);function c(){var l;clearTimeout(a),(l=s)==null||l.disconnect(),s=null}function p(l,d){l===void 0&&(l=!1),d===void 0&&(d=1),c();const h=e.getBoundingClientRect(),{left:v,top:f,width:E,height:w}=h;if(l||t(),!E||!w)return;const C=Hv(f),S=Hv(o.clientWidth-(v+E)),x=Hv(o.clientHeight-(f+w)),N=Hv(v),y={rootMargin:-C+"px "+-S+"px "+-x+"px "+-N+"px",threshold:$n(0,hc(1,d))||1};let _=!0;function P(R){const j=R[0].intersectionRatio;if(j!==d){if(!_)return p();j?p(!1,j):a=setTimeout(()=>{p(!1,1e-7)},1e3)}j===1&&!S6(h,e.getBoundingClientRect())&&p(),_=!1}try{s=new IntersectionObserver(P,{...y,root:o.ownerDocument})}catch{s=new IntersectionObserver(P,y)}s.observe(e)}return p(!0),c}function $K(e,t,s,a){a===void 0&&(a={});const{ancestorScroll:o=!0,ancestorResize:c=!0,elementResize:p=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:d=!1}=a,h=WD(e),v=o||c?[...h?zm(h):[],...zm(t)]:[];v.forEach(N=>{o&&N.addEventListener("scroll",s,{passive:!0}),c&&N.addEventListener("resize",s)});const f=h&&l?UK(h,s):null;let E=-1,w=null;p&&(w=new ResizeObserver(N=>{let[g]=N;g&&g.target===h&&w&&(w.unobserve(t),cancelAnimationFrame(E),E=requestAnimationFrame(()=>{var y;(y=w)==null||y.observe(t)})),s()}),h&&!d&&w.observe(h),w.observe(t));let C,S=d?wu(e):null;d&&x();function x(){const N=wu(e);S&&!S6(S,N)&&s(),S=N,C=requestAnimationFrame(x)}return s(),()=>{var N;v.forEach(g=>{o&&g.removeEventListener("scroll",s),c&&g.removeEventListener("resize",s)}),f==null||f(),(N=w)==null||N.disconnect(),w=null,d&&cancelAnimationFrame(C)}}const HK=mK,WK=fK,qK=pK,KK=vK,GK=dK,ij=uK,YK=gK,QK=(e,t,s)=>{const a=new Map,o={platform:zK,...s},c={...o.platform,_c:a};return cK(e,t,{...o,platform:c})};var XK=typeof document<"u",ZK=function(){},vb=XK?b.useLayoutEffect:ZK;function zb(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let s,a,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(s=e.length,s!==t.length)return!1;for(a=s;a--!==0;)if(!zb(e[a],t[a]))return!1;return!0}if(o=Object.keys(e),s=o.length,s!==Object.keys(t).length)return!1;for(a=s;a--!==0;)if(!{}.hasOwnProperty.call(t,o[a]))return!1;for(a=s;a--!==0;){const c=o[a];if(!(c==="_owner"&&e.$$typeof)&&!zb(e[c],t[c]))return!1}return!0}return e!==e&&t!==t}function _6(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function rj(e,t){const s=_6(e);return Math.round(t*s)/s}function Dw(e){const t=b.useRef(e);return vb(()=>{t.current=e}),t}function JK(e){e===void 0&&(e={});const{placement:t="bottom",strategy:s="absolute",middleware:a=[],platform:o,elements:{reference:c,floating:p}={},transform:l=!0,whileElementsMounted:d,open:h}=e,[v,f]=b.useState({x:0,y:0,strategy:s,placement:t,middlewareData:{},isPositioned:!1}),[E,w]=b.useState(a);zb(E,a)||w(a);const[C,S]=b.useState(null),[x,N]=b.useState(null),g=b.useCallback(K=>{K!==R.current&&(R.current=K,S(K))},[]),y=b.useCallback(K=>{K!==j.current&&(j.current=K,N(K))},[]),_=c||C,P=p||x,R=b.useRef(null),j=b.useRef(null),T=b.useRef(v),A=d!=null,k=Dw(d),F=Dw(o),M=Dw(h),L=b.useCallback(()=>{if(!R.current||!j.current)return;const K={placement:t,strategy:s,middleware:E};F.current&&(K.platform=F.current),QK(R.current,j.current,K).then(O=>{const B={...O,isPositioned:M.current!==!1};U.current&&!zb(T.current,B)&&(T.current=B,ha.flushSync(()=>{f(B)}))})},[E,t,s,F,M]);vb(()=>{h===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,f(K=>({...K,isPositioned:!1})))},[h]);const U=b.useRef(!1);vb(()=>(U.current=!0,()=>{U.current=!1}),[]),vb(()=>{if(_&&(R.current=_),P&&(j.current=P),_&&P){if(k.current)return k.current(_,P,L);L()}},[_,P,L,k,A]);const Z=b.useMemo(()=>({reference:R,floating:j,setReference:g,setFloating:y}),[g,y]),q=b.useMemo(()=>({reference:_,floating:P}),[_,P]),Y=b.useMemo(()=>{const K={position:s,left:0,top:0};if(!q.floating)return K;const O=rj(q.floating,v.x),B=rj(q.floating,v.y);return l?{...K,transform:"translate("+O+"px, "+B+"px)",..._6(q.floating)>=1.5&&{willChange:"transform"}}:{position:s,left:O,top:B}},[s,l,q.floating,v.x,v.y]);return b.useMemo(()=>({...v,update:L,refs:Z,elements:q,floatingStyles:Y}),[v,L,Z,q,Y])}const eG=e=>{function t(s){return{}.hasOwnProperty.call(s,"current")}return{name:"arrow",options:e,fn(s){const{element:a,padding:o}=typeof e=="function"?e(s):e;return a&&t(a)?a.current!=null?ij({element:a.current,padding:o}).fn(s):{}:a?ij({element:a,padding:o}).fn(s):{}}}},tG=(e,t)=>({...HK(e),options:[e,t]}),sG=(e,t)=>({...WK(e),options:[e,t]}),iG=(e,t)=>({...YK(e),options:[e,t]}),rG=(e,t)=>({...qK(e),options:[e,t]}),nG=(e,t)=>({...KK(e),options:[e,t]}),aG=(e,t)=>({...GK(e),options:[e,t]}),oG=(e,t)=>({...eG(e),options:[e,t]});var lG="Arrow",C6=b.forwardRef((e,t)=>{const{children:s,width:a=10,height:o=5,...c}=e;return re.jsx(Ot.svg,{...c,ref:t,width:a,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?s:re.jsx("polygon",{points:"0,0 30,0 15,10"})})});C6.displayName=lG;var cG=C6;function qD(e){const[t,s]=b.useState(void 0);return Hi(()=>{if(e){s({width:e.offsetWidth,height:e.offsetHeight});const a=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const c=o[0];let p,l;if("borderBoxSize"in c){const d=c.borderBoxSize,h=Array.isArray(d)?d[0]:d;p=h.inlineSize,l=h.blockSize}else p=e.offsetWidth,l=e.offsetHeight;s({width:p,height:l})});return a.observe(e,{box:"border-box"}),()=>a.unobserve(e)}else s(void 0)},[e]),t}var KD="Popper",[j6,vc]=Mr(KD),[uG,P6]=j6(KD),T6=e=>{const{__scopePopper:t,children:s}=e,[a,o]=b.useState(null);return re.jsx(uG,{scope:t,anchor:a,onAnchorChange:o,children:s})};T6.displayName=KD;var V6="PopperAnchor",R6=b.forwardRef((e,t)=>{const{__scopePopper:s,virtualRef:a,...o}=e,c=P6(V6,s),p=b.useRef(null),l=_s(t,p),d=b.useRef(null);return b.useEffect(()=>{const h=d.current;d.current=(a==null?void 0:a.current)||p.current,h!==d.current&&c.onAnchorChange(d.current)}),a?null:re.jsx(Ot.div,{...o,ref:l})});R6.displayName=V6;var GD="PopperContent",[pG,dG]=j6(GD),k6=b.forwardRef((e,t)=>{var Q,W,ae,le,xe,he;const{__scopePopper:s,side:a="bottom",sideOffset:o=0,align:c="center",alignOffset:p=0,arrowPadding:l=0,avoidCollisions:d=!0,collisionBoundary:h=[],collisionPadding:v=0,sticky:f="partial",hideWhenDetached:E=!1,updatePositionStrategy:w="optimized",onPlaced:C,...S}=e,x=P6(GD,s),[N,g]=b.useState(null),y=_s(t,Me=>g(Me)),[_,P]=b.useState(null),R=qD(_),j=(R==null?void 0:R.width)??0,T=(R==null?void 0:R.height)??0,A=a+(c!=="center"?"-"+c:""),k=typeof v=="number"?v:{top:0,right:0,bottom:0,left:0,...v},F=Array.isArray(h)?h:[h],M=F.length>0,L={padding:k,boundary:F.filter(mG),altBoundary:M},{refs:U,floatingStyles:Z,placement:q,isPositioned:Y,middlewareData:K}=JK({strategy:"fixed",placement:A,whileElementsMounted:(...Me)=>$K(...Me,{animationFrame:w==="always"}),elements:{reference:x.anchor},middleware:[tG({mainAxis:o+T,alignmentAxis:p}),d&&sG({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?iG():void 0,...L}),d&&rG({...L}),nG({...L,apply:({elements:Me,rects:me,availableWidth:Ee,availableHeight:Fe})=>{const{width:Le,height:gt}=me.reference,Gt=Me.floating.style;Gt.setProperty("--radix-popper-available-width",`${Ee}px`),Gt.setProperty("--radix-popper-available-height",`${Fe}px`),Gt.setProperty("--radix-popper-anchor-width",`${Le}px`),Gt.setProperty("--radix-popper-anchor-height",`${gt}px`)}}),_&&oG({element:_,padding:l}),fG({arrowWidth:j,arrowHeight:T}),E&&aG({strategy:"referenceHidden",...L})]}),[O,B]=O6(q),z=Ai(C);Hi(()=>{Y&&(z==null||z())},[Y,z]);const H=(Q=K.arrow)==null?void 0:Q.x,J=(W=K.arrow)==null?void 0:W.y,te=((ae=K.arrow)==null?void 0:ae.centerOffset)!==0,[Ne,De]=b.useState();return Hi(()=>{N&&De(window.getComputedStyle(N).zIndex)},[N]),re.jsx("div",{ref:U.setFloating,"data-radix-popper-content-wrapper":"",style:{...Z,transform:Y?Z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Ne,"--radix-popper-transform-origin":[(le=K.transformOrigin)==null?void 0:le.x,(xe=K.transformOrigin)==null?void 0:xe.y].join(" "),...((he=K.hide)==null?void 0:he.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:re.jsx(pG,{scope:s,placedSide:O,onArrowChange:P,arrowX:H,arrowY:J,shouldHideArrow:te,children:re.jsx(Ot.div,{"data-side":O,"data-align":B,...S,ref:y,style:{...S.style,animation:Y?void 0:"none"}})})})});k6.displayName=GD;var A6="PopperArrow",hG={top:"bottom",right:"left",bottom:"top",left:"right"},M6=b.forwardRef(function(t,s){const{__scopePopper:a,...o}=t,c=dG(A6,a),p=hG[c.placedSide];return re.jsx("span",{ref:c.onArrowChange,style:{position:"absolute",left:c.arrowX,top:c.arrowY,[p]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[c.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[c.placedSide],visibility:c.shouldHideArrow?"hidden":void 0},children:re.jsx(cG,{...o,ref:s,style:{...o.style,display:"block"}})})});M6.displayName=A6;function mG(e){return e!==null}var fG=e=>({name:"transformOrigin",options:e,fn(t){var x,N,g;const{placement:s,rects:a,middlewareData:o}=t,p=((x=o.arrow)==null?void 0:x.centerOffset)!==0,l=p?0:e.arrowWidth,d=p?0:e.arrowHeight,[h,v]=O6(s),f={start:"0%",center:"50%",end:"100%"}[v],E=(((N=o.arrow)==null?void 0:N.x)??0)+l/2,w=(((g=o.arrow)==null?void 0:g.y)??0)+d/2;let C="",S="";return h==="bottom"?(C=p?f:`${E}px`,S=`${-d}px`):h==="top"?(C=p?f:`${E}px`,S=`${a.floating.height+d}px`):h==="right"?(C=`${-d}px`,S=p?f:`${w}px`):h==="left"&&(C=`${a.floating.width+d}px`,S=p?f:`${w}px`),{data:{x:C,y:S}}}});function O6(e){const[t,s="center"]=e.split("-");return[t,s]}var gf=T6,vf=R6,vN=k6,bN=M6,gG="Portal",jd=b.forwardRef((e,t)=>{var l;const{container:s,...a}=e,[o,c]=b.useState(!1);Hi(()=>c(!0),[]);const p=s||o&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return p?M$.createPortal(re.jsx(Ot.div,{...a,ref:t}),p):null});jd.displayName=gG;var vG=SD[" useInsertionEffect ".trim().toString()]||Hi;function qn({prop:e,defaultProp:t,onChange:s=()=>{},caller:a}){const[o,c,p]=bG({defaultProp:t,onChange:s}),l=e!==void 0,d=l?e:o;{const v=b.useRef(e!==void 0);b.useEffect(()=>{const f=v.current;f!==l&&console.warn(`${a} is changing from ${f?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),v.current=l},[l,a])}const h=b.useCallback(v=>{var f;if(l){const E=NG(v)?v(e):v;E!==e&&((f=p.current)==null||f.call(p,E))}else c(v)},[l,e,c,p]);return[d,h]}function bG({defaultProp:e,onChange:t}){const[s,a]=b.useState(e),o=b.useRef(s),c=b.useRef(t);return vG(()=>{c.current=t},[t]),b.useEffect(()=>{var p;o.current!==s&&((p=c.current)==null||p.call(c,s),o.current=s)},[s,o]),[s,a,c]}function NG(e){return typeof e=="function"}function YD(e){const t=b.useRef({value:e,previous:e});return b.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var L6=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),xG="VisuallyHidden",NN=b.forwardRef((e,t)=>re.jsx(Ot.span,{...e,ref:t,style:{...L6,...e.style}}));NN.displayName=xG;var yG=NN,wG=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ip=new WeakMap,Wv=new WeakMap,qv={},Sw=0,I6=function(e){return e&&(e.host||I6(e.parentNode))},EG=function(e,t){return t.map(function(s){if(e.contains(s))return s;var a=I6(s);return a&&e.contains(a)?a:(console.error("aria-hidden",s,"in not contained inside",e,". Doing nothing"),null)}).filter(function(s){return!!s})},DG=function(e,t,s,a){var o=EG(t,Array.isArray(e)?e:[e]);qv[s]||(qv[s]=new WeakMap);var c=qv[s],p=[],l=new Set,d=new Set(o),h=function(f){!f||l.has(f)||(l.add(f),h(f.parentNode))};o.forEach(h);var v=function(f){!f||d.has(f)||Array.prototype.forEach.call(f.children,function(E){if(l.has(E))v(E);else try{var w=E.getAttribute(a),C=w!==null&&w!=="false",S=(Ip.get(E)||0)+1,x=(c.get(E)||0)+1;Ip.set(E,S),c.set(E,x),p.push(E),S===1&&C&&Wv.set(E,!0),x===1&&E.setAttribute(s,"true"),C||E.setAttribute(a,"true")}catch(N){console.error("aria-hidden: cannot operate on ",E,N)}})};return v(t),l.clear(),Sw++,function(){p.forEach(function(f){var E=Ip.get(f)-1,w=c.get(f)-1;Ip.set(f,E),c.set(f,w),E||(Wv.has(f)||f.removeAttribute(a),Wv.delete(f)),w||f.removeAttribute(s)}),Sw--,Sw||(Ip=new WeakMap,Ip=new WeakMap,Wv=new WeakMap,qv={})}},xN=function(e,t,s){s===void 0&&(s="data-aria-hidden");var a=Array.from(Array.isArray(e)?e:[e]),o=wG(e);return o?(a.push.apply(a,Array.from(o.querySelectorAll("[aria-live], script"))),DG(a,o,s,"aria-hidden")):function(){return null}},ho=function(){return ho=Object.assign||function(t){for(var s,a=1,o=arguments.length;a<o;a++){s=arguments[a];for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&(t[c]=s[c])}return t},ho.apply(this,arguments)};function F6(e,t){var s={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(s[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(s[a[o]]=e[a[o]]);return s}function SG(e,t,s){if(s||arguments.length===2)for(var a=0,o=t.length,c;a<o;a++)(c||!(a in t))&&(c||(c=Array.prototype.slice.call(t,0,a)),c[a]=t[a]);return e.concat(c||Array.prototype.slice.call(t))}var bb="right-scroll-bar-position",Nb="width-before-scroll-bar",_G="with-scroll-bars-hidden",CG="--removed-body-scroll-bar-size";function _w(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function jG(e,t){var s=b.useState(function(){return{value:e,callback:t,facade:{get current(){return s.value},set current(a){var o=s.value;o!==a&&(s.value=a,s.callback(a,o))}}}})[0];return s.callback=t,s.facade}var PG=typeof window<"u"?b.useLayoutEffect:b.useEffect,nj=new WeakMap;function TG(e,t){var s=jG(null,function(a){return e.forEach(function(o){return _w(o,a)})});return PG(function(){var a=nj.get(s);if(a){var o=new Set(a),c=new Set(e),p=s.current;o.forEach(function(l){c.has(l)||_w(l,null)}),c.forEach(function(l){o.has(l)||_w(l,p)})}nj.set(s,e)},[e]),s}function VG(e){return e}function RG(e,t){t===void 0&&(t=VG);var s=[],a=!1,o={read:function(){if(a)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return s.length?s[s.length-1]:e},useMedium:function(c){var p=t(c,a);return s.push(p),function(){s=s.filter(function(l){return l!==p})}},assignSyncMedium:function(c){for(a=!0;s.length;){var p=s;s=[],p.forEach(c)}s={push:function(l){return c(l)},filter:function(){return s}}},assignMedium:function(c){a=!0;var p=[];if(s.length){var l=s;s=[],l.forEach(c),p=s}var d=function(){var v=p;p=[],v.forEach(c)},h=function(){return Promise.resolve().then(d)};h(),s={push:function(v){p.push(v),h()},filter:function(v){return p=p.filter(v),s}}}};return o}function kG(e){e===void 0&&(e={});var t=RG(null);return t.options=ho({async:!0,ssr:!1},e),t}var B6=function(e){var t=e.sideCar,s=F6(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var a=t.read();if(!a)throw new Error("Sidecar medium not found");return b.createElement(a,ho({},s))};B6.isSideCarExport=!0;function AG(e,t){return e.useMedium(t),B6}var z6=kG(),Cw=function(){},yN=b.forwardRef(function(e,t){var s=b.useRef(null),a=b.useState({onScrollCapture:Cw,onWheelCapture:Cw,onTouchMoveCapture:Cw}),o=a[0],c=a[1],p=e.forwardProps,l=e.children,d=e.className,h=e.removeScrollBar,v=e.enabled,f=e.shards,E=e.sideCar,w=e.noRelative,C=e.noIsolation,S=e.inert,x=e.allowPinchZoom,N=e.as,g=N===void 0?"div":N,y=e.gapMode,_=F6(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),P=E,R=TG([s,t]),j=ho(ho({},_),o);return b.createElement(b.Fragment,null,v&&b.createElement(P,{sideCar:z6,removeScrollBar:h,shards:f,noRelative:w,noIsolation:C,inert:S,setCallbacks:c,allowPinchZoom:!!x,lockRef:s,gapMode:y}),p?b.cloneElement(b.Children.only(l),ho(ho({},j),{ref:R})):b.createElement(g,ho({},j,{className:d,ref:R}),l))});yN.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};yN.classNames={fullWidth:Nb,zeroRight:bb};var MG=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function OG(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=MG();return t&&e.setAttribute("nonce",t),e}function LG(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function IG(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var FG=function(){var e=0,t=null;return{add:function(s){e==0&&(t=OG())&&(LG(t,s),IG(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},BG=function(){var e=FG();return function(t,s){b.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&s])}},U6=function(){var e=BG(),t=function(s){var a=s.styles,o=s.dynamic;return e(a,o),null};return t},zG={left:0,top:0,right:0,gap:0},jw=function(e){return parseInt(e||"",10)||0},UG=function(e){var t=window.getComputedStyle(document.body),s=t[e==="padding"?"paddingLeft":"marginLeft"],a=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[jw(s),jw(a),jw(o)]},$G=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return zG;var t=UG(e),s=document.documentElement.clientWidth,a=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,a-s+t[2]-t[0])}},HG=U6(),Xp="data-scroll-locked",WG=function(e,t,s,a){var o=e.left,c=e.top,p=e.right,l=e.gap;return s===void 0&&(s="margin"),`
238
238
  .`.concat(_G,` {
239
239
  overflow: hidden `).concat(a,`;
240
240
  padding-right: `).concat(l,"px ").concat(a,`;
@@ -707,7 +707,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/${t.do
707
707
  `+ni),Me&&Xv([M,L,U],Gs=>{ni=Nm(ni,Gs," ")}),_&&jt?_.createHTML(ni):ni},t.setConfig=function(){let ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};di(ie),Fe=!0},t.clearConfig=function(){$t=null,Fe=!1},t.isValidAttribute=function(ie,ee,ge){$t||di({});const Re=Qe(ie),it=Qe(ee);return at(Re,it,ge)},t.addHook=function(ie,ee){typeof ee=="function"&&bm(F[ie],ee)},t.removeHook=function(ie,ee){if(ee!==void 0){const ge=mJ(F[ie],ee);return ge===-1?void 0:fJ(F[ie],ge,1)[0]}return Nj(F[ie])},t.removeHooks=function(ie){F[ie]=[]},t.removeAllHooks=function(){F=Sj()},t}var RJ=cV();function Fw(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-")}function Xl(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Hp(e){return e.replace(/`([^`]+)`/g,'<code class="bg-muted px-1.5 py-0.5 rounded text-sm font-mono">$1</code>').replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>").replace(/\*([^*]+)\*/g,"<em>$1</em>").replace(/\[([^\]]+)\]\(([^)]+)\)/g,(t,s,a)=>`<a href="${/^(https?:|mailto:|#|\/)/i.test(a)?a:"#"}" class="text-primary underline hover:text-primary/80" target="_blank" rel="noopener noreferrer">${s}</a>`)}function _j(e,t,s){const a=[],o=s?/^\d+\.\s+(.*)$/:/^[-*]\s+(.*)$/;let c=t;for(;c<e.length;){const d=e[c].match(o);if(!d)break;a.push(`<li>${Hp(Xl(d[1]))}</li>`),c++}const p=s?"ol":"ul";return[`<${p} class="${s?"list-decimal":"list-disc"} pl-6 my-2 space-y-1 text-muted-foreground">${a.join("")}</${p}>`,c]}function kJ(e,t){const a=e[t].match(/^```(\w*)$/),o=(a==null?void 0:a[1])||"";let c=t+1;const p=[];for(;c<e.length&&!e[c].startsWith("```");)p.push(e[c]),c++;c<e.length&&e[c].startsWith("```")&&c++;const l=Xl(p.join(`
708
708
  `));return[`<pre class="bg-muted p-4 rounded-md text-sm overflow-x-auto my-4"${o?` data-language="${o}"`:""}><code class="font-mono">${l}</code></pre>`,c]}function AJ(e){const t=e.split(/\r?\n/),s=[];let a=0;for(;a<t.length;){const o=t[a];if(!o.trim()){a++;continue}if(o.startsWith("```")){const[h,v]=kJ(t,a);s.push(h),a=v;continue}if(/^---+$/.test(o.trim())){s.push('<hr class="my-6 border-border" />'),a++;continue}const c=o.match(/^###\s+(.+)$/);if(c){const h=c[1],v=Fw(h);s.push(`<h3 id="${v}" class="text-base font-semibold mt-8 mb-2 border-l-2 border-primary/40 pl-2">${Hp(Xl(h))}</h3>`),a++;continue}const p=o.match(/^##\s+(.+)$/);if(p){const h=p[1],v=Fw(h);s.push(`<h2 id="${v}" class="text-xl font-semibold mt-8 mb-3 pb-2 border-b border-border">${Hp(Xl(h))}</h2>`),a++;continue}const l=o.match(/^#\s+(.+)$/);if(l){const h=l[1],v=Fw(h);s.push(`<h1 id="${v}" class="text-2xl font-bold mt-8 mb-4">${Hp(Xl(h))}</h1>`),a++;continue}if(/^>\s/.test(o)){const h=[];for(;a<t.length&&/^>\s?/.test(t[a]);)h.push(t[a].replace(/^>\s?/,"")),a++;const v=h.join(" ");s.push(`<blockquote class="my-4 border-l-4 border-primary/40 bg-muted/50 rounded-r-md py-3 px-4 text-sm leading-relaxed">${Hp(Xl(v))}</blockquote>`);continue}if(/^[-*]\s+/.test(o)){const[h,v]=_j(t,a,!1);s.push(h),a=v;continue}if(/^\d+\.\s+/.test(o)){const[h,v]=_j(t,a,!0);s.push(h),a=v;continue}if(o.startsWith("|")&&o.endsWith("|")){const h=[];for(;a<t.length&&t[a].startsWith("|")&&t[a].endsWith("|");)h.push(t[a]),a++;s.push(`<pre class="bg-muted p-2 rounded text-sm overflow-x-auto my-2 font-mono">${Xl(h.join(`
709
709
  `))}</pre>`);continue}const d=[];for(;a<t.length&&t[a].trim()&&!t[a].startsWith("#")&&!t[a].startsWith("```")&&!/^[-*]\s+/.test(t[a])&&!/^\d+\.\s+/.test(t[a])&&!(t[a].startsWith("|")&&t[a].endsWith("|"));)d.push(t[a]),a++;if(d.length>0){const h=d.join(" ");s.push(`<p class="my-3 leading-relaxed text-muted-foreground">${Hp(Xl(h))}</p>`)}}return RJ.sanitize(s.join(`
710
- `),{ALLOWED_TAGS:["h1","h2","h3","p","pre","code","strong","em","a","ul","ol","li","br","hr","blockquote"],ALLOWED_ATTR:["href","class","target","rel","id","data-language"],ALLOW_DATA_ATTR:!0})}function MJ({content:e,className:t}){const s=AJ(e);return i.jsxDEV("div",{className:Pe("prose prose-sm max-w-none",t),dangerouslySetInnerHTML:{__html:s}},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/shared/MarkdownRenderer.tsx",lineNumber:317,columnNumber:5},this)}const OJ=`---
710
+ `),{ALLOWED_TAGS:["h1","h2","h3","p","pre","code","strong","em","a","ul","ol","li","br","hr","blockquote"],ALLOWED_ATTR:["href","class","target","rel","id","data-language"],ALLOW_DATA_ATTR:!0})}function MJ({content:e,className:t}){const s=AJ(e);return i.jsxDEV("div",{className:Pe("prose prose-sm max-w-none",t),dangerouslySetInnerHTML:{__html:s}},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/shared/MarkdownRenderer.tsx",lineNumber:322,columnNumber:5},this)}const OJ=`---
711
711
  title: "Code Review"
712
712
  description: "Review code changes with inline comments, suggestions, and AI agent collaboration"
713
713
  slug: "code-review"
@@ -911,4 +911,4 @@ WARNING: This link could potentially be dangerous`)){const N=window.open();if(N)
911
911
  ---
912
912
  `;async function Gle(){const e=await fetch("/api/settings");if(!e.ok)throw new Error("Failed to fetch settings");return e.json()}async function Yle(e){const t=await fetch(`/api/prompts?projectId=${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch prompts");return t.json()}async function _m(e){const t=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error("Failed to update settings");return t.json()}const WP=`[Epic Assignment]
913
913
  {epic_title} is now assigned to {agent_name} in {project_name}. (Epic ID: {epic_id})`,Qle=1024*1024,Jw=64*1024,eE=4*1024*1024,Xle=[{token:"{epic_id}",description:"Epic UUID"},{token:"{agent_name}",description:"Agent display name"},{token:"{epic_title}",description:"Epic title"},{token:"{project_name}",description:"Project name"},{token:"{assigner_name}",description:'Who assigned the epic (or "System" if unknown)'}];function tE(e){switch(e){case"pass":return i.jsxDEV(ca,{className:"h-5 w-5 text-green-600"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:125,columnNumber:14},this);case"fail":return i.jsxDEV(al,{className:"h-5 w-5 text-destructive"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:127,columnNumber:14},this);case"warn":return i.jsxDEV($i,{className:"h-5 w-5 text-yellow-600"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:129,columnNumber:14},this);default:return null}}function Zle(){var W,ae,le,xe,he,Me;const{selectedProject:e}=fr(),t=e==null?void 0:e.rootPath,s=Zs(),{toast:a}=ci(),{data:o,refetch:c,isLoading:p,isRefetching:l}=rt({queryKey:["preflight",t??"global"],queryFn:()=>Tf(t),refetchInterval:6e4,staleTime:6e4}),{data:d}=rt({queryKey:["settings"],queryFn:Gle}),{data:h,isLoading:v}=rt({queryKey:["prompts",(e==null?void 0:e.id)??null],queryFn:()=>Yle(e==null?void 0:e.id),enabled:!!(e!=null&&e.id)}),f=Ct({mutationFn:({initialSessionPromptId:me,projectId:Ee})=>_m({initialSessionPromptId:me,projectId:Ee}),onSuccess:()=>{s.invalidateQueries({queryKey:["settings"]}),a({title:"Initial session prompt updated",description:"New sessions will start with the selected prompt."})},onError:me=>{const Ee=me instanceof Error?me.message:"Failed to update settings";a({title:"Update failed",description:Ee,variant:"destructive"})}}),E=((e==null?void 0:e.id)&&((W=d==null?void 0:d.initialSessionPromptIds)==null?void 0:W[e.id]))??null,w=E??"__none__",C=E?(ae=h==null?void 0:h.items)==null?void 0:ae.find(me=>me.id===E):void 0,S=((le=h==null?void 0:h.items)==null?void 0:le.length)??0,x=!d||v||f.isPending||!(e!=null&&e.id),N=((he=(xe=d==null?void 0:d.events)==null?void 0:xe.epicAssigned)==null?void 0:he.template)??"",[g,y]=b.useState(""),[_,P]=b.useState(""),[R,j]=b.useState(""),[T,A]=b.useState(""),[k,F]=b.useState("form"),[M,L]=b.useState(MP),[U,Z]=b.useState(OP),[q,Y]=b.useState(FP),[K,O]=b.useState(zP),[B,z]=b.useState(HP);b.useEffect(()=>{P(N)},[N]),b.useEffect(()=>{var Ee;const me=((Ee=d==null?void 0:d.activity)==null?void 0:Ee.idleTimeoutMs)??3e4;y(Math.floor(me/1e3))},[d]),b.useEffect(()=>{var Fe,Le,gt;if(!d)return;const me=((Fe=d.terminal)==null?void 0:Fe.scrollbackLines)??kd;j(me);const Ee=((Le=d.terminal)==null?void 0:Le.seedingMaxBytes)??Qle;A(Math.round(Ee/1024)),F(((gt=d.terminal)==null?void 0:gt.inputMode)??"form")},[d]),b.useEffect(()=>{var me,Ee,Fe,Le,gt;d&&(L(((me=d.messagePool)==null?void 0:me.enabled)??MP),Z(((Ee=d.messagePool)==null?void 0:Ee.delayMs)??OP),Y(((Fe=d.messagePool)==null?void 0:Fe.maxWaitMs)??FP),O(((Le=d.messagePool)==null?void 0:Le.maxMessages)??zP),z(((gt=d.messagePool)==null?void 0:gt.separator)??HP))},[d]);const H=me=>{const Ee=me==="__none__"?null:me;Ee!==E&&f.mutate({initialSessionPromptId:Ee,projectId:e==null?void 0:e.id})},J=Ct({mutationFn:({template:me})=>_m({events:{epicAssigned:{template:me}}}),onSuccess:()=>{s.invalidateQueries({queryKey:["settings"]}),a({title:"Epic assignment message updated",description:"Agents will see the new message on the next assignment."})},onError:me=>{const Ee=me instanceof Error?me.message:"Failed to update template";a({title:"Update failed",description:Ee,variant:"destructive"})}}),te=_!==N,Ne=Ct({mutationFn:({idleTimeoutMs:me})=>_m({activity:{idleTimeoutMs:me}}),onSuccess:()=>{s.invalidateQueries({queryKey:["settings"]}),a({title:"Activity idle timeout updated"})},onError:me=>{const Ee=me instanceof Error?me.message:"Failed to update setting";a({title:"Update failed",description:Ee,variant:"destructive"})}}),De=Ct({mutationFn:({scrollbackLines:me,seedingMaxBytes:Ee,inputMode:Fe})=>_m({terminal:{scrollbackLines:me,seedingMaxBytes:Ee,inputMode:Fe}}),onSuccess:()=>{s.invalidateQueries({queryKey:["settings"]}),a({title:"Terminal settings updated"})},onError:me=>{const Ee=me instanceof Error?me.message:"Failed to update terminal settings";a({title:"Update failed",description:Ee,variant:"destructive"})}}),Q=Ct({mutationFn:({enabled:me,delayMs:Ee,maxWaitMs:Fe,maxMessages:Le,separator:gt})=>_m({messagePool:{enabled:me,delayMs:Ee,maxWaitMs:Fe,maxMessages:Le,separator:gt}}),onSuccess:()=>{s.invalidateQueries({queryKey:["settings"]}),a({title:"Message pool settings updated"})},onError:me=>{const Ee=me instanceof Error?me.message:"Failed to update message pool settings";a({title:"Update failed",description:Ee,variant:"destructive"})}});return i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"mb-6",children:[i.jsxDEV("h1",{className:"text-3xl font-bold",children:"Settings"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:358,columnNumber:9},this),i.jsxDEV("p",{className:"text-muted-foreground mt-2",children:"Configure system settings and provider binaries"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:359,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:357,columnNumber:7},this),i.jsxDEV(Bs,{className:"mb-6",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Initial Session Prompt"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:367,columnNumber:11},this),i.jsxDEV(Li,{children:"Choose which prompt is pasted into new sessions before the agent begins."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:368,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:366,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"initial-session-prompt",children:"Initial prompt"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:375,columnNumber:15},this),i.jsxDEV(Vs,{value:w,onValueChange:H,disabled:x,children:[i.jsxDEV(js,{id:"initial-session-prompt",children:i.jsxDEV(Ls,{placeholder:v?"Loading prompts…":"Select prompt"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:382,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:381,columnNumber:17},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"__none__",children:"None (use default message)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:387,columnNumber:19},this),(Me=h==null?void 0:h.items)==null?void 0:Me.map(me=>i.jsxDEV(Rt,{value:me.id,children:me.title},me.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:389,columnNumber:21},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:386,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:376,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:374,columnNumber:13},this),v&&i.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:399,columnNumber:17},this),"Loading prompts…"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:398,columnNumber:15},this),f.isPending&&i.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:406,columnNumber:17},this),"Saving selection…"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:405,columnNumber:15},this),!v&&S===0&&i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:["No prompts available yet. Create one on the"," ",i.jsxDEV("a",{href:"/prompts",className:"font-semibold underline hover:text-primary",children:"Prompts"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:414,columnNumber:17},this)," ","page."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:412,columnNumber:15},this),!v&&E&&C&&i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:["Selected prompt:"," ",i.jsxDEV("span",{className:"font-semibold text-foreground",children:C.title},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:424,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:422,columnNumber:15},this),!v&&E&&!C&&i.jsxDEV(wi,{variant:"destructive",children:[i.jsxDEV(Ni,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:430,columnNumber:17},this),i.jsxDEV(pn,{children:"Prompt missing"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:431,columnNumber:17},this),i.jsxDEV(Ei,{children:"The previously selected prompt could not be found. Pick another prompt to ensure sessions start with the right instructions."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:432,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:429,columnNumber:15},this),!v&&!E&&i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Using the default built-in message until a prompt is selected."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:440,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Supported variables: ",i.jsxDEV("code",{className:"font-mono text-xs",children:"{agent_name}"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:446,columnNumber:36},this),","," ",i.jsxDEV("code",{className:"font-mono text-xs",children:"{project_name}"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:447,columnNumber:15},this),","," ",i.jsxDEV("code",{className:"font-mono text-xs",children:"{epic_title}"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:448,columnNumber:15},this),","," ",i.jsxDEV("code",{className:"font-mono text-xs",children:"{provider_name}"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:449,columnNumber:15},this),","," ",i.jsxDEV("code",{className:"font-mono text-xs",children:"{profile_name}"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:450,columnNumber:15},this),","," ",i.jsxDEV("code",{className:"font-mono text-xs",children:"{session_id}"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:451,columnNumber:15},this),","," ",i.jsxDEV("code",{className:"font-mono text-xs",children:"{session_id_short}"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:452,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:445,columnNumber:13},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Need to edit the prompt content? Visit the"," ",i.jsxDEV("a",{href:"/prompts",className:"font-semibold underline hover:text-primary",children:"Prompts"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:457,columnNumber:15},this)," ","page."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:455,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:373,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:372,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:365,columnNumber:7},this),i.jsxDEV(Bs,{className:"mb-6",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Terminal Settings"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:469,columnNumber:11},this),i.jsxDEV(Li,{children:"Configure terminal input mode and scrollback behavior. Chat Mode is now the default terminal engine, using tmux-based history seeding."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:470,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:468,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-4 max-w-md",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"terminal-input-mode",children:"Terminal input mode"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:478,columnNumber:15},this),i.jsxDEV(Vs,{value:k,onValueChange:me=>F(me||"form"),disabled:De.isPending,children:[i.jsxDEV(js,{id:"terminal-input-mode",className:"w-72",children:i.jsxDEV(Ls,{placeholder:"Select input mode"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:485,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:484,columnNumber:17},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"form",children:"Form input (simple command entry)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:488,columnNumber:19},this),i.jsxDEV(Rt,{value:"tty",children:"TTY input (direct terminal control)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:489,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:487,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:479,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:k==="form"?"Form mode: Type commands in a text field and press Send. Best for simple command execution.":"TTY mode: Direct keyboard input to terminal. Enables vim, tab completion, Ctrl+C, etc."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:492,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:477,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"terminal-scrollback",children:"Scrollback lines"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:499,columnNumber:15},this),i.jsxDEV("input",{id:"terminal-scrollback",type:"number",min:Mm,max:Om,step:100,className:"w-40 rounded border px-3 py-2 text-sm bg-background",value:R,onChange:me=>{const{value:Ee}=me.target;if(Ee===""){j("");return}const Fe=Number(Ee);Number.isFinite(Fe)&&j(Fe)},disabled:De.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:500,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Controls how many lines the server emulator retains (min ",Mm,", max ",Om,")."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:521,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:498,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"terminal-seed-max",children:"Seed snapshot cap (KB)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:527,columnNumber:15},this),i.jsxDEV("input",{id:"terminal-seed-max",type:"number",min:Math.floor(Jw/1024),max:Math.floor(eE/1024),step:64,className:"w-40 rounded border px-3 py-2 text-sm bg-background",value:T,onChange:me=>{const{value:Ee}=me.target;if(Ee===""){A("");return}const Fe=Number(Ee);Number.isFinite(Fe)&&A(Fe)},disabled:De.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:528,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Caps the initial ANSI snapshot size (min ",Jw/1024,"KB, max"," ",eE/1024,"KB)."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:549,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:526,columnNumber:13},this),i.jsxDEV("div",{children:i.jsxDEV(ce,{disabled:R===""||T===""||De.isPending,onClick:()=>{if(R===""||T==="")return;const me=Math.round(Math.max(Mm,Math.min(Number(R),Om))),Fe=Math.round(Math.max(Jw/1024,Math.min(Number(T),eE/1024)))*1024;De.mutate({scrollbackLines:me,seedingMaxBytes:Fe,inputMode:k})},children:De.isPending?i.jsxDEV("span",{className:"inline-flex items-center gap-2",children:[i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:585,columnNumber:21},this)," Saving…"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:584,columnNumber:19},this):"Save"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:555,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:554,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:476,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:475,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:467,columnNumber:7},this),i.jsxDEV(Bs,{className:"mb-6",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Terminal Activity"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:599,columnNumber:11},this),i.jsxDEV(Li,{children:"Configure Busy/Idle tracking for sessions."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:600,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:598,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-4 max-w-md",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"idle-timeout",children:"Idle timeout (seconds)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:605,columnNumber:15},this),i.jsxDEV("input",{id:"idle-timeout",type:"number",min:1,step:1,className:"w-40 rounded border px-3 py-2 text-sm bg-background",value:g,onChange:me=>{const Ee=me.target.value,Fe=Number(Ee);y(Number.isFinite(Fe)&&Fe>0?Fe:"")}},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:606,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"After this period without terminal output, sessions switch to Idle."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:619,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:604,columnNumber:13},this),i.jsxDEV("div",{children:i.jsxDEV(ce,{disabled:g===""||Ne.isPending,onClick:()=>{if(g==="")return;const me=Math.max(1,g)*1e3;Ne.mutate({idleTimeoutMs:me})},children:Ne.isPending?i.jsxDEV("span",{className:"inline-flex items-center gap-2",children:[i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:634,columnNumber:21},this)," Saving…"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:633,columnNumber:19},this):"Save"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:624,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:623,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:603,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:602,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:597,columnNumber:7},this),i.jsxDEV(Bs,{className:"mb-6",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Message Pooling"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:648,columnNumber:11},this),i.jsxDEV(Li,{children:"Configure how messages are batched before delivery to agent sessions. Pooling reduces context fragmentation when multiple events occur rapidly."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:649,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:647,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-6 max-w-lg",children:[i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{className:"space-y-0.5",children:[i.jsxDEV($e,{htmlFor:"pool-enabled",children:"Enable Message Pooling"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:659,columnNumber:17},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"When disabled, all messages are delivered immediately"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:660,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:658,columnNumber:15},this),i.jsxDEV(kf,{id:"pool-enabled",checked:M,onCheckedChange:L,disabled:Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:664,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:657,columnNumber:13},this),!M&&i.jsxDEV(wi,{children:[i.jsxDEV($i,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:674,columnNumber:17},this),i.jsxDEV(pn,{children:"Pooling Disabled"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:675,columnNumber:17},this),i.jsxDEV(Ei,{children:"Messages will be delivered immediately. This may cause context fragmentation when multiple events occur rapidly."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:676,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:673,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"pool-delay",children:"Debounce Delay (seconds)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:685,columnNumber:15},this),i.jsxDEV("input",{id:"pool-delay",type:"number",min:LP/1e3,max:IP/1e3,step:1,className:"w-24 rounded border px-3 py-2 text-sm bg-background",value:U/1e3,onChange:me=>{const Ee=me.target.value,Fe=Number(Ee);Number.isFinite(Fe)&&Fe>0&&Z(Fe*1e3)},disabled:!M||Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:686,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Timer resets on each new message. Range: 1s - 60s"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:703,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:684,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"pool-max-wait",children:"Maximum Wait Time (seconds)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:710,columnNumber:15},this),i.jsxDEV("input",{id:"pool-max-wait",type:"number",min:Kle/1e3,max:BP/1e3,step:5,className:"w-24 rounded border px-3 py-2 text-sm bg-background",value:q/1e3,onChange:me=>{const Ee=me.target.value,Fe=Number(Ee);Number.isFinite(Fe)&&Fe>0&&Y(Fe*1e3)},disabled:!M||Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:711,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Forces flush after this time regardless of new messages. Prevents starvation.",q<U&&i.jsxDEV("span",{className:"text-destructive ml-1",children:"(Must be ≥ debounce delay)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:731,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:728,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:709,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"pool-max-messages",children:"Maximum Messages"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:738,columnNumber:15},this),i.jsxDEV("input",{id:"pool-max-messages",type:"number",min:UP,max:$P,step:1,className:"w-24 rounded border px-3 py-2 text-sm bg-background",value:K,onChange:me=>{const Ee=me.target.value;if(Ee===""){O("");return}const Fe=Number(Ee);Number.isFinite(Fe)&&O(Fe)},disabled:!M||Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:739,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Forces flush when this many messages are queued. Range: 1 - 50"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:760,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:737,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"pool-separator",children:"Message Separator"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:767,columnNumber:15},this),i.jsxDEV("input",{id:"pool-separator",type:"text",className:"w-full rounded border px-3 py-2 text-sm bg-background font-mono",value:B.replace(/\n/g,"\\n"),onChange:me=>{const Ee=me.target.value.replace(/\\n/g,`
914
- `);z(Ee)},placeholder:"\\n---\\n",disabled:!M||Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:768,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Text inserted between batched messages. Use \\n for newlines."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:780,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:766,columnNumber:13},this),i.jsxDEV("div",{children:i.jsxDEV(ce,{disabled:K===""||q<U||Q.isPending,onClick:()=>{if(K==="")return;const me=Math.max(UP,Math.min(Number(K),$P)),Ee=Math.max(LP,Math.min(U,IP)),Fe=Math.max(Ee,Math.min(q,BP));Q.mutate({enabled:M,delayMs:Ee,maxWaitMs:Fe,maxMessages:me,separator:B})},children:Q.isPending?i.jsxDEV("span",{className:"inline-flex items-center gap-2",children:[i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:818,columnNumber:21},this)," Saving…"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:817,columnNumber:19},this):"Save"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:787,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:786,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:655,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:654,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:646,columnNumber:7},this),i.jsxDEV(Bs,{className:"mb-6",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Events"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:832,columnNumber:11},this),i.jsxDEV(Li,{children:"Customize agent notifications triggered by events."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:833,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:831,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"epic-assigned-template",children:"Epic Assigned message"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:838,columnNumber:15},this),i.jsxDEV(Gi,{id:"epic-assigned-template",value:_,onChange:me=>P(me.target.value),placeholder:WP,rows:5,className:"font-mono text-sm"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:839,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Leave blank to use the default message. Supports the placeholders below."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:847,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:837,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(ce,{onClick:()=>J.mutate({template:_}),disabled:!te||J.isPending,children:J.isPending?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:859,columnNumber:21},this),"Saving…"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:858,columnNumber:19},this):"Save"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:853,columnNumber:15},this),i.jsxDEV(ce,{type:"button",variant:"ghost",onClick:()=>P(WP),disabled:J.isPending,children:"Reset to default"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:866,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:852,columnNumber:13},this),i.jsxDEV("div",{className:"rounded-lg border bg-muted/30 p-4",children:[i.jsxDEV("p",{className:"text-sm font-semibold mb-2",children:"Available placeholders"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:877,columnNumber:15},this),i.jsxDEV("ul",{className:"space-y-1 text-sm text-muted-foreground",children:Xle.map(({token:me,description:Ee})=>i.jsxDEV("li",{children:[i.jsxDEV("code",{className:"font-mono text-xs mr-2",children:me},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:881,columnNumber:21},this),Ee]},me,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:880,columnNumber:19},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:878,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:876,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:836,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:835,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:830,columnNumber:7},this),i.jsxDEV(Bs,{className:"mb-6",children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"System Preflight Checks"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:896,columnNumber:15},this),i.jsxDEV(Li,{children:"Verify that all required dependencies and configurations are correct"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:897,columnNumber:15},this),e&&i.jsxDEV("p",{className:"mt-2 text-xs text-muted-foreground",children:["Target project:"," ",i.jsxDEV("span",{className:"font-semibold text-foreground",children:e.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:903,columnNumber:19},this),i.jsxDEV("span",{className:"ml-2 font-mono text-[11px] text-muted-foreground/80",children:e.rootPath},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:904,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:901,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:895,columnNumber:13},this),i.jsxDEV(ce,{variant:"outline",size:"sm",onClick:()=>c(),disabled:l,children:[l?i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:917,columnNumber:17},this):i.jsxDEV(PN,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:919,columnNumber:17},this),"Refresh"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:910,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:894,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:893,columnNumber:9},this),i.jsxDEV(Ks,{children:[p&&i.jsxDEV("div",{className:"flex items-center justify-center py-8",children:[i.jsxDEV(Dt,{className:"h-6 w-6 animate-spin text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:928,columnNumber:15},this),i.jsxDEV("span",{className:"ml-2 text-muted-foreground",children:"Running preflight checks..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:929,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:927,columnNumber:13},this),o&&i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV(wi,{variant:o.overall==="fail"?"destructive":"default",children:[tE(o.overall),i.jsxDEV(pn,{children:["Overall Status: ",o.overall.toUpperCase()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:938,columnNumber:17},this),i.jsxDEV(Ei,{children:[o.overall==="pass"&&"All systems operational",o.overall==="warn"&&"Some checks have warnings",o.overall==="fail"&&"Some checks failed. Session launch will be blocked."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:939,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:936,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-3",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"System Checks"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:949,columnNumber:17},this),o.checks.map(me=>i.jsxDEV(Bs,{className:me.status==="fail"?"border-destructive":me.status==="warn"?"border-yellow-600":"border-green-600",children:i.jsxDEV(Ks,{className:"pt-4",children:i.jsxDEV("div",{className:"flex items-start gap-3",children:[i.jsxDEV("div",{className:"mt-0.5",children:tE(me.status)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:965,columnNumber:25},this),i.jsxDEV("div",{className:"flex-1",children:[i.jsxDEV("h4",{className:"font-semibold mb-1",children:me.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:967,columnNumber:27},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground mb-2",children:me.message},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:968,columnNumber:27},this),me.details&&i.jsxDEV("div",{className:"text-xs bg-muted p-2 rounded font-mono",children:me.details},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:970,columnNumber:29},this),me.remediation&&i.jsxDEV("div",{className:"mt-2 text-xs text-muted-foreground",children:[i.jsxDEV("strong",{children:"How to fix:"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:976,columnNumber:31},this)," ",me.remediation]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:975,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:966,columnNumber:25},this),i.jsxDEV(Ze,{variant:me.status==="pass"?"default":me.status==="fail"?"destructive":"secondary",children:me.status.toUpperCase()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:980,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:964,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:963,columnNumber:21},this)},me.name,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:953,columnNumber:19},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:948,columnNumber:15},this),o.providers&&o.providers.length>0&&i.jsxDEV("div",{className:"space-y-3 mt-6",children:[i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Provider Checks"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1001,columnNumber:21},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:[o.providers.length," provider",o.providers.length!==1?"s":""," configured"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1004,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1e3,columnNumber:19},this),o.providers.map(me=>i.jsxDEV(Bs,{className:me.status==="fail"?"border-destructive":me.status==="warn"?"border-yellow-600":"border-green-600",children:i.jsxDEV(Ks,{className:"pt-4",children:i.jsxDEV("div",{className:"flex items-start gap-3",children:[i.jsxDEV("div",{className:"mt-0.5",children:tE(me.status)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1022,columnNumber:27},this),i.jsxDEV("div",{className:"flex-1 space-y-2",children:[i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("h4",{className:"font-semibold",children:me.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1025,columnNumber:31},this),i.jsxDEV(Ze,{variant:me.status==="pass"?"default":me.status==="fail"?"destructive":"secondary",children:me.status.toUpperCase()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1026,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1024,columnNumber:29},this),me.binPath&&i.jsxDEV("div",{className:"text-xs bg-muted p-2 rounded font-mono",children:me.binPath},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1039,columnNumber:31},this),i.jsxDEV("div",{className:"flex flex-col gap-2",children:[i.jsxDEV("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxDEV(Ze,{variant:"secondary",className:me.binaryStatus==="fail"?"border border-destructive bg-destructive/10 text-destructive":me.binaryStatus==="warn"?"border border-yellow-600 bg-yellow-500/10 text-yellow-700":"border border-emerald-500 bg-emerald-500/10 text-emerald-600",children:["Binary ",me.binaryStatus.toUpperCase()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1045,columnNumber:33},this),i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:me.binaryMessage},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1057,columnNumber:33},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1044,columnNumber:31},this),me.mcpStatus&&i.jsxDEV("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxDEV(Ze,{variant:"secondary",className:me.mcpStatus==="fail"?"border border-destructive bg-destructive/10 text-destructive":me.mcpStatus==="warn"?"border border-yellow-600 bg-yellow-500/10 text-yellow-700":"border border-emerald-500 bg-emerald-500/10 text-emerald-600",children:["MCP ",me.mcpStatus.toUpperCase()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1063,columnNumber:35},this),i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:me.mcpMessage??"MCP not required."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1075,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1062,columnNumber:33},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1043,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1023,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1021,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1020,columnNumber:23},this)},me.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1010,columnNumber:21},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:999,columnNumber:17},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground mt-4",children:["Last checked: ",new Date(o.timestamp).toLocaleString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1091,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:934,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:925,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:892,columnNumber:7},this),i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Provider Management"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1102,columnNumber:11},this),i.jsxDEV(Li,{children:"Configure AI provider binaries and settings"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1103,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1101,columnNumber:9},this),i.jsxDEV(Ks,{children:[i.jsxDEV(wi,{children:[i.jsxDEV(Ni,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1107,columnNumber:13},this),i.jsxDEV(pn,{children:"Manage Providers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1108,columnNumber:13},this),i.jsxDEV(Ei,{children:["Provider configurations, including binary paths, are now managed through the dedicated"," ",i.jsxDEV("a",{href:"/providers",className:"font-semibold underline hover:text-primary",children:"Providers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1111,columnNumber:15},this)," ","page. You can add, edit, and configure provider binaries there."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1109,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1106,columnNumber:11},this),i.jsxDEV("div",{className:"mt-4",children:i.jsxDEV(ce,{variant:"outline",onClick:()=>window.location.href="/providers",children:"Go to Providers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1118,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1117,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1105,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1100,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:356,columnNumber:5},this)}const $p={name:"",handler:"",status:"all",timeRange:"1h"},Jle=[{label:"Last hour",value:"1h"},{label:"Last 24 hours",value:"24h"},{label:"Last 7 days",value:"7d"},{label:"Last 30 days",value:"30d"},{label:"All time",value:"all"}];async function ece(e){const t=new URLSearchParams;e.name&&t.set("name",e.name),e.handler&&t.set("handler",e.handler),e.status&&t.set("status",e.status),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to),e.limit!==void 0&&t.set("limit",String(e.limit)),e.offset!==void 0&&t.set("offset",String(e.offset));const s=await fetch(`/api/events?${t.toString()}`);if(!s.ok)throw new Error("Failed to fetch events");return s.json()}function tce(e){if(e==="all")return{};const t=new Date;let s;switch(e){case"1h":s=new Date(t.getTime()-60*60*1e3);break;case"24h":s=new Date(t.getTime()-24*60*60*1e3);break;case"7d":s=new Date(t.getTime()-7*24*60*60*1e3);break;case"30d":s=new Date(t.getTime()-30*24*60*60*1e3);break;default:s=void 0;break}return s?{from:s.toISOString(),to:t.toISOString()}:{}}function qP(e){if(e==null)return"null";if(typeof e=="string")try{const t=JSON.parse(e);return JSON.stringify(t,null,2)}catch{return e}try{return JSON.stringify(e,null,2)}catch{return String(e)}}function KP(e){return e.reduce((t,s)=>(t.total+=1,s.status==="success"?t.success+=1:t.failure+=1,t),{total:0,success:0,failure:0})}function sce(){const e=Zs(),[t,s]=b.useState($p),[a,o]=b.useState({limit:50,offset:0}),[c,p]=b.useState(null);b.useEffect(()=>{o(R=>R.offset===0?R:{...R,offset:0})},[t.name,t.handler,t.status,t.timeRange]);const l=b.useCallback(R=>{if(!R)return;const{topic:j,type:T}=R;j==="events/logs"&&(T==="event_created"||T==="handler_recorded")&&e.invalidateQueries({queryKey:["eventLogs"]})},[e]);Ec({connect:()=>sr().emit("events:subscribe"),message:l},[l]);const d=b.useMemo(()=>tce(t.timeRange),[t.timeRange]),{data:h,isLoading:v,refetch:f,error:E}=rt({queryKey:["eventLogs",t,a],queryFn:()=>ece({name:t.name.trim()||void 0,handler:t.handler.trim()||void 0,status:t.status==="all"?void 0:t.status,...d,limit:a.limit,offset:a.offset})}),w=(h==null?void 0:h.items)??[],C=(h==null?void 0:h.total)??0,S=C===0?0:a.offset+1,x=a.offset+w.length,N=a.offset>0,g=a.offset+a.limit<C;b.useEffect(()=>{if(w.length===0){p(null);return}(!c||!w.some(R=>R.id===c))&&p(w[0].id)},[w,c]);const y=w.find(R=>R.id===c)??null,_=(y==null?void 0:y.handlers)??[],P=y?KP(y.handlers):null;return i.jsxDEV("div",{className:"space-y-6",children:[i.jsxDEV("div",{children:[i.jsxDEV("h1",{className:"text-3xl font-bold",children:"Events Viewer"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:245,columnNumber:9},this),i.jsxDEV("p",{className:"text-muted-foreground mt-2",children:"Monitor published events and handler outcomes in real time."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:246,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:244,columnNumber:7},this),i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Filters"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:253,columnNumber:11},this),i.jsxDEV(Li,{children:"Refine the events shown below."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:254,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:252,columnNumber:9},this),i.jsxDEV(Ks,{children:[i.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"filter-name",children:"Event name"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:259,columnNumber:15},this),i.jsxDEV(Ut,{id:"filter-name",value:t.name,onChange:R=>s(j=>({...j,name:R.target.value})),placeholder:"e.g. epic.updated"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:260,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:258,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"filter-handler",children:"Handler"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:268,columnNumber:15},this),i.jsxDEV(Ut,{id:"filter-handler",value:t.handler,onChange:R=>s(j=>({...j,handler:R.target.value})),placeholder:"e.g. EpicAssignmentNotifier"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:269,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:267,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Status"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:279,columnNumber:15},this),i.jsxDEV(Vs,{value:t.status,onValueChange:R=>s(j=>({...j,status:R})),children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{placeholder:"All statuses"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:287,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:286,columnNumber:17},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:290,columnNumber:19},this),i.jsxDEV(Rt,{value:"success",children:"Success"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:291,columnNumber:19},this),i.jsxDEV(Rt,{value:"failure",children:"Failure"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:292,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:289,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:280,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:278,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Time range"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:297,columnNumber:15},this),i.jsxDEV(Vs,{value:t.timeRange,onValueChange:R=>s(j=>({...j,timeRange:R})),children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{placeholder:"Select range"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:305,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:304,columnNumber:17},this),i.jsxDEV(Ps,{children:Jle.map(R=>i.jsxDEV(Rt,{value:R.value,children:R.label},R.value,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:309,columnNumber:21},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:307,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:298,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:296,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:257,columnNumber:11},this),i.jsxDEV("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[i.jsxDEV(ce,{onClick:()=>f(),variant:"outline",size:"sm",disabled:v,className:"flex items-center gap-2",children:[i.jsxDEV(PN,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:325,columnNumber:15},this),"Refresh"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:318,columnNumber:13},this),i.jsxDEV(ce,{onClick:()=>s($p),variant:"ghost",size:"sm",disabled:t.name===$p.name&&t.handler===$p.handler&&t.status===$p.status&&t.timeRange===$p.timeRange,children:"Clear filters"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:328,columnNumber:13},this),h?i.jsxDEV("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[i.jsxDEV(T7,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:343,columnNumber:17},this),i.jsxDEV("span",{children:["Showing ",C===0?0:`${S}–${x}`," of ",C," events"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:344,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:342,columnNumber:15},this):null]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:317,columnNumber:11},this),E instanceof Error&&i.jsxDEV("p",{className:"mt-4 text-sm text-destructive",children:["Failed to load events: ",E.message]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:351,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:256,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:251,columnNumber:7},this),i.jsxDEV("div",{className:"flex gap-6 h-[calc(100vh-24rem)]",children:[i.jsxDEV(Bs,{className:"flex-1 flex flex-col",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Event Log"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:360,columnNumber:13},this),i.jsxDEV(Li,{children:"Newest events appear first."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:361,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:359,columnNumber:11},this),i.jsxDEV(Ks,{className:"flex-1 flex flex-col min-h-0",children:[i.jsxDEV(Vn,{className:"flex-1 -mx-6 px-6",children:i.jsxDEV("div",{className:"overflow-hidden rounded-lg border",children:i.jsxDEV(yf,{children:[i.jsxDEV(wf,{children:i.jsxDEV(Kr,{children:[i.jsxDEV(tr,{className:"w-[200px]",children:"Published"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:369,columnNumber:23},this),i.jsxDEV(tr,{children:"Event"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:370,columnNumber:23},this),i.jsxDEV(tr,{className:"w-[160px] text-center",children:"Handlers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:371,columnNumber:23},this),i.jsxDEV(tr,{className:"w-[180px]",children:"Request ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:372,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:368,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:367,columnNumber:19},this),i.jsxDEV(Ef,{children:v&&w.length===0?i.jsxDEV(Kr,{children:i.jsxDEV(ti,{colSpan:4,className:"py-8 text-center text-muted-foreground",children:"Loading events..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:378,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:377,columnNumber:23},this):w.length===0?i.jsxDEV(Kr,{children:i.jsxDEV(ti,{colSpan:4,className:"py-12 text-center text-muted-foreground",children:"No events found. Adjust filters or wait for new activity."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:384,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:383,columnNumber:23},this):w.map(R=>{const j=KP(R.handlers),T=R.id===c;return i.jsxDEV(Kr,{className:Pe("cursor-pointer",T&&"bg-muted/60 hover:bg-muted/60"),onClick:()=>p(R.id),"aria-selected":T,children:[i.jsxDEV(ti,{className:"font-mono text-xs",children:new Date(R.publishedAt).toLocaleString()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:402,columnNumber:29},this),i.jsxDEV(ti,{children:i.jsxDEV("div",{className:"font-medium",children:R.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:406,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:405,columnNumber:29},this),i.jsxDEV(ti,{className:"text-center",children:i.jsxDEV("div",{className:"flex items-center justify-center gap-2",children:[i.jsxDEV(Ze,{variant:"outline",className:"border-emerald-500 text-emerald-600",children:[j.success," OK"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:410,columnNumber:33},this),i.jsxDEV(Ze,{variant:"outline",className:"border-destructive text-destructive",children:[j.failure," Fail"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:416,columnNumber:33},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:409,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:408,columnNumber:29},this),i.jsxDEV(ti,{className:"font-mono text-xs",children:R.requestId??"--"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:424,columnNumber:29},this)]},R.id,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:393,columnNumber:27},this)})},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:375,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:366,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:365,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:364,columnNumber:13},this),i.jsxDEV("div",{className:"mt-4 flex items-center justify-between gap-2 pt-4 border-t",children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:["Page ",Math.floor(a.offset/a.limit)+1," of"," ",Math.max(1,Math.ceil(C/a.limit))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:437,columnNumber:15},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(ce,{variant:"outline",size:"sm",onClick:()=>o(R=>({...R,offset:Math.max(0,R.offset-R.limit)})),disabled:!N||v,children:"Previous"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:442,columnNumber:17},this),i.jsxDEV(ce,{variant:"outline",size:"sm",onClick:()=>o(R=>({...R,offset:R.offset+R.limit})),disabled:!g||v,children:"Next"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:455,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:441,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:436,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:363,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:358,columnNumber:9},this),i.jsxDEV(Bs,{className:"flex-1 flex flex-col",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Event Details"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:476,columnNumber:13},this),i.jsxDEV(Li,{children:"Inspect payload and handler results."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:477,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:475,columnNumber:11},this),i.jsxDEV(Ks,{className:"flex-1 min-h-0",children:i.jsxDEV(Vn,{className:"h-full -mx-6 px-6",children:y?i.jsxDEV("div",{className:"space-y-4 pr-4",children:[i.jsxDEV("div",{children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Overview"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:486,columnNumber:21},this),i.jsxDEV("div",{className:"mt-2 grid gap-3 sm:grid-cols-2",children:[i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"Event"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:491,columnNumber:25},this),i.jsxDEV("div",{className:"font-semibold",children:y.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:492,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:490,columnNumber:23},this),i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"Published"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:495,columnNumber:25},this),i.jsxDEV("div",{className:"font-mono text-xs",children:new Date(y.publishedAt).toLocaleString()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:496,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:494,columnNumber:23},this),i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"Request ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:501,columnNumber:25},this),i.jsxDEV("div",{className:"font-mono text-xs",children:y.requestId??"--"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:502,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:500,columnNumber:23},this),P&&i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"Handlers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:506,columnNumber:27},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(Ze,{variant:"outline",className:"border-emerald-500 text-emerald-600",children:[P.success," OK"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:508,columnNumber:29},this),i.jsxDEV(Ze,{variant:"outline",className:"border-destructive text-destructive",children:[P.failure," Fail"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:514,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:507,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:505,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:489,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:485,columnNumber:19},this),i.jsxDEV("div",{children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Payload"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:527,columnNumber:21},this),i.jsxDEV("pre",{className:"mt-2 h-48 overflow-auto rounded-lg border bg-muted/50 p-4 text-xs whitespace-pre-wrap break-all",children:qP(y.payload)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:530,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:526,columnNumber:19},this),i.jsxDEV("div",{children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Handlers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:536,columnNumber:21},this),_.length===0?i.jsxDEV("p",{className:"mt-2 text-sm text-muted-foreground",children:"No handlers recorded yet."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:540,columnNumber:23},this):i.jsxDEV("div",{className:"mt-2 space-y-3",children:_.map(R=>i.jsxDEV("div",{className:"rounded-lg border p-3",children:[i.jsxDEV("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-sm font-semibold",children:R.handler},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:549,columnNumber:33},this),i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:["Started ",new Date(R.startedAt).toLocaleString(),R.endedAt&&i.jsxDEV(i.Fragment,{children:[" - ","Ended ",new Date(R.endedAt).toLocaleString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:553,columnNumber:37},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:550,columnNumber:33},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:548,columnNumber:31},this),i.jsxDEV(Ze,{variant:R.status==="success"?"secondary":"destructive",className:"uppercase",children:R.status},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:559,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:547,columnNumber:29},this),R.detail!==void 0&&R.detail!==null&&i.jsxDEV("pre",{className:"mt-2 h-40 overflow-auto rounded bg-muted/50 p-3 text-xs whitespace-pre-wrap break-all",children:qP(R.detail)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:567,columnNumber:31},this)]},R.id,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:546,columnNumber:27},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:544,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:535,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:484,columnNumber:17},this):i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Select an event to view details."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:482,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:480,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:479,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:474,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:356,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:243,columnNumber:5},this)}async function ice(e){const t=await fetch(`/api/sessions/pools?projectId=${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch pools");return(await t.json()).pools}function rce({pool:e,onClick:t,isSelected:s}){const a=Math.round(e.waitingMs/1e3);return i.jsxDEV("button",{type:"button",onClick:t,className:Pe("p-3 border rounded-lg text-left transition-colors","hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",s&&"bg-accent border-primary"),"aria-pressed":s,"aria-label":`${e.agentName}: ${e.messageCount} message${e.messageCount!==1?"s":""}, waiting ${a} seconds`,children:[i.jsxDEV("div",{className:"font-medium",children:e.agentName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:63,columnNumber:7},this),i.jsxDEV("div",{className:"text-sm text-muted-foreground",children:[e.messageCount," msg",e.messageCount!==1?"s":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:64,columnNumber:7},this),i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:["~",a,"s wait"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:67,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:52,columnNumber:5},this)}function nce({projectId:e,onAgentClick:t,selectedAgentId:s}){const a=Zs(),{data:o,isLoading:c,error:p}=rt({queryKey:["pools",e],queryFn:()=>ice(e),refetchInterval:5e3,staleTime:1e3}),l=b.useCallback(d=>{if(!d)return;const{topic:h,type:v}=d;h==="messages/pools"&&v==="updated"&&a.invalidateQueries({queryKey:["pools",e]})},[a,e]);return Ec({message:l},[l]),i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Current Pools"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:106,columnNumber:9},this),i.jsxDEV(Li,{children:"Messages waiting to be delivered to agents"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:107,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:105,columnNumber:7},this),i.jsxDEV(Ks,{children:[c&&i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Loading pools..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:110,columnNumber:23},this),p instanceof Error&&i.jsxDEV("p",{className:"text-sm text-destructive",children:["Failed to load pools: ",p.message]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:112,columnNumber:11},this),!c&&!p&&i.jsxDEV("div",{className:"flex flex-wrap gap-3",children:[o==null?void 0:o.map(d=>i.jsxDEV(rce,{pool:d,onClick:()=>t==null?void 0:t(d.agentId),isSelected:s===d.agentId},d.agentId,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:117,columnNumber:15},this)),(o==null?void 0:o.length)===0&&i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"No pending messages"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:125,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:115,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:109,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:104,columnNumber:5},this)}async function ace(e,t){const s=new URLSearchParams({projectId:e});t!=null&&t.status&&s.set("status",t.status),t!=null&&t.agentId&&s.set("agentId",t.agentId),t!=null&&t.source&&s.set("source",t.source);const a=await fetch(`/api/sessions/messages?${s.toString()}`);if(!a.ok)throw new Error("Failed to fetch messages");return a.json()}function GP(e,t){return e.length<=t?e:e.slice(0,t)+"..."}function oce(e){return new Date(e).toLocaleTimeString()}function lce(e=[]){const t=[],s=new Map;for(const a of e)if(a.batchId){const o=s.get(a.batchId)||[];o.push(a),s.set(a.batchId,o)}else t.push({batchId:void 0,messages:[a],status:a.status,timestamp:a.timestamp,agentName:a.agentName});for(const[a,o]of s){const c=o.sort((p,l)=>p.timestamp-l.timestamp);t.push({batchId:a,messages:c,status:c[0].status,timestamp:c[0].timestamp,agentName:c[0].agentName})}return t.sort((a,o)=>o.timestamp-a.timestamp)}function cce({status:e}){const t={queued:"bg-muted text-muted-foreground",delivered:"bg-emerald-500/10 text-emerald-600 border-emerald-500/40",failed:"bg-destructive/10 text-destructive border-destructive/40"};return i.jsxDEV(Ze,{variant:"outline",className:Pe("text-xs uppercase",t[e]),children:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:134,columnNumber:5},this)}function uce({message:e,onClick:t}){return i.jsxDEV("button",{type:"button",onClick:t,className:Pe("w-full text-left pl-4 py-1 rounded text-sm transition-colors","hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring"),"aria-label":`Message from ${e.source}: ${GP(e.preview,50)}`,children:[i.jsxDEV("span",{className:"text-muted-foreground",children:["[",e.source,"]"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:156,columnNumber:7},this)," ",i.jsxDEV("span",{children:GP(e.preview,80)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:157,columnNumber:7},this),e.error&&i.jsxDEV("div",{className:"text-destructive text-xs mt-1",children:["Error: ",e.error]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:158,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:147,columnNumber:5},this)}function pce({group:e,onMessageClick:t}){const s=e.messages.length>1;return i.jsxDEV("div",{className:"border-b py-2 last:border-b-0",children:[i.jsxDEV("div",{className:"flex items-center gap-2 flex-wrap",children:[i.jsxDEV(cce,{status:e.status},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:174,columnNumber:9},this),i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:oce(e.timestamp)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:175,columnNumber:9},this),s&&i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:["batch of ",e.messages.length]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:177,columnNumber:11},this),i.jsxDEV("span",{className:"ml-auto text-sm",children:["→ ",e.agentName]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:181,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:173,columnNumber:7},this),i.jsxDEV("div",{className:"mt-1 space-y-1",children:e.messages.map(a=>i.jsxDEV(uce,{message:a,onClick:()=>t(a)},a.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:185,columnNumber:11},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:183,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:172,columnNumber:5},this)}function dce({projectId:e,filters:t,onMessageClick:s}){const a=Zs(),{data:o,isLoading:c,error:p}=rt({queryKey:["messages",e,t],queryFn:()=>ace(e,t),refetchInterval:1e4,staleTime:2e3}),l=b.useCallback(f=>{if(!f)return;const{topic:E}=f;E==="messages/activity"&&a.invalidateQueries({queryKey:["messages",e]})},[a,e]);Ec({message:l},[l]);const d=b.useMemo(()=>lce(o==null?void 0:o.messages),[o==null?void 0:o.messages]),h=b.useCallback(f=>{s==null||s(f)},[s]),v=b.useMemo(()=>{const f=[];return t!=null&&t.agentId&&f.push("filtered by agent"),t!=null&&t.status&&f.push(`status: ${t.status}`),t!=null&&t.source&&f.push(`source: ${t.source}`),f.length>0?` (${f.join(", ")})`:""},[t]);return i.jsxDEV(Bs,{className:"flex-1 flex flex-col min-h-0",children:[i.jsxDEV(Di,{className:"flex-shrink-0",children:[i.jsxDEV(_i,{children:"Activity Log"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:239,columnNumber:9},this),i.jsxDEV(Li,{children:["Recent message delivery history",v,o&&` • ${o.total} total`]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:240,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:238,columnNumber:7},this),i.jsxDEV(Ks,{className:"flex-1 min-h-0",children:[c&&i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Loading messages..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:246,columnNumber:23},this),p instanceof Error&&i.jsxDEV("p",{className:"text-sm text-destructive",children:["Failed to load messages: ",p.message]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:248,columnNumber:11},this),!c&&!p&&i.jsxDEV(Vn,{className:"h-full",children:d.length===0?i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"No messages found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:253,columnNumber:15},this):i.jsxDEV("div",{className:"space-y-0 pr-4",children:d.map(f=>i.jsxDEV(pce,{group:f,onMessageClick:h},f.batchId||f.messages[0].id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:257,columnNumber:19},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:255,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:251,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:245,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:237,columnNumber:5},this)}const hce=lT,mce=cT,oA=({className:e,children:t,...s})=>i.jsxDEV(uS,{...s,children:i.jsxDEV("div",{className:Pe("fixed inset-0 z-50 flex",e),children:t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:18,columnNumber:5},void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:17,columnNumber:3},void 0);oA.displayName=uS.displayName;const lA=b.forwardRef(({className:e,...t},s)=>i.jsxDEV(RN,{ref:s,className:Pe("fixed inset-0 z-50 bg-black/80 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:27,columnNumber:3},void 0));lA.displayName=RN.displayName;const cA=b.forwardRef(({className:e,children:t,...s},a)=>i.jsxDEV(oA,{children:[i.jsxDEV(lA,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:43,columnNumber:5},void 0),i.jsxDEV(kN,{ref:a,className:Pe("fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto max-h-[96%] flex-col rounded-t-[10px] border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom data-[state=open]:animate-in data-[state=open]:slide-in-from-bottom",e),...s,children:[i.jsxDEV("span",{className:"mx-auto mb-4 h-1.5 w-16 rounded-full bg-muted"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:52,columnNumber:7},void 0),t]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:44,columnNumber:5},void 0)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:42,columnNumber:3},void 0));cA.displayName=kN.displayName;const uA=({className:e,...t})=>i.jsxDEV("div",{className:Pe("grid gap-1.5 text-center sm:text-left",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:60,columnNumber:3},void 0);uA.displayName="DrawerHeader";const pA=({className:e,...t})=>i.jsxDEV("div",{className:Pe("mt-auto flex flex-col gap-2 sm:flex-row sm:justify-end",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:65,columnNumber:3},void 0);pA.displayName="DrawerFooter";const dA=b.forwardRef(({className:e,...t},s)=>i.jsxDEV(AN,{ref:s,className:Pe("text-lg font-semibold leading-none tracking-tight",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:76,columnNumber:3},void 0));dA.displayName=AN.displayName;const hA=b.forwardRef(({className:e,...t},s)=>i.jsxDEV(MN,{ref:s,className:Pe("text-sm text-muted-foreground",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:88,columnNumber:3},void 0));hA.displayName=MN.displayName;async function fce(e){const t=await fetch(`/api/sessions/messages/${e}`);if(!t.ok)throw new Error("Failed to fetch message details");return(await t.json()).message}function gce(e){return new Date(e).toLocaleString()}function vce(e){return new Date(e).toLocaleTimeString()}function bce({status:e}){const t={queued:"bg-muted text-muted-foreground",delivered:"bg-emerald-500/10 text-emerald-600 border-emerald-500/40",failed:"bg-destructive/10 text-destructive border-destructive/40"};return i.jsxDEV(Ze,{variant:"outline",className:Pe("text-xs uppercase font-medium",t[e]),children:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:54,columnNumber:5},this)}function pb({icon:e,title:t,children:s,className:a}){return i.jsxDEV("div",{className:Pe("space-y-2",a),children:[i.jsxDEV("div",{className:"flex items-center gap-2 text-sm font-medium text-muted-foreground",children:[e&&i.jsxDEV(e,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:75,columnNumber:18},this),i.jsxDEV("span",{children:t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:76,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:74,columnNumber:7},this),i.jsxDEV("div",{className:"pl-6",children:s},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:78,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:73,columnNumber:5},this)}function YP({text:e}){const[t,s]=b.useState(!1),a=async()=>{try{await navigator.clipboard.writeText(e),s(!0),setTimeout(()=>s(!1),2e3)}catch(o){console.error("Failed to copy:",o)}};return i.jsxDEV("div",{className:"relative rounded-lg border bg-muted/50",children:[i.jsxDEV("div",{className:"absolute right-2 top-2 z-10",children:i.jsxDEV(ce,{variant:"ghost",size:"sm",onClick:a,className:"h-8 w-8 p-0 hover:bg-background","aria-label":"Copy content",children:t?i.jsxDEV(Td,{className:"h-4 w-4 text-emerald-500"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:108,columnNumber:13},this):i.jsxDEV(ZD,{className:"h-4 w-4 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:110,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:100,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:99,columnNumber:7},this),i.jsxDEV("pre",{className:"overflow-auto p-4 pr-12 text-sm whitespace-pre-wrap break-words max-h-72",children:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:114,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:98,columnNumber:5},this)}function Nce({message:e,onClose:t}){const[s,a]=b.useState(null),[o,c]=b.useState(!1),[p,l]=b.useState(null);return b.useEffect(()=>{if(!e){a(null),l(null);return}c(!0),l(null),fce(e.id).then(a).catch(d=>{console.error("Failed to fetch message details:",d),l("Failed to load message content")}).finally(()=>c(!1))},[e==null?void 0:e.id]),i.jsxDEV(hce,{open:!!e,onOpenChange:d=>!d&&t(),children:i.jsxDEV(cA,{"aria-describedby":"message-detail-description",children:[i.jsxDEV(uA,{className:"pb-2",children:[i.jsxDEV(dA,{children:"Message Details"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:150,columnNumber:11},this),i.jsxDEV(hA,{id:"message-detail-description",children:e&&gce(e.timestamp)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:151,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:149,columnNumber:9},this),e&&i.jsxDEV(Vn,{className:"flex-1 px-4",children:i.jsxDEV("div",{className:"space-y-5 pb-4",children:[i.jsxDEV(pb,{icon:T7,title:"Status",children:i.jsxDEV("div",{className:"flex items-center gap-3",children:[i.jsxDEV(bce,{status:e.status},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:162,columnNumber:19},this),e.deliveredAt&&i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:["Delivered at ",vce(e.deliveredAt)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:164,columnNumber:21},this),e.immediate&&i.jsxDEV(Ze,{variant:"secondary",className:"text-xs",children:[i.jsxDEV(U7,{className:"h-3 w-3 mr-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:170,columnNumber:23},this),"Immediate"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:169,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:161,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:160,columnNumber:15},this),i.jsxDEV(pb,{icon:Ru,title:"Routing",children:i.jsxDEV("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[i.jsxDEV("div",{children:[i.jsxDEV("span",{className:"text-muted-foreground",children:"Recipient"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:181,columnNumber:21},this),i.jsxDEV("p",{className:"font-medium",children:e.agentName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:182,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:180,columnNumber:19},this),i.jsxDEV("div",{children:[i.jsxDEV("span",{className:"text-muted-foreground",children:"Source"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:185,columnNumber:21},this),i.jsxDEV("p",{className:"font-mono text-xs",children:e.source},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:186,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:184,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:179,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:178,columnNumber:15},this),e.error&&i.jsxDEV(pb,{icon:Ni,title:"Error",className:"text-destructive",children:i.jsxDEV("div",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-3",children:i.jsxDEV("p",{className:"text-sm text-destructive",children:e.error},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:195,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:194,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:193,columnNumber:17},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2 text-sm font-medium text-muted-foreground",children:i.jsxDEV("span",{children:"Content"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:203,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:202,columnNumber:17},this),o?i.jsxDEV("div",{className:"flex items-center justify-center p-8 rounded-lg border bg-muted/50",children:[i.jsxDEV(Dt,{className:"h-6 w-6 animate-spin text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:207,columnNumber:21},this),i.jsxDEV("span",{className:"ml-2 text-sm text-muted-foreground",children:"Loading content..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:208,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:206,columnNumber:19},this):p?i.jsxDEV("div",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-4",children:[i.jsxDEV("p",{className:"text-sm text-destructive",children:p},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:212,columnNumber:21},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground mt-2",children:["Preview: ",e.preview]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:213,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:211,columnNumber:19},this):s?i.jsxDEV(YP,{text:s.text},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:216,columnNumber:19},this):i.jsxDEV(YP,{text:e.preview},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:218,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:201,columnNumber:15},this),i.jsxDEV(pb,{icon:k7,title:"Metadata",children:i.jsxDEV("div",{className:"rounded-lg border bg-muted/30 p-3",children:i.jsxDEV("dl",{className:"text-sm space-y-2",children:[i.jsxDEV("div",{className:"flex justify-between",children:[i.jsxDEV("dt",{className:"text-muted-foreground",children:"Message ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:227,columnNumber:23},this),i.jsxDEV("dd",{className:"font-mono text-xs text-right max-w-[200px] truncate",children:e.id},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:228,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:226,columnNumber:21},this),i.jsxDEV("div",{className:"flex justify-between",children:[i.jsxDEV("dt",{className:"text-muted-foreground",children:"Agent ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:233,columnNumber:23},this),i.jsxDEV("dd",{className:"font-mono text-xs text-right max-w-[200px] truncate",children:e.agentId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:234,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:232,columnNumber:21},this),e.batchId&&i.jsxDEV("div",{className:"flex justify-between",children:[i.jsxDEV("dt",{className:"text-muted-foreground",children:"Batch ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:240,columnNumber:25},this),i.jsxDEV("dd",{className:"font-mono text-xs text-right max-w-[200px] truncate",children:e.batchId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:241,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:239,columnNumber:23},this),e.senderAgentId&&i.jsxDEV("div",{className:"flex justify-between",children:[i.jsxDEV("dt",{className:"text-muted-foreground",children:"Sender Agent"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:248,columnNumber:25},this),i.jsxDEV("dd",{className:"font-mono text-xs text-right max-w-[200px] truncate",children:e.senderAgentId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:249,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:247,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:225,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:224,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:223,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:158,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:157,columnNumber:11},this),i.jsxDEV(pA,{children:i.jsxDEV(mce,{asChild:!0,children:i.jsxDEV(ce,{variant:"outline",children:"Close"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:263,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:262,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:261,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:148,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:147,columnNumber:5},this)}const xce=[{value:"epic.assigned",label:"Epic Assignment"},{value:"chat.message",label:"Chat Message"},{value:"mcp.send_message",label:"MCP Tool Call"},{value:"subscriber.action",label:"Subscriber Action"},{value:"pool.failure_notice",label:"Failure Notice"}];async function yce(e){const t=await fetch(`/api/agents?projectId=${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch agents");return t.json()}function wce(e){return!!(e.status||e.agentId||e.source)}function Ece({projectId:e,filters:t,onChange:s}){const{data:a}=rt({queryKey:["agents",e],queryFn:()=>yce(e),enabled:!!e,staleTime:3e4}),o=(a==null?void 0:a.items)??[],c=h=>{s({...t,status:h==="all"?void 0:h})},p=h=>{s({...t,agentId:h==="all"?void 0:h})},l=h=>{s({...t,source:h==="all"?void 0:h})},d=()=>{s({})};return i.jsxDEV("div",{className:"flex flex-wrap gap-3 items-center",children:[i.jsxDEV(Vs,{value:t.status||"all",onValueChange:c,children:[i.jsxDEV(js,{className:"w-32","aria-label":"Filter by status",children:i.jsxDEV(Ls,{placeholder:"Status"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:82,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:81,columnNumber:9},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All Status"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:85,columnNumber:11},this),i.jsxDEV(Rt,{value:"queued",children:"Queued"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:86,columnNumber:11},this),i.jsxDEV(Rt,{value:"delivered",children:"Delivered"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:87,columnNumber:11},this),i.jsxDEV(Rt,{value:"failed",children:"Failed"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:88,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:80,columnNumber:7},this),i.jsxDEV(Vs,{value:t.agentId||"all",onValueChange:p,children:[i.jsxDEV(js,{className:"w-40","aria-label":"Filter by agent",children:i.jsxDEV(Ls,{placeholder:"Agent"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:95,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:94,columnNumber:9},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All Agents"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:98,columnNumber:11},this),o.map(h=>i.jsxDEV(Rt,{value:h.id,children:h.name},h.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:100,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:97,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:93,columnNumber:7},this),i.jsxDEV(Vs,{value:t.source||"all",onValueChange:l,children:[i.jsxDEV(js,{className:"w-44","aria-label":"Filter by source",children:i.jsxDEV(Ls,{placeholder:"Source"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:110,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:109,columnNumber:9},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All Sources"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:113,columnNumber:11},this),xce.map(h=>i.jsxDEV(Rt,{value:h.value,children:h.label},h.value,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:115,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:112,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:108,columnNumber:7},this),wce(t)&&i.jsxDEV(ce,{variant:"ghost",size:"sm",onClick:d,className:"gap-1","aria-label":"Clear all filters",children:[i.jsxDEV(vl,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:131,columnNumber:11},this),"Clear"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:124,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:78,columnNumber:5},this)}function Dce(){const{selectedProject:e}=fr(),[t,s]=b.useState({}),[a,o]=b.useState(null),c=b.useCallback(h=>{s(h)},[]),p=b.useCallback(h=>{o(h)},[]),l=b.useCallback(()=>{o(null)},[]);if(!e)return i.jsxDEV("div",{className:"flex flex-1 items-center justify-center",children:i.jsxDEV(XX,{icon:Vd,title:"No project selected",description:"Select a project to view message activity"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:34,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:33,columnNumber:7},this);const d=h=>{s(v=>({...v,agentId:v.agentId===h?void 0:h}))};return i.jsxDEV("div",{className:"flex flex-col gap-6 h-full",children:[i.jsxDEV(LX,{title:"Messages",description:"Monitor message pools and delivery activity"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:53,columnNumber:7},this),i.jsxDEV(nce,{projectId:e.id,onAgentClick:d,selectedAgentId:t.agentId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:55,columnNumber:7},this),i.jsxDEV(Ece,{projectId:e.id,filters:t,onChange:c},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:61,columnNumber:7},this),i.jsxDEV(dce,{projectId:e.id,filters:Object.keys(t).length>0?t:void 0,onMessageClick:p},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:67,columnNumber:7},this),i.jsxDEV(Nce,{message:a,onClose:l},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:73,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:52,columnNumber:5},this)}const Sce={contains:"Contains",regex:"Regex",not_contains:"Not Contains"};function _ce(e){return Sce[e]}async function mA(e){const t=new URLSearchParams({projectId:e}),s=await fetch(`/api/watchers?${t.toString()}`);if(!s.ok)throw new Error("Failed to fetch watchers");return s.json()}async function Cce(e){const t=await fetch("/api/watchers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const s=await t.json().catch(()=>({message:"Failed to create watcher"}));throw new Error(s.message||"Failed to create watcher")}return t.json()}async function jce(e,t){const s=await fetch(`/api/watchers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({message:"Failed to update watcher"}));throw new Error(a.message||"Failed to update watcher")}return s.json()}async function Pce(e){if(!(await fetch(`/api/watchers/${e}`,{method:"DELETE"})).ok)throw new Error("Failed to delete watcher")}async function Tce(e,t){const s=await fetch(`/api/watchers/${e}/toggle`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:t})});if(!s.ok)throw new Error("Failed to toggle watcher");return s.json()}async function Vce(e){const t=await fetch(`/api/watchers/${e}/test`,{method:"POST"});if(!t.ok)throw new Error("Failed to test watcher");return t.json()}const QP={name:"",description:"",enabled:!0,scope:"all",scopeFilterId:"",pollIntervalMs:5e3,viewportLines:50,conditionType:"contains",conditionPattern:"",conditionFlags:"",idleAfterSeconds:0,cooldownMode:"time",cooldownMs:3e4,eventName:""};async function Rce(e){const t=await fetch(`/api/agents?projectId=${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch agents");return t.json()}async function kce(e){const t=await fetch(`/api/profiles?projectId=${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch profiles");return t.json()}async function Ace(){const e=await fetch("/api/providers");if(!e.ok)throw new Error("Failed to fetch providers");return e.json()}const Mce=/^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$/;function XP({open:e,onOpenChange:t,watcher:s}){const a=Zs(),{toast:o}=ci(),{selectedProjectId:c}=fr(),p=!!s,[l,d]=b.useState(QP),[h,v]=b.useState({}),{data:f}=rt({queryKey:["agents",c],queryFn:()=>Rce(c),enabled:!!c&&e}),{data:E}=rt({queryKey:["profiles",c],queryFn:()=>kce(c),enabled:!!c&&e}),{data:w}=rt({queryKey:["providers"],queryFn:Ace,enabled:e});b.useEffect(()=>{e&&(d(s?{name:s.name,description:s.description||"",enabled:s.enabled,scope:s.scope,scopeFilterId:s.scopeFilterId||"",pollIntervalMs:s.pollIntervalMs,viewportLines:s.viewportLines,conditionType:s.condition.type,conditionPattern:s.condition.pattern,conditionFlags:s.condition.flags||"",idleAfterSeconds:s.idleAfterSeconds??0,cooldownMode:s.cooldownMode,cooldownMs:s.cooldownMs,eventName:s.eventName}:QP),v({}))},[e,s]);const C=Ct({mutationFn:P=>Cce(P),onSuccess:()=>{a.invalidateQueries({queryKey:["watchers",c]}),t(!1),o({title:"Success",description:"Watcher created successfully"})},onError:P=>{o({title:"Error",description:P instanceof Error?P.message:"Failed to create watcher",variant:"destructive"})}}),S=Ct({mutationFn:({id:P,data:R})=>jce(P,R),onSuccess:()=>{a.invalidateQueries({queryKey:["watchers",c]}),t(!1),o({title:"Success",description:"Watcher updated successfully"})},onError:P=>{o({title:"Error",description:P instanceof Error?P.message:"Failed to update watcher",variant:"destructive"})}}),x=C.isPending||S.isPending,N=()=>{const P={};if(l.name.trim()?l.name.length>100&&(P.name="Name must be 100 characters or less"):P.name="Name is required",l.scope!=="all"&&!l.scopeFilterId&&(P.scopeFilterId=`Please select a ${l.scope}`),(l.pollIntervalMs<1e3||l.pollIntervalMs>6e4)&&(P.pollIntervalMs="Poll interval must be between 1000ms and 60000ms"),(l.viewportLines<10||l.viewportLines>200)&&(P.viewportLines="Viewport lines must be between 10 and 200"),l.conditionPattern.trim()||(P.conditionPattern="Pattern is required"),l.conditionType==="regex")try{new RegExp(l.conditionPattern,l.conditionFlags)}catch{P.conditionPattern="Invalid regular expression"}return(l.idleAfterSeconds<0||l.idleAfterSeconds>3600)&&(P.idleAfterSeconds="Idle gate must be between 0 and 3600 seconds"),l.cooldownMs<0&&(P.cooldownMs="Cooldown must be 0 or greater"),l.eventName.trim()?Mce.test(l.eventName)||(P.eventName="Event name must be lowercase, start with letter, use dots for namespacing (e.g., watcher.error_detected)"):P.eventName="Event name is required",v(P),Object.keys(P).length===0},g=P=>{if(P.preventDefault(),!N())return;if(!c){o({title:"Error",description:"Please select a project first",variant:"destructive"});return}const R={type:l.conditionType,pattern:l.conditionPattern};if(l.conditionType==="regex"&&l.conditionFlags&&(R.flags=l.conditionFlags),p&&s){const j={name:l.name,description:l.description||null,enabled:l.enabled,scope:l.scope,scopeFilterId:l.scope==="all"?null:l.scopeFilterId,pollIntervalMs:l.pollIntervalMs,viewportLines:l.viewportLines,condition:R,idleAfterSeconds:l.idleAfterSeconds,cooldownMode:l.cooldownMode,cooldownMs:l.cooldownMs,eventName:l.eventName};S.mutate({id:s.id,data:j})}else{const j={projectId:c,name:l.name,description:l.description||void 0,enabled:l.enabled,scope:l.scope,scopeFilterId:l.scope==="all"?null:l.scopeFilterId,pollIntervalMs:l.pollIntervalMs,viewportLines:l.viewportLines,condition:R,idleAfterSeconds:l.idleAfterSeconds,cooldownMode:l.cooldownMode,cooldownMs:l.cooldownMs,eventName:l.eventName};C.mutate(j)}},y=(P,R)=>{d(j=>({...j,[P]:R})),h[P]&&v(j=>({...j,[P]:void 0}))},_=()=>{switch(l.scope){case"agent":return(f==null?void 0:f.items)||[];case"profile":return(E==null?void 0:E.items)||[];case"provider":return(w==null?void 0:w.items)||[];default:return[]}};return i.jsxDEV(Ds,{open:e,onOpenChange:t,children:i.jsxDEV(ys,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:p?"Edit Watcher":"Create Watcher"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:344,columnNumber:11},this),i.jsxDEV(ds,{children:p?"Update the watcher configuration.":"Configure a new watcher to monitor terminal output."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:345,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:343,columnNumber:9},this),i.jsxDEV("form",{onSubmit:g,className:"space-y-6",children:[i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Basic Info"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:355,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"name",children:"Name *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:359,columnNumber:15},this),i.jsxDEV(Ut,{id:"name",value:l.name,onChange:P=>y("name",P.target.value),placeholder:"Error Detector",className:h.name?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:360,columnNumber:15},this),h.name&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:367,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:358,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"description",children:"Description"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:370,columnNumber:15},this),i.jsxDEV(Gi,{id:"description",value:l.description,onChange:P=>y("description",P.target.value),placeholder:"Monitors for error messages in terminal output",rows:2},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:371,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:369,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:354,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Scope"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:383,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Monitor"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:388,columnNumber:17},this),i.jsxDEV(Vs,{value:l.scope,onValueChange:P=>{y("scope",P),y("scopeFilterId","")},children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:397,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:396,columnNumber:19},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All Sessions"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:400,columnNumber:21},this),i.jsxDEV(Rt,{value:"agent",children:"Specific Agent"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:401,columnNumber:21},this),i.jsxDEV(Rt,{value:"profile",children:"Specific Profile"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:402,columnNumber:21},this),i.jsxDEV(Rt,{value:"provider",children:"Specific Provider"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:403,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:399,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:389,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:387,columnNumber:15},this),l.scope!=="all"&&i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:["Select ",l.scope.charAt(0).toUpperCase()+l.scope.slice(1)," *"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:409,columnNumber:19},this),i.jsxDEV(Vs,{value:l.scopeFilterId,onValueChange:P=>y("scopeFilterId",P),children:[i.jsxDEV(js,{className:h.scopeFilterId?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:`Select ${l.scope}...`},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:417,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:416,columnNumber:21},this),i.jsxDEV(Ps,{children:_().map(P=>i.jsxDEV(Rt,{value:P.id,children:P.name},P.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:421,columnNumber:25},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:419,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:412,columnNumber:19},this),h.scopeFilterId&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.scopeFilterId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:428,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:408,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:386,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:382,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Polling"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:437,columnNumber:13},this),i.jsxDEV("div",{className:"grid gap-4 grid-cols-2",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"pollInterval",children:"Poll Interval (ms) *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:442,columnNumber:17},this),i.jsxDEV(Ut,{id:"pollInterval",type:"number",min:1e3,max:6e4,step:1e3,value:l.pollIntervalMs,onChange:P=>y("pollIntervalMs",parseInt(P.target.value)||5e3),className:h.pollIntervalMs?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:443,columnNumber:17},this),h.pollIntervalMs&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.pollIntervalMs},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:454,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:441,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"viewportLines",children:"Viewport Lines *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:458,columnNumber:17},this),i.jsxDEV(Ut,{id:"viewportLines",type:"number",min:10,max:200,step:10,value:l.viewportLines,onChange:P=>y("viewportLines",parseInt(P.target.value)||50),className:h.viewportLines?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:459,columnNumber:17},this),h.viewportLines&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.viewportLines},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:470,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:457,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:440,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:436,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Trigger Condition"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:478,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Condition Type"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:483,columnNumber:17},this),i.jsxDEV(Vs,{value:l.conditionType,onValueChange:P=>{y("conditionType",P),P!=="regex"&&y("conditionFlags","")},children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:494,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:493,columnNumber:19},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"contains",children:"Contains"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:497,columnNumber:21},this),i.jsxDEV(Rt,{value:"regex",children:"Regex"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:498,columnNumber:21},this),i.jsxDEV(Rt,{value:"not_contains",children:"Not Contains"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:499,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:496,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:484,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:482,columnNumber:15},this),l.conditionType==="regex"&&i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"conditionFlags",children:"Regex Flags"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:505,columnNumber:19},this),i.jsxDEV(Ut,{id:"conditionFlags",value:l.conditionFlags,onChange:P=>y("conditionFlags",P.target.value),placeholder:"gi"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:506,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:504,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:481,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"conditionPattern",children:"Pattern *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:516,columnNumber:15},this),i.jsxDEV(Ut,{id:"conditionPattern",value:l.conditionPattern,onChange:P=>{y("conditionPattern",P.target.value)},placeholder:l.conditionType==="regex"?"error|exception|failed":"Error:",className:h.conditionPattern?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:517,columnNumber:15},this),h.conditionPattern&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.conditionPattern},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:529,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:515,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:477,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Cooldown"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:536,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-3",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Cooldown Mode"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:541,columnNumber:17},this),i.jsxDEV(Vs,{value:l.cooldownMode,onValueChange:P=>y("cooldownMode",P),children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:547,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:546,columnNumber:19},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"time",children:"Time-based"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:550,columnNumber:21},this),i.jsxDEV(Rt,{value:"until_clear",children:"Until Condition Clears"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:551,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:549,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:542,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:540,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"cooldownMs",children:"Cooldown (ms)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:556,columnNumber:17},this),i.jsxDEV(Ut,{id:"cooldownMs",type:"number",min:0,step:1e3,value:l.cooldownMs,onChange:P=>y("cooldownMs",parseInt(P.target.value)||0),className:h.cooldownMs?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:557,columnNumber:17},this),h.cooldownMs&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.cooldownMs},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:567,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:555,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"idleAfterSeconds",children:"Only when idle for (seconds)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:571,columnNumber:17},this),i.jsxDEV(Ut,{id:"idleAfterSeconds",type:"number",min:0,max:3600,step:1,value:l.idleAfterSeconds,onChange:P=>y("idleAfterSeconds",parseInt(P.target.value,10)||0),placeholder:"0 = disabled",className:h.idleAfterSeconds?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:572,columnNumber:17},this),h.idleAfterSeconds&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.idleAfterSeconds},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:586,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:570,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:539,columnNumber:13},this),l.idleAfterSeconds>0&&i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:'Recommended: use "Until Condition Clears" cooldown mode for idle-gated watchers.'},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:591,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:535,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Event Output"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:600,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"eventName",children:"Event Name *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:604,columnNumber:15},this),i.jsxDEV(Ut,{id:"eventName",value:l.eventName,onChange:P=>y("eventName",P.target.value),placeholder:"watcher.error_detected",className:h.eventName?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:605,columnNumber:15},this),h.eventName&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.eventName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:612,columnNumber:36},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Lowercase with dots for namespacing (e.g., watcher.build_failed)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:613,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:603,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:599,columnNumber:11},this),i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:"enabled",checked:l.enabled,onCheckedChange:P=>y("enabled",P===!0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:621,columnNumber:13},this),i.jsxDEV($e,{htmlFor:"enabled",className:"cursor-pointer",children:"Enable watcher immediately"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:626,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:620,columnNumber:11},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{type:"button",variant:"outline",onClick:()=>t(!1),children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:632,columnNumber:13},this),i.jsxDEV(ce,{type:"submit",disabled:x,children:[x&&i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:636,columnNumber:29},this),p?"Update":"Create"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:635,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:631,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:352,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:342,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:341,columnNumber:5},this)}function Oce(){const e=Zs(),{toast:t}=ci(),{selectedProjectId:s}=fr(),[a,o]=b.useState(null),[c,p]=b.useState(null),[l,d]=b.useState(!1),[h,v]=b.useState(null),{data:f,isLoading:E,error:w}=rt({queryKey:["watchers",s],queryFn:()=>mA(s),enabled:!!s}),C=Ct({mutationFn:({id:j,enabled:T})=>Tce(j,T),onMutate:async({id:j,enabled:T})=>{await e.cancelQueries({queryKey:["watchers",s]});const A=e.getQueryData(["watchers",s]);return e.setQueryData(["watchers",s],k=>k==null?void 0:k.map(F=>F.id===j?{...F,enabled:T}:F)),{previousWatchers:A}},onError:(j,T,A)=>{A!=null&&A.previousWatchers&&e.setQueryData(["watchers",s],A.previousWatchers),t({title:"Error",description:j instanceof Error?j.message:"Failed to toggle watcher",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["watchers",s]})}}),S=Ct({mutationFn:Pce,onMutate:async j=>{await e.cancelQueries({queryKey:["watchers",s]});const T=e.getQueryData(["watchers",s]);return e.setQueryData(["watchers",s],A=>A==null?void 0:A.filter(k=>k.id!==j)),{previousWatchers:T}},onSuccess:()=>{o(null),t({title:"Success",description:"Watcher deleted successfully"})},onError:(j,T,A)=>{A!=null&&A.previousWatchers&&e.setQueryData(["watchers",s],A.previousWatchers),t({title:"Error",description:j instanceof Error?j.message:"Failed to delete watcher",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["watchers",s]})}}),x=Ct({mutationFn:Vce,onSuccess:j=>{const T=j.results.filter(A=>A.conditionMatched).length;T>0?t({title:"Test Complete",description:`Condition matched in ${T} of ${j.sessionsChecked} sessions`}):t({title:"Test Complete",description:`No matches found in ${j.sessionsChecked} sessions`}),p(j)},onError:j=>{t({title:"Test Failed",description:j instanceof Error?j.message:"Failed to test watcher",variant:"destructive"})}}),N=()=>{v(null),d(!0)},g=j=>{v(j),d(!0)},y=j=>{d(j),j||v(null)},_=j=>j>=6e4?`${j/6e4}m`:`${j/1e3}s`,P=j=>{const{condition:T,idleAfterSeconds:A}=j,k=T.pattern.length>30?T.pattern.slice(0,30)+"...":T.pattern,F=`${_ce(T.type)}: ${k}`;return A>0?`Idle >= ${A}s + ${F}`:F},R=j=>j.scope==="all"?"All Sessions":j.scopeFilterId?`${j.scope.charAt(0).toUpperCase()+j.scope.slice(1)}: ${j.scopeFilterId.slice(0,8)}...`:j.scope.charAt(0).toUpperCase()+j.scope.slice(1);return E?i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex items-center justify-center py-12",children:[i.jsxDEV(Dt,{className:"h-8 w-8 animate-spin text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:205,columnNumber:11},this),i.jsxDEV("span",{className:"ml-2 text-muted-foreground",children:"Loading watchers..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:206,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:204,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:203,columnNumber:7},this):w?i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(Ni,{className:"h-8 w-8 text-destructive mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:217,columnNumber:11},this),i.jsxDEV("p",{className:"text-destructive",children:w instanceof Error?w.message:"Failed to load watchers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:218,columnNumber:11},this),i.jsxDEV(ce,{variant:"outline",className:"mt-4",onClick:()=>e.invalidateQueries({queryKey:["watchers",s]}),children:"Retry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:221,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:216,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:215,columnNumber:7},this):s?!f||f.length===0?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"Watchers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:255,columnNumber:17},this),i.jsxDEV(Li,{children:"Monitor terminal output and trigger events when conditions are met."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:256,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:254,columnNumber:15},this),i.jsxDEV(ce,{onClick:N,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:261,columnNumber:17},this),"Add Watcher"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:260,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:253,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:252,columnNumber:11},this),i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(UE,{className:"h-12 w-12 text-muted-foreground mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:267,columnNumber:13},this),i.jsxDEV("h3",{className:"text-lg font-semibold mb-2",children:"No watchers yet"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:268,columnNumber:13},this),i.jsxDEV("p",{className:"text-muted-foreground text-center max-w-md",children:"Create your first watcher to start monitoring terminal output and triggering automated actions."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:269,columnNumber:13},this),i.jsxDEV(ce,{className:"mt-4",onClick:N,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:274,columnNumber:15},this),"Create Watcher"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:273,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:266,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:251,columnNumber:9},this),i.jsxDEV(XP,{open:l,onOpenChange:y,watcher:h},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:280,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:250,columnNumber:7},this):i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"Watchers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:295,columnNumber:15},this),i.jsxDEV(Li,{children:"Monitor terminal output and trigger events when conditions are met."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:296,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:294,columnNumber:13},this),i.jsxDEV(ce,{onClick:N,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:301,columnNumber:15},this),"Add Watcher"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:300,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:293,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:292,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-4",children:f.map(j=>i.jsxDEV("div",{className:"flex items-start justify-between p-4 border rounded-lg",children:[i.jsxDEV("div",{className:"flex-1 min-w-0",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-1",children:[i.jsxDEV("h4",{className:"font-semibold truncate",children:j.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:315,columnNumber:21},this),i.jsxDEV(Ze,{variant:j.enabled?"default":"secondary",children:j.enabled?"Enabled":"Disabled"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:316,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:314,columnNumber:19},this),j.description&&i.jsxDEV("p",{className:"text-sm text-muted-foreground mb-2 line-clamp-2",children:j.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:321,columnNumber:21},this),i.jsxDEV("div",{className:"flex flex-wrap gap-2 text-xs",children:[i.jsxDEV(Ze,{variant:"outline",children:R(j)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:326,columnNumber:21},this),i.jsxDEV(Ze,{variant:"outline",children:["Poll: ",_(j.pollIntervalMs)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:327,columnNumber:21},this),i.jsxDEV(Ze,{variant:"outline",className:"max-w-[200px] truncate",children:P(j)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:330,columnNumber:21},this),i.jsxDEV(Ze,{variant:"secondary",children:j.eventName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:333,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:325,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:313,columnNumber:17},this),i.jsxDEV("div",{className:"flex items-center gap-2 ml-4",children:[i.jsxDEV(kf,{checked:j.enabled,onCheckedChange:T=>C.mutate({id:j.id,enabled:T}),disabled:C.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:337,columnNumber:19},this),i.jsxDEV(ce,{variant:"outline",size:"sm",onClick:()=>x.mutate(j.id),disabled:x.isPending,children:[x.isPending&&x.variables===j.id?i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:351,columnNumber:23},this):i.jsxDEV(tS,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:353,columnNumber:23},this),i.jsxDEV("span",{className:"ml-1",children:"Test"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:355,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:344,columnNumber:19},this),i.jsxDEV(ZN,{children:[i.jsxDEV(JN,{asChild:!0,children:i.jsxDEV(ce,{variant:"ghost",size:"sm",children:i.jsxDEV(CN,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:360,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:359,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:358,columnNumber:21},this),i.jsxDEV(Vf,{align:"end",children:[i.jsxDEV(fl,{onClick:()=>g(j),children:[i.jsxDEV(xc,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:365,columnNumber:25},this),"Edit"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:364,columnNumber:23},this),i.jsxDEV(KS,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:368,columnNumber:23},this),i.jsxDEV(fl,{className:"text-destructive",onClick:()=>o(j.id),children:[i.jsxDEV(Tn,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:373,columnNumber:25},this),"Delete"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:369,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:363,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:357,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:336,columnNumber:17},this)]},j.id,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:309,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:307,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:306,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:291,columnNumber:7},this),i.jsxDEV(Ds,{open:!!a,onOpenChange:()=>o(null),children:i.jsxDEV(ys,{children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:"Delete Watcher"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:389,columnNumber:13},this),i.jsxDEV(ds,{children:"Are you sure you want to delete this watcher? This action cannot be undone."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:390,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:388,columnNumber:11},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{variant:"outline",onClick:()=>o(null),children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:395,columnNumber:13},this),i.jsxDEV(ce,{variant:"destructive",onClick:()=>a&&S.mutate(a),disabled:S.isPending,children:[S.isPending?i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:403,columnNumber:43},this):null,"Delete"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:398,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:394,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:387,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:386,columnNumber:7},this),i.jsxDEV(Ds,{open:!!c,onOpenChange:()=>p(null),children:i.jsxDEV(ys,{className:"max-w-2xl",children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:["Test Results: ",c==null?void 0:c.watcher.name]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:414,columnNumber:13},this),i.jsxDEV(ds,{children:["Checked ",c==null?void 0:c.sessionsChecked," session",(c==null?void 0:c.sessionsChecked)!==1?"s":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:415,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:413,columnNumber:11},this),i.jsxDEV("div",{className:"max-h-[400px] overflow-y-auto",children:(c==null?void 0:c.results.length)===0?i.jsxDEV("p",{className:"text-muted-foreground text-center py-4",children:"No active sessions to test"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:422,columnNumber:15},this):i.jsxDEV("div",{className:"space-y-2",children:c==null?void 0:c.results.map((j,T)=>i.jsxDEV("div",{className:`p-3 rounded-lg border ${j.conditionMatched?"border-green-500 bg-green-500/10":"border-muted"}`,children:[i.jsxDEV("div",{className:"flex items-center justify-between mb-2",children:[i.jsxDEV("span",{className:"font-mono text-sm",children:["Session: ",j.sessionId.slice(0,8),"..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:433,columnNumber:23},this),i.jsxDEV(Ze,{variant:j.conditionMatched?"default":"secondary",children:j.conditionMatched?"Matched":"No Match"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:436,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:432,columnNumber:21},this),j.viewport&&i.jsxDEV("pre",{className:"text-xs bg-muted p-2 rounded overflow-x-auto max-h-[100px]",children:[j.viewport.slice(0,500),j.viewport.length>500?"...":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:441,columnNumber:23},this)]},T,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:426,columnNumber:19},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:424,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:420,columnNumber:11},this),i.jsxDEV(Ss,{children:i.jsxDEV(ce,{onClick:()=>p(null),children:"Close"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:452,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:451,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:412,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:411,columnNumber:7},this),i.jsxDEV(XP,{open:l,onOpenChange:y,watcher:h},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:458,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:290,columnNumber:5},this):i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(UE,{className:"h-8 w-8 text-muted-foreground mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:240,columnNumber:11},this),i.jsxDEV("p",{className:"text-muted-foreground",children:"Please select a project to view watchers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:241,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:239,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:238,columnNumber:7},this)}async function fA(){const e=await fetch("/api/subscribers/events");if(!e.ok)throw new Error("Failed to fetch subscribable events");return(await e.json()).events}async function Lce(e){const t=new URLSearchParams({projectId:e}),s=await fetch(`/api/subscribers?${t.toString()}`);if(!s.ok)throw new Error("Failed to fetch subscribers");return s.json()}async function Ice(e){const t=await fetch("/api/subscribers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const s=await t.json().catch(()=>({message:"Failed to create subscriber"}));throw new Error(s.message||"Failed to create subscriber")}return t.json()}async function gA(e,t){const s=await fetch(`/api/subscribers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({message:"Failed to update subscriber"}));throw new Error(a.message||"Failed to update subscriber")}return s.json()}async function Fce(e){if(!(await fetch(`/api/subscribers/${e}`,{method:"DELETE"})).ok)throw new Error("Failed to delete subscriber")}async function Bce(e,t){const s=await fetch(`/api/subscribers/${e}/toggle`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:t})});if(!s.ok)throw new Error("Failed to toggle subscriber");return s.json()}async function zce(){const e=await fetch("/api/actions");if(!e.ok)throw new Error("Failed to fetch actions");return e.json()}function Uce(e){return e==="string"||e==="textarea"}function $ce(e){const t=e.allowedSources;return!t||t.length===0?!1:t.length===1&&t[0]==="custom"}function Hce({inputDef:e,value:t,onChange:s,availableEventFields:a,error:o}){const c=t.source||"custom",p=h=>{s({source:h,customValue:h==="custom"?t.customValue||"":void 0,eventField:h==="event_field"?t.eventField||"":void 0})},l=h=>{s({source:"custom",customValue:h,eventField:void 0})},d=h=>{s({source:"event_field",customValue:void 0,eventField:h})};return Uce(e.type)?i.jsxDEV("div",{className:"space-y-2 p-3 border rounded-lg",children:[i.jsxDEV("div",{children:[i.jsxDEV($e,{className:"font-medium",children:[e.label,e.required&&i.jsxDEV("span",{className:"text-destructive ml-1",children:"*"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:87,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:85,columnNumber:11},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:e.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:89,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:84,columnNumber:9},this),i.jsxDEV(Wce,{inputDef:e,value:t.customValue||"",onChange:l,availableEventFields:a,error:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:91,columnNumber:9},this),o&&i.jsxDEV("p",{className:"text-sm text-destructive",children:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:98,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:83,columnNumber:7},this):$ce(e)?i.jsxDEV("div",{className:"space-y-2 p-3 border rounded-lg",children:[i.jsxDEV("div",{children:[i.jsxDEV($e,{className:"font-medium",children:[e.label,e.required&&i.jsxDEV("span",{className:"text-destructive ml-1",children:"*"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:110,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:108,columnNumber:11},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:e.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:112,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:107,columnNumber:9},this),i.jsxDEV(ZP,{inputDef:e,value:t.customValue||"",onChange:l,error:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:114,columnNumber:9},this),o&&i.jsxDEV("p",{className:"text-sm text-destructive",children:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:120,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:106,columnNumber:7},this):i.jsxDEV("div",{className:"space-y-2 p-3 border rounded-lg",children:[i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV($e,{className:"font-medium",children:[e.label,e.required&&i.jsxDEV("span",{className:"text-destructive ml-1",children:"*"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:132,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:130,columnNumber:11},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:e.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:134,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:129,columnNumber:9},this),i.jsxDEV("div",{className:"flex gap-1",children:[i.jsxDEV("button",{type:"button",onClick:()=>p("custom"),className:`px-2 py-1 text-xs rounded transition-colors ${c==="custom"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:"Custom"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:137,columnNumber:11},this),i.jsxDEV("button",{type:"button",onClick:()=>p("event_field"),className:`px-2 py-1 text-xs rounded transition-colors ${c==="event_field"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:"Event Field"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:148,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:136,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:128,columnNumber:7},this),c==="custom"?i.jsxDEV(ZP,{inputDef:e,value:t.customValue||"",onChange:l,error:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:163,columnNumber:9},this):i.jsxDEV(qce,{value:t.eventField||"",onChange:d,availableEventFields:a,error:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:170,columnNumber:9},this),o&&i.jsxDEV("p",{className:"text-sm text-destructive",children:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:178,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:127,columnNumber:5},this)}function Wce({inputDef:e,value:t,onChange:s,availableEventFields:a,error:o}){var f;const c=b.useRef(null),[p,l]=b.useState(""),d=((f=e.defaultValue)==null?void 0:f.toString())||`Enter ${e.label.toLowerCase()}...`,h=e.type==="textarea"||e.name.toLowerCase().includes("message")||e.name.toLowerCase().includes("text")||e.name.toLowerCase().includes("content"),v=()=>{if(!p||!c.current)return;const E=c.current,w=E.selectionStart??t.length,C=E.selectionEnd??t.length,S=`{{${p}}}`,x=t.slice(0,w)+S+t.slice(C);s(x),setTimeout(()=>{if(c.current){const N=w+S.length;c.current.setSelectionRange(N,N),c.current.focus()}},0)};return i.jsxDEV("div",{className:"space-y-2",children:[h?i.jsxDEV(Gi,{ref:c,value:t,onChange:E=>s(E.target.value),placeholder:d,rows:3,className:o?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:239,columnNumber:9},this):i.jsxDEV(Ut,{ref:c,type:"text",value:t,onChange:E=>s(E.target.value),placeholder:d,className:o?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:248,columnNumber:9},this),a.length>0&&i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(Vs,{value:p,onValueChange:l,children:[i.jsxDEV(js,{className:"flex-1 h-8 text-xs",children:i.jsxDEV(Ls,{placeholder:"Select variable..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:262,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:261,columnNumber:13},this),i.jsxDEV(Ps,{children:a.map(E=>i.jsxDEV(Rt,{value:E.field,children:[i.jsxDEV("span",{className:"font-mono text-xs",children:`{{${E.field}}}`},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:267,columnNumber:19},this),i.jsxDEV("span",{className:"ml-2 text-muted-foreground",children:E.label},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:268,columnNumber:19},this)]},E.field,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:266,columnNumber:17},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:264,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:260,columnNumber:11},this),i.jsxDEV(ce,{type:"button",variant:"outline",size:"sm",onClick:v,disabled:!p,className:"h-8 text-xs",children:"Insert"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:273,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:259,columnNumber:9},this),a.length>0&&i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Use ",i.jsxDEV("code",{className:"bg-muted px-1 rounded",children:"{{field}}"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:288,columnNumber:15},this)," syntax to insert event values"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:287,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:237,columnNumber:5},this)}function ZP({inputDef:e,value:t,onChange:s,error:a}){var o,c,p;switch(e.type){case"number":return i.jsxDEV(Ut,{type:"number",value:t,onChange:l=>s(l.target.value),placeholder:((o=e.defaultValue)==null?void 0:o.toString())||"0",className:a?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:311,columnNumber:9},this);case"boolean":return i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:`input-${e.name}`,checked:t==="true",onCheckedChange:l=>s(l?"true":"false")},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:323,columnNumber:11},this),i.jsxDEV($e,{htmlFor:`input-${e.name}`,className:"cursor-pointer",children:e.defaultValue===!0?"Enabled by default":"Enable"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:328,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:322,columnNumber:9},this);case"select":return i.jsxDEV(Vs,{value:t,onValueChange:s,children:[i.jsxDEV(js,{className:a?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:`Select ${e.label.toLowerCase()}...`},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:338,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:337,columnNumber:11},this),i.jsxDEV(Ps,{children:(c=e.options)==null?void 0:c.map(l=>i.jsxDEV(Rt,{value:l.value,children:l.label},l.value,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:342,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:340,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:336,columnNumber:9},this);default:return i.jsxDEV(Ut,{type:"text",value:t,onChange:l=>s(l.target.value),placeholder:((p=e.defaultValue)==null?void 0:p.toString())||"",className:a?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:353,columnNumber:9},this)}}function qce({value:e,onChange:t,availableEventFields:s,error:a}){return s.length===0?i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV(Ut,{type:"text",value:e,onChange:o=>t(o.target.value),placeholder:"Enter event field name...",className:a?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:380,columnNumber:9},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"No predefined event fields available. Enter a custom field name."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:387,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:379,columnNumber:7},this):i.jsxDEV(Vs,{value:e,onValueChange:t,children:[i.jsxDEV(js,{className:a?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:"Select event field..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:397,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:396,columnNumber:7},this),i.jsxDEV(Ps,{children:s.map(o=>i.jsxDEV(Rt,{value:o.field,children:o.label},o.field,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:401,columnNumber:11},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:399,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:395,columnNumber:5},this)}function Kce({action:e,values:t,onChange:s,availableEventFields:a=[],errors:o}){if(!e||e.inputs.length===0)return i.jsxDEV("div",{className:"text-sm text-muted-foreground text-center py-4",children:e?"This action has no configurable inputs.":"Select an action to configure inputs."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:24,columnNumber:7},this);const c=(l,d)=>{s({...t,[l]:d})},p=l=>t[l]||{source:"custom",customValue:""};return i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-2",children:[i.jsxDEV(Ze,{variant:"outline",children:e.category},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:46,columnNumber:9},this),i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:e.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:47,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:45,columnNumber:7},this),e.inputs.map(l=>i.jsxDEV(Hce,{inputDef:l,value:p(l.name),onChange:d=>c(l.name,d),availableEventFields:a,error:o==null?void 0:o[l.name]},l.name,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:50,columnNumber:9},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:44,columnNumber:5},this)}function db(e,t,s){const a=t?new Set(t.inputs.map(p=>p.name)):null;let o=!1;const c={};for(const[p,l]of Object.entries(s)){if(a&&!a.has(p)){o=!0;continue}if(e==="restart_agent"&&p==="agentId"){o=!0;continue}c[p]=l}return o?c:s}const JP={name:"",description:"",enabled:!0,eventName:"",hasFilter:!1,filterField:"",filterOperator:"equals",filterValue:"",actionType:"",actionInputs:{},delayMs:0,cooldownMs:5e3,retryOnError:!1,groupName:"",priority:0,position:0};function e9({open:e,onOpenChange:t,subscriber:s}){const a=Zs(),{toast:o}=ci(),{selectedProjectId:c}=fr(),p=!!s,[l,d]=b.useState(JP),[h,v]=b.useState({}),[f,E]=b.useState({}),{data:w}=rt({queryKey:["subscribableEvents"],queryFn:fA,enabled:e}),{data:C}=rt({queryKey:["watchers",c],queryFn:()=>mA(c),enabled:!!c&&e}),{data:S,isLoading:x}=rt({queryKey:["actions"],queryFn:zce,enabled:e}),N=(S==null?void 0:S.find(M=>M.type===l.actionType))||null;b.useEffect(()=>{var M,L,U;e&&(d(s?{name:s.name,description:s.description||"",enabled:s.enabled,eventName:s.eventName,hasFilter:!!s.eventFilter,filterField:((M=s.eventFilter)==null?void 0:M.field)||"",filterOperator:((L=s.eventFilter)==null?void 0:L.operator)||"equals",filterValue:((U=s.eventFilter)==null?void 0:U.value)||"",actionType:s.actionType,actionInputs:db(s.actionType,null,s.actionInputs||{}),delayMs:s.delayMs,cooldownMs:s.cooldownMs,retryOnError:s.retryOnError,groupName:s.groupName||"",priority:s.priority??0,position:s.position??0}:JP),v({}),E({}))},[e,s]),b.useEffect(()=>{if(!l.actionType||!e)return;const M=db(l.actionType,N,l.actionInputs);M!==l.actionInputs&&(j("actionInputs",M),E(L=>{const U={...L};for(const Z of Object.keys(L))Z in M||delete U[Z];return U}))},[e,l.actionType,N]),b.useEffect(()=>{var Y;if(!l.eventName||!w)return;const M=w.find(K=>K.name===l.eventName),L=M?M.fields:((Y=w.find(K=>K.name==="terminal.watcher.triggered"))==null?void 0:Y.fields)||[],U=new Set(L.map(K=>K.field));if(U.size===0)return;let Z=!1;const q={...l.actionInputs};for(const[K,O]of Object.entries(q))O.source==="event_field"&&O.eventField&&(U.has(O.eventField)||(q[K]={source:"event_field",eventField:"",customValue:void 0},Z=!0));Z&&d(K=>({...K,actionInputs:q}))},[l.eventName,l.actionInputs,w]);const g=Ct({mutationFn:M=>Ice(M),onSuccess:()=>{a.invalidateQueries({queryKey:["subscribers",c]}),t(!1),o({title:"Success",description:"Subscriber created successfully"})},onError:M=>{o({title:"Error",description:M instanceof Error?M.message:"Failed to create subscriber",variant:"destructive"})}}),y=Ct({mutationFn:({id:M,data:L})=>gA(M,L),onSuccess:()=>{a.invalidateQueries({queryKey:["subscribers",c]}),t(!1),o({title:"Success",description:"Subscriber updated successfully"})},onError:M=>{o({title:"Error",description:M instanceof Error?M.message:"Failed to update subscriber",variant:"destructive"})}}),_=g.isPending||y.isPending,P=()=>{var U,Z;const M={},L={};if(l.name.trim()?l.name.length>100&&(M.name="Name must be 100 characters or less"):M.name="Name is required",l.eventName.trim()||(M.eventName="Event name is required"),l.hasFilter&&(l.filterField.trim()||(M.filterField="Filter field is required"),l.filterValue.trim()||(M.filterValue="Filter value is required")),l.actionType||(M.actionType="Action type is required"),N){for(const q of N.inputs)if(q.required){const Y=l.actionInputs[q.name];Y?Y.source==="custom"&&!((U=Y.customValue)!=null&&U.trim())?L[q.name]=`${q.label} is required`:Y.source==="event_field"&&!((Z=Y.eventField)!=null&&Z.trim())&&(L[q.name]=`Please select an event field for ${q.label}`):L[q.name]=`${q.label} is required`}}return l.delayMs<0&&(M.delayMs="Delay must be 0 or greater"),l.cooldownMs<0&&(M.cooldownMs="Cooldown must be 0 or greater"),v(M),E(L),Object.keys(M).length===0&&Object.keys(L).length===0},R=M=>{if(M.preventDefault(),!P())return;if(!c){o({title:"Error",description:"Please select a project first",variant:"destructive"});return}const L=l.hasFilter?{field:l.filterField,operator:l.filterOperator,value:l.filterValue}:null;if(p&&s){const U=db(l.actionType,N,l.actionInputs),Z={name:l.name,description:l.description||null,enabled:l.enabled,eventName:l.eventName,eventFilter:L,actionType:l.actionType,actionInputs:U,delayMs:l.delayMs,cooldownMs:l.cooldownMs,retryOnError:l.retryOnError,groupName:l.groupName||null,priority:l.priority,position:l.position};y.mutate({id:s.id,data:Z})}else{const U=db(l.actionType,N,l.actionInputs),Z={projectId:c,name:l.name,description:l.description||void 0,enabled:l.enabled,eventName:l.eventName,eventFilter:L,actionType:l.actionType,actionInputs:U,delayMs:l.delayMs,cooldownMs:l.cooldownMs,retryOnError:l.retryOnError,groupName:l.groupName||null,priority:l.priority,position:l.position};g.mutate(Z)}},j=(M,L)=>{d(U=>({...U,[M]:L})),h[M]&&v(U=>({...U,[M]:void 0}))},T=[...new Set((C==null?void 0:C.map(M=>M.eventName))||[])],A=w==null?void 0:w.reduce((M,L)=>(M[L.category]||(M[L.category]=[]),M[L.category].push(L),M),{}),F=(()=>{if(!l.eventName||!w)return[];const M=w.find(U=>U.name===l.eventName);if(M)return M.fields;const L=w.find(U=>U.name==="terminal.watcher.triggered");return(L==null?void 0:L.fields)||[]})();return i.jsxDEV(Ds,{open:e,onOpenChange:t,children:i.jsxDEV(ys,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:p?"Edit Subscriber":"Create Subscriber"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:458,columnNumber:11},this),i.jsxDEV(ds,{children:p?"Update the subscriber configuration.":"Configure a new subscriber to react to events."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:459,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:457,columnNumber:9},this),i.jsxDEV("form",{onSubmit:R,className:"space-y-6",children:[i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Basic Info"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:469,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"name",children:"Name *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:473,columnNumber:15},this),i.jsxDEV(Ut,{id:"name",value:l.name,onChange:M=>j("name",M.target.value),placeholder:"Error Handler",className:h.name?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:474,columnNumber:15},this),h.name&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:481,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:472,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"description",children:"Description"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:484,columnNumber:15},this),i.jsxDEV(Gi,{id:"description",value:l.description,onChange:M=>j("description",M.target.value),placeholder:"Handles error events by sending a message",rows:2},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:485,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:483,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:468,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Event Trigger"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:497,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"eventName",children:"Event Name *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:501,columnNumber:15},this),i.jsxDEV(Vs,{value:l.eventName,onValueChange:M=>j("eventName",M),children:[i.jsxDEV(js,{className:h.eventName?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:"Select event type..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:507,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:506,columnNumber:17},this),i.jsxDEV(Ps,{children:[A&&Object.entries(A).map(([M,L])=>i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase",children:M},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:514,columnNumber:25},this),L.map(U=>i.jsxDEV(Rt,{value:U.name,children:U.label},U.name,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:518,columnNumber:27},this))]},M,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:513,columnNumber:23},this)),T.length>0&&i.jsxDEV(i.Fragment,{children:[i.jsxDEV("div",{className:"px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase border-t mt-1 pt-2",children:"Watcher Custom Events"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:527,columnNumber:23},this),T.map(M=>i.jsxDEV(Rt,{value:M,children:M},M,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:531,columnNumber:25},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:526,columnNumber:21},this),l.eventName&&!(w!=null&&w.find(M=>M.name===l.eventName))&&!T.includes(l.eventName)&&i.jsxDEV(Rt,{value:l.eventName,children:[l.eventName," (custom)"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:541,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:509,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:502,columnNumber:15},this),h.eventName&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.eventName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:547,columnNumber:36},this),i.jsxDEV(Ut,{placeholder:"Or enter custom event name...",value:l.eventName,onChange:M=>j("eventName",M.target.value),className:"mt-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:548,columnNumber:15},this),F.length>0&&i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Available fields: ",F.map(M=>M.field).join(", ")]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:555,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:500,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:"hasFilter",checked:l.hasFilter,onCheckedChange:M=>j("hasFilter",M===!0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:562,columnNumber:15},this),i.jsxDEV($e,{htmlFor:"hasFilter",className:"cursor-pointer",children:"Add event filter"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:567,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:561,columnNumber:13},this),l.hasFilter&&i.jsxDEV("div",{className:"grid grid-cols-3 gap-2 p-3 border rounded-lg",children:[i.jsxDEV("div",{className:"space-y-1",children:[i.jsxDEV($e,{className:"text-xs",children:"Field"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:575,columnNumber:19},this),i.jsxDEV(Ut,{value:l.filterField,onChange:M=>j("filterField",M.target.value),placeholder:"sessionId",className:h.filterField?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:576,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:574,columnNumber:17},this),i.jsxDEV("div",{className:"space-y-1",children:[i.jsxDEV($e,{className:"text-xs",children:"Operator"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:584,columnNumber:19},this),i.jsxDEV(Vs,{value:l.filterOperator,onValueChange:M=>j("filterOperator",M),children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:590,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:589,columnNumber:21},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"equals",children:"Equals"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:593,columnNumber:23},this),i.jsxDEV(Rt,{value:"contains",children:"Contains"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:594,columnNumber:23},this),i.jsxDEV(Rt,{value:"regex",children:"Regex"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:595,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:592,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:585,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:583,columnNumber:17},this),i.jsxDEV("div",{className:"space-y-1",children:[i.jsxDEV($e,{className:"text-xs",children:"Value"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:600,columnNumber:19},this),i.jsxDEV(Ut,{value:l.filterValue,onChange:M=>j("filterValue",M.target.value),placeholder:"value",className:h.filterValue?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:601,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:599,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:573,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:496,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Action"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:614,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Action Type *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:618,columnNumber:15},this),x?i.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:621,columnNumber:19},this),"Loading actions..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:620,columnNumber:17},this):i.jsxDEV(Vs,{value:l.actionType,onValueChange:M=>{j("actionType",M),j("actionInputs",{})},children:[i.jsxDEV(js,{className:h.actionType?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:"Select action..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:634,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:633,columnNumber:19},this),i.jsxDEV(Ps,{children:S==null?void 0:S.map(M=>i.jsxDEV(Rt,{value:M.type,children:M.name},M.type,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:638,columnNumber:23},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:636,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:625,columnNumber:17},this),h.actionType&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.actionType},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:645,columnNumber:37},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:617,columnNumber:13},this),l.actionType&&i.jsxDEV(Kce,{action:N,values:l.actionInputs,onChange:M=>j("actionInputs",M),availableEventFields:F,errors:f},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:649,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:613,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Execution Options"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:661,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"delayMs",children:"Delay Before Action (ms)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:666,columnNumber:17},this),i.jsxDEV(Ut,{id:"delayMs",type:"number",min:0,step:100,value:l.delayMs,onChange:M=>j("delayMs",parseInt(M.target.value)||0),className:h.delayMs?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:667,columnNumber:17},this),h.delayMs&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.delayMs},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:676,columnNumber:36},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:665,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"cooldownMs",children:"Cooldown (ms)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:679,columnNumber:17},this),i.jsxDEV(Ut,{id:"cooldownMs",type:"number",min:0,step:1e3,value:l.cooldownMs,onChange:M=>j("cooldownMs",parseInt(M.target.value)||0),className:h.cooldownMs?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:680,columnNumber:17},this),h.cooldownMs&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.cooldownMs},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:690,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:678,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:664,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:"retryOnError",checked:l.retryOnError,onCheckedChange:M=>j("retryOnError",M===!0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:695,columnNumber:15},this),i.jsxDEV($e,{htmlFor:"retryOnError",className:"cursor-pointer",children:"Retry on error"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:700,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:694,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:660,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Scheduling & Ordering"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:708,columnNumber:13},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Delay schedules execution time. Priority and position break ties when multiple subscribers are due at the same time."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:711,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"groupName",children:"Group Name (optional)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:716,columnNumber:15},this),i.jsxDEV(Ut,{id:"groupName",value:l.groupName,onChange:M=>j("groupName",M.target.value),placeholder:"Leave empty to group by event name"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:717,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Subscribers in the same group are executed sequentially. Empty groups by event."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:723,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:715,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"priority",children:"Priority"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:729,columnNumber:17},this),i.jsxDEV(Ut,{id:"priority",type:"number",min:-100,max:100,value:l.priority,onChange:M=>j("priority",parseInt(M.target.value)||0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:730,columnNumber:17},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Higher priority runs first (-100 to 100)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:738,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:728,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"position",children:"Position"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:743,columnNumber:17},this),i.jsxDEV(Ut,{id:"position",type:"number",min:0,value:l.position,onChange:M=>j("position",parseInt(M.target.value)||0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:744,columnNumber:17},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Order within group when priority is equal"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:751,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:742,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:727,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:707,columnNumber:11},this),i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:"enabled",checked:l.enabled,onCheckedChange:M=>j("enabled",M===!0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:760,columnNumber:13},this),i.jsxDEV($e,{htmlFor:"enabled",className:"cursor-pointer",children:"Enable subscriber immediately"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:765,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:759,columnNumber:11},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{type:"button",variant:"outline",onClick:()=>t(!1),children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:771,columnNumber:13},this),i.jsxDEV(ce,{type:"submit",disabled:_,children:[_&&i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:775,columnNumber:29},this),p?"Update":"Create"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:774,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:770,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:466,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:456,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:455,columnNumber:5},this)}function Gce(){const e=Zs(),{toast:t}=ci(),{selectedProjectId:s}=fr(),[a,o]=b.useState(null),[c,p]=b.useState(!1),[l,d]=b.useState(null),{data:h,isLoading:v,error:f}=rt({queryKey:["subscribers",s],queryFn:()=>Lce(s),enabled:!!s}),{data:E}=rt({queryKey:["subscribableEvents"],queryFn:fA}),w=b.useMemo(()=>{if(!h||h.length===0)return[];const T=new Map;E==null||E.forEach(F=>{T.set(F.name,F.label)});const A=new Map;for(const F of h){const M=F.groupName??`event:${F.eventName}`;A.has(M)||A.set(M,[]),A.get(M).push(F)}for(const F of A.values())F.sort((M,L)=>M.position!==L.position?M.position-L.position:M.createdAt.localeCompare(L.createdAt));const k=[];for(const[F,M]of A){let L;if(F.startsWith("event:")){const U=F.slice(6),Z=T.get(U);L=Z?`Event: ${Z}`:`Event: ${U}`}else L=`Group: ${F}`;k.push({groupKey:F,label:L,subscribers:M})}return k.sort((F,M)=>F.label.localeCompare(M.label)),k},[h,E]),C=Ct({mutationFn:({id:T,enabled:A})=>Bce(T,A),onMutate:async({id:T,enabled:A})=>{await e.cancelQueries({queryKey:["subscribers",s]});const k=e.getQueryData(["subscribers",s]);return e.setQueryData(["subscribers",s],F=>F==null?void 0:F.map(M=>M.id===T?{...M,enabled:A}:M)),{previousSubscribers:k}},onError:(T,A,k)=>{k!=null&&k.previousSubscribers&&e.setQueryData(["subscribers",s],k.previousSubscribers),t({title:"Error",description:T instanceof Error?T.message:"Failed to toggle subscriber",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["subscribers",s]})}}),S=Ct({mutationFn:Fce,onMutate:async T=>{await e.cancelQueries({queryKey:["subscribers",s]});const A=e.getQueryData(["subscribers",s]);return e.setQueryData(["subscribers",s],k=>k==null?void 0:k.filter(F=>F.id!==T)),{previousSubscribers:A}},onSuccess:()=>{o(null),t({title:"Success",description:"Subscriber deleted successfully"})},onError:(T,A,k)=>{k!=null&&k.previousSubscribers&&e.setQueryData(["subscribers",s],k.previousSubscribers),t({title:"Error",description:T instanceof Error?T.message:"Failed to delete subscriber",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["subscribers",s]})}}),x=Ct({mutationFn:async({updates:T})=>{for(const A of T)await gA(A.id,{position:A.position})},onMutate:async({updates:T})=>{await e.cancelQueries({queryKey:["subscribers",s]});const A=e.getQueryData(["subscribers",s]);return e.setQueryData(["subscribers",s],k=>k==null?void 0:k.map(F=>{const M=T.find(L=>L.id===F.id);return M?{...F,position:M.position}:F})),{previousSubscribers:A}},onError:(T,A,k)=>{k!=null&&k.previousSubscribers&&e.setQueryData(["subscribers",s],k.previousSubscribers),t({title:"Error",description:T instanceof Error?T.message:"Failed to reorder subscriber",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["subscribers",s]})}}),N=(T,A)=>{if(A===0)return;const k=T.subscribers,F=k[A],M=k[A-1],L=k.map(Z=>Z.position);if(new Set(L).size!==L.length){const Z=new Map(k.map(K=>[K.id,K.position])),q=k.map((K,O)=>({id:K.id,position:O}));q[A].position=A-1,q[A-1].position=A;const Y=q.filter(K=>K.position!==Z.get(K.id));x.mutate({updates:Y});return}x.mutate({updates:[{id:F.id,position:M.position},{id:M.id,position:F.position}]})},g=(T,A)=>{if(A===T.subscribers.length-1)return;const k=T.subscribers,F=k[A],M=k[A+1],L=k.map(Z=>Z.position);if(new Set(L).size!==L.length){const Z=new Map(k.map(K=>[K.id,K.position])),q=k.map((K,O)=>({id:K.id,position:O}));q[A].position=A+1,q[A+1].position=A;const Y=q.filter(K=>K.position!==Z.get(K.id));x.mutate({updates:Y});return}x.mutate({updates:[{id:F.id,position:M.position},{id:M.id,position:F.position}]})},y=()=>{d(null),p(!0)},_=T=>{d(T),p(!0)},P=T=>{p(T),T||d(null)},R=T=>{const A=T.actionInputs;if(!A)return null;for(const[k,F]of Object.entries(A)){if(F.source==="custom"&&F.customValue){const M=F.customValue;return M.length>50?`${k}: ${M.slice(0,50)}...`:`${k}: ${M}`}if(F.source==="event_field"&&F.eventField)return`${k}: {${F.eventField}}`}return null},j=T=>T.split("_").map(A=>A.charAt(0).toUpperCase()+A.slice(1)).join(" ");return v?i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex items-center justify-center py-12",children:[i.jsxDEV(Dt,{className:"h-8 w-8 animate-spin text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:352,columnNumber:11},this),i.jsxDEV("span",{className:"ml-2 text-muted-foreground",children:"Loading subscribers..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:353,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:351,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:350,columnNumber:7},this):f?i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(Ni,{className:"h-8 w-8 text-destructive mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:364,columnNumber:11},this),i.jsxDEV("p",{className:"text-destructive",children:f instanceof Error?f.message:"Failed to load subscribers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:365,columnNumber:11},this),i.jsxDEV(ce,{variant:"outline",className:"mt-4",onClick:()=>e.invalidateQueries({queryKey:["subscribers",s]}),children:"Retry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:368,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:363,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:362,columnNumber:7},this):s?!h||h.length===0?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"Subscribers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:402,columnNumber:17},this),i.jsxDEV(Li,{children:"React to events by executing automated actions."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:403,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:401,columnNumber:15},this),i.jsxDEV(ce,{onClick:y,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:406,columnNumber:17},this),"Add Subscriber"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:405,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:400,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:399,columnNumber:11},this),i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(zE,{className:"h-12 w-12 text-muted-foreground mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:412,columnNumber:13},this),i.jsxDEV("h3",{className:"text-lg font-semibold mb-2",children:"No subscribers yet"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:413,columnNumber:13},this),i.jsxDEV("p",{className:"text-muted-foreground text-center max-w-md",children:"Create your first subscriber to start reacting to events with automated actions."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:414,columnNumber:13},this),i.jsxDEV(ce,{className:"mt-4",onClick:y,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:418,columnNumber:15},this),"Create Subscriber"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:417,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:411,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:398,columnNumber:9},this),i.jsxDEV(e9,{open:c,onOpenChange:P,subscriber:l},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:424,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:397,columnNumber:7},this):i.jsxDEV(wo,{children:[i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"Subscribers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:439,columnNumber:15},this),i.jsxDEV(Li,{children:"React to events by executing automated actions. Delay schedules execution time; priority/position break ties when multiple subscribers are due at the same time."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:440,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:438,columnNumber:13},this),i.jsxDEV(ce,{onClick:y,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:446,columnNumber:15},this),"Add Subscriber"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:445,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:437,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:436,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-6",children:w.map(T=>i.jsxDEV("div",{className:"space-y-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2 pb-2 border-b",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground",children:T.label},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:457,columnNumber:19},this),i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:T.subscribers.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:458,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:456,columnNumber:17},this),i.jsxDEV("div",{className:"space-y-3",children:T.subscribers.map((A,k)=>i.jsxDEV("div",{className:"flex items-start justify-between p-4 border rounded-lg",children:[i.jsxDEV("div",{className:"flex flex-col gap-0.5 mr-3",children:[i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(ce,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>N(T,k),disabled:k===0||x.isPending,children:i.jsxDEV(Nf,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:481,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:474,columnNumber:29},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:473,columnNumber:27},this),i.jsxDEV(kr,{children:"Move up"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:484,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:472,columnNumber:25},this),i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(ce,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>g(T,k),disabled:k===T.subscribers.length-1||x.isPending,children:i.jsxDEV(Ua,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:497,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:488,columnNumber:29},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:487,columnNumber:27},this),i.jsxDEV(kr,{children:"Move down"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:500,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:486,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:471,columnNumber:23},this),i.jsxDEV("div",{className:"flex-1 min-w-0",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-1",children:[i.jsxDEV("h4",{className:"font-semibold truncate",children:A.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:506,columnNumber:27},this),i.jsxDEV(Ze,{variant:A.enabled?"default":"secondary",children:A.enabled?"Enabled":"Disabled"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:507,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:505,columnNumber:25},this),A.description&&i.jsxDEV("p",{className:"text-sm text-muted-foreground mb-2 line-clamp-2",children:A.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:512,columnNumber:27},this),i.jsxDEV("div",{className:"flex flex-wrap gap-2 text-xs mb-2",children:[i.jsxDEV(Ze,{variant:"outline",children:["Listens to: ",A.eventName]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:517,columnNumber:27},this),i.jsxDEV(Ze,{variant:"secondary",children:j(A.actionType)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:518,columnNumber:27},this),A.delayMs>0&&i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(Ze,{variant:"outline",children:["Delay: ",A.delayMs,"ms"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:524,columnNumber:33},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:523,columnNumber:31},this),i.jsxDEV(kr,{children:["Schedules execution ",A.delayMs,"ms after event"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:526,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:522,columnNumber:29},this),A.priority!==0&&i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(Ze,{variant:"outline",children:["Priority: ",A.priority]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:534,columnNumber:33},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:533,columnNumber:31},this),i.jsxDEV(kr,{children:"Higher priority runs first when multiple are due at same time"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:536,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:532,columnNumber:29},this),i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(Ze,{variant:"outline",children:["Position: ",A.position]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:543,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:542,columnNumber:29},this),i.jsxDEV(kr,{children:"Order within group when priority is equal"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:545,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:541,columnNumber:27},this),A.retryOnError&&i.jsxDEV(Ze,{variant:"outline",children:"Retry on error"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:550,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:516,columnNumber:25},this),R(A)&&i.jsxDEV("p",{className:"text-xs text-muted-foreground font-mono bg-muted px-2 py-1 rounded truncate max-w-md",children:R(A)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:554,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:504,columnNumber:23},this),i.jsxDEV("div",{className:"flex items-center gap-2 ml-4",children:[i.jsxDEV(kf,{checked:A.enabled,onCheckedChange:F=>C.mutate({id:A.id,enabled:F}),disabled:C.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:560,columnNumber:25},this),i.jsxDEV(ZN,{children:[i.jsxDEV(JN,{asChild:!0,children:i.jsxDEV(ce,{variant:"ghost",size:"sm",children:i.jsxDEV(CN,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:570,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:569,columnNumber:29},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:568,columnNumber:27},this),i.jsxDEV(Vf,{align:"end",children:[i.jsxDEV(fl,{onClick:()=>_(A),children:[i.jsxDEV(xc,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:575,columnNumber:31},this),"Edit"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:574,columnNumber:29},this),i.jsxDEV(KS,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:578,columnNumber:29},this),i.jsxDEV(fl,{className:"text-destructive",onClick:()=>o(A.id),children:[i.jsxDEV(Tn,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:583,columnNumber:31},this),"Delete"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:579,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:573,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:567,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:559,columnNumber:23},this)]},A.id,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:466,columnNumber:21},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:464,columnNumber:17},this)]},T.groupKey,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:454,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:452,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:451,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:435,columnNumber:7},this),i.jsxDEV(Ds,{open:!!a,onOpenChange:()=>o(null),children:i.jsxDEV(ys,{children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:"Delete Subscriber"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:602,columnNumber:13},this),i.jsxDEV(ds,{children:"Are you sure you want to delete this subscriber? This action cannot be undone."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:603,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:601,columnNumber:11},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{variant:"outline",onClick:()=>o(null),children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:608,columnNumber:13},this),i.jsxDEV(ce,{variant:"destructive",onClick:()=>a&&S.mutate(a),disabled:S.isPending,children:[S.isPending?i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:616,columnNumber:43},this):null,"Delete"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:611,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:607,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:600,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:599,columnNumber:7},this),i.jsxDEV(e9,{open:c,onOpenChange:P,subscriber:l},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:624,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:434,columnNumber:5},this):i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(zE,{className:"h-8 w-8 text-muted-foreground mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:387,columnNumber:11},this),i.jsxDEV("p",{className:"text-muted-foreground",children:"Please select a project to view subscribers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:388,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:386,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:385,columnNumber:7},this)}function Yce(){const[e,t]=b.useState("watchers");return i.jsxDEV("div",{className:"container py-6",children:[i.jsxDEV("div",{className:"flex items-center justify-between mb-6",children:i.jsxDEV("h1",{className:"text-2xl font-bold",children:"Automation"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:15,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:14,columnNumber:7},this),i.jsxDEV(gk,{value:e,onValueChange:s=>t(s),children:[i.jsxDEV(YS,{children:[i.jsxDEV(Km,{value:"watchers",children:[i.jsxDEV(UE,{className:"w-4 h-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:21,columnNumber:13},this),"Watchers"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:20,columnNumber:11},this),i.jsxDEV(Km,{value:"subscribers",children:[i.jsxDEV(zE,{className:"w-4 h-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:25,columnNumber:13},this),"Subscribers"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:24,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:19,columnNumber:9},this),i.jsxDEV(Gm,{value:"watchers",children:i.jsxDEV(Oce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:31,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:30,columnNumber:9},this),i.jsxDEV(Gm,{value:"subscribers",children:i.jsxDEV(Gce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:34,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:33,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:18,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:13,columnNumber:5},this)}const Qce=b.lazy(()=>uN(()=>import("./ReviewDetailPage-C4NizGFT.js"),__vite__mapDeps([3,1,2])).then(e=>({default:e.ReviewDetailPage})));function Xce(){return i.jsxDEV("div",{className:"flex flex-col h-full",children:[i.jsxDEV("div",{className:"border-b p-4 bg-card",children:i.jsxDEV("div",{className:"flex items-center gap-4",children:[i.jsxDEV(qt,{className:"h-9 w-9"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:37,columnNumber:11},this),i.jsxDEV("div",{className:"flex-1",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-2",children:[i.jsxDEV(qt,{className:"h-6 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:40,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-20"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:41,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:39,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:44,columnNumber:15},this),i.jsxDEV(qt,{className:"h-4 w-40"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:45,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:43,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:38,columnNumber:11},this),i.jsxDEV(qt,{className:"h-4 w-16"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:48,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:36,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:35,columnNumber:7},this),i.jsxDEV("div",{className:"flex-1 flex min-h-0",children:[i.jsxDEV("div",{className:"w-64 border-r bg-card p-3 space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-3",children:[i.jsxDEV(qt,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:57,columnNumber:13},this),i.jsxDEV(qt,{className:"h-4 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:58,columnNumber:13},this),i.jsxDEV(qt,{className:"h-5 w-6"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:59,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:56,columnNumber:11},this),Array.from({length:8}).map((e,t)=>i.jsxDEV(qt,{className:"h-8 w-full"},t,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:62,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:55,columnNumber:9},this),i.jsxDEV("div",{className:"flex-1 min-w-0 bg-background p-4",children:i.jsxDEV("div",{className:"space-y-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-4",children:[i.jsxDEV(qt,{className:"h-5 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:70,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:71,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:72,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:69,columnNumber:13},this),Array.from({length:12}).map((e,t)=>i.jsxDEV(qt,{className:"h-6 w-full",style:{width:`${60+Math.random()*40}%`}},t,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:75,columnNumber:15},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:68,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:67,columnNumber:9},this),i.jsxDEV("div",{className:"w-80 border-l bg-card p-4 space-y-3",children:[i.jsxDEV(qt,{className:"h-5 w-24 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:86,columnNumber:11},this),Array.from({length:4}).map((e,t)=>i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-6 w-6 rounded-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:90,columnNumber:17},this),i.jsxDEV(qt,{className:"h-4 w-20"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:91,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:89,columnNumber:15},this),i.jsxDEV(qt,{className:"h-16 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:93,columnNumber:15},this)]},t,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:88,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:85,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:53,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:33,columnNumber:5},this)}function Zce(){return i.jsxDEV(b.Suspense,{fallback:i.jsxDEV(Xce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:108,columnNumber:25},this),children:i.jsxDEV(Qce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:109,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:108,columnNumber:5},this)}function Jce(){return i.jsxDEV("div",{className:"flex min-h-[60vh] flex-col items-center justify-center text-center",children:i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("h1",{className:"text-9xl font-bold text-muted-foreground",children:"404"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:10,columnNumber:11},this),i.jsxDEV("h2",{className:"text-3xl font-bold",children:"Page Not Found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:11,columnNumber:11},this),i.jsxDEV("p",{className:"text-muted-foreground max-w-md",children:"The page you're looking for doesn't exist or has been moved."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:12,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:9,columnNumber:9},this),i.jsxDEV("div",{className:"flex items-center justify-center gap-3 pt-4",children:[i.jsxDEV(ce,{variant:"outline",asChild:!0,children:i.jsxDEV(fo,{to:"/",children:[i.jsxDEV(zQ,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:20,columnNumber:15},this),"Go Home"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:19,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:18,columnNumber:11},this),i.jsxDEV(ce,{variant:"default",onClick:()=>window.history.back(),children:[i.jsxDEV(SN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:25,columnNumber:13},this),"Go Back"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:24,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:17,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:8,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:7,columnNumber:5},this)}function eue(){const e=gn();return i.jsxDEV("div",{className:"flex min-h-[60vh] flex-col items-center justify-center px-4 text-center",children:i.jsxDEV("div",{className:"max-w-xl space-y-6 rounded-lg border bg-card p-8 shadow-sm",children:[i.jsxDEV("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-muted",children:i.jsxDEV(F7,{className:"h-6 w-6 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:12,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:11,columnNumber:9},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("h1",{className:"text-2xl font-semibold",children:"Documents is currently disabled"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:16,columnNumber:11},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"The Documents feature is temporarily hidden while we prepare the release. Existing documents remain intact and will return when the feature is re-enabled."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:17,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:15,columnNumber:9},this),i.jsxDEV("div",{className:"flex flex-col items-center gap-3 sm:flex-row sm:justify-center",children:[i.jsxDEV(ce,{asChild:!0,children:i.jsxDEV(fo,{to:"/projects",children:[i.jsxDEV(jN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:26,columnNumber:15},this),"Go to Projects"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:25,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:24,columnNumber:11},this),i.jsxDEV(ce,{variant:"outline",onClick:()=>e(-1),children:[i.jsxDEV(SN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:31,columnNumber:13},this),"Go Back"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:30,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:23,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:10,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:9,columnNumber:5},this)}function tue(){const e=gn();return i.jsxDEV("div",{className:"flex min-h-[60vh] flex-col items-center justify-center px-4 text-center",children:i.jsxDEV("div",{className:"max-w-xl space-y-6 rounded-lg border bg-card p-8 shadow-sm",children:[i.jsxDEV("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-muted",children:i.jsxDEV(F7,{className:"h-6 w-6 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:12,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:11,columnNumber:9},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("h1",{className:"text-2xl font-semibold",children:"Records is currently disabled"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:16,columnNumber:11},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"The Records feature is hidden for this release. Existing records remain intact and will return when the feature is re-enabled."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:17,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:15,columnNumber:9},this),i.jsxDEV("div",{className:"flex flex-col items-center gap-3 sm:flex-row sm:justify-center",children:[i.jsxDEV(ce,{asChild:!0,children:i.jsxDEV(fo,{to:"/projects",children:[i.jsxDEV(jN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:26,columnNumber:15},this),"Go to Projects"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:25,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:24,columnNumber:11},this),i.jsxDEV(ce,{variant:"outline",onClick:()=>e(-1),children:[i.jsxDEV(SN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:31,columnNumber:13},this),"Go Back"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:30,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:23,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:10,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:9,columnNumber:5},this)}function sue({template:e,onSelect:t}){return i.jsxDEV(Bs,{className:"cursor-pointer transition-colors hover:border-primary",onClick:()=>t(e.slug),children:[i.jsxDEV(Di,{className:"pb-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(_i,{className:"text-lg",children:e.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:32,columnNumber:11},this),e.isOfficial&&i.jsxDEV(Ze,{variant:"secondary",className:"gap-1",children:[i.jsxDEV(ca,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:35,columnNumber:15},this),"Official"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:34,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:31,columnNumber:9},this),i.jsxDEV(Li,{className:"line-clamp-2",children:e.description||"No description available"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:40,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:30,columnNumber:7},this),i.jsxDEV(Ks,{children:[i.jsxDEV("div",{className:"mb-3 flex flex-wrap gap-1",children:[e.tags.slice(0,3).map(s=>i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:s},s,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:47,columnNumber:13},this)),e.tags.length>3&&i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:["+",e.tags.length-3]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:52,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:45,columnNumber:9},this),i.jsxDEV("div",{className:"flex items-center justify-between text-sm text-muted-foreground",children:[i.jsxDEV("span",{children:["v",e.latestVersion||"0.0.0"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:58,columnNumber:11},this),e.totalDownloads!=null&&i.jsxDEV("span",{className:"flex items-center gap-1",children:[i.jsxDEV(bu,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:61,columnNumber:15},this),e.totalDownloads.toLocaleString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:60,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:57,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:44,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:26,columnNumber:5},this)}function iue({templates:e,onSelect:t}){return e.length===0?i.jsxDEV("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsxDEV("p",{className:"text-lg font-medium text-muted-foreground",children:"No templates found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:14,columnNumber:9},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Try adjusting your search or filters"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:15,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:13,columnNumber:7},this):i.jsxDEV("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:e.map(s=>i.jsxDEV(sue,{template:s,onSelect:t},s.slug,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:23,columnNumber:9},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:21,columnNumber:5},this)}function rue(){return i.jsxDEV("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6}).map((e,t)=>i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{className:"pb-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-6 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:36,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-16"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:37,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:35,columnNumber:13},this),i.jsxDEV(qt,{className:"mt-2 h-4 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:39,columnNumber:13},this),i.jsxDEV(qt,{className:"mt-1 h-4 w-3/4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:40,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:34,columnNumber:11},this),i.jsxDEV(Ks,{children:[i.jsxDEV("div",{className:"mb-3 flex gap-1",children:[i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:44,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-14"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:45,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-10"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:46,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:43,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV(qt,{className:"h-4 w-16"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:49,columnNumber:15},this),i.jsxDEV(qt,{className:"h-4 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:50,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:48,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:42,columnNumber:11},this)]},t,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:33,columnNumber:9},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:31,columnNumber:5},this)}var nue=Symbol.for("react.lazy"),aN=SD[" use ".trim().toString()];function aue(e){return typeof e=="object"&&e!==null&&"then"in e}function vA(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===nue&&"_payload"in e&&aue(e._payload)}function oue(e){const t=lue(e),s=b.forwardRef((a,o)=>{let{children:c,...p}=a;vA(c)&&typeof aN=="function"&&(c=aN(c._payload));const l=b.Children.toArray(c),d=l.find(uue);if(d){const h=d.props.children,v=l.map(f=>f===d?b.Children.count(h)>1?b.Children.only(null):b.isValidElement(h)?h.props.children:null:f);return re.jsx(t,{...p,ref:o,children:b.isValidElement(h)?b.cloneElement(h,void 0,v):null})}return re.jsx(t,{...p,ref:o,children:c})});return s.displayName=`${e}.Slot`,s}function lue(e){const t=b.forwardRef((s,a)=>{let{children:o,...c}=s;if(vA(o)&&typeof aN=="function"&&(o=aN(o._payload)),b.isValidElement(o)){const p=due(o),l=pue(c,o.props);return o.type!==b.Fragment&&(l.ref=a?pf(a,p):p),b.cloneElement(o,l)}return b.Children.count(o)>1?b.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var cue=Symbol("radix.slottable");function uue(e){return b.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===cue}function pue(e,t){const s={...t};for(const a in t){const o=e[a],c=t[a];/^on[A-Z]/.test(a)?o&&c?s[a]=(...l)=>{const d=c(...l);return o(...l),d}:o&&(s[a]=o):a==="style"?s[a]={...o,...c}:a==="className"&&(s[a]=[o,c].filter(Boolean).join(" "))}return{...e,...s}}function due(e){var a,o;let t=(a=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:a.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,s=t&&"isReactWarning"in t&&t.isReactWarning,s?e.props.ref:e.props.ref||e.ref)}var hue=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],mue=hue.reduce((e,t)=>{const s=oue(`Primitive.${t}`),a=b.forwardRef((o,c)=>{const{asChild:p,...l}=o,d=p?s:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),re.jsx(d,{...l,ref:c})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{}),fue=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),gue="VisuallyHidden",Vb=b.forwardRef((e,t)=>re.jsx(mue.span,{...e,ref:t,style:{...fue,...e.style}}));Vb.displayName=gue;async function vue(e){const t=await fetch(`/api/registry/cache/${encodeURIComponent(e)}/versions`);if(!t.ok)throw new Error("Failed to fetch cached versions");return t.json()}async function bue(e,t){const s=await fetch(`/api/registry/download/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:"POST"});if(!s.ok)throw new Error("Failed to download template");return s.json()}async function Nue(){const e=await fetch("/health");if(!e.ok)return null;const t=await e.json();return(t==null?void 0:t.version)||null}function xue(e,t){if(!e||!t)return!0;try{return!Xm(t,e)}catch{return!0}}function yue({versions:e,slug:t}){const s=Zs(),[a,o]=b.useState(!1),{data:c}=rt({queryKey:["registry-cache-versions",t],queryFn:()=>vue(t),enabled:!!t}),{data:p}=rt({queryKey:["health"],queryFn:Nue,staleTime:1/0}),l=new Set((c==null?void 0:c.versions)||[]),d=Ct({mutationFn:({version:C})=>bue(t,C),onSuccess:()=>{s.invalidateQueries({queryKey:["registry-cache-versions",t]}),s.invalidateQueries({queryKey:["unified-templates"]}),s.invalidateQueries({queryKey:["templates-for-upgrade"]})}});if(!e||e.length===0)return i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"No versions available"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:101,columnNumber:12},this);const h=[...e].sort((C,S)=>new Date(S.publishedAt).getTime()-new Date(C.publishedAt).getTime()),v=h[0],f=h.slice(1),E=f.length>0,w=C=>{var g;const S=l.has(C.version),x=d.isPending&&((g=d.variables)==null?void 0:g.version)===C.version,N=xue(C.minDevchainVersion,p??null);return i.jsxDEV("div",{className:"rounded-lg border p-3",children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{className:"flex-1",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV("span",{className:"font-mono font-medium",children:["v",C.version]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:125,columnNumber:15},this),C.isLatest&&i.jsxDEV(Ze,{variant:"secondary",className:"text-xs",children:"Latest"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:127,columnNumber:17},this),!N&&C.minDevchainVersion&&i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(Ze,{variant:"outline",className:"gap-1 border-amber-500/50 bg-amber-500/10 text-amber-600 text-xs",children:[i.jsxDEV($i,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:138,columnNumber:23},this),"Incompatible"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:134,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:133,columnNumber:19},this),i.jsxDEV(kr,{children:i.jsxDEV("p",{children:["Requires Devchain v",C.minDevchainVersion,"+",i.jsxDEV("br",{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:145,columnNumber:23},this),"Current: v",p]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:143,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:142,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:132,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:124,columnNumber:13},this),i.jsxDEV("div",{className:"mt-1 flex items-center gap-3 text-sm text-muted-foreground",children:[i.jsxDEV("span",{children:new Date(C.publishedAt).toLocaleDateString()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:153,columnNumber:15},this),C.downloadCount!=null&&i.jsxDEV("span",{className:"flex items-center gap-1",children:[i.jsxDEV(bu,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:156,columnNumber:19},this),C.downloadCount.toLocaleString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:155,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:152,columnNumber:13},this),C.changelog&&i.jsxDEV("p",{className:"mt-2 text-sm text-muted-foreground",children:C.changelog},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:162,columnNumber:15},this),C.minDevchainVersion&&N&&i.jsxDEV("p",{className:"mt-1 text-xs text-muted-foreground",children:["Requires Devchain v",C.minDevchainVersion,"+"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:165,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:123,columnNumber:11},this),i.jsxDEV("div",{className:"ml-4",children:S?i.jsxDEV(Ze,{variant:"outline",className:"gap-1",children:[i.jsxDEV(Td,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:175,columnNumber:17},this),"Downloaded"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:174,columnNumber:15},this):N?i.jsxDEV(ce,{size:"sm",variant:"outline",onClick:()=>d.mutate({version:C.version}),disabled:x,children:x?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Dt,{className:"mr-1 h-3.5 w-3.5 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:205,columnNumber:21},this),"Downloading"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:204,columnNumber:19},this):i.jsxDEV(i.Fragment,{children:[i.jsxDEV(bu,{className:"mr-1 h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:210,columnNumber:21},this),"Download"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:209,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:197,columnNumber:15},this):i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV("span",{children:i.jsxDEV(ce,{size:"sm",variant:"outline",disabled:!0,children:[i.jsxDEV(bu,{className:"mr-1 h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:183,columnNumber:23},this),"Download"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:182,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:181,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:180,columnNumber:17},this),i.jsxDEV(kr,{children:i.jsxDEV("p",{children:["Requires Devchain v",C.minDevchainVersion,"+",i.jsxDEV("br",{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:191,columnNumber:21},this),"Current: v",p]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:189,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:188,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:179,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:172,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:122,columnNumber:9},this)},C.version,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:121,columnNumber:7},this)};return i.jsxDEV(wo,{children:i.jsxDEV("div",{className:"space-y-3",children:[w(v),E&&i.jsxDEV(i.Fragment,{children:[i.jsxDEV(ce,{variant:"ghost",size:"sm",className:"w-full text-muted-foreground hover:text-foreground",onClick:()=>o(!a),children:a?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Nf,{className:"mr-1 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:239,columnNumber:19},this),"Hide ",f.length," older version",f.length>1?"s":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:238,columnNumber:17},this):i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Ua,{className:"mr-1 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:244,columnNumber:19},this),"Show ",f.length," older version",f.length>1?"s":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:243,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:231,columnNumber:13},this),a&&f.map(w)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:230,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:224,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:223,columnNumber:5},this)}async function wue(e){const t=await fetch("/api/registry/create-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const s=await t.json().catch(()=>({message:"Failed to create project"}));throw new Error(s.message||"Failed to create project")}return t.json()}function Eue({slug:e,version:t,templateName:s,open:a,onClose:o}){const[c,p]=b.useState(""),[l,d]=b.useState(""),[h,v]=b.useState(""),[f,E]=b.useState(null),w=gn(),C=Zs(),{toast:S}=ci(),x=Ct({mutationFn:wue,onSuccess:y=>{S({title:"Project Created",description:`${y.project.name} created from ${s}`}),C.invalidateQueries({queryKey:["projects"]}),o(),w("/projects")},onError:y=>{E(y.message)}}),N=()=>{if(E(null),!c.trim()){E("Project name is required");return}if(!h.trim()){E("Root path is required");return}x.mutate({slug:e,version:t,projectName:c.trim(),projectDescription:l.trim()||void 0,rootPath:h.trim()})},g=()=>{x.isPending||(p(""),d(""),v(""),E(null),o())};return i.jsxDEV(Ds,{open:a,onOpenChange:y=>!y&&g(),children:i.jsxDEV(ys,{className:"sm:max-w-md",children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{className:"flex items-center gap-2",children:[i.jsxDEV(VQ,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:135,columnNumber:13},this),"Create Project from Template"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:134,columnNumber:11},this),i.jsxDEV(ds,{children:["Using ",i.jsxDEV("span",{className:"font-medium",children:s},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:139,columnNumber:19},this)," v",t]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:138,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:133,columnNumber:9},this),i.jsxDEV("div",{className:"space-y-4 py-4",children:[f&&i.jsxDEV(wi,{variant:"destructive",children:[i.jsxDEV(Ni,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:146,columnNumber:15},this),i.jsxDEV(Ei,{children:f},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:147,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:145,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"projectName",children:"Project Name"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:152,columnNumber:13},this),i.jsxDEV(Ut,{id:"projectName",value:c,onChange:y=>p(y.target.value),placeholder:"My New Project",disabled:x.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:153,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:151,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"projectDescription",children:"Description (optional)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:163,columnNumber:13},this),i.jsxDEV(Gi,{id:"projectDescription",value:l,onChange:y=>d(y.target.value),placeholder:"A brief description of your project",rows:2,disabled:x.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:164,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:162,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"rootPath",children:"Root Path"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:175,columnNumber:13},this),i.jsxDEV(Ut,{id:"rootPath",value:h,onChange:y=>v(y.target.value),placeholder:"/path/to/project",disabled:x.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:176,columnNumber:13},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"The directory where your project files are located"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:183,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:174,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:143,columnNumber:9},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{variant:"outline",onClick:g,disabled:x.isPending,children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:190,columnNumber:11},this),i.jsxDEV(ce,{onClick:N,disabled:!c.trim()||!h.trim()||x.isPending,children:x.isPending?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Dt,{className:"mr-2 h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:199,columnNumber:17},this),"Creating..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:198,columnNumber:15},this):"Create Project"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:193,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:189,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:132,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:131,columnNumber:5},this)}async function Due(e){const t=await fetch(`/api/registry/templates/${encodeURIComponent(e)}`);if(!t.ok){if(t.status===404)return null;throw new Error("Failed to fetch template details")}return t.json()}async function Sue(e){const t=await fetch(`/api/registry/projects/${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch projects");return t.json()}async function _ue(){const e=await fetch("/health");if(!e.ok)return null;const t=await e.json();return(t==null?void 0:t.version)||null}function Cue(e,t){if(!e||!t)return!0;try{return!Xm(t,e)}catch{return!0}}const t9=200;function jue({slug:e,onClose:t}){const[s,a]=b.useState(!1),[o,c]=b.useState(!1),[p,l]=b.useState(!1),{data:d,isLoading:h,error:v}=rt({queryKey:["registry-template",e],queryFn:()=>Due(e),enabled:!!e}),{data:f}=rt({queryKey:["registry-projects-using",e],queryFn:()=>Sue(e),enabled:!!e}),{data:E}=rt({queryKey:["health"],queryFn:_ue,staleTime:1/0}),w=d==null?void 0:d.template,C=(d==null?void 0:d.versions)||[],S=C.find(y=>y.isLatest),x=(f==null?void 0:f.projects)||[],N=Cue((S==null?void 0:S.minDevchainVersion)??null,E??null),g=y=>S?y!==S.version:!1;return i.jsxDEV(Ds,{open:!!e,onOpenChange:y=>!y&&t(),children:i.jsxDEV(ys,{className:"max-h-[90vh] max-w-2xl overflow-hidden p-0",children:h?i.jsxDEV("div",{className:"p-6",children:[i.jsxDEV(Vb,{children:i.jsxDEV(es,{children:"Loading Template Details"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:171,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:170,columnNumber:13},this),i.jsxDEV(qt,{className:"mb-2 h-8 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:173,columnNumber:13},this),i.jsxDEV(qt,{className:"mb-4 h-4 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:174,columnNumber:13},this),i.jsxDEV(qt,{className:"h-32 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:175,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:169,columnNumber:11},this):v?i.jsxDEV("div",{className:"p-6",children:[i.jsxDEV(Vb,{children:i.jsxDEV(es,{children:"Error Loading Template"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:180,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:179,columnNumber:13},this),i.jsxDEV("p",{className:"text-destructive",children:"Failed to load template details"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:182,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:178,columnNumber:11},this):w?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(ns,{className:"border-b px-6 py-4",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(es,{className:"text-lg",children:w.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:195,columnNumber:17},this),w.isOfficial&&i.jsxDEV(Ze,{variant:"secondary",className:"gap-1 text-xs",children:[i.jsxDEV(ca,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:198,columnNumber:21},this),"Official"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:197,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:194,columnNumber:15},this),w.description&&i.jsxDEV("div",{className:"mt-2",children:w.description.length>t9?i.jsxDEV("div",{children:[i.jsxDEV(ds,{className:"whitespace-pre-line text-sm",children:o?w.description:`${w.description.slice(0,t9)}...`},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:208,columnNumber:23},this),i.jsxDEV(ce,{variant:"link",size:"sm",className:"h-auto p-0 text-xs",onClick:()=>c(!o),children:o?"Show less":"Show more"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:213,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:207,columnNumber:21},this):i.jsxDEV(ds,{className:"whitespace-pre-line text-sm",children:w.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:223,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:205,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:193,columnNumber:13},this),i.jsxDEV(Vn,{className:"max-h-[55vh]",children:i.jsxDEV("div",{className:"space-y-4 px-6 py-4",children:[i.jsxDEV("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-2 text-sm text-muted-foreground",children:[w.authorName&&i.jsxDEV("span",{className:"flex items-center gap-1",children:[i.jsxDEV(Ru,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:237,columnNumber:23},this),w.authorName]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:236,columnNumber:21},this),w.category&&i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:w.category},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:242,columnNumber:21},this),w.requiredProviders.length>0&&w.requiredProviders.map(y=>i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:y},y,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:248,columnNumber:23},this)),i.jsxDEV("span",{className:"flex items-center gap-1",children:[i.jsxDEV(JY,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:253,columnNumber:21},this),new Date(w.updatedAt).toLocaleDateString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:252,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:234,columnNumber:17},this),w.tags.length>0&&i.jsxDEV("div",{className:"flex flex-wrap items-center gap-1 text-sm",children:[i.jsxDEV("span",{className:"text-muted-foreground",children:"Tags:"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:261,columnNumber:21},this),w.tags.map(y=>i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:y},y,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:263,columnNumber:23},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:260,columnNumber:19},this),x.length>0&&i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Jm,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:273,columnNumber:21},this),i.jsxDEV("div",{children:[i.jsxDEV(ce,{variant:"ghost",size:"sm",className:"h-auto w-full justify-between p-0 font-medium hover:bg-transparent",onClick:()=>l(!p),children:[i.jsxDEV("span",{className:"text-sm",children:["Installed In (",x.length," project",x.length>1?"s":"",")"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:281,columnNumber:25},this),p?i.jsxDEV(Nf,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:286,columnNumber:27},this):i.jsxDEV(Ua,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:288,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:275,columnNumber:23},this),p&&i.jsxDEV("div",{className:"mt-2 space-y-1",children:x.map(y=>{const _=g(y.installedVersion),P=y.projectName||`ID: ${y.projectId.slice(0,8)}...`;return i.jsxDEV("div",{className:"flex items-center justify-between rounded-md border px-2 py-1.5 text-sm",title:`Project ID: ${y.projectId}`,children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(Vd,{className:"h-3.5 w-3.5 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:304,columnNumber:35},this),i.jsxDEV("span",{children:P},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:305,columnNumber:35},this),i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:["v",y.installedVersion]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:306,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:303,columnNumber:33},this),_&&i.jsxDEV(Ze,{variant:"default",className:"gap-1 text-xs",children:[i.jsxDEV(Ni,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:312,columnNumber:37},this),"Update"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:311,columnNumber:35},this)]},y.projectId,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:298,columnNumber:31},this)})},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:292,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:274,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:272,columnNumber:19},this),i.jsxDEV(Jm,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:325,columnNumber:17},this),i.jsxDEV("div",{children:[i.jsxDEV("h4",{className:"mb-2 text-sm font-medium",children:"Versions"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:329,columnNumber:19},this),i.jsxDEV(yue,{versions:C,slug:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:330,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:328,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:232,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:231,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center justify-end gap-2 border-t p-4",children:[i.jsxDEV(ce,{variant:"outline",onClick:t,children:"Close"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:337,columnNumber:15},this),i.jsxDEV(wo,{children:!N&&(S!=null&&S.minDevchainVersion)?i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV("span",{children:i.jsxDEV(ce,{disabled:!0,children:[i.jsxDEV($i,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:346,columnNumber:27},this),"Incompatible Version"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:345,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:344,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:343,columnNumber:21},this),i.jsxDEV(kr,{children:i.jsxDEV("p",{children:["Requires Devchain v",S.minDevchainVersion,"+",i.jsxDEV("br",{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:354,columnNumber:25},this),"Current: v",E]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:352,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:351,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:342,columnNumber:19},this):i.jsxDEV(ce,{onClick:()=>a(!0),disabled:!S,children:[i.jsxDEV(Ki,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:361,columnNumber:21},this),"Create New Project"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:360,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:340,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:336,columnNumber:13},this),S&&i.jsxDEV(Eue,{slug:e,version:S.version,templateName:w.name,open:s,onClose:()=>a(!1)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:370,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:192,columnNumber:11},this):i.jsxDEV("div",{className:"p-6",children:[i.jsxDEV(Vb,{children:i.jsxDEV(es,{children:"Template Not Found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:187,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:186,columnNumber:13},this),i.jsxDEV("p",{className:"text-muted-foreground",children:"Template not found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:189,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:185,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:167,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:166,columnNumber:5},this)}async function Pue(e){var o,c;const t=await fetch(`/api/registry/templates/${encodeURIComponent(e)}`);if(!t.ok)throw new Error(`Registry request failed: ${t.status}`);const s=await t.json();if(!s)return null;const a=((c=(o=s.versions)==null?void 0:o.find(p=>p.isLatest))==null?void 0:c.version)??null;return{slug:e,latestVersion:a}}async function Tue(e){if(e.source==="registry"&&!e.latestVersion)return{status:"idle"};let t;try{t=await Pue(e.slug)}catch{return{status:"offline"}}if(!t)return{status:"not-in-registry"};if(!t.latestVersion)return{status:"not-in-registry"};if(e.source==="bundled"&&e.latestVersion)try{return Xm(e.latestVersion,t.latestVersion)?{status:"update-available",remoteVersion:t.latestVersion}:{status:"up-to-date"}}catch{return{status:"up-to-date"}}if(e.source==="bundled")return{status:"update-available",remoteVersion:t.latestVersion};try{return Xm(e.latestVersion,t.latestVersion)?{status:"update-available",remoteVersion:t.latestVersion}:{status:"up-to-date"}}catch{return{status:"up-to-date"}}}async function Vue(e){if(e.length===0)return{};const t=await Promise.allSettled(e.map(async a=>{const o=await Tue(a);return{slug:a.slug,status:o}})),s={};for(const a of t)a.status==="fulfilled"&&(s[a.value.slug]=a.value.status);return s}async function Rue(){const e=await fetch("/api/templates");if(!e.ok)throw new Error("Failed to fetch templates");return e.json()}async function kue(e,t){const s=await fetch(`/api/templates/${encodeURIComponent(e)}/versions/${encodeURIComponent(t)}`,{method:"DELETE"});if(!s.ok){const a=await s.json().catch(()=>({message:"Failed to delete version"}));throw new Error(a.message||"Failed to delete version")}}async function Aue(e,t){const s=await fetch(`/api/registry/download/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:"POST"});if(!s.ok){const a=await s.json().catch(()=>({message:"Failed to download template"}));throw new Error(a.message||"Failed to download template")}}function Mue({status:e,source:t,onDownload:s,isDownloading:a}){const o=t==="bundled";switch(e.status){case"checking":return i.jsxDEV(Ze,{variant:"outline",className:"gap-1 text-muted-foreground",children:[i.jsxDEV(PN,{className:"h-3 w-3 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:103,columnNumber:11},this),"Checking..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:102,columnNumber:9},this);case"update-available":return i.jsxDEV(ce,{size:"sm",variant:"default",className:"h-6 gap-1 bg-blue-600 hover:bg-blue-700 text-xs",onClick:c=>{c.stopPropagation(),s==null||s()},disabled:a,children:a?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Dt,{className:"h-3 w-3 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:121,columnNumber:15},this),"Downloading..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:120,columnNumber:13},this):i.jsxDEV(i.Fragment,{children:[i.jsxDEV(bu,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:126,columnNumber:15},this),"Download v",e.remoteVersion]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:125,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:109,columnNumber:9},this);case"up-to-date":return i.jsxDEV(Ze,{variant:"outline",className:"gap-1 text-green-600 border-green-600/50",children:[i.jsxDEV(ca,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:135,columnNumber:11},this),"Up to date"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:134,columnNumber:9},this);case"offline":return o?null:i.jsxDEV(Ze,{variant:"outline",className:"gap-1 text-muted-foreground",children:[i.jsxDEV(Ni,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:146,columnNumber:11},this),"Offline"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:145,columnNumber:9},this);case"not-in-registry":return i.jsxDEV(Ze,{variant:"outline",className:"gap-1 text-muted-foreground text-xs",children:"Not in registry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:153,columnNumber:9},this);default:return null}}function Oue({template:e,updateStatus:t,onRemoveVersion:s,deletingVersion:a,onDownload:o,isDownloading:c}){var C,S;const[p,l]=b.useState(!1),d=`template-versions-${e.slug}`,h=e.source==="bundled",v=e.versions&&e.versions.length>0,f=!h&&v,E=x=>{f&&(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),l(!p))},w=()=>{f&&l(!p)};return i.jsxDEV("div",{className:"rounded-lg border bg-card",children:[i.jsxDEV("div",{role:f?"button":void 0,tabIndex:f?0:void 0,className:`flex w-full items-center justify-between p-4 text-left ${f?"hover:bg-muted/50 cursor-pointer":""}`,onClick:w,onKeyDown:E,"aria-expanded":f?p:void 0,"aria-controls":f?d:void 0,children:[i.jsxDEV("div",{className:"flex items-center gap-3",children:[i.jsxDEV(Nu,{className:"h-5 w-5 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:215,columnNumber:11},this),i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV("span",{className:"font-medium",children:e.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:218,columnNumber:15},this),i.jsxDEV(Ze,{variant:h?"outline":"secondary",className:"text-xs",children:h?"Bundled":"Downloaded"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:219,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:217,columnNumber:13},this),i.jsxDEV("div",{className:"text-sm text-muted-foreground",children:h?"Built-in template":i.jsxDEV(i.Fragment,{children:[((C=e.versions)==null?void 0:C.length)||0," version",(((S=e.versions)==null?void 0:S.length)||0)!==1?"s":""," cached"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:227,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:223,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:216,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:214,columnNumber:9},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(Mue,{status:t,source:e.source,onDownload:t.status==="update-available"?()=>o(e.slug,t.remoteVersion):void 0,isDownloading:c},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:236,columnNumber:11},this),e.latestVersion&&i.jsxDEV(Ze,{variant:"secondary",children:["v",e.latestVersion]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:246,columnNumber:38},this),f&&(p?i.jsxDEV(Ua,{className:"h-4 w-4 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:249,columnNumber:15},this):i.jsxDEV(Vu,{className:"h-4 w-4 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:251,columnNumber:15},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:235,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:205,columnNumber:7},this),f&&p&&i.jsxDEV("div",{id:d,className:"border-t px-4 py-3",children:[i.jsxDEV("div",{className:"mb-2 text-sm font-medium text-muted-foreground",children:"Cached Versions"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:258,columnNumber:11},this),i.jsxDEV("div",{className:"flex flex-wrap gap-2",children:e.versions.map(x=>i.jsxDEV("div",{className:"flex items-center gap-1",children:[i.jsxDEV(Ze,{variant:x===e.latestVersion?"default":"outline",className:"gap-1",children:[i.jsxDEV(bu,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:266,columnNumber:19},this),"v",x]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:262,columnNumber:17},this),i.jsxDEV(ce,{variant:"ghost",size:"icon",className:"h-5 w-5 text-muted-foreground hover:text-destructive",onClick:N=>{N.stopPropagation(),s(e.slug,x)},disabled:a===x,children:i.jsxDEV(vl,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:278,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:268,columnNumber:17},this)]},x,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:261,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:259,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:257,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:204,columnNumber:5},this)}function Lue(){return i.jsxDEV("div",{className:"space-y-3",children:[1,2,3].map(e=>i.jsxDEV("div",{className:"rounded-lg border p-4",children:i.jsxDEV("div",{className:"flex items-center gap-3",children:[i.jsxDEV(qt,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:298,columnNumber:13},this),i.jsxDEV("div",{className:"flex-1",children:[i.jsxDEV(qt,{className:"mb-2 h-4 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:300,columnNumber:15},this),i.jsxDEV(qt,{className:"h-3 w-24"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:301,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:299,columnNumber:13},this),i.jsxDEV(qt,{className:"h-5 w-16"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:303,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:297,columnNumber:11},this)},e,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:296,columnNumber:9},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:294,columnNumber:5},this)}function Iue(){return i.jsxDEV("div",{className:"flex flex-col items-center justify-center rounded-lg border border-dashed p-8 text-center",children:[i.jsxDEV(Nu,{className:"mb-3 h-10 w-10 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:317,columnNumber:7},this),i.jsxDEV("div",{className:"mb-1 font-medium",children:"No installed templates"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:318,columnNumber:7},this),i.jsxDEV("div",{className:"text-sm text-muted-foreground",children:"Download templates from the registry or add bundled templates"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:319,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:316,columnNumber:5},this)}function Fue(){const e=Zs(),{toast:t}=ci(),{data:s,isLoading:a,error:o}=rt({queryKey:["unified-templates"],queryFn:Rue}),[c,p]=b.useState({}),[l,d]=b.useState(null),h=Ct({mutationFn:({slug:N,version:g})=>kue(N,g),onSuccess:()=>{e.invalidateQueries({queryKey:["unified-templates"]}),t({title:"Success",description:"Template version removed successfully"}),d(null)},onError:N=>{t({title:"Error",description:N instanceof Error?N.message:"Failed to remove version",variant:"destructive"}),d(null)}}),v=(N,g)=>{d({slug:N,version:g})},f=()=>{l&&h.mutate(l)},[E,w]=b.useState(null),C=Ct({mutationFn:({slug:N,version:g})=>Aue(N,g),onMutate:({slug:N})=>{w(N)},onSuccess:(N,{slug:g,version:y})=>{e.invalidateQueries({queryKey:["unified-templates"]}),t({title:"Success",description:`Downloaded version ${y} successfully`}),w(null),p(_=>({..._,[g]:{status:"up-to-date"}}))},onError:N=>{t({title:"Error",description:N instanceof Error?N.message:"Failed to download template",variant:"destructive"}),w(null)}}),S=(N,g)=>{C.mutate({slug:N,version:g})},x=(s==null?void 0:s.templates)||[];return b.useEffect(()=>{if(x.length===0)return;const N={};x.forEach(y=>{N[y.slug]={status:"checking"}}),p(N),(async()=>{const y=await Vue(x);p(y)})()},[s]),a?i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV(_i,{className:"flex items-center gap-2",children:[i.jsxDEV(Nu,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:442,columnNumber:13},this),"Installed Templates"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:441,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:440,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV(Lue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:447,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:446,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:439,columnNumber:7},this):o?i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV(_i,{className:"flex items-center gap-2",children:[i.jsxDEV(Nu,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:458,columnNumber:13},this),"Installed Templates"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:457,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:456,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-4 text-center text-sm text-destructive",children:"Failed to load templates. Please try again later."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:463,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:462,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:455,columnNumber:7},this):i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV(_i,{className:"flex items-center gap-2",children:[i.jsxDEV(Nu,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:475,columnNumber:11},this),"Installed Templates",x.length>0&&i.jsxDEV(Ze,{variant:"secondary",className:"ml-2",children:x.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:478,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:474,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:473,columnNumber:7},this),i.jsxDEV(Ks,{className:"max-h-[280px] overflow-y-auto",children:x.length===0?i.jsxDEV(Iue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:486,columnNumber:11},this):i.jsxDEV("div",{className:"space-y-3",children:x.map(N=>i.jsxDEV(Oue,{template:N,updateStatus:c[N.slug]||{status:"idle"},onRemoveVersion:v,deletingVersion:(l==null?void 0:l.slug)===N.slug&&h.isPending?l.version:null,onDownload:S,isDownloading:E===N.slug&&C.isPending},N.slug,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:490,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:488,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:484,columnNumber:7},this),i.jsxDEV(qb,{open:l!==null,onOpenChange:N=>{N||d(null)},onConfirm:f,title:"Remove template version",description:l?`Are you sure you want to remove version ${l.version} of "${l.slug}"? This will delete the cached files from disk.`:"Are you sure you want to remove this version?",confirmText:"Remove",variant:"destructive",loading:h.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:508,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:472,columnNumber:5},this)}const Bue=!1;async function zue(){const e=await fetch("/api/registry/status");if(!e.ok)throw new Error("Failed to check registry status");return e.json()}async function Uue(e){const t=new URLSearchParams;e.search&&t.set("search",e.search),e.category&&t.set("category",e.category);const s=`/api/registry/templates${t.toString()?`?${t}`:""}`,a=await fetch(s);if(!a.ok)throw new Error("Failed to fetch templates");return a.json()}function $ue(e,t){const[s,a]=b.useState(e);return b.useEffect(()=>{const o=setTimeout(()=>{a(e)},t);return()=>{clearTimeout(o)}},[e,t]),s}function Hue(){const[e,t]=b.useState(""),[s,a]=b.useState(),[o,c]=b.useState(),p=$ue(e,300),{data:l}=rt({queryKey:["registry-status"],queryFn:zue,refetchInterval:6e4,staleTime:3e4}),{data:d,isLoading:h,error:v}=rt({queryKey:["registry-templates",p,s],queryFn:()=>Uue({search:p||void 0,category:s})}),f=b.useMemo(()=>(d==null?void 0:d.templates)||[],[d]);return i.jsxDEV("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[i.jsxDEV("div",{className:"mb-6 flex-shrink-0",children:i.jsxDEV("div",{className:"flex items-center gap-3",children:[i.jsxDEV(Nu,{className:"h-8 w-8 text-primary"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:104,columnNumber:11},this),i.jsxDEV("div",{children:[i.jsxDEV("h1",{className:"text-2xl font-bold",children:"Template Registry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:106,columnNumber:13},this),i.jsxDEV("p",{className:"text-muted-foreground",children:"Browse and install project templates"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:107,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:105,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:103,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:102,columnNumber:7},this),l&&!l.available&&i.jsxDEV(wi,{variant:"destructive",className:"mb-4",children:[i.jsxDEV($i,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:115,columnNumber:11},this),i.jsxDEV(Ei,{children:"Registry unavailable. Showing cached templates only."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:116,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:114,columnNumber:9},this),i.jsxDEV("div",{className:"mb-8 flex-shrink-0",children:i.jsxDEV(Fue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:122,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:121,columnNumber:7},this),Bue,i.jsxDEV("div",{className:"mb-4 flex-shrink-0",children:[i.jsxDEV("h2",{className:"flex items-center gap-2 text-lg font-semibold",children:[i.jsxDEV(LQ,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:140,columnNumber:11},this),"Browse Registry"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:139,columnNumber:9},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Discover and download templates from the online registry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:143,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:138,columnNumber:7},this),i.jsxDEV("div",{className:"flex-1 min-h-0 overflow-auto",children:h?i.jsxDEV(rue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:151,columnNumber:11},this):v?i.jsxDEV("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsxDEV($i,{className:"mb-4 h-12 w-12 text-destructive"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:154,columnNumber:13},this),i.jsxDEV("p",{className:"text-lg font-medium text-destructive",children:"Failed to load templates"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:155,columnNumber:13},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Please check your connection and try again"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:156,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:153,columnNumber:11},this):i.jsxDEV(iue,{templates:f,onSelect:c},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:161,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:149,columnNumber:7},this),i.jsxDEV(jue,{slug:o,onClose:()=>c(void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:166,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:100,columnNumber:5},this)}function Wue(){return i.jsxDEV(N4,{children:i.jsxDEV(Bi,{path:"/*",element:i.jsxDEV(LW,{children:i.jsxDEV(Nre,{children:i.jsxDEV(N4,{children:[i.jsxDEV(Bi,{path:"/",element:i.jsxDEV(SH,{to:"/projects",replace:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:34,columnNumber:42},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:34,columnNumber:17},this),i.jsxDEV(Bi,{path:"/projects",element:i.jsxDEV(sae,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:35,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:35,columnNumber:17},this),i.jsxDEV(Bi,{path:"/registry",element:i.jsxDEV(Hue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:36,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:36,columnNumber:17},this),i.jsxDEV(Bi,{path:"/documents",element:i.jsxDEV(eue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:37,columnNumber:51},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:37,columnNumber:17},this),i.jsxDEV(Bi,{path:"/prompts",element:i.jsxDEV(uae,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:38,columnNumber:49},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:38,columnNumber:17},this),i.jsxDEV(Bi,{path:"/profiles",element:i.jsxDEV(Eae,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:39,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:39,columnNumber:17},this),i.jsxDEV(Bi,{path:"/providers",element:i.jsxDEV(Pae,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:40,columnNumber:51},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:40,columnNumber:17},this),i.jsxDEV(Bi,{path:"/agents",element:i.jsxDEV(loe,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:41,columnNumber:48},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:41,columnNumber:17},this),i.jsxDEV(Bi,{path:"/statuses",element:i.jsxDEV(voe,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:42,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:42,columnNumber:17},this),i.jsxDEV(Bi,{path:"/board",element:i.jsxDEV(Xoe,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:43,columnNumber:47},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:43,columnNumber:17},this),i.jsxDEV(Bi,{path:"/chat",element:i.jsxDEV(qle,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:44,columnNumber:46},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:44,columnNumber:17},this),i.jsxDEV(Bi,{path:"/reviews",element:i.jsxDEV(wq,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:45,columnNumber:49},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:45,columnNumber:17},this),i.jsxDEV(Bi,{path:"/reviews/:reviewId",element:i.jsxDEV(Zce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:46,columnNumber:59},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:46,columnNumber:17},this),i.jsxDEV(Bi,{path:"/records",element:i.jsxDEV(tue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:47,columnNumber:49},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:47,columnNumber:17},this),i.jsxDEV(Bi,{path:"/epics/:id",element:i.jsxDEV(ple,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:48,columnNumber:51},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:48,columnNumber:17},this),i.jsxDEV(Bi,{path:"/events",element:i.jsxDEV(sce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:49,columnNumber:48},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:49,columnNumber:17},this),i.jsxDEV(Bi,{path:"/messages",element:i.jsxDEV(Dce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:50,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:50,columnNumber:17},this),i.jsxDEV(Bi,{path:"/automation",element:i.jsxDEV(Yce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:51,columnNumber:52},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:51,columnNumber:17},this),i.jsxDEV(Bi,{path:"/settings",element:i.jsxDEV(Zle,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:52,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:52,columnNumber:17},this),i.jsxDEV(Bi,{path:"*",element:i.jsxDEV(Jce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:53,columnNumber:42},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:53,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:33,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:32,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:31,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:28,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:26,columnNumber:5},this)}const que=new PW({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}});try{const e=qR();KR(e??"ocean")}catch{}iE.createRoot(document.getElementById("root")).render(i.jsxDEV(tl.StrictMode,{children:i.jsxDEV(TW,{client:que,children:i.jsxDEV(QH,{children:i.jsxDEV(Wue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/entry-client.tsx",lineNumber:30,columnNumber:9},void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/entry-client.tsx",lineNumber:29,columnNumber:7},void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/entry-client.tsx",lineNumber:28,columnNumber:5},void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/entry-client.tsx",lineNumber:27,columnNumber:3},void 0));export{Lle as $,NS as A,Ze as B,xne as C,pH as D,SN as E,Vd as F,qn as G,GJ as H,re as I,st as J,qQ as K,tl as L,$b as M,Mr as N,BN as O,Ot as P,NV as Q,PN as R,Vs as S,wo as T,hf as U,bV as V,eS as W,ha as X,TN as Y,Ut as Z,Vn as _,Pe as a,vl as a0,Gi as a1,j7 as a2,vle as a3,Td as a4,ZD as a5,Dt as a6,tS as a7,ZN as a8,JN as a9,cT as aA,RN as aB,Pq as aC,$e as aD,gk as aE,YS as aF,Km as aG,UE as aH,RJ as aI,EZ as aJ,$E as aK,kQ as aL,Um as aM,Ec as aN,V7 as aa,Vf as ab,fl as ac,xc as ad,Tn as ae,Ds as af,ys as ag,ns as ah,es as ai,ds as aj,Ss as ak,ca as al,Ru as am,Ki as an,nV as ao,CN as ap,Jue as aq,lT as ar,tpe as as,uS as at,_s as au,epe as av,kN as aw,Sq as ax,AN as ay,MN as az,yne as b,mt as c,Ua as d,Vu as e,wne as f,Zs as g,ci as h,fr as i,i as j,rt as k,Pf as l,Ct as m,ce as n,js as o,Ls as p,Ps as q,b as r,Rt as s,Wr as t,gn as u,qr as v,kr as w,Ni as x,qt as y,Yb as z};
914
+ `);z(Ee)},placeholder:"\\n---\\n",disabled:!M||Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:768,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Text inserted between batched messages. Use \\n for newlines."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:780,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:766,columnNumber:13},this),i.jsxDEV("div",{children:i.jsxDEV(ce,{disabled:K===""||q<U||Q.isPending,onClick:()=>{if(K==="")return;const me=Math.max(UP,Math.min(Number(K),$P)),Ee=Math.max(LP,Math.min(U,IP)),Fe=Math.max(Ee,Math.min(q,BP));Q.mutate({enabled:M,delayMs:Ee,maxWaitMs:Fe,maxMessages:me,separator:B})},children:Q.isPending?i.jsxDEV("span",{className:"inline-flex items-center gap-2",children:[i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:818,columnNumber:21},this)," Saving…"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:817,columnNumber:19},this):"Save"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:787,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:786,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:655,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:654,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:646,columnNumber:7},this),i.jsxDEV(Bs,{className:"mb-6",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Events"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:832,columnNumber:11},this),i.jsxDEV(Li,{children:"Customize agent notifications triggered by events."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:833,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:831,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"epic-assigned-template",children:"Epic Assigned message"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:838,columnNumber:15},this),i.jsxDEV(Gi,{id:"epic-assigned-template",value:_,onChange:me=>P(me.target.value),placeholder:WP,rows:5,className:"font-mono text-sm"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:839,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Leave blank to use the default message. Supports the placeholders below."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:847,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:837,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(ce,{onClick:()=>J.mutate({template:_}),disabled:!te||J.isPending,children:J.isPending?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:859,columnNumber:21},this),"Saving…"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:858,columnNumber:19},this):"Save"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:853,columnNumber:15},this),i.jsxDEV(ce,{type:"button",variant:"ghost",onClick:()=>P(WP),disabled:J.isPending,children:"Reset to default"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:866,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:852,columnNumber:13},this),i.jsxDEV("div",{className:"rounded-lg border bg-muted/30 p-4",children:[i.jsxDEV("p",{className:"text-sm font-semibold mb-2",children:"Available placeholders"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:877,columnNumber:15},this),i.jsxDEV("ul",{className:"space-y-1 text-sm text-muted-foreground",children:Xle.map(({token:me,description:Ee})=>i.jsxDEV("li",{children:[i.jsxDEV("code",{className:"font-mono text-xs mr-2",children:me},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:881,columnNumber:21},this),Ee]},me,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:880,columnNumber:19},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:878,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:876,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:836,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:835,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:830,columnNumber:7},this),i.jsxDEV(Bs,{className:"mb-6",children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"System Preflight Checks"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:896,columnNumber:15},this),i.jsxDEV(Li,{children:"Verify that all required dependencies and configurations are correct"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:897,columnNumber:15},this),e&&i.jsxDEV("p",{className:"mt-2 text-xs text-muted-foreground",children:["Target project:"," ",i.jsxDEV("span",{className:"font-semibold text-foreground",children:e.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:903,columnNumber:19},this),i.jsxDEV("span",{className:"ml-2 font-mono text-[11px] text-muted-foreground/80",children:e.rootPath},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:904,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:901,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:895,columnNumber:13},this),i.jsxDEV(ce,{variant:"outline",size:"sm",onClick:()=>c(),disabled:l,children:[l?i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:917,columnNumber:17},this):i.jsxDEV(PN,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:919,columnNumber:17},this),"Refresh"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:910,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:894,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:893,columnNumber:9},this),i.jsxDEV(Ks,{children:[p&&i.jsxDEV("div",{className:"flex items-center justify-center py-8",children:[i.jsxDEV(Dt,{className:"h-6 w-6 animate-spin text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:928,columnNumber:15},this),i.jsxDEV("span",{className:"ml-2 text-muted-foreground",children:"Running preflight checks..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:929,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:927,columnNumber:13},this),o&&i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV(wi,{variant:o.overall==="fail"?"destructive":"default",children:[tE(o.overall),i.jsxDEV(pn,{children:["Overall Status: ",o.overall.toUpperCase()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:938,columnNumber:17},this),i.jsxDEV(Ei,{children:[o.overall==="pass"&&"All systems operational",o.overall==="warn"&&"Some checks have warnings",o.overall==="fail"&&"Some checks failed. Session launch will be blocked."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:939,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:936,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-3",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"System Checks"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:949,columnNumber:17},this),o.checks.map(me=>i.jsxDEV(Bs,{className:me.status==="fail"?"border-destructive":me.status==="warn"?"border-yellow-600":"border-green-600",children:i.jsxDEV(Ks,{className:"pt-4",children:i.jsxDEV("div",{className:"flex items-start gap-3",children:[i.jsxDEV("div",{className:"mt-0.5",children:tE(me.status)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:965,columnNumber:25},this),i.jsxDEV("div",{className:"flex-1",children:[i.jsxDEV("h4",{className:"font-semibold mb-1",children:me.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:967,columnNumber:27},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground mb-2",children:me.message},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:968,columnNumber:27},this),me.details&&i.jsxDEV("div",{className:"text-xs bg-muted p-2 rounded font-mono",children:me.details},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:970,columnNumber:29},this),me.remediation&&i.jsxDEV("div",{className:"mt-2 text-xs text-muted-foreground",children:[i.jsxDEV("strong",{children:"How to fix:"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:976,columnNumber:31},this)," ",me.remediation]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:975,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:966,columnNumber:25},this),i.jsxDEV(Ze,{variant:me.status==="pass"?"default":me.status==="fail"?"destructive":"secondary",children:me.status.toUpperCase()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:980,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:964,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:963,columnNumber:21},this)},me.name,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:953,columnNumber:19},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:948,columnNumber:15},this),o.providers&&o.providers.length>0&&i.jsxDEV("div",{className:"space-y-3 mt-6",children:[i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Provider Checks"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1001,columnNumber:21},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:[o.providers.length," provider",o.providers.length!==1?"s":""," configured"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1004,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1e3,columnNumber:19},this),o.providers.map(me=>i.jsxDEV(Bs,{className:me.status==="fail"?"border-destructive":me.status==="warn"?"border-yellow-600":"border-green-600",children:i.jsxDEV(Ks,{className:"pt-4",children:i.jsxDEV("div",{className:"flex items-start gap-3",children:[i.jsxDEV("div",{className:"mt-0.5",children:tE(me.status)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1022,columnNumber:27},this),i.jsxDEV("div",{className:"flex-1 space-y-2",children:[i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("h4",{className:"font-semibold",children:me.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1025,columnNumber:31},this),i.jsxDEV(Ze,{variant:me.status==="pass"?"default":me.status==="fail"?"destructive":"secondary",children:me.status.toUpperCase()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1026,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1024,columnNumber:29},this),me.binPath&&i.jsxDEV("div",{className:"text-xs bg-muted p-2 rounded font-mono",children:me.binPath},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1039,columnNumber:31},this),i.jsxDEV("div",{className:"flex flex-col gap-2",children:[i.jsxDEV("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxDEV(Ze,{variant:"secondary",className:me.binaryStatus==="fail"?"border border-destructive bg-destructive/10 text-destructive":me.binaryStatus==="warn"?"border border-yellow-600 bg-yellow-500/10 text-yellow-700":"border border-emerald-500 bg-emerald-500/10 text-emerald-600",children:["Binary ",me.binaryStatus.toUpperCase()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1045,columnNumber:33},this),i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:me.binaryMessage},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1057,columnNumber:33},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1044,columnNumber:31},this),me.mcpStatus&&i.jsxDEV("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxDEV(Ze,{variant:"secondary",className:me.mcpStatus==="fail"?"border border-destructive bg-destructive/10 text-destructive":me.mcpStatus==="warn"?"border border-yellow-600 bg-yellow-500/10 text-yellow-700":"border border-emerald-500 bg-emerald-500/10 text-emerald-600",children:["MCP ",me.mcpStatus.toUpperCase()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1063,columnNumber:35},this),i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:me.mcpMessage??"MCP not required."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1075,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1062,columnNumber:33},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1043,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1023,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1021,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1020,columnNumber:23},this)},me.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1010,columnNumber:21},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:999,columnNumber:17},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground mt-4",children:["Last checked: ",new Date(o.timestamp).toLocaleString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1091,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:934,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:925,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:892,columnNumber:7},this),i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Provider Management"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1102,columnNumber:11},this),i.jsxDEV(Li,{children:"Configure AI provider binaries and settings"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1103,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1101,columnNumber:9},this),i.jsxDEV(Ks,{children:[i.jsxDEV(wi,{children:[i.jsxDEV(Ni,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1107,columnNumber:13},this),i.jsxDEV(pn,{children:"Manage Providers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1108,columnNumber:13},this),i.jsxDEV(Ei,{children:["Provider configurations, including binary paths, are now managed through the dedicated"," ",i.jsxDEV("a",{href:"/providers",className:"font-semibold underline hover:text-primary",children:"Providers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1111,columnNumber:15},this)," ","page. You can add, edit, and configure provider binaries there."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1109,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1106,columnNumber:11},this),i.jsxDEV("div",{className:"mt-4",children:i.jsxDEV(ce,{variant:"outline",onClick:()=>window.location.href="/providers",children:"Go to Providers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1118,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1117,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1105,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:1100,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/SettingsPage.tsx",lineNumber:356,columnNumber:5},this)}const $p={name:"",handler:"",status:"all",timeRange:"1h"},Jle=[{label:"Last hour",value:"1h"},{label:"Last 24 hours",value:"24h"},{label:"Last 7 days",value:"7d"},{label:"Last 30 days",value:"30d"},{label:"All time",value:"all"}];async function ece(e){const t=new URLSearchParams;e.name&&t.set("name",e.name),e.handler&&t.set("handler",e.handler),e.status&&t.set("status",e.status),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to),e.limit!==void 0&&t.set("limit",String(e.limit)),e.offset!==void 0&&t.set("offset",String(e.offset));const s=await fetch(`/api/events?${t.toString()}`);if(!s.ok)throw new Error("Failed to fetch events");return s.json()}function tce(e){if(e==="all")return{};const t=new Date;let s;switch(e){case"1h":s=new Date(t.getTime()-60*60*1e3);break;case"24h":s=new Date(t.getTime()-24*60*60*1e3);break;case"7d":s=new Date(t.getTime()-7*24*60*60*1e3);break;case"30d":s=new Date(t.getTime()-30*24*60*60*1e3);break;default:s=void 0;break}return s?{from:s.toISOString(),to:t.toISOString()}:{}}function qP(e){if(e==null)return"null";if(typeof e=="string")try{const t=JSON.parse(e);return JSON.stringify(t,null,2)}catch{return e}try{return JSON.stringify(e,null,2)}catch{return String(e)}}function KP(e){return e.reduce((t,s)=>(t.total+=1,s.status==="success"?t.success+=1:t.failure+=1,t),{total:0,success:0,failure:0})}function sce(){const e=Zs(),[t,s]=b.useState($p),[a,o]=b.useState({limit:50,offset:0}),[c,p]=b.useState(null);b.useEffect(()=>{o(R=>R.offset===0?R:{...R,offset:0})},[t.name,t.handler,t.status,t.timeRange]);const l=b.useCallback(R=>{if(!R)return;const{topic:j,type:T}=R;j==="events/logs"&&(T==="event_created"||T==="handler_recorded")&&e.invalidateQueries({queryKey:["eventLogs"]})},[e]);Ec({connect:()=>sr().emit("events:subscribe"),message:l},[l]);const d=b.useMemo(()=>tce(t.timeRange),[t.timeRange]),{data:h,isLoading:v,refetch:f,error:E}=rt({queryKey:["eventLogs",t,a],queryFn:()=>ece({name:t.name.trim()||void 0,handler:t.handler.trim()||void 0,status:t.status==="all"?void 0:t.status,...d,limit:a.limit,offset:a.offset})}),w=(h==null?void 0:h.items)??[],C=(h==null?void 0:h.total)??0,S=C===0?0:a.offset+1,x=a.offset+w.length,N=a.offset>0,g=a.offset+a.limit<C;b.useEffect(()=>{if(w.length===0){p(null);return}(!c||!w.some(R=>R.id===c))&&p(w[0].id)},[w,c]);const y=w.find(R=>R.id===c)??null,_=(y==null?void 0:y.handlers)??[],P=y?KP(y.handlers):null;return i.jsxDEV("div",{className:"space-y-6",children:[i.jsxDEV("div",{children:[i.jsxDEV("h1",{className:"text-3xl font-bold",children:"Events Viewer"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:245,columnNumber:9},this),i.jsxDEV("p",{className:"text-muted-foreground mt-2",children:"Monitor published events and handler outcomes in real time."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:246,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:244,columnNumber:7},this),i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Filters"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:253,columnNumber:11},this),i.jsxDEV(Li,{children:"Refine the events shown below."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:254,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:252,columnNumber:9},this),i.jsxDEV(Ks,{children:[i.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"filter-name",children:"Event name"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:259,columnNumber:15},this),i.jsxDEV(Ut,{id:"filter-name",value:t.name,onChange:R=>s(j=>({...j,name:R.target.value})),placeholder:"e.g. epic.updated"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:260,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:258,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"filter-handler",children:"Handler"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:268,columnNumber:15},this),i.jsxDEV(Ut,{id:"filter-handler",value:t.handler,onChange:R=>s(j=>({...j,handler:R.target.value})),placeholder:"e.g. EpicAssignmentNotifier"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:269,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:267,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Status"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:279,columnNumber:15},this),i.jsxDEV(Vs,{value:t.status,onValueChange:R=>s(j=>({...j,status:R})),children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{placeholder:"All statuses"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:287,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:286,columnNumber:17},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:290,columnNumber:19},this),i.jsxDEV(Rt,{value:"success",children:"Success"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:291,columnNumber:19},this),i.jsxDEV(Rt,{value:"failure",children:"Failure"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:292,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:289,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:280,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:278,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Time range"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:297,columnNumber:15},this),i.jsxDEV(Vs,{value:t.timeRange,onValueChange:R=>s(j=>({...j,timeRange:R})),children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{placeholder:"Select range"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:305,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:304,columnNumber:17},this),i.jsxDEV(Ps,{children:Jle.map(R=>i.jsxDEV(Rt,{value:R.value,children:R.label},R.value,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:309,columnNumber:21},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:307,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:298,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:296,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:257,columnNumber:11},this),i.jsxDEV("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[i.jsxDEV(ce,{onClick:()=>f(),variant:"outline",size:"sm",disabled:v,className:"flex items-center gap-2",children:[i.jsxDEV(PN,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:325,columnNumber:15},this),"Refresh"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:318,columnNumber:13},this),i.jsxDEV(ce,{onClick:()=>s($p),variant:"ghost",size:"sm",disabled:t.name===$p.name&&t.handler===$p.handler&&t.status===$p.status&&t.timeRange===$p.timeRange,children:"Clear filters"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:328,columnNumber:13},this),h?i.jsxDEV("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[i.jsxDEV(T7,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:343,columnNumber:17},this),i.jsxDEV("span",{children:["Showing ",C===0?0:`${S}–${x}`," of ",C," events"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:344,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:342,columnNumber:15},this):null]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:317,columnNumber:11},this),E instanceof Error&&i.jsxDEV("p",{className:"mt-4 text-sm text-destructive",children:["Failed to load events: ",E.message]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:351,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:256,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:251,columnNumber:7},this),i.jsxDEV("div",{className:"flex gap-6 h-[calc(100vh-24rem)]",children:[i.jsxDEV(Bs,{className:"flex-1 flex flex-col",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Event Log"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:360,columnNumber:13},this),i.jsxDEV(Li,{children:"Newest events appear first."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:361,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:359,columnNumber:11},this),i.jsxDEV(Ks,{className:"flex-1 flex flex-col min-h-0",children:[i.jsxDEV(Vn,{className:"flex-1 -mx-6 px-6",children:i.jsxDEV("div",{className:"overflow-hidden rounded-lg border",children:i.jsxDEV(yf,{children:[i.jsxDEV(wf,{children:i.jsxDEV(Kr,{children:[i.jsxDEV(tr,{className:"w-[200px]",children:"Published"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:369,columnNumber:23},this),i.jsxDEV(tr,{children:"Event"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:370,columnNumber:23},this),i.jsxDEV(tr,{className:"w-[160px] text-center",children:"Handlers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:371,columnNumber:23},this),i.jsxDEV(tr,{className:"w-[180px]",children:"Request ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:372,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:368,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:367,columnNumber:19},this),i.jsxDEV(Ef,{children:v&&w.length===0?i.jsxDEV(Kr,{children:i.jsxDEV(ti,{colSpan:4,className:"py-8 text-center text-muted-foreground",children:"Loading events..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:378,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:377,columnNumber:23},this):w.length===0?i.jsxDEV(Kr,{children:i.jsxDEV(ti,{colSpan:4,className:"py-12 text-center text-muted-foreground",children:"No events found. Adjust filters or wait for new activity."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:384,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:383,columnNumber:23},this):w.map(R=>{const j=KP(R.handlers),T=R.id===c;return i.jsxDEV(Kr,{className:Pe("cursor-pointer",T&&"bg-muted/60 hover:bg-muted/60"),onClick:()=>p(R.id),"aria-selected":T,children:[i.jsxDEV(ti,{className:"font-mono text-xs",children:new Date(R.publishedAt).toLocaleString()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:402,columnNumber:29},this),i.jsxDEV(ti,{children:i.jsxDEV("div",{className:"font-medium",children:R.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:406,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:405,columnNumber:29},this),i.jsxDEV(ti,{className:"text-center",children:i.jsxDEV("div",{className:"flex items-center justify-center gap-2",children:[i.jsxDEV(Ze,{variant:"outline",className:"border-emerald-500 text-emerald-600",children:[j.success," OK"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:410,columnNumber:33},this),i.jsxDEV(Ze,{variant:"outline",className:"border-destructive text-destructive",children:[j.failure," Fail"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:416,columnNumber:33},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:409,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:408,columnNumber:29},this),i.jsxDEV(ti,{className:"font-mono text-xs",children:R.requestId??"--"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:424,columnNumber:29},this)]},R.id,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:393,columnNumber:27},this)})},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:375,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:366,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:365,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:364,columnNumber:13},this),i.jsxDEV("div",{className:"mt-4 flex items-center justify-between gap-2 pt-4 border-t",children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:["Page ",Math.floor(a.offset/a.limit)+1," of"," ",Math.max(1,Math.ceil(C/a.limit))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:437,columnNumber:15},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(ce,{variant:"outline",size:"sm",onClick:()=>o(R=>({...R,offset:Math.max(0,R.offset-R.limit)})),disabled:!N||v,children:"Previous"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:442,columnNumber:17},this),i.jsxDEV(ce,{variant:"outline",size:"sm",onClick:()=>o(R=>({...R,offset:R.offset+R.limit})),disabled:!g||v,children:"Next"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:455,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:441,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:436,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:363,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:358,columnNumber:9},this),i.jsxDEV(Bs,{className:"flex-1 flex flex-col",children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Event Details"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:476,columnNumber:13},this),i.jsxDEV(Li,{children:"Inspect payload and handler results."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:477,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:475,columnNumber:11},this),i.jsxDEV(Ks,{className:"flex-1 min-h-0",children:i.jsxDEV(Vn,{className:"h-full -mx-6 px-6",children:y?i.jsxDEV("div",{className:"space-y-4 pr-4",children:[i.jsxDEV("div",{children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Overview"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:486,columnNumber:21},this),i.jsxDEV("div",{className:"mt-2 grid gap-3 sm:grid-cols-2",children:[i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"Event"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:491,columnNumber:25},this),i.jsxDEV("div",{className:"font-semibold",children:y.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:492,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:490,columnNumber:23},this),i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"Published"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:495,columnNumber:25},this),i.jsxDEV("div",{className:"font-mono text-xs",children:new Date(y.publishedAt).toLocaleString()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:496,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:494,columnNumber:23},this),i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"Request ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:501,columnNumber:25},this),i.jsxDEV("div",{className:"font-mono text-xs",children:y.requestId??"--"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:502,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:500,columnNumber:23},this),P&&i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"Handlers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:506,columnNumber:27},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(Ze,{variant:"outline",className:"border-emerald-500 text-emerald-600",children:[P.success," OK"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:508,columnNumber:29},this),i.jsxDEV(Ze,{variant:"outline",className:"border-destructive text-destructive",children:[P.failure," Fail"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:514,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:507,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:505,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:489,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:485,columnNumber:19},this),i.jsxDEV("div",{children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Payload"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:527,columnNumber:21},this),i.jsxDEV("pre",{className:"mt-2 h-48 overflow-auto rounded-lg border bg-muted/50 p-4 text-xs whitespace-pre-wrap break-all",children:qP(y.payload)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:530,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:526,columnNumber:19},this),i.jsxDEV("div",{children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Handlers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:536,columnNumber:21},this),_.length===0?i.jsxDEV("p",{className:"mt-2 text-sm text-muted-foreground",children:"No handlers recorded yet."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:540,columnNumber:23},this):i.jsxDEV("div",{className:"mt-2 space-y-3",children:_.map(R=>i.jsxDEV("div",{className:"rounded-lg border p-3",children:[i.jsxDEV("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"text-sm font-semibold",children:R.handler},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:549,columnNumber:33},this),i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:["Started ",new Date(R.startedAt).toLocaleString(),R.endedAt&&i.jsxDEV(i.Fragment,{children:[" - ","Ended ",new Date(R.endedAt).toLocaleString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:553,columnNumber:37},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:550,columnNumber:33},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:548,columnNumber:31},this),i.jsxDEV(Ze,{variant:R.status==="success"?"secondary":"destructive",className:"uppercase",children:R.status},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:559,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:547,columnNumber:29},this),R.detail!==void 0&&R.detail!==null&&i.jsxDEV("pre",{className:"mt-2 h-40 overflow-auto rounded bg-muted/50 p-3 text-xs whitespace-pre-wrap break-all",children:qP(R.detail)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:567,columnNumber:31},this)]},R.id,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:546,columnNumber:27},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:544,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:535,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:484,columnNumber:17},this):i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Select an event to view details."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:482,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:480,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:479,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:474,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:356,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/EventsPage.tsx",lineNumber:243,columnNumber:5},this)}async function ice(e){const t=await fetch(`/api/sessions/pools?projectId=${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch pools");return(await t.json()).pools}function rce({pool:e,onClick:t,isSelected:s}){const a=Math.round(e.waitingMs/1e3);return i.jsxDEV("button",{type:"button",onClick:t,className:Pe("p-3 border rounded-lg text-left transition-colors","hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",s&&"bg-accent border-primary"),"aria-pressed":s,"aria-label":`${e.agentName}: ${e.messageCount} message${e.messageCount!==1?"s":""}, waiting ${a} seconds`,children:[i.jsxDEV("div",{className:"font-medium",children:e.agentName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:63,columnNumber:7},this),i.jsxDEV("div",{className:"text-sm text-muted-foreground",children:[e.messageCount," msg",e.messageCount!==1?"s":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:64,columnNumber:7},this),i.jsxDEV("div",{className:"text-xs text-muted-foreground",children:["~",a,"s wait"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:67,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:52,columnNumber:5},this)}function nce({projectId:e,onAgentClick:t,selectedAgentId:s}){const a=Zs(),{data:o,isLoading:c,error:p}=rt({queryKey:["pools",e],queryFn:()=>ice(e),refetchInterval:5e3,staleTime:1e3}),l=b.useCallback(d=>{if(!d)return;const{topic:h,type:v}=d;h==="messages/pools"&&v==="updated"&&a.invalidateQueries({queryKey:["pools",e]})},[a,e]);return Ec({message:l},[l]),i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:[i.jsxDEV(_i,{children:"Current Pools"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:106,columnNumber:9},this),i.jsxDEV(Li,{children:"Messages waiting to be delivered to agents"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:107,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:105,columnNumber:7},this),i.jsxDEV(Ks,{children:[c&&i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Loading pools..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:110,columnNumber:23},this),p instanceof Error&&i.jsxDEV("p",{className:"text-sm text-destructive",children:["Failed to load pools: ",p.message]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:112,columnNumber:11},this),!c&&!p&&i.jsxDEV("div",{className:"flex flex-wrap gap-3",children:[o==null?void 0:o.map(d=>i.jsxDEV(rce,{pool:d,onClick:()=>t==null?void 0:t(d.agentId),isSelected:s===d.agentId},d.agentId,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:117,columnNumber:15},this)),(o==null?void 0:o.length)===0&&i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"No pending messages"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:125,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:115,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:109,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/CurrentPoolsPanel.tsx",lineNumber:104,columnNumber:5},this)}async function ace(e,t){const s=new URLSearchParams({projectId:e});t!=null&&t.status&&s.set("status",t.status),t!=null&&t.agentId&&s.set("agentId",t.agentId),t!=null&&t.source&&s.set("source",t.source);const a=await fetch(`/api/sessions/messages?${s.toString()}`);if(!a.ok)throw new Error("Failed to fetch messages");return a.json()}function GP(e,t){return e.length<=t?e:e.slice(0,t)+"..."}function oce(e){return new Date(e).toLocaleTimeString()}function lce(e=[]){const t=[],s=new Map;for(const a of e)if(a.batchId){const o=s.get(a.batchId)||[];o.push(a),s.set(a.batchId,o)}else t.push({batchId:void 0,messages:[a],status:a.status,timestamp:a.timestamp,agentName:a.agentName});for(const[a,o]of s){const c=o.sort((p,l)=>p.timestamp-l.timestamp);t.push({batchId:a,messages:c,status:c[0].status,timestamp:c[0].timestamp,agentName:c[0].agentName})}return t.sort((a,o)=>o.timestamp-a.timestamp)}function cce({status:e}){const t={queued:"bg-muted text-muted-foreground",delivered:"bg-emerald-500/10 text-emerald-600 border-emerald-500/40",failed:"bg-destructive/10 text-destructive border-destructive/40"};return i.jsxDEV(Ze,{variant:"outline",className:Pe("text-xs uppercase",t[e]),children:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:134,columnNumber:5},this)}function uce({message:e,onClick:t}){return i.jsxDEV("button",{type:"button",onClick:t,className:Pe("w-full text-left pl-4 py-1 rounded text-sm transition-colors","hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring"),"aria-label":`Message from ${e.source}: ${GP(e.preview,50)}`,children:[i.jsxDEV("span",{className:"text-muted-foreground",children:["[",e.source,"]"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:156,columnNumber:7},this)," ",i.jsxDEV("span",{children:GP(e.preview,80)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:157,columnNumber:7},this),e.error&&i.jsxDEV("div",{className:"text-destructive text-xs mt-1",children:["Error: ",e.error]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:158,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:147,columnNumber:5},this)}function pce({group:e,onMessageClick:t}){const s=e.messages.length>1;return i.jsxDEV("div",{className:"border-b py-2 last:border-b-0",children:[i.jsxDEV("div",{className:"flex items-center gap-2 flex-wrap",children:[i.jsxDEV(cce,{status:e.status},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:174,columnNumber:9},this),i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:oce(e.timestamp)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:175,columnNumber:9},this),s&&i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:["batch of ",e.messages.length]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:177,columnNumber:11},this),i.jsxDEV("span",{className:"ml-auto text-sm",children:["→ ",e.agentName]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:181,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:173,columnNumber:7},this),i.jsxDEV("div",{className:"mt-1 space-y-1",children:e.messages.map(a=>i.jsxDEV(uce,{message:a,onClick:()=>t(a)},a.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:185,columnNumber:11},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:183,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:172,columnNumber:5},this)}function dce({projectId:e,filters:t,onMessageClick:s}){const a=Zs(),{data:o,isLoading:c,error:p}=rt({queryKey:["messages",e,t],queryFn:()=>ace(e,t),refetchInterval:1e4,staleTime:2e3}),l=b.useCallback(f=>{if(!f)return;const{topic:E}=f;E==="messages/activity"&&a.invalidateQueries({queryKey:["messages",e]})},[a,e]);Ec({message:l},[l]);const d=b.useMemo(()=>lce(o==null?void 0:o.messages),[o==null?void 0:o.messages]),h=b.useCallback(f=>{s==null||s(f)},[s]),v=b.useMemo(()=>{const f=[];return t!=null&&t.agentId&&f.push("filtered by agent"),t!=null&&t.status&&f.push(`status: ${t.status}`),t!=null&&t.source&&f.push(`source: ${t.source}`),f.length>0?` (${f.join(", ")})`:""},[t]);return i.jsxDEV(Bs,{className:"flex-1 flex flex-col min-h-0",children:[i.jsxDEV(Di,{className:"flex-shrink-0",children:[i.jsxDEV(_i,{children:"Activity Log"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:239,columnNumber:9},this),i.jsxDEV(Li,{children:["Recent message delivery history",v,o&&` • ${o.total} total`]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:240,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:238,columnNumber:7},this),i.jsxDEV(Ks,{className:"flex-1 min-h-0",children:[c&&i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Loading messages..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:246,columnNumber:23},this),p instanceof Error&&i.jsxDEV("p",{className:"text-sm text-destructive",children:["Failed to load messages: ",p.message]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:248,columnNumber:11},this),!c&&!p&&i.jsxDEV(Vn,{className:"h-full",children:d.length===0?i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"No messages found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:253,columnNumber:15},this):i.jsxDEV("div",{className:"space-y-0 pr-4",children:d.map(f=>i.jsxDEV(pce,{group:f,onMessageClick:h},f.batchId||f.messages[0].id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:257,columnNumber:19},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:255,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:251,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:245,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageActivityList.tsx",lineNumber:237,columnNumber:5},this)}const hce=lT,mce=cT,oA=({className:e,children:t,...s})=>i.jsxDEV(uS,{...s,children:i.jsxDEV("div",{className:Pe("fixed inset-0 z-50 flex",e),children:t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:18,columnNumber:5},void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:17,columnNumber:3},void 0);oA.displayName=uS.displayName;const lA=b.forwardRef(({className:e,...t},s)=>i.jsxDEV(RN,{ref:s,className:Pe("fixed inset-0 z-50 bg-black/80 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:27,columnNumber:3},void 0));lA.displayName=RN.displayName;const cA=b.forwardRef(({className:e,children:t,...s},a)=>i.jsxDEV(oA,{children:[i.jsxDEV(lA,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:43,columnNumber:5},void 0),i.jsxDEV(kN,{ref:a,className:Pe("fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto max-h-[96%] flex-col rounded-t-[10px] border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom data-[state=open]:animate-in data-[state=open]:slide-in-from-bottom",e),...s,children:[i.jsxDEV("span",{className:"mx-auto mb-4 h-1.5 w-16 rounded-full bg-muted"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:52,columnNumber:7},void 0),t]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:44,columnNumber:5},void 0)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:42,columnNumber:3},void 0));cA.displayName=kN.displayName;const uA=({className:e,...t})=>i.jsxDEV("div",{className:Pe("grid gap-1.5 text-center sm:text-left",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:60,columnNumber:3},void 0);uA.displayName="DrawerHeader";const pA=({className:e,...t})=>i.jsxDEV("div",{className:Pe("mt-auto flex flex-col gap-2 sm:flex-row sm:justify-end",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:65,columnNumber:3},void 0);pA.displayName="DrawerFooter";const dA=b.forwardRef(({className:e,...t},s)=>i.jsxDEV(AN,{ref:s,className:Pe("text-lg font-semibold leading-none tracking-tight",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:76,columnNumber:3},void 0));dA.displayName=AN.displayName;const hA=b.forwardRef(({className:e,...t},s)=>i.jsxDEV(MN,{ref:s,className:Pe("text-sm text-muted-foreground",e),...t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/ui/drawer.tsx",lineNumber:88,columnNumber:3},void 0));hA.displayName=MN.displayName;async function fce(e){const t=await fetch(`/api/sessions/messages/${e}`);if(!t.ok)throw new Error("Failed to fetch message details");return(await t.json()).message}function gce(e){return new Date(e).toLocaleString()}function vce(e){return new Date(e).toLocaleTimeString()}function bce({status:e}){const t={queued:"bg-muted text-muted-foreground",delivered:"bg-emerald-500/10 text-emerald-600 border-emerald-500/40",failed:"bg-destructive/10 text-destructive border-destructive/40"};return i.jsxDEV(Ze,{variant:"outline",className:Pe("text-xs uppercase font-medium",t[e]),children:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:54,columnNumber:5},this)}function pb({icon:e,title:t,children:s,className:a}){return i.jsxDEV("div",{className:Pe("space-y-2",a),children:[i.jsxDEV("div",{className:"flex items-center gap-2 text-sm font-medium text-muted-foreground",children:[e&&i.jsxDEV(e,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:75,columnNumber:18},this),i.jsxDEV("span",{children:t},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:76,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:74,columnNumber:7},this),i.jsxDEV("div",{className:"pl-6",children:s},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:78,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:73,columnNumber:5},this)}function YP({text:e}){const[t,s]=b.useState(!1),a=async()=>{try{await navigator.clipboard.writeText(e),s(!0),setTimeout(()=>s(!1),2e3)}catch(o){console.error("Failed to copy:",o)}};return i.jsxDEV("div",{className:"relative rounded-lg border bg-muted/50",children:[i.jsxDEV("div",{className:"absolute right-2 top-2 z-10",children:i.jsxDEV(ce,{variant:"ghost",size:"sm",onClick:a,className:"h-8 w-8 p-0 hover:bg-background","aria-label":"Copy content",children:t?i.jsxDEV(Td,{className:"h-4 w-4 text-emerald-500"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:108,columnNumber:13},this):i.jsxDEV(ZD,{className:"h-4 w-4 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:110,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:100,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:99,columnNumber:7},this),i.jsxDEV("pre",{className:"overflow-auto p-4 pr-12 text-sm whitespace-pre-wrap break-words max-h-72",children:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:114,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:98,columnNumber:5},this)}function Nce({message:e,onClose:t}){const[s,a]=b.useState(null),[o,c]=b.useState(!1),[p,l]=b.useState(null);return b.useEffect(()=>{if(!e){a(null),l(null);return}c(!0),l(null),fce(e.id).then(a).catch(d=>{console.error("Failed to fetch message details:",d),l("Failed to load message content")}).finally(()=>c(!1))},[e==null?void 0:e.id]),i.jsxDEV(hce,{open:!!e,onOpenChange:d=>!d&&t(),children:i.jsxDEV(cA,{"aria-describedby":"message-detail-description",children:[i.jsxDEV(uA,{className:"pb-2",children:[i.jsxDEV(dA,{children:"Message Details"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:150,columnNumber:11},this),i.jsxDEV(hA,{id:"message-detail-description",children:e&&gce(e.timestamp)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:151,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:149,columnNumber:9},this),e&&i.jsxDEV(Vn,{className:"flex-1 px-4",children:i.jsxDEV("div",{className:"space-y-5 pb-4",children:[i.jsxDEV(pb,{icon:T7,title:"Status",children:i.jsxDEV("div",{className:"flex items-center gap-3",children:[i.jsxDEV(bce,{status:e.status},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:162,columnNumber:19},this),e.deliveredAt&&i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:["Delivered at ",vce(e.deliveredAt)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:164,columnNumber:21},this),e.immediate&&i.jsxDEV(Ze,{variant:"secondary",className:"text-xs",children:[i.jsxDEV(U7,{className:"h-3 w-3 mr-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:170,columnNumber:23},this),"Immediate"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:169,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:161,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:160,columnNumber:15},this),i.jsxDEV(pb,{icon:Ru,title:"Routing",children:i.jsxDEV("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[i.jsxDEV("div",{children:[i.jsxDEV("span",{className:"text-muted-foreground",children:"Recipient"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:181,columnNumber:21},this),i.jsxDEV("p",{className:"font-medium",children:e.agentName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:182,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:180,columnNumber:19},this),i.jsxDEV("div",{children:[i.jsxDEV("span",{className:"text-muted-foreground",children:"Source"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:185,columnNumber:21},this),i.jsxDEV("p",{className:"font-mono text-xs",children:e.source},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:186,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:184,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:179,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:178,columnNumber:15},this),e.error&&i.jsxDEV(pb,{icon:Ni,title:"Error",className:"text-destructive",children:i.jsxDEV("div",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-3",children:i.jsxDEV("p",{className:"text-sm text-destructive",children:e.error},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:195,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:194,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:193,columnNumber:17},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2 text-sm font-medium text-muted-foreground",children:i.jsxDEV("span",{children:"Content"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:203,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:202,columnNumber:17},this),o?i.jsxDEV("div",{className:"flex items-center justify-center p-8 rounded-lg border bg-muted/50",children:[i.jsxDEV(Dt,{className:"h-6 w-6 animate-spin text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:207,columnNumber:21},this),i.jsxDEV("span",{className:"ml-2 text-sm text-muted-foreground",children:"Loading content..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:208,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:206,columnNumber:19},this):p?i.jsxDEV("div",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-4",children:[i.jsxDEV("p",{className:"text-sm text-destructive",children:p},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:212,columnNumber:21},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground mt-2",children:["Preview: ",e.preview]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:213,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:211,columnNumber:19},this):s?i.jsxDEV(YP,{text:s.text},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:216,columnNumber:19},this):i.jsxDEV(YP,{text:e.preview},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:218,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:201,columnNumber:15},this),i.jsxDEV(pb,{icon:k7,title:"Metadata",children:i.jsxDEV("div",{className:"rounded-lg border bg-muted/30 p-3",children:i.jsxDEV("dl",{className:"text-sm space-y-2",children:[i.jsxDEV("div",{className:"flex justify-between",children:[i.jsxDEV("dt",{className:"text-muted-foreground",children:"Message ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:227,columnNumber:23},this),i.jsxDEV("dd",{className:"font-mono text-xs text-right max-w-[200px] truncate",children:e.id},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:228,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:226,columnNumber:21},this),i.jsxDEV("div",{className:"flex justify-between",children:[i.jsxDEV("dt",{className:"text-muted-foreground",children:"Agent ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:233,columnNumber:23},this),i.jsxDEV("dd",{className:"font-mono text-xs text-right max-w-[200px] truncate",children:e.agentId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:234,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:232,columnNumber:21},this),e.batchId&&i.jsxDEV("div",{className:"flex justify-between",children:[i.jsxDEV("dt",{className:"text-muted-foreground",children:"Batch ID"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:240,columnNumber:25},this),i.jsxDEV("dd",{className:"font-mono text-xs text-right max-w-[200px] truncate",children:e.batchId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:241,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:239,columnNumber:23},this),e.senderAgentId&&i.jsxDEV("div",{className:"flex justify-between",children:[i.jsxDEV("dt",{className:"text-muted-foreground",children:"Sender Agent"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:248,columnNumber:25},this),i.jsxDEV("dd",{className:"font-mono text-xs text-right max-w-[200px] truncate",children:e.senderAgentId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:249,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:247,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:225,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:224,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:223,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:158,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:157,columnNumber:11},this),i.jsxDEV(pA,{children:i.jsxDEV(mce,{asChild:!0,children:i.jsxDEV(ce,{variant:"outline",children:"Close"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:263,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:262,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:261,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:148,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageDetailDrawer.tsx",lineNumber:147,columnNumber:5},this)}const xce=[{value:"epic.assigned",label:"Epic Assignment"},{value:"chat.message",label:"Chat Message"},{value:"mcp.send_message",label:"MCP Tool Call"},{value:"subscriber.action",label:"Subscriber Action"},{value:"pool.failure_notice",label:"Failure Notice"}];async function yce(e){const t=await fetch(`/api/agents?projectId=${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch agents");return t.json()}function wce(e){return!!(e.status||e.agentId||e.source)}function Ece({projectId:e,filters:t,onChange:s}){const{data:a}=rt({queryKey:["agents",e],queryFn:()=>yce(e),enabled:!!e,staleTime:3e4}),o=(a==null?void 0:a.items)??[],c=h=>{s({...t,status:h==="all"?void 0:h})},p=h=>{s({...t,agentId:h==="all"?void 0:h})},l=h=>{s({...t,source:h==="all"?void 0:h})},d=()=>{s({})};return i.jsxDEV("div",{className:"flex flex-wrap gap-3 items-center",children:[i.jsxDEV(Vs,{value:t.status||"all",onValueChange:c,children:[i.jsxDEV(js,{className:"w-32","aria-label":"Filter by status",children:i.jsxDEV(Ls,{placeholder:"Status"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:82,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:81,columnNumber:9},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All Status"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:85,columnNumber:11},this),i.jsxDEV(Rt,{value:"queued",children:"Queued"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:86,columnNumber:11},this),i.jsxDEV(Rt,{value:"delivered",children:"Delivered"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:87,columnNumber:11},this),i.jsxDEV(Rt,{value:"failed",children:"Failed"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:88,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:80,columnNumber:7},this),i.jsxDEV(Vs,{value:t.agentId||"all",onValueChange:p,children:[i.jsxDEV(js,{className:"w-40","aria-label":"Filter by agent",children:i.jsxDEV(Ls,{placeholder:"Agent"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:95,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:94,columnNumber:9},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All Agents"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:98,columnNumber:11},this),o.map(h=>i.jsxDEV(Rt,{value:h.id,children:h.name},h.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:100,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:97,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:93,columnNumber:7},this),i.jsxDEV(Vs,{value:t.source||"all",onValueChange:l,children:[i.jsxDEV(js,{className:"w-44","aria-label":"Filter by source",children:i.jsxDEV(Ls,{placeholder:"Source"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:110,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:109,columnNumber:9},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All Sources"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:113,columnNumber:11},this),xce.map(h=>i.jsxDEV(Rt,{value:h.value,children:h.label},h.value,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:115,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:112,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:108,columnNumber:7},this),wce(t)&&i.jsxDEV(ce,{variant:"ghost",size:"sm",onClick:d,className:"gap-1","aria-label":"Clear all filters",children:[i.jsxDEV(vl,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:131,columnNumber:11},this),"Clear"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:124,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/messages/MessageFiltersPanel.tsx",lineNumber:78,columnNumber:5},this)}function Dce(){const{selectedProject:e}=fr(),[t,s]=b.useState({}),[a,o]=b.useState(null),c=b.useCallback(h=>{s(h)},[]),p=b.useCallback(h=>{o(h)},[]),l=b.useCallback(()=>{o(null)},[]);if(!e)return i.jsxDEV("div",{className:"flex flex-1 items-center justify-center",children:i.jsxDEV(XX,{icon:Vd,title:"No project selected",description:"Select a project to view message activity"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:34,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:33,columnNumber:7},this);const d=h=>{s(v=>({...v,agentId:v.agentId===h?void 0:h}))};return i.jsxDEV("div",{className:"flex flex-col gap-6 h-full",children:[i.jsxDEV(LX,{title:"Messages",description:"Monitor message pools and delivery activity"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:53,columnNumber:7},this),i.jsxDEV(nce,{projectId:e.id,onAgentClick:d,selectedAgentId:t.agentId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:55,columnNumber:7},this),i.jsxDEV(Ece,{projectId:e.id,filters:t,onChange:c},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:61,columnNumber:7},this),i.jsxDEV(dce,{projectId:e.id,filters:Object.keys(t).length>0?t:void 0,onMessageClick:p},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:67,columnNumber:7},this),i.jsxDEV(Nce,{message:a,onClose:l},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:73,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/MessagesPage.tsx",lineNumber:52,columnNumber:5},this)}const Sce={contains:"Contains",regex:"Regex",not_contains:"Not Contains"};function _ce(e){return Sce[e]}async function mA(e){const t=new URLSearchParams({projectId:e}),s=await fetch(`/api/watchers?${t.toString()}`);if(!s.ok)throw new Error("Failed to fetch watchers");return s.json()}async function Cce(e){const t=await fetch("/api/watchers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const s=await t.json().catch(()=>({message:"Failed to create watcher"}));throw new Error(s.message||"Failed to create watcher")}return t.json()}async function jce(e,t){const s=await fetch(`/api/watchers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({message:"Failed to update watcher"}));throw new Error(a.message||"Failed to update watcher")}return s.json()}async function Pce(e){if(!(await fetch(`/api/watchers/${e}`,{method:"DELETE"})).ok)throw new Error("Failed to delete watcher")}async function Tce(e,t){const s=await fetch(`/api/watchers/${e}/toggle`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:t})});if(!s.ok)throw new Error("Failed to toggle watcher");return s.json()}async function Vce(e){const t=await fetch(`/api/watchers/${e}/test`,{method:"POST"});if(!t.ok)throw new Error("Failed to test watcher");return t.json()}const QP={name:"",description:"",enabled:!0,scope:"all",scopeFilterId:"",pollIntervalMs:5e3,viewportLines:50,conditionType:"contains",conditionPattern:"",conditionFlags:"",idleAfterSeconds:0,cooldownMode:"time",cooldownMs:3e4,eventName:""};async function Rce(e){const t=await fetch(`/api/agents?projectId=${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch agents");return t.json()}async function kce(e){const t=await fetch(`/api/profiles?projectId=${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch profiles");return t.json()}async function Ace(){const e=await fetch("/api/providers");if(!e.ok)throw new Error("Failed to fetch providers");return e.json()}const Mce=/^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$/;function XP({open:e,onOpenChange:t,watcher:s}){const a=Zs(),{toast:o}=ci(),{selectedProjectId:c}=fr(),p=!!s,[l,d]=b.useState(QP),[h,v]=b.useState({}),{data:f}=rt({queryKey:["agents",c],queryFn:()=>Rce(c),enabled:!!c&&e}),{data:E}=rt({queryKey:["profiles",c],queryFn:()=>kce(c),enabled:!!c&&e}),{data:w}=rt({queryKey:["providers"],queryFn:Ace,enabled:e});b.useEffect(()=>{e&&(d(s?{name:s.name,description:s.description||"",enabled:s.enabled,scope:s.scope,scopeFilterId:s.scopeFilterId||"",pollIntervalMs:s.pollIntervalMs,viewportLines:s.viewportLines,conditionType:s.condition.type,conditionPattern:s.condition.pattern,conditionFlags:s.condition.flags||"",idleAfterSeconds:s.idleAfterSeconds??0,cooldownMode:s.cooldownMode,cooldownMs:s.cooldownMs,eventName:s.eventName}:QP),v({}))},[e,s]);const C=Ct({mutationFn:P=>Cce(P),onSuccess:()=>{a.invalidateQueries({queryKey:["watchers",c]}),t(!1),o({title:"Success",description:"Watcher created successfully"})},onError:P=>{o({title:"Error",description:P instanceof Error?P.message:"Failed to create watcher",variant:"destructive"})}}),S=Ct({mutationFn:({id:P,data:R})=>jce(P,R),onSuccess:()=>{a.invalidateQueries({queryKey:["watchers",c]}),t(!1),o({title:"Success",description:"Watcher updated successfully"})},onError:P=>{o({title:"Error",description:P instanceof Error?P.message:"Failed to update watcher",variant:"destructive"})}}),x=C.isPending||S.isPending,N=()=>{const P={};if(l.name.trim()?l.name.length>100&&(P.name="Name must be 100 characters or less"):P.name="Name is required",l.scope!=="all"&&!l.scopeFilterId&&(P.scopeFilterId=`Please select a ${l.scope}`),(l.pollIntervalMs<1e3||l.pollIntervalMs>6e4)&&(P.pollIntervalMs="Poll interval must be between 1000ms and 60000ms"),(l.viewportLines<10||l.viewportLines>200)&&(P.viewportLines="Viewport lines must be between 10 and 200"),l.conditionPattern.trim()||(P.conditionPattern="Pattern is required"),l.conditionType==="regex")try{new RegExp(l.conditionPattern,l.conditionFlags)}catch{P.conditionPattern="Invalid regular expression"}return(l.idleAfterSeconds<0||l.idleAfterSeconds>3600)&&(P.idleAfterSeconds="Idle gate must be between 0 and 3600 seconds"),l.cooldownMs<0&&(P.cooldownMs="Cooldown must be 0 or greater"),l.eventName.trim()?Mce.test(l.eventName)||(P.eventName="Event name must be lowercase, start with letter, use dots for namespacing (e.g., watcher.error_detected)"):P.eventName="Event name is required",v(P),Object.keys(P).length===0},g=P=>{if(P.preventDefault(),!N())return;if(!c){o({title:"Error",description:"Please select a project first",variant:"destructive"});return}const R={type:l.conditionType,pattern:l.conditionPattern};if(l.conditionType==="regex"&&l.conditionFlags&&(R.flags=l.conditionFlags),p&&s){const j={name:l.name,description:l.description||null,enabled:l.enabled,scope:l.scope,scopeFilterId:l.scope==="all"?null:l.scopeFilterId,pollIntervalMs:l.pollIntervalMs,viewportLines:l.viewportLines,condition:R,idleAfterSeconds:l.idleAfterSeconds,cooldownMode:l.cooldownMode,cooldownMs:l.cooldownMs,eventName:l.eventName};S.mutate({id:s.id,data:j})}else{const j={projectId:c,name:l.name,description:l.description||void 0,enabled:l.enabled,scope:l.scope,scopeFilterId:l.scope==="all"?null:l.scopeFilterId,pollIntervalMs:l.pollIntervalMs,viewportLines:l.viewportLines,condition:R,idleAfterSeconds:l.idleAfterSeconds,cooldownMode:l.cooldownMode,cooldownMs:l.cooldownMs,eventName:l.eventName};C.mutate(j)}},y=(P,R)=>{d(j=>({...j,[P]:R})),h[P]&&v(j=>({...j,[P]:void 0}))},_=()=>{switch(l.scope){case"agent":return(f==null?void 0:f.items)||[];case"profile":return(E==null?void 0:E.items)||[];case"provider":return(w==null?void 0:w.items)||[];default:return[]}};return i.jsxDEV(Ds,{open:e,onOpenChange:t,children:i.jsxDEV(ys,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:p?"Edit Watcher":"Create Watcher"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:344,columnNumber:11},this),i.jsxDEV(ds,{children:p?"Update the watcher configuration.":"Configure a new watcher to monitor terminal output."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:345,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:343,columnNumber:9},this),i.jsxDEV("form",{onSubmit:g,className:"space-y-6",children:[i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Basic Info"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:355,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"name",children:"Name *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:359,columnNumber:15},this),i.jsxDEV(Ut,{id:"name",value:l.name,onChange:P=>y("name",P.target.value),placeholder:"Error Detector",className:h.name?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:360,columnNumber:15},this),h.name&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:367,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:358,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"description",children:"Description"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:370,columnNumber:15},this),i.jsxDEV(Gi,{id:"description",value:l.description,onChange:P=>y("description",P.target.value),placeholder:"Monitors for error messages in terminal output",rows:2},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:371,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:369,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:354,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Scope"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:383,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Monitor"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:388,columnNumber:17},this),i.jsxDEV(Vs,{value:l.scope,onValueChange:P=>{y("scope",P),y("scopeFilterId","")},children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:397,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:396,columnNumber:19},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"all",children:"All Sessions"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:400,columnNumber:21},this),i.jsxDEV(Rt,{value:"agent",children:"Specific Agent"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:401,columnNumber:21},this),i.jsxDEV(Rt,{value:"profile",children:"Specific Profile"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:402,columnNumber:21},this),i.jsxDEV(Rt,{value:"provider",children:"Specific Provider"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:403,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:399,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:389,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:387,columnNumber:15},this),l.scope!=="all"&&i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:["Select ",l.scope.charAt(0).toUpperCase()+l.scope.slice(1)," *"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:409,columnNumber:19},this),i.jsxDEV(Vs,{value:l.scopeFilterId,onValueChange:P=>y("scopeFilterId",P),children:[i.jsxDEV(js,{className:h.scopeFilterId?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:`Select ${l.scope}...`},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:417,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:416,columnNumber:21},this),i.jsxDEV(Ps,{children:_().map(P=>i.jsxDEV(Rt,{value:P.id,children:P.name},P.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:421,columnNumber:25},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:419,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:412,columnNumber:19},this),h.scopeFilterId&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.scopeFilterId},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:428,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:408,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:386,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:382,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Polling"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:437,columnNumber:13},this),i.jsxDEV("div",{className:"grid gap-4 grid-cols-2",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"pollInterval",children:"Poll Interval (ms) *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:442,columnNumber:17},this),i.jsxDEV(Ut,{id:"pollInterval",type:"number",min:1e3,max:6e4,step:1e3,value:l.pollIntervalMs,onChange:P=>y("pollIntervalMs",parseInt(P.target.value)||5e3),className:h.pollIntervalMs?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:443,columnNumber:17},this),h.pollIntervalMs&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.pollIntervalMs},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:454,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:441,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"viewportLines",children:"Viewport Lines *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:458,columnNumber:17},this),i.jsxDEV(Ut,{id:"viewportLines",type:"number",min:10,max:200,step:10,value:l.viewportLines,onChange:P=>y("viewportLines",parseInt(P.target.value)||50),className:h.viewportLines?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:459,columnNumber:17},this),h.viewportLines&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.viewportLines},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:470,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:457,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:440,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:436,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Trigger Condition"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:478,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Condition Type"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:483,columnNumber:17},this),i.jsxDEV(Vs,{value:l.conditionType,onValueChange:P=>{y("conditionType",P),P!=="regex"&&y("conditionFlags","")},children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:494,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:493,columnNumber:19},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"contains",children:"Contains"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:497,columnNumber:21},this),i.jsxDEV(Rt,{value:"regex",children:"Regex"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:498,columnNumber:21},this),i.jsxDEV(Rt,{value:"not_contains",children:"Not Contains"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:499,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:496,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:484,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:482,columnNumber:15},this),l.conditionType==="regex"&&i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"conditionFlags",children:"Regex Flags"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:505,columnNumber:19},this),i.jsxDEV(Ut,{id:"conditionFlags",value:l.conditionFlags,onChange:P=>y("conditionFlags",P.target.value),placeholder:"gi"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:506,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:504,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:481,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"conditionPattern",children:"Pattern *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:516,columnNumber:15},this),i.jsxDEV(Ut,{id:"conditionPattern",value:l.conditionPattern,onChange:P=>{y("conditionPattern",P.target.value)},placeholder:l.conditionType==="regex"?"error|exception|failed":"Error:",className:h.conditionPattern?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:517,columnNumber:15},this),h.conditionPattern&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.conditionPattern},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:529,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:515,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:477,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Cooldown"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:536,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-3",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Cooldown Mode"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:541,columnNumber:17},this),i.jsxDEV(Vs,{value:l.cooldownMode,onValueChange:P=>y("cooldownMode",P),children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:547,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:546,columnNumber:19},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"time",children:"Time-based"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:550,columnNumber:21},this),i.jsxDEV(Rt,{value:"until_clear",children:"Until Condition Clears"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:551,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:549,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:542,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:540,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"cooldownMs",children:"Cooldown (ms)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:556,columnNumber:17},this),i.jsxDEV(Ut,{id:"cooldownMs",type:"number",min:0,step:1e3,value:l.cooldownMs,onChange:P=>y("cooldownMs",parseInt(P.target.value)||0),className:h.cooldownMs?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:557,columnNumber:17},this),h.cooldownMs&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.cooldownMs},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:567,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:555,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"idleAfterSeconds",children:"Only when idle for (seconds)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:571,columnNumber:17},this),i.jsxDEV(Ut,{id:"idleAfterSeconds",type:"number",min:0,max:3600,step:1,value:l.idleAfterSeconds,onChange:P=>y("idleAfterSeconds",parseInt(P.target.value,10)||0),placeholder:"0 = disabled",className:h.idleAfterSeconds?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:572,columnNumber:17},this),h.idleAfterSeconds&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.idleAfterSeconds},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:586,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:570,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:539,columnNumber:13},this),l.idleAfterSeconds>0&&i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:'Recommended: use "Until Condition Clears" cooldown mode for idle-gated watchers.'},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:591,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:535,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Event Output"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:600,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"eventName",children:"Event Name *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:604,columnNumber:15},this),i.jsxDEV(Ut,{id:"eventName",value:l.eventName,onChange:P=>y("eventName",P.target.value),placeholder:"watcher.error_detected",className:h.eventName?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:605,columnNumber:15},this),h.eventName&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.eventName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:612,columnNumber:36},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Lowercase with dots for namespacing (e.g., watcher.build_failed)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:613,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:603,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:599,columnNumber:11},this),i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:"enabled",checked:l.enabled,onCheckedChange:P=>y("enabled",P===!0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:621,columnNumber:13},this),i.jsxDEV($e,{htmlFor:"enabled",className:"cursor-pointer",children:"Enable watcher immediately"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:626,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:620,columnNumber:11},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{type:"button",variant:"outline",onClick:()=>t(!1),children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:632,columnNumber:13},this),i.jsxDEV(ce,{type:"submit",disabled:x,children:[x&&i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:636,columnNumber:29},this),p?"Update":"Create"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:635,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:631,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:352,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:342,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatcherDialog.tsx",lineNumber:341,columnNumber:5},this)}function Oce(){const e=Zs(),{toast:t}=ci(),{selectedProjectId:s}=fr(),[a,o]=b.useState(null),[c,p]=b.useState(null),[l,d]=b.useState(!1),[h,v]=b.useState(null),{data:f,isLoading:E,error:w}=rt({queryKey:["watchers",s],queryFn:()=>mA(s),enabled:!!s}),C=Ct({mutationFn:({id:j,enabled:T})=>Tce(j,T),onMutate:async({id:j,enabled:T})=>{await e.cancelQueries({queryKey:["watchers",s]});const A=e.getQueryData(["watchers",s]);return e.setQueryData(["watchers",s],k=>k==null?void 0:k.map(F=>F.id===j?{...F,enabled:T}:F)),{previousWatchers:A}},onError:(j,T,A)=>{A!=null&&A.previousWatchers&&e.setQueryData(["watchers",s],A.previousWatchers),t({title:"Error",description:j instanceof Error?j.message:"Failed to toggle watcher",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["watchers",s]})}}),S=Ct({mutationFn:Pce,onMutate:async j=>{await e.cancelQueries({queryKey:["watchers",s]});const T=e.getQueryData(["watchers",s]);return e.setQueryData(["watchers",s],A=>A==null?void 0:A.filter(k=>k.id!==j)),{previousWatchers:T}},onSuccess:()=>{o(null),t({title:"Success",description:"Watcher deleted successfully"})},onError:(j,T,A)=>{A!=null&&A.previousWatchers&&e.setQueryData(["watchers",s],A.previousWatchers),t({title:"Error",description:j instanceof Error?j.message:"Failed to delete watcher",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["watchers",s]})}}),x=Ct({mutationFn:Vce,onSuccess:j=>{const T=j.results.filter(A=>A.conditionMatched).length;T>0?t({title:"Test Complete",description:`Condition matched in ${T} of ${j.sessionsChecked} sessions`}):t({title:"Test Complete",description:`No matches found in ${j.sessionsChecked} sessions`}),p(j)},onError:j=>{t({title:"Test Failed",description:j instanceof Error?j.message:"Failed to test watcher",variant:"destructive"})}}),N=()=>{v(null),d(!0)},g=j=>{v(j),d(!0)},y=j=>{d(j),j||v(null)},_=j=>j>=6e4?`${j/6e4}m`:`${j/1e3}s`,P=j=>{const{condition:T,idleAfterSeconds:A}=j,k=T.pattern.length>30?T.pattern.slice(0,30)+"...":T.pattern,F=`${_ce(T.type)}: ${k}`;return A>0?`Idle >= ${A}s + ${F}`:F},R=j=>j.scope==="all"?"All Sessions":j.scopeFilterId?`${j.scope.charAt(0).toUpperCase()+j.scope.slice(1)}: ${j.scopeFilterId.slice(0,8)}...`:j.scope.charAt(0).toUpperCase()+j.scope.slice(1);return E?i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex items-center justify-center py-12",children:[i.jsxDEV(Dt,{className:"h-8 w-8 animate-spin text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:205,columnNumber:11},this),i.jsxDEV("span",{className:"ml-2 text-muted-foreground",children:"Loading watchers..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:206,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:204,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:203,columnNumber:7},this):w?i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(Ni,{className:"h-8 w-8 text-destructive mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:217,columnNumber:11},this),i.jsxDEV("p",{className:"text-destructive",children:w instanceof Error?w.message:"Failed to load watchers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:218,columnNumber:11},this),i.jsxDEV(ce,{variant:"outline",className:"mt-4",onClick:()=>e.invalidateQueries({queryKey:["watchers",s]}),children:"Retry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:221,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:216,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:215,columnNumber:7},this):s?!f||f.length===0?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"Watchers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:255,columnNumber:17},this),i.jsxDEV(Li,{children:"Monitor terminal output and trigger events when conditions are met."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:256,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:254,columnNumber:15},this),i.jsxDEV(ce,{onClick:N,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:261,columnNumber:17},this),"Add Watcher"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:260,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:253,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:252,columnNumber:11},this),i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(UE,{className:"h-12 w-12 text-muted-foreground mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:267,columnNumber:13},this),i.jsxDEV("h3",{className:"text-lg font-semibold mb-2",children:"No watchers yet"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:268,columnNumber:13},this),i.jsxDEV("p",{className:"text-muted-foreground text-center max-w-md",children:"Create your first watcher to start monitoring terminal output and triggering automated actions."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:269,columnNumber:13},this),i.jsxDEV(ce,{className:"mt-4",onClick:N,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:274,columnNumber:15},this),"Create Watcher"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:273,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:266,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:251,columnNumber:9},this),i.jsxDEV(XP,{open:l,onOpenChange:y,watcher:h},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:280,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:250,columnNumber:7},this):i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"Watchers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:295,columnNumber:15},this),i.jsxDEV(Li,{children:"Monitor terminal output and trigger events when conditions are met."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:296,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:294,columnNumber:13},this),i.jsxDEV(ce,{onClick:N,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:301,columnNumber:15},this),"Add Watcher"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:300,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:293,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:292,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-4",children:f.map(j=>i.jsxDEV("div",{className:"flex items-start justify-between p-4 border rounded-lg",children:[i.jsxDEV("div",{className:"flex-1 min-w-0",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-1",children:[i.jsxDEV("h4",{className:"font-semibold truncate",children:j.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:315,columnNumber:21},this),i.jsxDEV(Ze,{variant:j.enabled?"default":"secondary",children:j.enabled?"Enabled":"Disabled"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:316,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:314,columnNumber:19},this),j.description&&i.jsxDEV("p",{className:"text-sm text-muted-foreground mb-2 line-clamp-2",children:j.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:321,columnNumber:21},this),i.jsxDEV("div",{className:"flex flex-wrap gap-2 text-xs",children:[i.jsxDEV(Ze,{variant:"outline",children:R(j)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:326,columnNumber:21},this),i.jsxDEV(Ze,{variant:"outline",children:["Poll: ",_(j.pollIntervalMs)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:327,columnNumber:21},this),i.jsxDEV(Ze,{variant:"outline",className:"max-w-[200px] truncate",children:P(j)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:330,columnNumber:21},this),i.jsxDEV(Ze,{variant:"secondary",children:j.eventName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:333,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:325,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:313,columnNumber:17},this),i.jsxDEV("div",{className:"flex items-center gap-2 ml-4",children:[i.jsxDEV(kf,{checked:j.enabled,onCheckedChange:T=>C.mutate({id:j.id,enabled:T}),disabled:C.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:337,columnNumber:19},this),i.jsxDEV(ce,{variant:"outline",size:"sm",onClick:()=>x.mutate(j.id),disabled:x.isPending,children:[x.isPending&&x.variables===j.id?i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:351,columnNumber:23},this):i.jsxDEV(tS,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:353,columnNumber:23},this),i.jsxDEV("span",{className:"ml-1",children:"Test"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:355,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:344,columnNumber:19},this),i.jsxDEV(ZN,{children:[i.jsxDEV(JN,{asChild:!0,children:i.jsxDEV(ce,{variant:"ghost",size:"sm",children:i.jsxDEV(CN,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:360,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:359,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:358,columnNumber:21},this),i.jsxDEV(Vf,{align:"end",children:[i.jsxDEV(fl,{onClick:()=>g(j),children:[i.jsxDEV(xc,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:365,columnNumber:25},this),"Edit"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:364,columnNumber:23},this),i.jsxDEV(KS,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:368,columnNumber:23},this),i.jsxDEV(fl,{className:"text-destructive",onClick:()=>o(j.id),children:[i.jsxDEV(Tn,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:373,columnNumber:25},this),"Delete"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:369,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:363,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:357,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:336,columnNumber:17},this)]},j.id,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:309,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:307,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:306,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:291,columnNumber:7},this),i.jsxDEV(Ds,{open:!!a,onOpenChange:()=>o(null),children:i.jsxDEV(ys,{children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:"Delete Watcher"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:389,columnNumber:13},this),i.jsxDEV(ds,{children:"Are you sure you want to delete this watcher? This action cannot be undone."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:390,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:388,columnNumber:11},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{variant:"outline",onClick:()=>o(null),children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:395,columnNumber:13},this),i.jsxDEV(ce,{variant:"destructive",onClick:()=>a&&S.mutate(a),disabled:S.isPending,children:[S.isPending?i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:403,columnNumber:43},this):null,"Delete"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:398,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:394,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:387,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:386,columnNumber:7},this),i.jsxDEV(Ds,{open:!!c,onOpenChange:()=>p(null),children:i.jsxDEV(ys,{className:"max-w-2xl",children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:["Test Results: ",c==null?void 0:c.watcher.name]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:414,columnNumber:13},this),i.jsxDEV(ds,{children:["Checked ",c==null?void 0:c.sessionsChecked," session",(c==null?void 0:c.sessionsChecked)!==1?"s":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:415,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:413,columnNumber:11},this),i.jsxDEV("div",{className:"max-h-[400px] overflow-y-auto",children:(c==null?void 0:c.results.length)===0?i.jsxDEV("p",{className:"text-muted-foreground text-center py-4",children:"No active sessions to test"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:422,columnNumber:15},this):i.jsxDEV("div",{className:"space-y-2",children:c==null?void 0:c.results.map((j,T)=>i.jsxDEV("div",{className:`p-3 rounded-lg border ${j.conditionMatched?"border-green-500 bg-green-500/10":"border-muted"}`,children:[i.jsxDEV("div",{className:"flex items-center justify-between mb-2",children:[i.jsxDEV("span",{className:"font-mono text-sm",children:["Session: ",j.sessionId.slice(0,8),"..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:433,columnNumber:23},this),i.jsxDEV(Ze,{variant:j.conditionMatched?"default":"secondary",children:j.conditionMatched?"Matched":"No Match"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:436,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:432,columnNumber:21},this),j.viewport&&i.jsxDEV("pre",{className:"text-xs bg-muted p-2 rounded overflow-x-auto max-h-[100px]",children:[j.viewport.slice(0,500),j.viewport.length>500?"...":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:441,columnNumber:23},this)]},T,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:426,columnNumber:19},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:424,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:420,columnNumber:11},this),i.jsxDEV(Ss,{children:i.jsxDEV(ce,{onClick:()=>p(null),children:"Close"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:452,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:451,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:412,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:411,columnNumber:7},this),i.jsxDEV(XP,{open:l,onOpenChange:y,watcher:h},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:458,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:290,columnNumber:5},this):i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(UE,{className:"h-8 w-8 text-muted-foreground mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:240,columnNumber:11},this),i.jsxDEV("p",{className:"text-muted-foreground",children:"Please select a project to view watchers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:241,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:239,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/WatchersTab.tsx",lineNumber:238,columnNumber:7},this)}async function fA(){const e=await fetch("/api/subscribers/events");if(!e.ok)throw new Error("Failed to fetch subscribable events");return(await e.json()).events}async function Lce(e){const t=new URLSearchParams({projectId:e}),s=await fetch(`/api/subscribers?${t.toString()}`);if(!s.ok)throw new Error("Failed to fetch subscribers");return s.json()}async function Ice(e){const t=await fetch("/api/subscribers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const s=await t.json().catch(()=>({message:"Failed to create subscriber"}));throw new Error(s.message||"Failed to create subscriber")}return t.json()}async function gA(e,t){const s=await fetch(`/api/subscribers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({message:"Failed to update subscriber"}));throw new Error(a.message||"Failed to update subscriber")}return s.json()}async function Fce(e){if(!(await fetch(`/api/subscribers/${e}`,{method:"DELETE"})).ok)throw new Error("Failed to delete subscriber")}async function Bce(e,t){const s=await fetch(`/api/subscribers/${e}/toggle`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:t})});if(!s.ok)throw new Error("Failed to toggle subscriber");return s.json()}async function zce(){const e=await fetch("/api/actions");if(!e.ok)throw new Error("Failed to fetch actions");return e.json()}function Uce(e){return e==="string"||e==="textarea"}function $ce(e){const t=e.allowedSources;return!t||t.length===0?!1:t.length===1&&t[0]==="custom"}function Hce({inputDef:e,value:t,onChange:s,availableEventFields:a,error:o}){const c=t.source||"custom",p=h=>{s({source:h,customValue:h==="custom"?t.customValue||"":void 0,eventField:h==="event_field"?t.eventField||"":void 0})},l=h=>{s({source:"custom",customValue:h,eventField:void 0})},d=h=>{s({source:"event_field",customValue:void 0,eventField:h})};return Uce(e.type)?i.jsxDEV("div",{className:"space-y-2 p-3 border rounded-lg",children:[i.jsxDEV("div",{children:[i.jsxDEV($e,{className:"font-medium",children:[e.label,e.required&&i.jsxDEV("span",{className:"text-destructive ml-1",children:"*"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:87,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:85,columnNumber:11},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:e.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:89,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:84,columnNumber:9},this),i.jsxDEV(Wce,{inputDef:e,value:t.customValue||"",onChange:l,availableEventFields:a,error:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:91,columnNumber:9},this),o&&i.jsxDEV("p",{className:"text-sm text-destructive",children:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:98,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:83,columnNumber:7},this):$ce(e)?i.jsxDEV("div",{className:"space-y-2 p-3 border rounded-lg",children:[i.jsxDEV("div",{children:[i.jsxDEV($e,{className:"font-medium",children:[e.label,e.required&&i.jsxDEV("span",{className:"text-destructive ml-1",children:"*"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:110,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:108,columnNumber:11},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:e.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:112,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:107,columnNumber:9},this),i.jsxDEV(ZP,{inputDef:e,value:t.customValue||"",onChange:l,error:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:114,columnNumber:9},this),o&&i.jsxDEV("p",{className:"text-sm text-destructive",children:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:120,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:106,columnNumber:7},this):i.jsxDEV("div",{className:"space-y-2 p-3 border rounded-lg",children:[i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV($e,{className:"font-medium",children:[e.label,e.required&&i.jsxDEV("span",{className:"text-destructive ml-1",children:"*"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:132,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:130,columnNumber:11},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:e.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:134,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:129,columnNumber:9},this),i.jsxDEV("div",{className:"flex gap-1",children:[i.jsxDEV("button",{type:"button",onClick:()=>p("custom"),className:`px-2 py-1 text-xs rounded transition-colors ${c==="custom"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:"Custom"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:137,columnNumber:11},this),i.jsxDEV("button",{type:"button",onClick:()=>p("event_field"),className:`px-2 py-1 text-xs rounded transition-colors ${c==="event_field"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:"Event Field"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:148,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:136,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:128,columnNumber:7},this),c==="custom"?i.jsxDEV(ZP,{inputDef:e,value:t.customValue||"",onChange:l,error:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:163,columnNumber:9},this):i.jsxDEV(qce,{value:t.eventField||"",onChange:d,availableEventFields:a,error:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:170,columnNumber:9},this),o&&i.jsxDEV("p",{className:"text-sm text-destructive",children:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:178,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:127,columnNumber:5},this)}function Wce({inputDef:e,value:t,onChange:s,availableEventFields:a,error:o}){var f;const c=b.useRef(null),[p,l]=b.useState(""),d=((f=e.defaultValue)==null?void 0:f.toString())||`Enter ${e.label.toLowerCase()}...`,h=e.type==="textarea"||e.name.toLowerCase().includes("message")||e.name.toLowerCase().includes("text")||e.name.toLowerCase().includes("content"),v=()=>{if(!p||!c.current)return;const E=c.current,w=E.selectionStart??t.length,C=E.selectionEnd??t.length,S=`{{${p}}}`,x=t.slice(0,w)+S+t.slice(C);s(x),setTimeout(()=>{if(c.current){const N=w+S.length;c.current.setSelectionRange(N,N),c.current.focus()}},0)};return i.jsxDEV("div",{className:"space-y-2",children:[h?i.jsxDEV(Gi,{ref:c,value:t,onChange:E=>s(E.target.value),placeholder:d,rows:3,className:o?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:239,columnNumber:9},this):i.jsxDEV(Ut,{ref:c,type:"text",value:t,onChange:E=>s(E.target.value),placeholder:d,className:o?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:248,columnNumber:9},this),a.length>0&&i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(Vs,{value:p,onValueChange:l,children:[i.jsxDEV(js,{className:"flex-1 h-8 text-xs",children:i.jsxDEV(Ls,{placeholder:"Select variable..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:262,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:261,columnNumber:13},this),i.jsxDEV(Ps,{children:a.map(E=>i.jsxDEV(Rt,{value:E.field,children:[i.jsxDEV("span",{className:"font-mono text-xs",children:`{{${E.field}}}`},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:267,columnNumber:19},this),i.jsxDEV("span",{className:"ml-2 text-muted-foreground",children:E.label},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:268,columnNumber:19},this)]},E.field,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:266,columnNumber:17},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:264,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:260,columnNumber:11},this),i.jsxDEV(ce,{type:"button",variant:"outline",size:"sm",onClick:v,disabled:!p,className:"h-8 text-xs",children:"Insert"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:273,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:259,columnNumber:9},this),a.length>0&&i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Use ",i.jsxDEV("code",{className:"bg-muted px-1 rounded",children:"{{field}}"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:288,columnNumber:15},this)," syntax to insert event values"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:287,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:237,columnNumber:5},this)}function ZP({inputDef:e,value:t,onChange:s,error:a}){var o,c,p;switch(e.type){case"number":return i.jsxDEV(Ut,{type:"number",value:t,onChange:l=>s(l.target.value),placeholder:((o=e.defaultValue)==null?void 0:o.toString())||"0",className:a?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:311,columnNumber:9},this);case"boolean":return i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:`input-${e.name}`,checked:t==="true",onCheckedChange:l=>s(l?"true":"false")},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:323,columnNumber:11},this),i.jsxDEV($e,{htmlFor:`input-${e.name}`,className:"cursor-pointer",children:e.defaultValue===!0?"Enabled by default":"Enable"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:328,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:322,columnNumber:9},this);case"select":return i.jsxDEV(Vs,{value:t,onValueChange:s,children:[i.jsxDEV(js,{className:a?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:`Select ${e.label.toLowerCase()}...`},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:338,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:337,columnNumber:11},this),i.jsxDEV(Ps,{children:(c=e.options)==null?void 0:c.map(l=>i.jsxDEV(Rt,{value:l.value,children:l.label},l.value,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:342,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:340,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:336,columnNumber:9},this);default:return i.jsxDEV(Ut,{type:"text",value:t,onChange:l=>s(l.target.value),placeholder:((p=e.defaultValue)==null?void 0:p.toString())||"",className:a?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:353,columnNumber:9},this)}}function qce({value:e,onChange:t,availableEventFields:s,error:a}){return s.length===0?i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV(Ut,{type:"text",value:e,onChange:o=>t(o.target.value),placeholder:"Enter event field name...",className:a?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:380,columnNumber:9},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"No predefined event fields available. Enter a custom field name."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:387,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:379,columnNumber:7},this):i.jsxDEV(Vs,{value:e,onValueChange:t,children:[i.jsxDEV(js,{className:a?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:"Select event field..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:397,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:396,columnNumber:7},this),i.jsxDEV(Ps,{children:s.map(o=>i.jsxDEV(Rt,{value:o.field,children:o.label},o.field,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:401,columnNumber:11},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:399,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/InputSourceSelector.tsx",lineNumber:395,columnNumber:5},this)}function Kce({action:e,values:t,onChange:s,availableEventFields:a=[],errors:o}){if(!e||e.inputs.length===0)return i.jsxDEV("div",{className:"text-sm text-muted-foreground text-center py-4",children:e?"This action has no configurable inputs.":"Select an action to configure inputs."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:24,columnNumber:7},this);const c=(l,d)=>{s({...t,[l]:d})},p=l=>t[l]||{source:"custom",customValue:""};return i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-2",children:[i.jsxDEV(Ze,{variant:"outline",children:e.category},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:46,columnNumber:9},this),i.jsxDEV("span",{className:"text-sm text-muted-foreground",children:e.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:47,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:45,columnNumber:7},this),e.inputs.map(l=>i.jsxDEV(Hce,{inputDef:l,value:p(l.name),onChange:d=>c(l.name,d),availableEventFields:a,error:o==null?void 0:o[l.name]},l.name,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:50,columnNumber:9},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/ActionInputsForm.tsx",lineNumber:44,columnNumber:5},this)}function db(e,t,s){const a=t?new Set(t.inputs.map(p=>p.name)):null;let o=!1;const c={};for(const[p,l]of Object.entries(s)){if(a&&!a.has(p)){o=!0;continue}if(e==="restart_agent"&&p==="agentId"){o=!0;continue}c[p]=l}return o?c:s}const JP={name:"",description:"",enabled:!0,eventName:"",hasFilter:!1,filterField:"",filterOperator:"equals",filterValue:"",actionType:"",actionInputs:{},delayMs:0,cooldownMs:5e3,retryOnError:!1,groupName:"",priority:0,position:0};function e9({open:e,onOpenChange:t,subscriber:s}){const a=Zs(),{toast:o}=ci(),{selectedProjectId:c}=fr(),p=!!s,[l,d]=b.useState(JP),[h,v]=b.useState({}),[f,E]=b.useState({}),{data:w}=rt({queryKey:["subscribableEvents"],queryFn:fA,enabled:e}),{data:C}=rt({queryKey:["watchers",c],queryFn:()=>mA(c),enabled:!!c&&e}),{data:S,isLoading:x}=rt({queryKey:["actions"],queryFn:zce,enabled:e}),N=(S==null?void 0:S.find(M=>M.type===l.actionType))||null;b.useEffect(()=>{var M,L,U;e&&(d(s?{name:s.name,description:s.description||"",enabled:s.enabled,eventName:s.eventName,hasFilter:!!s.eventFilter,filterField:((M=s.eventFilter)==null?void 0:M.field)||"",filterOperator:((L=s.eventFilter)==null?void 0:L.operator)||"equals",filterValue:((U=s.eventFilter)==null?void 0:U.value)||"",actionType:s.actionType,actionInputs:db(s.actionType,null,s.actionInputs||{}),delayMs:s.delayMs,cooldownMs:s.cooldownMs,retryOnError:s.retryOnError,groupName:s.groupName||"",priority:s.priority??0,position:s.position??0}:JP),v({}),E({}))},[e,s]),b.useEffect(()=>{if(!l.actionType||!e)return;const M=db(l.actionType,N,l.actionInputs);M!==l.actionInputs&&(j("actionInputs",M),E(L=>{const U={...L};for(const Z of Object.keys(L))Z in M||delete U[Z];return U}))},[e,l.actionType,N]),b.useEffect(()=>{var Y;if(!l.eventName||!w)return;const M=w.find(K=>K.name===l.eventName),L=M?M.fields:((Y=w.find(K=>K.name==="terminal.watcher.triggered"))==null?void 0:Y.fields)||[],U=new Set(L.map(K=>K.field));if(U.size===0)return;let Z=!1;const q={...l.actionInputs};for(const[K,O]of Object.entries(q))O.source==="event_field"&&O.eventField&&(U.has(O.eventField)||(q[K]={source:"event_field",eventField:"",customValue:void 0},Z=!0));Z&&d(K=>({...K,actionInputs:q}))},[l.eventName,l.actionInputs,w]);const g=Ct({mutationFn:M=>Ice(M),onSuccess:()=>{a.invalidateQueries({queryKey:["subscribers",c]}),t(!1),o({title:"Success",description:"Subscriber created successfully"})},onError:M=>{o({title:"Error",description:M instanceof Error?M.message:"Failed to create subscriber",variant:"destructive"})}}),y=Ct({mutationFn:({id:M,data:L})=>gA(M,L),onSuccess:()=>{a.invalidateQueries({queryKey:["subscribers",c]}),t(!1),o({title:"Success",description:"Subscriber updated successfully"})},onError:M=>{o({title:"Error",description:M instanceof Error?M.message:"Failed to update subscriber",variant:"destructive"})}}),_=g.isPending||y.isPending,P=()=>{var U,Z;const M={},L={};if(l.name.trim()?l.name.length>100&&(M.name="Name must be 100 characters or less"):M.name="Name is required",l.eventName.trim()||(M.eventName="Event name is required"),l.hasFilter&&(l.filterField.trim()||(M.filterField="Filter field is required"),l.filterValue.trim()||(M.filterValue="Filter value is required")),l.actionType||(M.actionType="Action type is required"),N){for(const q of N.inputs)if(q.required){const Y=l.actionInputs[q.name];Y?Y.source==="custom"&&!((U=Y.customValue)!=null&&U.trim())?L[q.name]=`${q.label} is required`:Y.source==="event_field"&&!((Z=Y.eventField)!=null&&Z.trim())&&(L[q.name]=`Please select an event field for ${q.label}`):L[q.name]=`${q.label} is required`}}return l.delayMs<0&&(M.delayMs="Delay must be 0 or greater"),l.cooldownMs<0&&(M.cooldownMs="Cooldown must be 0 or greater"),v(M),E(L),Object.keys(M).length===0&&Object.keys(L).length===0},R=M=>{if(M.preventDefault(),!P())return;if(!c){o({title:"Error",description:"Please select a project first",variant:"destructive"});return}const L=l.hasFilter?{field:l.filterField,operator:l.filterOperator,value:l.filterValue}:null;if(p&&s){const U=db(l.actionType,N,l.actionInputs),Z={name:l.name,description:l.description||null,enabled:l.enabled,eventName:l.eventName,eventFilter:L,actionType:l.actionType,actionInputs:U,delayMs:l.delayMs,cooldownMs:l.cooldownMs,retryOnError:l.retryOnError,groupName:l.groupName||null,priority:l.priority,position:l.position};y.mutate({id:s.id,data:Z})}else{const U=db(l.actionType,N,l.actionInputs),Z={projectId:c,name:l.name,description:l.description||void 0,enabled:l.enabled,eventName:l.eventName,eventFilter:L,actionType:l.actionType,actionInputs:U,delayMs:l.delayMs,cooldownMs:l.cooldownMs,retryOnError:l.retryOnError,groupName:l.groupName||null,priority:l.priority,position:l.position};g.mutate(Z)}},j=(M,L)=>{d(U=>({...U,[M]:L})),h[M]&&v(U=>({...U,[M]:void 0}))},T=[...new Set((C==null?void 0:C.map(M=>M.eventName))||[])],A=w==null?void 0:w.reduce((M,L)=>(M[L.category]||(M[L.category]=[]),M[L.category].push(L),M),{}),F=(()=>{if(!l.eventName||!w)return[];const M=w.find(U=>U.name===l.eventName);if(M)return M.fields;const L=w.find(U=>U.name==="terminal.watcher.triggered");return(L==null?void 0:L.fields)||[]})();return i.jsxDEV(Ds,{open:e,onOpenChange:t,children:i.jsxDEV(ys,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:p?"Edit Subscriber":"Create Subscriber"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:458,columnNumber:11},this),i.jsxDEV(ds,{children:p?"Update the subscriber configuration.":"Configure a new subscriber to react to events."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:459,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:457,columnNumber:9},this),i.jsxDEV("form",{onSubmit:R,className:"space-y-6",children:[i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Basic Info"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:469,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"name",children:"Name *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:473,columnNumber:15},this),i.jsxDEV(Ut,{id:"name",value:l.name,onChange:M=>j("name",M.target.value),placeholder:"Error Handler",className:h.name?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:474,columnNumber:15},this),h.name&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:481,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:472,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"description",children:"Description"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:484,columnNumber:15},this),i.jsxDEV(Gi,{id:"description",value:l.description,onChange:M=>j("description",M.target.value),placeholder:"Handles error events by sending a message",rows:2},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:485,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:483,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:468,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Event Trigger"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:497,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"eventName",children:"Event Name *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:501,columnNumber:15},this),i.jsxDEV(Vs,{value:l.eventName,onValueChange:M=>j("eventName",M),children:[i.jsxDEV(js,{className:h.eventName?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:"Select event type..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:507,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:506,columnNumber:17},this),i.jsxDEV(Ps,{children:[A&&Object.entries(A).map(([M,L])=>i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase",children:M},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:514,columnNumber:25},this),L.map(U=>i.jsxDEV(Rt,{value:U.name,children:U.label},U.name,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:518,columnNumber:27},this))]},M,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:513,columnNumber:23},this)),T.length>0&&i.jsxDEV(i.Fragment,{children:[i.jsxDEV("div",{className:"px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase border-t mt-1 pt-2",children:"Watcher Custom Events"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:527,columnNumber:23},this),T.map(M=>i.jsxDEV(Rt,{value:M,children:M},M,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:531,columnNumber:25},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:526,columnNumber:21},this),l.eventName&&!(w!=null&&w.find(M=>M.name===l.eventName))&&!T.includes(l.eventName)&&i.jsxDEV(Rt,{value:l.eventName,children:[l.eventName," (custom)"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:541,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:509,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:502,columnNumber:15},this),h.eventName&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.eventName},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:547,columnNumber:36},this),i.jsxDEV(Ut,{placeholder:"Or enter custom event name...",value:l.eventName,onChange:M=>j("eventName",M.target.value),className:"mt-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:548,columnNumber:15},this),F.length>0&&i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Available fields: ",F.map(M=>M.field).join(", ")]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:555,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:500,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:"hasFilter",checked:l.hasFilter,onCheckedChange:M=>j("hasFilter",M===!0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:562,columnNumber:15},this),i.jsxDEV($e,{htmlFor:"hasFilter",className:"cursor-pointer",children:"Add event filter"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:567,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:561,columnNumber:13},this),l.hasFilter&&i.jsxDEV("div",{className:"grid grid-cols-3 gap-2 p-3 border rounded-lg",children:[i.jsxDEV("div",{className:"space-y-1",children:[i.jsxDEV($e,{className:"text-xs",children:"Field"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:575,columnNumber:19},this),i.jsxDEV(Ut,{value:l.filterField,onChange:M=>j("filterField",M.target.value),placeholder:"sessionId",className:h.filterField?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:576,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:574,columnNumber:17},this),i.jsxDEV("div",{className:"space-y-1",children:[i.jsxDEV($e,{className:"text-xs",children:"Operator"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:584,columnNumber:19},this),i.jsxDEV(Vs,{value:l.filterOperator,onValueChange:M=>j("filterOperator",M),children:[i.jsxDEV(js,{children:i.jsxDEV(Ls,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:590,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:589,columnNumber:21},this),i.jsxDEV(Ps,{children:[i.jsxDEV(Rt,{value:"equals",children:"Equals"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:593,columnNumber:23},this),i.jsxDEV(Rt,{value:"contains",children:"Contains"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:594,columnNumber:23},this),i.jsxDEV(Rt,{value:"regex",children:"Regex"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:595,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:592,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:585,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:583,columnNumber:17},this),i.jsxDEV("div",{className:"space-y-1",children:[i.jsxDEV($e,{className:"text-xs",children:"Value"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:600,columnNumber:19},this),i.jsxDEV(Ut,{value:l.filterValue,onChange:M=>j("filterValue",M.target.value),placeholder:"value",className:h.filterValue?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:601,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:599,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:573,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:496,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Action"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:614,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{children:"Action Type *"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:618,columnNumber:15},this),x?i.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[i.jsxDEV(Dt,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:621,columnNumber:19},this),"Loading actions..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:620,columnNumber:17},this):i.jsxDEV(Vs,{value:l.actionType,onValueChange:M=>{j("actionType",M),j("actionInputs",{})},children:[i.jsxDEV(js,{className:h.actionType?"border-destructive":"",children:i.jsxDEV(Ls,{placeholder:"Select action..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:634,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:633,columnNumber:19},this),i.jsxDEV(Ps,{children:S==null?void 0:S.map(M=>i.jsxDEV(Rt,{value:M.type,children:M.name},M.type,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:638,columnNumber:23},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:636,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:625,columnNumber:17},this),h.actionType&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.actionType},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:645,columnNumber:37},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:617,columnNumber:13},this),l.actionType&&i.jsxDEV(Kce,{action:N,values:l.actionInputs,onChange:M=>j("actionInputs",M),availableEventFields:F,errors:f},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:649,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:613,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Execution Options"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:661,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"delayMs",children:"Delay Before Action (ms)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:666,columnNumber:17},this),i.jsxDEV(Ut,{id:"delayMs",type:"number",min:0,step:100,value:l.delayMs,onChange:M=>j("delayMs",parseInt(M.target.value)||0),className:h.delayMs?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:667,columnNumber:17},this),h.delayMs&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.delayMs},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:676,columnNumber:36},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:665,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"cooldownMs",children:"Cooldown (ms)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:679,columnNumber:17},this),i.jsxDEV(Ut,{id:"cooldownMs",type:"number",min:0,step:1e3,value:l.cooldownMs,onChange:M=>j("cooldownMs",parseInt(M.target.value)||0),className:h.cooldownMs?"border-destructive":""},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:680,columnNumber:17},this),h.cooldownMs&&i.jsxDEV("p",{className:"text-sm text-destructive",children:h.cooldownMs},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:690,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:678,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:664,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:"retryOnError",checked:l.retryOnError,onCheckedChange:M=>j("retryOnError",M===!0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:695,columnNumber:15},this),i.jsxDEV($e,{htmlFor:"retryOnError",className:"cursor-pointer",children:"Retry on error"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:700,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:694,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:660,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Scheduling & Ordering"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:708,columnNumber:13},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Delay schedules execution time. Priority and position break ties when multiple subscribers are due at the same time."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:711,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"groupName",children:"Group Name (optional)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:716,columnNumber:15},this),i.jsxDEV(Ut,{id:"groupName",value:l.groupName,onChange:M=>j("groupName",M.target.value),placeholder:"Leave empty to group by event name"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:717,columnNumber:15},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Subscribers in the same group are executed sequentially. Empty groups by event."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:723,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:715,columnNumber:13},this),i.jsxDEV("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"priority",children:"Priority"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:729,columnNumber:17},this),i.jsxDEV(Ut,{id:"priority",type:"number",min:-100,max:100,value:l.priority,onChange:M=>j("priority",parseInt(M.target.value)||0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:730,columnNumber:17},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Higher priority runs first (-100 to 100)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:738,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:728,columnNumber:15},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"position",children:"Position"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:743,columnNumber:17},this),i.jsxDEV(Ut,{id:"position",type:"number",min:0,value:l.position,onChange:M=>j("position",parseInt(M.target.value)||0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:744,columnNumber:17},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Order within group when priority is equal"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:751,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:742,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:727,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:707,columnNumber:11},this),i.jsxDEV("div",{className:"flex items-center space-x-2",children:[i.jsxDEV(Gr,{id:"enabled",checked:l.enabled,onCheckedChange:M=>j("enabled",M===!0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:760,columnNumber:13},this),i.jsxDEV($e,{htmlFor:"enabled",className:"cursor-pointer",children:"Enable subscriber immediately"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:765,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:759,columnNumber:11},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{type:"button",variant:"outline",onClick:()=>t(!1),children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:771,columnNumber:13},this),i.jsxDEV(ce,{type:"submit",disabled:_,children:[_&&i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:775,columnNumber:29},this),p?"Update":"Create"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:774,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:770,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:466,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:456,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscriberDialog.tsx",lineNumber:455,columnNumber:5},this)}function Gce(){const e=Zs(),{toast:t}=ci(),{selectedProjectId:s}=fr(),[a,o]=b.useState(null),[c,p]=b.useState(!1),[l,d]=b.useState(null),{data:h,isLoading:v,error:f}=rt({queryKey:["subscribers",s],queryFn:()=>Lce(s),enabled:!!s}),{data:E}=rt({queryKey:["subscribableEvents"],queryFn:fA}),w=b.useMemo(()=>{if(!h||h.length===0)return[];const T=new Map;E==null||E.forEach(F=>{T.set(F.name,F.label)});const A=new Map;for(const F of h){const M=F.groupName??`event:${F.eventName}`;A.has(M)||A.set(M,[]),A.get(M).push(F)}for(const F of A.values())F.sort((M,L)=>M.position!==L.position?M.position-L.position:M.createdAt.localeCompare(L.createdAt));const k=[];for(const[F,M]of A){let L;if(F.startsWith("event:")){const U=F.slice(6),Z=T.get(U);L=Z?`Event: ${Z}`:`Event: ${U}`}else L=`Group: ${F}`;k.push({groupKey:F,label:L,subscribers:M})}return k.sort((F,M)=>F.label.localeCompare(M.label)),k},[h,E]),C=Ct({mutationFn:({id:T,enabled:A})=>Bce(T,A),onMutate:async({id:T,enabled:A})=>{await e.cancelQueries({queryKey:["subscribers",s]});const k=e.getQueryData(["subscribers",s]);return e.setQueryData(["subscribers",s],F=>F==null?void 0:F.map(M=>M.id===T?{...M,enabled:A}:M)),{previousSubscribers:k}},onError:(T,A,k)=>{k!=null&&k.previousSubscribers&&e.setQueryData(["subscribers",s],k.previousSubscribers),t({title:"Error",description:T instanceof Error?T.message:"Failed to toggle subscriber",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["subscribers",s]})}}),S=Ct({mutationFn:Fce,onMutate:async T=>{await e.cancelQueries({queryKey:["subscribers",s]});const A=e.getQueryData(["subscribers",s]);return e.setQueryData(["subscribers",s],k=>k==null?void 0:k.filter(F=>F.id!==T)),{previousSubscribers:A}},onSuccess:()=>{o(null),t({title:"Success",description:"Subscriber deleted successfully"})},onError:(T,A,k)=>{k!=null&&k.previousSubscribers&&e.setQueryData(["subscribers",s],k.previousSubscribers),t({title:"Error",description:T instanceof Error?T.message:"Failed to delete subscriber",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["subscribers",s]})}}),x=Ct({mutationFn:async({updates:T})=>{for(const A of T)await gA(A.id,{position:A.position})},onMutate:async({updates:T})=>{await e.cancelQueries({queryKey:["subscribers",s]});const A=e.getQueryData(["subscribers",s]);return e.setQueryData(["subscribers",s],k=>k==null?void 0:k.map(F=>{const M=T.find(L=>L.id===F.id);return M?{...F,position:M.position}:F})),{previousSubscribers:A}},onError:(T,A,k)=>{k!=null&&k.previousSubscribers&&e.setQueryData(["subscribers",s],k.previousSubscribers),t({title:"Error",description:T instanceof Error?T.message:"Failed to reorder subscriber",variant:"destructive"})},onSettled:()=>{e.invalidateQueries({queryKey:["subscribers",s]})}}),N=(T,A)=>{if(A===0)return;const k=T.subscribers,F=k[A],M=k[A-1],L=k.map(Z=>Z.position);if(new Set(L).size!==L.length){const Z=new Map(k.map(K=>[K.id,K.position])),q=k.map((K,O)=>({id:K.id,position:O}));q[A].position=A-1,q[A-1].position=A;const Y=q.filter(K=>K.position!==Z.get(K.id));x.mutate({updates:Y});return}x.mutate({updates:[{id:F.id,position:M.position},{id:M.id,position:F.position}]})},g=(T,A)=>{if(A===T.subscribers.length-1)return;const k=T.subscribers,F=k[A],M=k[A+1],L=k.map(Z=>Z.position);if(new Set(L).size!==L.length){const Z=new Map(k.map(K=>[K.id,K.position])),q=k.map((K,O)=>({id:K.id,position:O}));q[A].position=A+1,q[A+1].position=A;const Y=q.filter(K=>K.position!==Z.get(K.id));x.mutate({updates:Y});return}x.mutate({updates:[{id:F.id,position:M.position},{id:M.id,position:F.position}]})},y=()=>{d(null),p(!0)},_=T=>{d(T),p(!0)},P=T=>{p(T),T||d(null)},R=T=>{const A=T.actionInputs;if(!A)return null;for(const[k,F]of Object.entries(A)){if(F.source==="custom"&&F.customValue){const M=F.customValue;return M.length>50?`${k}: ${M.slice(0,50)}...`:`${k}: ${M}`}if(F.source==="event_field"&&F.eventField)return`${k}: {${F.eventField}}`}return null},j=T=>T.split("_").map(A=>A.charAt(0).toUpperCase()+A.slice(1)).join(" ");return v?i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex items-center justify-center py-12",children:[i.jsxDEV(Dt,{className:"h-8 w-8 animate-spin text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:352,columnNumber:11},this),i.jsxDEV("span",{className:"ml-2 text-muted-foreground",children:"Loading subscribers..."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:353,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:351,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:350,columnNumber:7},this):f?i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(Ni,{className:"h-8 w-8 text-destructive mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:364,columnNumber:11},this),i.jsxDEV("p",{className:"text-destructive",children:f instanceof Error?f.message:"Failed to load subscribers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:365,columnNumber:11},this),i.jsxDEV(ce,{variant:"outline",className:"mt-4",onClick:()=>e.invalidateQueries({queryKey:["subscribers",s]}),children:"Retry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:368,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:363,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:362,columnNumber:7},this):s?!h||h.length===0?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"Subscribers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:402,columnNumber:17},this),i.jsxDEV(Li,{children:"React to events by executing automated actions."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:403,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:401,columnNumber:15},this),i.jsxDEV(ce,{onClick:y,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:406,columnNumber:17},this),"Add Subscriber"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:405,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:400,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:399,columnNumber:11},this),i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(zE,{className:"h-12 w-12 text-muted-foreground mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:412,columnNumber:13},this),i.jsxDEV("h3",{className:"text-lg font-semibold mb-2",children:"No subscribers yet"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:413,columnNumber:13},this),i.jsxDEV("p",{className:"text-muted-foreground text-center max-w-md",children:"Create your first subscriber to start reacting to events with automated actions."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:414,columnNumber:13},this),i.jsxDEV(ce,{className:"mt-4",onClick:y,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:418,columnNumber:15},this),"Create Subscriber"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:417,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:411,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:398,columnNumber:9},this),i.jsxDEV(e9,{open:c,onOpenChange:P,subscriber:l},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:424,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:397,columnNumber:7},this):i.jsxDEV(wo,{children:[i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{children:[i.jsxDEV(_i,{children:"Subscribers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:439,columnNumber:15},this),i.jsxDEV(Li,{children:"React to events by executing automated actions. Delay schedules execution time; priority/position break ties when multiple subscribers are due at the same time."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:440,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:438,columnNumber:13},this),i.jsxDEV(ce,{onClick:y,children:[i.jsxDEV(Ki,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:446,columnNumber:15},this),"Add Subscriber"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:445,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:437,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:436,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"space-y-6",children:w.map(T=>i.jsxDEV("div",{className:"space-y-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2 pb-2 border-b",children:[i.jsxDEV("h3",{className:"text-sm font-semibold text-muted-foreground",children:T.label},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:457,columnNumber:19},this),i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:T.subscribers.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:458,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:456,columnNumber:17},this),i.jsxDEV("div",{className:"space-y-3",children:T.subscribers.map((A,k)=>i.jsxDEV("div",{className:"flex items-start justify-between p-4 border rounded-lg",children:[i.jsxDEV("div",{className:"flex flex-col gap-0.5 mr-3",children:[i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(ce,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>N(T,k),disabled:k===0||x.isPending,children:i.jsxDEV(Nf,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:481,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:474,columnNumber:29},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:473,columnNumber:27},this),i.jsxDEV(kr,{children:"Move up"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:484,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:472,columnNumber:25},this),i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(ce,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>g(T,k),disabled:k===T.subscribers.length-1||x.isPending,children:i.jsxDEV(Ua,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:497,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:488,columnNumber:29},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:487,columnNumber:27},this),i.jsxDEV(kr,{children:"Move down"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:500,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:486,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:471,columnNumber:23},this),i.jsxDEV("div",{className:"flex-1 min-w-0",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-1",children:[i.jsxDEV("h4",{className:"font-semibold truncate",children:A.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:506,columnNumber:27},this),i.jsxDEV(Ze,{variant:A.enabled?"default":"secondary",children:A.enabled?"Enabled":"Disabled"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:507,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:505,columnNumber:25},this),A.description&&i.jsxDEV("p",{className:"text-sm text-muted-foreground mb-2 line-clamp-2",children:A.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:512,columnNumber:27},this),i.jsxDEV("div",{className:"flex flex-wrap gap-2 text-xs mb-2",children:[i.jsxDEV(Ze,{variant:"outline",children:["Listens to: ",A.eventName]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:517,columnNumber:27},this),i.jsxDEV(Ze,{variant:"secondary",children:j(A.actionType)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:518,columnNumber:27},this),A.delayMs>0&&i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(Ze,{variant:"outline",children:["Delay: ",A.delayMs,"ms"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:524,columnNumber:33},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:523,columnNumber:31},this),i.jsxDEV(kr,{children:["Schedules execution ",A.delayMs,"ms after event"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:526,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:522,columnNumber:29},this),A.priority!==0&&i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(Ze,{variant:"outline",children:["Priority: ",A.priority]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:534,columnNumber:33},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:533,columnNumber:31},this),i.jsxDEV(kr,{children:"Higher priority runs first when multiple are due at same time"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:536,columnNumber:31},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:532,columnNumber:29},this),i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(Ze,{variant:"outline",children:["Position: ",A.position]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:543,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:542,columnNumber:29},this),i.jsxDEV(kr,{children:"Order within group when priority is equal"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:545,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:541,columnNumber:27},this),A.retryOnError&&i.jsxDEV(Ze,{variant:"outline",children:"Retry on error"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:550,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:516,columnNumber:25},this),R(A)&&i.jsxDEV("p",{className:"text-xs text-muted-foreground font-mono bg-muted px-2 py-1 rounded truncate max-w-md",children:R(A)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:554,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:504,columnNumber:23},this),i.jsxDEV("div",{className:"flex items-center gap-2 ml-4",children:[i.jsxDEV(kf,{checked:A.enabled,onCheckedChange:F=>C.mutate({id:A.id,enabled:F}),disabled:C.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:560,columnNumber:25},this),i.jsxDEV(ZN,{children:[i.jsxDEV(JN,{asChild:!0,children:i.jsxDEV(ce,{variant:"ghost",size:"sm",children:i.jsxDEV(CN,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:570,columnNumber:31},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:569,columnNumber:29},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:568,columnNumber:27},this),i.jsxDEV(Vf,{align:"end",children:[i.jsxDEV(fl,{onClick:()=>_(A),children:[i.jsxDEV(xc,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:575,columnNumber:31},this),"Edit"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:574,columnNumber:29},this),i.jsxDEV(KS,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:578,columnNumber:29},this),i.jsxDEV(fl,{className:"text-destructive",onClick:()=>o(A.id),children:[i.jsxDEV(Tn,{className:"h-4 w-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:583,columnNumber:31},this),"Delete"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:579,columnNumber:29},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:573,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:567,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:559,columnNumber:23},this)]},A.id,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:466,columnNumber:21},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:464,columnNumber:17},this)]},T.groupKey,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:454,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:452,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:451,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:435,columnNumber:7},this),i.jsxDEV(Ds,{open:!!a,onOpenChange:()=>o(null),children:i.jsxDEV(ys,{children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{children:"Delete Subscriber"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:602,columnNumber:13},this),i.jsxDEV(ds,{children:"Are you sure you want to delete this subscriber? This action cannot be undone."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:603,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:601,columnNumber:11},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{variant:"outline",onClick:()=>o(null),children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:608,columnNumber:13},this),i.jsxDEV(ce,{variant:"destructive",onClick:()=>a&&S.mutate(a),disabled:S.isPending,children:[S.isPending?i.jsxDEV(Dt,{className:"h-4 w-4 mr-2 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:616,columnNumber:43},this):null,"Delete"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:611,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:607,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:600,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:599,columnNumber:7},this),i.jsxDEV(e9,{open:c,onOpenChange:P,subscriber:l},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:624,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:434,columnNumber:5},this):i.jsxDEV(Bs,{children:i.jsxDEV(Ks,{className:"flex flex-col items-center justify-center py-12",children:[i.jsxDEV(zE,{className:"h-8 w-8 text-muted-foreground mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:387,columnNumber:11},this),i.jsxDEV("p",{className:"text-muted-foreground",children:"Please select a project to view subscribers"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:388,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:386,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/automation/SubscribersTab.tsx",lineNumber:385,columnNumber:7},this)}function Yce(){const[e,t]=b.useState("watchers");return i.jsxDEV("div",{className:"container py-6",children:[i.jsxDEV("div",{className:"flex items-center justify-between mb-6",children:i.jsxDEV("h1",{className:"text-2xl font-bold",children:"Automation"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:15,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:14,columnNumber:7},this),i.jsxDEV(gk,{value:e,onValueChange:s=>t(s),children:[i.jsxDEV(YS,{children:[i.jsxDEV(Km,{value:"watchers",children:[i.jsxDEV(UE,{className:"w-4 h-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:21,columnNumber:13},this),"Watchers"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:20,columnNumber:11},this),i.jsxDEV(Km,{value:"subscribers",children:[i.jsxDEV(zE,{className:"w-4 h-4 mr-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:25,columnNumber:13},this),"Subscribers"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:24,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:19,columnNumber:9},this),i.jsxDEV(Gm,{value:"watchers",children:i.jsxDEV(Oce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:31,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:30,columnNumber:9},this),i.jsxDEV(Gm,{value:"subscribers",children:i.jsxDEV(Gce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:34,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:33,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:18,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/AutomationPage.tsx",lineNumber:13,columnNumber:5},this)}const Qce=b.lazy(()=>uN(()=>import("./ReviewDetailPage-DNZbiwkx.js"),__vite__mapDeps([3,1,2])).then(e=>({default:e.ReviewDetailPage})));function Xce(){return i.jsxDEV("div",{className:"flex flex-col h-full",children:[i.jsxDEV("div",{className:"border-b p-4 bg-card",children:i.jsxDEV("div",{className:"flex items-center gap-4",children:[i.jsxDEV(qt,{className:"h-9 w-9"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:37,columnNumber:11},this),i.jsxDEV("div",{className:"flex-1",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-2",children:[i.jsxDEV(qt,{className:"h-6 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:40,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-20"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:41,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:39,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:44,columnNumber:15},this),i.jsxDEV(qt,{className:"h-4 w-40"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:45,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:43,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:38,columnNumber:11},this),i.jsxDEV(qt,{className:"h-4 w-16"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:48,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:36,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:35,columnNumber:7},this),i.jsxDEV("div",{className:"flex-1 flex min-h-0",children:[i.jsxDEV("div",{className:"w-64 border-r bg-card p-3 space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-3",children:[i.jsxDEV(qt,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:57,columnNumber:13},this),i.jsxDEV(qt,{className:"h-4 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:58,columnNumber:13},this),i.jsxDEV(qt,{className:"h-5 w-6"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:59,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:56,columnNumber:11},this),Array.from({length:8}).map((e,t)=>i.jsxDEV(qt,{className:"h-8 w-full"},t,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:62,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:55,columnNumber:9},this),i.jsxDEV("div",{className:"flex-1 min-w-0 bg-background p-4",children:i.jsxDEV("div",{className:"space-y-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2 mb-4",children:[i.jsxDEV(qt,{className:"h-5 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:70,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:71,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:72,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:69,columnNumber:13},this),Array.from({length:12}).map((e,t)=>i.jsxDEV(qt,{className:"h-6 w-full",style:{width:`${60+Math.random()*40}%`}},t,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:75,columnNumber:15},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:68,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:67,columnNumber:9},this),i.jsxDEV("div",{className:"w-80 border-l bg-card p-4 space-y-3",children:[i.jsxDEV(qt,{className:"h-5 w-24 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:86,columnNumber:11},this),Array.from({length:4}).map((e,t)=>i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-6 w-6 rounded-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:90,columnNumber:17},this),i.jsxDEV(qt,{className:"h-4 w-20"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:91,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:89,columnNumber:15},this),i.jsxDEV(qt,{className:"h-16 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:93,columnNumber:15},this)]},t,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:88,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:85,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:53,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:33,columnNumber:5},this)}function Zce(){return i.jsxDEV(b.Suspense,{fallback:i.jsxDEV(Xce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:108,columnNumber:25},this),children:i.jsxDEV(Qce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:109,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.lazy.tsx",lineNumber:108,columnNumber:5},this)}function Jce(){return i.jsxDEV("div",{className:"flex min-h-[60vh] flex-col items-center justify-center text-center",children:i.jsxDEV("div",{className:"space-y-4",children:[i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("h1",{className:"text-9xl font-bold text-muted-foreground",children:"404"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:10,columnNumber:11},this),i.jsxDEV("h2",{className:"text-3xl font-bold",children:"Page Not Found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:11,columnNumber:11},this),i.jsxDEV("p",{className:"text-muted-foreground max-w-md",children:"The page you're looking for doesn't exist or has been moved."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:12,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:9,columnNumber:9},this),i.jsxDEV("div",{className:"flex items-center justify-center gap-3 pt-4",children:[i.jsxDEV(ce,{variant:"outline",asChild:!0,children:i.jsxDEV(fo,{to:"/",children:[i.jsxDEV(zQ,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:20,columnNumber:15},this),"Go Home"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:19,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:18,columnNumber:11},this),i.jsxDEV(ce,{variant:"default",onClick:()=>window.history.back(),children:[i.jsxDEV(SN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:25,columnNumber:13},this),"Go Back"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:24,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:17,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:8,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/NotFoundPage.tsx",lineNumber:7,columnNumber:5},this)}function eue(){const e=gn();return i.jsxDEV("div",{className:"flex min-h-[60vh] flex-col items-center justify-center px-4 text-center",children:i.jsxDEV("div",{className:"max-w-xl space-y-6 rounded-lg border bg-card p-8 shadow-sm",children:[i.jsxDEV("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-muted",children:i.jsxDEV(F7,{className:"h-6 w-6 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:12,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:11,columnNumber:9},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("h1",{className:"text-2xl font-semibold",children:"Documents is currently disabled"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:16,columnNumber:11},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"The Documents feature is temporarily hidden while we prepare the release. Existing documents remain intact and will return when the feature is re-enabled."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:17,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:15,columnNumber:9},this),i.jsxDEV("div",{className:"flex flex-col items-center gap-3 sm:flex-row sm:justify-center",children:[i.jsxDEV(ce,{asChild:!0,children:i.jsxDEV(fo,{to:"/projects",children:[i.jsxDEV(jN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:26,columnNumber:15},this),"Go to Projects"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:25,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:24,columnNumber:11},this),i.jsxDEV(ce,{variant:"outline",onClick:()=>e(-1),children:[i.jsxDEV(SN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:31,columnNumber:13},this),"Go Back"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:30,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:23,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:10,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/DocumentsDisabledPage.tsx",lineNumber:9,columnNumber:5},this)}function tue(){const e=gn();return i.jsxDEV("div",{className:"flex min-h-[60vh] flex-col items-center justify-center px-4 text-center",children:i.jsxDEV("div",{className:"max-w-xl space-y-6 rounded-lg border bg-card p-8 shadow-sm",children:[i.jsxDEV("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-muted",children:i.jsxDEV(F7,{className:"h-6 w-6 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:12,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:11,columnNumber:9},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV("h1",{className:"text-2xl font-semibold",children:"Records is currently disabled"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:16,columnNumber:11},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"The Records feature is hidden for this release. Existing records remain intact and will return when the feature is re-enabled."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:17,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:15,columnNumber:9},this),i.jsxDEV("div",{className:"flex flex-col items-center gap-3 sm:flex-row sm:justify-center",children:[i.jsxDEV(ce,{asChild:!0,children:i.jsxDEV(fo,{to:"/projects",children:[i.jsxDEV(jN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:26,columnNumber:15},this),"Go to Projects"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:25,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:24,columnNumber:11},this),i.jsxDEV(ce,{variant:"outline",onClick:()=>e(-1),children:[i.jsxDEV(SN,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:31,columnNumber:13},this),"Go Back"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:30,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:23,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:10,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RecordsDisabledPage.tsx",lineNumber:9,columnNumber:5},this)}function sue({template:e,onSelect:t}){return i.jsxDEV(Bs,{className:"cursor-pointer transition-colors hover:border-primary",onClick:()=>t(e.slug),children:[i.jsxDEV(Di,{className:"pb-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(_i,{className:"text-lg",children:e.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:32,columnNumber:11},this),e.isOfficial&&i.jsxDEV(Ze,{variant:"secondary",className:"gap-1",children:[i.jsxDEV(ca,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:35,columnNumber:15},this),"Official"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:34,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:31,columnNumber:9},this),i.jsxDEV(Li,{className:"line-clamp-2",children:e.description||"No description available"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:40,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:30,columnNumber:7},this),i.jsxDEV(Ks,{children:[i.jsxDEV("div",{className:"mb-3 flex flex-wrap gap-1",children:[e.tags.slice(0,3).map(s=>i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:s},s,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:47,columnNumber:13},this)),e.tags.length>3&&i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:["+",e.tags.length-3]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:52,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:45,columnNumber:9},this),i.jsxDEV("div",{className:"flex items-center justify-between text-sm text-muted-foreground",children:[i.jsxDEV("span",{children:["v",e.latestVersion||"0.0.0"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:58,columnNumber:11},this),e.totalDownloads!=null&&i.jsxDEV("span",{className:"flex items-center gap-1",children:[i.jsxDEV(bu,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:61,columnNumber:15},this),e.totalDownloads.toLocaleString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:60,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:57,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:44,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateCard.tsx",lineNumber:26,columnNumber:5},this)}function iue({templates:e,onSelect:t}){return e.length===0?i.jsxDEV("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsxDEV("p",{className:"text-lg font-medium text-muted-foreground",children:"No templates found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:14,columnNumber:9},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Try adjusting your search or filters"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:15,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:13,columnNumber:7},this):i.jsxDEV("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:e.map(s=>i.jsxDEV(sue,{template:s,onSelect:t},s.slug,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:23,columnNumber:9},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:21,columnNumber:5},this)}function rue(){return i.jsxDEV("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6}).map((e,t)=>i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{className:"pb-3",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(qt,{className:"h-6 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:36,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-16"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:37,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:35,columnNumber:13},this),i.jsxDEV(qt,{className:"mt-2 h-4 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:39,columnNumber:13},this),i.jsxDEV(qt,{className:"mt-1 h-4 w-3/4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:40,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:34,columnNumber:11},this),i.jsxDEV(Ks,{children:[i.jsxDEV("div",{className:"mb-3 flex gap-1",children:[i.jsxDEV(qt,{className:"h-5 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:44,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-14"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:45,columnNumber:15},this),i.jsxDEV(qt,{className:"h-5 w-10"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:46,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:43,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV(qt,{className:"h-4 w-16"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:49,columnNumber:15},this),i.jsxDEV(qt,{className:"h-4 w-12"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:50,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:48,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:42,columnNumber:11},this)]},t,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:33,columnNumber:9},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateGrid.tsx",lineNumber:31,columnNumber:5},this)}var nue=Symbol.for("react.lazy"),aN=SD[" use ".trim().toString()];function aue(e){return typeof e=="object"&&e!==null&&"then"in e}function vA(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===nue&&"_payload"in e&&aue(e._payload)}function oue(e){const t=lue(e),s=b.forwardRef((a,o)=>{let{children:c,...p}=a;vA(c)&&typeof aN=="function"&&(c=aN(c._payload));const l=b.Children.toArray(c),d=l.find(uue);if(d){const h=d.props.children,v=l.map(f=>f===d?b.Children.count(h)>1?b.Children.only(null):b.isValidElement(h)?h.props.children:null:f);return re.jsx(t,{...p,ref:o,children:b.isValidElement(h)?b.cloneElement(h,void 0,v):null})}return re.jsx(t,{...p,ref:o,children:c})});return s.displayName=`${e}.Slot`,s}function lue(e){const t=b.forwardRef((s,a)=>{let{children:o,...c}=s;if(vA(o)&&typeof aN=="function"&&(o=aN(o._payload)),b.isValidElement(o)){const p=due(o),l=pue(c,o.props);return o.type!==b.Fragment&&(l.ref=a?pf(a,p):p),b.cloneElement(o,l)}return b.Children.count(o)>1?b.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var cue=Symbol("radix.slottable");function uue(e){return b.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===cue}function pue(e,t){const s={...t};for(const a in t){const o=e[a],c=t[a];/^on[A-Z]/.test(a)?o&&c?s[a]=(...l)=>{const d=c(...l);return o(...l),d}:o&&(s[a]=o):a==="style"?s[a]={...o,...c}:a==="className"&&(s[a]=[o,c].filter(Boolean).join(" "))}return{...e,...s}}function due(e){var a,o;let t=(a=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:a.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,s=t&&"isReactWarning"in t&&t.isReactWarning,s?e.props.ref:e.props.ref||e.ref)}var hue=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],mue=hue.reduce((e,t)=>{const s=oue(`Primitive.${t}`),a=b.forwardRef((o,c)=>{const{asChild:p,...l}=o,d=p?s:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),re.jsx(d,{...l,ref:c})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{}),fue=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),gue="VisuallyHidden",Vb=b.forwardRef((e,t)=>re.jsx(mue.span,{...e,ref:t,style:{...fue,...e.style}}));Vb.displayName=gue;async function vue(e){const t=await fetch(`/api/registry/cache/${encodeURIComponent(e)}/versions`);if(!t.ok)throw new Error("Failed to fetch cached versions");return t.json()}async function bue(e,t){const s=await fetch(`/api/registry/download/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:"POST"});if(!s.ok)throw new Error("Failed to download template");return s.json()}async function Nue(){const e=await fetch("/health");if(!e.ok)return null;const t=await e.json();return(t==null?void 0:t.version)||null}function xue(e,t){if(!e||!t)return!0;try{return!Xm(t,e)}catch{return!0}}function yue({versions:e,slug:t}){const s=Zs(),[a,o]=b.useState(!1),{data:c}=rt({queryKey:["registry-cache-versions",t],queryFn:()=>vue(t),enabled:!!t}),{data:p}=rt({queryKey:["health"],queryFn:Nue,staleTime:1/0}),l=new Set((c==null?void 0:c.versions)||[]),d=Ct({mutationFn:({version:C})=>bue(t,C),onSuccess:()=>{s.invalidateQueries({queryKey:["registry-cache-versions",t]}),s.invalidateQueries({queryKey:["unified-templates"]}),s.invalidateQueries({queryKey:["templates-for-upgrade"]})}});if(!e||e.length===0)return i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"No versions available"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:101,columnNumber:12},this);const h=[...e].sort((C,S)=>new Date(S.publishedAt).getTime()-new Date(C.publishedAt).getTime()),v=h[0],f=h.slice(1),E=f.length>0,w=C=>{var g;const S=l.has(C.version),x=d.isPending&&((g=d.variables)==null?void 0:g.version)===C.version,N=xue(C.minDevchainVersion,p??null);return i.jsxDEV("div",{className:"rounded-lg border p-3",children:i.jsxDEV("div",{className:"flex items-center justify-between",children:[i.jsxDEV("div",{className:"flex-1",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV("span",{className:"font-mono font-medium",children:["v",C.version]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:125,columnNumber:15},this),C.isLatest&&i.jsxDEV(Ze,{variant:"secondary",className:"text-xs",children:"Latest"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:127,columnNumber:17},this),!N&&C.minDevchainVersion&&i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV(Ze,{variant:"outline",className:"gap-1 border-amber-500/50 bg-amber-500/10 text-amber-600 text-xs",children:[i.jsxDEV($i,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:138,columnNumber:23},this),"Incompatible"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:134,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:133,columnNumber:19},this),i.jsxDEV(kr,{children:i.jsxDEV("p",{children:["Requires Devchain v",C.minDevchainVersion,"+",i.jsxDEV("br",{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:145,columnNumber:23},this),"Current: v",p]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:143,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:142,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:132,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:124,columnNumber:13},this),i.jsxDEV("div",{className:"mt-1 flex items-center gap-3 text-sm text-muted-foreground",children:[i.jsxDEV("span",{children:new Date(C.publishedAt).toLocaleDateString()},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:153,columnNumber:15},this),C.downloadCount!=null&&i.jsxDEV("span",{className:"flex items-center gap-1",children:[i.jsxDEV(bu,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:156,columnNumber:19},this),C.downloadCount.toLocaleString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:155,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:152,columnNumber:13},this),C.changelog&&i.jsxDEV("p",{className:"mt-2 text-sm text-muted-foreground",children:C.changelog},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:162,columnNumber:15},this),C.minDevchainVersion&&N&&i.jsxDEV("p",{className:"mt-1 text-xs text-muted-foreground",children:["Requires Devchain v",C.minDevchainVersion,"+"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:165,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:123,columnNumber:11},this),i.jsxDEV("div",{className:"ml-4",children:S?i.jsxDEV(Ze,{variant:"outline",className:"gap-1",children:[i.jsxDEV(Td,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:175,columnNumber:17},this),"Downloaded"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:174,columnNumber:15},this):N?i.jsxDEV(ce,{size:"sm",variant:"outline",onClick:()=>d.mutate({version:C.version}),disabled:x,children:x?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Dt,{className:"mr-1 h-3.5 w-3.5 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:205,columnNumber:21},this),"Downloading"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:204,columnNumber:19},this):i.jsxDEV(i.Fragment,{children:[i.jsxDEV(bu,{className:"mr-1 h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:210,columnNumber:21},this),"Download"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:209,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:197,columnNumber:15},this):i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV("span",{children:i.jsxDEV(ce,{size:"sm",variant:"outline",disabled:!0,children:[i.jsxDEV(bu,{className:"mr-1 h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:183,columnNumber:23},this),"Download"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:182,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:181,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:180,columnNumber:17},this),i.jsxDEV(kr,{children:i.jsxDEV("p",{children:["Requires Devchain v",C.minDevchainVersion,"+",i.jsxDEV("br",{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:191,columnNumber:21},this),"Current: v",p]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:189,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:188,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:179,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:172,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:122,columnNumber:9},this)},C.version,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:121,columnNumber:7},this)};return i.jsxDEV(wo,{children:i.jsxDEV("div",{className:"space-y-3",children:[w(v),E&&i.jsxDEV(i.Fragment,{children:[i.jsxDEV(ce,{variant:"ghost",size:"sm",className:"w-full text-muted-foreground hover:text-foreground",onClick:()=>o(!a),children:a?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Nf,{className:"mr-1 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:239,columnNumber:19},this),"Hide ",f.length," older version",f.length>1?"s":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:238,columnNumber:17},this):i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Ua,{className:"mr-1 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:244,columnNumber:19},this),"Show ",f.length," older version",f.length>1?"s":""]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:243,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:231,columnNumber:13},this),a&&f.map(w)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:230,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:224,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/VersionList.tsx",lineNumber:223,columnNumber:5},this)}async function wue(e){const t=await fetch("/api/registry/create-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const s=await t.json().catch(()=>({message:"Failed to create project"}));throw new Error(s.message||"Failed to create project")}return t.json()}function Eue({slug:e,version:t,templateName:s,open:a,onClose:o}){const[c,p]=b.useState(""),[l,d]=b.useState(""),[h,v]=b.useState(""),[f,E]=b.useState(null),w=gn(),C=Zs(),{toast:S}=ci(),x=Ct({mutationFn:wue,onSuccess:y=>{S({title:"Project Created",description:`${y.project.name} created from ${s}`}),C.invalidateQueries({queryKey:["projects"]}),o(),w("/projects")},onError:y=>{E(y.message)}}),N=()=>{if(E(null),!c.trim()){E("Project name is required");return}if(!h.trim()){E("Root path is required");return}x.mutate({slug:e,version:t,projectName:c.trim(),projectDescription:l.trim()||void 0,rootPath:h.trim()})},g=()=>{x.isPending||(p(""),d(""),v(""),E(null),o())};return i.jsxDEV(Ds,{open:a,onOpenChange:y=>!y&&g(),children:i.jsxDEV(ys,{className:"sm:max-w-md",children:[i.jsxDEV(ns,{children:[i.jsxDEV(es,{className:"flex items-center gap-2",children:[i.jsxDEV(VQ,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:135,columnNumber:13},this),"Create Project from Template"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:134,columnNumber:11},this),i.jsxDEV(ds,{children:["Using ",i.jsxDEV("span",{className:"font-medium",children:s},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:139,columnNumber:19},this)," v",t]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:138,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:133,columnNumber:9},this),i.jsxDEV("div",{className:"space-y-4 py-4",children:[f&&i.jsxDEV(wi,{variant:"destructive",children:[i.jsxDEV(Ni,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:146,columnNumber:15},this),i.jsxDEV(Ei,{children:f},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:147,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:145,columnNumber:13},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"projectName",children:"Project Name"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:152,columnNumber:13},this),i.jsxDEV(Ut,{id:"projectName",value:c,onChange:y=>p(y.target.value),placeholder:"My New Project",disabled:x.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:153,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:151,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"projectDescription",children:"Description (optional)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:163,columnNumber:13},this),i.jsxDEV(Gi,{id:"projectDescription",value:l,onChange:y=>d(y.target.value),placeholder:"A brief description of your project",rows:2,disabled:x.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:164,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:162,columnNumber:11},this),i.jsxDEV("div",{className:"space-y-2",children:[i.jsxDEV($e,{htmlFor:"rootPath",children:"Root Path"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:175,columnNumber:13},this),i.jsxDEV(Ut,{id:"rootPath",value:h,onChange:y=>v(y.target.value),placeholder:"/path/to/project",disabled:x.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:176,columnNumber:13},this),i.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"The directory where your project files are located"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:183,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:174,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:143,columnNumber:9},this),i.jsxDEV(Ss,{children:[i.jsxDEV(ce,{variant:"outline",onClick:g,disabled:x.isPending,children:"Cancel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:190,columnNumber:11},this),i.jsxDEV(ce,{onClick:N,disabled:!c.trim()||!h.trim()||x.isPending,children:x.isPending?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Dt,{className:"mr-2 h-4 w-4 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:199,columnNumber:17},this),"Creating..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:198,columnNumber:15},this):"Create Project"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:193,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:189,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:132,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/CreateFromRegistryDialog.tsx",lineNumber:131,columnNumber:5},this)}async function Due(e){const t=await fetch(`/api/registry/templates/${encodeURIComponent(e)}`);if(!t.ok){if(t.status===404)return null;throw new Error("Failed to fetch template details")}return t.json()}async function Sue(e){const t=await fetch(`/api/registry/projects/${encodeURIComponent(e)}`);if(!t.ok)throw new Error("Failed to fetch projects");return t.json()}async function _ue(){const e=await fetch("/health");if(!e.ok)return null;const t=await e.json();return(t==null?void 0:t.version)||null}function Cue(e,t){if(!e||!t)return!0;try{return!Xm(t,e)}catch{return!0}}const t9=200;function jue({slug:e,onClose:t}){const[s,a]=b.useState(!1),[o,c]=b.useState(!1),[p,l]=b.useState(!1),{data:d,isLoading:h,error:v}=rt({queryKey:["registry-template",e],queryFn:()=>Due(e),enabled:!!e}),{data:f}=rt({queryKey:["registry-projects-using",e],queryFn:()=>Sue(e),enabled:!!e}),{data:E}=rt({queryKey:["health"],queryFn:_ue,staleTime:1/0}),w=d==null?void 0:d.template,C=(d==null?void 0:d.versions)||[],S=C.find(y=>y.isLatest),x=(f==null?void 0:f.projects)||[],N=Cue((S==null?void 0:S.minDevchainVersion)??null,E??null),g=y=>S?y!==S.version:!1;return i.jsxDEV(Ds,{open:!!e,onOpenChange:y=>!y&&t(),children:i.jsxDEV(ys,{className:"max-h-[90vh] max-w-2xl overflow-hidden p-0",children:h?i.jsxDEV("div",{className:"p-6",children:[i.jsxDEV(Vb,{children:i.jsxDEV(es,{children:"Loading Template Details"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:171,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:170,columnNumber:13},this),i.jsxDEV(qt,{className:"mb-2 h-8 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:173,columnNumber:13},this),i.jsxDEV(qt,{className:"mb-4 h-4 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:174,columnNumber:13},this),i.jsxDEV(qt,{className:"h-32 w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:175,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:169,columnNumber:11},this):v?i.jsxDEV("div",{className:"p-6",children:[i.jsxDEV(Vb,{children:i.jsxDEV(es,{children:"Error Loading Template"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:180,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:179,columnNumber:13},this),i.jsxDEV("p",{className:"text-destructive",children:"Failed to load template details"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:182,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:178,columnNumber:11},this):w?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(ns,{className:"border-b px-6 py-4",children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(es,{className:"text-lg",children:w.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:195,columnNumber:17},this),w.isOfficial&&i.jsxDEV(Ze,{variant:"secondary",className:"gap-1 text-xs",children:[i.jsxDEV(ca,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:198,columnNumber:21},this),"Official"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:197,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:194,columnNumber:15},this),w.description&&i.jsxDEV("div",{className:"mt-2",children:w.description.length>t9?i.jsxDEV("div",{children:[i.jsxDEV(ds,{className:"whitespace-pre-line text-sm",children:o?w.description:`${w.description.slice(0,t9)}...`},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:208,columnNumber:23},this),i.jsxDEV(ce,{variant:"link",size:"sm",className:"h-auto p-0 text-xs",onClick:()=>c(!o),children:o?"Show less":"Show more"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:213,columnNumber:23},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:207,columnNumber:21},this):i.jsxDEV(ds,{className:"whitespace-pre-line text-sm",children:w.description},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:223,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:205,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:193,columnNumber:13},this),i.jsxDEV(Vn,{className:"max-h-[55vh]",children:i.jsxDEV("div",{className:"space-y-4 px-6 py-4",children:[i.jsxDEV("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-2 text-sm text-muted-foreground",children:[w.authorName&&i.jsxDEV("span",{className:"flex items-center gap-1",children:[i.jsxDEV(Ru,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:237,columnNumber:23},this),w.authorName]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:236,columnNumber:21},this),w.category&&i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:w.category},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:242,columnNumber:21},this),w.requiredProviders.length>0&&w.requiredProviders.map(y=>i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:y},y,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:248,columnNumber:23},this)),i.jsxDEV("span",{className:"flex items-center gap-1",children:[i.jsxDEV(JY,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:253,columnNumber:21},this),new Date(w.updatedAt).toLocaleDateString()]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:252,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:234,columnNumber:17},this),w.tags.length>0&&i.jsxDEV("div",{className:"flex flex-wrap items-center gap-1 text-sm",children:[i.jsxDEV("span",{className:"text-muted-foreground",children:"Tags:"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:261,columnNumber:21},this),w.tags.map(y=>i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:y},y,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:263,columnNumber:23},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:260,columnNumber:19},this),x.length>0&&i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Jm,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:273,columnNumber:21},this),i.jsxDEV("div",{children:[i.jsxDEV(ce,{variant:"ghost",size:"sm",className:"h-auto w-full justify-between p-0 font-medium hover:bg-transparent",onClick:()=>l(!p),children:[i.jsxDEV("span",{className:"text-sm",children:["Installed In (",x.length," project",x.length>1?"s":"",")"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:281,columnNumber:25},this),p?i.jsxDEV(Nf,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:286,columnNumber:27},this):i.jsxDEV(Ua,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:288,columnNumber:27},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:275,columnNumber:23},this),p&&i.jsxDEV("div",{className:"mt-2 space-y-1",children:x.map(y=>{const _=g(y.installedVersion),P=y.projectName||`ID: ${y.projectId.slice(0,8)}...`;return i.jsxDEV("div",{className:"flex items-center justify-between rounded-md border px-2 py-1.5 text-sm",title:`Project ID: ${y.projectId}`,children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(Vd,{className:"h-3.5 w-3.5 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:304,columnNumber:35},this),i.jsxDEV("span",{children:P},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:305,columnNumber:35},this),i.jsxDEV(Ze,{variant:"outline",className:"text-xs",children:["v",y.installedVersion]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:306,columnNumber:35},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:303,columnNumber:33},this),_&&i.jsxDEV(Ze,{variant:"default",className:"gap-1 text-xs",children:[i.jsxDEV(Ni,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:312,columnNumber:37},this),"Update"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:311,columnNumber:35},this)]},y.projectId,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:298,columnNumber:31},this)})},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:292,columnNumber:25},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:274,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:272,columnNumber:19},this),i.jsxDEV(Jm,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:325,columnNumber:17},this),i.jsxDEV("div",{children:[i.jsxDEV("h4",{className:"mb-2 text-sm font-medium",children:"Versions"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:329,columnNumber:19},this),i.jsxDEV(yue,{versions:C,slug:e},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:330,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:328,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:232,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:231,columnNumber:13},this),i.jsxDEV("div",{className:"flex items-center justify-end gap-2 border-t p-4",children:[i.jsxDEV(ce,{variant:"outline",onClick:t,children:"Close"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:337,columnNumber:15},this),i.jsxDEV(wo,{children:!N&&(S!=null&&S.minDevchainVersion)?i.jsxDEV(Wr,{children:[i.jsxDEV(qr,{asChild:!0,children:i.jsxDEV("span",{children:i.jsxDEV(ce,{disabled:!0,children:[i.jsxDEV($i,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:346,columnNumber:27},this),"Incompatible Version"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:345,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:344,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:343,columnNumber:21},this),i.jsxDEV(kr,{children:i.jsxDEV("p",{children:["Requires Devchain v",S.minDevchainVersion,"+",i.jsxDEV("br",{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:354,columnNumber:25},this),"Current: v",E]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:352,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:351,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:342,columnNumber:19},this):i.jsxDEV(ce,{onClick:()=>a(!0),disabled:!S,children:[i.jsxDEV(Ki,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:361,columnNumber:21},this),"Create New Project"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:360,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:340,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:336,columnNumber:13},this),S&&i.jsxDEV(Eue,{slug:e,version:S.version,templateName:w.name,open:s,onClose:()=>a(!1)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:370,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:192,columnNumber:11},this):i.jsxDEV("div",{className:"p-6",children:[i.jsxDEV(Vb,{children:i.jsxDEV(es,{children:"Template Not Found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:187,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:186,columnNumber:13},this),i.jsxDEV("p",{className:"text-muted-foreground",children:"Template not found"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:189,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:185,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:167,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/TemplateDetailDrawer.tsx",lineNumber:166,columnNumber:5},this)}async function Pue(e){var o,c;const t=await fetch(`/api/registry/templates/${encodeURIComponent(e)}`);if(!t.ok)throw new Error(`Registry request failed: ${t.status}`);const s=await t.json();if(!s)return null;const a=((c=(o=s.versions)==null?void 0:o.find(p=>p.isLatest))==null?void 0:c.version)??null;return{slug:e,latestVersion:a}}async function Tue(e){if(e.source==="registry"&&!e.latestVersion)return{status:"idle"};let t;try{t=await Pue(e.slug)}catch{return{status:"offline"}}if(!t)return{status:"not-in-registry"};if(!t.latestVersion)return{status:"not-in-registry"};if(e.source==="bundled"&&e.latestVersion)try{return Xm(e.latestVersion,t.latestVersion)?{status:"update-available",remoteVersion:t.latestVersion}:{status:"up-to-date"}}catch{return{status:"up-to-date"}}if(e.source==="bundled")return{status:"update-available",remoteVersion:t.latestVersion};try{return Xm(e.latestVersion,t.latestVersion)?{status:"update-available",remoteVersion:t.latestVersion}:{status:"up-to-date"}}catch{return{status:"up-to-date"}}}async function Vue(e){if(e.length===0)return{};const t=await Promise.allSettled(e.map(async a=>{const o=await Tue(a);return{slug:a.slug,status:o}})),s={};for(const a of t)a.status==="fulfilled"&&(s[a.value.slug]=a.value.status);return s}async function Rue(){const e=await fetch("/api/templates");if(!e.ok)throw new Error("Failed to fetch templates");return e.json()}async function kue(e,t){const s=await fetch(`/api/templates/${encodeURIComponent(e)}/versions/${encodeURIComponent(t)}`,{method:"DELETE"});if(!s.ok){const a=await s.json().catch(()=>({message:"Failed to delete version"}));throw new Error(a.message||"Failed to delete version")}}async function Aue(e,t){const s=await fetch(`/api/registry/download/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:"POST"});if(!s.ok){const a=await s.json().catch(()=>({message:"Failed to download template"}));throw new Error(a.message||"Failed to download template")}}function Mue({status:e,source:t,onDownload:s,isDownloading:a}){const o=t==="bundled";switch(e.status){case"checking":return i.jsxDEV(Ze,{variant:"outline",className:"gap-1 text-muted-foreground",children:[i.jsxDEV(PN,{className:"h-3 w-3 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:103,columnNumber:11},this),"Checking..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:102,columnNumber:9},this);case"update-available":return i.jsxDEV(ce,{size:"sm",variant:"default",className:"h-6 gap-1 bg-blue-600 hover:bg-blue-700 text-xs",onClick:c=>{c.stopPropagation(),s==null||s()},disabled:a,children:a?i.jsxDEV(i.Fragment,{children:[i.jsxDEV(Dt,{className:"h-3 w-3 animate-spin"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:121,columnNumber:15},this),"Downloading..."]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:120,columnNumber:13},this):i.jsxDEV(i.Fragment,{children:[i.jsxDEV(bu,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:126,columnNumber:15},this),"Download v",e.remoteVersion]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:125,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:109,columnNumber:9},this);case"up-to-date":return i.jsxDEV(Ze,{variant:"outline",className:"gap-1 text-green-600 border-green-600/50",children:[i.jsxDEV(ca,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:135,columnNumber:11},this),"Up to date"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:134,columnNumber:9},this);case"offline":return o?null:i.jsxDEV(Ze,{variant:"outline",className:"gap-1 text-muted-foreground",children:[i.jsxDEV(Ni,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:146,columnNumber:11},this),"Offline"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:145,columnNumber:9},this);case"not-in-registry":return i.jsxDEV(Ze,{variant:"outline",className:"gap-1 text-muted-foreground text-xs",children:"Not in registry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:153,columnNumber:9},this);default:return null}}function Oue({template:e,updateStatus:t,onRemoveVersion:s,deletingVersion:a,onDownload:o,isDownloading:c}){var C,S;const[p,l]=b.useState(!1),d=`template-versions-${e.slug}`,h=e.source==="bundled",v=e.versions&&e.versions.length>0,f=!h&&v,E=x=>{f&&(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),l(!p))},w=()=>{f&&l(!p)};return i.jsxDEV("div",{className:"rounded-lg border bg-card",children:[i.jsxDEV("div",{role:f?"button":void 0,tabIndex:f?0:void 0,className:`flex w-full items-center justify-between p-4 text-left ${f?"hover:bg-muted/50 cursor-pointer":""}`,onClick:w,onKeyDown:E,"aria-expanded":f?p:void 0,"aria-controls":f?d:void 0,children:[i.jsxDEV("div",{className:"flex items-center gap-3",children:[i.jsxDEV(Nu,{className:"h-5 w-5 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:215,columnNumber:11},this),i.jsxDEV("div",{children:[i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV("span",{className:"font-medium",children:e.name},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:218,columnNumber:15},this),i.jsxDEV(Ze,{variant:h?"outline":"secondary",className:"text-xs",children:h?"Bundled":"Downloaded"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:219,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:217,columnNumber:13},this),i.jsxDEV("div",{className:"text-sm text-muted-foreground",children:h?"Built-in template":i.jsxDEV(i.Fragment,{children:[((C=e.versions)==null?void 0:C.length)||0," version",(((S=e.versions)==null?void 0:S.length)||0)!==1?"s":""," cached"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:227,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:223,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:216,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:214,columnNumber:9},this),i.jsxDEV("div",{className:"flex items-center gap-2",children:[i.jsxDEV(Mue,{status:t,source:e.source,onDownload:t.status==="update-available"?()=>o(e.slug,t.remoteVersion):void 0,isDownloading:c},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:236,columnNumber:11},this),e.latestVersion&&i.jsxDEV(Ze,{variant:"secondary",children:["v",e.latestVersion]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:246,columnNumber:38},this),f&&(p?i.jsxDEV(Ua,{className:"h-4 w-4 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:249,columnNumber:15},this):i.jsxDEV(Vu,{className:"h-4 w-4 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:251,columnNumber:15},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:235,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:205,columnNumber:7},this),f&&p&&i.jsxDEV("div",{id:d,className:"border-t px-4 py-3",children:[i.jsxDEV("div",{className:"mb-2 text-sm font-medium text-muted-foreground",children:"Cached Versions"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:258,columnNumber:11},this),i.jsxDEV("div",{className:"flex flex-wrap gap-2",children:e.versions.map(x=>i.jsxDEV("div",{className:"flex items-center gap-1",children:[i.jsxDEV(Ze,{variant:x===e.latestVersion?"default":"outline",className:"gap-1",children:[i.jsxDEV(bu,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:266,columnNumber:19},this),"v",x]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:262,columnNumber:17},this),i.jsxDEV(ce,{variant:"ghost",size:"icon",className:"h-5 w-5 text-muted-foreground hover:text-destructive",onClick:N=>{N.stopPropagation(),s(e.slug,x)},disabled:a===x,children:i.jsxDEV(vl,{className:"h-3 w-3"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:278,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:268,columnNumber:17},this)]},x,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:261,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:259,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:257,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:204,columnNumber:5},this)}function Lue(){return i.jsxDEV("div",{className:"space-y-3",children:[1,2,3].map(e=>i.jsxDEV("div",{className:"rounded-lg border p-4",children:i.jsxDEV("div",{className:"flex items-center gap-3",children:[i.jsxDEV(qt,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:298,columnNumber:13},this),i.jsxDEV("div",{className:"flex-1",children:[i.jsxDEV(qt,{className:"mb-2 h-4 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:300,columnNumber:15},this),i.jsxDEV(qt,{className:"h-3 w-24"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:301,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:299,columnNumber:13},this),i.jsxDEV(qt,{className:"h-5 w-16"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:303,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:297,columnNumber:11},this)},e,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:296,columnNumber:9},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:294,columnNumber:5},this)}function Iue(){return i.jsxDEV("div",{className:"flex flex-col items-center justify-center rounded-lg border border-dashed p-8 text-center",children:[i.jsxDEV(Nu,{className:"mb-3 h-10 w-10 text-muted-foreground"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:317,columnNumber:7},this),i.jsxDEV("div",{className:"mb-1 font-medium",children:"No installed templates"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:318,columnNumber:7},this),i.jsxDEV("div",{className:"text-sm text-muted-foreground",children:"Download templates from the registry or add bundled templates"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:319,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:316,columnNumber:5},this)}function Fue(){const e=Zs(),{toast:t}=ci(),{data:s,isLoading:a,error:o}=rt({queryKey:["unified-templates"],queryFn:Rue}),[c,p]=b.useState({}),[l,d]=b.useState(null),h=Ct({mutationFn:({slug:N,version:g})=>kue(N,g),onSuccess:()=>{e.invalidateQueries({queryKey:["unified-templates"]}),t({title:"Success",description:"Template version removed successfully"}),d(null)},onError:N=>{t({title:"Error",description:N instanceof Error?N.message:"Failed to remove version",variant:"destructive"}),d(null)}}),v=(N,g)=>{d({slug:N,version:g})},f=()=>{l&&h.mutate(l)},[E,w]=b.useState(null),C=Ct({mutationFn:({slug:N,version:g})=>Aue(N,g),onMutate:({slug:N})=>{w(N)},onSuccess:(N,{slug:g,version:y})=>{e.invalidateQueries({queryKey:["unified-templates"]}),t({title:"Success",description:`Downloaded version ${y} successfully`}),w(null),p(_=>({..._,[g]:{status:"up-to-date"}}))},onError:N=>{t({title:"Error",description:N instanceof Error?N.message:"Failed to download template",variant:"destructive"}),w(null)}}),S=(N,g)=>{C.mutate({slug:N,version:g})},x=(s==null?void 0:s.templates)||[];return b.useEffect(()=>{if(x.length===0)return;const N={};x.forEach(y=>{N[y.slug]={status:"checking"}}),p(N),(async()=>{const y=await Vue(x);p(y)})()},[s]),a?i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV(_i,{className:"flex items-center gap-2",children:[i.jsxDEV(Nu,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:442,columnNumber:13},this),"Installed Templates"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:441,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:440,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV(Lue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:447,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:446,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:439,columnNumber:7},this):o?i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV(_i,{className:"flex items-center gap-2",children:[i.jsxDEV(Nu,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:458,columnNumber:13},this),"Installed Templates"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:457,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:456,columnNumber:9},this),i.jsxDEV(Ks,{children:i.jsxDEV("div",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-4 text-center text-sm text-destructive",children:"Failed to load templates. Please try again later."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:463,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:462,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:455,columnNumber:7},this):i.jsxDEV(Bs,{children:[i.jsxDEV(Di,{children:i.jsxDEV(_i,{className:"flex items-center gap-2",children:[i.jsxDEV(Nu,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:475,columnNumber:11},this),"Installed Templates",x.length>0&&i.jsxDEV(Ze,{variant:"secondary",className:"ml-2",children:x.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:478,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:474,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:473,columnNumber:7},this),i.jsxDEV(Ks,{className:"max-h-[280px] overflow-y-auto",children:x.length===0?i.jsxDEV(Iue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:486,columnNumber:11},this):i.jsxDEV("div",{className:"space-y-3",children:x.map(N=>i.jsxDEV(Oue,{template:N,updateStatus:c[N.slug]||{status:"idle"},onRemoveVersion:v,deletingVersion:(l==null?void 0:l.slug)===N.slug&&h.isPending?l.version:null,onDownload:S,isDownloading:E===N.slug&&C.isPending},N.slug,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:490,columnNumber:15},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:488,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:484,columnNumber:7},this),i.jsxDEV(qb,{open:l!==null,onOpenChange:N=>{N||d(null)},onConfirm:f,title:"Remove template version",description:l?`Are you sure you want to remove version ${l.version} of "${l.slug}"? This will delete the cached files from disk.`:"Are you sure you want to remove this version?",confirmText:"Remove",variant:"destructive",loading:h.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:508,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/DownloadedTemplates.tsx",lineNumber:472,columnNumber:5},this)}const Bue=!1;async function zue(){const e=await fetch("/api/registry/status");if(!e.ok)throw new Error("Failed to check registry status");return e.json()}async function Uue(e){const t=new URLSearchParams;e.search&&t.set("search",e.search),e.category&&t.set("category",e.category);const s=`/api/registry/templates${t.toString()?`?${t}`:""}`,a=await fetch(s);if(!a.ok)throw new Error("Failed to fetch templates");return a.json()}function $ue(e,t){const[s,a]=b.useState(e);return b.useEffect(()=>{const o=setTimeout(()=>{a(e)},t);return()=>{clearTimeout(o)}},[e,t]),s}function Hue(){const[e,t]=b.useState(""),[s,a]=b.useState(),[o,c]=b.useState(),p=$ue(e,300),{data:l}=rt({queryKey:["registry-status"],queryFn:zue,refetchInterval:6e4,staleTime:3e4}),{data:d,isLoading:h,error:v}=rt({queryKey:["registry-templates",p,s],queryFn:()=>Uue({search:p||void 0,category:s})}),f=b.useMemo(()=>(d==null?void 0:d.templates)||[],[d]);return i.jsxDEV("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[i.jsxDEV("div",{className:"mb-6 flex-shrink-0",children:i.jsxDEV("div",{className:"flex items-center gap-3",children:[i.jsxDEV(Nu,{className:"h-8 w-8 text-primary"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:104,columnNumber:11},this),i.jsxDEV("div",{children:[i.jsxDEV("h1",{className:"text-2xl font-bold",children:"Template Registry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:106,columnNumber:13},this),i.jsxDEV("p",{className:"text-muted-foreground",children:"Browse and install project templates"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:107,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:105,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:103,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:102,columnNumber:7},this),l&&!l.available&&i.jsxDEV(wi,{variant:"destructive",className:"mb-4",children:[i.jsxDEV($i,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:115,columnNumber:11},this),i.jsxDEV(Ei,{children:"Registry unavailable. Showing cached templates only."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:116,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:114,columnNumber:9},this),i.jsxDEV("div",{className:"mb-8 flex-shrink-0",children:i.jsxDEV(Fue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:122,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:121,columnNumber:7},this),Bue,i.jsxDEV("div",{className:"mb-4 flex-shrink-0",children:[i.jsxDEV("h2",{className:"flex items-center gap-2 text-lg font-semibold",children:[i.jsxDEV(LQ,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:140,columnNumber:11},this),"Browse Registry"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:139,columnNumber:9},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Discover and download templates from the online registry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:143,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:138,columnNumber:7},this),i.jsxDEV("div",{className:"flex-1 min-h-0 overflow-auto",children:h?i.jsxDEV(rue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:151,columnNumber:11},this):v?i.jsxDEV("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsxDEV($i,{className:"mb-4 h-12 w-12 text-destructive"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:154,columnNumber:13},this),i.jsxDEV("p",{className:"text-lg font-medium text-destructive",children:"Failed to load templates"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:155,columnNumber:13},this),i.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Please check your connection and try again"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:156,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:153,columnNumber:11},this):i.jsxDEV(iue,{templates:f,onSelect:c},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:161,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:149,columnNumber:7},this),i.jsxDEV(jue,{slug:o,onClose:()=>c(void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:166,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/RegistryPage/RegistryPage.tsx",lineNumber:100,columnNumber:5},this)}function Wue(){return i.jsxDEV(N4,{children:i.jsxDEV(Bi,{path:"/*",element:i.jsxDEV(LW,{children:i.jsxDEV(Nre,{children:i.jsxDEV(N4,{children:[i.jsxDEV(Bi,{path:"/",element:i.jsxDEV(SH,{to:"/projects",replace:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:34,columnNumber:42},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:34,columnNumber:17},this),i.jsxDEV(Bi,{path:"/projects",element:i.jsxDEV(sae,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:35,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:35,columnNumber:17},this),i.jsxDEV(Bi,{path:"/registry",element:i.jsxDEV(Hue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:36,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:36,columnNumber:17},this),i.jsxDEV(Bi,{path:"/documents",element:i.jsxDEV(eue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:37,columnNumber:51},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:37,columnNumber:17},this),i.jsxDEV(Bi,{path:"/prompts",element:i.jsxDEV(uae,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:38,columnNumber:49},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:38,columnNumber:17},this),i.jsxDEV(Bi,{path:"/profiles",element:i.jsxDEV(Eae,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:39,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:39,columnNumber:17},this),i.jsxDEV(Bi,{path:"/providers",element:i.jsxDEV(Pae,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:40,columnNumber:51},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:40,columnNumber:17},this),i.jsxDEV(Bi,{path:"/agents",element:i.jsxDEV(loe,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:41,columnNumber:48},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:41,columnNumber:17},this),i.jsxDEV(Bi,{path:"/statuses",element:i.jsxDEV(voe,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:42,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:42,columnNumber:17},this),i.jsxDEV(Bi,{path:"/board",element:i.jsxDEV(Xoe,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:43,columnNumber:47},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:43,columnNumber:17},this),i.jsxDEV(Bi,{path:"/chat",element:i.jsxDEV(qle,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:44,columnNumber:46},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:44,columnNumber:17},this),i.jsxDEV(Bi,{path:"/reviews",element:i.jsxDEV(wq,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:45,columnNumber:49},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:45,columnNumber:17},this),i.jsxDEV(Bi,{path:"/reviews/:reviewId",element:i.jsxDEV(Zce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:46,columnNumber:59},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:46,columnNumber:17},this),i.jsxDEV(Bi,{path:"/records",element:i.jsxDEV(tue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:47,columnNumber:49},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:47,columnNumber:17},this),i.jsxDEV(Bi,{path:"/epics/:id",element:i.jsxDEV(ple,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:48,columnNumber:51},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:48,columnNumber:17},this),i.jsxDEV(Bi,{path:"/events",element:i.jsxDEV(sce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:49,columnNumber:48},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:49,columnNumber:17},this),i.jsxDEV(Bi,{path:"/messages",element:i.jsxDEV(Dce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:50,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:50,columnNumber:17},this),i.jsxDEV(Bi,{path:"/automation",element:i.jsxDEV(Yce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:51,columnNumber:52},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:51,columnNumber:17},this),i.jsxDEV(Bi,{path:"/settings",element:i.jsxDEV(Zle,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:52,columnNumber:50},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:52,columnNumber:17},this),i.jsxDEV(Bi,{path:"*",element:i.jsxDEV(Jce,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:53,columnNumber:42},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:53,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:33,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:32,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:31,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:28,columnNumber:7},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/App.tsx",lineNumber:26,columnNumber:5},this)}const que=new PW({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}});try{const e=qR();KR(e??"ocean")}catch{}iE.createRoot(document.getElementById("root")).render(i.jsxDEV(tl.StrictMode,{children:i.jsxDEV(TW,{client:que,children:i.jsxDEV(QH,{children:i.jsxDEV(Wue,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/entry-client.tsx",lineNumber:30,columnNumber:9},void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/entry-client.tsx",lineNumber:29,columnNumber:7},void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/entry-client.tsx",lineNumber:28,columnNumber:5},void 0)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/entry-client.tsx",lineNumber:27,columnNumber:3},void 0));export{Lle as $,NS as A,Ze as B,xne as C,pH as D,SN as E,Vd as F,qn as G,GJ as H,re as I,st as J,qQ as K,tl as L,$b as M,Mr as N,BN as O,Ot as P,NV as Q,PN as R,Vs as S,wo as T,hf as U,bV as V,eS as W,ha as X,TN as Y,Ut as Z,Vn as _,Pe as a,vl as a0,Gi as a1,j7 as a2,vle as a3,Td as a4,ZD as a5,Dt as a6,tS as a7,ZN as a8,JN as a9,cT as aA,RN as aB,Pq as aC,$e as aD,gk as aE,YS as aF,Km as aG,UE as aH,RJ as aI,EZ as aJ,$E as aK,kQ as aL,Um as aM,Ec as aN,V7 as aa,Vf as ab,fl as ac,xc as ad,Tn as ae,Ds as af,ys as ag,ns as ah,es as ai,ds as aj,Ss as ak,ca as al,Ru as am,Ki as an,nV as ao,CN as ap,Jue as aq,lT as ar,tpe as as,uS as at,_s as au,epe as av,kN as aw,Sq as ax,AN as ay,MN as az,yne as b,mt as c,Ua as d,Vu as e,wne as f,Zs as g,ci as h,fr as i,i as j,rt as k,Pf as l,Ct as m,ce as n,js as o,Ls as p,Ps as q,b as r,Rt as s,Wr as t,gn as u,qr as v,kr as w,Ni as x,qt as y,Yb as z};