@action-llama/action-llama 0.27.0 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/container-entry.d.ts.map +1 -1
- package/dist/agents/container-entry.js +14 -0
- package/dist/agents/container-entry.js.map +1 -1
- package/dist/agents/container-runner.d.ts.map +1 -1
- package/dist/agents/container-runner.js +35 -1
- package/dist/agents/container-runner.js.map +1 -1
- package/dist/agents/harness/consumer.d.ts +13 -0
- package/dist/agents/harness/consumer.d.ts.map +1 -1
- package/dist/agents/harness/consumer.js +14 -0
- package/dist/agents/harness/consumer.js.map +1 -1
- package/dist/agents/harness/pi-harness.d.ts.map +1 -1
- package/dist/agents/harness/pi-harness.js +35 -1
- package/dist/agents/harness/pi-harness.js.map +1 -1
- package/dist/agents/session-loop.d.ts +13 -0
- package/dist/agents/session-loop.d.ts.map +1 -1
- package/dist/agents/session-loop.js +13 -2
- package/dist/agents/session-loop.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js +184 -16
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/execution/image-builder.d.ts.map +1 -1
- package/dist/execution/image-builder.js +9 -3
- package/dist/execution/image-builder.js.map +1 -1
- package/dist/frontend/assets/index-B7ACoyFQ.css +2 -0
- package/dist/frontend/assets/{index-Dq5VlyiQ.js → index-sVkxocH1.js} +1 -1
- package/dist/frontend/assets/index-sVkxocH1.js.map +1 -0
- package/dist/frontend/index.html +2 -2
- package/dist/shared/usage.d.ts.map +1 -1
- package/dist/shared/usage.js +4 -2
- package/dist/shared/usage.js.map +1 -1
- package/dist/tui/status-tracker.d.ts +1 -1
- package/dist/tui/status-tracker.d.ts.map +1 -1
- package/dist/tui/status-tracker.js.map +1 -1
- package/package.json +1 -1
- package/dist/frontend/assets/index-7kUQjEK2.css +0 -2
- package/dist/frontend/assets/index-Dq5VlyiQ.js.map +0 -1
|
@@ -11,6 +11,6 @@ Error generating stack: `+e.message+`
|
|
|
11
11
|
Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let u=at(),d;if(t){let e=typeof t==`string`?ie(t):t;w(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=se(e,{pathname:p});T(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),T(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let h=St(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:je([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:je([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?x.createElement(Ye.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,unstable_mask:void 0,...d},navigationType:`POP`}},h):h}function gt(){let e=jt(),t=Ie(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=x.createElement(x.Fragment,null,x.createElement(`p`,null,`💿 Hey developer 👋`),x.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,x.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,x.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),x.createElement(x.Fragment,null,x.createElement(`h2`,null,`Unexpected Application Error!`),x.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?x.createElement(`pre`,{style:i},n):null,o)}var _t=x.createElement(gt,null),vt=class extends x.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=nt(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:x.createElement(Xe.Provider,{value:this.props.routeContext},x.createElement(Ze.Provider,{value:e,children:this.props.component}));return this.context?x.createElement(bt,{error:e},t):t}};vt.contextType=We;var yt=new WeakMap;function bt({children:e,error:t}){let{basename:n}=x.useContext(Je);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=tt(t.digest);if(e){let r=yt.get(t);if(r)throw r;let i=ze(e.location,n);if(Re&&!yt.get(t))if(i.isExternal||e.reloadDocument)window.location.href=i.absoluteURL||i.to;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:e.replace}));throw yt.set(t,n),n}return x.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${i.absoluteURL||i.to}`})}}return e}function xt({routeContext:e,match:t,children:n}){let r=x.useContext(He);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),x.createElement(Xe.Provider,{value:e},n)}function St(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);w(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},unstable_pattern:Le(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||_t,o&&(s<0&&c===0?(Pt(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?x.createElement(n.route.Component,null):n.route.element?n.route.element:e,x.createElement(xt,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?x.createElement(vt,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function Ct(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function wt(e){let t=x.useContext(He);return w(t,Ct(e)),t}function Tt(e){let t=x.useContext(Ue);return w(t,Ct(e)),t}function Et(e){let t=x.useContext(Xe);return w(t,Ct(e)),t}function Dt(e){let t=Et(e),n=t.matches[t.matches.length-1];return w(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Ot(){return Dt(`useRouteId`)}function kt(){return Tt(`useNavigation`).navigation}function At(){let{matches:e,loaderData:t}=Tt(`useMatches`);return x.useMemo(()=>e.map(e=>D(e,t)),[e,t])}function jt(){let e=x.useContext(Ze),t=Tt(`useRouteError`),n=Dt(`useRouteError`);return e===void 0?t.errors?.[n]:e}function Mt(){let{router:e}=wt(`useNavigate`),t=Dt(`useNavigate`),n=x.useRef(!1);return st(()=>{n.current=!0}),x.useCallback(async(r,i={})=>{T(n.current,ot),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var Nt={};function Pt(e,t,n){!t&&!Nt[e]&&(Nt[e]=!0,T(!1,n))}x.useOptimistic,x.memo(Ft);function Ft({routes:e,future:t,state:n,isStatic:r,onError:i}){return ht(e,void 0,{state:n,isStatic:r,onError:i,future:t})}function It({to:e,replace:t,state:n,relative:r}){w(it(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:i}=x.useContext(Je);T(!i,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:a}=x.useContext(Xe),{pathname:o}=at(),s=ct(),c=Ae(e,ke(a),o,r===`path`),l=JSON.stringify(c);return x.useEffect(()=>{s(JSON.parse(l),{replace:t,state:n,relative:r})},[s,l,r,t,n]),null}function Lt(e){return dt(e.context)}function A(e){w(!1,`A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`)}function Rt({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,unstable_useTransitions:o}){w(!it(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=x.useMemo(()=>({basename:s,navigator:i,static:a,unstable_useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=ie(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,unstable_mask:m}=n,h=x.useMemo(()=>{let e=Ce(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,unstable_mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return T(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:x.createElement(Je.Provider,{value:c},x.createElement(Ye.Provider,{children:t,value:h}))}function zt({children:e,location:t}){return mt(Bt(e),t)}function Bt(e,t=[]){let n=[];return x.Children.forEach(e,(e,r)=>{if(!x.isValidElement(e))return;let i=[...t,r];if(e.type===x.Fragment){n.push.apply(n,Bt(e.props.children,i));return}w(e.type===A,`[${typeof e.type==`string`?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),w(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=Bt(e.props.children,i)),n.push(a)}),n}var Vt=`get`,Ht=`application/x-www-form-urlencoded`;function Ut(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function Wt(e){return Ut(e)&&e.tagName.toLowerCase()===`button`}function Gt(e){return Ut(e)&&e.tagName.toLowerCase()===`form`}function Kt(e){return Ut(e)&&e.tagName.toLowerCase()===`input`}function qt(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Jt(e,t){return e.button===0&&(!t||t===`_self`)&&!qt(e)}function Yt(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function Xt(e,t){let n=Yt(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var Zt=null;function Qt(){if(Zt===null)try{new FormData(document.createElement(`form`),0),Zt=!1}catch{Zt=!0}return Zt}var $t=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function en(e){return e!=null&&!$t.has(e)?(T(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ht}"`),null):e}function tn(e,t){let n,r,i,a,o;if(Gt(e)){let o=e.getAttribute(`action`);r=o?Ce(o,t):null,n=e.getAttribute(`method`)||Vt,i=en(e.getAttribute(`enctype`))||Ht,a=new FormData(e)}else if(Wt(e)||Kt(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?Ce(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||Vt,i=en(e.getAttribute(`formenctype`))||en(o.getAttribute(`enctype`))||Ht,a=new FormData(o,e),!Qt()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(Ut(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=Vt,r=null,i=Ht,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var nn={"&":`\\u0026`,">":`\\u003e`,"<":`\\u003c`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},rn=/[&><\u2028\u2029]/g;function an(e){return e.replace(rn,e=>nn[e])}function on(e,t){if(e===!1||e==null)throw Error(t)}function sn(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n?i.pathname.endsWith(`/`)?i.pathname=`${i.pathname}_.${r}`:i.pathname=`${i.pathname}.${r}`:i.pathname===`/`?i.pathname=`_root.${r}`:t&&Ce(i.pathname,t)===`/`?i.pathname=`${t.replace(/\/$/,``)}/_root.${r}`:i.pathname=`${i.pathname.replace(/\/$/,``)}.${r}`,i}async function cn(e,t){if(e.id in t)return t[e.id];try{let n=await b(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function ln(e){return e!=null&&typeof e.page==`string`}function un(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function dn(e,t,n){return gn((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await cn(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(un).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function fn(e,t,n,r,i,a){let o=(e,t)=>n[t]?e.route.id!==n[t].route.id:!0,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function pn(e,t,{includeHydrateFallback:n}={}){return mn(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function mn(e){return[...new Set(e)]}function hn(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function gn(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!ln(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(hn(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function _n(){let e=x.useContext(He);return on(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function vn(){let e=x.useContext(Ue);return on(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var yn=x.createContext(void 0);yn.displayName=`FrameworkContext`;function bn(){let e=x.useContext(yn);return on(e,`You must render this element inside a <HydratedRouter> element`),e}function xn(e,t){let n=x.useContext(yn),[r,i]=x.useState(!1),[a,o]=x.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=x.useRef(null);x.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),x.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:Sn(s,p),onBlur:Sn(c,m),onMouseEnter:Sn(l,p),onMouseLeave:Sn(u,m),onTouchStart:Sn(d,p)}]:[a,f,{}]:[!1,f,{}]}function Sn(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Cn({page:e,...t}){let{router:n}=_n(),r=x.useMemo(()=>se(n.routes,e,n.basename),[n.routes,e,n.basename]);return r?x.createElement(Tn,{page:e,matches:r,...t}):null}function wn(e){let{manifest:t,routeModules:n}=bn(),[r,i]=x.useState([]);return x.useEffect(()=>{let r=!1;return dn(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Tn({page:e,matches:t,...n}){let r=at(),{future:i,manifest:a,routeModules:o}=bn(),{basename:s}=_n(),{loaderData:c,matches:l}=vn(),u=x.useMemo(()=>fn(e,t,l,a,r,`data`),[e,t,l,a,r]),d=x.useMemo(()=>fn(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=x.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];!t||!t.hasLoader||(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=sn(e,s,i.unstable_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.unstable_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=x.useMemo(()=>pn(d,a),[d,a]),m=wn(d);return x.createElement(x.Fragment,null,f.map(e=>x.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>x.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>x.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function En(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}var Dn=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{Dn&&(window.__reactRouterVersion=`7.13.2`)}catch{}function On({basename:e,children:t,unstable_useTransitions:n,window:r}){let i=x.useRef();i.current??=C({window:r,v5Compat:!0});let a=i.current,[o,s]=x.useState({action:a.action,location:a.location}),c=x.useCallback(e=>{n===!1?s(e):x.startTransition(()=>s(e))},[n]);return x.useLayoutEffect(()=>a.listen(c),[a,c]),x.createElement(Rt,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,unstable_useTransitions:n})}function kn({basename:e,children:t,history:n,unstable_useTransitions:r}){let[i,a]=x.useState({action:n.action,location:n.location}),o=x.useCallback(e=>{r===!1?a(e):x.startTransition(()=>a(e))},[r]);return x.useLayoutEffect(()=>n.listen(o),[n,o]),x.createElement(Rt,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:n,unstable_useTransitions:r})}kn.displayName=`unstable_HistoryRouter`;var An=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,j=x.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,unstable_mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:g,unstable_useTransitions:_}=x.useContext(Je),v=typeof l==`string`&&An.test(l),y=ze(l,h);l=y.to;let b=rt(l,{relative:r}),ee=at(),S=null;if(o){let e=Ae(o,[],ee.unstable_mask?ee.unstable_mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:je([h,e.pathname])),S=g.createHref(e)}let[C,w,T]=xn(n,p),te=Ln(l,{replace:a,unstable_mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,unstable_defaultShouldRevalidate:f,unstable_useTransitions:_});function E(t){e&&e(t),t.defaultPrevented||te(t)}let ne=!(y.isExternal||i),re=x.createElement(`a`,{...p,...T,href:(ne?S:void 0)||y.absoluteURL||b,onClick:ne?E:e,ref:En(m,w),target:c,"data-discover":!v&&t===`render`?`true`:void 0});return C&&!v?x.createElement(x.Fragment,null,re,x.createElement(Cn,{page:b})):re});j.displayName=`Link`;var jn=x.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=pt(a,{relative:c.relative}),d=at(),f=x.useContext(Ue),{navigator:p,basename:m}=x.useContext(Je),h=f!=null&&Jn(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,_=d.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(_=_.toLowerCase(),v=v?v.toLowerCase():null,g=g.toLowerCase()),v&&m&&(v=Ce(v,m)||v);let y=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,b=_===g||!r&&_.startsWith(g)&&_.charAt(y)===`/`,ee=v!=null&&(v===g||!r&&v.startsWith(g)&&v.charAt(g.length)===`/`),S={isActive:b,isPending:ee,isTransitioning:h},C=b?e:void 0,w;w=typeof n==`function`?n(S):[n,b?`active`:null,ee?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let T=typeof i==`function`?i(S):i;return x.createElement(j,{...c,"aria-current":C,className:w,ref:l,style:T,to:a,viewTransition:o},typeof s==`function`?s(S):s)});jn.displayName=`NavLink`;var Mn=x.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=Vt,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f,...p},m)=>{let{unstable_useTransitions:h}=x.useContext(Je),g=Vn(),_=Hn(s,{relative:l}),v=o.toLowerCase()===`get`?`get`:`post`,y=typeof s==`string`&&An.test(s);return x.createElement(`form`,{ref:m,method:v,action:_,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f});h&&n!==!1?x.startTransition(()=>p()):p()},...p,"data-discover":!y&&e===`render`?`true`:void 0})});Mn.displayName=`Form`;function Nn({getKey:e,storageKey:t,...n}){let r=x.useContext(yn),{basename:i}=x.useContext(Je),a=at(),o=At();Kn({getKey:e,storageKey:t});let s=x.useMemo(()=>{if(!r||!e)return null;let t=Gn(a,o,i,e);return t===a.key?null:t},[]);if(!r||r.isSpaMode)return null;let c=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},``)}try{let n=JSON.parse(sessionStorage.getItem(e)||`{}`)[t||window.history.state.key];typeof n==`number`&&window.scrollTo(0,n)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return x.createElement(`script`,{...n,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${c})(${an(JSON.stringify(t||Un))}, ${an(JSON.stringify(s))})`}})}Nn.displayName=`ScrollRestoration`;function Pn(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Fn(e){let t=x.useContext(He);return w(t,Pn(e)),t}function In(e){let t=x.useContext(Ue);return w(t,Pn(e)),t}function Ln(e,{target:t,replace:n,unstable_mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,unstable_defaultShouldRevalidate:c,unstable_useTransitions:l}={}){let u=ct(),d=at(),f=pt(e,{relative:o});return x.useCallback(p=>{if(Jt(p,t)){p.preventDefault();let t=n===void 0?re(d)===re(f):n,m=()=>u(e,{replace:t,unstable_mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,unstable_defaultShouldRevalidate:c});l?x.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}function Rn(e){T(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=x.useRef(Yt(e)),n=x.useRef(!1),r=at(),i=x.useMemo(()=>Xt(r.search,n.current?null:t.current),[r.search]),a=ct();return[i,x.useCallback((e,t)=>{let r=Yt(typeof e==`function`?e(new URLSearchParams(i)):e);n.current=!0,a(`?`+r,t)},[a,i])]}var zn=0,Bn=()=>`__${String(++zn)}__`;function Vn(){let{router:e}=Fn(`useSubmit`),{basename:t}=x.useContext(Je),n=Ot(),r=e.fetch,i=e.navigate;return x.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=tn(e,t);a.navigate===!1?await r(a.fetcherKey||Bn(),n,a.action||o,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync}):await i(a.action||o,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function Hn(e,{relative:t}={}){let{basename:n}=x.useContext(Je),r=x.useContext(Xe);w(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...pt(e||`.`,{relative:t})},o=at();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:je([n,a.pathname])),re(a)}var Un=`react-router-scroll-positions`,Wn={};function Gn(e,t,n,r){let i=null;return r&&(i=r(n===`/`?e:{...e,pathname:Ce(e.pathname,n)||e.pathname},t)),i??=e.key,i}function Kn({getKey:e,storageKey:t}={}){let{router:n}=Fn(`useScrollRestoration`),{restoreScrollPosition:r,preventScrollReset:i}=In(`useScrollRestoration`),{basename:a}=x.useContext(Je),o=at(),s=At(),c=kt();x.useEffect(()=>(window.history.scrollRestoration=`manual`,()=>{window.history.scrollRestoration=`auto`}),[]),qn(x.useCallback(()=>{if(c.state===`idle`){let t=Gn(o,s,a,e);Wn[t]=window.scrollY}try{sessionStorage.setItem(t||Un,JSON.stringify(Wn))}catch(e){T(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${e}).`)}window.history.scrollRestoration=`auto`},[c.state,e,a,o,s,t])),typeof document<`u`&&(x.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(t||Un);e&&(Wn=JSON.parse(e))}catch{}},[t]),x.useLayoutEffect(()=>{let t=n?.enableScrollRestoration(Wn,()=>window.scrollY,e?(t,n)=>Gn(t,n,a,e):void 0);return()=>t&&t()},[n,a,e]),x.useLayoutEffect(()=>{if(r!==!1){if(typeof r==`number`){window.scrollTo(0,r);return}try{if(o.hash){let e=document.getElementById(decodeURIComponent(o.hash.slice(1)));if(e){e.scrollIntoView();return}}}catch{T(!1,`"${o.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}i!==!0&&window.scrollTo(0,0)}},[o,r,i]))}function qn(e,t){let{capture:n}=t||{};x.useEffect(()=>{let t=n==null?void 0:{capture:n};return window.addEventListener(`pagehide`,e,t),()=>{window.removeEventListener(`pagehide`,e,t)}},[e,n])}function Jn(e,{relative:t}={}){let n=x.useContext(Ge);w(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=Fn(`useViewTransitionState`),i=pt(e,{relative:t});if(!n.isTransitioning)return!1;let a=Ce(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=Ce(n.nextLocation.pathname,r)||n.nextLocation.pathname;return be(i.pathname,o)!=null||be(i.pathname,a)!=null}var Yn=g(),Xn=``;async function Zn(e,t){for(let n=0;;n++){let r=await fetch(`${Xn}${e}`,{credentials:`same-origin`,...t});if(r.status===401)throw window.location.href=`/login`,Error(`Unauthorized`);if(r.status===429&&n<2){let e=r.headers.get(`Retry-After`),t=(e?parseFloat(e)*1e3:1e3)*2**n;await new Promise(e=>setTimeout(e,t));continue}if(!r.ok){let e=await r.text(),t=e||`HTTP ${r.status}`;try{let n=JSON.parse(e);typeof n.error==`string`?t=n.error:typeof n.message==`string`&&(t=n.message)}catch{}throw Error(t)}return r.json()}}function Qn(e,t){return Zn(e,{method:`POST`,headers:t?{"Content-Type":`application/json`}:void 0,body:t?JSON.stringify(t):void 0})}function $n(e,t){return Zn(`/api/dashboard/agents/${encodeURIComponent(e)}`,t?{signal:t}:void 0)}function er(e,t){return Zn(`/api/dashboard/agents/${encodeURIComponent(e)}/skill`,t?{signal:t}:void 0)}function tr(e){return Zn(`/api/dashboard/config`,e?{signal:e}:void 0)}function nr(e,t){return Zn(`/api/stats/webhooks/${encodeURIComponent(e)}`,t?{signal:t}:void 0)}function rr(e){return Qn(`/api/webhooks/${encodeURIComponent(e)}/replay`)}function ir(e,t,n,r,i,a){let o=`/api/stats/activity?limit=${e}&offset=${t}`;return n&&(o+=`&agent=${encodeURIComponent(n)}`),r&&(o+=`&triggerType=${encodeURIComponent(r)}`),i&&i.length>0&&(o+=`&status=${i.map(encodeURIComponent).join(`,`)}`),Zn(o,a?{signal:a}:void 0)}function ar(e,t){return Zn(`/api/dashboard/triggers/${encodeURIComponent(e)}`,t?{signal:t}:void 0)}function or(e,t,n){return Zn(`/api/dashboard/agents/${encodeURIComponent(e)}/instances/${encodeURIComponent(t)}`,n?{signal:n}:void 0)}function sr(e){return Zn(`/dashboard/api/locks`,e?{signal:e}:void 0)}function cr(e,t,n,r){let i=new URLSearchParams(n).toString();return Zn(`/api/logs/agents/${encodeURIComponent(e)}/${encodeURIComponent(t)}${i?`?${i}`:``}`,r?{signal:r}:void 0)}function lr(e,t){return Qn(`/control/trigger/${encodeURIComponent(e)}`,t?{prompt:t}:void 0)}function ur(e){return Qn(`/control/agents/${encodeURIComponent(e)}/kill`)}function dr(e){return Qn(`/control/kill/${encodeURIComponent(e)}`)}function fr(e){return Qn(`/control/agents/${encodeURIComponent(e)}/enable`)}function pr(e){return Qn(`/control/agents/${encodeURIComponent(e)}/disable`)}function mr(){return Qn(`/control/pause`)}function hr(){return Qn(`/control/resume`)}function gr(e){return Qn(`/control/project/scale`,{scale:e})}function _r(e,t){return Qn(`/control/agents/${encodeURIComponent(e)}/scale`,{scale:t})}async function vr(e){return(await fetch(`/api/auth/login`,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},body:JSON.stringify({key:e})})).ok}async function yr(){await fetch(`/api/auth/logout`,{method:`POST`,credentials:`same-origin`})}function br(e,t,n,r){return Zn(`/api/logs/agents/${encodeURIComponent(e)}/${encodeURIComponent(t)}/summarize`,{method:`POST`,...n?{headers:{"Content-Type":`application/json`},body:JSON.stringify({prompt:n})}:{},signal:r})}var xr=class{es=null;backoff=1e3;maxBackoff=3e4;reconnectTimer=null;destroyed=!1;callbacks;constructor(e){this.callbacks=e}connect(){if(this.destroyed)return;this.cleanup(),this.callbacks.onConnectionChange(`connecting`);let e=new EventSource(`/dashboard/api/status-stream`);this.es=e,e.onopen=()=>{this.backoff=1e3,this.callbacks.onConnectionChange(`connected`)},e.onerror=()=>{this.callbacks.onConnectionChange(`disconnected`),this.cleanup(),this.scheduleReconnect()},e.onmessage=e=>{try{let t=JSON.parse(e.data);this.callbacks.onMessage(t)}catch{}}}disconnect(){this.destroyed=!0,this.cleanup(),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null)}cleanup(){this.es&&=(this.es.onopen=null,this.es.onerror=null,this.es.onmessage=null,this.es.close(),null)}scheduleReconnect(){this.destroyed||(this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},this.backoff),this.backoff=Math.min(this.backoff*2,this.maxBackoff))}},Sr=new Set;function Cr(e,t,n,r=500){let i={types:e,agent:t,callback:n,debounceMs:r,timer:null};return Sr.add(i),()=>{i.timer&&clearTimeout(i.timer),Sr.delete(i)}}function wr(e){for(let t of Sr)e.some(e=>t.types.includes(e.type)&&(t.agent===void 0||e.agent===t.agent))&&!t.timer&&(t.timer=setTimeout(()=>{t.timer=null,t.callback()},t.debounceMs))}var Tr={agents:[],schedulerInfo:null,recentLogs:[],instances:[],connected:!1},Er=new Set,Dr=null,Or=[];function kr(){for(let e of Er)e()}function Ar(e){return Er.add(e),()=>{Er.delete(e)}}function jr(){return Tr}function Mr(){return Or}function Nr(){return Dr?()=>{}:(Dr=new xr({onMessage:e=>{Tr={agents:e.agents??Tr.agents,schedulerInfo:e.schedulerInfo===void 0?Tr.schedulerInfo:e.schedulerInfo,recentLogs:e.recentLogs??Tr.recentLogs,instances:e.instances??Tr.instances,connected:Tr.connected},Or=e.invalidated??[],kr(),e.invalidated&&e.invalidated.length>0&&wr(e.invalidated)},onConnectionChange:e=>{let t=e===`connected`;t!==Tr.connected&&(Tr={...Tr,connected:t},kr())}}),Dr.connect(),()=>{Dr?.disconnect(),Dr=null})}function Pr(){return(0,x.useSyncExternalStore)(Ar,()=>jr().agents)}function Fr(){return(0,x.useSyncExternalStore)(Ar,()=>jr().schedulerInfo)}function Ir(){return(0,x.useSyncExternalStore)(Ar,()=>jr().recentLogs)}function Lr(){return(0,x.useSyncExternalStore)(Ar,()=>jr().instances)}function Rr(){return(0,x.useSyncExternalStore)(Ar,()=>jr().connected)}var zr=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),M=o(((e,t)=>{t.exports=zr()}))();function Br({children:e}){return(0,x.useEffect)(()=>Nr(),[]),(0,M.jsx)(M.Fragment,{children:e})}function Vr(){return{agents:Pr(),schedulerInfo:Fr(),recentLogs:Ir(),instances:Lr(),connected:Rr(),invalidated:Mr()}}function Hr(){return localStorage.getItem(`al-theme`)||`dark`}function Ur(e){document.documentElement.classList.toggle(`dark`,e===`dark`),localStorage.setItem(`al-theme`,e)}function Wr(){let e=ct(),t=at(),n=Rr(),[r,i]=(0,x.useState)(Hr);(0,x.useEffect)(()=>{Ur(r)},[r]);let a=(0,x.useCallback)(()=>{i(e=>e===`dark`?`light`:`dark`)},[]),o=(0,x.useCallback)(async()=>{await yr(),e(`/login`)},[e]),s=t.pathname===`/dashboard/config`,c=t.pathname===`/dashboard`||t.pathname.startsWith(`/dashboard/agents`),l=t.pathname===`/activity`,u=t.pathname===`/stats`;return(0,M.jsx)(`header`,{className:`border-b border-slate-200 dark:border-slate-800 px-4 sm:px-6 py-3`,children:(0,M.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,M.jsxs)(j,{to:`/dashboard`,className:`text-lg font-bold text-slate-900 dark:text-white hover:text-blue-600 dark:hover:text-blue-400 transition-colors`,children:[(0,M.jsx)(`span`,{className:`hidden sm:inline`,children:`Action Llama`}),(0,M.jsx)(`span`,{className:`sm:hidden`,children:`AL`})]}),(0,M.jsxs)(j,{to:`/dashboard`,className:`flex items-center gap-1.5 text-sm transition-colors ${c?`text-blue-600 dark:text-blue-400`:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`}`,children:[(0,M.jsxs)(`svg`,{className:`w-5 h-5 sm:w-4 sm:h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:[(0,M.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`12`,rx:`2`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,M.jsx)(`circle`,{cx:`9`,cy:`10`,r:`1.5`,fill:`currentColor`,stroke:`none`}),(0,M.jsx)(`circle`,{cx:`15`,cy:`10`,r:`1.5`,fill:`currentColor`,stroke:`none`}),(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M8 20h8M12 16v4`})]}),(0,M.jsx)(`span`,{className:`hidden sm:inline`,children:`Agents`})]}),(0,M.jsxs)(j,{to:`/activity`,className:`flex items-center gap-1.5 text-sm transition-colors ${l?`text-blue-600 dark:text-blue-400`:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`}`,children:[(0,M.jsx)(`svg`,{className:`w-5 h-5 sm:w-4 sm:h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M13 10V3L4 14h7v7l9-11h-7z`})}),(0,M.jsx)(`span`,{className:`hidden sm:inline`,children:`Activity`})]}),(0,M.jsxs)(j,{to:`/stats`,className:`flex items-center gap-1.5 text-sm transition-colors ${u?`text-blue-600 dark:text-blue-400`:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`}`,children:[(0,M.jsx)(`svg`,{className:`w-5 h-5 sm:w-4 sm:h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z`})}),(0,M.jsx)(`span`,{className:`hidden sm:inline`,children:`Stats`})]}),(0,M.jsxs)(j,{to:`/dashboard/config`,className:`flex items-center gap-1.5 text-sm transition-colors ${s?`text-blue-600 dark:text-blue-400`:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`}`,children:[(0,M.jsxs)(`svg`,{className:`w-5 h-5 sm:w-4 sm:h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:[(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z`}),(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M15 12a3 3 0 11-6 0 3 3 0 016 0z`})]}),(0,M.jsx)(`span`,{className:`hidden sm:inline`,children:`Settings`})]})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`span`,{className:`w-2 h-2 rounded-full ${n?`bg-green-500`:`bg-red-500`}`,title:n?`Connected`:`Disconnected`}),(0,M.jsx)(`button`,{onClick:a,className:`p-1.5 rounded-md text-slate-500 hover:text-slate-700 dark:hover:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors`,title:`Toggle theme`,children:r===`dark`?(0,M.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z`})}):(0,M.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z`})})}),(0,M.jsx)(`button`,{onClick:o,className:`text-sm text-slate-500 hover:text-slate-700 dark:hover:text-slate-300 transition-colors`,children:`Logout`})]})]})})}function Gr(){return(0,M.jsxs)(Br,{children:[(0,M.jsx)(Wr,{}),(0,M.jsx)(`main`,{className:`px-4 sm:px-6 py-4 max-w-7xl mx-auto`,children:(0,M.jsx)(Lt,{})})]})}function Kr({disabled:e,onQuickRun:t,onRunWithPrompt:n}){let[r,i]=(0,x.useState)(!1),a=(0,x.useRef)(null);return(0,x.useEffect)(()=>{if(!r)return;function e(e){a.current&&!a.current.contains(e.target)&&i(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]),(0,M.jsxs)(`div`,{className:`relative inline-flex`,ref:a,children:[(0,M.jsx)(`button`,{onClick:t,disabled:e,className:`px-3 py-1.5 text-xs font-medium rounded-l-md bg-green-600 hover:bg-green-700 disabled:opacity-40 disabled:cursor-not-allowed text-white transition-colors`,children:`Run`}),(0,M.jsx)(`button`,{onClick:()=>i(e=>!e),disabled:e,className:`px-1.5 py-1.5 text-xs font-medium rounded-r-md bg-green-600 hover:bg-green-700 disabled:opacity-40 disabled:cursor-not-allowed text-white transition-colors border-l border-green-700`,"aria-label":`More run options`,children:(0,M.jsx)(`svg`,{className:`w-3 h-3`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 9l-7 7-7-7`})})}),r&&(0,M.jsx)(`div`,{className:`absolute right-0 mt-8 w-40 bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-md shadow-lg z-10 py-1`,children:(0,M.jsx)(`button`,{onClick:()=>{i(!1),n()},className:`w-full text-left px-3 py-1.5 text-xs text-slate-700 dark:text-slate-200 hover:bg-slate-100 dark:hover:bg-slate-700 transition-colors`,children:`Run with Prompt`})})]})}function qr({agentName:e,onClose:t,onRun:n}){let[r,i]=(0,x.useState)(``),a=(0,x.useRef)(null);(0,x.useEffect)(()=>{a.current?.focus();let e=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[t]);let o=()=>{n(r.trim()||void 0),t()};return(0,M.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onClick:e=>{e.target===e.currentTarget&&t()},children:(0,M.jsxs)(`div`,{className:`bg-white dark:bg-slate-900 shadow-xl border-slate-200 dark:border-slate-700 w-full h-full sm:h-auto sm:max-w-md sm:mx-4 sm:rounded-lg sm:border p-5 flex flex-col`,children:[(0,M.jsxs)(`h2`,{className:`text-sm font-semibold text-slate-900 dark:text-white mb-3`,children:[`Run `,e]}),(0,M.jsx)(`textarea`,{ref:a,value:r,onChange:e=>i(e.target.value),placeholder:`Optional: describe a specific task...`,rows:3,className:`w-full px-3 py-2 text-base bg-slate-50 dark:bg-slate-950 border border-slate-300 dark:border-slate-700 rounded-md text-slate-900 dark:text-slate-200 placeholder-slate-400 dark:placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-none flex-1 sm:flex-none`,onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&o()}}),(0,M.jsxs)(`div`,{className:`flex items-center justify-end gap-2 mt-3`,children:[(0,M.jsx)(`button`,{onClick:t,className:`px-3 py-1.5 text-xs font-medium rounded-md bg-slate-200 dark:bg-slate-800 text-slate-700 dark:text-slate-300 hover:bg-slate-300 dark:hover:bg-slate-700 transition-colors`,children:`Cancel`}),(0,M.jsx)(`button`,{onClick:o,className:`px-3 py-1.5 text-xs font-medium rounded-md bg-green-600 hover:bg-green-700 text-white transition-colors`,children:`Run`})]})]})})}function Jr(){let{name:e}=ft(),t=ct(),n=at(),{agents:r}=Vr(),[i,a]=(0,x.useState)(null),[o,s]=(0,x.useState)(null),[c,l]=(0,x.useState)(!1),[u,d]=(0,x.useState)(!1),f=r.find(t=>t.name===e)??i?.agent??null;if((0,x.useEffect)(()=>{e&&$n(e).then(e=>a(e)).catch(()=>{})},[e]),(0,x.useCallback)(async e=>{s(null);try{await e()}catch(e){s(e instanceof Error?e.message:`Action failed`)}},[]),!e)return null;let p=`/dashboard/agents/${encodeURIComponent(e)}`,m=n.pathname===p||n.pathname===p+`/`,h=n.pathname.endsWith(`/stats`),g=n.pathname.endsWith(`/settings`)||n.pathname.endsWith(`/admin`),_=e=>`pb-2 text-sm font-medium transition-colors ${e?`text-blue-600 dark:text-blue-400 border-b-2 border-blue-600 dark:border-blue-400`:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`}`;return(0,M.jsxs)(`div`,{className:`space-y-4`,children:[(0,M.jsxs)(`div`,{className:`space-y-1`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center gap-1 text-xs text-slate-500 dark:text-slate-400`,children:[(0,M.jsx)(j,{to:`/dashboard`,className:`hover:text-slate-700 dark:hover:text-slate-300 transition-colors`,children:`Agents`}),(0,M.jsx)(`span`,{children:`›`})]}),(0,M.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white`,children:e}),f&&!f.enabled&&(0,M.jsx)(`span`,{className:`text-xs text-slate-500 italic`,children:`(disabled)`})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(Kr,{disabled:f?!f.enabled:!1,onQuickRun:async()=>{try{let n=await lr(e,void 0);n?.instanceId&&t(`/dashboard/agents/${encodeURIComponent(e)}/instances/${encodeURIComponent(n.instanceId)}`)}catch(e){s(e instanceof Error?e.message:`Action failed`)}},onRunWithPrompt:()=>d(!0)}),(0,M.jsx)(`button`,{id:`agent-kill-btn`,onClick:async()=>{l(!0),s(null);try{await ur(e)}catch(e){s(e instanceof Error?e.message:`Action failed`)}finally{l(!1)}},disabled:!f||f.runningCount===0||c,className:`px-3 py-1.5 text-xs font-medium rounded-md bg-red-600 hover:bg-red-700 disabled:opacity-40 disabled:cursor-not-allowed text-white transition-colors`,children:c?(0,M.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,M.jsxs)(`svg`,{className:`w-3 h-3 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,M.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,M.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),`Killing…`]}):`Kill`})]})]})]}),(0,M.jsxs)(`div`,{className:`flex gap-6 border-b border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(j,{to:p,className:_(m),children:`Activity`}),(0,M.jsx)(j,{to:`${p}/stats`,className:_(h),children:`Stats`}),(0,M.jsx)(j,{to:`${p}/settings`,className:_(g),children:`Settings`})]}),o&&(0,M.jsx)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-3 text-sm text-red-700 dark:text-red-400`,children:o}),f?.lastError&&(0,M.jsxs)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-3`,children:[(0,M.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-red-700 dark:text-red-400`,children:`Latest Agent Error`}),(0,M.jsx)(`div`,{className:`mt-1 text-sm text-red-700 dark:text-red-300 font-mono break-words`,children:f.lastError})]}),(0,M.jsx)(Lt,{}),u&&e&&(0,M.jsx)(qr,{agentName:e,onClose:()=>d(!1),onRun:async n=>{try{let r=await lr(e,n);r?.instanceId&&t(`/dashboard/agents/${encodeURIComponent(e)}/instances/${encodeURIComponent(r.instanceId)}`)}catch(e){s(e instanceof Error?e.message:`Action failed`)}}})]})}var Yr=new Map;function Xr(e){let t=Yr.get(e);if(t)for(let e of t.listeners)e()}function Zr(e,t){let n=Yr.get(e);if(n){n.refCount++,n.fetcher=t.fetcher;return}let r={data:null,error:null,status:`idle`,refCount:1,fetcher:t.fetcher,abortController:null,inFlight:!1,dirty:!1,pollTimer:null,signalUnsubscribe:null,listeners:new Set,lastSnapshot:null};Yr.set(e,r),t.invalidateOn&&t.invalidateOn.length>0&&(r.signalUnsubscribe=Cr(t.invalidateOn,t.invalidateAgent,()=>$r(e),t.debounceMs??500)),t.pollIntervalMs&&t.enabled!==!1&&(r.pollTimer=setInterval(()=>$r(e),t.pollIntervalMs)),t.enabled!==!1&&$r(e)}function Qr(e){let t=Yr.get(e);t&&(t.refCount--,t.refCount<=0&&(t.abortController&&t.abortController.abort(),t.pollTimer&&clearInterval(t.pollTimer),t.signalUnsubscribe&&t.signalUnsubscribe(),Yr.delete(e)))}function $r(e){let t=Yr.get(e);if(!t||!t.fetcher)return;if(t.inFlight){t.dirty=!0;return}t.inFlight=!0,t.dirty=!1;let n=new AbortController;t.abortController=n,t.status===`idle`&&(t.status=`loading`,Xr(e)),t.fetcher(n.signal).then(e=>{n.signal.aborted||(t.data=e,t.error=null,t.status=`success`)}).catch(e=>{n.signal.aborted||(t.error=e instanceof Error?e:Error(String(e)),t.status=`error`)}).finally(()=>{n.signal.aborted||(t.inFlight=!1,t.abortController=null,Xr(e),t.dirty&&$r(e))})}function ei(e,t){let n=Yr.get(e);return n?(n.listeners.add(t),()=>{n.listeners.delete(t)}):()=>{}}var ti={data:null,error:null,isLoading:!1};function ni(e){let t=Yr.get(e);if(!t)return ti;let n=t.status===`loading`||t.status===`idle`&&t.inFlight,r=t.lastSnapshot;if(r&&r.data===t.data&&r.error===t.error&&r.isLoading===n)return r;let i={data:t.data,error:t.error,isLoading:n};return t.lastSnapshot=i,i}function ri(e){let{key:t,fetcher:n,invalidateOn:r,invalidateAgent:i,pollIntervalMs:a,debounceMs:o,enabled:s=!0,keyChangeDebounceMs:c}=e,l=(0,x.useRef)(n);l.current=n;let u=(0,x.useCallback)(e=>l.current(e),[]),d=(0,x.useRef)(t),[f,p]=(0,x.useState)(t);(0,x.useEffect)(()=>{if(t===d.current)return;if(d.current=t,!c){p(t);return}let e=setTimeout(()=>p(t),c);return()=>clearTimeout(e)},[t,c]);let m=r?.join(`,`);(0,x.useEffect)(()=>(Zr(f,{fetcher:u,invalidateOn:r,invalidateAgent:i,pollIntervalMs:a,debounceMs:o,enabled:s}),()=>Qr(f)),[f,u,m,i,a,o,s]);let h=(0,x.useSyncExternalStore)((0,x.useCallback)(e=>ei(f,e),[f]),(0,x.useCallback)(()=>ni(f),[f])),g=(0,x.useCallback)(()=>$r(f),[f]);return{data:h.data,error:h.error,isLoading:h.isLoading,refetch:g}}function ii({label:e}){return(0,M.jsx)(`span`,{className:`inline-block px-1.5 py-0 text-[10px] leading-4 font-medium rounded ${{schedule:`bg-blue-50 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400`,github:`bg-purple-50 text-purple-600 dark:bg-purple-900/30 dark:text-purple-400`,sentry:`bg-orange-50 text-orange-600 dark:bg-orange-900/30 dark:text-orange-400`,linear:`bg-indigo-50 text-indigo-600 dark:bg-indigo-900/30 dark:text-indigo-400`,slack:`bg-green-50 text-green-600 dark:bg-green-900/30 dark:text-green-400`,discord:`bg-violet-50 text-violet-600 dark:bg-violet-900/30 dark:text-violet-400`,twitter:`bg-sky-50 text-sky-600 dark:bg-sky-900/30 dark:text-sky-400`,mintlify:`bg-teal-50 text-teal-600 dark:bg-teal-900/30 dark:text-teal-400`,manual:`bg-slate-100 text-slate-600 dark:bg-slate-800/50 dark:text-slate-400`,agent:`bg-amber-50 text-amber-600 dark:bg-amber-900/30 dark:text-amber-400`}[e.split(` `)[0]]??`bg-slate-50 text-slate-500 dark:bg-slate-800/50 dark:text-slate-400`}`,children:e})}var ai={schedule:`bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300`,webhook:`bg-purple-100 text-purple-700 dark:bg-purple-900/40 dark:text-purple-300`,agent:`bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300`};function oi({type:e}){return(0,M.jsx)(`span`,{className:`px-1.5 py-0.5 text-xs font-medium rounded ${ai[e]??`bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300`}`,children:e})}function si({result:e,deadLetterReason:t}){return e===`pending`?(0,M.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-400`,children:`pending`}):e===`completed`||e===`rerun`?(0,M.jsx)(`span`,{className:`text-green-600 dark:text-green-400 text-xs font-medium`,children:e}):e===`dead-letter`?(0,M.jsx)(`span`,{className:`px-1.5 py-0.5 text-xs font-medium rounded bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300`,children:t?{no_match:`No Match`,validation_failed:`Validation Failed`,parse_error:`Parse Error`}[t]??t:`Dead Letter`}):e===`error`?(0,M.jsx)(`span`,{className:`text-red-600 dark:text-red-400 text-xs font-medium`,children:`error`}):e===`running`?(0,M.jsxs)(`span`,{className:`flex items-center gap-1 text-blue-600 dark:text-blue-400 text-xs font-medium`,children:[(0,M.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-blue-500 animate-pulse`}),`running`]}):(0,M.jsx)(`span`,{className:`text-slate-500 text-xs`,children:e})}var ci=x.createContext(null);function li(){let{name:e,id:t}=ft(),n=at(),[r,i]=(0,x.useState)(!1),[a,o]=(0,x.useState)(null),[s,c]=(0,x.useState)(!1),{data:l}=ri({key:`instance-detail:${e}:${t}`,fetcher:n=>or(e,t,n),invalidateOn:[`instance`],invalidateAgent:e,enabled:!!e&&!!t}),u=l?.runningInstance!=null,d=(0,x.useCallback)(async()=>{if(t){i(!0),o(null);try{await dr(t)}catch(e){o(e instanceof Error?e.message:`Action failed`)}finally{i(!1)}}},[t]);if(!e||!t)return null;let f=`/dashboard/agents/${encodeURIComponent(e)}/instances/${encodeURIComponent(t)}`,p=n.pathname===f||n.pathname===f+`/`,m=n.pathname.endsWith(`/trigger`),h=n.pathname.endsWith(`/telemetry`),g=e=>`pb-2 text-sm font-medium transition-colors flex items-center gap-1.5 ${e?`text-blue-600 dark:text-blue-400 border-b-2 border-blue-600 dark:border-blue-400`:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`}`,_=l?.run,v={detail:l??null,name:e,id:t,isRunning:u};return(0,M.jsx)(ci.Provider,{value:v,children:(0,M.jsxs)(`div`,{className:`space-y-4`,children:[(0,M.jsxs)(`div`,{className:`space-y-1`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center gap-1 text-xs text-slate-500 dark:text-slate-400`,children:[(0,M.jsx)(j,{to:`/dashboard`,className:`hover:text-slate-700 dark:hover:text-slate-300 transition-colors`,children:`Agents`}),(0,M.jsx)(`span`,{children:`›`}),(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(e)}`,className:`hover:text-slate-700 dark:hover:text-slate-300 transition-colors`,children:e}),(0,M.jsx)(`span`,{children:`›`})]}),(0,M.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`div`,{children:(0,M.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white font-mono break-all`,children:t}),(0,M.jsx)(`button`,{onClick:()=>{navigator.clipboard.writeText(t),c(!0),setTimeout(()=>c(!1),2e3)},className:`text-slate-400 hover:text-slate-600 dark:hover:text-slate-300 transition-colors`,title:`Copy instance ID`,children:s?(0,M.jsx)(`svg`,{className:`w-4 h-4 text-green-500`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M5 13l4 4L19 7`})}):(0,M.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z`})})})]})}),_&&(0,M.jsx)(si,{result:_.result}),u&&!_&&(0,M.jsx)(`span`,{className:`text-xs text-blue-600 dark:text-blue-400 font-medium`,children:`running`})]}),u&&(0,M.jsx)(`button`,{onClick:d,disabled:r,className:`px-3 py-1.5 text-xs font-medium rounded-md bg-red-600 hover:bg-red-700 disabled:opacity-40 disabled:cursor-not-allowed text-white transition-colors`,children:r?(0,M.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,M.jsxs)(`svg`,{className:`w-3 h-3 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,M.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,M.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),`Killing…`]}):`Kill`})]})]}),(0,M.jsxs)(`div`,{className:`flex gap-6 border-b border-slate-200 dark:border-slate-800`,children:[(0,M.jsxs)(j,{to:f,className:g(p),children:[(0,M.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z`})}),`Logs`]}),(0,M.jsxs)(j,{to:`${f}/trigger`,className:g(m),children:[(0,M.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M13 10V3L4 14h7v7l9-11h-7z`})}),`Trigger`]}),(0,M.jsxs)(j,{to:`${f}/telemetry`,className:g(h),children:[(0,M.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z`})}),`Telemetry`]})]}),a&&(0,M.jsx)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-3 text-sm text-red-700 dark:text-red-400`,children:a}),(0,M.jsx)(Lt,{})]})})}function ui(){let[e,t]=(0,x.useState)(``),[n,r]=(0,x.useState)(null),[i,a]=(0,x.useState)(!1),o=ct(),s=(0,x.useCallback)(async t=>{t.preventDefault(),r(null),a(!0);try{await vr(e)?o(`/dashboard`):r(`Invalid API key`)}catch{r(`Login failed`)}finally{a(!1)}},[e,o]);return(0,M.jsx)(`div`,{className:`flex items-center justify-center min-h-screen`,children:(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-xl p-8 w-full max-w-sm mx-4`,children:[(0,M.jsx)(`h1`,{className:`text-2xl font-bold text-slate-900 dark:text-white text-center mb-2`,children:`Action Llama`}),(0,M.jsx)(`p`,{className:`text-slate-500 dark:text-slate-400 text-sm text-center mb-6`,children:`Enter your API key to access the dashboard`}),n&&(0,M.jsx)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-3 mb-4 text-sm text-red-700 dark:text-red-400 text-center`,children:n}),(0,M.jsxs)(`form`,{onSubmit:s,children:[(0,M.jsx)(`label`,{htmlFor:`key`,className:`block text-sm text-slate-500 dark:text-slate-400 mb-1.5`,children:`API Key`}),(0,M.jsx)(`input`,{type:`password`,id:`key`,value:e,onChange:e=>t(e.target.value),placeholder:`Paste your gateway API key`,autoFocus:!0,required:!0,className:`w-full px-3 py-2.5 bg-white dark:bg-slate-950 border border-slate-300 dark:border-slate-700 rounded-lg text-slate-900 dark:text-slate-200 text-base outline-none focus:border-blue-500 dark:focus:border-blue-400 transition-colors`}),(0,M.jsx)(`button`,{type:`submit`,disabled:i,className:`w-full mt-4 px-4 py-2.5 bg-blue-600 hover:bg-blue-700 disabled:opacity-50 text-white rounded-lg text-sm font-medium transition-colors`,children:i?`Logging in...`:`Log in`})]}),(0,M.jsx)(`p`,{className:`text-slate-400 dark:text-slate-500 text-xs text-center mt-4`,children:`Key is stored at ~/.action-llama/credentials/gateway_api_key/default/key`})]})})}function di(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Math.abs(t)}function fi(e){return di(e)%360}function pi(e,t){if(t.length===0)return fi(e);let n=[...t].sort(),r=n.indexOf(e);return r===-1?fi(e):r/n.length*360}function N(e,t){let n=t&&t.length>0?pi(e,t):fi(e);return{"--agent-hue":n}}var mi={running:`border-l-2 border-l-blue-500 dark:border-l-blue-400 bg-blue-50/40 dark:bg-blue-950/20`,building:`border-l-2 border-l-yellow-500 dark:border-l-yellow-400 bg-yellow-50/40 dark:bg-yellow-950/20`,error:`border-l-2 border-l-red-500 dark:border-l-red-400 bg-red-50/30 dark:bg-red-950/20`,idle:``},hi={running:`bg-blue-500`,building:`bg-yellow-500`,error:`bg-red-500`,idle:`bg-slate-400`};function gi({agent:e}){return(0,M.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-full ${hi[e.state]??`bg-slate-400`}`,title:e.state})}function _i(){return(0,M.jsxs)(`svg`,{className:`w-3 h-3 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,M.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,M.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]})}function vi({agent:e,isPaused:t,onAction:n,onRunClick:r,killingAgents:i,onKillAgent:a}){let[o,s]=(0,x.useState)(!1),c=(0,x.useRef)(null);return(0,x.useEffect)(()=>{if(!o)return;let e=e=>{c.current&&!c.current.contains(e.target)&&s(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[o]),(0,M.jsxs)(`div`,{className:`relative`,ref:c,children:[(0,M.jsxs)(`button`,{onClick:()=>s(e=>!e),className:`px-2 py-1 text-xs rounded bg-slate-200 dark:bg-slate-700 text-slate-700 dark:text-slate-300 hover:bg-slate-300 dark:hover:bg-slate-600 transition-colors`,children:[`Actions`,(0,M.jsx)(`svg`,{className:`w-3 h-3 ml-1 inline-block`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 9l-7 7-7-7`})})]}),o&&(0,M.jsxs)(`div`,{className:`absolute right-0 mt-1 z-10 bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-md shadow-lg py-1 min-w-[100px]`,children:[(0,M.jsx)(`button`,{onClick:()=>{r(),s(!1)},disabled:!e.enabled||t,className:`w-full text-left px-3 py-1.5 text-xs text-green-700 dark:text-green-400 hover:bg-slate-100 dark:hover:bg-slate-700 disabled:opacity-40 disabled:cursor-not-allowed`,children:`Run`}),(0,M.jsx)(`button`,{onClick:()=>{a(e.name),s(!1)},disabled:e.runningCount===0||i.has(e.name),className:`w-full text-left px-3 py-1.5 text-xs text-red-700 dark:text-red-400 hover:bg-slate-100 dark:hover:bg-slate-700 disabled:opacity-40 disabled:cursor-not-allowed`,children:i.has(e.name)?(0,M.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,M.jsx)(_i,{}),`Killing…`]}):`Kill`}),(0,M.jsx)(`button`,{onClick:()=>{n(()=>e.enabled?pr(e.name):fr(e.name)),s(!1)},className:`w-full text-left px-3 py-1.5 text-xs text-slate-700 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-700`,children:e.enabled?`Disable`:`Enable`})]})]})}function yi(){let e=ct(),{agents:t,schedulerInfo:n}=Vr(),r=t.map(e=>e.name),[i,a]=(0,x.useState)(null),[o,s]=(0,x.useState)(new Set),[c,l]=(0,x.useState)(null),[u,d]=(0,x.useState)(``),[f,p]=(0,x.useState)(``),m=(0,x.useRef)(void 0);(0,x.useEffect)(()=>(clearTimeout(m.current),m.current=setTimeout(()=>{p(u)},150),()=>clearTimeout(m.current)),[u]);let h=(0,x.useCallback)(async e=>{a(null);try{await e()}catch(e){a(e instanceof Error?e.message:`Action failed`)}},[]),g=(0,x.useCallback)(async e=>{s(t=>new Set(t).add(e)),a(null);try{await ur(e)}catch(e){a(e instanceof Error?e.message:`Action failed`)}finally{s(t=>{let n=new Set(t);return n.delete(e),n})}},[]),_=n?.paused??!1,v=f?t.filter(e=>{let t=f.toLowerCase();return e.name.toLowerCase().includes(t)||(e.description?.toLowerCase().includes(t)??!1)}):t;return(0,M.jsxs)(`div`,{className:`space-y-6`,children:[i&&(0,M.jsx)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-3 text-sm text-red-700 dark:text-red-400`,children:i}),_&&(0,M.jsx)(`div`,{className:`bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-3 text-sm text-yellow-700 dark:text-yellow-400 font-medium`,children:`Scheduler is paused`}),(0,M.jsx)(`div`,{className:`flex items-center justify-between flex-wrap gap-3`,children:(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white`,children:`Agents`})}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`flex items-center justify-end px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsxs)(`div`,{className:`relative`,children:[(0,M.jsx)(`input`,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:`Search agents…`,className:`pl-3 pr-7 py-1 text-base rounded-md border border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-900 dark:text-white placeholder-slate-400 focus:outline-none focus:ring-1 focus:ring-blue-500 w-48`}),u&&(0,M.jsx)(`button`,{onClick:()=>d(``),className:`absolute right-1.5 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 dark:hover:text-slate-300`,"aria-label":`Clear search`,children:(0,M.jsx)(`svg`,{className:`w-3.5 h-3.5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M6 18L18 6M6 6l12 12`})})})]})}),(0,M.jsx)(`div`,{className:`overflow-x-auto`,children:(0,M.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,M.jsx)(`thead`,{children:(0,M.jsxs)(`tr`,{className:`border-b border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`th`,{className:`w-10 px-2 py-2.5`}),(0,M.jsx)(`th`,{className:`text-left px-4 py-2.5 text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Agent`}),(0,M.jsx)(`th`,{className:`hidden lg:table-cell text-left px-4 py-2.5 text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Description`}),(0,M.jsx)(`th`,{className:`text-right px-4 py-2.5 text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Actions`})]})}),(0,M.jsxs)(`tbody`,{children:[v.map(e=>(0,M.jsxs)(`tr`,{className:`border-b border-slate-100 dark:border-slate-800/50 last:border-0 hover:bg-slate-100/50 dark:hover:bg-slate-800/30 ${mi[e.state]??``}`,children:[(0,M.jsx)(`td`,{className:`w-10 px-2 py-2.5 align-middle text-center`,children:(0,M.jsx)(gi,{agent:e})}),(0,M.jsxs)(`td`,{className:`px-4 py-2.5 min-w-0 max-w-[240px]`,children:[(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(e.name)}`,className:`font-medium hover:underline truncate block`,title:e.name,children:(0,M.jsx)(`span`,{className:`agent-color-text truncate`,style:{fontSize:`16px`,...N(e.name,r)},children:e.name})}),!e.enabled&&(0,M.jsx)(`span`,{className:`ml-1 text-xs text-slate-500 italic`,children:`(disabled)`}),(e.triggers?.length??0)>0&&(0,M.jsx)(`div`,{className:`flex flex-wrap gap-1 mt-0.5`,children:e.triggers.map(e=>(0,M.jsx)(ii,{label:e},e))}),e.description&&(0,M.jsx)(`div`,{className:`lg:hidden text-xs text-slate-500 dark:text-slate-400 mt-0.5 truncate`,children:e.description}),e.lastError&&(0,M.jsx)(`div`,{className:`mt-1 text-xs text-red-600 dark:text-red-400 truncate`,title:e.lastError,children:e.lastError})]}),(0,M.jsx)(`td`,{className:`hidden lg:table-cell px-4 py-2.5 text-xs text-slate-500 dark:text-slate-400 min-w-0 max-w-[300px] truncate`,children:e.description??`—`}),(0,M.jsxs)(`td`,{className:`px-4 py-2.5 text-right`,children:[(0,M.jsxs)(`div`,{className:`hidden sm:flex items-center justify-end gap-1.5`,children:[(0,M.jsx)(`button`,{onClick:()=>l(e.name),disabled:!e.enabled||_,className:`px-2 py-1 text-xs rounded bg-green-600 hover:bg-green-700 disabled:opacity-40 disabled:cursor-not-allowed text-white transition-colors`,title:`Trigger run`,children:`Run`}),(0,M.jsx)(`button`,{onClick:()=>g(e.name),disabled:e.runningCount===0||o.has(e.name),className:`px-2 py-1 text-xs rounded bg-red-600 hover:bg-red-700 disabled:opacity-40 disabled:cursor-not-allowed text-white transition-colors`,title:`Kill all instances`,children:o.has(e.name)?(0,M.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,M.jsx)(_i,{}),`Killing…`]}):`Kill`}),(0,M.jsx)(`button`,{onClick:()=>h(()=>e.enabled?pr(e.name):fr(e.name)),className:`px-2 py-1 text-xs rounded transition-colors ${e.enabled?`bg-slate-200 dark:bg-slate-700 text-slate-700 dark:text-slate-300 hover:bg-slate-300 dark:hover:bg-slate-600`:`bg-blue-600 hover:bg-blue-700 text-white`}`,children:e.enabled?`Disable`:`Enable`})]}),(0,M.jsx)(`div`,{className:`sm:hidden`,children:(0,M.jsx)(vi,{agent:e,isPaused:_,onAction:h,onRunClick:()=>l(e.name),killingAgents:o,onKillAgent:g})})]})]},e.name)),v.length===0&&f&&(0,M.jsx)(`tr`,{children:(0,M.jsxs)(`td`,{colSpan:4,className:`px-4 py-8 text-center text-slate-500 dark:text-slate-400`,children:[`No agents matching ‘`,f,`’`]})}),v.length===0&&!f&&(0,M.jsx)(`tr`,{children:(0,M.jsx)(`td`,{colSpan:4,className:`px-4 py-8 text-center text-slate-500 dark:text-slate-400`,children:`No agents found`})})]})]})})]}),c&&(0,M.jsx)(qr,{agentName:c,onClose:()=>l(null),onRun:async t=>{let n=c;try{let r=await lr(n,t);r?.instanceId&&e(`/dashboard/agents/${encodeURIComponent(n)}/instances/${encodeURIComponent(r.instanceId)}`)}catch(e){a(e instanceof Error?e.message:`Action failed`)}}})]})}var bi=c(m(),1);function xi(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o;n.key&&n.debug?.call(n)&&(o=Date.now());let s=e();if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug?.call(n)&&(c=Date.now()),i=t(...s),n.key&&n.debug?.call(n)){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
|
|
12
12
|
font-size: .6rem;
|
|
13
13
|
font-weight: bold;
|
|
14
|
-
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i}return o.updateDeps=e=>{r=e},o}function Si(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var Ci=(e,t)=>Math.abs(e-t)<1.01,wi=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},Ti=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},Ei=e=>e,Di=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},Oi=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(Ti(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(Ti(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},ki={passive:!0},Ai=typeof window>`u`?!0:`onscrollend`in window,ji=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=0,a=e.options.useScrollendEvent&&Ai?()=>void 0:wi(r,()=>{t(i,!1)},e.options.isScrollingResetDelay),o=r=>()=>{let{horizontal:o,isRtl:s}=e.options;i=o?n.scrollLeft*(s&&-1||1):n.scrollTop,a(),t(i,r)},s=o(!0),c=o(!1);n.addEventListener(`scroll`,s,ki);let l=e.options.useScrollendEvent&&Ai;return l&&n.addEventListener(`scrollend`,c,ki),()=>{n.removeEventListener(`scroll`,s),l&&n.removeEventListener(`scrollend`,c)}},Mi=(e,t,n)=>{if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},Ni=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;let o=e+t;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:o,behavior:n})},Pi=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{n===void 0&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Ei,rangeExtractor:Di,onChange:()=>{},measureElement:Mi,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=xi(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=xi(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(e,t,n,r,i,a)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a}),{key:!1}),this.getMeasurements=xi(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a},o)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);let c=this.measurementsCache.slice(0,s),l=Array(a).fill(void 0);for(let e=0;e<s;e++){let t=c[e];t&&(l[t.lane]=e)}for(let i=s;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,u;if(a!==void 0&&this.options.lanes>1){s=a;let e=l[s],r=e===void 0?void 0:c[e];u=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?c[i-1]:this.getFurthestMeasurement(c,i);u=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(i,s)}let d=o.get(e),f=typeof d==`number`?d:this.options.estimateSize(i),p=u+f;c[i]={index:i,start:u,size:f,end:p,key:e,lane:s},l[s]=i}return this.measurementsCache=c,c},{key:!1,debug:()=>this.options.debug}),this.calculateRange=xi(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?Ii({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=xi(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);r!==0&&(this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?n.start<this.getScrollOffset()+this.scrollAdjustments:this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this))&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.getVirtualItems=xi(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length!==0)return Si(t[Fi(0,t.length-1,e=>Si(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t);this.scrollState={index:null,align:t,behavior:n,startedAt:this.now(),lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e;this.scrollState={index:null,align:`start`,behavior:t,startedAt:this.now(),lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1)t=e[e.length-1]?.end??0;else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&Ci(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.scrollState=null;return}}else this.scrollState.stableFrames=0,n&&(this.scrollState.lastTargetOffset=t,this.scrollState.behavior=`auto`,this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}));this.scheduleScrollReconcile()}},Fi=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function Ii({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){let i=e.length-1,a=t=>e[t].start;if(e.length<=r)return{startIndex:0,endIndex:i};let o=Fi(0,i,a,n),s=o;if(r===1)for(;s<i&&e[s].end<n+t;)s++;else if(r>1){let a=Array(r).fill(0);for(;s<i&&a.some(e=>e<n+t);){let t=e[s];a[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(i,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var Li=typeof document<`u`?x.useLayoutEffect:x.useEffect;function Ri({useFlushSync:e=!0,...t}){let n=x.useReducer(()=>({}),{})[1],r={...t,onChange:(r,i)=>{var a;e&&i?(0,bi.flushSync)(n):n(),(a=t.onChange)==null||a.call(t,r,i)}},[i]=x.useState(()=>new Pi(r));return i.setOptions(r),Li(()=>i._didMount(),[]),Li(()=>i._willUpdate()),i}function P(e){return Ri({observeElementRect:Oi,observeElementOffset:ji,scrollToFn:Ni,...e})}function F(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}function zi(e){return!e||e===0?`$0.00`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function Bi(e){return!e||e===0?`0`:e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function Vi(e){return e.length<=9?e:`${e.slice(0,4)}\u2026${e.slice(-4)}`}function Hi(e){return new Date(e).toLocaleString()}function Ui(e){let t=Date.now()-new Date(e).getTime();if(t<0)return``;let n=Math.floor(t/36e5);return n<1?`last ${Math.floor(t/6e4)}m`:n<24?`last ${n}h`:`last ${Math.floor(n/24)}d`}function Wi(e,t=6){let n=Date.now()-new Date(e).getTime();if(n<0||n>=t*36e5)return new Date(e).toLocaleString();let r=Math.floor(n/1e3);if(r<60)return`${r}s ago`;let i=Math.floor(r/60);return i<60?`${i} min ago`:`${Math.floor(i/60)}h ago`}var Gi={pending:`bg-amber-400`,running:`bg-blue-500 animate-pulse`,completed:`bg-green-500`,error:`bg-red-500`,"dead-letter":`bg-red-300 dark:bg-red-800`,rerun:`bg-green-500`},Ki={pending:`Pending`,running:`Running`,completed:`Completed`,error:`Error`,"dead-letter":`Dead Letter`,rerun:`Rerun`},qi={pending:`border-l-2 border-l-amber-400 dark:border-l-amber-500 bg-amber-50/40 dark:bg-amber-950/20`,running:`border-l-2 border-l-blue-500 dark:border-l-blue-400 bg-blue-50/40 dark:bg-blue-950/20`,completed:`border-l-2 border-l-green-500 dark:border-l-green-400`,error:`border-l-2 border-l-red-500 dark:border-l-red-400 bg-red-50/30 dark:bg-red-950/20`,"dead-letter":`border-l-2 border-l-red-300 dark:border-l-red-700 bg-red-50/20 dark:bg-red-950/10`,rerun:`border-l-2 border-l-green-500 dark:border-l-green-400`};function Ji(e){return e.triggerType===`webhook`&&e.triggerSource?e.eventSummary&&e.eventSummary!==e.triggerSource?`${e.triggerSource} ${e.eventSummary}`:e.triggerSource:e.triggerType}function Yi(e){return!!(e.agentName&&e.instanceId)&&e.result!==`pending`&&e.result!==`running`&&e.result!==`dead-letter`}var Xi=(0,x.memo)(function({row:e,agentNames:t}){let[n,r]=(0,x.useState)(!1),[i,a]=(0,x.useState)(null),[o,s]=(0,x.useState)(null),[c,l]=(0,x.useState)(!1),[u,d]=(0,x.useState)(!1),f=e.instanceId??``,p=e.result===`dead-letter`,m=Ji(e),h=i??e.summary??null,g=Yi(e),_=!c,v=(0,x.useCallback)(async()=>{if(!(!e.agentName||!f)){r(!0),s(null);try{let t=await br(e.agentName,f);t.summary&&a(t.summary)}catch(e){s(e instanceof Error?e.message:`Failed to generate summary`)}finally{r(!1)}}},[e.agentName,f]),y=(0,x.useCallback)(()=>l(e=>!e),[]),b=(0,x.useCallback)(()=>d(e=>!e),[]),ee=e.instanceId?`/dashboard/triggers/${encodeURIComponent(e.instanceId)}`:e.webhookReceiptId?`/dashboard/webhooks/${encodeURIComponent(e.webhookReceiptId)}`:null,S=ee?(0,M.jsxs)(j,{to:ee,className:`inline-flex items-center gap-1 hover:underline`,children:[(0,M.jsx)(ii,{label:m}),e.triggerType!==`webhook`&&e.triggerSource&&(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:e.triggerSource})]}):(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,M.jsx)(ii,{label:m}),e.triggerType!==`webhook`&&e.triggerSource&&(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:e.triggerSource})]}),C=!p&&e.agentName&&e.instanceId?(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(e.agentName)}/instances/${encodeURIComponent(e.instanceId)}`,className:`font-medium hover:underline truncate block`,children:(0,M.jsx)(`span`,{className:`agent-color-text truncate text-sm md:text-base`,style:N(e.agentName,t),children:e.instanceId})}):!p&&e.agentName?(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(e.agentName)}`,className:`font-medium hover:underline truncate block`,children:(0,M.jsx)(`span`,{className:`agent-color-text truncate text-sm md:text-base`,style:N(e.agentName,t),children:e.agentName})}):null;return(0,M.jsxs)(`tr`,{className:`border-b border-slate-100 dark:border-slate-800/50 last:border-b-0 hover:bg-slate-100/60 dark:hover:bg-slate-800/40 transition-colors ${qi[e.result]??``}`,children:[(0,M.jsx)(`td`,{className:`pl-4 pr-3 py-2.5 text-slate-600 dark:text-slate-400 text-xs whitespace-nowrap align-top`,title:new Date(e.ts).toLocaleString(),children:(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,M.jsx)(`span`,{className:`w-2 h-2 rounded-full shrink-0 ${Gi[e.result]??`bg-slate-400`}`,title:Ki[e.result]??e.result}),Wi(e.ts)]})}),(0,M.jsx)(`td`,{className:`pl-2 pr-2 py-2.5 whitespace-nowrap max-w-[200px] align-top`,children:(0,M.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[C,(0,M.jsx)(`div`,{className:`mt-0.5`,children:S}),p&&e.deadLetterReason&&(0,M.jsx)(`span`,{className:`text-xs text-red-500 dark:text-red-400`,children:e.deadLetterReason.replace(/_/g,` `)}),g&&(0,M.jsx)(`div`,{className:`md:hidden mt-1 whitespace-normal`,children:n?(0,M.jsx)(`span`,{className:`text-xs text-slate-400 dark:text-slate-500 animate-pulse`,children:`Generating…`}):o?(0,M.jsx)(`span`,{className:`text-xs text-red-500 dark:text-red-400`,title:o,children:`Failed to generate`}):h?(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`button`,{onClick:b,className:`text-xs text-slate-500 dark:text-slate-400 text-left hover:text-slate-700 dark:hover:text-slate-200 transition-colors`,children:u?(0,M.jsx)(`span`,{children:h}):(0,M.jsx)(`span`,{children:h.length>60?`${h.slice(0,60)}…`:h})}),u&&(0,M.jsx)(`button`,{onClick:v,className:`ml-2 text-xs text-slate-400 hover:text-slate-600 dark:text-slate-500 dark:hover:text-slate-300 transition-colors`,title:`Re-summarize`,children:`↻ Summarize`})]}):(0,M.jsx)(`button`,{onClick:v,className:`text-xs text-blue-500 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300 transition-colors`,children:`Summarize`})})]})}),(0,M.jsx)(`td`,{className:`pl-0 pr-2 py-2.5 hidden md:table-cell align-top`,children:n?(0,M.jsx)(`span`,{className:`text-xs text-slate-400 dark:text-slate-500 animate-pulse`,children:`Generating…`}):o?(0,M.jsxs)(`span`,{className:`text-xs text-red-500 dark:text-red-400`,title:o,children:[`Failed to generate — `,o]}):h?(0,M.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,M.jsx)(`button`,{onClick:y,className:`text-xs text-slate-600 dark:text-slate-300 text-left hover:text-slate-900 dark:hover:text-white transition-colors`,title:_?`Collapse`:`Click to expand`,children:_?(0,M.jsx)(`span`,{children:h}):(0,M.jsx)(`span`,{className:`line-clamp-2`,children:h})}),g&&(0,M.jsx)(`button`,{onClick:v,className:`shrink-0 text-slate-400 hover:text-slate-600 dark:text-slate-500 dark:hover:text-slate-300 transition-colors`,title:`Re-summarize`,children:`↻`})]}):g?(0,M.jsx)(`button`,{onClick:v,className:`text-xs text-blue-500 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300 transition-colors`,children:`Summarize`}):(0,M.jsx)(`span`,{className:`text-xs text-slate-300 dark:text-slate-600`,children:`—`})})]})});function Zi({rows:e,agentNames:t,loading:n=!1,emptyMessage:r=`No activity found`,headerRight:i}){let a=(0,x.useRef)(null),o=P({count:e.length,getScrollElement:()=>a.current,estimateSize:()=>60,overscan:10});if(e.length===0)return(0,M.jsx)(`div`,{className:`px-4 py-8 text-center text-slate-500 dark:text-slate-400`,children:n?`Loading...`:r});let s=o.getVirtualItems(),c=o.getTotalSize(),l=s.length>0?s[0].start:0,u=s.length>0?c-s[s.length-1].end:0;return(0,M.jsx)(`div`,{className:`w-full text-sm`,children:(0,M.jsx)(`div`,{ref:a,className:`overflow-auto`,style:{maxHeight:`calc(100vh - 280px)`},children:(0,M.jsxs)(`table`,{className:`w-full border-collapse`,children:[(0,M.jsx)(`thead`,{className:`sticky top-0 bg-slate-50 dark:bg-slate-900 z-10`,children:(0,M.jsxs)(`tr`,{className:`border-b border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`th`,{className:`pl-6 pr-3 py-2.5 text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide text-left whitespace-nowrap`,children:`Time`}),(0,M.jsx)(`th`,{className:`pl-2 pr-2 py-2.5 text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide text-left whitespace-nowrap`,children:`Instance`}),(0,M.jsx)(`th`,{className:`pl-0 pr-2 py-2.5 text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide text-left hidden md:table-cell w-full`,children:(0,M.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,M.jsx)(`span`,{children:`Summary`}),i]})})]})}),(0,M.jsxs)(`tbody`,{children:[l>0&&(0,M.jsx)(`tr`,{children:(0,M.jsx)(`td`,{colSpan:3,style:{height:l}})}),s.map(n=>(0,M.jsx)(Xi,{row:e[n.index],index:n.index,agentNames:t},e[n.index].instanceId??`${e[n.index].ts}-${n.index}`)),u>0&&(0,M.jsx)(`tr`,{children:(0,M.jsx)(`td`,{colSpan:3,style:{height:u}})})]})]})})})}function Qi(){let{name:e}=ft(),t=Pr(),n=t.find(t=>t.name===e)??null,r=t.map(e=>e.name),{data:i}=ri({key:`agent-activity:${e}`,fetcher:t=>ir(5,0,e,void 0,void 0,t),invalidateOn:[`runs`],invalidateAgent:e,enabled:!!e}),a=i?.rows??[];return e?(0,M.jsx)(`div`,{className:`space-y-6`,children:(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Activity`}),n&&(0,M.jsxs)(`span`,{id:`agent-state`,className:`text-sm ${n.runningCount>0?`text-blue-600 dark:text-blue-400`:`text-slate-500 dark:text-slate-400`}`,children:[(0,M.jsx)(`span`,{className:`inline-block w-1.5 h-1.5 rounded-full mr-1.5 ${n.runningCount>0?`bg-blue-500`:`bg-slate-400`}`}),n.runningCount>0?n.scale>1?`running ${n.runningCount}/${n.scale}`:`running`:`idle`,n.scale>1&&n.runningCount===0&&(0,M.jsxs)(`span`,{className:`text-xs text-slate-400 ml-1`,children:[`×`,n.scale]})]}),(n?.queuedWebhooks??0)>0&&(0,M.jsxs)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-400`,children:[n.queuedWebhooks,` pending`]})]}),(0,M.jsx)(j,{to:`/activity?agent=${encodeURIComponent(e)}`,className:`text-xs text-blue-600 dark:text-blue-400 hover:underline`,children:`View all`})]}),(0,M.jsx)(`div`,{className:`overflow-x-auto`,children:(0,M.jsx)(Zi,{rows:a,agentNames:r,emptyMessage:`No activity yet`})})]})}):null}function $i(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function ea(e){let t=$i(e);return t=t.replace(/`([^`]+)`/g,`<code class="bg-slate-200 dark:bg-slate-800 px-1 py-0.5 rounded text-sm font-mono">$1</code>`),t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,`<a href="$2" class="text-blue-600 dark:text-blue-400 hover:underline" target="_blank" rel="noopener noreferrer">$1</a>`),t=t.replace(/\*\*([^*]+)\*\*/g,`<strong class="font-semibold">$1</strong>`),t=t.replace(/\*([^*]+)\*/g,`<em class="italic">$1</em>`),t}function ta(e){if(!e)return``;let t=e.split(`
|
|
14
|
+
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i}return o.updateDeps=e=>{r=e},o}function Si(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var Ci=(e,t)=>Math.abs(e-t)<1.01,wi=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},Ti=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},Ei=e=>e,Di=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},Oi=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(Ti(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(Ti(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},ki={passive:!0},Ai=typeof window>`u`?!0:`onscrollend`in window,ji=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=0,a=e.options.useScrollendEvent&&Ai?()=>void 0:wi(r,()=>{t(i,!1)},e.options.isScrollingResetDelay),o=r=>()=>{let{horizontal:o,isRtl:s}=e.options;i=o?n.scrollLeft*(s&&-1||1):n.scrollTop,a(),t(i,r)},s=o(!0),c=o(!1);n.addEventListener(`scroll`,s,ki);let l=e.options.useScrollendEvent&&Ai;return l&&n.addEventListener(`scrollend`,c,ki),()=>{n.removeEventListener(`scroll`,s),l&&n.removeEventListener(`scrollend`,c)}},Mi=(e,t,n)=>{if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},Ni=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;let o=e+t;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:o,behavior:n})},Pi=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{n===void 0&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Ei,rangeExtractor:Di,onChange:()=>{},measureElement:Mi,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=xi(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=xi(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(e,t,n,r,i,a)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a}),{key:!1}),this.getMeasurements=xi(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a},o)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);let c=this.measurementsCache.slice(0,s),l=Array(a).fill(void 0);for(let e=0;e<s;e++){let t=c[e];t&&(l[t.lane]=e)}for(let i=s;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,u;if(a!==void 0&&this.options.lanes>1){s=a;let e=l[s],r=e===void 0?void 0:c[e];u=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?c[i-1]:this.getFurthestMeasurement(c,i);u=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(i,s)}let d=o.get(e),f=typeof d==`number`?d:this.options.estimateSize(i),p=u+f;c[i]={index:i,start:u,size:f,end:p,key:e,lane:s},l[s]=i}return this.measurementsCache=c,c},{key:!1,debug:()=>this.options.debug}),this.calculateRange=xi(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?Ii({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=xi(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);r!==0&&(this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?n.start<this.getScrollOffset()+this.scrollAdjustments:this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this))&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.getVirtualItems=xi(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length!==0)return Si(t[Fi(0,t.length-1,e=>Si(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t);this.scrollState={index:null,align:t,behavior:n,startedAt:this.now(),lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e;this.scrollState={index:null,align:`start`,behavior:t,startedAt:this.now(),lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1)t=e[e.length-1]?.end??0;else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&Ci(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.scrollState=null;return}}else this.scrollState.stableFrames=0,n&&(this.scrollState.lastTargetOffset=t,this.scrollState.behavior=`auto`,this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}));this.scheduleScrollReconcile()}},Fi=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function Ii({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){let i=e.length-1,a=t=>e[t].start;if(e.length<=r)return{startIndex:0,endIndex:i};let o=Fi(0,i,a,n),s=o;if(r===1)for(;s<i&&e[s].end<n+t;)s++;else if(r>1){let a=Array(r).fill(0);for(;s<i&&a.some(e=>e<n+t);){let t=e[s];a[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(i,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var Li=typeof document<`u`?x.useLayoutEffect:x.useEffect;function Ri({useFlushSync:e=!0,...t}){let n=x.useReducer(()=>({}),{})[1],r={...t,onChange:(r,i)=>{var a;e&&i?(0,bi.flushSync)(n):n(),(a=t.onChange)==null||a.call(t,r,i)}},[i]=x.useState(()=>new Pi(r));return i.setOptions(r),Li(()=>i._didMount(),[]),Li(()=>i._willUpdate()),i}function P(e){return Ri({observeElementRect:Oi,observeElementOffset:ji,scrollToFn:Ni,...e})}function F(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}function zi(e){return!e||e===0?`$0.00`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function Bi(e){return!e||e===0?`0`:e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function Vi(e){return e.length<=9?e:`${e.slice(0,4)}\u2026${e.slice(-4)}`}function Hi(e){return new Date(e).toLocaleString()}function Ui(e){let t=Date.now()-new Date(e).getTime();if(t<0)return``;let n=Math.floor(t/36e5);return n<1?`last ${Math.floor(t/6e4)}m`:n<24?`last ${n}h`:`last ${Math.floor(n/24)}d`}function Wi(e,t=6){let n=Date.now()-new Date(e).getTime();if(n<0||n>=t*36e5)return new Date(e).toLocaleString();let r=Math.floor(n/1e3);if(r<60)return`${r}s ago`;let i=Math.floor(r/60);return i<60?`${i} min ago`:`${Math.floor(i/60)}h ago`}var Gi={pending:`bg-amber-400`,running:`bg-blue-500 animate-pulse`,completed:`bg-green-500`,error:`bg-red-500`,"dead-letter":`bg-red-300 dark:bg-red-800`,rerun:`bg-green-500`},Ki={pending:`Pending`,running:`Running`,completed:`Completed`,error:`Error`,"dead-letter":`Dead Letter`,rerun:`Rerun`},qi={pending:`border-l-2 border-l-amber-400 dark:border-l-amber-500 bg-amber-50/40 dark:bg-amber-950/20`,running:`border-l-2 border-l-blue-500 dark:border-l-blue-400 bg-blue-50/40 dark:bg-blue-950/20`,completed:`border-l-2 border-l-green-500 dark:border-l-green-400`,error:`border-l-2 border-l-red-500 dark:border-l-red-400 bg-red-50/30 dark:bg-red-950/20`,"dead-letter":`border-l-2 border-l-red-300 dark:border-l-red-700 bg-red-50/20 dark:bg-red-950/10`,rerun:`border-l-2 border-l-green-500 dark:border-l-green-400`};function Ji(e){return e.triggerType===`webhook`&&e.triggerSource?e.eventSummary&&e.eventSummary!==e.triggerSource?`${e.triggerSource} ${e.eventSummary}`:e.triggerSource:e.triggerType}function Yi(e){return!!(e.agentName&&e.instanceId)&&e.result!==`pending`&&e.result!==`running`&&e.result!==`dead-letter`}var Xi=(0,x.memo)(function({row:e,agentNames:t}){let[n,r]=(0,x.useState)(!1),[i,a]=(0,x.useState)(null),[o,s]=(0,x.useState)(null),[c,l]=(0,x.useState)(!1),[u,d]=(0,x.useState)(!1),f=e.instanceId??``,p=e.result===`dead-letter`,m=Ji(e),h=i??e.summary??null,g=Yi(e),_=!c,v=(0,x.useCallback)(async()=>{if(!(!e.agentName||!f)){r(!0),s(null);try{let t=await br(e.agentName,f);t.summary&&a(t.summary)}catch(e){s(e instanceof Error?e.message:`Failed to generate summary`)}finally{r(!1)}}},[e.agentName,f]),y=(0,x.useCallback)(()=>l(e=>!e),[]),b=(0,x.useCallback)(()=>d(e=>!e),[]),ee=e.instanceId?`/dashboard/triggers/${encodeURIComponent(e.instanceId)}`:e.webhookReceiptId?`/dashboard/webhooks/${encodeURIComponent(e.webhookReceiptId)}`:null,S=ee?(0,M.jsxs)(j,{to:ee,className:`inline-flex items-center gap-1 hover:underline`,children:[(0,M.jsx)(ii,{label:m}),e.triggerType!==`webhook`&&e.triggerSource&&(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:e.triggerSource})]}):(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,M.jsx)(ii,{label:m}),e.triggerType!==`webhook`&&e.triggerSource&&(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:e.triggerSource})]}),C=!p&&e.agentName&&e.instanceId?(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(e.agentName)}/instances/${encodeURIComponent(e.instanceId)}`,className:`font-medium hover:underline truncate block`,children:(0,M.jsx)(`span`,{className:`agent-color-text truncate text-sm md:text-base`,style:N(e.agentName,t),children:e.instanceId})}):!p&&e.agentName?(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(e.agentName)}`,className:`font-medium hover:underline truncate block`,children:(0,M.jsx)(`span`,{className:`agent-color-text truncate text-sm md:text-base`,style:N(e.agentName,t),children:e.agentName})}):null;return(0,M.jsxs)(`tr`,{className:`border-b border-slate-100 dark:border-slate-800/50 last:border-b-0 hover:bg-slate-100/60 dark:hover:bg-slate-800/40 transition-colors ${qi[e.result]??``}`,children:[(0,M.jsx)(`td`,{className:`pl-4 pr-3 py-2.5 text-slate-600 dark:text-slate-400 text-xs whitespace-nowrap align-top`,title:new Date(e.ts).toLocaleString(),children:(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,M.jsx)(`span`,{className:`w-2 h-2 rounded-full shrink-0 ${Gi[e.result]??`bg-slate-400`}`,title:Ki[e.result]??e.result}),Wi(e.ts)]})}),(0,M.jsx)(`td`,{className:`pl-2 pr-2 py-2.5 whitespace-nowrap max-w-[200px] align-top`,children:(0,M.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[C,(0,M.jsx)(`div`,{className:`mt-0.5`,children:S}),p&&e.deadLetterReason&&(0,M.jsx)(`span`,{className:`text-xs text-red-500 dark:text-red-400`,children:e.deadLetterReason.replace(/_/g,` `)}),g&&(0,M.jsx)(`div`,{className:`md:hidden mt-1 whitespace-normal`,children:n?(0,M.jsx)(`span`,{className:`text-xs text-slate-400 dark:text-slate-500 animate-pulse`,children:`Generating…`}):o?(0,M.jsx)(`span`,{className:`text-xs text-red-500 dark:text-red-400`,title:o,children:`Failed to generate`}):h?(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`button`,{onClick:b,className:`text-xs text-slate-500 dark:text-slate-400 text-left hover:text-slate-700 dark:hover:text-slate-200 transition-colors`,children:u?(0,M.jsx)(`span`,{children:h}):(0,M.jsx)(`span`,{children:h.length>60?`${h.slice(0,60)}…`:h})}),u&&(0,M.jsx)(`button`,{onClick:v,className:`ml-2 text-xs text-slate-400 hover:text-slate-600 dark:text-slate-500 dark:hover:text-slate-300 transition-colors`,title:`Re-summarize`,children:`↻ Summarize`})]}):(0,M.jsx)(`button`,{onClick:v,className:`text-xs text-blue-500 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300 transition-colors`,children:`Summarize`})})]})}),(0,M.jsx)(`td`,{className:`pl-0 pr-2 py-2.5 hidden md:table-cell align-top`,children:n?(0,M.jsx)(`span`,{className:`text-xs text-slate-400 dark:text-slate-500 animate-pulse`,children:`Generating…`}):o?(0,M.jsxs)(`span`,{className:`text-xs text-red-500 dark:text-red-400`,title:o,children:[`Failed to generate — `,o]}):h?(0,M.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,M.jsx)(`button`,{onClick:y,className:`text-xs text-slate-600 dark:text-slate-300 text-left hover:text-slate-900 dark:hover:text-white transition-colors`,title:_?`Collapse`:`Click to expand`,children:_?(0,M.jsx)(`span`,{children:h}):(0,M.jsx)(`span`,{className:`line-clamp-2`,children:h})}),g&&(0,M.jsx)(`button`,{onClick:v,className:`shrink-0 text-slate-400 hover:text-slate-600 dark:text-slate-500 dark:hover:text-slate-300 transition-colors`,title:`Re-summarize`,children:`↻`})]}):g?(0,M.jsx)(`button`,{onClick:v,className:`text-xs text-blue-500 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300 transition-colors`,children:`Summarize`}):(0,M.jsx)(`span`,{className:`text-xs text-slate-300 dark:text-slate-600`,children:`—`})})]})});function Zi({rows:e,agentNames:t,loading:n=!1,emptyMessage:r=`No activity found`,headerRight:i}){let a=(0,x.useRef)(null),o=P({count:e.length,getScrollElement:()=>a.current,estimateSize:()=>60,overscan:10});if(e.length===0)return(0,M.jsx)(`div`,{className:`px-4 py-8 text-center text-slate-500 dark:text-slate-400`,children:n?`Loading...`:r});let s=o.getVirtualItems(),c=o.getTotalSize(),l=s.length>0?s[0].start:0,u=s.length>0?c-s[s.length-1].end:0;return(0,M.jsx)(`div`,{className:`w-full text-sm`,children:(0,M.jsx)(`div`,{ref:a,className:`overflow-auto`,style:{maxHeight:`calc(100vh - 280px)`},children:(0,M.jsxs)(`table`,{className:`w-full border-collapse`,children:[(0,M.jsx)(`thead`,{className:`sticky top-0 bg-slate-50 dark:bg-slate-900 z-10`,children:(0,M.jsxs)(`tr`,{className:`border-b border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`th`,{className:`pl-6 pr-3 py-2.5 text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide text-left whitespace-nowrap`,children:`Time`}),(0,M.jsx)(`th`,{className:`pl-2 pr-2 py-2.5 text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide text-left whitespace-nowrap`,children:`Instance`}),(0,M.jsx)(`th`,{className:`pl-0 pr-2 py-2.5 text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide text-left hidden md:table-cell w-full`,children:(0,M.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,M.jsx)(`span`,{children:`Summary`}),i]})})]})}),(0,M.jsxs)(`tbody`,{children:[l>0&&(0,M.jsx)(`tr`,{children:(0,M.jsx)(`td`,{colSpan:3,style:{height:l}})}),s.map(n=>(0,M.jsx)(Xi,{row:e[n.index],index:n.index,agentNames:t},e[n.index].instanceId??`${e[n.index].ts}-${n.index}`)),u>0&&(0,M.jsx)(`tr`,{children:(0,M.jsx)(`td`,{colSpan:3,style:{height:u}})})]})]})})})}function Qi(){let{name:e}=ft(),t=Pr(),n=t.find(t=>t.name===e)??null,r=t.map(e=>e.name),{data:i}=ri({key:`agent-activity:${e}`,fetcher:t=>ir(5,0,e,void 0,void 0,t),invalidateOn:[`runs`],invalidateAgent:e,enabled:!!e}),a=i?.rows??[];if(!e)return null;let o=n?.state===`running`?{text:`text-blue-600 dark:text-blue-400`,dot:`bg-blue-500`}:n?.state===`building`?{text:`text-amber-600 dark:text-amber-400`,dot:`bg-amber-500`}:n?.state===`error`?{text:`text-red-600 dark:text-red-400`,dot:`bg-red-500`}:{text:`text-slate-500 dark:text-slate-400`,dot:`bg-slate-400`},s=n?n.state===`running`?n.scale>1?`running ${n.runningCount}/${n.scale}`:`running`:n.state:null;return(0,M.jsx)(`div`,{className:`space-y-6`,children:(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Activity`}),n&&(0,M.jsxs)(`div`,{className:`flex flex-col`,children:[(0,M.jsxs)(`span`,{id:`agent-state`,className:`text-sm ${o.text}`,children:[(0,M.jsx)(`span`,{className:`inline-block w-1.5 h-1.5 rounded-full mr-1.5 ${o.dot}`}),s,n.state===`idle`&&n.scale>1&&(0,M.jsxs)(`span`,{className:`text-xs text-slate-400 ml-1`,children:[`×`,n.scale]})]}),n.statusText&&(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,title:n.statusText,children:n.statusText})]}),(n?.queuedWebhooks??0)>0&&(0,M.jsxs)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-400`,children:[n.queuedWebhooks,` pending`]})]}),(0,M.jsx)(j,{to:`/activity?agent=${encodeURIComponent(e)}`,className:`text-xs text-blue-600 dark:text-blue-400 hover:underline`,children:`View all`})]}),(0,M.jsx)(`div`,{className:`overflow-x-auto`,children:(0,M.jsx)(Zi,{rows:a,agentNames:r,emptyMessage:`No activity yet`})})]})})}function $i(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function ea(e){let t=$i(e);return t=t.replace(/`([^`]+)`/g,`<code class="bg-slate-200 dark:bg-slate-800 px-1 py-0.5 rounded text-sm font-mono">$1</code>`),t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,`<a href="$2" class="text-blue-600 dark:text-blue-400 hover:underline" target="_blank" rel="noopener noreferrer">$1</a>`),t=t.replace(/\*\*([^*]+)\*\*/g,`<strong class="font-semibold">$1</strong>`),t=t.replace(/\*([^*]+)\*/g,`<em class="italic">$1</em>`),t}function ta(e){if(!e)return``;let t=e.split(`
|
|
15
15
|
`),n=[],r=!1,i=``,a=null;function o(){if(a){let e=a.type===`ul`?`list-disc list-inside mb-4 space-y-1`:`list-decimal list-inside mb-4 space-y-1`;n.push(`<${a.type} class="${e}">`);for(let e of a.items)n.push(`<li class="ml-2">${ea(e)}</li>`);n.push(`</${a.type}>`),a=null}}for(let e=0;e<t.length;e++){let s=t[e],c=s.trim();if(c.startsWith("```")){if(r)n.push(`</code></pre>`),r=!1,i=``;else{o(),i=c.slice(3).trim();let e=i?` language-${$i(i)}`:``;n.push(`<pre class="bg-slate-100 dark:bg-slate-900 rounded-lg p-4 overflow-x-auto text-sm"><code${e?` class="${e}"`:``}>`),r=!0}continue}if(r){n.push($i(s));continue}if(!c){o(),n.push(`<br>`);continue}if(c.startsWith(`#`)){o();let e=c.match(/^(#+)\s+(.+)$/);if(e){let t=Math.min(e[1].length,6),r=e[2],i=t===1?`text-2xl`:t===2?`text-xl`:t===3?`text-lg`:`text-base`;n.push(`<h${t} class="${i} font-bold text-slate-900 dark:text-white mt-6 mb-3">${ea(r)}</h${t}>`)}continue}let l=c.match(/^[-*+]\s+(.+)$/),u=c.match(/^\d+\.\s+(.+)$/);if(l){(!a||a.type!==`ul`)&&(o(),a={type:`ul`,items:[]}),a.items.push(l[1]);continue}if(u){(!a||a.type!==`ol`)&&(o(),a={type:`ol`,items:[]}),a.items.push(u[1]);continue}o(),c&&n.push(`<p class="mb-4 leading-relaxed">${ea(c)}</p>`)}return r&&n.push(`</code></pre>`),o(),n.join(`
|
|
16
16
|
`)}function na(){let{name:e}=ft(),{agents:t}=Vr(),[n,r]=(0,x.useState)(null),[i,a]=(0,x.useState)(``),[o,s]=(0,x.useState)(null),[c,l]=(0,x.useState)(null),[u,d]=(0,x.useState)(null),[f,p]=(0,x.useState)(null),m=t.find(t=>t.name===e)??n?.agent??null,h=(0,x.useCallback)(()=>{e&&$n(e).then(e=>{r(e),e.agent&&a(String(e.agent.scale))}).catch(()=>{})},[e]);(0,x.useEffect)(()=>{h()},[h]),(0,x.useEffect)(()=>{m&&a(String(m.scale))},[m?.scale]),(0,x.useEffect)(()=>{e&&er(e).then(e=>{s(e.body),l(e.agentConfig)}).catch(e=>d(e instanceof Error?e.message:`Failed to load skill`))},[e]);let g=(0,x.useCallback)(async e=>{p(null);try{await e()}catch(e){p(e instanceof Error?e.message:`Action failed`)}},[]),_=(0,x.useCallback)(()=>{if(!e)return;let t=parseInt(i,10);isNaN(t)||t<1||g(()=>_r(e,t))},[e,i,g]);return e?(0,M.jsxs)(`div`,{className:`space-y-6`,children:[f&&(0,M.jsx)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-3 text-sm text-red-700 dark:text-red-400`,children:f}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Controls`})}),(0,M.jsxs)(`div`,{className:`p-4 flex items-center gap-4 flex-wrap`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Scale:`}),(0,M.jsx)(`input`,{id:`agent-scale-input`,type:`number`,min:1,value:i,onChange:e=>a(e.target.value),className:`w-16 px-2 py-1 bg-white dark:bg-slate-950 border border-slate-300 dark:border-slate-700 rounded text-base text-slate-900 dark:text-slate-200`}),(0,M.jsx)(`button`,{id:`update-agent-scale-btn`,onClick:_,className:`px-2 py-1.5 text-xs font-medium rounded-md bg-blue-600 hover:bg-blue-700 text-white transition-colors`,children:`Set`})]}),m&&(0,M.jsx)(`button`,{id:`toggle-btn`,onClick:()=>g(()=>m.enabled?pr(e):fr(e)),className:`px-3 py-1.5 text-xs font-medium rounded-md transition-colors ${m.enabled?`bg-slate-200 dark:bg-slate-700 text-slate-700 dark:text-slate-300 hover:bg-slate-300 dark:hover:bg-slate-600`:`bg-blue-600 hover:bg-blue-700 text-white`}`,children:m.enabled?`Disable`:`Enable`})]})]}),c&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Configuration`})}),(0,M.jsxs)(`div`,{className:`p-4 space-y-4 text-sm`,children:[c.description&&(0,M.jsx)(`p`,{className:`text-slate-700 dark:text-slate-300`,children:c.description}),(0,M.jsxs)(`dl`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-3`,children:[c.schedule&&(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`dt`,{className:`text-xs text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Schedule`}),(0,M.jsx)(`dd`,{className:`mt-0.5`,children:(0,M.jsx)(`code`,{className:`text-xs bg-slate-200 dark:bg-slate-800 px-1.5 py-0.5 rounded font-mono`,children:c.schedule})})]}),c.models&&c.models.length>0&&(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`dt`,{className:`text-xs text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Models`}),(0,M.jsx)(`dd`,{className:`mt-0.5 space-y-0.5`,children:c.models.map((e,t)=>(0,M.jsxs)(`div`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:[e.provider,`/`,e.model,e.thinkingLevel?` (${e.thinkingLevel})`:``,(0,M.jsxs)(`span`,{className:`text-slate-400 dark:text-slate-500 ml-1`,children:[`[`,e.authType,`]`]})]},t))})]}),c.credentials&&c.credentials.length>0&&(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`dt`,{className:`text-xs text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Credentials`}),(0,M.jsx)(`dd`,{className:`mt-0.5 flex flex-wrap gap-1`,children:c.credentials.map(e=>(0,M.jsx)(`span`,{className:`px-1.5 py-0.5 text-xs bg-slate-200 dark:bg-slate-800 rounded font-mono`,children:e},e))})]}),c.hooks&&(c.hooks.pre?.length||c.hooks.post?.length)&&(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`dt`,{className:`text-xs text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Hooks`}),(0,M.jsxs)(`dd`,{className:`mt-0.5 text-xs text-slate-700 dark:text-slate-300`,children:[c.hooks.pre&&c.hooks.pre.length>0&&(0,M.jsxs)(`div`,{children:[`Pre: `,c.hooks.pre.join(`, `)]}),c.hooks.post&&c.hooks.post.length>0&&(0,M.jsxs)(`div`,{children:[`Post: `,c.hooks.post.join(`, `)]})]})]}),c.params&&Object.keys(c.params).length>0&&(0,M.jsxs)(`div`,{className:`sm:col-span-2`,children:[(0,M.jsx)(`dt`,{className:`text-xs text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Params`}),(0,M.jsx)(`dd`,{className:`mt-0.5`,children:(0,M.jsx)(`pre`,{className:`text-xs bg-slate-200 dark:bg-slate-800 p-2 rounded overflow-x-auto`,children:JSON.stringify(c.params,null,2)})})]})]}),c.webhooks&&c.webhooks.length>0&&(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h3`,{className:`text-xs text-slate-500 dark:text-slate-400 uppercase tracking-wide mb-2`,children:`Webhook Filters`}),(0,M.jsx)(`div`,{className:`space-y-3`,children:c.webhooks.map((e,t)=>(0,M.jsxs)(`div`,{className:`bg-slate-100 dark:bg-slate-800 rounded p-3 text-xs space-y-1`,children:[(0,M.jsx)(`div`,{className:`font-medium text-slate-700 dark:text-slate-300`,children:e.source??`unknown`}),e.events&&e.events.length>0&&(0,M.jsxs)(`div`,{className:`text-slate-600 dark:text-slate-400`,children:[(0,M.jsx)(`span`,{className:`text-slate-500`,children:`events:`}),` `,e.events.map(e=>(0,M.jsx)(`span`,{className:`inline-block mr-1 px-1.5 py-0.5 bg-slate-200 dark:bg-slate-700 rounded font-mono`,children:e},e))]}),e.actions&&e.actions.length>0&&(0,M.jsxs)(`div`,{className:`text-slate-600 dark:text-slate-400`,children:[(0,M.jsx)(`span`,{className:`text-slate-500`,children:`actions:`}),` `,e.actions.join(`, `)]}),e.repos&&e.repos.length>0&&(0,M.jsxs)(`div`,{className:`text-slate-600 dark:text-slate-400`,children:[(0,M.jsx)(`span`,{className:`text-slate-500`,children:`repos:`}),` `,e.repos.join(`, `)]}),(e.org||e.orgs&&e.orgs.length>0)&&(0,M.jsxs)(`div`,{className:`text-slate-600 dark:text-slate-400`,children:[(0,M.jsx)(`span`,{className:`text-slate-500`,children:`orgs:`}),` `,e.org??e.orgs?.join(`, `)]}),e.branches&&e.branches.length>0&&(0,M.jsxs)(`div`,{className:`text-slate-600 dark:text-slate-400`,children:[(0,M.jsx)(`span`,{className:`text-slate-500`,children:`branches:`}),` `,e.branches.join(`, `)]}),e.labels&&e.labels.length>0&&(0,M.jsxs)(`div`,{className:`text-slate-600 dark:text-slate-400`,children:[(0,M.jsx)(`span`,{className:`text-slate-500`,children:`labels:`}),` `,e.labels.join(`, `)]}),e.assignee&&(0,M.jsxs)(`div`,{className:`text-slate-600 dark:text-slate-400`,children:[(0,M.jsx)(`span`,{className:`text-slate-500`,children:`assignee:`}),` `,e.assignee]}),e.author&&(0,M.jsxs)(`div`,{className:`text-slate-600 dark:text-slate-400`,children:[(0,M.jsx)(`span`,{className:`text-slate-500`,children:`author:`}),` `,e.author]})]},t))})]})]})]}),u?(0,M.jsx)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 text-sm text-red-700 dark:text-red-400`,children:u}):o===null?(0,M.jsx)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-8 text-center text-slate-500 dark:text-slate-400`,children:`Loading...`}):(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Skill`})}),(0,M.jsx)(`div`,{className:`p-6`,children:(0,M.jsx)(`div`,{className:`prose prose-slate dark:prose-invert max-w-none text-sm text-slate-700 dark:text-slate-300`,dangerouslySetInnerHTML:{__html:ta(o)}})})]})]}):null}function ra(e,t,n=[]){let r=(0,x.useRef)(e);r.current=e;let{intervalMs:i,enabled:a=!0}=t;(0,x.useEffect)(()=>{if(!a)return;let e=new AbortController,t=!1,n=()=>{t||(t=!0,r.current(e.signal).catch(()=>{}).finally(()=>{t=!1}))};n();let o=setInterval(n,i);return()=>{clearInterval(o),e.abort()}},[i,a,...n])}function ia(e){let t=e.msg||``;if(e.text&&(t.includes(`assistant`)||t.includes(`response`)||t===`conversation.message`))return{text:e.text,className:`text-white font-bold`};if(t===`conversation.tool_result`){let t=String(e.resultText||e.result||``),n=e.tool?`${e.tool} result`:`tool result`;return e.isError?{text:`${n}${e.cmd?`\n$ ${e.cmd}`:``}${t?`\n${t}`:``}`,className:`text-red-400 whitespace-pre-wrap`}:{text:`${n}${e.cmd?`\n$ ${e.cmd}`:``}${t?`\n${t}`:``}`,className:`text-slate-300 whitespace-pre-wrap`}}return e.cmd||t.includes(`bash`)||t.includes(`command`)||t===`conversation.tool_call`&&e.tool===`bash`?{text:e.cmd?`$ ${e.cmd}`:t,className:`text-cyan-400`}:e.tool||t.includes(`tool`)?{text:e.tool?`[tool] ${e.tool}: ${e.result??``}`:t,className:`text-blue-400`}:t===`conversation.event`?{text:`${e.eventType||`event`}${e.role?` role=${e.role}`:``}${e.stopReason?` stop=${e.stopReason}`:``}`,className:`text-slate-500`}:e.level>=50||e.err?{text:t,className:`text-red-400`}:e.level>=40?{text:t,className:`text-yellow-400`}:{text:t,className:`text-slate-300`}}function aa(){let e=(0,x.useContext)(ci),[t,n]=(0,x.useState)([]),[r,i]=(0,x.useState)(!0),[a,o]=(0,x.useState)(!1),s=(0,x.useRef)(null),c=(0,x.useRef)(null),l=(0,x.useRef)(null),u=e?.name??``,d=e?.id??``,f=e?.isRunning??!1,[p,m]=(0,x.useState)(!1),[h,g]=(0,x.useState)(!0),[_,v]=(0,x.useState)(!1),y=(0,x.useRef)(!1),[b,ee]=(0,x.useState)(null),[S,C]=(0,x.useState)(!1),[w,T]=(0,x.useState)(null),{data:te}=ri({key:`instance-locks:${d}`,fetcher:e=>sr(e),pollIntervalMs:5e3,enabled:f&&!!e}),E=(te?.locks??[]).filter(e=>e.holder===d||!e.holder&&e.agentName===u);ra(async e=>{if(!u||!d)return;let t={lines:`200`};s.current&&(t.cursor=s.current);try{let r=await cr(u,d,t,e);o(!0),r.entries.length>0&&(!s.current&&r.backCursor&&(c.current=r.backCursor),n(e=>[...e,...r.entries]),r.cursor&&(s.current=r.cursor))}catch{throw o(!1),void 0}},{intervalMs:f?3e3:1e4,enabled:!!u&&!!d&&!!e},[u,d,f]),(0,x.useEffect)(()=>{r&&l.current&&(l.current.scrollTop=l.current.scrollHeight)},[t,r]);let ne=(0,x.useCallback)(async()=>{if(!(!u||!d)){C(!0),T(null);try{let e=await br(u,d);e.error?T(e.error):ee(e.summary)}catch(e){T(e instanceof Error?e.message:`Failed to summarize`)}finally{C(!1)}}},[u,d]),re=(0,x.useCallback)(async()=>{if(!(!u||!d||p||!h||t.length===0||_)){if(!c.current){g(!1);return}m(!0);try{let e=await cr(u,d,{lines:`100`,back_cursor:c.current});if(e.entries.length>0){let t=l.current,r=t?.scrollHeight??0,i=t?.scrollTop??0;n(t=>[...e.entries,...t]),requestAnimationFrame(()=>{t&&(t.scrollTop=i+(t.scrollHeight-r))})}c.current=e.backCursor,e.backCursor||g(!1)}catch{}finally{m(!1)}}},[u,d,p,h,t,_]);(0,x.useEffect)(()=>{if(f||!u||!d||!h||y.current||t.length===0)return;if(!c.current){g(!1);return}y.current=!0,v(!0);let e=!1;return(async()=>{try{for(;!e&&c.current;){let t=await cr(u,d,{lines:`100`,back_cursor:c.current});if(e)break;if(t.entries.length===0){g(!1);break}let r=l.current,i=r?.scrollHeight??0,a=r?.scrollTop??0;if(n(e=>[...t.entries,...e]),requestAnimationFrame(()=>{r&&(r.scrollTop=a+(r.scrollHeight-i))}),c.current=t.backCursor,!t.backCursor){g(!1);break}}}catch{}finally{e||(v(!1),y.current=!1)}})(),()=>{e=!0,v(!1),y.current=!1}},[f,u,d,t.length>0]);let ie=(0,x.useCallback)(()=>{if(!l.current)return;let e=l.current;i(e.scrollHeight-e.scrollTop-e.clientHeight<40),e.scrollTop<100&&h&&!p&&!_&&t.length>0&&re()},[h,p,_,t.length,re]);return e?(0,M.jsxs)(`div`,{className:`space-y-4`,children:[E.length>0&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsxs)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:[`Resource Locks (`,E.length,`)`]})}),(0,M.jsx)(`div`,{className:`divide-y divide-slate-100 dark:divide-slate-800/50`,children:E.map(e=>(0,M.jsxs)(`div`,{className:`px-4 py-2.5 flex items-center justify-between`,children:[(0,M.jsx)(`span`,{className:`text-sm font-mono text-slate-700 dark:text-slate-300`,children:e.resourceKey}),e.heldSince&&(0,M.jsxs)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:[`since `,new Date(e.heldSince).toLocaleTimeString()]})]},e.resourceKey))})]}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Logs`}),(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsxs)(`span`,{className:`hidden sm:inline text-xs text-slate-500 dark:text-slate-400`,children:[t.length,` lines`]}),(0,M.jsx)(`span`,{className:`text-xs ${a?`text-green-500`:`text-red-500`}`,children:a?`Connected`:`Disconnected`}),(0,M.jsx)(`button`,{onClick:ne,disabled:S||t.length===0,className:`px-2 py-1 text-xs rounded bg-purple-600 hover:bg-purple-700 disabled:opacity-40 disabled:cursor-not-allowed text-white transition-colors`,children:S?(0,M.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,M.jsxs)(`svg`,{className:`w-3 h-3 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,M.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,M.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),`Summarizing…`]}):`Summarize`}),(0,M.jsx)(`button`,{onClick:()=>i(e=>!e),className:`px-2 py-1 text-xs rounded transition-colors ${r?`bg-blue-600 text-white`:`bg-slate-200 dark:bg-slate-800 text-slate-700 dark:text-slate-300`}`,children:`Follow`}),(0,M.jsx)(`button`,{onClick:()=>{n([]),s.current=null,c.current=null,g(!0)},className:`px-2 py-1 text-xs rounded bg-slate-200 dark:bg-slate-800 text-slate-700 dark:text-slate-300 hover:bg-slate-300 dark:hover:bg-slate-700 transition-colors`,children:`Clear`})]})]}),(0,M.jsxs)(`div`,{className:`relative`,children:[(b||w)&&(0,M.jsx)(`div`,{className:`absolute inset-x-0 top-0 z-10 p-3 pointer-events-none`,children:(0,M.jsxs)(`div`,{className:`pointer-events-auto`,children:[b&&(0,M.jsx)(`div`,{className:`bg-purple-900/95 border border-purple-700 rounded-lg p-4 text-sm text-purple-100 shadow-lg backdrop-blur-sm`,children:(0,M.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`text-xs font-medium text-purple-300 mb-1`,children:`Summary`}),(0,M.jsx)(`p`,{className:`leading-relaxed`,children:b})]}),(0,M.jsx)(`button`,{onClick:()=>ee(null),className:`text-purple-400 hover:text-purple-200 flex-shrink-0`,children:(0,M.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M6 18L18 6M6 6l12 12`})})})]})}),w&&(0,M.jsxs)(`div`,{className:`mt-2 bg-red-900/95 border border-red-700 rounded-lg p-3 text-sm text-red-200 flex items-center justify-between shadow-lg backdrop-blur-sm`,children:[(0,M.jsx)(`span`,{children:w}),(0,M.jsx)(`button`,{onClick:()=>T(null),className:`text-red-400 hover:text-red-200 ml-2`,children:(0,M.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M6 18L18 6M6 6l12 12`})})})]})]})}),(0,M.jsxs)(`div`,{ref:l,onScroll:ie,className:`min-h-[32rem] max-h-[calc(100vh-16rem)] overflow-y-auto scrollbar-thin bg-slate-950 p-3`,children:[(p||_)&&(0,M.jsx)(`div`,{className:`text-xs text-slate-500 text-center py-2`,children:(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,M.jsxs)(`svg`,{className:`w-3 h-3 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,M.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,M.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),_?`Loading full history…`:`Loading older logs…`]})}),!h&&t.length>0&&(0,M.jsx)(`div`,{className:`text-xs text-slate-600 text-center py-2 border-b border-slate-800 mb-2`,children:`— Beginning of logs —`}),h&&!p&&t.length>0&&(0,M.jsx)(`button`,{className:`w-full text-xs text-blue-400 hover:text-blue-300 text-center py-2 border-b border-slate-800 mb-2 transition-colors`,onClick:re,children:`↑ Load older logs`}),t.length>0?t.map((e,t)=>{let{text:n,className:r}=ia(e);return(0,M.jsxs)(`div`,{className:`text-xs font-mono leading-5`,children:[(0,M.jsx)(`span`,{className:`text-slate-600`,children:new Date(e.time).toLocaleTimeString()}),` `,(0,M.jsx)(`span`,{className:r,children:n})]},t)}):(0,M.jsx)(`div`,{className:`text-xs text-slate-500 text-center py-4`,children:`No log entries`})]})]})]})]}):null}function oa(e){if(e)try{let t=JSON.parse(e);return t[`content-type`]??t[`Content-Type`]}catch{return}}function sa(e,t){if(!e)return null;let n=oa(t)?.toLowerCase()??``;if(n.includes(`application/x-www-form-urlencoded`))try{let t=new URLSearchParams(e),n={};for(let[e,r]of t.entries())try{n[e]=JSON.parse(r)}catch{n[e]=r}return{label:`Decoded Body (form-urlencoded)`,content:JSON.stringify(n,null,2)}}catch{}if(n.includes(`application/json`))return null;try{return JSON.parse(e),null}catch{if(/^[A-Za-z0-9+/\n\r]+=*$/.test(e.trim())&&e.trim().length>20)try{let t=atob(e.trim().replace(/\s/g,``));if(/^[\x20-\x7E\t\n\r]*$/.test(t))try{let e=JSON.parse(t);return{label:`Decoded Body (base64)`,content:JSON.stringify(e,null,2)}}catch{return{label:`Decoded Body (base64)`,content:t}}}catch{}}return null}function ca(e){if(!e)return`—`;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function la(){let e=(0,x.useContext)(ci),{agents:t}=Vr(),n=t.map(e=>e.name),[r,i]=(0,x.useState)(void 0),a=e?.id,o=e?.detail;if((0,x.useEffect)(()=>{a&&ar(a).then(e=>i(e.trigger)).catch(()=>i(null))},[a]),!e)return null;if(r===void 0)return(0,M.jsx)(`div`,{className:`text-center py-12 text-slate-500 dark:text-slate-400`,children:`Loading...`});if(r===null){let e=o?.run;return e?(0,M.jsx)(`div`,{className:`space-y-4`,children:(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Overview`})}),(0,M.jsxs)(`div`,{className:`divide-y divide-slate-100 dark:divide-slate-800/50 max-w-2xl`,children:[(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Trigger Type`}),(0,M.jsx)(oi,{type:e.trigger_type})]}),e.trigger_source&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Source`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:e.trigger_source})]})]})]})}):(0,M.jsx)(`div`,{className:`text-center py-12 text-slate-500 dark:text-slate-400`,children:`Trigger details not available.`})}return(0,M.jsxs)(`div`,{className:`space-y-4`,children:[(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Overview`})}),(0,M.jsxs)(`div`,{className:`divide-y divide-slate-100 dark:divide-slate-800/50 max-w-2xl`,children:[(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Trigger Type`}),(0,M.jsx)(oi,{type:r.triggerType})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Agent`}),(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(r.agentName)}`,className:`hover:underline text-xs flex items-center gap-1.5`,children:(0,M.jsx)(`span`,{className:`agent-color-text`,style:N(r.agentName,n),children:r.agentName})})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Instance`}),(0,M.jsx)(`span`,{className:`font-mono text-xs text-slate-700 dark:text-slate-300`,children:r.instanceId})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Time`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:Hi(r.startedAt)})]}),r.triggerSource&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Source`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.triggerSource})]})]})]}),r.triggerType===`webhook`&&r.webhook&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Webhook Details`})}),(0,M.jsxs)(`div`,{className:`divide-y divide-slate-100 dark:divide-slate-800/50 max-w-2xl`,children:[(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Receipt ID`}),(0,M.jsx)(j,{to:`/dashboard/webhooks/${encodeURIComponent(r.webhook.receiptId)}`,className:`font-mono text-xs text-blue-600 dark:text-blue-400 hover:underline`,children:Vi(r.webhook.receiptId)})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Source`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.webhook.source})]}),r.webhook.eventSummary&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Event`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.webhook.eventSummary})]}),r.webhook.deliveryId&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Delivery ID`}),(0,M.jsx)(`span`,{className:`font-mono text-xs text-slate-700 dark:text-slate-300`,children:r.webhook.deliveryId})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Status`}),(0,M.jsx)(si,{result:r.webhook.status===`processed`?`completed`:`dead-letter`})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Matched Agents`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.webhook.matchedAgents})]})]}),r.webhook.headers&&(0,M.jsxs)(`div`,{className:`border-t border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Headers`})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all`,children:ca(r.webhook.headers)})]}),(()=>{let e=sa(r.webhook.body,r.webhook.headers);return(0,M.jsxs)(M.Fragment,{children:[e&&(0,M.jsxs)(`div`,{className:`border-t border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:e.label})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all max-h-96 overflow-y-auto`,children:e.content})]}),r.webhook.body&&(0,M.jsxs)(`div`,{className:`border-t border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:e?`Raw Body`:`Body`})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all`,children:ca(r.webhook.body)})]})]})})()]}),r.triggerType===`agent`&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Agent Trigger Details`})}),(0,M.jsx)(`div`,{className:`divide-y divide-slate-100 dark:divide-slate-800/50 max-w-2xl`,children:r.callerAgent?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Called by`}),(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(r.callerAgent)}`,className:`hover:underline text-xs flex items-center gap-1.5`,children:(0,M.jsx)(`span`,{className:`agent-color-text`,style:N(r.callerAgent,n),children:r.callerAgent})})]}),r.callerInstance&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Caller Instance`}),(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(r.callerAgent)}/instances/${encodeURIComponent(r.callerInstance)}`,className:`font-mono text-xs text-blue-600 dark:text-blue-400 hover:underline`,children:Vi(r.callerInstance)})]}),r.callDepth!==void 0&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Call Depth`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.callDepth})]})]}):(0,M.jsx)(`div`,{className:`px-4 py-3`,children:(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Caller information not available`})})}),r.triggerContext&&(0,M.jsxs)(`div`,{className:`border-t border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Trigger Context`})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all`,children:r.triggerContext})]})]}),r.triggerType===`manual`&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Manual Trigger Details`})}),r.triggerContext?(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Prompt`})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all`,children:r.triggerContext})]}):(0,M.jsx)(`div`,{className:`px-4 py-3`,children:(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Prompt not available (run predates context tracking)`})})]}),r.triggerType===`schedule`&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Schedule Trigger Details`})}),(0,M.jsx)(`div`,{className:`px-4 py-3`,children:(0,M.jsxs)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:[`Scheduled run at `,Hi(r.startedAt)]})})]})]})}function ua(){let e=(0,x.useContext)(ci);if(!e)return null;let{detail:t,isRunning:n}=e,r=t?.run;return!r&&n?(0,M.jsx)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-6 text-center`,children:(0,M.jsx)(`p`,{className:`text-sm text-slate-500 dark:text-slate-400`,children:`Instance is currently running. Telemetry data will be available once the run completes.`})}):r?(0,M.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-4`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white mb-3`,children:`Run Info`}),(0,M.jsxs)(`dl`,{className:`space-y-2 text-sm`,children:[(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Status`}),(0,M.jsx)(`dd`,{children:(0,M.jsx)(si,{result:r.result})})]}),r.exit_code!=null&&(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Exit Code`}),(0,M.jsx)(`dd`,{className:r.exit_code===0?`text-green-600 dark:text-green-400`:`text-red-600 dark:text-red-400`,children:r.exit_code})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Started`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:Hi(r.started_at)})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Ended`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:Hi(r.started_at+r.duration_ms)})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Duration`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:F(r.duration_ms)})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Turns`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:r.turn_count})]}),r.error_message&&(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400 mb-1`,children:`Error`}),(0,M.jsx)(`dd`,{className:`text-red-600 dark:text-red-400 text-xs bg-red-50 dark:bg-red-900/20 rounded p-2 font-mono break-all`,children:r.error_message})]})]})]}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-4`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white mb-3`,children:`Token Usage`}),(0,M.jsxs)(`dl`,{className:`space-y-2 text-sm`,children:[(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Input`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:Bi(r.input_tokens)})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Output`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:Bi(r.output_tokens)})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Cache Read`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:Bi(r.cache_read_tokens)})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Cache Write`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:Bi(r.cache_write_tokens)})]}),(0,M.jsxs)(`div`,{className:`flex justify-between border-t border-slate-200 dark:border-slate-800 pt-2 mt-2`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400 font-medium`,children:`Total`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300 font-medium`,children:Bi(r.total_tokens)})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400 font-medium`,children:`Cost`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300 font-medium`,children:zi(r.cost_usd)})]})]})]})]}):null}function I({options:e,value:t,onChange:n,placeholder:r}){let[i,a]=(0,x.useState)(!1),o=(0,x.useRef)(null);return(0,x.useEffect)(()=>{let e=e=>{o.current&&!o.current.contains(e.target)&&a(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,M.jsxs)(`div`,{ref:o,className:`relative`,children:[(0,M.jsxs)(`button`,{type:`button`,onClick:()=>a(!i),className:`inline-flex items-center gap-1.5 text-sm rounded-lg border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-700 dark:text-slate-200 pl-3 pr-2 py-1.5 hover:border-slate-300 dark:hover:border-slate-600 transition-colors shadow-sm`,children:[(0,M.jsx)(`span`,{children:e.find(e=>e.value===t)?.label||r}),(0,M.jsx)(fa,{})]}),i&&(0,M.jsx)(`div`,{className:`absolute z-50 mt-1 min-w-[160px] rounded-lg border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 shadow-lg py-1 max-h-64 overflow-y-auto`,children:e.map(e=>(0,M.jsx)(`button`,{type:`button`,onClick:()=>{n(e.value),a(!1)},className:`w-full text-left px-3 py-1.5 text-sm transition-colors ${e.value===t?`bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium`:`text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-700/50`}`,children:e.label},e.value))})]})}function da({options:e,selected:t,onChange:n,label:r}){let[i,a]=(0,x.useState)(!1),o=(0,x.useRef)(null);(0,x.useEffect)(()=>{let e=e=>{o.current&&!o.current.contains(e.target)&&a(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let s=t.length===e.length,c=t.length===0,l=e=>{t.includes(e)?n(t.filter(t=>t!==e)):n([...t,e])},u=()=>{n(s?[]:e.map(e=>e.value))},d=s||c?r:t.length===1?e.find(e=>e.value===t[0])?.label??r:`${t.length} selected`;return(0,M.jsxs)(`div`,{ref:o,className:`relative`,children:[(0,M.jsxs)(`button`,{type:`button`,onClick:()=>a(!i),className:`inline-flex items-center gap-1.5 text-sm rounded-lg border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-700 dark:text-slate-200 pl-3 pr-2 py-1.5 hover:border-slate-300 dark:hover:border-slate-600 transition-colors shadow-sm`,children:[!s&&!c&&(0,M.jsx)(`span`,{className:`inline-flex items-center justify-center w-4 h-4 rounded-full bg-blue-600 text-white text-[10px] font-bold leading-none`,children:t.length}),(0,M.jsx)(`span`,{children:d}),(0,M.jsx)(fa,{})]}),i&&(0,M.jsxs)(`div`,{className:`absolute z-50 mt-1 min-w-[180px] rounded-lg border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 shadow-lg py-1 max-h-64 overflow-y-auto`,children:[(0,M.jsx)(`button`,{type:`button`,onClick:u,className:`w-full text-left px-3 py-1.5 text-xs font-medium text-slate-500 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors border-b border-slate-100 dark:border-slate-700`,children:s?`Deselect all`:`Select all`}),e.map(e=>{let n=t.includes(e.value);return(0,M.jsxs)(`button`,{type:`button`,onClick:()=>l(e.value),className:`w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 transition-colors ${n?`text-slate-900 dark:text-white`:`text-slate-500 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-slate-700/50`}`,children:[(0,M.jsx)(`span`,{className:`flex items-center justify-center w-3.5 h-3.5 rounded border transition-colors ${n?`bg-blue-600 border-blue-600`:`border-slate-300 dark:border-slate-600`}`,children:n&&(0,M.jsx)(`svg`,{className:`w-2.5 h-2.5 text-white`,viewBox:`0 0 12 12`,fill:`none`,children:(0,M.jsx)(`path`,{d:`M2 6l3 3 5-5`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})})}),e.dot&&(0,M.jsx)(`span`,{className:`w-2 h-2 rounded-full shrink-0 ${e.dot}`}),(0,M.jsx)(`span`,{children:e.label})]},e.value)})]})]})}function fa(){return(0,M.jsx)(`svg`,{className:`w-4 h-4 text-slate-400`,viewBox:`0 0 20 20`,fill:`currentColor`,children:(0,M.jsx)(`path`,{fillRule:`evenodd`,d:`M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z`,clipRule:`evenodd`})})}var pa=50,ma=[`pending`,`running`,`completed`],ha=[{value:`pending`,label:`Pending`,dot:`bg-amber-400`},{value:`running`,label:`Running`,dot:`bg-blue-500`},{value:`completed`,label:`Completed`,dot:`bg-green-500`},{value:`error`,label:`Error`,dot:`bg-red-500`},{value:`dead-letter`,label:`Dead Letter`,dot:`bg-red-300 dark:bg-red-800`}],ga=[{value:``,label:`All Types`},{value:`schedule`,label:`Schedule`},{value:`webhook`,label:`Webhook`},{value:`manual`,label:`Manual`},{value:`agent`,label:`Agent`}];function _a(e){if(!e)return ma;let t=e.split(`,`).filter(Boolean);return t.length>0?t:ma}function va(){let[e,t]=Rn(),n=e.get(`agent`)||void 0,r=e.get(`type`)||void 0,i=e.get(`status`),a=(0,x.useMemo)(()=>_a(i),[i]),[o,s]=(0,x.useState)(0),c=Pr(),l=c.map(e=>e.name),u=a.join(`,`),d=a.length===ha.length?void 0:a,{data:f,isLoading:p}=ri({key:`activity:${o}:${n??``}:${r??``}:${u}`,fetcher:e=>ir(pa,o,n,r,d,e),invalidateOn:[`runs`,`triggers`],keyChangeDebounceMs:150}),m=f?.rows??[],h=f?.total??0,g=f?.pendingCount??0;(0,x.useEffect)(()=>{s(0)},[n,r,u]);let _=(0,x.useCallback)((e,n)=>{t(t=>{let r=new URLSearchParams(t);return n?r.set(e,n):r.delete(e),r.delete(`offset`),r})},[t]),v=(0,x.useCallback)(e=>{t(t=>{let n=new URLSearchParams(t);return e.length===0||e.length===ha.length?n.delete(`status`):n.set(`status`,e.join(`,`)),n.delete(`offset`),n})},[t]),y=[{value:``,label:`All Agents`},...c.map(e=>({value:e.name,label:e.name}))];return(0,M.jsxs)(`div`,{className:`space-y-6`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white`,children:`Activity`}),g>0&&(0,M.jsxs)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-400`,children:[g,` pending`]})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,M.jsx)(I,{options:y,value:n||``,onChange:e=>_(`agent`,e||void 0),placeholder:`All Agents`}),(0,M.jsx)(I,{options:ga,value:r||``,onChange:e=>_(`type`,e||void 0),placeholder:`All Types`}),(0,M.jsx)(da,{options:ha,selected:a,onChange:v,label:`All Statuses`})]})]}),(0,M.jsx)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:(0,M.jsx)(Zi,{rows:m,agentNames:l,loading:p&&m.length===0,headerRight:h>0?(0,M.jsxs)(`div`,{className:`flex items-center gap-2 font-normal normal-case tracking-normal`,children:[(0,M.jsxs)(`span`,{className:`text-sm text-slate-500 dark:text-slate-400 tabular-nums`,children:[o+1,`–`,Math.min(o+pa,h),` of `,h.toLocaleString()]}),(0,M.jsxs)(`div`,{className:`flex items-center`,children:[(0,M.jsx)(`button`,{onClick:()=>s(Math.max(0,o-pa)),disabled:o===0,className:`p-1 rounded text-slate-400 dark:text-slate-500 hover:text-slate-600 dark:hover:text-slate-300 disabled:opacity-30 disabled:hover:text-slate-400 dark:disabled:hover:text-slate-500 transition-colors`,"aria-label":`Previous page`,children:(0,M.jsx)(`svg`,{className:`w-5 h-5`,fill:`none`,viewBox:`0 0 24 24`,strokeWidth:2,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15.75 19.5 8.25 12l7.5-7.5`})})}),(0,M.jsx)(`button`,{onClick:()=>s(o+pa),disabled:o+pa>=h,className:`p-1 rounded text-slate-400 dark:text-slate-500 hover:text-slate-600 dark:hover:text-slate-300 disabled:opacity-30 disabled:hover:text-slate-400 dark:disabled:hover:text-slate-500 transition-colors`,"aria-label":`Next page`,children:(0,M.jsx)(`svg`,{className:`w-5 h-5`,fill:`none`,viewBox:`0 0 24 24`,strokeWidth:2,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`m8.25 4.5 7.5 7.5-7.5 7.5`})})})]})]}):void 0})})]})}function ya(e){if(!e)return`—`;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function ba(){let{instanceId:e}=ft(),{agents:t}=Vr(),n=t.map(e=>e.name),[r,i]=(0,x.useState)(void 0),[a,o]=(0,x.useState)(null),[s,c]=(0,x.useState)(null),[l,u]=(0,x.useState)(!1);(0,x.useEffect)(()=>{e&&ar(e).then(e=>i(e.trigger)).catch(()=>i(null))},[e]);let d=(0,x.useCallback)(async()=>{if(r?.webhook?.receiptId){o(null),c(null),u(!0);try{let e=await rr(r.webhook.receiptId);o(`Replayed: ${e.matched} matched, ${e.skipped} skipped`)}catch(e){c(e instanceof Error?e.message:`Replay failed`)}finally{u(!1)}}},[r]);if(!e)return null;if(r===void 0)return(0,M.jsx)(`div`,{className:`text-center py-12 text-slate-500 dark:text-slate-400`,children:`Loading...`});if(r===null)return(0,M.jsx)(`div`,{className:`space-y-6`,children:(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(j,{to:`/jobs`,className:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`,children:(0,M.jsx)(`svg`,{className:`w-5 h-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M15 19l-7-7 7-7`})})}),(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white`,children:`Trigger not found`})]})});let f=!!(r.webhook?.receiptId&&(r.webhook.headers||r.webhook.body));return(0,M.jsxs)(`div`,{className:`space-y-6`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(j,{to:`/jobs`,className:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`,children:(0,M.jsx)(`svg`,{className:`w-5 h-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M15 19l-7-7 7-7`})})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white font-mono`,children:r.instanceId}),(0,M.jsx)(`div`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Trigger Detail`})]}),(0,M.jsx)(oi,{type:r.triggerType})]}),r.triggerType===`webhook`&&f&&(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[a&&(0,M.jsx)(`span`,{className:`text-xs text-green-600 dark:text-green-400`,children:a}),s&&(0,M.jsx)(`span`,{className:`text-xs text-red-600 dark:text-red-400`,children:s}),(0,M.jsx)(`button`,{onClick:d,disabled:l,className:`px-3 py-1.5 text-xs font-medium rounded-md bg-blue-600 hover:bg-blue-700 disabled:opacity-40 text-white transition-colors`,children:l?`Replaying...`:`Replay`})]})]}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Overview`})}),(0,M.jsxs)(`div`,{className:`divide-y divide-slate-100 dark:divide-slate-800/50 max-w-2xl`,children:[(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Trigger Type`}),(0,M.jsx)(oi,{type:r.triggerType})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Agent`}),(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(r.agentName)}`,className:`hover:underline text-xs flex items-center gap-1.5`,children:(0,M.jsx)(`span`,{className:`agent-color-text`,style:N(r.agentName,n),children:r.agentName})})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Instance`}),(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(r.agentName)}/instances/${encodeURIComponent(r.instanceId)}`,className:`font-mono text-xs text-blue-600 dark:text-blue-400 hover:underline`,children:r.instanceId})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Time`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:Hi(r.startedAt)})]}),r.triggerSource&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Source`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.triggerSource})]})]})]}),r.triggerType===`webhook`&&r.webhook&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Webhook Details`})}),(0,M.jsxs)(`div`,{className:`divide-y divide-slate-100 dark:divide-slate-800/50 max-w-2xl`,children:[(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Receipt ID`}),(0,M.jsx)(j,{to:`/dashboard/webhooks/${encodeURIComponent(r.webhook.receiptId)}`,className:`font-mono text-xs text-blue-600 dark:text-blue-400 hover:underline`,children:Vi(r.webhook.receiptId)})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Source`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.webhook.source})]}),r.webhook.eventSummary&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Event`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.webhook.eventSummary})]}),r.webhook.deliveryId&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Delivery ID`}),(0,M.jsx)(`span`,{className:`font-mono text-xs text-slate-700 dark:text-slate-300`,children:r.webhook.deliveryId})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Status`}),(0,M.jsx)(si,{result:r.webhook.status===`processed`?`completed`:`dead-letter`})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Matched Agents`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.webhook.matchedAgents})]})]}),r.webhook.headers&&(0,M.jsxs)(`div`,{className:`border-t border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Headers`})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all`,children:ya(r.webhook.headers)})]}),(()=>{let e=sa(r.webhook.body,r.webhook.headers);return(0,M.jsxs)(M.Fragment,{children:[e&&(0,M.jsxs)(`div`,{className:`border-t border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:e.label})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all max-h-96 overflow-y-auto`,children:e.content})]}),r.webhook.body&&(0,M.jsxs)(`div`,{className:`border-t border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:e?`Raw Body`:`Body`})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all`,children:ya(r.webhook.body)})]})]})})()]}),r.triggerType===`agent`&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Agent Trigger Details`})}),(0,M.jsx)(`div`,{className:`divide-y divide-slate-100 dark:divide-slate-800/50 max-w-2xl`,children:r.callerAgent?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Called by`}),(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(r.callerAgent)}`,className:`hover:underline text-xs flex items-center gap-1.5`,children:(0,M.jsx)(`span`,{className:`agent-color-text`,style:N(r.callerAgent,n),children:r.callerAgent})})]}),r.callerInstance&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Caller Instance`}),(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(r.callerAgent)}/instances/${encodeURIComponent(r.callerInstance)}`,className:`font-mono text-xs text-blue-600 dark:text-blue-400 hover:underline`,children:Vi(r.callerInstance)})]}),r.callDepth!==void 0&&(0,M.jsxs)(`div`,{className:`px-4 py-3 grid grid-cols-[8rem_1fr] gap-x-4 items-center`,children:[(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Call Depth`}),(0,M.jsx)(`span`,{className:`text-xs text-slate-700 dark:text-slate-300`,children:r.callDepth})]})]}):(0,M.jsx)(`div`,{className:`px-4 py-3`,children:(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Caller information not available`})})}),r.triggerContext&&(0,M.jsxs)(`div`,{className:`border-t border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Trigger Context`})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all`,children:r.triggerContext})]})]}),r.triggerType===`manual`&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Manual Trigger Details`})}),r.triggerContext?(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-100 dark:border-slate-800/50`,children:(0,M.jsx)(`h3`,{className:`text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wide`,children:`Prompt`})}),(0,M.jsx)(`pre`,{className:`px-4 py-3 text-xs font-mono text-slate-700 dark:text-slate-300 overflow-x-auto whitespace-pre-wrap break-all`,children:r.triggerContext})]}):(0,M.jsx)(`div`,{className:`px-4 py-3`,children:(0,M.jsx)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Prompt not available (run predates context tracking)`})})]}),r.triggerType===`schedule`&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Schedule Trigger Details`})}),(0,M.jsx)(`div`,{className:`px-4 py-3`,children:(0,M.jsxs)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:[`Scheduled run at `,Hi(r.startedAt)]})})]}),(0,M.jsx)(`div`,{className:`flex justify-end`,children:(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(r.agentName)}/instances/${encodeURIComponent(r.instanceId)}`,className:`text-sm text-blue-600 dark:text-blue-400 hover:underline`,children:`View run details →`})})]})}function xa(){let e=Fr(),{data:t}=ri({key:`project-config`,fetcher:e=>tr(e),invalidateOn:[`config`]}),[n,r]=(0,x.useState)(``),[i,a]=(0,x.useState)(null),[o,s]=(0,x.useState)(null);(0,x.useEffect)(()=>{t&&r(String(t.projectScale))},[t]);let c=(0,x.useCallback)(async(e,t)=>{a(null),s(null);try{await e(),t&&s(t)}catch(e){a(e instanceof Error?e.message:`Action failed`)}},[]),l=(0,x.useCallback)(()=>{let e=parseInt(n,10);isNaN(e)||e<1||c(()=>gr(e),`Scale updated`)},[n,c]);return(0,M.jsxs)(`div`,{className:`space-y-6`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(j,{to:`/dashboard`,className:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`,children:(0,M.jsx)(`svg`,{className:`w-5 h-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M15 19l-7-7 7-7`})})}),(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white`,children:`Project Configuration`})]}),i&&(0,M.jsx)(`div`,{className:`bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-3 text-sm text-red-700 dark:text-red-400`,children:i}),o&&(0,M.jsx)(`div`,{className:`bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-lg p-3 text-sm text-green-700 dark:text-green-400`,children:o}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-4`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white mb-3`,children:`Project Scale`}),(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`label`,{htmlFor:`project-scale`,className:`text-sm text-slate-500 dark:text-slate-400`,children:`Default scale:`}),(0,M.jsx)(`input`,{id:`project-scale`,type:`number`,min:1,value:n,onChange:e=>r(e.target.value),className:`w-20 px-2 py-1.5 bg-white dark:bg-slate-950 border border-slate-300 dark:border-slate-700 rounded text-base text-slate-900 dark:text-slate-200`}),(0,M.jsx)(`button`,{onClick:l,className:`px-3 py-1.5 text-xs font-medium rounded-md bg-blue-600 hover:bg-blue-700 text-white transition-colors`,children:`Update`})]}),(0,M.jsx)(`p`,{className:`text-xs text-slate-500 dark:text-slate-400 mt-2`,children:`The default number of concurrent instances per agent. Individual agents can override this in their SKILL.md config.`})]}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-4`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white mb-3`,children:`Gateway Status`}),t?(0,M.jsxs)(`dl`,{className:`space-y-2 text-sm`,children:[t.projectName&&(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Project`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:t.projectName})]}),t.gatewayPort!=null&&(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Port`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300 font-mono`,children:t.gatewayPort})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Webhooks`}),(0,M.jsx)(`dd`,{children:t.webhooksActive?(0,M.jsx)(`span`,{className:`text-green-600 dark:text-green-400 text-xs font-medium`,children:`Active`}):(0,M.jsx)(`span`,{className:`text-slate-500 text-xs`,children:`Inactive`})})]})]}):(0,M.jsx)(`p`,{className:`text-sm text-slate-500 dark:text-slate-400`,children:`Loading...`})]}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-4`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white mb-3`,children:`Scheduler Control`}),e?(0,M.jsxs)(`div`,{className:`space-y-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,M.jsx)(`span`,{className:`text-slate-500 dark:text-slate-400`,children:`Status:`}),e.paused?(0,M.jsx)(`span`,{className:`text-yellow-600 dark:text-yellow-400 font-medium`,children:`Paused`}):(0,M.jsx)(`span`,{className:`text-green-600 dark:text-green-400 font-medium`,children:`Running`})]}),(0,M.jsx)(`div`,{className:`flex items-center gap-2`,children:e.paused?(0,M.jsx)(`button`,{onClick:()=>c(hr,`Scheduler resumed`),className:`px-4 py-2 text-sm font-medium rounded-md bg-green-600 hover:bg-green-700 text-white transition-colors`,children:`Resume All`}):(0,M.jsx)(`button`,{onClick:()=>c(mr,`Scheduler paused`),className:`px-4 py-2 text-sm font-medium rounded-md bg-yellow-600 hover:bg-yellow-700 text-white transition-colors`,children:`Pause All`})}),(0,M.jsx)(`p`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Pausing prevents new scheduled and webhook-triggered runs from starting. Running instances are not affected.`})]}):(0,M.jsx)(`p`,{className:`text-sm text-slate-500 dark:text-slate-400`,children:`Connecting to scheduler...`})]})]})}function Sa({label:e,value:t,id:n}){return(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-3 sm:p-4`,children:[(0,M.jsx)(`div`,{className:`text-xs text-slate-500 dark:text-slate-400 uppercase tracking-wide mb-1`,children:e}),(0,M.jsx)(`div`,{className:`text-lg sm:text-xl font-semibold text-slate-900 dark:text-white`,id:n,children:t})]})}function Ca(){let{name:e}=ft(),{data:t}=ri({key:`agent-stats:${e}`,fetcher:t=>$n(e,t),invalidateOn:[`stats`],invalidateAgent:e,enabled:!!e});if(!e)return null;let n=t?.summary;return(0,M.jsx)(`div`,{className:`space-y-6`,children:n&&(0,M.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-3`,children:[(0,M.jsx)(Sa,{label:`Total Runs`,value:`${n.totalRuns}`}),(0,M.jsx)(Sa,{label:`Success`,value:`${n.okRuns}`}),(0,M.jsx)(Sa,{label:`Errors`,value:`${n.errorRuns}`}),(0,M.jsx)(Sa,{label:`Avg Duration`,value:n.avgDurationMs?F(n.avgDurationMs):`—`}),(0,M.jsx)(Sa,{label:`Total Tokens`,value:Bi(n.totalTokens)}),(0,M.jsx)(Sa,{label:`Total Cost`,value:zi(n.totalCost)})]})})}function wa(){let{agents:e,schedulerInfo:t}=Vr(),n=e.map(e=>e.name),r=e.reduce((e,t)=>e+(t.cumulativeUsage?.totalTokens??0),0),i=e.filter(e=>(e.cumulativeUsage?.totalTokens??0)>0).sort((e,t)=>(t.cumulativeUsage?.totalTokens??0)-(e.cumulativeUsage?.totalTokens??0));return(0,M.jsxs)(`div`,{className:`space-y-6`,children:[(0,M.jsx)(`div`,{className:`flex items-center justify-between flex-wrap gap-3`,children:(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white`,children:`Stats`})}),(0,M.jsx)(`div`,{className:`flex gap-6 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`span`,{className:`pb-2 text-sm font-medium text-blue-600 dark:text-blue-400 border-b-2 border-blue-600 dark:border-blue-400`,children:`Token Usage`})}),t?.startedAt&&(0,M.jsxs)(`div`,{className:`text-sm text-slate-500 dark:text-slate-400`,children:[`Session: `,Ui(t.startedAt)]}),(0,M.jsx)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800`,children:r===0?(0,M.jsx)(`div`,{className:`px-4 py-8 text-center text-slate-500 dark:text-slate-400`,children:`No token usage recorded yet`}):i.map(e=>{let t=e.cumulativeUsage?.totalTokens??0,i=t/r*100;return(0,M.jsxs)(`div`,{className:`px-4 py-3 border-b border-slate-100 dark:border-slate-800/50 last:border-0`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between mb-1.5`,children:[(0,M.jsx)(j,{to:`/dashboard/agents/${encodeURIComponent(e.name)}`,className:`agent-color-text text-sm font-medium hover:underline`,style:N(e.name,n),children:e.name}),(0,M.jsxs)(`span`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:[Bi(t),` (`,i.toFixed(1),`%)`]})]}),(0,M.jsx)(`div`,{className:`h-2 rounded-full overflow-hidden bg-slate-200 dark:bg-slate-800`,children:(0,M.jsx)(`div`,{className:`h-full rounded-full agent-color-bg transition-all`,style:{width:`${i}%`,...N(e.name,n)}})})]},e.name)})})]})}function Ta(e){if(!e)return`—`;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function Ea(){let{receiptId:e}=ft(),[t,n]=(0,x.useState)(void 0),[r,i]=(0,x.useState)(null),[a,o]=(0,x.useState)(null),[s,c]=(0,x.useState)(!1);(0,x.useEffect)(()=>{e&&nr(e).then(e=>n(e.receipt)).catch(()=>n(null))},[e]);let l=(0,x.useCallback)(async()=>{if(e){i(null),o(null),c(!0);try{let t=await rr(e);i(`Replayed: ${t.matched} matched, ${t.skipped} skipped`)}catch(e){o(e instanceof Error?e.message:`Replay failed`)}finally{c(!1)}}},[e]);if(!e)return null;if(t===void 0)return(0,M.jsx)(`div`,{className:`text-center py-12 text-slate-500 dark:text-slate-400`,children:`Loading...`});if(t===null)return(0,M.jsx)(`div`,{className:`space-y-6`,children:(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(j,{to:`/dashboard/triggers`,className:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`,children:(0,M.jsx)(`svg`,{className:`w-5 h-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M15 19l-7-7 7-7`})})}),(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white`,children:`Receipt not found`})]})});let u=!!(t.headers||t.body),d=t.status===`processed`?`completed`:`dead-letter`,f=sa(t.body,t.headers);return(0,M.jsxs)(`div`,{className:`space-y-6`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(j,{to:`/dashboard/triggers`,className:`text-slate-500 hover:text-slate-700 dark:hover:text-slate-300`,children:(0,M.jsx)(`svg`,{className:`w-5 h-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,M.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M15 19l-7-7 7-7`})})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h1`,{className:`text-xl font-bold text-slate-900 dark:text-white font-mono`,children:Vi(t.id)}),(0,M.jsx)(`div`,{className:`text-xs text-slate-500 dark:text-slate-400`,children:`Webhook Receipt`})]}),(0,M.jsx)(si,{result:d})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r&&(0,M.jsx)(`span`,{className:`text-xs text-green-600 dark:text-green-400`,children:r}),a&&(0,M.jsx)(`span`,{className:`text-xs text-red-600 dark:text-red-400`,children:a}),(0,M.jsx)(`button`,{onClick:l,disabled:!u||s,className:`px-3 py-1.5 text-xs font-medium rounded-md bg-blue-600 hover:bg-blue-700 disabled:opacity-40 text-white transition-colors`,children:s?`Replaying...`:`Replay`})]})]}),(0,M.jsx)(`div`,{className:`max-w-2xl`,children:(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-4`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white mb-3`,children:`Receipt Info`}),(0,M.jsxs)(`dl`,{className:`text-sm`,children:[(0,M.jsxs)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-x-4 py-1 items-center`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Source`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:t.source})]}),t.eventSummary&&(0,M.jsxs)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-x-4 py-1 items-center`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Event`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:t.eventSummary})]}),t.deliveryId&&(0,M.jsxs)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-x-4 py-1 items-center`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Delivery ID`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300 font-mono text-xs`,children:t.deliveryId})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-x-4 py-1 items-center`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Timestamp`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:Hi(t.timestamp)})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-x-4 py-1 items-center`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Status`}),(0,M.jsx)(`dd`,{children:(0,M.jsx)(si,{result:d})})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-x-4 py-1 items-center`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Matched Agents`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300`,children:t.matchedAgents})]}),t.deadLetterReason&&(0,M.jsxs)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-x-4 py-1 items-center`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Dead Letter Reason`}),(0,M.jsx)(`dd`,{className:`text-red-600 dark:text-red-400 text-xs`,children:t.deadLetterReason})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-[8rem_1fr] gap-x-4 py-1 items-start pt-2 mt-1 border-t border-slate-200 dark:border-slate-800`,children:[(0,M.jsx)(`dt`,{className:`text-slate-500 dark:text-slate-400`,children:`Receipt ID`}),(0,M.jsx)(`dd`,{className:`text-slate-700 dark:text-slate-300 font-mono text-xs break-all`,children:t.id})]})]})]})}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:`Headers`})}),(0,M.jsx)(`div`,{className:`p-3 bg-slate-950`,children:(0,M.jsx)(`pre`,{className:`text-xs font-mono text-slate-300 whitespace-pre-wrap break-all`,children:t.headers?Ta(t.headers):`—`})})]}),f&&(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:f.label})}),(0,M.jsx)(`div`,{className:`bg-slate-950 p-3 max-h-96 overflow-y-auto`,children:(0,M.jsx)(`pre`,{className:`text-xs font-mono text-slate-300 whitespace-pre-wrap break-all`,children:f.content})})]}),(0,M.jsxs)(`div`,{className:`bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`px-4 py-2.5 border-b border-slate-200 dark:border-slate-800`,children:(0,M.jsx)(`h2`,{className:`text-sm font-medium text-slate-900 dark:text-white`,children:f?`Raw Body`:`Body`})}),(0,M.jsx)(`div`,{className:`bg-slate-950 p-3 max-h-96 overflow-y-auto`,children:(0,M.jsx)(`pre`,{className:`text-xs font-mono text-slate-300 whitespace-pre-wrap break-all`,children:t.body?Ta(t.body):`—`})})]})]})}function Da(){let{name:e}=ft();return(0,M.jsx)(It,{to:`/activity?agent=${encodeURIComponent(e??``)}`,replace:!0})}function Oa(){let{name:e}=ft();return(0,M.jsx)(It,{to:`/dashboard/agents/${encodeURIComponent(e??``)}/settings`,replace:!0})}function ka(){return(0,M.jsxs)(zt,{children:[(0,M.jsx)(A,{path:`/login`,element:(0,M.jsx)(ui,{})}),(0,M.jsxs)(A,{element:(0,M.jsx)(Gr,{}),children:[(0,M.jsx)(A,{path:`/dashboard`,element:(0,M.jsx)(yi,{})}),(0,M.jsxs)(A,{path:`/dashboard/agents/:name`,element:(0,M.jsx)(Jr,{}),children:[(0,M.jsx)(A,{index:!0,element:(0,M.jsx)(Qi,{})}),(0,M.jsx)(A,{path:`stats`,element:(0,M.jsx)(Ca,{})}),(0,M.jsx)(A,{path:`settings`,element:(0,M.jsx)(na,{})}),(0,M.jsx)(A,{path:`admin`,element:(0,M.jsx)(It,{to:`settings`,replace:!0})}),(0,M.jsx)(A,{path:`skill`,element:(0,M.jsx)(Oa,{})}),(0,M.jsx)(A,{path:`triggers`,element:(0,M.jsx)(Da,{})})]}),(0,M.jsxs)(A,{path:`/dashboard/agents/:name/instances/:id`,element:(0,M.jsx)(li,{}),children:[(0,M.jsx)(A,{index:!0,element:(0,M.jsx)(aa,{})}),(0,M.jsx)(A,{path:`trigger`,element:(0,M.jsx)(la,{})}),(0,M.jsx)(A,{path:`telemetry`,element:(0,M.jsx)(ua,{})})]}),(0,M.jsx)(A,{path:`/dashboard/triggers`,element:(0,M.jsx)(It,{to:`/activity`,replace:!0})}),(0,M.jsx)(A,{path:`/activity`,element:(0,M.jsx)(va,{})}),(0,M.jsx)(A,{path:`/stats`,element:(0,M.jsx)(wa,{})}),(0,M.jsx)(A,{path:`/triggers`,element:(0,M.jsx)(It,{to:`/activity`,replace:!0})}),(0,M.jsx)(A,{path:`/jobs`,element:(0,M.jsx)(It,{to:`/activity`,replace:!0})}),(0,M.jsx)(A,{path:`/dashboard/triggers/:instanceId`,element:(0,M.jsx)(ba,{})}),(0,M.jsx)(A,{path:`/dashboard/webhooks/:receiptId`,element:(0,M.jsx)(Ea,{})}),(0,M.jsx)(A,{path:`/dashboard/config`,element:(0,M.jsx)(xa,{})})]}),(0,M.jsx)(A,{path:`/`,element:(0,M.jsx)(It,{to:`/dashboard`,replace:!0})})]})}var Aa=localStorage.getItem(`al-theme`)||`dark`;document.documentElement.classList.toggle(`dark`,Aa===`dark`),(0,Yn.createRoot)(document.getElementById(`root`)).render((0,M.jsx)(x.StrictMode,{children:(0,M.jsx)(On,{children:(0,M.jsx)(ka,{})})}));
|