@alook/app 0.0.84 → 0.0.85
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/bundled/email-worker/index.js +6 -0
- package/bundled/email-worker/wrangler.toml +3 -0
- package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
- package/bundled/web/.open-next/assets/BUILD_ID +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0-iq3n0xk3eip.js +3 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0d..9l~-zlc8y.js +60 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0dws~l.0e81v2.css +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0~xam~jpkm~vn.js → 0h4ll.t5at.ac.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0h5tl-yh9wijv.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0ku92fo7c687y.js +3 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0madzro0r0v7m.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0tvembqw.e82g.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0yhw7i91nm01l.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0zz2mxapzj90g.js +63 -0
- package/bundled/web/.open-next/cache/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/sitemap.xml.cache +1 -1
- package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
- package/bundled/web/.open-next/cloudflare/init.js +1 -1
- package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
- package/bundled/web/.open-next/middleware/handler.mjs +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/required-server-files.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/route.js +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.1vmoe._.js +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__00_g5g4._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__027mioa._.js +6 -6
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__02_0idg._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0grx101._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0kc1f.6._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0m_ya4f._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0niqi98._.js +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +8 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0-7a9se._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_007pf4f._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0266t8u._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_037ndoa._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_04gp_km._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05zp0zn._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_091mubc._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09j_99x._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0aveiot._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0cji8yc._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0drn_ol._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0exm5_w._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0f.tk9k._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0g1_3hn._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h3guve._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h_dgb9._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0hxvvdy._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ke5r~m._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l0biq~._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0oyl16-._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0pt9vvp._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0w6dw.t._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12gxjds._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_13hlohp._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0mko5ir._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__03yopx2._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +8 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_015fu61._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0tu039y._.js → _01opi~8._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_11h_8jo._.js → _02ui5fr._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_063q-hj._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ktjqeo._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0sh5zo0._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0t5o.14._.js +65 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12e18r-._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_agents_[id]_meetings_page_tsx_073~u~-._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_calendar_page_tsx_01geiyd._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +69 -69
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +202 -202
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +4 -4
- package/bundled/ws-do/index.js +6 -0
- package/dist/cli/index.js +11 -0
- package/dist/cli/session-runner.js +11 -0
- package/dist/index.js +14 -2
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/03s92jcv9_0ve.css +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0aedy~23652fn.js +0 -63
- package/bundled/web/.open-next/assets/_next/static/chunks/0dbw1te5ym2kd.js +0 -2
- package/bundled/web/.open-next/assets/_next/static/chunks/0e32q02m3ewux.js +0 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/0e3fj46r9j0os.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0j2~fioc-ekva.js +0 -59
- package/bundled/web/.open-next/assets/_next/static/chunks/0jahw0dpk9vgc.js +0 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/10y9irnmfgbfy.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/15lauqmpngfj2.js +0 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/01k0_lucide-react_dist_esm_icons_clock_mjs_05q1~5y._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0esiqa8._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0st8pau._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0xg~7mg._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0y3mwm6._.js +0 -65
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_11~t2ti._.js +0 -3
- /package/bundled/web/.open-next/assets/_next/static/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/robots.txt.cache +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,740513,e=>{"use strict";var t=e.i(368075),n=e.i(298699),r=e.i(598941),s=e.i(777168),i=e.i(519819),a=e.i(34619),l=e.i(252157),o=e.i(111092),d=e.i(362615);function c(e){var t;let{char:n,allowSpaces:r,allowToIncludeChar:s,allowedPrefixes:i,startOfLine:l,$position:o}=e,d=r&&!s,c=(0,a.escapeForRegEx)(n),u=RegExp(`\\s${c}$`),m=l?"^":"",h=s?"":c,p=d?RegExp(`${m}${c}.*?(?=\\s${h}|$)`,"gm"):RegExp(`${m}(?:^)?${c}[^\\s${h}]*`,"gm"),g=(null==(t=o.nodeBefore)?void 0:t.isText)&&o.nodeBefore.text;if(!g)return null;let x=o.pos-g.length,f=Array.from(g.matchAll(p)).pop();if(!f||void 0===f.input||void 0===f.index)return null;let y=f.input.slice(Math.max(0,f.index-1),f.index),k=RegExp(`^[${null==i?void 0:i.join("")}\0]?$`).test(y);if(null!==i&&!k)return null;let v=x+f.index,w=v+f[0].length;return(d&&u.test(g.slice(w-1,w+1))&&(f[0]+=" ",w+=1),v<o.pos&&w>=o.pos)?{range:{from:v,to:w},query:f[0].slice(n.length),text:f[0]}:null}var u=new o.PluginKey("suggestion");function m({pluginKey:e=u,editor:t,char:n="@",allowSpaces:r=!1,allowToIncludeChar:s=!1,allowedPrefixes:i=[" "],startOfLine:a=!1,decorationTag:l="span",decorationClass:h="suggestion",decorationContent:p="",decorationEmptyClass:g="is-empty",command:x=()=>null,items:f=()=>[],render:y=()=>({}),allow:k=()=>!0,findSuggestionMatch:v=c,shouldShow:w,shouldResetDismissed:b}){let j,N=null==y?void 0:y(),T=r&&!s,M=()=>{let e=t.state.selection.$anchor.pos,{top:n,right:r,bottom:s,left:i}=t.view.coordsAtPos(e);try{return new DOMRect(i,n,r-i,s-n)}catch{return null}},C=(n,r)=>r?()=>{let r=e.getState(t.state),s=null==r?void 0:r.decorationId,i=n.dom.querySelector(`[data-decoration-id="${s}"]`);return(null==i?void 0:i.getBoundingClientRect())||null}:M,S=new o.Plugin({key:e,view(){return{update:async(e,n)=>{var r,s,i,a,l,o,d;let c=null==(r=this.key)?void 0:r.getState(n),u=null==(s=this.key)?void 0:s.getState(e.state),m=c.active&&u.active&&c.range.from!==u.range.from,h=!c.active&&u.active,p=c.active&&!u.active,g=!h&&!p&&c.query!==u.query,y=h||m&&g,k=g||m,v=p||m&&g;if(!y&&!k&&!v)return;let w=v&&!y?c:u,b=e.dom.querySelector(`[data-decoration-id="${w.decorationId}"]`);j={editor:t,range:w.range,query:w.query,text:w.text,items:[],command:e=>x({editor:t,range:w.range,props:e}),decorationNode:b,clientRect:C(e,b)},y&&(null==(i=null==N?void 0:N.onBeforeStart)||i.call(N,j)),k&&(null==(a=null==N?void 0:N.onBeforeUpdate)||a.call(N,j)),(k||y)&&(j.items=await f({editor:t,query:w.query})),v&&(null==(l=null==N?void 0:N.onExit)||l.call(N,j)),k&&(null==(o=null==N?void 0:N.onUpdate)||o.call(N,j)),y&&(null==(d=null==N?void 0:N.onStart)||d.call(N,j))},destroy:()=>{var e;j&&(null==(e=null==N?void 0:N.onExit)||e.call(N,j))}}},state:{init:()=>({active:!1,range:{from:0,to:0},query:null,text:null,composing:!1,dismissedRange:null}),apply(l,o,d,c){let{isEditable:u}=t,{composing:m}=t.view,{selection:h}=l,{empty:p,from:g}=h,x={...o},f=l.getMeta(e);if(f&&f.exit)return x.active=!1,x.decorationId=null,x.range={from:0,to:0},x.query=null,x.text=null,x.dismissedRange=o.active?{...o.range}:o.dismissedRange,x;if(x.composing=m,l.docChanged&&null!==x.dismissedRange&&(x.dismissedRange={from:l.mapping.map(x.dismissedRange.from),to:l.mapping.map(x.dismissedRange.to)}),u&&(p||t.view.composing)){(g<o.range.from||g>o.range.to)&&!m&&!o.composing&&(x.active=!1);let e=v({char:n,allowSpaces:r,allowToIncludeChar:s,allowedPrefixes:i,startOfLine:a,$position:h.$from}),d=`id_${Math.floor(0xffffffff*Math.random())}`;e&&k({editor:t,state:c,range:e.range,isActive:o.active})&&(!w||w({editor:t,range:e.range,query:e.query,text:e.text,transaction:l}))?(null===x.dismissedRange||(({match:e,dismissedRange:n,state:r,transaction:s})=>(null==b?!void 0:!b({editor:t,state:r,range:n,match:e,transaction:s,allowSpaces:T}))&&(T?e.range.from===n.from:e.range.from===n.from&&!(s.docChanged&&s.steps.some(e=>{let t=e.slice;if(!(null==t?void 0:t.content))return!1;let n=t.content.textBetween(0,t.content.size,"\n");return/\s/.test(n)}))))({match:e,dismissedRange:x.dismissedRange,state:c,transaction:l})||(x.dismissedRange=null),null===x.dismissedRange?(x.active=!0,x.decorationId=o.decorationId?o.decorationId:d,x.range=e.range,x.query=e.query,x.text=e.text):x.active=!1):(e||(x.dismissedRange=null),x.active=!1)}else x.active=!1;return x.active||(x.decorationId=null,x.range={from:0,to:0},x.query=null,x.text=null),x}},props:{handleKeyDown(n,r){var s,i;let{active:a,range:l}=S.getState(n.state);if(!a)return!1;if("Escape"===r.key||"Esc"===r.key){let i=S.getState(n.state);return null==(s=null==N?void 0:N.onKeyDown)||s.call(N,{view:n,event:r,range:i.range}),!function(n,r){var s;try{let r=e.getState(n.state),i=(null==r?void 0:r.decorationId)?n.dom.querySelector(`[data-decoration-id="${r.decorationId}"]`):null,a={editor:t,range:(null==r?void 0:r.range)||{from:0,to:0},query:(null==r?void 0:r.query)||null,text:(null==r?void 0:r.text)||null,items:[],command:e=>x({editor:t,range:(null==r?void 0:r.range)||{from:0,to:0},props:e}),decorationNode:i,clientRect:C(n,i)};null==(s=null==N?void 0:N.onExit)||s.call(N,a)}catch{}let i=n.state.tr.setMeta(r,{exit:!0});n.dispatch(i)}(n,e),!0}return(null==(i=null==N?void 0:N.onKeyDown)?void 0:i.call(N,{view:n,event:r,range:l}))||!1},decorations(e){let{active:t,range:n,decorationId:r,query:s}=S.getState(e);if(!t)return null;let i=!(null==s?void 0:s.length),a=[h];return i&&a.push(g),d.DecorationSet.create(e.doc,[d.Decoration.inline(n.from,n.to,{nodeName:l,class:a.join(" "),"data-decoration-id":r,"data-decoration-content":p})])}}});return S}function h(e){return(e.options.suggestions.length?e.options.suggestions:[e.options.suggestion]).map(t=>(function({editor:e,overrideSuggestionOptions:t,extensionName:n,char:r="@"}){return{editor:e,char:r,pluginKey:new o.PluginKey,command:({editor:e,range:t,props:s})=>{var i,a,l;let o=e.view.state.selection.$to.nodeAfter;(null==(i=null==o?void 0:o.text)?void 0:i.startsWith(" "))&&(t.to+=1),e.chain().focus().insertContentAt(t,[{type:n,attrs:{...s,mentionSuggestionChar:r}},{type:"text",text:" "}]).run(),null==(l=null==(a=e.view.dom.ownerDocument.defaultView)?void 0:a.getSelection())||l.collapseToEnd()},allow:({state:e,range:t})=>{let r=e.doc.resolve(t.from),s=e.schema.nodes[n];return!!r.parent.type.contentMatch.matchType(s)},...t}})({editor:e.editor,overrideSuggestionOptions:t,extensionName:e.name,char:t.char}))}function p(e,t){let n=h(e),r=n.find(e=>e.char===t);return r||(n.length?n[0]:null)}var g=a.Node.create({name:"mention",priority:101,addOptions:()=>({HTMLAttributes:{},renderText({node:e,suggestion:t}){var n,r;return`${null!=(n=null==t?void 0:t.char)?n:"@"}${null!=(r=e.attrs.label)?r:e.attrs.id}`},deleteTriggerWithBackspace:!1,renderHTML({options:e,node:t,suggestion:n}){var r,s;return["span",(0,a.mergeAttributes)(this.HTMLAttributes,e.HTMLAttributes),`${null!=(r=null==n?void 0:n.char)?r:"@"}${null!=(s=t.attrs.label)?s:t.attrs.id}`]},suggestions:[],suggestion:{}}),group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes:()=>({id:{default:null,parseHTML:e=>e.getAttribute("data-id"),renderHTML:e=>e.id?{"data-id":e.id}:{}},label:{default:null,parseHTML:e=>e.getAttribute("data-label"),renderHTML:e=>e.label?{"data-label":e.label}:{}},mentionSuggestionChar:{default:"@",parseHTML:e=>e.getAttribute("data-mention-suggestion-char"),renderHTML:e=>({"data-mention-suggestion-char":e.mentionSuggestionChar})}}),parseHTML(){return[{tag:`span[data-type="${this.name}"]`}]},renderHTML({node:e,HTMLAttributes:t}){let n=p(this,e.attrs.mentionSuggestionChar);if(void 0!==this.options.renderLabel)return console.warn("renderLabel is deprecated use renderText and renderHTML instead"),["span",(0,a.mergeAttributes)({"data-type":this.name},this.options.HTMLAttributes,t),this.options.renderLabel({options:this.options,node:e,suggestion:n})];let r={...this.options};r.HTMLAttributes=(0,a.mergeAttributes)({"data-type":this.name},this.options.HTMLAttributes,t);let s=this.options.renderHTML({options:r,node:e,suggestion:n});return"string"==typeof s?["span",(0,a.mergeAttributes)({"data-type":this.name},this.options.HTMLAttributes,t),s]:s},...(0,a.createInlineMarkdownSpec)({nodeName:"mention",name:"@",selfClosing:!0,allowedAttributes:["id","label",{name:"mentionSuggestionChar",skipIfDefault:"@"}],parseAttributes:e=>{let t={},n=/(\w+)=(?:"([^"]*)"|'([^']*)')/g,r=n.exec(e);for(;null!==r;){let[,s,i,a]=r,l=null!=i?i:a;t["char"===s?"mentionSuggestionChar":s]=l,r=n.exec(e)}return t},serializeAttributes:e=>Object.entries(e).filter(([,e])=>null!=e).map(([e,t])=>`${"mentionSuggestionChar"===e?"char":e}="${t}"`).join(" ")}),renderText({node:e}){let t={options:this.options,node:e,suggestion:p(this,e.attrs.mentionSuggestionChar)};return void 0!==this.options.renderLabel?(console.warn("renderLabel is deprecated use renderText and renderHTML instead"),this.options.renderLabel(t)):this.options.renderText(t)},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:e,state:t})=>{let n=!1,{selection:r}=t,{empty:s,anchor:i}=r;if(!s)return!1;let a=new l.Node,o=0;return t.doc.nodesBetween(i-1,i,(e,t)=>{if(e.type.name===this.name)return n=!0,a=e,o=t,!1}),n&&e.insertText(this.options.deleteTriggerWithBackspace?"":a.attrs.mentionSuggestionChar,o,o+a.nodeSize),n})}},addProseMirrorPlugins(){return h(this).map(m)}}),x=e.i(811156);function f(e,t){let n=t.split("\n").flatMap(e=>[e,""]).map(t=>`${e}${t}`).join("\n");return n.slice(0,n.length-1)}function y(e){let t=(e.raw||e.text||"").match(/^(\s*)[-+*]\s+\[([ xX])\]\s+/);return t?{isTask:!0,checked:"x"===t[2].toLowerCase(),indentLevel:t[1].length}:{isTask:!1,indentLevel:0}}function k(e,t){return"string"!=typeof e?"json":t}var v=class{constructor(e){var t,n,r,s,i;this.activeParseLexer=null,this.extensionRanks=new Map,this.baseExtensions=[],this.extensions=[],this.codeTypes=new Set,this.lastParseResult=null,this.markedInstance=null!=(t=null==e?void 0:e.marked)?t:x.marked,this.indentStyle=null!=(r=null==(n=null==e?void 0:e.indentation)?void 0:n.style)?r:"space",this.indentSize=null!=(i=null==(s=null==e?void 0:e.indentation)?void 0:s.size)?i:2,this.baseExtensions=(null==e?void 0:e.extensions)||[],(null==e?void 0:e.markedOptions)&&"function"==typeof this.markedInstance.setOptions&&this.markedInstance.setOptions(e.markedOptions),this.registry=new Map,this.nodeTypeRegistry=new Map,(null==e?void 0:e.extensions)&&(this.baseExtensions=e.extensions,(0,a.sortExtensions)((0,a.flattenExtensions)(e.extensions)).forEach(e=>this.registerExtension(e)))}get instance(){return this.markedInstance}get indentCharacter(){return"space"===this.indentStyle?" ":" "}get indentString(){return this.indentCharacter.repeat(this.indentSize)}hasMarked(){return!!this.markedInstance}registerExtension(e){var t,n;this.extensions.push(e);let r=(0,a.callOrReturn)((0,a.getExtensionField)(e,"code")),s=e.name;r&&this.codeTypes.add(s),this.extensionRanks.has(s)||this.extensionRanks.set(s,this.extensionRanks.size);let i=(0,a.getExtensionField)(e,"markdownTokenName")||s,l=(0,a.getExtensionField)(e,"parseMarkdown"),o=(0,a.getExtensionField)(e,"renderMarkdown"),d=(0,a.getExtensionField)(e,"markdownTokenizer"),c=null!=(t=(0,a.getExtensionField)(e,"markdownOptions"))?t:null,u={tokenName:i,nodeName:s,parseMarkdown:l,renderMarkdown:o,isIndenting:null!=(n=null==c?void 0:c.indentsContent)&&n,htmlReopen:null==c?void 0:c.htmlReopen,tokenizer:d};if(i&&l){let e=this.registry.get(i)||[];e.push(u),this.registry.set(i,e)}if(o){let e=this.nodeTypeRegistry.get(s)||[];e.push(u),this.nodeTypeRegistry.set(s,e)}d&&this.hasMarked()&&this.registerTokenizer(d)}createLexer(){return new this.markedInstance.Lexer}createTokenizerHelpers(e){return{inlineTokens:t=>e.inlineTokens(t),blockTokens:t=>e.blockTokens(t)}}tokenizeInline(e){var t;return(null!=(t=this.activeParseLexer)?t:this.createLexer()).inlineTokens(e)}registerTokenizer(e){if(!this.hasMarked())return;let{name:t,start:n,level:r="inline",tokenize:s}=e,i=this.createTokenizerHelpers.bind(this),a=this.createLexer.bind(this);this.markedInstance.use({extensions:[{name:t,level:r,start:n?"function"==typeof n?n:e=>e.indexOf(n):e=>{let t=s(e,[],this.createTokenizerHelpers(this.createLexer()));return t&&t.raw?e.indexOf(t.raw):-1},tokenizer(e,n){let r=s(e,n,this.lexer?i(this.lexer):i(a()));if(r&&r.type)return{...r,type:r.type||t,raw:r.raw||"",tokens:r.tokens||[]}},childTokens:[]}]})}getHandlersForToken(e){try{return this.registry.get(e)||[]}catch{return[]}}getHandlerForToken(e){let t=this.getHandlersForToken(e);if(t.length>0)return t[0];let n=this.getHandlersForNodeType(e);return n.length>0?n[0]:void 0}getHandlersForNodeType(e){try{return this.nodeTypeRegistry.get(e)||[]}catch{return[]}}serialize(e){if(!e)return"";let t=this.renderNodes(e,e);return this.isEmptyOutput(t)?"":t}isEmptyOutput(e){return!e||""===e.trim()||""===e.replace(/ /g,"").replace(/\u00A0/g,"").trim()}parse(e){if(!this.hasMarked())throw Error("No marked instance available for parsing");let t=this.activeParseLexer,n=this.createLexer();this.activeParseLexer=n;try{let t=n.lex(e),r=this.parseTokens(t,!0);return{type:"doc",content:r}}finally{this.activeParseLexer=t}}parseTokens(e,t=!1){let n=e.reduce((e,t,n)=>("space"!==t.type&&e.push(n),e),[]),r=-1,s=0;return e.flatMap((e,i)=>{for(var a;s<n.length&&n[s]<i;)r=n[s],s+=1;if(t&&"space"===e.type){let t=null!=(a=n[s])?a:-1;return this.createImplicitEmptyParagraphsFromSpace(e,r,t)}let l=this.parseToken(e,t);return null===l?[]:Array.isArray(l)?l:[l]})}createImplicitEmptyParagraphsFromSpace(e,t,n){let r=this.countParagraphSeparators(e.raw||"");return 0===r?[]:Array.from({length:Math.max(r-(-1!==t&&-1!==n),0)},()=>({type:"paragraph",content:[]}))}countParagraphSeparators(e){return(e.replace(/\r\n/g,"\n").match(/\n\n/g)||[]).length}parseToken(e,t=!1){if(!e.type)return null;if("list"===e.type)return this.parseListToken(e);let n=this.getHandlersForToken(e.type),r=this.createParseHelpers();if(n.find(t=>{if(!t.parseMarkdown)return!1;let n=t.parseMarkdown(e,r),s=this.normalizeParseResult(n);return!(!s||Array.isArray(s)&&!(s.length>0))&&(this.lastParseResult=s,!0)})&&this.lastParseResult){let e=this.lastParseResult;return this.lastParseResult=null,e}return this.parseFallbackToken(e,t)}parseListToken(e){if(!e.items||0===e.items.length)return this.parseTokenWithHandlers(e);let t=e.items.some(e=>y(e).isTask),n=e.items.some(e=>!y(e).isTask);if(!t||!n||0===this.getHandlersForToken("taskList").length)return this.parseTokenWithHandlers(e);let r=[],s=[],i=null;for(let t=0;t<e.items.length;t+=1){let n=e.items[t],{isTask:a,checked:l,indentLevel:o}=y(n),d=n;if(a){let e=(n.raw||n.text||"").split("\n"),t=e[0].match(/^\s*[-+*]\s+\[([ xX])\]\s+(.*)$/),r=t?t[2]:"",s=[];if(e.length>1&&e.slice(1).join("\n").trim()){let t=e.slice(1),n=t.filter(e=>e.trim());if(n.length>0){let e=Math.min(...n.map(e=>e.length-e.trimStart().length)),r=t.map(t=>t.trim()?t.slice(e):"").join("\n").trim();r&&(s=this.markedInstance.lexer(`${r}
|
|
2
|
-
`))}}d={type:"taskItem",raw:"",mainContent:r,indentLevel:o,checked:null!=l&&l,text:r,tokens:this.tokenizeInline(r),nestedTokens:s}}let c=a?"taskList":"list";i!==c?(s.length>0&&r.push({type:i,items:s}),s=[d],i=c):s.push(d)}s.length>0&&r.push({type:i,items:s});let a=[];for(let t=0;t<r.length;t+=1){let n=r[t],s={...e,type:n.type,items:n.items},i=this.parseToken(s);i&&(Array.isArray(i)?a.push(...i):a.push(i))}return a.length>0?a:null}parseTokenWithHandlers(e){if(!e.type)return null;let t=this.getHandlersForToken(e.type),n=this.createParseHelpers();if(t.find(t=>{if(!t.parseMarkdown)return!1;let r=t.parseMarkdown(e,n),s=this.normalizeParseResult(r);return!(!s||Array.isArray(s)&&!(s.length>0))&&(this.lastParseResult=s,!0)})&&this.lastParseResult){let e=this.lastParseResult;return this.lastParseResult=null,e}return this.parseFallbackToken(e)}createParseHelpers(){return{parseInline:e=>this.parseInlineTokens(e),tokenizeInline:e=>this.tokenizeInline(e),parseChildren:e=>this.parseTokens(e),parseBlockChildren:e=>this.parseTokens(e,!0),createTextNode:(e,t)=>({type:"text",text:e,marks:t||void 0}),createNode:(e,t,n)=>{let r={type:e,attrs:t||void 0,content:n||void 0};return t&&0!==Object.keys(t).length||delete r.attrs,r},applyMark:(e,t,n)=>({mark:e,content:t,attrs:n&&Object.keys(n).length>0?n:void 0})}}escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}parseInlineTokens(e){var t,n,r,s;let i=[];for(let l=0;l<e.length;l+=1){let o=e[l];if("text"===o.type)i.push({type:"text",text:(0,a.decodeHtmlEntities)(o.text||"")});else if("html"===o.type){let a=(null!=(n=null!=(t=o.raw)?t:o.text)?n:"").toString(),d=/^<\/[\s]*[\w-]+/i.test(a),c=a.match(/^<[\s]*([\w-]+)(\s|>|\/|$)/i);if(!d&&c&&!/\/>$/.test(a)){let t=c[1],n=this.escapeRegex(t),o=RegExp(`^<\\/\\s*${n}\\b`,"i"),d=-1,u=[a];for(let t=l+1;t<e.length;t+=1){let n=e[t],i=(null!=(s=null!=(r=n.raw)?r:n.text)?s:"").toString();if(u.push(i),"html"===n.type&&o.test(i)){d=t;break}}if(-1!==d){let e=u.join(""),t={type:"html",raw:e,text:e,block:!1},n=this.parseHTMLToken(t);if(n){let e=this.normalizeParseResult(n);Array.isArray(e)?i.push(...e):e&&i.push(e)}l=d;continue}}let u=this.parseHTMLToken(o);if(u){let e=this.normalizeParseResult(u);Array.isArray(e)?i.push(...e):e&&i.push(e)}}else if(o.type){let e=this.getHandlerForToken(o.type);if(e&&e.parseMarkdown){let t=this.createParseHelpers(),n=e.parseMarkdown(o,t);if(this.isMarkResult(n)){let e=this.applyMarkToContent(n.mark,n.content,n.attrs);i.push(...e)}else{let e=this.normalizeParseResult(n);Array.isArray(e)?i.push(...e):e&&i.push(e)}}else o.tokens&&i.push(...this.parseInlineTokens(o.tokens))}}return i}applyMarkToContent(e,t,n){return t.map(t=>{if("text"===t.type){let r=t.marks||[],s=n?{type:e,attrs:n}:{type:e};return{...t,marks:[...r,s]}}return{...t,content:t.content?this.applyMarkToContent(e,t.content,n):void 0}})}isMarkResult(e){return e&&"object"==typeof e&&"mark"in e}normalizeParseResult(e){return e?this.isMarkResult(e)?e.content:e:null}parseFallbackToken(e,t=!1){switch(e.type){case"paragraph":return{type:"paragraph",content:e.tokens?this.parseInlineTokens(e.tokens):[]};case"heading":return{type:"heading",attrs:{level:e.depth||1},content:e.tokens?this.parseInlineTokens(e.tokens):[]};case"text":return{type:"text",text:(0,a.decodeHtmlEntities)(e.text||"")};case"html":return this.parseHTMLToken(e);case"space":return null;default:if(e.tokens)return this.parseTokens(e.tokens,t);return null}}parseHTMLToken(e){let t=e.text||e.raw||"";if(!t.trim())return null;if("u"<typeof window)return e.block?{type:"paragraph",content:[{type:"text",text:t}]}:{type:"text",text:t};try{let n=(0,a.generateJSON)(t,this.baseExtensions);if("doc"===n.type&&n.content){if(e.block)return n.content;if(1===n.content.length&&"paragraph"===n.content[0].type&&n.content[0].content)return n.content[0].content;return n.content}return n}catch(e){throw Error(`Failed to parse HTML in markdown: ${e}`)}}encodeTextForMarkdown(e,t,n){return(null==n?void 0:n.type)!=null&&this.codeTypes.has(n.type)||(t.marks||[]).some(e=>this.codeTypes.has("string"==typeof e?e:e.type))?e:(0,a.encodeHtmlEntities)(e)}renderNodeToMarkdown(e,t,n=0,r=0,s={}){var i;if("text"===e.type)return this.encodeTextForMarkdown(e.text||"",e,t);if(!e.type)return"";let a=this.getHandlerForToken(e.type);if(!a)return"";let l=Array.isArray(null==t?void 0:t.content)&&n>0?t.content[n-1]:void 0,o={index:n,level:r,parentType:null==t?void 0:t.type,previousNode:l,meta:{parentAttrs:null==t?void 0:t.attrs,...s}};return(null==(i=a.renderMarkdown)?void 0:i.call(a,e,{renderChildren:(t,s)=>{let i=a.isIndenting?r+1:r;return!Array.isArray(t)&&t.content?this.renderNodes(t.content,e,s||"",n,i):this.renderNodes(t,e,s||"",n,i)},renderChild:(t,n)=>{let s=a.isIndenting?r+1:r;return this.renderNodeToMarkdown(t,e,n,s)},indent:e=>this.indentString+e,wrapInBlock:f},o))||""}renderNodes(e,t,n="",r=0,s=0){return Array.isArray(e)?this.renderNodesWithMarkBoundaries(e,t,n,s):e.type?this.renderNodeToMarkdown(e,t,r,s):""}renderNodesWithMarkBoundaries(e,t,n="",r=0){let s=[],i=new Map,a=new Set,l=new Map;return e.forEach((n,o)=>{var d,c;let u=o<e.length-1?e[o+1]:null;if(n.type)if("text"===n.type){let e,r,o=this.encodeTextForMarkdown(n.text||"",n,t),d=new Map((n.marks||[]).map(e=>[e.type,e])),c=this.getMarksToOpenForSerialization(i,d,u),m=(e=[],Array.from(d.keys()).forEach(t=>{u&&u.marks&&u.marks.map(e=>e.type).includes(t)||e.push(t)}),e),h=m.filter(e=>i.has(e)),p=h.length>0&&c.length>0,g="";if(m.length>0&&!p){let e=o.match(/(\s+)$/);e&&(g=e[1],o=o.slice(0,-g.length))}p||m.slice().reverse().forEach(e=>{if(!i.has(e))return;let t=d.get(e),n=this.getMarkClosing(e,t,l.get(e));n&&(o+=n),i.has(e)&&(i.delete(e),l.delete(e))});let x="";if(c.length>0){let e=o.match(/^(\s+)/);e&&(x=e[1],o=o.slice(x.length))}if(c.forEach(({type:e,mark:t})=>{let n=a.has(e)?"html":"markdown",r=this.getMarkOpening(e,t,n);r&&(o=r+o),l.set(e,n),a.delete(e)}),p||c.slice().reverse().forEach(({type:e,mark:t})=>{i.set(e,t)}),o=x+o,p){let e=new Set(((null==u?void 0:u.marks)||[]).map(e=>e.type));c.forEach(({type:t})=>{e.has(t)&&this.getHtmlReopenTags(t)&&a.add(t)});let t=Array.from(i.keys()),n=h.slice().sort((e,n)=>t.indexOf(n)-t.indexOf(e));r=[...c.map(e=>e.type),...n]}else r=function(e,t,n,r){let s=!n,i=n&&"text"===n.type&&(!n.marks||0===n.marks.length),a=n&&"text"===n.type&&n.marks&&!r(t,new Map(n.marks.map(e=>[e.type,e]))),l=[];if(s||i||a)if(n&&"text"===n.type&&n.marks){let t=new Map(n.marks.map(e=>[e.type,e]));Array.from(e.keys()).reverse().forEach(e=>{t.has(e)||l.push(e)})}else(s||i)&&l.push(...Array.from(e.keys()).reverse());return l}(i,d,u,this.markSetsEqual.bind(this));let f="";if(r.length>0){let e=o.match(/(\s+)$/);e&&(f=e[1],o=o.slice(0,-f.length))}r.forEach(e=>{var t;let n=null!=(t=i.get(e))?t:d.get(e),r=this.getMarkClosing(e,n,l.get(e));r&&(o+=r),i.delete(e),l.delete(e)}),o+=f,o+=g,s.push(o)}else{let e,a,u=new Map(i),m=new Map(l),h=(d=(e,t)=>this.getMarkClosing(e,t,l.get(e)),e="",Array.from(i.keys()).reverse().forEach(t=>{let n=i.get(t),r=d(t,n);r&&(e=r+e)}),i.clear(),e);l.clear();let p=this.renderNodeToMarkdown(n,t,o,r),g="hardBreak"===n.type?"":(c=(e,t)=>{var n;let r=null!=(n=m.get(e))?n:"markdown";return l.set(e,r),this.getMarkOpening(e,t,r)},a="",Array.from(u.entries()).forEach(([e,t])=>{let n=c(e,t);n&&(a+=n),i.set(e,t)}),a);s.push(h+p+g)}}),s.join(n)}getMarkOpening(e,t,n="markdown"){var r;if("html"===n)return(null==(r=this.getHtmlReopenTags(e))?void 0:r.open)||"";let s=this.getHandlersForNodeType(e),i=s.length>0?s[0]:void 0;if(!i||!i.renderMarkdown)return"";let a="__TIPTAP_MARKDOWN_PLACEHOLDER__",l={type:e,attrs:t.attrs||{},content:[{type:"text",text:a}]};try{let e=i.renderMarkdown(l,{renderChildren:()=>a,renderChild:()=>a,indent:e=>e,wrapInBlock:(e,t)=>e+t},{index:0,level:0,parentType:"text",meta:{}}),t=e.indexOf(a);return t>=0?e.substring(0,t):""}catch(t){throw Error(`Failed to get mark opening for ${e}: ${t}`)}}getMarkClosing(e,t,n="markdown"){var r;if("html"===n)return(null==(r=this.getHtmlReopenTags(e))?void 0:r.close)||"";let s=this.getHandlersForNodeType(e),i=s.length>0?s[0]:void 0;if(!i||!i.renderMarkdown)return"";let a="__TIPTAP_MARKDOWN_PLACEHOLDER__",l={type:e,attrs:t.attrs||{},content:[{type:"text",text:a}]};try{let e=i.renderMarkdown(l,{renderChildren:()=>a,renderChild:()=>a,indent:e=>e,wrapInBlock:(e,t)=>e+t},{index:0,level:0,parentType:"text",meta:{}}),t=e.indexOf(a),n=t+a.length;return t>=0?e.substring(n):""}catch(t){throw Error(`Failed to get mark closing for ${e}: ${t}`)}}getHtmlReopenTags(e){let t=this.getHandlersForNodeType(e),n=t.length>0?t[0]:void 0;return null==n?void 0:n.htmlReopen}markSetsEqual(e,t){return e.size===t.size&&Array.from(e.keys()).every(e=>t.has(e))}getMarksToOpenForSerialization(e,t,n){let r,s=(r=[],Array.from(t.entries()).forEach(([t,n])=>{e.has(t)||r.push({type:t,mark:n})}),r);if(s.length<=1)return s;let i=new Set(((null==n?void 0:n.marks)||[]).map(e=>e.type)),a=(e,t)=>{var n,r;let s=null!=(n=this.extensionRanks.get(e.type))?n:Number.MAX_SAFE_INTEGER,i=null!=(r=this.extensionRanks.get(t.type))?r:Number.MAX_SAFE_INTEGER;return s!==i?i-s:e.type.localeCompare(t.type)};return[...s.filter(e=>!i.has(e.type)).sort(a),...s.filter(e=>i.has(e.type)).sort(a)]}},w=a.Extension.create({name:"markdown",addOptions:()=>({indentation:{style:"space",size:2},marked:void 0,markedOptions:{}}),addCommands(){return{setContent:(e,t)=>{if(!(null==t?void 0:t.contentType)||"markdown"!==k(e,null==t?void 0:t.contentType)||!this.editor.markdown)return a.commands.setContent(e,t);let n=this.editor.markdown.parse(e);return a.commands.setContent(n,t)},insertContent:(e,t)=>{if(!(null==t?void 0:t.contentType)||"markdown"!==k(e,null==t?void 0:t.contentType)||!this.editor.markdown)return a.commands.insertContent(e,t);let n=this.editor.markdown.parse(e);return a.commands.insertContent(n,t)},insertContentAt:(e,t,n)=>{if(!(null==n?void 0:n.contentType)||"markdown"!==k(t,null==n?void 0:n.contentType)||!this.editor.markdown)return a.commands.insertContentAt(e,t,n);let r=this.editor.markdown.parse(t);return a.commands.insertContentAt(e,r,n)}}},addStorage(){return{manager:new v({indentation:this.options.indentation,marked:this.options.marked,markedOptions:this.options.markedOptions,extensions:[]})}},onBeforeCreate(){var e;if(this.editor.markdown)return void console.error("[tiptap][markdown]: There is already a `markdown` property on the editor instance. This might lead to unexpected behavior.");if(this.storage.manager=new v({indentation:this.options.indentation,marked:this.options.marked,markedOptions:this.options.markedOptions,extensions:this.editor.extensionManager.baseExtensions}),this.editor.markdown=this.storage.manager,this.editor.getMarkdown=()=>this.storage.manager.serialize(this.editor.getJSON()),!this.editor.options.contentType||"markdown"!==k(this.editor.options.content,this.editor.options.contentType))return;if(!this.editor.markdown)throw Error('[tiptap][markdown]: The `contentType` option is set to "markdown", but the Markdown extension is not added to the editor. Please add the Markdown extension to use this feature.');if(void 0===this.editor.options.content||"string"!=typeof this.editor.options.content)throw Error('[tiptap][markdown]: The `contentType` option is set to "markdown", but the initial content is not a string. Please provide the initial content as a markdown string.');let t=this.editor.markdown.parse(this.editor.options.content);(null==(e=t.content)?void 0:e.length)&&(this.editor.options.content=t)}}),b=e.i(613349);e.i(954194);var j=e.i(550008);function N(e){return e&&!function(e){if(null==e)return!0;let t=e.trim();if(""===t)return!0;let n=/^<p>([\s\S]*?)<\/p>$/i.exec(t);return!!n&&""===n[1].replace(/<br\s*\/?\s*>/gi,"").replace(/ /gi," ").trim()}(e)?e.trim():""}function T({state:e,anchorEl:r}){let s=(0,n.useRef)(null),{items:i,selectedIndex:a,command:l}=e;if((0,n.useEffect)(()=>{if(!s.current)return;let e=s.current.children[a];e?.scrollIntoView({block:"nearest"})},[a]),!r||0===i.length||!l)return null;let o=r.getBoundingClientRect();return(0,j.createPortal)((0,t.jsx)("div",{className:"fixed z-100 w-64 rounded-lg border border-border bg-popover text-popover-foreground shadow-md",style:{top:o.top-4,left:o.left,transform:"translateY(-100%)"},children:(0,t.jsx)("div",{ref:s,className:"max-h-50 overflow-y-auto py-1 thin-scrollbar",children:i.map((e,n)=>(0,t.jsxs)("button",{type:"button",className:(0,b.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",n===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:t=>{t.preventDefault(),l({id:e.id,label:e.name})},children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e.name}),e.email_handle&&(0,t.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[e.email_handle,"@alook.ai"]})]},e.id))})}),document.body)}e.s(["MarkdownEditor",0,function({value:e,onChange:a,placeholder:l,className:o,minHeight:d="9rem",autoFocus:c,variant:u="default",contentType:m="html",agents:h}){let p="markdown"===m,x="number"==typeof d?`${d}px`:d,{mentionExt:f,popup:y,anchorEl:k}=function(e){let[t,r]=(0,n.useState)({items:[],selectedIndex:0,command:null}),[s,i]=(0,n.useState)(null),a=(0,n.useRef)(t);return(0,n.useEffect)(()=>{a.current=t},[t]),{mentionExt:e&&e.length>0?g.configure({HTMLAttributes:{class:"mention-highlight"},renderText:({node:e})=>`@${e.attrs.label??e.attrs.id}`,suggestion:{char:"@",items:({query:t})=>{if(!e)return[];if(!t)return e.slice(0,20);let n=t.toLowerCase(),r=[],s=[];for(let t of e){let e=t.name.toLowerCase();e.startsWith(n)?r.push(t):e.includes(n)&&s.push(t)}return[...r,...s].slice(0,20)},render:()=>({onStart:e=>{i(e.decorationNode instanceof HTMLElement?e.decorationNode:null),r({items:e.items??[],selectedIndex:0,command:e.command})},onUpdate:e=>{i(e.decorationNode instanceof HTMLElement?e.decorationNode:null),r({items:e.items??[],selectedIndex:0,command:e.command})},onKeyDown:({event:e})=>{let t=a.current;if(0===t.items.length)return!1;if("ArrowDown"===e.key)return e.preventDefault(),r({...t,selectedIndex:(t.selectedIndex+1)%t.items.length}),!0;if("ArrowUp"===e.key)return e.preventDefault(),r({...t,selectedIndex:(t.selectedIndex-1+t.items.length)%t.items.length}),!0;if("Enter"===e.key){e.preventDefault();let n=t.items[t.selectedIndex];return n&&t.command&&t.command({id:n.id,label:n.name}),r({items:[],selectedIndex:0,command:null}),!0}return"Escape"===e.key&&(r({items:[],selectedIndex:0,command:null}),!0)},onExit:()=>{r({items:[],selectedIndex:0,command:null}),i(null)}})}}):null,popup:t,anchorEl:s}}(h),v=(0,r.useEditor)({immediatelyRender:!1,content:e||void 0,...p?{contentType:"markdown"}:{},extensions:[s.default,i.default.configure({placeholder:l??""}),...p?[w]:[],...f?[f]:[]],editorProps:{attributes:{class:"seamless"===u?"markdown text-sm max-w-none focus:outline-none px-0 py-1":"markdown text-sm max-w-none focus:outline-none px-3 py-2",style:`min-height: ${x}`}},autofocus:!!c&&"end",onUpdate:({editor:e})=>{a(p?e.getMarkdown():e.getHTML())}});return(0,n.useEffect)(()=>{if(v)if(p){if((e||"").trim()===(v.getMarkdown()||"").trim())return;v.commands.setContent(e||"",{emitUpdate:!1,contentType:"markdown"})}else{if(N(e)===N(v.getHTML()))return;v.commands.setContent(e||"",{emitUpdate:!1})}},[e,v]),(0,t.jsxs)("div",{className:(0,b.cn)("seamless"===u?"w-full bg-transparent text-sm":"w-full rounded-md border border-input bg-transparent text-sm transition-[color,box-shadow] focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",o),children:[(0,t.jsx)(r.EditorContent,{editor:v}),h&&h.length>0&&(0,t.jsx)(T,{state:y,anchorEl:k})]})}],740513)},430744,e=>{"use strict";let t=(0,e.i(406963).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",0,t],430744)},535991,e=>{"use strict";let t=(0,e.i(406963).default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);e.s(["File",0,t],535991)},112946,164300,872057,e=>{"use strict";var t=e.i(507213);e.s([],112946),e.s(["Streamdown",()=>t.C],164300);let n=(0,e.i(406963).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",0,n],872057)},169678,36303,364079,721387,e=>{"use strict";var t=e.i(368075),n=e.i(298699),r=e.i(332680),s=e.i(186339),i=e.i(740513),a=e.i(728886),l=e.i(224950),o=e.i(406963);let d=(0,o.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);e.s(["ArrowUp",0,d],36303);var c=e.i(541544),u=e.i(251638),m=e.i(535991),h=e.i(927783),p=e.i(371522),g=e.i(814552),x=e.i(430744),f=e.i(789994),y=e.i(613349),k=e.i(880932);e.i(112946);var v=e.i(164300),w=e.i(222862);let b=(0,o.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),j=new Set(["application/json","application/xml","application/javascript","application/typescript","application/x-yaml","application/toml","application/sql"]);function N(e){return!!(e.startsWith("text/")||j.has(e))}function T(e){return e.startsWith("text/html")}function M(e){return e.startsWith("image/")}function C(e){return N(e.content_type)||M(e.content_type)}function S(e,t,n){let r=new URLSearchParams({workspace_id:t});return n&&r.set("download","1"),`/api/artifacts/${e}/content?${r}`}function E({artifact:e,workspaceId:r}){let[s,i]=(0,n.useState)(null),[a,l]=(0,n.useState)(!1),o=S(e.id,r);if((0,n.useEffect)(()=>{N(e.content_type)&&!T(e.content_type)&&(l(!0),i(null),(0,w.getArtifactContent)(e.id,r).then(i).catch(()=>i("(failed to load content)")).finally(()=>l(!1)))},[e.id,e.content_type,r]),a)return(0,t.jsx)("div",{className:"flex justify-center py-8",children:(0,t.jsx)(p.Loader2,{className:"size-5 animate-spin text-muted-foreground"})});if(M(e.content_type))return(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsx)("img",{src:o,alt:e.filename,className:"max-w-full rounded-md"})});if(T(e.content_type))return(0,t.jsx)(A,{url:o,title:e.filename});if(N(e.content_type)){var d;return(d=e.filename,/\.md$/i.test(d))?(0,t.jsx)("div",{className:"markdown text-sm",children:(0,t.jsx)(v.Streamdown,{children:s??""})}):(0,t.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono text-foreground",children:s})}return(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 py-8 text-center",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"This file type cannot be previewed."}),(0,t.jsxs)("a",{href:S(e.id,r,!0),download:e.filename,className:"inline-flex items-center gap-1.5 rounded-md border border-input bg-background px-3 py-1.5 text-sm font-medium hover:bg-accent hover:text-accent-foreground transition-colors",children:[(0,t.jsx)(b,{className:"size-3.5"}),"Download"]})]})}function A({url:e,title:n}){return(0,t.jsx)("iframe",{src:e,sandbox:"allow-same-origin",className:"w-full h-full rounded-b-xl overflow-hidden",style:{border:"none",display:"block"},title:n})}e.s(["ArtifactContentRenderer",0,E,"computeArtifactVersions",0,function(e){let t=new Map;for(let n of e){let e=t.get(n.filename)||[];e.push(n),t.set(n.filename,e)}let n=new Map,r=new Set;for(let[e,s]of t)s.sort((e,t)=>e.created_at.localeCompare(t.created_at)),s.length>1&&r.add(e),s.forEach((e,t)=>n.set(e.id,t+1));return{versionMap:n,duplicateFilenames:r}},"getArtifactUrl",0,S,"isHtmlType",0,T,"isPreviewable",0,C],364079);var R=e.i(872057),z=e.i(113354);function H(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}e.s(["ArtifactSheet",0,function({open:e,onOpenChange:i,artifacts:a,workspaceId:l,initialArtifact:o=null,versionMap:d,duplicateFilenames:c}){let[u,m]=(0,n.useState)(null),[h,p]=(0,n.useState)(448),g=(0,n.useRef)(!1);(0,n.useEffect)(()=>{e&&o&&m(o)},[e,o]);let x=e=>{i(e),e||setTimeout(()=>m(null),300)},f=(0,n.useCallback)(e=>{e.preventDefault(),g.current=!0,e.target.setPointerCapture(e.pointerId)},[]),k=(0,n.useCallback)(e=>{g.current&&p(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-e.clientX)))},[]),v=(0,n.useCallback)(()=>{g.current=!1},[]);return(0,t.jsx)(r.Sheet,{open:e,onOpenChange:x,children:(0,t.jsxs)(r.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${h}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,t.jsx)("div",{onPointerDown:f,onPointerMove:k,onPointerUp:v,className:"hidden sm:block absolute left-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),u?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 sm:hidden",onClick:()=>{a.length>1?m(null):x(!1)},children:(0,t.jsx)(z.ArrowLeft,{className:"size-4"})}),(0,t.jsxs)(r.SheetTitle,{className:"truncate flex-1",children:[u.filename,c.has(u.filename)&&(0,t.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",d.get(u.id)??1]})]}),(0,t.jsx)(s.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0",onClick:()=>window.open(S(u.id,l,!0),"_blank"),children:(0,t.jsx)(b,{className:"size-4"})})]})}),(0,t.jsx)(r.SheetBody,{className:(0,y.cn)("thin-scrollbar",T(u.content_type)&&"p-0! overflow-hidden!"),children:(0,t.jsx)(E,{artifact:u,workspaceId:l})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 sm:hidden",onClick:()=>x(!1),children:(0,t.jsx)(z.ArrowLeft,{className:"size-4"})}),(0,t.jsx)(r.SheetTitle,{className:"flex-1",children:"Artifacts"})]})}),(0,t.jsx)(r.SheetBody,{className:"thin-scrollbar",children:0===a.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground py-8 text-center",children:"No artifacts uploaded yet."}):(0,t.jsx)("div",{className:"space-y-1",children:a.map(e=>(0,t.jsxs)("button",{onClick:()=>m(e),className:"flex items-center gap-3 w-full rounded-lg px-3 py-2.5 text-left hover:bg-muted/50 transition-colors",children:[(0,t.jsx)(R.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("p",{className:"text-sm font-medium truncate",children:[e.filename,c.has(e.filename)&&(0,t.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",d.get(e.id)??1]})]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:[H(e.size)," · ",new Date(e.created_at).toLocaleString()]})]})]},e.id))})})]})]})})},"formatSize",0,H],721387),e.i(954194);var L=e.i(582168);e.i(400175);var I=e.i(126366),$=e.i(393153);let _="h-7 border-0 bg-transparent px-1.5 text-xs text-foreground hover:bg-accent transition-colors -ml-1.5",P=(0,y.cn)(_,"rounded-md outline-none focus-visible:bg-accent focus-visible:ring-0 appearance-none pr-6"),F=["todo","in_progress","review","done"];function O({agent:e,size:n=24}){let r=(0,I.parseAvatarUrl)(e?.avatar_url);return r?(0,t.jsx)(I.AvatarRenderer,{config:r,size:n,className:"shrink-0 rounded-full"}):(0,t.jsx)("span",{className:"flex shrink-0 items-center justify-center rounded-full border border-border bg-muted text-[11px] font-medium text-muted-foreground",style:{width:n,height:n},children:(e?.name??"?").slice(0,1).toUpperCase()})}function D({agent:e,size:n=24}){let r=e.email_handle?`${e.email_handle}@alook.ai`:"";return(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(O,{agent:e,size:n}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5",children:[(0,t.jsx)("div",{className:"truncate text-xs font-medium",children:e.name}),r?(0,t.jsx)("div",{className:"truncate text-[11px] text-muted-foreground",children:r}):null]})]})}function B({icon:e,children:n}){return(0,t.jsxs)("div",{className:"group flex items-center gap-2",children:[(0,t.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1",children:n})]})}function q({message:e}){return"event"===e.role?(0,t.jsx)("div",{className:"rounded-md border bg-muted/50 text-muted-foreground text-xs px-3 py-2",children:e.content}):(0,t.jsxs)("div",{className:"rounded-lg border border-border/60 bg-background/55 p-3",children:[(0,t.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2 text-xs text-muted-foreground",children:[(0,t.jsx)("span",{className:"capitalize",children:e.role}),(0,t.jsx)("span",{children:new Date(e.created_at).toLocaleString()})]}),(0,t.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none text-sm wrap-break-word",children:(0,t.jsx)(v.Streamdown,{children:e.content})})]})}function U({comment:e,agents:n}){let r="agent"===e.author_type?n.find(t=>t.id===e.author_id)?.name??"Agent":"You";return(0,t.jsxs)("div",{className:"rounded-lg border border-border/60 bg-background p-3",children:[(0,t.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2 text-xs text-muted-foreground",children:[(0,t.jsx)("span",{className:"font-medium",children:r}),(0,t.jsx)("span",{children:new Date(e.created_at).toLocaleString()})]}),(0,t.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none text-sm wrap-break-word",children:(0,t.jsx)(v.Streamdown,{children:e.content})})]})}function W({artifacts:e,workspaceId:n,onArtifactClick:r}){if(0===e.length)return null;let s="flex items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-accent";return(0,t.jsx)("div",{className:"space-y-1",children:e.map(e=>{let i=r&&C(e),a=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(m.File,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.filename}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:H(e.size)})]});return i?(0,t.jsx)("button",{type:"button",onClick:()=>r(e),className:(0,y.cn)(s,"w-full text-left"),children:a},e.id):(0,t.jsx)("a",{href:S(e.id,n,!0),target:"_blank",rel:"noopener noreferrer",className:s,children:a},e.id)})})}e.s(["IssueSheet",0,function({open:e,onOpenChange:o,agents:m,issue:v,detail:b,detailLoading:j,activeTask:N,traceTasks:T,submitting:M,defaultAgentId:C,slug:S,workspaceId:E,width:A=448,onWidthChange:R,draft:z,onDraftChange:H,onCreate:I,onUpdate:K,onStatusChange:V,onCommented:X,onDispatched:G,onArtifactClick:J}){let Y,Q,Z=v?"detail":"create",[ee,et]=(0,n.useState)(""),[en,er]=(0,n.useState)(""),[es,ei]=(0,n.useState)(C??""),[ea,el]=(0,n.useState)(!1),[eo,ed]=(0,n.useState)(""),[ec,eu]=(0,n.useState)(!1),[em,eh]=(0,n.useState)(null),[ep,eg]=(0,n.useState)(!1),ex=(0,n.useRef)(null),ef=(0,n.useRef)(null),ey=(0,n.useRef)(null),ek=(0,n.useRef)(!1),ev=N&&!["completed","failed","cancelled","superseded"].includes(N.status),ew=T?.some(e=>["queued","dispatched","running"].includes(e.status))??!1;(0,n.useEffect)(()=>{e&&(v?(et(v.title),er(v.description??"")):(et(z?.title??""),er(z?.description??""),ei(z?.agentId||C||"")))},[e,v?.id]),(0,n.useEffect)(()=>{"create"===Z&&e&&H?.({title:ee,description:en,agentId:es})},[ee,en,es,Z,e]),(0,n.useEffect)(()=>{ey.current&&(ey.current.scrollTop=ey.current.scrollHeight)},[b?.messages?.length,b?.comments?.length,T?.length]);let eb=(0,n.useRef)(null),ej=(0,n.useRef)(K);(0,n.useEffect)(()=>{ej.current=K},[K]);let eN=(0,n.useRef)(ee);(0,n.useEffect)(()=>{eN.current=ee},[ee]);let eT=(0,n.useRef)(en);(0,n.useEffect)(()=>{eT.current=en},[en]);let eM=(0,n.useRef)(v);(0,n.useEffect)(()=>{eM.current=v},[v]);let eC=(0,n.useCallback)(()=>{eb.current&&clearTimeout(eb.current),eb.current=null;let e=eM.current;if(!e)return;let t=eN.current!==e.title,n=eT.current!==(e.description??"");if(!t&&!n||!eN.current.trim())return;let r={};t&&(r.title=eN.current.trim()),n&&(r.description=eT.current.trim()),ej.current?.(e.id,r)},[]);(0,n.useEffect)(()=>{if("detail"!==Z||!v||!e)return;let t=ee!==v.title,n=en!==(v.description??"");if((t||n)&&ee.trim())return eb.current&&clearTimeout(eb.current),eb.current=setTimeout(eC,500),()=>{eb.current&&clearTimeout(eb.current)}},[ee,en,Z,v,e,eC]);let eS=(0,n.useRef)(e);(0,n.useEffect)(()=>{eS.current&&!e&&"detail"===Z&&eC(),eS.current=e},[e,Z,eC]);let eE=(0,n.useCallback)(e=>{let t=e??ex.current;t&&(t.style.height="auto",t.style.height=`${t.scrollHeight}px`)},[]);(0,n.useEffect)(()=>{requestAnimationFrame(()=>eE())},[ee,eE]);let eA=(0,n.useCallback)(e=>{e.preventDefault(),ek.current=!0,e.target.setPointerCapture(e.pointerId)},[]),eR=(0,n.useCallback)(e=>{if(!ek.current)return;let t=Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-e.clientX));R?.(t)},[R]),ez=(0,n.useCallback)(()=>{ek.current=!1},[]),eH=async()=>{ee.trim()&&!M&&await I?.({agent_id:es||void 0,title:ee.trim(),description:en.trim()})},eL=async()=>{if(eo.trim()&&!ec&&v){eu(!0);try{if(!(await fetch(`/api/issues/${v.id}/comments?workspace_id=${E}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:eo.trim()})})).ok)throw Error("Failed to send comment");ed(""),X?.()}catch{k.toast.error("Failed to send comment")}finally{eu(!1)}}},eI=(0,n.useRef)(null),e$=(0,n.useCallback)(e=>{"Enter"===e.key&&e.shiftKey&&"create"===Z&&(eI.current&&eI.current.contains(e.target)||(e.preventDefault(),e.stopPropagation(),eH()))},[Z,ee,en,es,M]),e_="detail"===Z&&v?.status==="todo",eP=m.find(e=>e.id===es)??null,eF=v?.agent_id?m.find(e=>e.id===v.agent_id)??null:null,[eO,eD]=(0,n.useState)("issue");(0,n.useEffect)(()=>{eD("issue")},[v?.id,Z]);let eB=(0,t.jsx)(t.Fragment,{children:j?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(a.Skeleton,{className:"h-12"}),(0,t.jsx)(a.Skeleton,{className:"h-8"}),(0,t.jsx)(a.Skeleton,{className:"h-12"})]}):0!==(Q=[...(b?.messages??[]).filter(e=>"event"===e.role).map(e=>({kind:"event",id:e.id,created_at:e.created_at,data:e})),...(b?.comments??[]).map(e=>({kind:"comment",id:e.id,created_at:e.created_at,data:e}))].sort((e,t)=>new Date(e.created_at).getTime()-new Date(t.created_at).getTime())).length||ev?(0,t.jsxs)("div",{className:"relative pl-4",children:[(0,t.jsx)("div",{className:"absolute left-[4.5px] top-2 bottom-2 w-px bg-border"}),(0,t.jsxs)("div",{className:"space-y-3",children:[Q.map(e=>(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute -left-4 top-2.5 size-2.5 rounded-full border-2 border-background bg-muted-foreground/40"}),"event"===e.kind?(0,t.jsx)(q,{message:e.data}):(0,t.jsx)(U,{comment:e.data,agents:m})]},e.id)),(ev||ew)&&((Y=T?.filter(e=>["queued","dispatched","running"].includes(e.status)))&&Y.length>0?Y.map(e=>{let n="running"===e.status;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:(0,y.cn)("absolute -left-4 top-2.5 size-2.5 rounded-full border-2 border-background",n?"bg-emerald-500 animate-pulse":"bg-muted-foreground/40")}),(0,t.jsx)("div",{className:(0,y.cn)("rounded-md border px-3 py-2.5",n?"border-emerald-500/30 bg-emerald-500/10":"border-border/60 bg-muted/30"),children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[e.agent&&(0,t.jsx)(O,{agent:{avatar_url:e.agent.avatarUrl,name:e.agent.name},size:16}),(0,t.jsxs)("span",{className:n?"text-emerald-600 dark:text-emerald-400":"text-muted-foreground",children:[e.agent?.name??"Agent"," ",n?"is working":"— queued"]})]})})]},e.id)}):(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute -left-4 top-2.5 size-2.5 rounded-full border-2 border-background bg-emerald-500 animate-pulse"}),(0,t.jsx)("div",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-2.5",children:(0,t.jsx)("div",{className:"flex items-center gap-2 text-xs text-emerald-600 dark:text-emerald-400",children:"Working"})})]}))]})]}):(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:"No activity yet."})}),eq="detail"!==Z||!v||e_||ev||(0,L.isTerminalIssueStatus)(v.status)?null:(0,t.jsxs)("div",{className:"flex flex-col rounded-xl border bg-background/60 transition-colors duration-200 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",children:[(0,t.jsx)("textarea",{ref:eI,placeholder:"Leave a comment...",value:eo,onChange:e=>ed(e.target.value),className:"w-full resize-none bg-transparent px-3.5 py-2.5 text-sm leading-relaxed outline-none placeholder:text-muted-foreground field-sizing-content min-h-15 max-h-32 thin-scrollbar overflow-y-auto",onKeyDown:e=>{"Enter"===e.key&&e.shiftKey&&(e.preventDefault(),eL())}}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-2.5 pb-2 pt-0.5",children:[(0,t.jsx)("kbd",{className:"text-[11px] text-muted-foreground/50 font-sans select-none",children:"⇧↵"}),(0,t.jsx)(s.Button,{size:"icon-sm",onClick:eL,disabled:!eo.trim()||ec,className:(0,y.cn)("rounded-lg transition-opacity duration-200",!eo.trim()&&!ec&&"opacity-40"),children:ec?(0,t.jsx)(p.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(d,{className:"size-3.5"})})]})]}),eU=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"shrink-0 px-2 sm:px-3 pt-5 pb-1",children:(0,t.jsx)("textarea",{ref:e=>{ex.current=e,eE(e)},value:ee,onChange:e=>{et(e.target.value),eE(e.target)},onKeyDown:e=>{if("Enter"===e.key&&!e.shiftKey){e.preventDefault();let t=ef.current?.querySelector('[contenteditable="true"]');t?.focus()}},placeholder:"create"===Z?"New issue":"Untitled",autoFocus:"create"===Z,rows:1,className:"w-full resize-none overflow-hidden rounded-none border-0 bg-transparent px-0 py-1 font-news text-2xl md:text-3xl font-medium leading-[1.2] tracking-tight shadow-none outline-none focus-visible:border-0 focus-visible:ring-0 focus-visible:ring-offset-0 placeholder:text-muted-foreground/40 placeholder:font-normal"})}),(0,t.jsxs)("div",{className:"shrink-0 space-y-1.5 px-2 sm:px-3 py-2",children:[(0,t.jsx)(B,{icon:(0,t.jsx)(x.User,{className:"size-3.5"}),children:"create"===Z||e_?(0,t.jsxs)(l.Popover,{open:ea,onOpenChange:el,children:[(0,t.jsx)(l.PopoverTrigger,{render:(0,t.jsx)("button",{type:"button",disabled:M||ep,className:(0,y.cn)(_,"flex items-center gap-1.5 rounded-md")}),children:eP?(0,t.jsx)("span",{className:"truncate",children:eP.name}):(0,t.jsx)("span",{className:"text-muted-foreground/70",children:"Unassigned"})}),(0,t.jsxs)(l.PopoverContent,{align:"start",className:"max-h-64 w-72 overflow-y-auto thin-scrollbar p-1",children:[!e_&&(0,t.jsxs)("button",{type:"button",onClick:()=>{ei(""),el(!1)},className:"flex w-full items-center justify-between gap-2 rounded-md px-2 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"None (unassigned)"}),es?null:(0,t.jsx)(c.Check,{className:"size-3.5 shrink-0"})]}),m.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{e_?eh(e):ei(e.id),el(!1)},className:"flex w-full items-center justify-between gap-2 rounded-md px-2 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground",children:[(0,t.jsx)(D,{agent:e,size:18}),es===e.id?(0,t.jsx)(c.Check,{className:"size-3.5 shrink-0"}):null]},e.id))]})]}):(0,t.jsx)("span",{className:"text-xs truncate",children:eF?eF.name:(0,t.jsx)("span",{className:"text-muted-foreground/70",children:"Unassigned"})})}),"detail"===Z&&v&&(0,t.jsx)(B,{icon:(0,t.jsx)(u.CircleDot,{className:"size-3.5"}),children:(0,t.jsx)("select",{value:v.status,onChange:e=>{var t;return t=e.target.value,void(v&&t!==v.status&&V?.(v.id,t))},className:P,children:(e_?["todo","done"]:F).map(e=>(0,t.jsx)("option",{value:e,children:"done"===e?"Complete":e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())},e))})}),"detail"===Z&&v?.agent_id&&v?.conversation_id&&(0,t.jsx)(B,{icon:(0,t.jsx)(g.MessageSquare,{className:"size-3.5"}),children:(0,t.jsx)(f.default,{href:`/w/${S}/agents/${v.agent_id}?conv=${v.conversation_id}${v.latest_task_id?`&task=${v.latest_task_id}`:""}`,className:(0,y.cn)(_,"inline-flex items-center rounded-md"),children:"Chat"})}),"detail"===Z&&b?.traceId&&(0,t.jsx)(B,{icon:(0,t.jsx)(h.GitBranch,{className:"size-3.5"}),children:(0,t.jsx)(f.default,{href:`/w/${S}/threads/${b.traceId}`,className:(0,y.cn)(_,"inline-flex items-center rounded-md"),children:"Thread"})})]}),(0,t.jsx)("div",{className:(0,y.cn)("px-2 sm:px-3 py-2 flex-1 min-h-0 overflow-y-auto thin-scrollbar"),ref:ef,children:(0,t.jsx)(i.MarkdownEditor,{value:en,onChange:er,placeholder:"Describe the issue...",minHeight:"create"===Z?"10rem":"4rem",variant:"seamless",contentType:"markdown",agents:m},v?.id??"new")}),"detail"===Z&&b?.artifacts&&b.artifacts.length>0&&(0,t.jsx)("div",{className:"shrink-0 px-2 sm:px-3 py-2",children:(0,t.jsx)(W,{artifacts:b.artifacts,workspaceId:E,onArtifactClick:J})})]});return(0,t.jsxs)(r.Sheet,{open:e,onOpenChange:o,children:[(0,t.jsxs)(r.SheetContent,{side:"right",showCloseButton:!1,className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border overflow-visible",style:{width:`min(${A}px, 100vw)`,maxWidth:"none"},children:[(0,t.jsx)("div",{onPointerDown:eA,onPointerMove:eR,onPointerUp:ez,onLostPointerCapture:ez,className:"hidden sm:block absolute -left-px top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),"detail"===Z&&!e_&&(0,t.jsxs)("div",{className:"hidden lg:flex absolute right-full top-0 bottom-0 mr-2 w-90 flex-col rounded-xl border bg-background shadow-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"shrink-0 flex items-center border-b px-4 py-2.5",children:(0,t.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Activity"})}),(0,t.jsx)("div",{ref:ey,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar px-4 py-4 space-y-3",children:eB}),eq&&(0,t.jsx)("div",{className:"shrink-0 border-t px-4 py-3",children:eq})]}),(0,t.jsx)(r.SheetTitle,{className:"sr-only",children:"create"===Z?"New Issue":v?.title??"Issue"}),(0,t.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col",onKeyDownCapture:e$,children:["detail"===Z&&!e_&&(0,t.jsxs)("div",{className:"shrink-0 flex items-center gap-1 border-b px-2 py-1.5 lg:hidden",children:[(0,t.jsx)("button",{type:"button",onClick:()=>eD("issue"),className:(0,y.cn)("rounded-md px-2.5 py-1 text-xs font-medium transition-colors","issue"===eO?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"),children:"Issue"}),(0,t.jsx)("button",{type:"button",onClick:()=>eD("activity"),className:(0,y.cn)("rounded-md px-2.5 py-1 text-xs font-medium transition-colors","activity"===eO?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"),children:"Activity"})]}),(0,t.jsxs)(r.SheetBody,{className:"flex flex-col gap-0 p-0 overflow-hidden",children:[(0,t.jsx)("div",{className:(0,y.cn)("flex flex-col flex-1 min-h-0","detail"===Z&&"activity"===eO&&"hidden lg:flex"),children:eU}),"detail"===Z&&!e_&&"activity"===eO&&(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-h-0 lg:hidden",children:[(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar px-3 py-4 space-y-3",children:eB}),eq&&(0,t.jsx)("div",{className:"shrink-0 border-t px-3 py-3",children:eq})]})]}),"create"===Z&&(0,t.jsxs)(r.SheetFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",size:"sm",onClick:()=>o(!1),disabled:M,children:"Cancel"}),(0,t.jsxs)(s.Button,{size:"sm",onClick:eH,disabled:!ee.trim()||M,children:[M&&(0,t.jsx)(p.Loader2,{className:"mr-1.5 size-3.5 animate-spin"}),(0,t.jsxs)("kbd",{className:"mr-1 hidden sm:inline-flex items-center gap-0.5 font-sans font-medium leading-none opacity-60",children:[(0,t.jsx)("span",{children:"⇧"}),(0,t.jsx)("span",{children:"+"}),(0,t.jsx)("span",{children:"⏎"})]}),"Create"]})]})]})]}),(0,t.jsx)($.ConfirmDialog,{open:!!em,onOpenChange:e=>{e||eh(null)},title:"Run issue?",description:`This issue will be assigned to ${em?.name??"the agent"} and start running immediately.`,confirmLabel:"Run",loadingLabel:"Running...",confirmVariant:"default",loading:ep,onConfirm:async()=>{if(em&&v){eg(!0);try{await (0,w.updateIssue)(E,v.id,{agent_id:em.id}),eh(null),G?.(v.id)}catch(e){k.toast.error(e instanceof Error?e.message:"Failed to dispatch issue"),eh(null)}finally{eg(!1)}}}})]})}],169678)}]);
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,875494,685835,e=>{"use strict";var t=e.i(368075),s=e.i(298699),a=e.i(222862),n=e.i(355578),r=e.i(500324),l=e.i(980630);let i="inbox-filter-types",o=["user_dm_message","calendar_event","email_notification"],c=["user_dm_message"],d=["user_dm_message"];function u(){try{let e=localStorage.getItem(i);if(!e)return c;let t=JSON.parse(e).filter(e=>o.includes(e));if(0===t.length)return c;for(let e of d)t.includes(e)||t.unshift(e);return t}catch{return c}}e.s(["INBOX_FILTER_LABELS",0,{user_dm_message:"DM",calendar_event:"Calendar",email_notification:"Email"},"INBOX_FILTER_TYPES",0,o,"MANDATORY_INBOX_TYPES",0,d,"getInboxFilterTypes",0,u,"setInboxFilterTypes",0,function(e){let t=[...e];for(let e of d)t.includes(e)||t.unshift(e);localStorage.setItem(i,JSON.stringify(t))}],685835);let m=(0,s.createContext)(null);e.s(["InboxCountProvider",0,function({children:e}){let{workspaceId:i}=(0,r.useWorkspace)(),{subscribeWs:o,agents:c}=(0,n.useAgentContext)(),[d,h]=(0,s.useState)(0),p=(0,s.useRef)(null),g=(0,s.useRef)(null),f=(0,s.useRef)(c);(0,s.useEffect)(()=>{f.current=c});let x=(0,s.useCallback)(()=>{let e=u();(0,a.getInboxCount)(i,{types:e}).then(e=>{let t=p.current;if(p.current=e.count,h(e.count),null!==t&&e.count>t){let e=g.current?f.current.find(e=>e.id===g.current):void 0;(0,l.sendTaskNotification)("completed",e?.name)}g.current=null}).catch(()=>{})},[i]),v=(0,s.useCallback)(()=>{h(e=>{let t=Math.max(0,e-1);return p.current=t,t})},[]);return(0,s.useEffect)(()=>{x()},[x]),(0,s.useEffect)(()=>o(e=>{"task.updated"===e.type&&("completed"===e.status||"failed"===e.status)&&(g.current=e.agentId,x())}),[o,x]),(0,s.useEffect)(()=>{let e=setInterval(x,6e4);return()=>clearInterval(e)},[x]),(0,t.jsx)(m.Provider,{value:{count:d,refresh:x,decrement:v},children:e})},"useInboxCount",0,function(){let e=(0,s.useContext)(m);if(!e)throw Error("useInboxCount must be used within InboxCountProvider");return e}],875494)},74348,e=>{"use strict";var t=e.i(368075),s=e.i(298699),a=e.i(222862),n=e.i(500324);let r=(0,s.createContext)(null);e.s(["FlagCountProvider",0,function({children:e}){let{workspaceId:l}=(0,n.useWorkspace)(),[i,o]=(0,s.useState)(0),c=(0,s.useCallback)(()=>{(0,a.getFlaggedCount)(l).then(e=>o(e.count)).catch(()=>{})},[l]),d=(0,s.useCallback)(()=>{o(e=>e+1)},[]),u=(0,s.useCallback)(()=>{o(e=>Math.max(0,e-1))},[]);return(0,s.useEffect)(()=>{c()},[c]),(0,t.jsx)(r.Provider,{value:{count:i,refresh:c,increment:d,decrement:u},children:e})},"useFlagCount",0,function(){let e=(0,s.useContext)(r);if(!e)throw Error("useFlagCount must be used within FlagCountProvider");return e}])},49879,618615,844010,e=>{"use strict";e.s(["AgentChatView",()=>e_,"getEventIconType",()=>ey],49879);var t=e.i(368075),s=e.i(298699),a=e.i(550008),n=e.i(208020),r=e.i(500324),l=e.i(186339),i=e.i(875061),o=e.i(613349),c=e.i(541544),d=e.i(64873),u=e.i(406963);let m=(0,u.default)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]);var h=e.i(108281),p=e.i(140483),g=e.i(371522);e.i(112946);var f=e.i(164300);function x(e){return e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}let v=new Set(["status","log"]);function j({item:e,isRunning:a,isLast:n}){let r=(0,s.useMemo)(()=>{if(!e.input)return null;try{return JSON.stringify(e.input,null,2)}catch{return String(e.input)}},[e.input]);return r?(0,t.jsxs)("details",{className:"group/tool",children:[(0,t.jsxs)("summary",{className:(0,o.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md cursor-pointer select-none","text-sm text-muted-foreground transition-colors duration-150","hover:bg-muted/60 hover:text-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,t.jsx)(d.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/tool:rotate-90"}),(0,t.jsx)("span",{className:"font-medium text-foreground/80",children:x(e.tool)}),a&&n&&(0,t.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary/60 animate-pulse"}),a&&!n&&(0,t.jsx)(c.Check,{className:"ml-auto size-3 text-emerald-500"})]}),(0,t.jsx)("div",{className:"mt-1 mb-2 ml-5",children:(0,t.jsx)("pre",{className:"task-stream-pre overflow-x-auto rounded-md bg-muted/40 p-2.5 font-mono text-xs leading-relaxed text-muted-foreground max-h-48 max-w-full min-w-0 overflow-y-auto",children:r})})]}):(0,t.jsxs)("div",{className:(0,o.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md","text-sm text-muted-foreground"),children:[(0,t.jsx)("span",{className:"font-medium text-foreground/80",children:x(e.tool)}),a&&n&&(0,t.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary/60 animate-pulse"}),a&&!n&&(0,t.jsx)(c.Check,{className:"ml-auto size-3 text-emerald-500"})]})}function y({item:e}){return e.content?(0,t.jsxs)("details",{className:"group/think",children:[(0,t.jsxs)("summary",{className:(0,o.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md cursor-pointer select-none","text-sm text-muted-foreground/60 italic transition-colors duration-150","hover:bg-muted/60 hover:text-muted-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,t.jsx)(d.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/40 transition-transform duration-150 group-open/think:rotate-90"}),(0,t.jsx)(m,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{children:"Thinking..."})]}),(0,t.jsx)("div",{className:"mt-1 mb-2 ml-5",children:(0,t.jsx)("p",{className:"text-sm italic text-muted-foreground/60 whitespace-pre-wrap",children:e.content})})]}):(0,t.jsxs)("div",{className:(0,o.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md","text-sm text-muted-foreground/60 italic"),children:[(0,t.jsx)(m,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{children:"Thinking..."})]})}function k({value:e}){let a=(0,s.useRef)(e),[n,r]=(0,s.useState)({current:e,previous:null}),[l,i]=(0,s.useState)("idle");return(0,s.useEffect)(()=>{if(e===a.current)return;let t=a.current;a.current=e,r({current:e,previous:t}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{i("animating")})});let s=setTimeout(()=>{i("idle"),r(e=>({...e,previous:null}))},300);return()=>clearTimeout(s)},[e]),(0,t.jsxs)("span",{style:{display:"inline-block",position:"relative",overflow:"hidden",height:"1.2em",lineHeight:"1.2em",verticalAlign:"bottom"},children:[null!==n.previous&&(0,t.jsx)("span",{style:{display:"block",position:"absolute",inset:"0",transition:"animating"===l?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:"animating"===l?"translateY(-100%)":"translateY(0)",opacity:+("animating"!==l)},children:n.previous}),(0,t.jsx)("span",{style:{display:"block",transition:"animating"===l?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:null!==n.previous&&"animating"!==l?"translateY(100%)":"translateY(0)",opacity:+(null===n.previous||"animating"===l)},children:n.current})]})}function w({task:e,messages:a,connectionLost:n,onRetry:r,stepCountHint:l,onExpandSteps:c,stepsLoading:u}){let[m,x]=(0,s.useState)(!1),b=(0,s.useMemo)(()=>(function(e){let t=[],s=new Map;for(let a of e){if(v.has(a.type))continue;let e=a.id||`seq-${a.seq}`;switch(a.type){case"tool-use":{let n=a.call_id,r={kind:"tool-call",id:e,tool:a.tool,input:a.input};n&&s.set(n,r),t.push(r);break}case"tool-result":break;case"text":t.push({kind:"text",id:e,content:a.content});break;case"thinking":t.push({kind:"thinking",id:e,content:a.content});break;case"error":t.push({kind:"status",id:e,content:a.content||a.output,type:"error"})}}return t})(a),[a]),N="completed"!==e.status&&"failed"!==e.status&&"cancelled"!==e.status&&"superseded"!==e.status,C=b.filter(e=>"text"!==e.kind),_=b.filter(e=>"text"===e.kind),S=_.length>0?_[_.length-1]:null,T=(0,s.useRef)(null),M=(0,s.useRef)(null),I=(0,s.useRef)(!1);(0,s.useEffect)(()=>{N&&T.current&&(T.current.scrollTop=T.current.scrollHeight)},[C.length,N]),(0,s.useEffect)(()=>{N&&M.current&&(M.current.scrollTop=M.current.scrollHeight)},[_.length,N]);let E=N?_:_.slice(0,-1),A=!N&&null!==S,z=C.length>0?C.length:l??0,R=C.length>0||l&&l>0;return(0,t.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:"running"===e.status?(0,t.jsxs)(i.Badge,{variant:"secondary",className:"gap-1.5 relative overflow-hidden",children:[(0,t.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),"Working",(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):N?(0,t.jsxs)(i.Badge,{variant:"secondary",className:"relative overflow-hidden",children:[e.status,(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):(0,t.jsx)(i.Badge,{variant:"secondary",children:e.status})}),R&&(0,t.jsxs)("details",{className:"group/stream pl-1",onToggle:e=>{e.currentTarget.open&&!I.current&&c&&(I.current=!0,c())},children:[(0,t.jsxs)("summary",{className:(0,o.cn)("flex items-center gap-1.5 py-1 cursor-pointer select-none","text-xs text-muted-foreground transition-colors duration-150","hover:text-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,t.jsx)(d.ChevronRight,{className:(0,o.cn)("size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/stream:rotate-90",N&&"animate-pulse text-primary")}),(0,t.jsxs)("span",{children:[(0,t.jsx)(k,{value:z})," ",1===z?"step":"steps"]})]}),(0,t.jsxs)("div",{ref:T,className:"mt-1 max-h-80 overflow-y-auto overflow-x-hidden thin-scrollbar space-y-0.5 pl-1",children:[u&&0===C.length&&(0,t.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-muted-foreground",children:[(0,t.jsx)(g.Loader2,{className:"size-3 animate-spin"}),(0,t.jsx)("span",{children:"Loading steps..."})]}),C.map((e,s)=>{switch(e.kind){case"tool-call":return(0,t.jsx)(j,{item:e,isRunning:N,isLast:s===C.length-1},e.id);case"thinking":return(0,t.jsx)(y,{item:e},e.id);case"status":return(0,t.jsxs)("p",{className:"text-xs text-muted-foreground px-1 wrap-anywhere",children:["error"===e.type&&(0,t.jsx)(h.AlertCircle,{className:"inline size-3 mr-1 -mt-0.5 text-destructive"}),e.content]},e.id);default:return null}})]})]}),E.length>0&&(0,t.jsxs)("details",{className:"group/midtext pl-1",open:!A||void 0,children:[(0,t.jsxs)("summary",{className:(0,o.cn)("flex items-center gap-1.5 py-1 cursor-pointer select-none","text-xs text-muted-foreground transition-colors duration-150","hover:text-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,t.jsx)(d.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/midtext:rotate-90"}),(0,t.jsxs)("span",{children:[(0,t.jsx)(k,{value:E.length})," thinking"]})]}),(0,t.jsx)("div",{ref:M,className:"mt-1 space-y-2 pl-1",children:E.map(e=>(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-0.5 text-sm text-muted-foreground",children:(0,t.jsx)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:e.content})},e.id))})]}),A&&!c&&(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,t.jsx)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:S.content})}),"failed"===e.status&&e.error&&(0,t.jsxs)("div",{className:"flex items-start gap-2 mt-2 max-w-full overflow-hidden",children:[(0,t.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,t.jsx)(h.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,t.jsx)("span",{className:"wrap-anywhere",children:e.error})]}),r&&(0,t.jsxs)("button",{type:"button",onClick:async()=>{x(!0);try{await r()}finally{x(!1)}},disabled:m,className:"shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[m?(0,t.jsx)(g.Loader2,{className:"size-3 animate-spin"}):(0,t.jsx)(p.RotateCw,{className:"size-3"}),"Retry"]})]}),n&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]})}var b=e.i(222862),N=e.i(275351),C=e.i(355578),_=e.i(875494),S=e.i(74348),T=e.i(872937),M=e.i(880932),I=e.i(728886),E=e.i(329686),A=e.i(36303);let z=(0,u.default)("bed-double",[["path",{d:"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8",key:"1k78r4"}],["path",{d:"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"fb3tl2"}],["path",{d:"M12 4v6",key:"1dcgq2"}],["path",{d:"M2 18h20",key:"ajqnye"}]]),R=(0,u.default)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);var F=e.i(872057),D=e.i(6131);let P=(0,u.default)("message-square-quote",[["path",{d:"M14 14a2 2 0 0 0 2-2V8h-2",key:"1r06pg"}],["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M8 14a2 2 0 0 0 2-2V8H8",key:"1jzu5j"}]]),L=(0,u.default)("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]);var B=e.i(554468),q=e.i(745925),$=e.i(937091);function W(){let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition??null}function H({agent:e,isSelected:s,onSelect:a}){return(0,t.jsxs)("button",{type:"button","data-mention-item":!0,className:(0,o.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",s?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:t=>{t.preventDefault(),a(e)},children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e.name}),e.email_handle&&(0,t.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[e.email_handle,"@alook.ai"]})]})}function O({isOpen:e,relatedAgents:a,otherAgents:n,selectedIndex:r,onSelect:l,anchorPos:i}){let o=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!o.current)return;let e=o.current.querySelectorAll("[data-mention-item]")[r];e?.scrollIntoView({block:"nearest"})},[r]);let c=a.length+n.length;if(!e||0===c)return null;let d=a.length>0&&n.length>0;return(0,t.jsx)("div",{className:"absolute z-50 w-64 rounded-lg border border-border bg-popover text-popover-foreground shadow-md transition-opacity duration-150",style:{top:i.top-4,left:i.left,transform:"translateY(-100%)"},children:(0,t.jsxs)("div",{ref:o,className:"max-h-50 overflow-y-auto py-1 thin-scrollbar",children:[a.map((e,s)=>(0,t.jsx)(H,{agent:e,isSelected:s===r,onSelect:l},e.id)),d&&(0,t.jsx)("div",{className:"mx-3 my-1 border-t border-border"}),n.map((e,s)=>(0,t.jsx)(H,{agent:e,isSelected:a.length+s===r,onSelect:l},e.id))]})})}function V(e,t){if(t>=e.length)return!0;let s=e.charCodeAt(t);return(!(s>=48)||!(s<=57))&&(!(s>=65)||!(s<=90))&&(!(s>=97)||!(s<=122))&&95!==s}function U(e,t){if(!e||0===t.length||!e.includes("@"))return e;let s=t.slice().sort((e,t)=>t.name.length-e.name.length),a=[];for(let t=0;t<e.length;t++){if("@"!==e[t]||!function(e,t){if(0===t)return!0;let s=e.charCodeAt(t-1);return(!(s>=48)||!(s<=57))&&(!(s>=65)||!(s<=90))&&(!(s>=97)||!(s<=122))&&95!==s}(e,t))continue;let n=t+1;for(let r of s){let s=n+r.name.length;if(s>e.length||e.slice(n,s).toLowerCase()!==r.name.toLowerCase())continue;let l=s,i=e.slice(s).match(/^ \([a-zA-Z0-9-]+@alook\.ai\)/);if(i&&(l=s+i[0].length),(i||V(e,s))&&(!i||V(e,l))){if(a.some(e=>t>=e.start&&t<e.end))break;a.push({start:t,end:s,name:r.name,agentId:r.id});break}}}let n=e;for(let e=a.length-1;e>=0;e--){let t=a[e],s=n.slice(t.start,t.end);n=n.slice(0,t.start)+`<mention data-agent-id="${t.agentId}">${s}</mention>`+n.slice(t.end)}return n}var X=e.i(721387),Y=e.i(332680),K=e.i(940931);function J({open:e,onOpenChange:a,emailId:n,workspaceId:r}){let[i,o]=(0,s.useState)(null),[c,d]=(0,s.useState)(null),[u,m]=(0,s.useState)(!1),[h,p]=(0,s.useState)(500),f=(0,s.useRef)(!1),x=(0,s.useRef)(a);(0,s.useEffect)(()=>{x.current=a}),(0,s.useEffect)(()=>{e&&n&&(m(!0),o(null),d(null),Promise.all([(0,b.getEmail)(n,r),(0,b.getEmailBody)(n,r)]).then(([e,t])=>{o(e),d(t)}).catch(()=>{M.toast.error("Email not found"),x.current(!1)}).finally(()=>m(!1)))},[e,n,r]);let v=e=>{a(e),e||setTimeout(()=>{o(null),d(null)},300)},j=(0,s.useCallback)(e=>{e.preventDefault(),f.current=!0,e.target.setPointerCapture(e.pointerId)},[]),y=(0,s.useCallback)(e=>{f.current&&p(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-e.clientX)))},[]),k=(0,s.useCallback)(()=>{f.current=!1},[]);return(0,t.jsx)(Y.Sheet,{open:e,onOpenChange:v,children:(0,t.jsxs)(Y.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${h}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,t.jsx)("div",{onPointerDown:j,onPointerMove:y,onPointerUp:k,className:"hidden sm:block absolute left-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),(0,t.jsx)(Y.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(D.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsx)(Y.SheetTitle,{className:"truncate flex-1",children:u?"Loading...":i?.subject||"Email"}),(0,t.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>v(!1),children:(0,t.jsx)($.X,{className:"h-4 w-4"})})]})}),(0,t.jsx)(Y.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:u?(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(g.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):i?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"text-sm space-y-1 border-b pb-3",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"From:"}),(0,t.jsx)("span",{className:"truncate",children:i.from_email})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"To:"}),(0,t.jsx)("span",{className:"truncate",children:i.to_email})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Date:"}),(0,t.jsx)("span",{children:new Date(i.created_at).toLocaleString()})]})]}),c?.isHtml?(0,t.jsx)(K.EmailBodyFrame,{html:c.content,className:"max-w-full"}):(0,t.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:c?.content}),i.attachments&&i.attachments.length>0&&(0,t.jsxs)("div",{className:"border-t pt-3",children:[(0,t.jsxs)("p",{className:"text-xs text-muted-foreground mb-2",children:[i.attachments.length," attachment",i.attachments.length>1?"s":""]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:i.attachments.map(e=>(0,t.jsx)("span",{className:"inline-flex items-center gap-1 text-xs bg-muted rounded px-2 py-1",children:e.filename},e.key))})]})]}):null})]})})}let Z=(0,u.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);function Q({open:e,onOpenChange:a,calendarEventId:n,workspaceId:r}){let[i,o]=(0,s.useState)(null),[c,d]=(0,s.useState)(!1),[u,m]=(0,s.useState)(500),h=(0,s.useRef)(!1),p=(0,s.useRef)(a);(0,s.useEffect)(()=>{p.current=a}),(0,s.useEffect)(()=>{e&&n&&(d(!0),o(null),(0,b.getCalendarEvent)(n,r).then(o).catch(()=>{M.toast.error("Calendar event not found"),p.current(!1)}).finally(()=>d(!1)))},[e,n,r]);let f=e=>{a(e),e||setTimeout(()=>o(null),300)},x=(0,s.useCallback)(e=>{e.preventDefault(),h.current=!0,e.target.setPointerCapture(e.pointerId)},[]),v=(0,s.useCallback)(e=>{h.current&&m(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-e.clientX)))},[]),j=(0,s.useCallback)(()=>{h.current=!1},[]);return(0,t.jsx)(Y.Sheet,{open:e,onOpenChange:f,children:(0,t.jsxs)(Y.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${u}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,t.jsx)("div",{onPointerDown:x,onPointerMove:v,onPointerUp:j,className:"hidden sm:block absolute left-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),(0,t.jsx)(Y.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(Z,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsx)(Y.SheetTitle,{className:"truncate flex-1",children:c?"Loading...":i?.title||"Calendar Event"}),(0,t.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>f(!1),children:(0,t.jsx)($.X,{className:"h-4 w-4"})})]})}),(0,t.jsx)(Y.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:c?(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(g.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):i?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"text-sm space-y-2 border-b pb-3",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Scheduled:"}),(0,t.jsx)("span",{children:new Date(i.scheduled_at).toLocaleString()})]}),i.repeat_interval&&(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Repeats:"}),(0,t.jsxs)("span",{children:["Every ",i.repeat_interval]})]}),i.repeat_stop_at&&(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Until:"}),(0,t.jsx)("span",{children:new Date(i.repeat_stop_at).toLocaleDateString()})]})]}),i.description&&(0,t.jsxs)("div",{className:"text-sm",children:[(0,t.jsx)("p",{className:"text-muted-foreground mb-1",children:"Description"}),(0,t.jsx)("pre",{className:"whitespace-pre-wrap font-sans",children:i.description})]})]}):null})]})})}var G=e.i(169678),ee=e.i(364079);function et({bufferedMessages:e,onDelete:a}){let[n,r]=(0,s.useState)(!1),l=e.length;if(0===l)return null;let i=Math.min(l,3);return(0,t.jsx)("div",{className:"relative px-5 pb-1",children:(0,t.jsx)("div",{className:"mx-auto max-w-2xl flex justify-center",children:(0,t.jsxs)("div",{className:"relative w-full max-w-lg transition-[height] duration-200 ease-out",style:{height:n?32*l+(l-1)*4:32+(i-1)*6},onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[e.map((e,s)=>{var r;let c=l-1-s,d=s>=l-i;return(0,t.jsx)("div",{className:"absolute right-0 left-0 transition-all duration-200 ease-out",style:{height:32,zIndex:s+1,bottom:n?36*c:d?6*c:0,transform:n?"scale(1)":`scale(${d?1-.03*c:.91})`,opacity:n?1:d?1-.2*c:0,pointerEvents:n||d?"auto":"none"},children:(0,t.jsxs)("div",{className:"h-full rounded-lg border bg-background/95 backdrop-blur-sm shadow-sm flex items-center gap-2 px-3",children:[(0,t.jsx)("span",{className:"shrink-0 text-[11px] text-primary/60 tabular-nums w-4 text-center",children:s+1}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-[13px] text-muted-foreground leading-snug truncate",children:(r=e.content).length<=80?r:r.slice(0,80).trimEnd()+"…"}),e.attachment_ids&&e.attachment_ids.length>0&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 shrink-0 text-[11px] text-muted-foreground/50",children:[(0,t.jsx)(B.Paperclip,{className:"size-2.5"}),e.attachment_ids.length]})]}),(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),a(e.id)},className:(0,o.cn)("shrink-0 rounded-sm p-0.5 transition-all duration-150","text-muted-foreground/30 hover:text-foreground hover:bg-muted",n?"opacity-100":"opacity-0"),tabIndex:n?0:-1,children:(0,t.jsx)($.X,{className:"size-3"})})]})},e.id)}),!n&&l>i&&(0,t.jsxs)("span",{className:"absolute -top-4 right-1 text-[10px] text-muted-foreground/40 tabular-nums",children:["+",l-i," more"]})]})})})}var es=e.i(219658);let ea={id:"",agent_id:"",runtime_id:"",conversation_id:"",workspace_id:"",prompt:"",status:"completed",priority:0,dispatched_at:null,started_at:null,completed_at:null,result:null,error:null,created_at:"",type:""};function en({taskId:e,stepCount:a,workspaceId:n}){let[r,l]=(0,s.useState)([]),[i,o]=(0,s.useState)(!1),[c,d]=(0,s.useState)(!1),u=(0,s.useCallback)(async()=>{if(!c&&!i){o(!0);try{let t=await (0,b.getTaskMessages)(e,n);l(t)}catch{l([])}finally{o(!1),d(!0)}}},[c,i,e,n]);return(0,t.jsx)(w,{task:ea,messages:r,stepCountHint:a,onExpandSteps:u,stepsLoading:i})}var er=e.i(251638);let el=(0,u.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]);e.s(["Flag",0,el],618615);var ei=e.i(89440);let eo={mention:["data-agent-id"]},ec=["mention"];function ed({content:e,conversationType:s}){let a=ey(e,s),n="h-4 w-4 mt-0.5 shrink-0";return"issue"===a?(0,t.jsx)(er.CircleDot,{className:n}):"email"===a?(0,t.jsx)(D.Mail,{className:n}):(0,t.jsx)(Z,{className:n})}function eu({attachmentIds:e,artifacts:s,onArtifactClick:a}){let n=e.map(e=>s.find(t=>t.id===e)).filter(e=>!!e);return 0===n.length?null:(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:n.map(e=>(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),a(e)},className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80 hover:bg-primary-foreground/20 transition-colors cursor-pointer",children:[(0,t.jsx)(F.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.filename})]},e.id))})}function em({pendingFiles:e,messageId:s}){let a=e.get(s);return a&&0!==a.length?(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:a.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80",children:[(0,t.jsx)(F.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.name})]},s))}):null}let eh=(0,s.memo)(function({msg:e,agents:a,artifacts:n,activeTask:r,taskMessages:i,connectionLost:d,isLastMessage:u,stepCount:m,targetConvId:h,workspaceId:p,conversationType:g,pendingFilesByMessage:x,onArtifactClick:v,onEmailClick:j,onIssueClick:y,onCalendarEventClick:k,onRetry:b,mentionComponents:N,isFlagged:C,onToggleFlag:_}){let S,T,I,A,[z,R]=(0,s.useState)(!1),F=r&&"assistant"===e.role&&e.task_id===r.id&&e.conversation_id===r.conversation_id&&i.length>0,D=!F&&h&&"assistant"===e.role&&e.task_id&&m>0?m:0,P=F&&r&&["completed","failed","cancelled","superseded"].includes(r.status),L="assistant"===e.role?(0,t.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs","aria-label":z?"Copied":"Copy message",onClick:async t=>{t.stopPropagation();try{await navigator.clipboard.writeText(e.content),R(!0),M.toast.success("Copied to clipboard"),setTimeout(()=>R(!1),2e3)}catch{M.toast.error("Failed to copy")}},className:(0,o.cn)("self-start mb-1",z?"text-green-500 opacity-100":"text-muted-foreground opacity-0 group-hover/msg:opacity-100")}),children:z?(0,t.jsx)(c.Check,{className:"size-3.5"}):(0,t.jsx)(ei.Copy,{className:"size-3.5"})}),(0,t.jsx)(E.TooltipContent,{children:z?"Copied":"Copy"})]}),_&&(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs",onClick:()=>_(e.id),className:(0,o.cn)("self-start mb-1",C?"text-primary opacity-100":"text-muted-foreground opacity-0 group-hover/msg:opacity-100")}),children:(0,t.jsx)(el,{className:(0,o.cn)("size-3.5",C&&"fill-current")})}),(0,t.jsx)(E.TooltipContent,{children:C?"Unflag":"Flag"})]})]}):null;return(0,t.jsxs)(s.default.Fragment,{children:[F&&(0,t.jsxs)("div",{className:(0,o.cn)("group/msg",C&&"bg-muted/30 rounded-lg px-2 -mx-2"),children:[(0,t.jsx)(w,{task:r,messages:i,connectionLost:d,onRetry:b}),P&&L]}),D>0&&e.task_id&&(0,t.jsx)(en,{taskId:e.task_id,stepCount:D,workspaceId:p}),"user"===e.role?(S=u&&!!r&&"running"!==r.status&&!["completed","failed","cancelled","superseded"].includes(r.status),(0,t.jsx)("div",{className:"flex justify-end","data-message-id":e.id,...e.task_id?{"data-task-id":e.task_id}:{},children:(0,t.jsxs)("div",{className:(0,o.cn)("max-w-[80%] rounded-lg px-4 py-2 bg-primary text-primary-foreground text-base relative"),children:[S&&(0,t.jsx)("div",{className:"absolute inset-0 rounded-lg animate-pulse pointer-events-none",style:{boxShadow:"0 0 0 2px var(--bubble-glow)"}}),(0,t.jsx)("div",{className:"markdown markdown-user",children:(0,t.jsx)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:eo,literalTagContent:ec,components:N,children:U(e.content,a)})}),e.attachment_ids&&e.attachment_ids.length>0&&(0,t.jsx)(eu,{attachmentIds:e.attachment_ids,artifacts:n,onArtifactClick:v}),!e.attachment_ids&&(0,t.jsx)(em,{pendingFiles:x,messageId:e.id})]})})):"event"===e.role?(T=e.metadata?.emailId,I=e.metadata?.issueId,A=e.metadata?.calendarEventId,(0,t.jsx)("div",{className:"flex justify-start","data-message-id":e.id,...e.task_id?{"data-task-id":e.task_id}:{},children:(0,t.jsxs)("div",{className:(0,o.cn)("w-full rounded-md border bg-muted/50 text-muted-foreground text-sm px-3 py-2 flex items-start gap-2",(!!T||!!I||!!A)&&"cursor-pointer hover:bg-muted transition-colors"),onClick:T?()=>j(T):I?()=>y(I):A?()=>k(A):void 0,children:[(0,t.jsx)(ed,{content:e.content,conversationType:g}),(0,t.jsx)("span",{className:"min-w-0 wrap-anywhere",children:e.content})]})})):F?null:(0,t.jsxs)("div",{className:(0,o.cn)("group/msg flex flex-col justify-start min-w-0 overflow-hidden",C&&"bg-muted/30 rounded-lg px-2 -mx-2"),"data-message-id":e.id,"data-quote-source":!0,...e.task_id?{"data-task-id":e.task_id}:{},children:[(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,t.jsx)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:eo,literalTagContent:ec,components:N,children:U(e.content,a)})}),L]})]})});e.i(400175);var ep=e.i(819748),eg=e.i(126366),ef=e.i(309475);function ex({agent:e,isOnline:a,activeTaskCount:n,variant:r="default",isHovered:l}){let[i,d]=(0,s.useState)(!1),u=e.email_handle?`${e.email_handle}@alook.ai`:null,m=(0,s.useCallback)(async()=>{if(u)try{await navigator.clipboard.writeText(u),d(!0),M.toast.success("Email copied to clipboard"),setTimeout(()=>d(!1),2e3)}catch{M.toast.error("Failed to copy email")}},[u]);if("compact"===r){let s;return(0,t.jsxs)("div",{className:"flex items-center gap-2 p-0",children:[(s=(0,eg.parseAvatarUrl)(e.avatar_url))?(0,t.jsx)(ep.AnimatedAvatar,{config:s,size:32,className:"shrink-0 rounded-xl",isHovered:l??!1,isWorking:!!a&&(n??0)>0}):(0,t.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:e.name.charAt(0).toUpperCase()}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate max-w-35",children:e.name}),u&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:u})]}),void 0!==a&&(0,t.jsx)("div",{className:"pointer-events-none mt-0.5",children:(0,t.jsx)(ef.AgentStatusBadge,{isOnline:a,taskCount:n??0,agentId:e.id})})]})]})}return(0,t.jsxs)("div",{className:"flex flex-col gap-1.5 p-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate",children:e.name}),(0,t.jsx)("span",{className:"flex-1"}),void 0!==a&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground",children:[(0,t.jsx)("span",{className:(0,o.cn)("size-1.5 rounded-full",a?"bg-status-online":"bg-status-offline")}),a?(n??0)>0?"Working":null:"Offline"]})]}),u&&(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:u}),(0,t.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),m()},className:"shrink-0 p-0.5 rounded-sm text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",children:i?(0,t.jsx)(c.Check,{className:"size-3 text-green-500"}):(0,t.jsx)(ei.Copy,{className:"size-3"})})]}),e.description&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2",children:e.description})]})}e.s(["AgentPreviewCard",0,ex],844010);var ev=e.i(224950);let ej={mention:function(e){let{children:s,...a}=e,{agents:n}=(0,C.useAgentContext)(),r=a["data-agent-id"]??a.dataAgentId,l=r?n.find(e=>e.id===r):void 0;if(!l&&"string"==typeof s){let e=s.startsWith("@")?s.slice(1):s;l=n.find(t=>t.name.toLowerCase()===e.toLowerCase())}return l?(0,t.jsxs)(ev.Popover,{children:[(0,t.jsx)(ev.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,t.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:s}),(0,t.jsx)(ev.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,t.jsx)(ex,{agent:l})})]}):(0,t.jsx)("span",{className:"mention-highlight",children:s})},p:({children:e,node:s,...a})=>(0,t.jsx)("div",{"data-md-p":"",...a,children:e})};function ey(e,t){if("issue_event"===t)return"issue";if("email_notification"===t)return"email";if("calendar_event"===t)return"calendar";let s=e.toLowerCase();return s.startsWith("issue ")||s.startsWith("issue:")?"issue":s.includes("email")?"email":"calendar"}function ek(e,t){let s=new Map;for(let t of e)s.set(t.id,t);for(let e of t)s.set(e.id,e);return[...s.values()].slice().sort((e,t)=>{let s=e.created_at.localeCompare(t.created_at);return 0!==s?s:e.id.localeCompare(t.id)})}function ew(e){let t=[],s=[],a=!1;for(let n of e)"message"===n.kind&&"user"===n.data.role?(a=!0,t.push(n)):"message"===n.kind&&"assistant"===n.data.role?(t.push(n),t.push(...s),s=[],a=!1):a&&"artifact"===n.kind?s.push(n):t.push(n);return t.push(...s),t}function eb(e){let t=(0,s.useRef)(e);return(0,s.useEffect)(()=>{t.current=e},[e]),t}function eN({agentName:e}){return(0,t.jsxs)("div",{className:"flex items-center gap-3 py-4 select-none","aria-hidden":!0,children:[(0,t.jsx)("div",{className:"flex-1 border-t border-border/40"}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground/60 whitespace-nowrap",children:[e," took a nap 💤"]}),(0,t.jsx)("div",{className:"flex-1 border-t border-border/40"})]})}function eC({artifact:e,version:s,hasDuplicates:a,onClick:n}){return(0,t.jsxs)("button",{onClick:()=>n(e),className:(0,o.cn)("flex items-center gap-3 w-full max-w-sm rounded-lg border border-border/60 bg-muted/30","px-3.5 py-2.5 text-left transition-colors duration-150","hover:bg-muted/60 hover:border-border"),children:[(0,t.jsx)(F.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("p",{className:"text-sm font-medium truncate",children:[e.filename,a&&(0,t.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",s]})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,X.formatSize)(e.size)})]})]})}function e_({agentId:e,targetConvId:i,scrollToTaskId:c,scrollToMessageId:d}){let u,m,h,p=(0,n.useParams)(),f=(0,n.useSearchParams)(),{workspaceId:x,slug:v}=(0,r.useWorkspace)(),{agents:j,agentLinks:y,activeTaskCounts:k,subscribeWs:H}=(0,C.useAgentContext)(),{refresh:V}=(0,_.useInboxCount)(),{activeChannel:Y,loading:K,setAgentId:Z}=(0,T.useChannel)(),ea=e??p.id,en=void 0!==c?c:f.get("task"),er=void 0!==d?d:f.get("msg"),el=void 0!==i?i:f.get("conv"),[ei,eo]=(0,s.useState)(null),[ec,ed]=(0,s.useState)([]),[eu,em]=(0,s.useState)(()=>localStorage.getItem(`chat-draft:${ea}:${el??"default"}`)??""),[ep,eg]=(0,s.useState)(!1),[ef,ex]=(0,s.useState)(!1),[ev,ey]=(0,s.useState)(null),[eS,eT]=(0,s.useState)([]),[eM,eI]=(0,s.useState)(!0),[eE,eA]=(0,s.useState)(!1),[ez,eR]=(0,s.useState)(!1),[eF,eD]=(0,s.useState)(!1),[eP,eL]=(0,s.useState)([]),[eB,eq]=(0,s.useState)(!1),[e$,eW]=(0,s.useState)(null),[eH,eO]=(0,s.useState)(null),[eV,eU]=(0,s.useState)(!1),[eX,eY]=(0,s.useState)(null),[eK,eJ]=(0,s.useState)(!1),[eZ,eQ]=(0,s.useState)(null),[eG,e0]=(0,s.useState)(!1),[e1,e2]=(0,s.useState)(null),[e5,e3]=(0,s.useState)(null),[e4,e6]=(0,s.useState)(!1),[e8,e7]=(0,s.useState)(null),[e9,te]=(0,s.useState)(null),[tt,ts]=(0,s.useState)(448),[ta,tn]=(0,s.useState)([]),[tr,tl]=(0,s.useState)([]),[ti,to]=(0,s.useState)(null),[tc,td]=(0,s.useState)([]),[tu,tm]=(0,s.useState)(!1),[th,tp]=(0,s.useState)([]),[tg,tf]=(0,s.useState)({}),[tx]=(0,s.useState)(()=>Date.now()),[tv,tj]=(0,s.useState)(()=>new Map),[ty,tk]=(0,s.useState)(null),[tw,tb]=(0,s.useState)(null),[tN,tC]=(0,s.useState)(new Set),t_=(0,s.useRef)(tN);(0,s.useEffect)(()=>{t_.current=tN});let{increment:tS,decrement:tT,refresh:tM}=(0,S.useFlagCount)(),{writeToCache:tI}=function(e,t){let[a,n]=(0,s.useState)(null),[r,l]=(0,s.useState)(!1),i=(0,s.useRef)(e);return(0,s.useEffect)(()=>{if(i.current=e,!e||!t){n(null),l(!1);return}(0,N.openCacheDB)(t);let s=!1;return(0,N.getCachedMessages)(e,t).then(t=>{s||i.current!==e||(t&&t.length>0?(n(t),l(!0)):(n(null),l(!1)))}),()=>{s=!0}},[e,t]),{cachedMessages:a,isFromCache:r,writeToCache:(0,s.useCallback)(async(e,s)=>{i.current&&t&&await (0,N.mergeCachedMessages)(i.current,e,s,t)},[t])}}(el??null,x),tE=(0,s.useRef)(tI);(0,s.useEffect)(()=>{tE.current=tI},[tI]),(0,s.useEffect)(()=>{Z(ea)},[ea,Z]);let{listening:tA,supported:tz,toggle:tR}=function(e){let[t,a]=(0,s.useState)(!1),[n,r]=(0,s.useState)(!1),l=(0,s.useRef)(null);(0,s.useEffect)(()=>{r(!!W())},[]);let i=(0,s.useCallback)(()=>{let t=W();if(!t)return;let s=new t;s.lang=navigator.language||"zh-CN",s.interimResults=!1,s.continuous=!1,s.onresult=t=>{let s=t.results,a="";for(let e=0;e<s.length;e++)a+=s[e][0].transcript;a&&e(a)},s.onend=()=>{a(!1),l.current=null},s.onerror=()=>{a(!1),l.current=null},l.current=s,s.start(),a(!0)},[e]),o=(0,s.useCallback)(()=>{l.current?.stop()},[]),c=(0,s.useCallback)(()=>{t?o():i()},[t,i,o]);return(0,s.useEffect)(()=>()=>{l.current?.abort()},[]),{listening:t,supported:n,toggle:c}}((0,s.useCallback)(e=>{em(t=>t?t+" "+e:e)},[])),tF=(0,s.useMemo)(()=>eP.filter(e=>"agent"===e.source),[eP]),{versionMap:tD,duplicateFilenames:tP}=(0,s.useMemo)(()=>(0,ee.computeArtifactVersions)(tF),[tF]),tL=(0,s.useMemo)(()=>"agent"===eH?tF:"issue"===eH?e5?.artifacts??[]:[],[eH,tF,e5?.artifacts]),{versionMap:tB,duplicateFilenames:tq}=(0,s.useMemo)(()=>(0,ee.computeArtifactVersions)(tL),[tL]),t$=(0,s.useMemo)(()=>(function(e,t,s,a){if(!a||0===s.length){let a=[...e.map(e=>({kind:"message",data:e})),...t.map(e=>({kind:"artifact",data:e})),...s.map(e=>({kind:"nap",data:e}))];return a.sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);if(0!==s)return s;if("nap"===e.kind||"nap"===t.kind){if("nap"===e.kind&&"nap"!==t.kind)return 1;if("nap"!==e.kind&&"nap"===t.kind)return -1}return e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)}),ew(a)}let n=new Set(s.map(e=>e.id.replace(/^nap-/,""))),r=[...s].sort((e,t)=>e.created_at.localeCompare(t.created_at)),l=s=>ew([...e.filter(e=>e.conversation_id===s).map(e=>({kind:"message",data:e})),...t.filter(e=>e.conversation_id===s).map(e=>({kind:"artifact",data:e}))].sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);return 0!==s?s:e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)})),i=[];for(let e of r){let t=e.id.replace(/^nap-/,"");i.push(...l(t)),i.push({kind:"nap",data:e})}i.push(...l(a));let o=new Set([...n,a]),c=e.filter(e=>!o.has(e.conversation_id)),d=t.filter(e=>!o.has(e.conversation_id));if(c.length>0||d.length>0){let e=[...c.map(e=>({kind:"message",data:e})),...d.map(e=>({kind:"artifact",data:e}))];e.sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);return 0!==s?s:e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)});let t=ew(e),s=i.findIndex(e=>"nap"===e.kind);s>=0?i.splice(s,0,...t):i.push(...t)}return i})(ec,tF,th,ei?.id),[ec,tF,th,ei?.id]),tW=(0,s.useCallback)(e=>{(0,ee.isPreviewable)(e)?(eW(e),eO("agent"),eq(!0)):window.open((0,ee.getArtifactUrl)(e.id,x,!0),"_blank")},[x]),tH=(0,s.useCallback)(e=>{(0,ee.isPreviewable)(e)?(eW(e),eO("issue"),eq(!0)):window.open((0,ee.getArtifactUrl)(e.id,x,!0),"_blank")},[x]),tO=(0,s.useRef)(null),tV=(0,s.useRef)(null),tU=(0,s.useRef)(null),tX=(0,s.useRef)(null),tY=(0,s.useRef)(0),tK=(0,s.useRef)(0),tJ=(0,s.useRef)(!1),tZ=(0,s.useRef)(!1),tQ=(0,s.useRef)(!0),tG=(0,s.useRef)(!1),t0=(0,s.useRef)(null),t1=(0,s.useRef)(null),t2=(0,s.useRef)(0),t5=(0,s.useRef)(void 0),t3=(0,s.useRef)(null),t4=(0,s.useRef)(null),t6=function({input:e,caretIndex:t,textareaRef:a,agents:n,agentLinks:r,currentAgentId:l,onInputChange:i}){let[o,c]=(0,s.useState)(!1),[d,u]=(0,s.useState)(""),[m,h]=(0,s.useState)(0),[p,g]=(0,s.useState)({top:0,left:0}),f=(0,s.useRef)(null),x=(0,s.useMemo)(()=>{let e=new Set;for(let t of r)t.source_agent_id===l&&e.add(t.target_agent_id),t.target_agent_id===l&&e.add(t.source_agent_id);return e},[r,l]),{relatedAgents:v,otherAgents:j,allAgents:y}=(0,s.useMemo)(()=>{if(!o)return{relatedAgents:[],otherAgents:[],allAgents:[]};let e=e=>{if(!d)return e.slice(0,20);let t=d.toLowerCase(),s=[],a=[];for(let n of e){let e=n.name.toLowerCase();e.startsWith(t)?s.push(n):e.includes(t)&&a.push(n)}return[...s,...a]},t=[],s=[];for(let e of n)x.has(e.id)?t.push(e):s.push(e);let a=e(t),r=e(s);return{relatedAgents:a,otherAgents:r,allAgents:[...a,...r]}},[o,d,n,x]);(0,s.useEffect)(()=>{h(0)},[y.length,d]),(0,s.useEffect)(()=>{if(null===t)return void c(!1);let s=function(e,t){let s=t-1;for(;s>=0&&t-s<=30;){let a=e.charCodeAt(s);if(64===a)return{start:s,query:e.slice(s+1,t)};if(10===a||13===a)break;s--}return null}(e,t);s?(f.current=s.start,u(s.query),c(!0),a.current&&g(function(e,t){let s=document.createElement("div"),a=window.getComputedStyle(e);for(let t of(s.style.position="absolute",s.style.top="-9999px",s.style.left="-9999px",s.style.visibility="hidden",s.style.overflow="hidden",s.style.width=`${e.offsetWidth}px`,["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent","lineHeight","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing","whiteSpace","wordWrap","overflowWrap"]))s.style[t]=a.getPropertyValue(t.replace(/([A-Z])/g,"-$1").toLowerCase());s.textContent=e.value.slice(0,t);let n=document.createElement("span");n.textContent="",s.appendChild(n),document.body.appendChild(s);let r=n.offsetTop-e.scrollTop,l=Math.max(0,Math.min(n.offsetLeft,e.offsetWidth-256));return document.body.removeChild(s),{top:r,left:l}}(a.current,s.start))):(c(!1),f.current=null)},[e,t,a]);let k=(0,s.useCallback)(s=>{if(null===t||null===f.current)return;let n=e.slice(0,f.current),r=e.slice(t);i(`${n}@${s.name} ${r}`),c(!1);let l=n.length+1+s.name.length+1;requestAnimationFrame(()=>{let e=a.current;e&&(e.focus(),e.setSelectionRange(l,l))})},[e,t,a,i]),w=(0,s.useCallback)(e=>!!o&&0!==y.length&&!e.nativeEvent.isComposing&&("ArrowDown"===e.key?(e.preventDefault(),h(e=>(e+1)%y.length),!0):"ArrowUp"===e.key?(e.preventDefault(),h(e=>(e-1+y.length)%y.length),!0):"Enter"===e.key?(e.preventDefault(),k(y[m]),!0):"Escape"===e.key&&(e.preventDefault(),c(!1),!0)),[o,y,m,k]);return{isOpen:o,query:d,selectedIndex:m,anchorPos:p,relatedAgents:v,otherAgents:j,allAgents:y,handleMentionKeyDown:w,selectAgent:k}}({input:eu,caretIndex:ti,textareaRef:t4,agents:(0,s.useMemo)(()=>j.filter(e=>e.id!==ea),[j,ea]),agentLinks:y,currentAgentId:ea,onInputChange:em});(0,s.useEffect)(()=>{let e=`chat-draft:${ea}:${el??"default"}`;eu?localStorage.setItem(e,eu):localStorage.removeItem(e)},[eu,ea,el]),(0,s.useEffect)(()=>{ep||t4.current?.focus()},[ep]);let t8=(0,s.useCallback)(()=>{tQ.current=!0,setTimeout(()=>{tO.current?.scrollTo({top:tO.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,s.useEffect)(()=>{if(K)return;tV.current&&clearInterval(tV.current),tV.current=null,tX.current=null;let e=!1;return eI(!0),tJ.current=!1,ey(null),eT([]),tl([]),tj(new Map),tp([]),tf({}),td([]),tm(!1),t1.current=null,em(localStorage.getItem(`chat-draft:${ea}:${el??"default"}`)??""),ed([]),async function(){let t=!1;try{let s=null,a=null;if(el){if(s=el,a=await (0,N.getCacheMeta)(s,x),a?.newestMessageId){let n=await (0,N.getCachedMessages)(s,x);if(e)return;n&&n.length>0&&(t=!0,ed(n),eR(a.hasMore),eI(!1))}}else try{let n=await (0,b.checkFreshness)({agentId:ea,channel:Y},x);if(e)return;if(s=n.conversation_id,a=await (0,N.getCacheMeta)(s,x),a?.newestMessageId&&a.newestMessageId===n.newest_message_id){let n=await (0,N.getCachedMessages)(s,x);if(e)return;n&&n.length>0&&(t=!0,ed(n),eR(a.hasMore),eI(!1))}}catch{}if(s){let t=await (0,b.conversationInit)(s,x,{newestMessageId:a?.newestMessageId??void 0});if(e)return;if(eo(t.conversation),tm(t.has_more_conversations),!t.cache_valid&&t.messages?(ed(e=>ek(e,t.messages)),tE.current(t.messages,t.has_more_messages).catch(()=>{}),eR(t.has_more_messages)):a&&eR(a.hasMore),tf(t.step_counts),eL(t.artifacts),tl(t.buffered_messages),tC(new Set(t.flagged_message_ids)),t.active_task&&(ey(t.active_task),eT(t.task_messages),t.task_messages.length>0&&(tY.current=Math.max(...t.task_messages.map(e=>e.seq))),t0.current?.(t.active_task.id,s,tY.current)),en){let t=await (0,b.getTask)(en,x).catch(()=>null);if(e)return;if(t&&!["completed","failed","cancelled","superseded"].includes(t.status)){ey(t);let a=await (0,b.getTaskMessages)(en,x).catch(()=>[]);if(e)return;eT(a),a.length>0&&(tY.current=Math.max(...a.map(e=>e.seq))),t0.current?.(t.id,s,tY.current)}}}else{let t=await (0,b.chatInit)(ea,x,Y);if(e)return;eo(t.conversation),ed(e=>e.length>0?ek(e,t.messages):t.messages),eR(t.has_more_messages),eL(t.artifacts),tl(t.buffered_messages),tm(t.has_more_conversations),tE.current(t.messages,t.has_more_messages).catch(()=>{}),(0,b.listFlaggedMessageIds)(x,t.conversation.id).then(t=>{e||tC(new Set(t.message_ids))}).catch(()=>{}),t.active_task&&(ey(t.active_task),t.task_messages.length>0&&(eT(t.task_messages),tY.current=Math.max(...t.task_messages.map(e=>e.seq))),["completed","failed","cancelled","superseded"].includes(t.active_task.status)||t0.current?.(t.active_task.id,t.conversation.id,tY.current))}}catch{t?M.toast.error("Couldn't refresh conversation"):M.toast.error("Failed to load conversation")}finally{e||eI(!1)}}(),()=>{e=!0}},[ea,x,el,en,Y,K]);let t7=(0,s.useRef)(V);(0,s.useEffect)(()=>{t7.current=V},[V]);let t9=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!ei?.id||!x||t9.current===ei.id)return;t9.current=ei.id;let e=setTimeout(()=>{(0,b.markInboxRead)(ei.id,x).then(()=>t7.current()).catch(()=>{})},1e3);return()=>{t9.current=null,clearTimeout(e)}},[ei?.id,x]),(0,s.useEffect)(()=>{eM||!(ec.length>0)||tJ.current||(tJ.current=!0,en||er?tQ.current=!1:i?setTimeout(()=>{let e=tO.current?.querySelectorAll("[data-quote-source]");e&&e.length>0?e[e.length-1].scrollIntoView({behavior:"instant",block:"start"}):tO.current?.scrollTo({top:tO.current.scrollHeight})},50):setTimeout(()=>{tO.current?.scrollTo({top:tO.current.scrollHeight})},50))},[eM,ec.length,en,er,i]),(0,s.useEffect)(()=>{let e;if(!en||eM||!ei)return;tQ.current=!1,tG.current=!0;let t=!1,s=()=>{if(t)return!1;let s=document.querySelector(`[data-task-id="${CSS.escape(en)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tG.current=!1)},1500),!0)},a=setTimeout(async()=>{if(!t&&!s())try{let e=await (0,b.listMessagesAroundTask)(ei.id,x,en);if(t)return;e.length>0?(ed(t=>ek(t,e)),requestAnimationFrame(()=>{setTimeout(()=>{s()||(tG.current=!1)},100)})):tG.current=!1}catch{t||(tG.current=!1)}},100);return()=>{t=!0,clearTimeout(a),e&&clearTimeout(e)}},[en,eM,ei,x]),(0,s.useEffect)(()=>{let e;if(!er||en||eM||!ei)return;tQ.current=!1,tG.current=!0;let t=!1,s=setTimeout(()=>{!t&&((()=>{if(t)return!1;let s=document.querySelector(`[data-message-id="${CSS.escape(er)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tG.current=!1)},1500),!0)})()||(tO.current?.scrollTo({top:tO.current.scrollHeight}),tG.current=!1))},100);return()=>{t=!0,clearTimeout(s),e&&clearTimeout(e)}},[er,en,eM,ei]);let se=ev?.status;(0,s.useEffect)(()=>{tG.current||("running"===se||"queued"===se)&&tQ.current&&t8()},[eS.length,se,t8]);let st=(0,s.useMemo)(()=>j.find(e=>e.id===ea)?.name??"Agent",[j,ea]),ss=eb(ec),sa=eb(ez),sn=eb(tc),sr=eb(tu),sl=eb(st),si=eb(Y),so=(0,s.useCallback)(async(e=!1)=>{if(!ei||tZ.current)return;tZ.current=!0;let t=ss.current,s=sa.current,n=sr.current,r=sl.current,l=si.current,i=!!el,o=t[0],c=t1.current?.id??ei.id,d=s&&o,u=sn.current;if(!i&&!d&&0===u.length&&n){let e=t1.current??{id:ei.id,created_at:ei.created_at};try{let t=await (0,b.listPreviousConversations)(ea,x,{exclude:ei.id,before:e.created_at,channel:l});u=t.conversations,td(t.conversations),tm(t.has_more)}catch{tm(!1)}}let m=!i&&u.length>0;if(!d&&!m){tZ.current=!1;return}eD(!0);let h=tO.current;h&&(h.style.overflowAnchor="none");let p=h?.scrollHeight??0;try{let t=[],s=[],m=20,g=!1,f=[],v=!1;if(d){let e=c===ei.id?await (0,N.getCachedMessagesBefore)(c,o.created_at,o.id,20,x):null;if(e)t=e.messages,m-=e.messages.length,g=e.hasMore;else{let e=await (0,b.listMessages)(c,x,{limit:20,before:o.created_at,beforeId:o.id});t=e.messages,m-=e.messages.length,g=e.has_more}v=g}if(!i&&!g&&m>0){if(0===u.length&&n){let e=t1.current??{id:ei.id,created_at:ei.created_at};try{let t=await (0,b.listPreviousConversations)(ea,x,{exclude:ei.id,before:e.created_at,channel:l});u=t.conversations,td(t.conversations),tm(t.has_more)}catch{tm(!1)}}let e=0,t=0;for(;e<u.length&&m>0&&t<5;){let a=u[e];e++,t++;let n=await (0,b.listMessages)(a.id,x,{limit:m});if(0===n.messages.length){t1.current=a;continue}let l=t1.current?.created_at??ei.created_at;f.push({agentName:r,created_at:l,id:`nap-${a.id}`}),s=[...n.messages,...s],m-=n.messages.length,g=n.has_more,t1.current=a}e>0&&td(t=>t.slice(e))}let j=[...s,...t];if((0,a.flushSync)(()=>{j.length>0?(f.length>0&&tp(e=>{let t=new Set(e.map(e=>e.id)),s=f.filter(e=>!t.has(e.id));return[...e,...s]}),eR(g),ed(e=>{let t=new Set(e.map(e=>e.id));return[...j.filter(e=>!t.has(e.id)),...e]})):eR(!1)}),j.length>0&&ei){let e=j.filter(e=>e.conversation_id===ei.id);e.length>0&&(0,N.mergeCachedMessages)(ei.id,e,v,x).catch(()=>{})}if(tZ.current=!1,(0,a.flushSync)(()=>eD(!1)),h)if(e)h.scrollTop=h.scrollHeight;else{let e=h.scrollHeight;h.scrollTop=e-p}}catch{M.toast.error("Failed to load older messages")}finally{tZ.current=!1,eD(!1),tO.current&&(tO.current.style.overflowAnchor="")}},[ei,x,ea,el,ss,sa,sr,sl,si,sn]),sc=el?ez:ez||tc.length>0||tu;(0,s.useEffect)(()=>{ei?.id!==t5.current&&(t5.current=ei?.id,t2.current=0)},[ei?.id]),(0,s.useEffect)(()=>{eM||!ei||en||el||ec.length>=10||!sc||eF||t2.current>=3||(t2.current+=1,so(!0))},[eM,ec.length,sc,eF,ei,so,en,el]);let sd=(0,s.useCallback)(()=>{let e=tO.current;e&&(tQ.current=e.scrollHeight-e.scrollTop-e.clientHeight<100)},[]),su=(0,s.useCallback)((e,t,s)=>{tV.current&&clearInterval(tV.current),tY.current=s??0,tK.current=0,eA(!1),tX.current=e,tV.current=setInterval(async()=>{if(tX.current===e)try{let[s,a]=await Promise.all([(0,b.getTask)(e,x),(0,b.getTaskMessages)(e,x,tY.current||void 0)]),n=tX.current!==e;if(tK.current=0,eA(!1),a.length>0&&!n&&(eT(e=>{let t=new Set(e.map(e=>e.seq)),s=a.filter(e=>!t.has(e.seq));return s.length>0?[...e,...s]:e}),tY.current=Math.max(...a.map(e=>e.seq),tY.current)),"completed"===s.status||"failed"===s.status||"cancelled"===s.status||"superseded"===s.status){if(n)return void(0,b.listMessages)(t,x).then(({messages:e})=>{ed(t=>ek(t,e)),(0,N.mergeCachedMessages)(t,e,null,x).catch(()=>{})}).catch(()=>{});tV.current&&clearInterval(tV.current),tV.current=null,tU.current&&clearTimeout(tU.current),tU.current=setTimeout(()=>{(0,b.markInboxRead)(t,x).then(()=>t7.current()).catch(()=>{})},1e3);let a=!tG.current&&tQ.current;try{let[e,a]=await Promise.all([(0,b.listMessages)(t,x),(0,b.listArtifacts)(t,x).catch(()=>null)]);ed(t=>ek(t,e.messages)),(0,N.mergeCachedMessages)(t,e.messages,null,x).catch(()=>{}),a&&eL(a),ey(s)}catch{ey(s),M.toast.error("Failed to refresh messages")}a&&requestAnimationFrame(()=>{tO.current?.scrollTo({top:tO.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!tV.current)try{let[s,a]=await Promise.all([(0,b.getActiveTask)(t,x),(0,b.listBufferedMessages)(t,x)]);if(tl(a),s&&s.id!==e){let{messages:e}=await (0,b.listMessages)(t,x);ed(t=>ek(t,e)),(0,N.mergeCachedMessages)(t,e,null,x).catch(()=>{}),ey(s),eT([]),t0.current?.(s.id,t)}}catch{}},1e3)}else n||ey(s)}catch{if(tX.current!==e)return;tK.current+=1,tK.current>=3&&eA(!0),tK.current>=10&&(tV.current&&clearInterval(tV.current),tV.current=null,M.toast.error("Lost connection to agent"))}},3e3)},[x]);(0,s.useEffect)(()=>{t0.current=su},[su]),(0,s.useEffect)(()=>()=>{tV.current&&clearInterval(tV.current),tU.current&&clearTimeout(tU.current)},[]);let sm=(0,s.useRef)(null);(0,s.useEffect)(()=>{sm.current=ev?.id??null},[ev]),(0,s.useEffect)(()=>H(e=>{if("task.messages"===e.type&&e.taskId===sm.current){let t=e.messages.filter(e=>e.seq>tY.current);t.length>0&&(eT(e=>{let s=new Set(e.map(e=>e.seq)),a=t.filter(e=>!s.has(e.seq));return a.length>0?[...e,...a]:e}),tY.current=Math.max(...t.map(e=>e.seq),tY.current))}if("task.created"===e.type&&e.conversationId===ei?.id){(0,b.listMessages)(e.conversationId,x).then(({messages:t})=>{ed(e=>ek(e,t)),(0,N.mergeCachedMessages)(e.conversationId,t,null,x).catch(()=>{})}).catch(()=>{});let t=e.task;sm.current=t.id,ey(t),eT([]),tY.current=0,t0.current?.(t.id,e.conversationId)}if("conversation.message"===e.type&&e.conversationId===ei?.id&&(ed(t=>ek(t,[e.message])),(0,N.appendCachedMessage)(e.conversationId,e.message,x).catch(()=>{})),"task.updated"===e.type&&e.taskId===sm.current&&ey(t=>t?{...t,status:e.status}:t),"artifact.uploaded"===e.type&&e.conversationId===ei?.id&&eL(t=>t.some(t=>t.id===e.artifact.id)?t:[...t,e.artifact]),"followup.dispatched"===e.type&&e.conversationId===ei?.id){tl(t=>t.filter(t=>t.id!==e.message.id)),(0,b.listBufferedMessages)(e.conversationId,x).then(tl).catch(()=>{}),(0,b.listMessages)(e.conversationId,x).then(({messages:t})=>{ed(e=>ek(e,t)),(0,N.mergeCachedMessages)(e.conversationId,t,null,x).catch(()=>{})}).catch(()=>{});let t=e.task;sm.current=t.id,ey(t),eT([]),t0.current?.(t.id,e.conversationId)}"followup.created"===e.type&&e.conversationId===ei?.id&&tl(t=>(function(e,t){if(e.some(e=>e.id===t.id))return e;let s=new Date(t.created_at).getTime();return e.some(e=>e.id.startsWith("temp-")&&2e3>Math.abs(new Date(e.created_at).getTime()-s))?e:[...e,t]})(t,e.message)),"followup.deleted"===e.type&&e.conversationId===ei?.id&&tl(t=>t.filter(t=>t.id!==e.messageId)),"followup.dispatch_failed"===e.type&&e.conversationId===ei?.id&&M.toast.error(e.error||"Failed to dispatch follow-up")}),[H,ei?.id,x]);let sh=(0,s.useCallback)(e=>{let t=e.target.files;if(!t)return;let s=[];for(let e of Array.from(t))e.size>0xa00000?M.toast.error(`"${e.name}" exceeds 10 MB limit`):s.push(e);s.length>0&&tn(e=>[...e,...s]),e.target.value=""},[]),sp=(0,s.useCallback)(e=>{tn(t=>t.filter((t,s)=>s!==e))},[]),sg=(0,s.useCallback)(()=>{let e=window.getSelection();if(!e||e.isCollapsed||!e.rangeCount)return void tb(null);let t=e.toString().trim();if(!t)return void tb(null);let s=e.getRangeAt(0),a=s.commonAncestorContainer instanceof HTMLElement?s.commonAncestorContainer:s.commonAncestorContainer.parentElement;if(!a?.closest("[data-quote-source]"))return void tb(null);let n=s.getClientRects(),r=n[n.length-1]||s.getBoundingClientRect();tb({text:t,x:r.right,y:r.top-4})},[]);(0,s.useEffect)(()=>(document.addEventListener("selectionchange",sg),()=>document.removeEventListener("selectionchange",sg)),[sg]);let sf=(0,s.useCallback)(()=>{tw&&(tk(tw.text),tb(null),window.getSelection()?.removeAllRanges(),t4.current?.focus())},[tw]),[sx,sv]=(0,s.useState)(!1),sj=(0,s.useRef)(0),sy=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sj.current++,e.dataTransfer.types.includes("Files")&&sv(!0)},[]),sk=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sj.current--,0===sj.current&&sv(!1)},[]),sw=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),sb=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sv(!1),sj.current=0;let t=Array.from(e.dataTransfer.files),s=[];for(let e of t)e.size>0xa00000?M.toast.error(`"${e.name}" exceeds 10 MB limit`):s.push(e);s.length>0&&tn(e=>[...e,...s])},[]),sN=(0,s.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let s=[];for(let e=0;e<t.length;e++){let a=t[e];if("file"===a.kind){let e=a.getAsFile();e&&s.push(e)}}if(0===s.length)return;e.preventDefault();let a=[];for(let e of s)e.size>0xa00000?M.toast.error(`"${e.name}" exceeds 10 MB limit`):a.push(e);a.length>0&&tn(e=>[...e,...a])},[]),sC=async()=>{if(ei&&!ef){ex(!0);try{let e=await (0,b.cancelActiveTask)(ei.id,x);if(e){if(sm.current&&sm.current!==e.id)return;tV.current&&clearInterval(tV.current),tV.current=null;let[t,s]=await Promise.all([(0,b.listMessages)(ei.id,x),(0,b.listBufferedMessages)(ei.id,x)]);ed(e=>ek(e,t.messages)),(0,N.mergeCachedMessages)(ei.id,t.messages,null,x).catch(()=>{}),tl(s),ey(e),eT([])}}catch{M.toast.error("Failed to cancel task")}finally{ex(!1)}}},s_=async()=>{let e=eu.trim();if(!e&&0===ta.length||ep||!ei)return;if(!e)return void M.toast.error("Please type a message");let t=ty?`> ${ty.split("\n").join("\n> ")}
|
|
2
|
-
|
|
3
|
-
${e}`:e,s=[...ta];if(em(""),tn([]),tk(null),eg(!0),ev&&!["completed","failed","cancelled","superseded"].includes(ev.status)){let e=`temp-${Date.now()}`,a={id:e,conversation_id:ei.id,role:"user",content:t,task_id:null,attachment_ids:null,status:"buffered",created_at:new Date().toISOString()};tl(e=>[...e,a]);try{let{message:a}=await (0,b.createBufferedMessage)(ei.id,t,x,s.length>0?s:void 0);tl(t=>t.some(e=>e.id===a.id)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?a:t))}catch(a){tl(t=>t.filter(t=>t.id!==e)),em(t),tn(s),M.toast.error(a instanceof Error?a.message:"Failed to queue follow-up")}finally{eg(!1)}return}let a=`temp-${Date.now()}`,n={id:a,conversation_id:ei.id,role:"user",content:t,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};s.length>0&&tj(e=>{let t=new Map(e);return t.set(a,s),t}),ed(e=>[...e,n]),t8();try{let{message:e,task:r}=await (0,b.sendMessage)(ei.id,t,x,s.length>0?s:void 0);tj(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),ed(t=>t.map(t=>t.id===n.id?e:t)),e.attachment_ids&&e.attachment_ids.length>0&&(0,b.listArtifacts)(ei.id,x).then(e=>eL(e)).catch(()=>{}),ey(r),eT([]),su(r.id,ei.id)}catch(e){tj(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),ed(e=>e.filter(e=>e.id!==n.id)),em(t),tn(s),M.toast.error(e instanceof Error?e.message:"Failed to send message")}finally{eg(!1),t4.current?.focus()}},sS=(0,s.useCallback)(async()=>{if(!ev||!ei)return;let e=await (0,b.retryTask)(ev.id,x);ey(e),eT([]),su(e.id,ei.id)},[ev,ei,x,su]),sT=(0,s.useCallback)(async e=>{let t=t_.current.has(e);tC(s=>{let a=new Set(s);return t?a.delete(e):a.add(e),a}),t?(tT(),(0,b.unflagMessage)(x,e).then(()=>{tM()}).catch(()=>{tC(t=>new Set(t).add(e)),tS()})):(tS(),(0,b.flagMessage)(x,e).then(()=>{tM()}).catch(()=>{tC(t=>{let s=new Set(t);return s.delete(e),s}),tT()}))},[x,tS,tT,tM]),sM=(0,s.useCallback)(async e=>{e2(e),e0(!0),e6(!0),e7(null),te(null);try{let t=await (0,b.getIssue)(x,e);e3(t),t.issue.latest_task_id&&(0,b.getTask)(t.issue.latest_task_id,x).then(e=>te(e)).catch(()=>te(null)),t.issue.trace_id&&(0,b.getTrace)(t.issue.trace_id,x).then(e=>e7(e.tasks)).catch(()=>e7(null))}catch(e){M.toast.error(e instanceof Error?e.message:"Failed to load issue"),e0(!1)}finally{e6(!1)}},[x]),sI=e5?.issue?.conversation_id??null,sE=e5?.issue?.latest_task_id??null;(0,s.useEffect)(()=>{if(eG&&e1)return H(e=>{if("task.updated"===e.type&&sE&&e.taskId===sE&&(0,b.getTask)(sE,x).then(e=>te(e)).catch(()=>{}),"conversation.message"===e.type&&sI&&e.conversationId===sI&&(e3(t=>!t||t.messages.some(t=>t.id===e.message.id)?t:{...t,messages:[...t.messages,e.message]}),"event"===e.message.role&&e.message.content.startsWith("Issue status changed:"))){let t=e.message.content.match(/-> (\w+)/);t&&e3(e=>e?{...e,issue:{...e.issue,status:t[1]}}:e)}"issue.comment"===e.type&&e.issueId===e1&&e3(t=>!t||t.comments.some(t=>t.id===e.comment.id)?t:{...t,comments:[...t.comments,e.comment]})})},[eG,e1,sI,sE,x,H]);let[sA,sz]=(0,s.useState)(!1),sR=(0,s.useMemo)(()=>!!ei&&ec.some(e=>e.conversation_id===ei.id),[ei,ec]),sF=async()=>{if(ei&&sR&&!sA){sz(!0);try{tV.current&&(clearInterval(tV.current),tV.current=null);let e=await (0,b.createConversation)(ea,x,Y);tp(t=>[...t,{agentName:st,created_at:e.created_at,id:`nap-${ei.id}`}]),td(e=>[{id:ei.id,created_at:ei.created_at},...e]),eo(e),ey(null),eT([]),eL([]),tl([]),tn([]),tj(new Map),tY.current=0,eA(!1),eR(!1),t1.current=null,t8()}catch{M.toast.error("Failed to start new conversation")}finally{sz(!1)}}},sD=!!ev&&!["completed","failed","cancelled","superseded"].includes(ev.status);return eM?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-3 md:px-5",children:(0,t.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4",children:[(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(I.Skeleton,{className:"h-10 w-48 rounded-lg"})}),(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,t.jsx)(I.Skeleton,{className:"h-4 w-72"}),(0,t.jsx)(I.Skeleton,{className:"h-4 w-56"}),(0,t.jsx)(I.Skeleton,{className:"h-4 w-64"})]})}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(I.Skeleton,{className:"h-10 w-36 rounded-lg"})}),(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,t.jsx)(I.Skeleton,{className:"h-4 w-64"}),(0,t.jsx)(I.Skeleton,{className:"h-4 w-48"})]})})]})}),(0,t.jsx)("div",{className:"px-3 md:px-5 py-3",children:(0,t.jsx)("div",{className:"mx-auto max-w-2xl",children:(0,t.jsx)(I.Skeleton,{className:"h-18 w-full rounded-xl"})})})]}):eM||ei||0!==ec.length?(0,t.jsxs)(t.Fragment,{children:[tw&&(0,t.jsxs)("button",{type:"button",className:"fixed z-50 flex items-center gap-1 px-2 py-1 rounded-md bg-popover border shadow-md text-xs text-popover-foreground hover:bg-accent transition-colors",style:{left:tw.x,top:tw.y,transform:"translate(-100%, -100%)"},onMouseDown:e=>e.preventDefault(),onClick:sf,children:[(0,t.jsx)(P,{className:"size-3"}),"Quote"]}),(0,t.jsxs)("div",{className:"relative flex-1 min-h-0",children:[(0,t.jsx)("div",{className:"h-full overflow-y-auto overflow-x-hidden px-3 md:px-5 thin-scrollbar",ref:tO,onScroll:sd,onClick:e=>{e.target.closest('[data-streamdown="code-block-actions"] button')&&M.toast.success("Copied to clipboard")},children:(0,t.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4 min-w-0",children:[ei&&sc&&!eF&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)("button",{onClick:()=>so(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),eF&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)(g.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===ec.length&&!ev&&(u=j.find(e=>e.id===ea),m=u?.created_at&&tx-new Date(u.created_at).getTime()<3e5,h=(k[ea]??0)>0,m&&h&&"default"===Y?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 gap-3 animate-[fade-up_400ms_ease-out_both]",children:[(0,t.jsxs)("div",{className:"relative animate-bounce",children:[(0,t.jsx)(D.Mail,{className:"size-8 text-primary"}),(0,t.jsxs)("span",{className:"absolute -top-1 -right-1 flex size-3",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex size-full rounded-full bg-primary/60"}),(0,t.jsx)("span",{className:"relative inline-flex size-3 rounded-full bg-primary"})]})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground text-center max-w-xs",children:"Your agent is sending you a welcome email."}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground/60 text-center max-w-xs",children:"Wait for the email task in the top-left to complete, then check your inbox. Or send a message below to start chatting."})]}):(0,t.jsx)("p",{className:"text-center text-muted-foreground py-20 text-sm",children:"Send a message to start chatting with the agent."})),t$.map(e=>{if("nap"===e.kind)return(0,t.jsx)(eN,{agentName:st},e.data.id);if("artifact"===e.kind)return(0,t.jsx)(eC,{artifact:e.data,version:tD.get(e.data.id)??1,hasDuplicates:tP.has(e.data.filename),onClick:tW},`artifact-${e.data.id}`);let s=e.data;return(0,t.jsx)(eh,{msg:s,agents:j,artifacts:eP,activeTask:ev,taskMessages:eS,connectionLost:eE,isLastMessage:ec.length>0&&ec[ec.length-1].id===s.id,stepCount:s.task_id?tg[s.task_id]??0:0,targetConvId:el,workspaceId:x,conversationType:ei?.type,pendingFilesByMessage:tv,onArtifactClick:tW,onEmailClick:e=>{eY(e),eU(!0)},onCalendarEventClick:e=>{eQ(e),eJ(!0)},onIssueClick:e=>sM(e),onRetry:sS,mentionComponents:ej,isFlagged:tN.has(s.id),onToggleFlag:"assistant"===s.role?sT:void 0},s.id)}),ev&&ev.conversation_id===ei?.id&&!["completed","failed","cancelled","superseded"].includes(ev.status)&&(0,t.jsx)(w,{task:ev,messages:eS,connectionLost:eE})]})}),(0,t.jsx)(es.ScrollToBottomButton,{scrollRef:tO})]}),ei&&(0,t.jsx)(et,{bufferedMessages:tr,onDelete:e=>{tl(t=>t.filter(t=>t.id!==e)),(0,b.deleteBufferedMessage)(ei.id,e,x).catch(()=>{tl(tr),M.toast.error("Failed to delete follow-up")})}}),(0,t.jsx)("div",{className:"px-3 md:px-5 py-3",children:(0,t.jsx)("div",{className:"mx-auto max-w-2xl relative",children:(0,t.jsxs)("div",{className:(0,o.cn)("relative flex flex-col rounded-xl border bg-background/60 transition-colors duration-200","focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",ep&&"opacity-50",sx&&"border-ring ring-3 ring-ring/50"),onDragEnter:sy,onDragLeave:sk,onDragOver:sw,onDrop:sb,children:[sx&&(0,t.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-background/80 border-2 border-dashed border-ring pointer-events-none",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),ty&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex items-start gap-2",children:[(0,t.jsx)(P,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[ty.slice(0,120),ty.length>120?"...":""]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>tk(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)($.X,{className:"size-3.5"})})]}),(0,t.jsx)(O,{isOpen:t6.isOpen,relatedAgents:t6.relatedAgents,otherAgents:t6.otherAgents,selectedIndex:t6.selectedIndex,onSelect:t6.selectAgent,anchorPos:t6.anchorPos}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{"aria-hidden":!0,className:"mention-backdrop absolute inset-0 px-3.5 py-2.5 text-base chat-input-line-height whitespace-pre-wrap wrap-break-word pointer-events-none overflow-y-auto thin-scrollbar",dangerouslySetInnerHTML:{__html:eu?U(eu.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),j).replace(/<mention[^>]*>/g,'<span class="mention-highlight">').replace(/<\/mention>/g,"</span>")+(eu.endsWith("\n")?"\n":""):""}}),(0,t.jsx)("textarea",{ref:t4,value:eu,onChange:e=>{em(e.target.value),to(e.target.selectionStart),requestAnimationFrame(()=>{let t=e.target.previousElementSibling;t&&(t.scrollTop=e.target.scrollTop)})},onKeyDown:e=>{!t6.handleMentionKeyDown(e)&&("Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),s_()))},onPaste:sN,onKeyUp:e=>to(e.target.selectionStart),onClick:e=>to(e.target.selectionStart),onSelect:e=>to(e.target.selectionStart),onScroll:e=>{let t=e.target.previousElementSibling;t&&(t.scrollTop=e.target.scrollTop)},placeholder:sD?"Type a follow-up...":"Type a message...",rows:1,disabled:ep,className:(0,o.cn)("relative field-sizing-content w-full resize-none bg-transparent px-3.5 py-2.5 text-base chat-input-line-height outline-none","placeholder:text-muted-foreground disabled:cursor-not-allowed","min-h-9.5 max-h-50 thin-scrollbar","caret-foreground textarea-text-hidden")})]}),ta.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pb-1",children:ta.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground",children:[(0,t.jsx)(F.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-30",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground/60",children:(0,X.formatSize)(e.size)}),(0,t.jsx)("button",{type:"button",onClick:()=>sp(s),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,t.jsx)($.X,{className:"size-3"})})]},`${e.name}-${s}`))}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-2 pb-2 pt-0.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[!el&&(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{render:e=>(0,t.jsx)("span",{...e,className:(0,o.cn)("inline-flex",e.className),children:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onClick:sF,disabled:sA||!ei||!sR||sD,className:"rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200",children:sA?(0,t.jsx)(g.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(z,{className:"size-3.5"})})})}),(0,t.jsx)(E.TooltipContent,{side:"top",children:sD?"Wait for the task to finish":sR?"Take a nap":`${st} is well-rested and ready to go`})]}),(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsxs)(E.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{eO("agent"),eq(!0)},className:"relative rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:[(0,t.jsx)(R,{className:"size-3.5"}),tF.length>0&&(0,t.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex size-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-medium text-primary-foreground",children:tF.length})]}),(0,t.jsx)(E.TooltipContent,{side:"top",children:"Artifacts"})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("input",{ref:t3,type:"file",multiple:!0,className:"hidden",onChange:sh}),(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onPointerDown:e=>e.preventDefault(),onClick:()=>t3.current?.click(),disabled:ep,className:"rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,t.jsx)(B.Paperclip,{className:"size-3.5"})}),(0,t.jsx)(E.TooltipContent,{side:"top",children:"Attach files"})]}),tz&&(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onPointerDown:e=>e.preventDefault(),onClick:tR,disabled:ep,className:(0,o.cn)("rounded-lg transition-colors duration-200",tA?"text-red-500 hover:text-red-600 bg-red-500/10":"text-muted-foreground/60 hover:text-foreground")}),children:(0,t.jsx)(L,{className:(0,o.cn)("size-3.5",tA&&"animate-pulse")})}),(0,t.jsx)(E.TooltipContent,{side:"top",children:tA?"Stop recording":"Voice input"})]}),!sD||eu.trim()||ep?(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:s_,disabled:!eu.trim()||ep,className:(0,o.cn)("rounded-lg transition-opacity duration-200",!eu.trim()&&"opacity-40")}),children:ep?(0,t.jsx)(g.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(A.ArrowUp,{className:"size-3.5"})}),(0,t.jsx)(E.TooltipContent,{side:"top",children:"Send"})]}):(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:sC,disabled:ef,className:"rounded-lg bg-red-500/10 text-red-500 hover:bg-red-500/20 transition-colors duration-200"}),children:ef?(0,t.jsx)(g.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(q.Square,{className:"size-3.5 fill-current"})}),(0,t.jsx)(E.TooltipContent,{side:"top",children:"Stop task"})]})]})]})]})})}),(0,t.jsx)(X.ArtifactSheet,{open:eB,onOpenChange:e=>{eq(e),e||setTimeout(()=>{eW(null),eO(null)},300)},artifacts:tL,workspaceId:x,initialArtifact:e$,versionMap:tB,duplicateFilenames:tq}),(0,t.jsx)(J,{open:eV,onOpenChange:e=>{eU(e),e||setTimeout(()=>eY(null),300)},emailId:eX,workspaceId:x}),(0,t.jsx)(Q,{open:eK,onOpenChange:e=>{eJ(e),e||setTimeout(()=>eQ(null),300)},calendarEventId:eZ,workspaceId:x}),(0,t.jsx)(G.IssueSheet,{open:eG,onOpenChange:e=>{e0(e),e||setTimeout(()=>{e2(null),e3(null),te(null)},300)},agents:j,issue:e5?.issue??null,detail:e5?{messages:e5.messages,comments:e5.comments,artifacts:e5.artifacts,traceId:e5.issue.trace_id}:null,detailLoading:e4,activeTask:e9,traceTasks:e8,slug:v,workspaceId:x,width:tt,onWidthChange:ts,onUpdate:async(e,t)=>{try{let s=await (0,b.updateIssue)(x,e,t);e3(a=>a&&a.issue.id===e?{...a,issue:{...a.issue,...t,updated_at:s.updated_at}}:a)}catch(e){M.toast.error(e instanceof Error?e.message:"Failed to update issue")}},onStatusChange:async(e,t)=>{try{await (0,b.updateIssue)(x,e,{status:t}),e3(s=>s&&s.issue.id===e?{...s,issue:{...s.issue,status:t}}:s)}catch(e){M.toast.error(e instanceof Error?e.message:"Failed to update status")}},onCommented:()=>{e1&&sM(e1)},onArtifactClick:tH})]}):(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,859156,e=>{"use strict";var t=e.i(368075),n=e.i(298699),r=e.i(208020),a=e.i(880932),l=e.i(613349),s=e.i(355578),o=e.i(500324),i=e.i(186339),d=e.i(949035),c=e.i(222862),u=e.i(406963);let g=(0,u.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var h=e.i(64873);let m=(0,u.default)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);var x=e.i(224950);function f(e){let t=["bg-[oklch(0.78_0.08_60)] text-[oklch(0.25_0.05_60)]","bg-[oklch(0.80_0.07_120)] text-[oklch(0.25_0.05_120)]","bg-[oklch(0.80_0.06_220)] text-[oklch(0.25_0.05_220)]","bg-[oklch(0.80_0.07_30)] text-[oklch(0.25_0.05_30)]","bg-[oklch(0.80_0.06_280)] text-[oklch(0.25_0.05_280)]","bg-[oklch(0.80_0.07_160)] text-[oklch(0.25_0.05_160)]"],n=0;for(let t=0;t<e.length;t++)n=31*n+e.charCodeAt(t)|0;return t[Math.abs(n)%t.length]}function p(e){let t=["bg-[oklch(0.62_0.13_60)] dark:bg-[oklch(0.72_0.11_60)]","bg-[oklch(0.62_0.12_120)] dark:bg-[oklch(0.72_0.10_120)]","bg-[oklch(0.62_0.12_220)] dark:bg-[oklch(0.72_0.10_220)]","bg-[oklch(0.62_0.13_30)] dark:bg-[oklch(0.72_0.11_30)]","bg-[oklch(0.62_0.12_280)] dark:bg-[oklch(0.72_0.10_280)]","bg-[oklch(0.62_0.12_160)] dark:bg-[oklch(0.72_0.10_160)]"],n=0;for(let t=0;t<e.length;t++)n=31*n+e.charCodeAt(t)|0;return t[Math.abs(n)%t.length]}function v(e){let t=["text-[oklch(0.52_0.14_60)] dark:text-[oklch(0.78_0.11_60)]","text-[oklch(0.52_0.13_120)] dark:text-[oklch(0.78_0.10_120)]","text-[oklch(0.52_0.13_220)] dark:text-[oklch(0.78_0.10_220)]","text-[oklch(0.52_0.14_30)] dark:text-[oklch(0.78_0.11_30)]","text-[oklch(0.52_0.13_280)] dark:text-[oklch(0.78_0.10_280)]","text-[oklch(0.52_0.13_160)] dark:text-[oklch(0.78_0.10_160)]"],n=0;for(let t=0;t<e.length;t++)n=31*n+e.charCodeAt(t)|0;return t[Math.abs(n)%t.length]}function b({events:e,agents:n,date:r,hiddenCount:a,open:s,onOpenChange:o,onSelectEvent:i}){let d=new Map;for(let e of n)d.set(e.id,e.name);let c=[...e].sort((e,t)=>new Date(e.scheduled_at).getTime()-new Date(t.scheduled_at).getTime()),u=r.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"});return(0,t.jsxs)(x.Popover,{open:s,onOpenChange:o,children:[(0,t.jsxs)(x.PopoverTrigger,{"aria-label":`${a} more event${1===a?"":"s"}`,onClick:e=>e.stopPropagation(),className:"w-full truncate rounded-sm px-1.5 py-0.5 text-left text-[10px] text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:["+",a," more"]}),(0,t.jsx)(x.PopoverContent,{className:"w-64",align:"start",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("p",{className:"px-1 pb-1 text-[11px] font-medium text-muted-foreground",children:u}),(0,t.jsx)("div",{className:"flex flex-col gap-1",children:c.map(e=>{let n=!!e.repeat_interval;return(0,t.jsxs)("button",{type:"button",onClick:()=>{o(!1),i(e)},className:"flex items-center gap-2 rounded-sm px-1.5 py-1 text-left text-[11px] font-medium text-foreground/85 hover:bg-accent/60 transition-colors",title:`${n?"Recurring · ":""}${e.title}${d.get(e.agent_id)?` — ${d.get(e.agent_id)}`:""}`,children:[n?(0,t.jsx)(m,{"aria-hidden":!0,className:(0,l.cn)("size-3 shrink-0",v(e.agent_id))}):(0,t.jsx)("span",{"aria-hidden":!0,className:(0,l.cn)("size-1.5 shrink-0 rounded-full",p(e.agent_id))}),(0,t.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground tabular-nums",children:new Date(e.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}),(0,t.jsx)("span",{className:"truncate",children:e.title})]},`${e.id}@${e.occurrence_at}`)})})]})})]})}var j=e.i(265481);function w({value:e,onChange:r,placeholder:a="Jump to date",min:s,className:o,ariaLabel:i="Pick a date",hideIcon:d=!1,onClear:c}){let[u,m]=(0,n.useState)(!1),f=e??new Date,[p,v]=(0,n.useState)(f.getFullYear()),[b,N]=(0,n.useState)(f.getMonth()),_=k(p,b),S=new Date,C=e=>{s&&e<y(s)||(r(e),m(!1))},M=e?e.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}):a;return(0,t.jsxs)(x.Popover,{open:u,onOpenChange:t=>{if(m(t),t){let t=e??new Date;v(t.getFullYear()),N(t.getMonth())}},children:[(0,t.jsxs)(x.PopoverTrigger,{"aria-label":i,className:(0,l.cn)("flex h-7 items-center gap-1.5 rounded-md border border-input bg-transparent px-2 text-xs outline-none transition-colors","hover:bg-accent hover:text-foreground","focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",e?"text-foreground":"text-muted-foreground",o),children:[!d&&(0,t.jsx)(j.CalendarDays,{className:"size-3.5 opacity-70"}),(0,t.jsx)("span",{className:"tabular-nums",children:M})]}),(0,t.jsxs)(x.PopoverContent,{align:"end",className:"w-64 p-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between pb-2",children:[(0,t.jsx)("button",{type:"button","aria-label":"Previous month",onClick:()=>{N(e=>0===e?11:e-1),0===b&&v(e=>e-1)},className:"flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,t.jsx)(g,{className:"size-3.5"})}),(0,t.jsx)("span",{className:"text-xs font-medium tabular-nums",children:new Date(p,b,1).toLocaleDateString(void 0,{month:"long",year:"numeric"})}),(0,t.jsx)("button",{type:"button","aria-label":"Next month",onClick:()=>{N(e=>11===e?0:e+1),11===b&&v(e=>e+1)},className:"flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,t.jsx)(h.ChevronRight,{className:"size-3.5"})})]}),(0,t.jsx)("div",{className:"grid grid-cols-7 pb-1 text-[10px] text-muted-foreground",children:["S","M","T","W","T","F","S"].map((e,n)=>(0,t.jsx)("div",{className:"flex h-6 items-center justify-center font-medium",children:e},n))}),(0,t.jsx)("div",{className:"grid grid-cols-7 gap-0.5",children:_.map((n,r)=>{let a=D(S,n.date),o=!!e&&D(e,n.date),i=!!s&&n.date<y(s);return(0,t.jsx)("button",{type:"button",disabled:i,onClick:()=>C(n.date),"aria-pressed":o,className:(0,l.cn)("flex h-7 w-full items-center justify-center rounded text-[11px] tabular-nums transition-colors outline-none","focus-visible:ring-2 focus-visible:ring-ring/60",!n.inMonth&&"text-muted-foreground/50",n.inMonth&&!o&&"hover:bg-accent",a&&!o&&"text-foreground font-medium ring-1 ring-inset ring-border",o&&"bg-foreground text-background font-medium",i&&"opacity-30 cursor-not-allowed hover:bg-transparent"),children:n.date.getDate()},r)})}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 pt-2 mt-1 border-t border-border/50",children:[c&&e?(0,t.jsx)("button",{type:"button",onClick:()=>{c(),m(!1)},className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Clear"}):(0,t.jsx)("span",{"aria-hidden":!0}),(0,t.jsx)("button",{type:"button",onClick:()=>C(new Date),className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Today"})]})]})]})}function y(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function k(e,t){let n=new Date(e,t,1).getDay(),r=[];for(let a=0;a<42;a++){let l=new Date(e,t,1-n+a);r.push({date:l,inMonth:l.getMonth()===t})}return r}function N(e){let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${r}`}function D(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function _({year:e,month:n,events:r,agents:a,loading:s,focusedDate:o,openPopoverKey:d,onPopoverChange:c,onPrev:u,onNext:x,onJumpToToday:f,onJumpToDate:j,onSelectDay:y,onSelectEvent:S,headerExtras:C}){let M=k(e,n),$=new Date(e,n,1).toLocaleDateString(void 0,{month:"long",year:"numeric"}),T=new Map;for(let e of r){let t=N(new Date(e.scheduled_at));T.has(t)||T.set(t,[]),T.get(t).push(e)}let F=new Map;for(let e of a)F.set(e.id,e.name);let E=new Date,z=function(e,t,n=new Date){return n.getFullYear()===e&&n.getMonth()===t}(e,n,E);return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("h2",{className:"text-sm font-medium tabular-nums",children:$})}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[C,(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("button",{type:"button","aria-label":"Previous month",onClick:u,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,t.jsx)(g,{className:"size-4"})}),(0,t.jsx)(i.Button,{variant:"outline",size:"sm",onClick:f,disabled:z,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,t.jsx)("button",{type:"button","aria-label":"Next month",onClick:x,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,t.jsx)(h.ChevronRight,{className:"size-4"})})]}),(0,t.jsx)(w,{value:o,onChange:j,ariaLabel:"Jump to date"})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-7 text-[11px] text-muted-foreground",children:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(e=>(0,t.jsx)("div",{className:"px-2 py-1 font-medium",children:e},e))}),(0,t.jsxs)("div",{className:"relative",children:[s&&(0,t.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden rounded-t-lg",children:(0,t.jsx)("div",{className:"h-full w-1/3 animate-[calendar-progress_1.2s_ease-in-out_infinite] bg-foreground/40"})}),(0,t.jsx)("div",{role:"grid","aria-label":`Calendar ${$}`,"aria-busy":s||void 0,className:(0,l.cn)("grid grid-cols-7 gap-px rounded-lg border border-border/50 bg-border/40 overflow-hidden transition-opacity",s&&"opacity-70"),"data-testid":"calendar-month-grid",children:M.map((e,n)=>{let r=N(e.date),s=T.get(r)??[],i=D(E,e.date),u=D(o,e.date),g=Math.max(0,s.length-3);return(0,t.jsxs)("div",{role:"gridcell","data-date":r,"data-focused":u?"true":void 0,"aria-current":i?"date":void 0,tabIndex:u?0:-1,onClick:()=>y(e.date),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&t.target===t.currentTarget&&(t.preventDefault(),y(e.date))},className:(0,l.cn)("group flex min-h-24 flex-col gap-1 p-2 text-left transition-colors bg-background outline-none cursor-pointer",!e.inMonth&&"bg-muted/40 text-muted-foreground",u&&"ring-2 ring-inset ring-ring/60 relative z-10"),children:[(0,t.jsx)("div",{className:"flex items-center justify-between",children:(0,t.jsx)("span",{className:(0,l.cn)("text-[11px] tabular-nums",i&&"flex size-5 items-center justify-center rounded-full bg-foreground text-background font-medium"),children:e.date.getDate()})}),(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[s.slice(0,3).map(e=>{let n=!!e.repeat_interval;return(0,t.jsxs)("span",{role:"button",tabIndex:-1,onClick:t=>{t.stopPropagation(),S(e)},onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.stopPropagation(),S(e))},className:"flex items-center gap-1.5 rounded-sm px-1 py-0.5 text-[10px] font-medium text-foreground/85 hover:bg-accent/60 transition-colors cursor-pointer",title:`${n?"Recurring · ":""}${e.title}${F.get(e.agent_id)?` — ${F.get(e.agent_id)}`:""}`,children:[n?(0,t.jsx)(m,{"aria-hidden":!0,className:(0,l.cn)("size-2.5 shrink-0",v(e.agent_id))}):(0,t.jsx)("span",{"aria-hidden":!0,className:(0,l.cn)("size-1.5 shrink-0 rounded-full",p(e.agent_id))}),(0,t.jsx)("span",{className:"truncate",children:e.title}),null!=e.collapsed_count&&e.collapsed_count>1&&(0,t.jsxs)("span",{className:"shrink-0 text-[9px] text-muted-foreground",children:["×",e.collapsed_count]})]},`${e.id}@${e.occurrence_at}`)}),g>0&&(0,t.jsx)(b,{date:e.date,hiddenCount:g,events:s,agents:a,open:d===r,onOpenChange:e=>c(e?r:null),onSelectEvent:S})]})]},n)})})]})]})}var S=e.i(728886);let C=/^(\d+)(min|hour|day|week|month)$/;function M(e){let t=C.exec(e);if(!t)return null;let n=parseInt(t[1],10);return n<1?null:{count:n,unit:t[2]}}let $={min:["minute","minutes"],hour:["hour","hours"],day:["day","days"],week:["week","weeks"],month:["month","months"]},T=new Set(["min","hour","day","week","month"]),F=["min","hour","day","week","month"],E=[{value:"1hour",label:"Every hour"},{value:"1day",label:"Every day"},{value:"1week",label:"Every week"},{value:"1month",label:"Every month"}];function z({events:e,agents:n,loading:r,onSelectEvent:a}){let s=function(e){let t=new Map;for(let n of e){let e=new Date(n.scheduled_at),r=N(e);if(!t.has(r)){let n=new Date(e.getFullYear(),e.getMonth(),e.getDate());t.set(r,{day:n,items:[]})}t.get(r).items.push(n)}let n=[...t.values()].sort((e,t)=>e.day.getTime()-t.day.getTime());for(let e of n)e.items.sort((e,t)=>new Date(e.scheduled_at).getTime()-new Date(t.scheduled_at).getTime());return n}(e),o=new Map;for(let e of n)o.set(e.id,e.name);let i=new Date;return r&&0===e.length?(0,t.jsx)("div",{className:"flex flex-col gap-4",children:Array.from({length:4}).map((e,n)=>(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(S.Skeleton,{className:"h-3 w-24"}),Array.from({length:2}).map((e,n)=>(0,t.jsx)(S.Skeleton,{className:"h-8 w-full rounded-md"},n))]},n))}):0===s.length?(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center py-12",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"No events in view."}),(0,t.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Switch to month view or create a new event above."})]})}):(0,t.jsx)("div",{className:"flex flex-col gap-4","data-testid":"calendar-agenda",children:s.map(e=>{let n=i.getFullYear()===e.day.getFullYear()&&i.getMonth()===e.day.getMonth()&&i.getDate()===e.day.getDate();return(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("h3",{className:(0,l.cn)("sticky top-0 z-10 py-1 text-[11px] font-medium text-muted-foreground",n&&"text-foreground"),children:[e.day.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}),n&&(0,t.jsx)("span",{className:"ml-2 rounded-full bg-foreground text-background px-1.5 py-0.5 text-[10px]",children:"Today"})]}),(0,t.jsx)("ul",{className:"flex flex-col gap-1",children:e.items.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>a(e),className:"flex w-full items-center gap-3 rounded-md border border-border/50 bg-background px-3 py-2 text-left transition-colors hover:bg-accent",children:[(0,t.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground tabular-nums w-16",children:new Date(e.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}),(0,t.jsx)("span",{className:(0,l.cn)("shrink-0 rounded-sm px-1.5 py-0.5 text-[10px] font-medium",f(e.agent_id)),children:o.get(e.agent_id)??e.agent_id}),(0,t.jsx)("span",{className:"flex-1 truncate text-sm",children:e.title}),e.repeat_interval&&(0,t.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:function(e){let t=M(e);if(!t)return e;let{count:n,unit:r}=t;return 1===n?`Every ${$[r][0]}`:`Every ${n} ${$[r][1]}`}(e.repeat_interval)}),null!=e.collapsed_count&&e.collapsed_count>1&&(0,t.jsxs)("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:["× ",e.collapsed_count," today"]})]})},`${e.id}@${e.occurrence_at}`))})]},N(e.day))})})}function Y(e){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate());return t.setDate(t.getDate()-t.getDay()),t}function P(e){let t,n=Y(e),r=((t=new Date(Y(e))).setDate(t.getDate()+6),t.setHours(23,59,59,999),t);return{from:n.toISOString(),to:r.toISOString()}}let L=Array.from({length:24},(e,t)=>t);function A({weekStart:e,events:r,agents:a,loading:s,focusedDate:o,onPrevWeek:d,onNextWeek:c,onJumpToToday:u,onJumpToDate:m,onSelectSlot:x,onSelectEvent:p,headerExtras:v}){let b,j,y,k,_=(0,n.useRef)(null),C=(0,n.useRef)(!1),M=new Date,$=new Date(e);$.setDate($.getDate()+6);let T=(b=e.toLocaleDateString("en-US",{month:"short"}),j=$.toLocaleDateString("en-US",{month:"short"}),y=e.getFullYear(),y!==(k=$.getFullYear())?`${b} ${e.getDate()}, ${y}\u2013${j} ${$.getDate()}, ${k}`:b!==j?`${b} ${e.getDate()}\u2013${j} ${$.getDate()}, ${k}`:`${b} ${e.getDate()}\u2013${$.getDate()}, ${y}`),F=M>=e&&M<=new Date($.getFullYear(),$.getMonth(),$.getDate(),23,59,59,999),E=(0,n.useMemo)(()=>{let t=[];for(let n=0;n<7;n++){let r=new Date(e);r.setDate(e.getDate()+n),t.push(r)}return t},[e]),z=(0,n.useMemo)(()=>{let e=new Map;for(let t of r){let n=N(new Date(t.scheduled_at));e.has(n)||e.set(n,[]),e.get(n).push(t)}return e},[r]),Y=(0,n.useMemo)(()=>{let e=new Map;for(let[t,n]of z)e.set(t,function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>new Date(e.scheduled_at).getTime()-new Date(t.scheduled_at).getTime()),n=[],r=[t[0]],a=new Date(t[0].scheduled_at).getTime()+18e5;for(let e=1;e<t.length;e++){let l=new Date(t[e].scheduled_at).getTime();if(l<a){r.push(t[e]);let n=l+18e5;n>a&&(a=n)}else n.push(r),r=[t[e]],a=l+18e5}n.push(r);let l=[];for(let e of n){let t=e.length;for(let n=0;n<e.length;n++)l.push({event:e[n],columnIndex:n,columnCount:t})}return l}(n));return e},[z]),P=(0,n.useMemo)(()=>{let e=new Map;for(let t of a)e.set(t.id,t.name);return e},[a]);(0,n.useEffect)(()=>{if(C.current||!_.current)return;let e=Math.max(0,(new Date().getHours()-1)*48);_.current.scrollTop=e,C.current=!0},[]);let H=(0,n.useMemo)(()=>{let e=new Date;return e.getHours()+e.getMinutes()/60},[]);return s&&0===r.length?(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,t.jsx)(S.Skeleton,{className:"h-5 w-48"}),(0,t.jsx)(S.Skeleton,{className:"h-7 w-32"})]}),(0,t.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[(0,t.jsxs)("div",{className:"grid grid-cols-[3.5rem_repeat(7,1fr)] border-b border-border/30 shrink-0",children:[(0,t.jsx)("div",{className:"h-8"}),Array.from({length:7}).map((e,n)=>(0,t.jsx)(S.Skeleton,{className:"h-5 mx-2 my-1.5"},n))]}),(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:Array.from({length:12}).map((e,n)=>(0,t.jsxs)("div",{className:"grid grid-cols-[3.5rem_repeat(7,1fr)] border-b border-border/10",style:{height:48},children:[(0,t.jsx)(S.Skeleton,{className:"h-3 w-8 mx-1 my-2"}),Array.from({length:7}).map((e,r)=>(0,t.jsx)("div",{className:"relative",children:n%4==r%3&&(0,t.jsx)(S.Skeleton,{className:"absolute left-1 right-1 top-2 rounded-sm",style:{height:24}})},r))]},n))})]})]}):(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,t.jsx)("h2",{className:"text-sm font-medium tabular-nums",children:T}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[v,(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("button",{type:"button","aria-label":"Previous week",onClick:d,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,t.jsx)(g,{className:"size-4"})}),(0,t.jsx)(i.Button,{variant:"outline",size:"sm",onClick:u,disabled:F,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,t.jsx)("button",{type:"button","aria-label":"Next week",onClick:c,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,t.jsx)(h.ChevronRight,{className:"size-4"})})]}),(0,t.jsx)(w,{value:o,onChange:m,ariaLabel:"Jump to date"})]})]}),(0,t.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[s&&(0,t.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden rounded-t-lg",children:(0,t.jsx)("div",{className:"h-full w-1/3 animate-[calendar-progress_1.2s_ease-in-out_infinite] bg-foreground/40"})}),(0,t.jsxs)("div",{role:"grid","aria-label":`Week of ${T}`,"aria-busy":s||void 0,className:(0,l.cn)("flex flex-1 flex-col min-h-0 transition-opacity",s&&"opacity-70"),children:[(0,t.jsxs)("div",{role:"row",className:"sticky top-0 z-10 grid grid-cols-[3.5rem_repeat(7,1fr)] border-b border-border/30 bg-background",children:[(0,t.jsx)("div",{role:"columnheader",className:"h-8"}),E.map(e=>{let n=D(e,M);return(0,t.jsx)("div",{role:"columnheader","aria-current":n?"date":void 0,className:(0,l.cn)("flex items-center justify-center h-8 text-xs font-medium",n?"text-foreground":"text-muted-foreground"),children:(0,t.jsx)("span",{className:(0,l.cn)("px-1.5 py-0.5 rounded-md",n&&"bg-foreground text-background"),children:function(e,t){if(t)return["S","M","T","W","T","F","S"][e.getDay()];let n=e.toLocaleDateString("en-US",{weekday:"short"});return`${n} ${e.getDate()}`}(e,!1)})},N(e))})]}),(0,t.jsx)("div",{ref:_,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar",children:(0,t.jsxs)("div",{className:"relative grid grid-cols-[3.5rem_repeat(7,1fr)]",children:[(0,t.jsx)("div",{role:"rowheader",className:"relative",children:L.map(e=>{var n;return(0,t.jsx)("div",{className:"flex items-start justify-end pr-2 text-[10px] text-muted-foreground tabular-nums",style:{height:48},children:(0,t.jsx)("span",{className:"-mt-1.5",children:0===e?"":(n=e,`${String(n).padStart(2,"0")}:00`)})},e)})}),E.map(e=>{let n=N(e),r=D(e,M),a=Y.get(n)??[];return(0,t.jsxs)("div",{className:"relative border-l border-border/20",style:{height:1152},children:[L.map(n=>(0,t.jsx)("div",{className:"absolute inset-x-0 border-t border-border/15 cursor-pointer hover:bg-accent/30 transition-colors",style:{top:48*n,height:48},onClick:()=>x(e,n)},n)),r&&(0,t.jsxs)("div",{className:"absolute inset-x-0 z-10 pointer-events-none",style:{top:48*H},children:[(0,t.jsx)("div",{className:"h-px bg-foreground/40"}),(0,t.jsx)("div",{className:"absolute -left-0.5 -top-0.75 size-1.75 rounded-full bg-foreground/40"})]}),a.map(({event:e,columnIndex:n,columnCount:r})=>{let a,s=(a=new Date(e.scheduled_at)).getHours()+a.getMinutes()/60,o=100/r,i=P.get(e.agent_id),d=new Date(e.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1});return(0,t.jsxs)("button",{type:"button",role:"button","aria-label":`${e.title} at ${d}${i?` \u2014 ${i}`:""}`,onClick:t=>{t.stopPropagation(),p(e)},className:(0,l.cn)("absolute rounded-sm px-1.5 text-[10px] font-medium truncate text-left transition-colors hover:opacity-80 cursor-pointer",f(e.agent_id)),style:{top:48*s,height:24,left:`${n*o}%`,width:`calc(${o}% - 2px)`,marginLeft:1,lineHeight:"24px"},title:`${e.title}${i?` \u2014 ${i}`:""}`,children:[e.title,null!=e.collapsed_count&&e.collapsed_count>1&&(0,t.jsxs)("span",{className:"ml-0.5 opacity-70",children:["×",e.collapsed_count]})]},`${e.id}@${e.occurrence_at}`)})]},n)})]})})]})]})]})}function H({view:e,onChange:n}){return(0,t.jsx)("div",{role:"radiogroup","aria-label":"Calendar view",className:"inline-flex items-center rounded-md border border-border bg-background p-0.5",children:["month","week","agenda"].map(r=>{let a=e===r;return(0,t.jsx)("button",{type:"button",role:"radio","aria-checked":a,onClick:()=>n(r),className:(0,l.cn)("h-6 px-2.5 rounded text-xs font-medium transition-colors capitalize",a?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:r},r)})})}function R({agents:e,selected:n,onToggle:r}){return(0,t.jsx)("div",{className:"flex min-h-6 flex-wrap items-center gap-1.5",children:0===e.length?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(S.Skeleton,{className:"h-6 w-20 rounded-full"}),(0,t.jsx)(S.Skeleton,{className:"h-6 w-24 rounded-full"}),(0,t.jsx)(S.Skeleton,{className:"h-6 w-16 rounded-full"})]}):e.map(e=>{let a=n.has(e.id);return(0,t.jsxs)("button",{type:"button",onClick:()=>r(e.id),className:(0,l.cn)("flex h-6 items-center gap-1.5 rounded-full px-2.5 text-[11px] font-medium transition-colors",a?"bg-foreground text-background":"bg-transparent text-muted-foreground border border-border hover:bg-accent"),children:[(0,t.jsx)("span",{className:(0,l.cn)("size-2 rounded-full",f(e.id).split(" ")[0])}),e.name]},e.id)})})}var O=e.i(332680),I=e.i(779646),B=e.i(740513);let U=(0,u.default)("calendar-off",[["path",{d:"M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18",key:"16swn3"}],["path",{d:"M21 15.5V6a2 2 0 0 0-2-2H9.5",key:"yhw86o"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h7",key:"1wap6i"}],["path",{d:"M21 10h-5.5",key:"quycpq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var K=e.i(430744),q=e.i(937091),J=e.i(313101);function W(e){return String(e).padStart(2,"0")}function V(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}function X({value:e,onChange:r,className:a,ariaLabel:s="Pick a time",step:o=30,iconOnly:i=!1}){let[d,c]=(0,n.useState)(!1),u=(0,n.useRef)(null),g=function(e){let t=[];for(let n=0;n<1440;n+=e)t.push(`${W(Math.floor(n/60))}:${W(n%60)}`);return t}(o);return(0,n.useEffect)(()=>{if(!d)return;let e=setTimeout(()=>{let e=u.current?.querySelector('[data-selected="true"]');e?.scrollIntoView({block:"center"})},0);return()=>clearTimeout(e)},[d]),(0,t.jsxs)(x.Popover,{open:d,onOpenChange:c,children:[(0,t.jsxs)(x.PopoverTrigger,{"aria-label":s,className:(0,l.cn)(i?"inline-flex size-8 shrink-0 items-center justify-center rounded-lg border border-input bg-transparent text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50":"flex h-7 items-center gap-1.5 rounded-md border border-input bg-transparent px-2 text-xs text-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",a),children:[(0,t.jsx)(J.Clock,{className:i?"size-3.5":"size-3.5 opacity-70"}),!i&&(0,t.jsx)("span",{className:"tabular-nums",children:V(e)})]}),(0,t.jsx)(x.PopoverContent,{align:"start",className:"w-36 p-1",children:(0,t.jsx)("div",{ref:u,className:"flex max-h-60 flex-col overflow-y-auto scrollbar-none",role:"listbox",children:g.map(n=>{let a=n===e;return(0,t.jsx)("button",{type:"button",role:"option","aria-selected":a,"data-selected":a,onClick:()=>{r(n),c(!1)},className:(0,l.cn)("flex h-7 shrink-0 items-center rounded px-2 text-[11px] tabular-nums transition-colors outline-none","focus-visible:bg-accent",a?"bg-foreground text-background font-medium":"text-foreground hover:bg-accent"),children:V(n)},n)})})})]})}function G(e){return String(e).padStart(2,"0")}function Q(e,t){let n=/^(\d{2}):(\d{2})$/.exec(t),r=n?Number(n[1]):e.getHours(),a=n?Number(n[2]):e.getMinutes(),l=new Date(e);return l.setHours(r,a,0,0),l}function Z(e){return`${e.getFullYear()}-${G(e.getMonth()+1)}-${G(e.getDate())}`}function ee(e){return`${G(e.getHours())}:${G(e.getMinutes())}`}function et(e){return e?.trim()||""}let en="h-7 border-0 bg-transparent px-1.5 text-sm text-foreground hover:bg-accent transition-colors -ml-1.5",er=(0,l.cn)(en,"rounded-md outline-none focus-visible:bg-accent focus-visible:ring-0 appearance-none pr-6");function ea({icon:e,children:n}){return(0,t.jsxs)("div",{className:"group flex items-center gap-2",children:[(0,t.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1",children:n})]})}function el({open:e,onOpenChange:r,onConfirm:a,loading:s,title:o,description:d,confirmLabel:c,loadingLabel:u,confirmVariant:g="default"}){let[h,m]=(0,n.useState)("this");return(0,n.useEffect)(()=>{e&&m("this")},[e]),(0,t.jsx)(I.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(I.DialogContent,{showCloseButton:!1,children:[(0,t.jsxs)(I.DialogHeader,{children:[(0,t.jsx)(I.DialogTitle,{children:o}),(0,t.jsx)(I.DialogDescription,{children:d})]}),(0,t.jsx)("div",{className:"flex flex-col gap-1.5 py-1",children:[{value:"this",label:"This event only"},{value:"following",label:"This and following events"}].map(e=>{let n=h===e.value;return(0,t.jsxs)("button",{type:"button",onClick:()=>m(e.value),className:(0,l.cn)("flex items-center gap-2 rounded-md border px-3 py-2 text-left text-sm transition-colors",n?"border-ring bg-accent/40":"border-border/60 hover:bg-accent/30"),children:[(0,t.jsx)("span",{className:(0,l.cn)("inline-flex size-4 items-center justify-center rounded-full border",n?"border-foreground":"border-border"),"aria-hidden":!0,children:n&&(0,t.jsx)("span",{className:"size-2 rounded-full bg-foreground"})}),(0,t.jsx)("span",{children:e.label})]},e.value)})}),(0,t.jsxs)(I.DialogFooter,{children:[(0,t.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>r(!1),disabled:s,children:"Cancel"}),(0,t.jsx)(i.Button,{size:"sm",variant:g,onClick:()=>a(h),disabled:s,children:s?u:c})]})]})})}function es({open:e,onOpenChange:r,agents:s,event:o,defaultDate:d,defaultAgentId:c,submitting:u,saving:g,deleting:h,onCreate:x,onUpdate:f,onDelete:p}){let v=o?"edit":"create",[b,y]=(0,n.useState)(""),[k,N]=(0,n.useState)(""),[D,_]=(0,n.useState)(""),[S,C]=(0,n.useState)(new Date),[z,Y]=(0,n.useState)("09:00"),[P,L]=(0,n.useState)(!1),[A,H]=(0,n.useState)("1"),[R,I]=(0,n.useState)("day"),J=(0,n.useMemo)(()=>{if(!P)return"";let e=parseInt(A,10);return!e||e<1?"":`${e}${R}`},[P,A,R]),[W,V]=(0,n.useState)(null),[eo,ei]=(0,n.useState)(!1),[ed,ec]=(0,n.useState)(!1),eu=(0,n.useRef)(null),eg=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(e)if(o){let e=new Date(o.scheduled_at);y(o.agent_id),N(o.title),_(o.description??""),C(e),Y(ee(e));let t=M(o.repeat_interval??"");t?(L(!0),H(String(t.count)),I(t.unit)):(L(!1),H("1"),I("day")),V(o.repeat_stop_at?new Date(o.repeat_stop_at):null)}else y(c||s[0]?.id||""),N(""),_(""),C(d??new Date),Y(function(e,t=30){let n=Math.ceil((60*e.getHours()+e.getMinutes()+1)/t)*t,r=Math.floor(n/60)%24;return`${G(r)}:${G(n%60)}`}(new Date)),L(!1),H("1"),I("day"),V(null)},[e,o?.id]);let eh=(0,n.useMemo)(()=>{if(!o)return!0;let e=new Date(o.scheduled_at);return k.trim()!==o.title||et(D)!==et(o.description)||b!==o.agent_id||S.getFullYear()!==e.getFullYear()||S.getMonth()!==e.getMonth()||S.getDate()!==e.getDate()||z!==ee(e)||J!==(o.repeat_interval??"")||(W?Z(W):null)!==(o.repeat_stop_at?Z(new Date(o.repeat_stop_at)):null)},[b,k,D,S,z,J,W,o]);function em(){if(!b)return"Select an agent";if(!k.trim())return"Title is required";if(!/^([01]\d|2[0-3]):[0-5]\d$/.test(z))return"Time must be HH:MM in 24-hour format";if(P){let e=parseInt(A,10);if(!e||e<1)return"Repeat count must be a positive number"}if(W&&!J)return"Stop date requires a repeat interval";let e=Q(S,z);if(W){let t=new Date(W);if(t.setHours(23,59,59,999),t<e)return"Stop date must be on or after the first occurrence"}return null}let ex=async e=>{e.preventDefault();let t=em();if(t)return a.toast.error(t);let n=Q(S,z),r=D?.trim()||void 0;await x?.({agent_id:b,title:k.trim(),description:r,scheduled_at:n.toISOString(),repeat_interval:J||void 0,repeat_stop_date:W?Z(W):void 0})};function ef(){if(!o)return null;let e={},t=Q(S,z).toISOString(),n=k.trim();n!==o.title&&(e.title=n);let r=et(D);r!==et(o.description)&&(e.description=""===r?null:r),b!==o.agent_id&&(e.agent_id=b),t!==new Date(o.scheduled_at).toISOString()&&(e.scheduled_at=t),J!==(o.repeat_interval??"")&&(e.repeat_interval=""===J?null:J);let a=W?Z(W):null;return(a!==(o.repeat_stop_at?Z(new Date(o.repeat_stop_at)):null)&&(e.repeat_stop_date=a),void 0===e.title&&void 0===e.description&&void 0===e.agent_id&&void 0===e.scheduled_at&&void 0===e.repeat_interval&&void 0===e.repeat_stop_date)?null:e}let ep=async e=>{o&&await f?.(o,e)},ev=async()=>{if(!o)return;let e=em();if(e)return a.toast.error(e);let t=ef();if(t){if(o.repeat_interval)return void ei(!0);await ep(t)}},eb=async e=>{let t=ef();t&&(t.scope=e,"this"===e&&o?.occurrence_at&&(t.occurrence_at=o.occurrence_at),await ep(t)),ei(!1)},ej=e=>{"Enter"===e.key&&e.shiftKey&&(e.preventDefault(),e.stopPropagation(),"create"===v?eg.current?.requestSubmit():ev())},ew=(0,t.jsxs)("kbd",{"aria-hidden":!0,className:"mr-1 hidden sm:inline-flex items-center gap-0.5 font-sans font-medium leading-none opacity-60",children:[(0,t.jsx)("span",{children:"⇧"}),(0,t.jsx)("span",{children:"+"}),(0,t.jsx)("span",{children:"⏎"})]}),ey="edit"===v?k.trim()||"Untitled event":k.trim()||"New calendar event",ek=(0,n.useRef)(null),eN=e=>{e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)};(0,n.useEffect)(()=>{eN(ek.current)},[k]);let eD=(0,t.jsx)("textarea",{ref:e=>{ek.current=e,eN(e)},"aria-label":"Event title",value:k,onChange:e=>{N(e.target.value),eN(e.target)},onKeyDown:e=>{if("Enter"===e.key&&!e.shiftKey){let t;e.preventDefault(),t=eu.current?.querySelector('[contenteditable="true"]'),t?.focus()}},placeholder:"edit"===v?"Untitled event":"New event",autoFocus:"create"===v,rows:1,className:(0,l.cn)("w-full resize-none overflow-hidden rounded-none border-0 bg-transparent px-0 py-1 font-news text-2xl md:text-3xl font-medium leading-[1.2] tracking-tight","shadow-none outline-none focus-visible:border-0 focus-visible:ring-0 focus-visible:ring-offset-0","placeholder:text-muted-foreground/40 placeholder:font-normal")}),e_=(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(ea,{icon:(0,t.jsx)(K.User,{className:"size-3.5"}),children:(0,t.jsxs)("select",{"aria-label":"Agent",value:b,onChange:e=>y(e.target.value),className:er,children:[0===s.length&&(0,t.jsx)("option",{value:"",children:"No agents"}),s.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]})}),(0,t.jsx)(ea,{icon:(0,t.jsx)(j.CalendarDays,{className:"size-3.5"}),children:(0,t.jsx)(w,{value:S,onChange:e=>C(e),ariaLabel:"Event date",hideIcon:!0,className:en})}),(0,t.jsx)(ea,{icon:(0,t.jsx)(X,{value:z,onChange:Y,iconOnly:!0,ariaLabel:"Pick time slot",className:"inline-flex size-6 items-center justify-center rounded-md border-0 bg-transparent p-0 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground group-hover:bg-accent group-hover:text-foreground"}),children:(0,t.jsx)("input",{type:"text",inputMode:"numeric",pattern:"([01]\\d|2[0-3]):[0-5]\\d",maxLength:5,value:z,onChange:e=>Y(e.target.value),placeholder:"HH:MM","aria-label":"Event time (24-hour)",className:"h-7 w-12 border-0 bg-transparent px-0.5 text-sm tabular-nums text-foreground rounded-md outline-none focus-visible:ring-0"})}),(0,t.jsx)(ea,{icon:(0,t.jsx)(m,{className:"size-3.5"}),children:P?(0,t.jsxs)("div",{className:"-ml-1.5 flex items-center gap-0.5",children:[(0,t.jsx)("span",{className:"px-1 text-sm text-foreground",children:"Every"}),(0,t.jsx)("input",{type:"text",inputMode:"numeric","aria-label":"Repeat count",value:A,onChange:e=>{H(e.target.value.replace(/[^\d]/g,""))},onBlur:()=>{let e=parseInt(A,10);(!e||e<1)&&H("1")},maxLength:4,style:{width:`${Math.max(1,A.length)+1.5}ch`},className:"h-7 shrink-0 border-0 bg-transparent px-0 text-center text-sm tabular-nums text-foreground rounded-md outline-none hover:bg-accent focus-visible:bg-accent focus-visible:ring-0 transition-colors"}),(0,t.jsx)("select",{"aria-label":"Repeat unit",value:R,onChange:e=>{var t;t=e.target.value,T.has(t)&&I(e.target.value)},className:"h-7 border-0 bg-transparent px-1 text-center text-sm text-foreground rounded-md outline-none appearance-none hover:bg-accent focus-visible:bg-accent focus-visible:ring-0 transition-colors",children:F.map(e=>(0,t.jsx)("option",{value:e,children:1===(parseInt(A,10)||1)?$[e][0]:$[e][1]},e))}),(0,t.jsx)("button",{type:"button","aria-label":"Remove repeat",onClick:()=>{L(!1),H("1"),I("day"),V(null)},className:"inline-flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:(0,t.jsx)(q.X,{className:"size-3"})})]}):(0,t.jsxs)("select",{"aria-label":"Repeat",value:"",onChange:e=>{let t=e.target.value;if(t)if("__custom__"===t)L(!0),H("1"),I("day");else{let e=M(t);e&&(L(!0),H(String(e.count)),I(e.unit))}},className:er,children:[(0,t.jsx)("option",{value:"",children:"Does not repeat"}),E.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value)),(0,t.jsx)("option",{value:"__custom__",children:"Custom…"})]})}),J&&(0,t.jsx)(ea,{icon:(0,t.jsx)(U,{className:"size-3.5"}),children:(0,t.jsx)(w,{value:W,onChange:e=>V(e),onClear:()=>V(null),placeholder:"No end date",min:S,ariaLabel:"Stop date",hideIcon:!0,className:en})})]}),eS=(0,t.jsx)("div",{ref:eu,children:(0,t.jsx)(B.MarkdownEditor,{contentType:"markdown",value:D,onChange:_,placeholder:"Add a description…",className:"markdown",minHeight:"edit"===v?"10rem":"8rem",variant:"seamless",agents:s},o?.id??"new")});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(O.Sheet,{open:e,onOpenChange:r,children:(0,t.jsxs)(O.SheetContent,{className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,t.jsx)(O.SheetTitle,{className:"sr-only",children:ey}),"create"===v?(0,t.jsxs)("form",{ref:eg,onSubmit:ex,onKeyDownCapture:ej,className:"flex flex-1 flex-col min-h-0",children:[(0,t.jsxs)(O.SheetBody,{className:"flex flex-col gap-6 px-8 pt-10 pb-6",children:[eD,e_,eS]}),(0,t.jsxs)(O.SheetFooter,{children:[(0,t.jsx)(i.Button,{type:"button",variant:"outline",onClick:()=>r(!1),children:"Cancel"}),(0,t.jsx)(i.Button,{type:"submit",disabled:u||!s.length,children:u?"Creating...":(0,t.jsxs)(t.Fragment,{children:[ew,"Create event"]})})]})]}):(0,t.jsxs)("div",{onKeyDownCapture:ej,className:"flex flex-1 flex-col min-h-0",children:[(0,t.jsxs)(O.SheetBody,{className:"flex flex-col gap-6 px-8 pt-10 pb-6",children:[eD,e_,eS]}),(0,t.jsxs)(O.SheetFooter,{className:"sm:justify-between",children:[(0,t.jsx)(i.Button,{variant:"destructive",onClick:()=>{if(o){if(o.repeat_interval)return void ec(!0);p?.(o)}},disabled:h||g,children:h?"Deleting...":"Delete"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 sm:justify-end",children:[(0,t.jsx)(i.Button,{variant:"outline",onClick:()=>r(!1),disabled:g,children:"Cancel"}),(0,t.jsx)(i.Button,{onClick:ev,disabled:g||!eh,children:g?"Saving...":(0,t.jsxs)(t.Fragment,{children:[ew,"Save"]})})]})]})]})]})}),(0,t.jsx)(el,{open:eo,onOpenChange:ei,onConfirm:eb,loading:g,title:"Update recurring event",description:"How should this change apply?",confirmLabel:"Update",loadingLabel:"Saving..."}),(0,t.jsx)(el,{open:ed,onOpenChange:ec,onConfirm:e=>{o&&(p?.(o,{scope:e,occurrence_at:o.occurrence_at??void 0}),ec(!1))},loading:h,title:"Delete recurring event",description:"How much of the series should be removed?",confirmLabel:"Delete",loadingLabel:"Deleting...",confirmVariant:"destructive"})]})}function eo(e,t){let n=k(e,t),r=n[0].date,a=n[n.length-1].date,l=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0),s=new Date(a.getFullYear(),a.getMonth(),a.getDate(),23,59,59,999);return{from:l.toISOString(),to:s.toISOString()}}e.s(["default",0,function(){var e;let{workspaceId:u}=(0,o.useWorkspace)(),{agents:g}=(0,s.useAgentContext)(),h=(0,r.useRouter)(),m=(0,r.usePathname)(),x=(0,r.useSearchParams)(),f=new Date,p=Number(x.get("y"))||f.getFullYear(),v=x.has("m")?Number(x.get("m")):f.getMonth(),b="week"===(e=x.get("view"))?"week":"agenda"===e?"agenda":"month",[j,w]=(0,n.useState)(p),[y,k]=(0,n.useState)(v),[D,S]=(0,n.useState)(b),[C,M]=(0,n.useState)(()=>{let e=x.get("agents");return e?new Set(e.split(",").filter(Boolean)):new Set}),[$,T]=(0,n.useState)(()=>{let e=new Date;return e.getFullYear()===p&&e.getMonth()===v?e:new Date(p,v,1)}),[F,E]=(0,n.useState)(()=>"week"===b&&x.has("d")?Y(new Date(p,v,Number(x.get("d")))):Y(new Date)),[L,O]=(0,n.useState)(null),[I,B]=(0,n.useState)([]),[U,K]=(0,n.useState)(!0),[q,J]=(0,n.useState)(!1),[W,V]=(0,n.useState)(),[X,G]=(0,n.useState)(null),[Q,Z]=(0,n.useState)(!1),[ee,et]=(0,n.useState)(!1),[en,er]=(0,n.useState)(!1),[ea,el]=(0,n.useState)(null),ei=(0,n.useCallback)((e,t,n,r,a)=>{let l=new URLSearchParams;l.set("y",String(e)),l.set("m",String(t)),n.size>0&&l.set("agents",[...n].join(",")),"month"!==r&&l.set("view",r),"week"===r&&a&&l.set("d",String(a.getDate())),h.replace(`${m}?${l.toString()}`,{scroll:!1})},[m,h]),ed=(0,n.useCallback)(async()=>{let{from:e,to:t}="week"===D?P(F):eo(j,y);K(!0);try{let n=await (0,c.listCalendarEvents)(u,{from:e,to:t});B(n)}catch(e){a.toast.error(e instanceof Error?e.message:"Failed to load events")}finally{K(!1)}},[u,j,y,D,F]);(0,n.useEffect)(()=>{ed()},[ed]);let ec=(0,n.useMemo)(()=>0===C.size?I:I.filter(e=>C.has(e.agent_id)),[I,C]),eu=(0,n.useCallback)(()=>{let e=0===y?11:y-1,t=0===y?j-1:j;k(e),w(t),T(new Date(t,e,1)),ei(t,e,C,D)},[y,j,C,D,ei]),eg=(0,n.useCallback)(()=>{let e=11===y?0:y+1,t=11===y?j+1:j;k(e),w(t),T(new Date(t,e,1)),ei(t,e,C,D)},[y,j,C,D,ei]),eh=(0,n.useCallback)(()=>{let e=new Date(F);e.setDate(e.getDate()-7),E(e),T(e),ei(e.getFullYear(),e.getMonth(),C,"week",e)},[F,C,ei]),em=(0,n.useCallback)(()=>{let e=new Date(F);e.setDate(e.getDate()+7),E(e),T(e),ei(e.getFullYear(),e.getMonth(),C,"week",e)},[F,C,ei]),ex=e=>{G(e),Z(!0)},ef=(0,n.useCallback)(e=>{let t=e.getFullYear(),n=e.getMonth();if(w(t),k(n),T(e),"week"===D){let r=Y(e);E(r),ei(t,n,C,D,r)}else ei(t,n,C,D)},[C,D,ei]),ep=(0,n.useCallback)(()=>{let e=new Date;if("week"===D){let t=Y(e);E(t),T(e),ei(t.getFullYear(),t.getMonth(),C,"week",t)}else ef(e)},[ef,D,C,ei]),ev=(0,n.useCallback)(e=>{if(S(e),"week"===e){let t=Y($);E(t),ei(j,y,C,e,t)}else if("week"===D){let t=F.getFullYear(),n=F.getMonth();w(t),k(n),ei(t,n,C,e)}else ei(j,y,C,e)},[j,y,C,ei,$,D,F]),eb=async e=>{et(!0);try{let t=await (0,c.createCalendarEvent)(e,u),{from:n,to:r}="week"===D?P(F):eo(j,y),l=new Date(t.scheduled_at).getTime();l>=new Date(n).getTime()&&l<=new Date(r).getTime()&&B(e=>[...e,t]),J(!1),a.toast.success("Event created")}catch(e){a.toast.error(e instanceof Error?e.message:"Failed to create event")}finally{et(!1)}},ej=async(e,t)=>{er(!0);try{await (0,c.updateCalendarEvent)(e.id,t,u),await ed(),Z(!1),G(null),a.toast.success("Event updated")}catch(e){a.toast.error(e instanceof Error?e.message:"Failed to update event")}finally{er(!1)}},ew=async(e,t)=>{el(e.id);try{await (0,c.deleteCalendarEvent)(e.id,u,t),t?.scope?await ed():B(t=>t.filter(t=>t.id!==e.id)),Z(!1),G(null),a.toast.success("Event deleted")}catch(e){a.toast.error(e instanceof Error?e.message:"Failed to delete event")}finally{el(null)}},ey=(0,n.useRef)(q),ek=(0,n.useRef)(Q);(0,n.useEffect)(()=>{ey.current=q},[q]),(0,n.useEffect)(()=>{ek.current=Q},[Q]);let eN=(0,n.useCallback)(e=>{let t=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,n=0;for(let e of ec){let r=new Date(e.scheduled_at);`${r.getFullYear()}-${String(r.getMonth()+1).padStart(2,"0")}-${String(r.getDate()).padStart(2,"0")}`===t&&n++}return Math.max(0,n-3)},[ec]);return(0,n.useEffect)(()=>{let e=e=>{if(ey.current||ek.current||function(e){if(!e||"string"!=typeof e.tagName)return!1;let t=e.tagName;return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t||!!e.isContentEditable}(e.target))return;if("t"===e.key){e.preventDefault();let t=new Date;if("week"===D){let e=Y(t);E(e),T(t),ei(e.getFullYear(),e.getMonth(),C,"week",e)}else t.getFullYear()!==j||t.getMonth()!==y?ef(t):T(t);return}if("n"===e.key){e.preventDefault(),V($),J(!0);return}if("month"!==D&&"week"!==D)return;if("week"===D){if("ArrowLeft"===e.key){e.preventDefault();let t=new Date($);t.setDate(t.getDate()-1),T(t);let n=Y(t);n.getTime()!==F.getTime()&&(E(n),ei(n.getFullYear(),n.getMonth(),C,"week",n));return}if("ArrowRight"===e.key){e.preventDefault();let t=new Date($);t.setDate(t.getDate()+1),T(t);let n=Y(t);n.getTime()!==F.getTime()&&(E(n),ei(n.getFullYear(),n.getMonth(),C,"week",n));return}if("ArrowUp"===e.key){e.preventDefault();let t=new Date($);t.setHours(t.getHours()-1),T(t);return}if("ArrowDown"===e.key){e.preventDefault();let t=new Date($);t.setHours(t.getHours()+1),T(t)}return}let t=document.activeElement?.getAttribute("role")==="gridcell";if("Enter"===e.key){if(!t)return;e.preventDefault(),eN($)>0?O(`${$.getFullYear()}-${String($.getMonth()+1).padStart(2,"0")}-${String($.getDate()).padStart(2,"0")}`):(V($),J(!0));return}if(!t)return;let n=function(e,t){let n=new Date(e.getFullYear(),e.getMonth(),e.getDate());switch(t){case"ArrowLeft":return n.setDate(n.getDate()-1),n;case"ArrowRight":return n.setDate(n.getDate()+1),n;case"ArrowUp":return n.setDate(n.getDate()-7),n;case"ArrowDown":return n.setDate(n.getDate()+7),n;case"Home":return n.setDate(n.getDate()-n.getDay()),n;case"End":return n.setDate(n.getDate()+(6-n.getDay())),n;case"PageUp":{let e=0===n.getMonth()?n.getFullYear()-1:n.getFullYear(),t=(n.getMonth()-1+12)%12,r=new Date(e,t+1,0).getDate();return n.setFullYear(e,t,Math.min(n.getDate(),r)),n}case"PageDown":{let e=11===n.getMonth()?n.getFullYear()+1:n.getFullYear(),t=(n.getMonth()+1)%12,r=new Date(e,t+1,0).getDate();return n.setFullYear(e,t,Math.min(n.getDate(),r)),n}default:return null}}($,e.key);n&&(e.preventDefault(),n.getFullYear()===j&&n.getMonth()===y?T(n):ef(n))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[D,j,y,$,ef,eN,F,C,ei]),(0,n.useEffect)(()=>{if("month"!==D)return;let e=document.activeElement;if(!e||"gridcell"!==e.getAttribute("role"))return;let t=`[data-date="${N($)}"]`,n=document.querySelector(t);n?.focus()},[$,D,j,y]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-border/50 px-3 md:px-5 py-2.5 gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,t.jsx)("h1",{className:"text-sm font-medium",children:"Calendar"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground hidden md:block",children:"Schedule recurring and one-time tasks for your agents."})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(H,{view:D,onChange:ev}),(0,t.jsxs)(i.Button,{size:"sm",variant:"outline",onClick:()=>{V(void 0),J(!0)},disabled:0===g.length,children:[(0,t.jsx)(d.Plus,{className:"size-3.5"}),"New event"]})]})]}),(0,t.jsxs)("div",{className:(0,l.cn)("flex flex-1 flex-col gap-4 px-5 py-5","week"===D?"min-h-0 overflow-hidden":"overflow-y-auto"),children:[(0,t.jsx)(R,{agents:g,selected:C,onToggle:e=>{let t=new Set(C);t.has(e)?t.delete(e):t.add(e),M(t),ei(j,y,t,D,"week"===D?F:null)}}),"month"===D&&(0,t.jsx)(_,{year:j,month:y,events:ec,agents:g,loading:U,focusedDate:$,openPopoverKey:L,onPopoverChange:O,onPrev:eu,onNext:eg,onJumpToToday:ep,onJumpToDate:ef,onSelectDay:e=>{V(e),J(!0),T(e)},onSelectEvent:ex}),"week"===D&&(0,t.jsx)(A,{weekStart:F,events:ec,agents:g,loading:U,focusedDate:$,onPrevWeek:eh,onNextWeek:em,onJumpToToday:ep,onJumpToDate:ef,onSelectSlot:(e,t)=>{V(new Date(e.getFullYear(),e.getMonth(),e.getDate(),t)),J(!0)},onSelectEvent:ex}),"agenda"===D&&(0,t.jsx)(z,{events:ec,agents:g,loading:U,onSelectEvent:ex}),("month"===D||"week"===D)&&!U&&I.length>0&&0===ec.length&&(0,t.jsx)("p",{className:"text-center text-xs text-muted-foreground py-4",children:"No events for selected agents."})]}),(0,t.jsx)(es,{open:q,onOpenChange:J,agents:g,defaultDate:W,submitting:ee,onCreate:eb}),(0,t.jsx)(es,{event:X,agents:g,open:Q,onOpenChange:Z,onDelete:ew,onUpdate:ej,deleting:ea===X?.id,saving:en})]})}],859156)}]);
|