@alook/app 0.0.100 → 0.0.101
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/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/{0tvembqw.e82g.js → 01yvpio9kzobl.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0hyshwdxcbwbq.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0dhez0ocwb1sn.js → 0r775oyts5ozc.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/10rvnbe-gw6a7.js +3 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/10ux4o4nkn.sj.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/171xnnpyz4y3d.css +1 -0
- package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → P6QBCMByXCOFPEUBvhHF6}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → P6QBCMByXCOFPEUBvhHF6}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → P6QBCMByXCOFPEUBvhHF6}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → P6QBCMByXCOFPEUBvhHF6}/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 +3 -3
- 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/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/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/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/[turbopack]_runtime.js +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0r7fdlr._.js → [root-of-the-server]__05g0phj._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_02.xen~._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0.q_x36._.js → _06a692f._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0a8f3fa._.js → _0c-ma68._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0xhx.5_._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0wtsjmd._.js → _0~twhbc._.js} +1 -1
- 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]_calendar_page_tsx_01geiyd._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_home_home-page_tsx_0to84tv._.js +1 -37
- 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 +17 -53
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +90 -90
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/01mduafj8.t03.js +0 -37
- package/bundled/web/.open-next/assets/_next/static/chunks/051._099hez6h.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/09m73_4eia.5a.css +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/09tp3dnnhv6a0.js +0 -3
- /package/bundled/web/.open-next/assets/_next/static/{stPDLxY2tICyNcpCDMCz4 → P6QBCMByXCOFPEUBvhHF6}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{stPDLxY2tICyNcpCDMCz4 → P6QBCMByXCOFPEUBvhHF6}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{stPDLxY2tICyNcpCDMCz4 → P6QBCMByXCOFPEUBvhHF6}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → P6QBCMByXCOFPEUBvhHF6}/robots.txt.cache +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
module.exports=[831893,896393,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(752792),f=a.i(506180),g=a.i(626806);let h=["user_dm_message"],i=["user_dm_message"];function j(){return h}a.s(["INBOX_FILTER_LABELS",0,{user_dm_message:"DM",calendar_event:"Calendar",email_notification:"Email"},"INBOX_FILTER_TYPES",0,["user_dm_message","calendar_event","email_notification"],"MANDATORY_INBOX_TYPES",0,i,"getInboxFilterTypes",0,j,"setInboxFilterTypes",0,function(a){let b=[...a];for(let a of i)b.includes(a)||b.unshift(a);localStorage.setItem("inbox-filter-types",JSON.stringify(b))}],896393);let k=(0,c.createContext)(null),l={count:0,notificationToken:0,refresh:()=>{},decrement:()=>{}};a.s(["InboxCountProvider",0,function({children:a}){let{workspaceId:h}=(0,f.useWorkspace)(),{subscribeWs:i,agents:l}=(0,e.useAgentContext)(),[m,n]=(0,c.useState)(0),[o,p]=(0,c.useState)(0),q=(0,c.useRef)(null),r=(0,c.useRef)(null),s=(0,c.useRef)(l);(0,c.useEffect)(()=>{s.current=l});let t=(0,c.useCallback)(()=>{let a=j();(0,d.getInboxCount)(h,{types:a}).then(a=>{let b=q.current;if(q.current=a.count,n(a.count),null!==b&&a.count>b){p(a=>a+1);let a=r.current?s.current.find(a=>a.id===r.current):void 0;(0,g.sendTaskNotification)("completed",a?.name)}r.current=null}).catch(()=>{})},[h]),u=(0,c.useCallback)(()=>{n(a=>{let b=Math.max(0,a-1);return q.current=b,b})},[]);return(0,c.useEffect)(()=>{t()},[t]),(0,c.useEffect)(()=>i(a=>{"task.updated"===a.type&&("completed"===a.status||"failed"===a.status)&&(r.current=a.agentId,t())}),[i,t]),(0,c.useEffect)(()=>{let a=setInterval(t,6e4);return()=>clearInterval(a)},[t]),(0,b.jsx)(k.Provider,{value:{count:m,notificationToken:o,refresh:t,decrement:u},children:a})},"useInboxCount",0,function(){return(0,c.useContext)(k)??l}],831893)},70813,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(506180);let f=(0,c.createContext)(null);a.s(["FlagCountProvider",0,function({children:a}){let{workspaceId:g}=(0,e.useWorkspace)(),[h,i]=(0,c.useState)(0),j=(0,c.useCallback)(()=>{(0,d.getFlaggedCount)(g).then(a=>i(a.count)).catch(()=>{})},[g]),k=(0,c.useCallback)(()=>{i(a=>a+1)},[]),l=(0,c.useCallback)(()=>{i(a=>Math.max(0,a-1))},[]);return(0,c.useEffect)(()=>{j()},[j]),(0,b.jsx)(f.Provider,{value:{count:h,refresh:j,increment:k,decrement:l},children:a})},"useFlagCount",0,function(){let a=(0,c.useContext)(f);if(!a)throw Error("useFlagCount must be used within FlagCountProvider");return a}])},781418,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(549931),e=a.i(584126),f=a.i(921584);a.i(735132);var g=a.i(253260),h=a.i(325848),i=a.i(191525),j=a.i(75118);a.s(["AgentPreviewCard",0,function({agent:a,isOnline:k,activeTaskCount:l,variant:m="default",isHovered:n}){let[o,p]=(0,c.useState)(!1),q=a.email_handle?`${a.email_handle}@alook.ai`:null,r=(0,c.useCallback)(async()=>{if(q)try{await navigator.clipboard.writeText(q),p(!0),f.toast.success("Email copied to clipboard"),setTimeout(()=>p(!1),2e3)}catch{f.toast.error("Failed to copy email")}},[q]);if("compact"===m){let c;return(0,b.jsxs)("div",{className:"flex items-center gap-2 p-0",children:[(c=(0,h.parseAvatarUrl)(a.avatar_url))?(0,b.jsx)(g.AnimatedAvatar,{config:c,size:32,className:"shrink-0 rounded-xl",isHovered:n??!1,isWorking:!!k&&(l??0)>0}):(0,b.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:a.name.charAt(0).toUpperCase()}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate max-w-35",children:a.name}),q&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:q})]}),void 0!==k&&(0,b.jsx)("div",{className:"pointer-events-none mt-0.5",children:(0,b.jsx)(i.AgentStatusBadge,{isOnline:k,taskCount:l??0,agentId:a.id})})]})]})}return(0,b.jsxs)("div",{className:"flex flex-col gap-1.5 p-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate",children:a.name}),(0,b.jsx)("span",{className:"flex-1"}),void 0!==k&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground",children:[(0,b.jsx)("span",{className:(0,j.cn)("size-1.5 rounded-full",k?"bg-status-online":"bg-status-offline")}),k?(l??0)>0?"Working":null:"Offline"]})]}),q&&(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:q}),(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),r()},className:"shrink-0 p-0.5 rounded-sm text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",children:o?(0,b.jsx)(d.Check,{className:"size-3 text-green-500"}):(0,b.jsx)(e.Copy,{className:"size-3"})})]}),a.description&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2",children:a.description})]})}])},127026,40924,a=>{"use strict";a.s(["AgentChatView",()=>ax,"getEventIconType",()=>ar],127026);var b=a.i(749314),c=a.i(437199),d=a.i(131675),e=a.i(207058),f=a.i(506180),g=a.i(732254),h=a.i(464830),i=a.i(75118),j=a.i(549931),k=a.i(143984),l=a.i(374870),m=a.i(123047),n=a.i(723127),o=a.i(16831);a.i(343563);var p=a.i(347788);function q(a){return a.replace(/_/g," ").replace(/\b\w/g,a=>a.toUpperCase())}let r=new Set(["status","log"]);function s({item:a,isRunning:d,isLast:e}){let f=(0,c.useMemo)(()=>{if(!a.input)return null;try{return JSON.stringify(a.input,null,2)}catch{return String(a.input)}},[a.input]);return f?(0,b.jsxs)("details",{className:"group/tool",children:[(0,b.jsxs)("summary",{className:(0,i.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,b.jsx)(k.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/tool:rotate-90"}),(0,b.jsx)("span",{className:"font-medium text-foreground/80",children:q(a.tool)}),d&&e&&(0,b.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary/60 animate-pulse"}),d&&!e&&(0,b.jsx)(j.Check,{className:"ml-auto size-3 text-emerald-500"})]}),(0,b.jsx)("div",{className:"mt-1 mb-2 ml-5",children:(0,b.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:f})})]}):(0,b.jsxs)("div",{className:(0,i.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md","text-sm text-muted-foreground"),children:[(0,b.jsx)("span",{className:"font-medium text-foreground/80",children:q(a.tool)}),d&&e&&(0,b.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary/60 animate-pulse"}),d&&!e&&(0,b.jsx)(j.Check,{className:"ml-auto size-3 text-emerald-500"})]})}function t({item:a}){return a.content?(0,b.jsxs)("details",{className:"group/think",children:[(0,b.jsxs)("summary",{className:(0,i.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,b.jsx)(k.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/40 transition-transform duration-150 group-open/think:rotate-90"}),(0,b.jsx)(l.Brain,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{children:"Thinking..."})]}),(0,b.jsx)("div",{className:"mt-1 mb-2 ml-5",children:(0,b.jsx)("p",{className:"text-sm italic text-muted-foreground/60 whitespace-pre-wrap",children:a.content})})]}):(0,b.jsxs)("div",{className:(0,i.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md","text-sm text-muted-foreground/60 italic"),children:[(0,b.jsx)(l.Brain,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{children:"Thinking..."})]})}function u({value:a}){let d=(0,c.useRef)(a),[e,f]=(0,c.useState)({current:a,previous:null}),[g,h]=(0,c.useState)("idle");return(0,c.useEffect)(()=>{if(a===d.current)return;let b=d.current;d.current=a,f({current:a,previous:b}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{h("animating")})});let c=setTimeout(()=>{h("idle"),f(a=>({...a,previous:null}))},300);return()=>clearTimeout(c)},[a]),(0,b.jsxs)("span",{style:{display:"inline-block",position:"relative",overflow:"hidden",height:"1.2em",lineHeight:"1.2em",verticalAlign:"bottom"},children:[null!==e.previous&&(0,b.jsx)("span",{style:{display:"block",position:"absolute",inset:"0",transition:"animating"===g?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:"animating"===g?"translateY(-100%)":"translateY(0)",opacity:+("animating"!==g)},children:e.previous}),(0,b.jsx)("span",{style:{display:"block",transition:"animating"===g?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:null!==e.previous&&"animating"!==g?"translateY(100%)":"translateY(0)",opacity:+(null===e.previous||"animating"===g)},children:e.current})]})}function v({task:a,messages:d,connectionLost:e,onRetry:f,stepCountHint:g,onExpandSteps:j,stepsLoading:l}){let[q,w]=(0,c.useState)(!1),x=(0,c.useMemo)(()=>(function(a){let b=[],c=new Map;for(let d of a){if(r.has(d.type))continue;let a=d.id||`seq-${d.seq}`;switch(d.type){case"tool-use":{let e=d.call_id,f={kind:"tool-call",id:a,tool:d.tool,input:d.input};e&&c.set(e,f),b.push(f);break}case"tool-result":break;case"text":b.push({kind:"text",id:a,content:d.content});break;case"thinking":b.push({kind:"thinking",id:a,content:d.content});break;case"error":b.push({kind:"status",id:a,content:d.content||d.output,type:"error"})}}return b})(d),[d]),y="completed"!==a.status&&"failed"!==a.status&&"cancelled"!==a.status&&"superseded"!==a.status,z=x.filter(a=>"text"!==a.kind),A=x.filter(a=>"text"===a.kind),B=A.length>0?A[A.length-1]:null,C=(0,c.useRef)(null),D=(0,c.useRef)(null),E=(0,c.useRef)(!1);(0,c.useEffect)(()=>{y&&C.current&&(C.current.scrollTop=C.current.scrollHeight)},[z.length,y]),(0,c.useEffect)(()=>{y&&D.current&&(D.current.scrollTop=D.current.scrollHeight)},[A.length,y]);let F=y?A:A.slice(0,-1),G=!y&&null!==B,H=z.length>0?z.length:g??0,I=z.length>0||g&&g>0;return(0,b.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:"running"===a.status?(0,b.jsxs)(h.Badge,{variant:"secondary",className:"gap-1.5 relative overflow-hidden",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),"Working",(0,b.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%)"}})]}):y?(0,b.jsxs)(h.Badge,{variant:"secondary",className:"relative overflow-hidden",children:[a.status,(0,b.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,b.jsx)(h.Badge,{variant:"secondary",children:a.status})}),I&&(0,b.jsxs)("details",{className:"group/stream pl-1",onToggle:a=>{a.currentTarget.open&&!E.current&&j&&(E.current=!0,j())},children:[(0,b.jsxs)("summary",{className:(0,i.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,b.jsx)(k.ChevronRight,{className:(0,i.cn)("size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/stream:rotate-90",y&&"animate-pulse text-primary")}),(0,b.jsxs)("span",{children:[(0,b.jsx)(u,{value:H})," ",1===H?"step":"steps"]})]}),(0,b.jsxs)("div",{ref:C,className:"mt-1 max-h-80 overflow-y-auto overflow-x-hidden thin-scrollbar space-y-0.5 pl-1",children:[l&&0===z.length&&(0,b.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)(o.Loader2,{className:"size-3 animate-spin"}),(0,b.jsx)("span",{children:"Loading steps..."})]}),z.map((a,c)=>{switch(a.kind){case"tool-call":return(0,b.jsx)(s,{item:a,isRunning:y,isLast:c===z.length-1},a.id);case"thinking":return(0,b.jsx)(t,{item:a},a.id);case"status":return(0,b.jsxs)("p",{className:"text-xs text-muted-foreground px-1 wrap-anywhere",children:["error"===a.type&&(0,b.jsx)(m.AlertCircle,{className:"inline size-3 mr-1 -mt-0.5 text-destructive"}),a.content]},a.id);default:return null}})]})]}),F.length>0&&(0,b.jsxs)("details",{className:"group/midtext pl-1",open:!G||void 0,children:[(0,b.jsxs)("summary",{className:(0,i.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,b.jsx)(k.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/midtext:rotate-90"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(u,{value:F.length})," thinking"]})]}),(0,b.jsx)("div",{ref:D,className:"mt-1 space-y-2 pl-1",children:F.map(a=>(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-0.5 text-sm text-muted-foreground",children:(0,b.jsx)(p.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:a.content})},a.id))})]}),G&&!j&&(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,b.jsx)(p.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:B.content})}),"failed"===a.status&&a.error&&(0,b.jsxs)("div",{className:"flex items-start gap-2 mt-2 max-w-full overflow-hidden",children:[(0,b.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,b.jsx)(m.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,b.jsx)("span",{className:"wrap-anywhere",children:a.error})]}),f&&(0,b.jsxs)("button",{type:"button",onClick:async()=>{w(!0);try{await f()}finally{w(!1)}},disabled:q,className:"shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[q?(0,b.jsx)(o.Loader2,{className:"size-3 animate-spin"}):(0,b.jsx)(n.RotateCw,{className:"size-3"}),"Retry"]})]}),e&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]})}var w=a.i(588339),x=a.i(562706),y=a.i(752792),z=a.i(831893),A=a.i(70813),B=a.i(452906),C=a.i(921584),D=a.i(25668),E=a.i(525132),F=a.i(540858),G=a.i(647651);let H=(0,G.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"}]]),I=(0,G.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 J=a.i(510698),K=a.i(606896);let L=(0,G.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"}]]);var M=a.i(546257),N=a.i(484573),O=a.i(518828);function P({agent:a,isSelected:c,onSelect:d}){return(0,b.jsxs)("button",{type:"button","data-mention-item":!0,className:(0,i.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",c?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:b=>{b.preventDefault(),d(a)},children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.name}),a.email_handle&&(0,b.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[a.email_handle,"@alook.ai"]})]})}function Q({isOpen:a,relatedAgents:d,otherAgents:e,selectedIndex:f,onSelect:g,anchorPos:h}){let i=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!i.current)return;let a=i.current.querySelectorAll("[data-mention-item]")[f];a?.scrollIntoView({block:"nearest"})},[f]);let j=d.length+e.length;if(!a||0===j)return null;let k=d.length>0&&e.length>0;return(0,b.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:h.top-4,left:h.left,transform:"translateY(-100%)"},children:(0,b.jsxs)("div",{ref:i,className:"max-h-50 overflow-y-auto py-1 thin-scrollbar",children:[d.map((a,c)=>(0,b.jsx)(P,{agent:a,isSelected:c===f,onSelect:g},a.id)),k&&(0,b.jsx)("div",{className:"mx-3 my-1 border-t border-border"}),e.map((a,c)=>(0,b.jsx)(P,{agent:a,isSelected:d.length+c===f,onSelect:g},a.id))]})})}function R({skill:a,isSelected:c,onSelect:d}){return(0,b.jsxs)("button",{type:"button","data-slash-item":!0,className:(0,i.cn)("flex w-full flex-col gap-0.5 px-3 py-1.5 text-left text-sm transition-colors",c?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:b=>{b.preventDefault(),d(a)},children:[(0,b.jsxs)("span",{className:"flex w-full items-center gap-2",children:[(0,b.jsxs)("span",{className:"min-w-0 flex-1 truncate font-medium",children:["/",a.name]}),a.isGlobal&&(0,b.jsx)("span",{className:"shrink-0 rounded px-1 py-0.5 text-[10px] font-medium bg-muted text-muted-foreground",children:"Global"})]}),a.description&&(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:a.description.slice(0,80)})]})}function S({isOpen:a,skills:d,selectedIndex:e,onSelect:f,anchorPos:g}){let h=(0,c.useRef)(null);return((0,c.useEffect)(()=>{if(!h.current)return;let a=h.current.querySelectorAll("[data-slash-item]")[e];a?.scrollIntoView({block:"nearest"})},[e]),a&&0!==d.length)?(0,b.jsx)("div",{className:"absolute z-50 w-70 rounded-lg border border-border bg-popover text-popover-foreground shadow-md transition-opacity duration-150",style:{top:g.top-4,left:g.left,transform:"translateY(-100%)"},children:(0,b.jsx)("div",{ref:h,className:"max-h-60 overflow-y-auto py-1 thin-scrollbar",children:d.map((a,c)=>(0,b.jsx)(R,{skill:a,isSelected:c===e,onSelect:f},a.name))})}):null}function T(a,b){if(b>=a.length)return!0;let c=a.charCodeAt(b);return(!(c>=48)||!(c<=57))&&(!(c>=65)||!(c<=90))&&(!(c>=97)||!(c<=122))&&95!==c}function U(a,b){if(!a||0===b.length||!a.includes("@"))return a;let c=b.slice().sort((a,b)=>b.name.length-a.name.length),d=[];for(let b=0;b<a.length;b++){if("@"!==a[b]||!function(a,b){if(0===b)return!0;let c=a.charCodeAt(b-1);return(!(c>=48)||!(c<=57))&&(!(c>=65)||!(c<=90))&&(!(c>=97)||!(c<=122))&&95!==c}(a,b))continue;let e=b+1;for(let f of c){let c=e+f.name.length;if(c>a.length||a.slice(e,c).toLowerCase()!==f.name.toLowerCase())continue;let g=c,h=a.slice(c).match(/^ \([a-zA-Z0-9-]+@alook\.ai\)/);if(h&&(g=c+h[0].length),(h||T(a,c))&&(!h||T(a,g))){if(d.some(a=>b>=a.start&&b<a.end))break;d.push({start:b,end:c,name:f.name,agentId:f.id});break}}}let e=a;for(let a=d.length-1;a>=0;a--){let b=d[a],c=e.slice(b.start,b.end);e=e.slice(0,b.start)+`<mention data-agent-id="${b.agentId}">${c}</mention>`+e.slice(b.end)}return e}var V=a.i(207461),W=a.i(7455),X=a.i(135510);function Y({open:a,onOpenChange:d,emailId:e,workspaceId:f}){let[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(!1),[n,p]=(0,c.useState)(500),q=(0,c.useRef)(!1),r=(0,c.useRef)(d);(0,c.useEffect)(()=>{r.current=d}),(0,c.useEffect)(()=>{a&&e&&(m(!0),i(null),k(null),Promise.all([(0,w.getEmail)(e,f),(0,w.getEmailBody)(e,f)]).then(([a,b])=>{i(a),k(b)}).catch(()=>{C.toast.error("Email not found"),r.current(!1)}).finally(()=>m(!1)))},[a,e,f]);let s=a=>{d(a),a||setTimeout(()=>{i(null),k(null)},300)},t=(0,c.useCallback)(a=>{a.preventDefault(),q.current=!0,a.target.setPointerCapture(a.pointerId)},[]),u=(0,c.useCallback)(a=>{q.current&&p(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-a.clientX)))},[]),v=(0,c.useCallback)(()=>{q.current=!1},[]);return(0,b.jsx)(W.Sheet,{open:a,onOpenChange:s,children:(0,b.jsxs)(W.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${n}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,b.jsx)("div",{onPointerDown:t,onPointerMove:u,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"}),(0,b.jsx)(W.SheetHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(K.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsx)(W.SheetTitle,{className:"truncate flex-1",children:l?"Loading...":h?.subject||"Email"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>s(!1),children:(0,b.jsx)(O.X,{className:"h-4 w-4"})})]})}),(0,b.jsx)(W.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:l?(0,b.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,b.jsx)(o.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):h?(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"text-sm space-y-1 border-b pb-3",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"From:"}),(0,b.jsx)("span",{className:"truncate",children:h.from_email})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"To:"}),(0,b.jsx)("span",{className:"truncate",children:h.to_email})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Date:"}),(0,b.jsx)("span",{children:new Date(h.created_at).toLocaleString()})]})]}),j?.isHtml?(0,b.jsx)(X.EmailBodyFrame,{html:j.content,className:"max-w-full"}):(0,b.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:j?.content}),h.attachments&&h.attachments.length>0&&(0,b.jsxs)("div",{className:"border-t pt-3",children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground mb-2",children:[h.attachments.length," attachment",h.attachments.length>1?"s":""]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:h.attachments.map(a=>(0,b.jsx)("span",{className:"inline-flex items-center gap-1 text-xs bg-muted rounded px-2 py-1",children:a.filename},a.key))})]})]}):null})]})})}var Z=a.i(276163),$=a.i(963744),_=a.i(698824);function aa({bufferedMessages:a,onDelete:d}){let[e,f]=(0,c.useState)(!1),g=a.length;if(0===g)return null;let h=Math.min(g,3);return(0,b.jsx)("div",{className:"relative px-5 pb-1",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl flex justify-center",children:(0,b.jsxs)("div",{className:"relative w-full max-w-lg transition-[height] duration-200 ease-out",style:{height:e?32*g+(g-1)*4:32+(h-1)*6},onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:[a.map((a,c)=>{var f;let j=g-1-c,k=c>=g-h;return(0,b.jsx)("div",{className:"absolute right-0 left-0 transition-all duration-200 ease-out",style:{height:32,zIndex:c+1,bottom:e?36*j:k?6*j:0,transform:e?"scale(1)":`scale(${k?1-.03*j:.91})`,opacity:e?1:k?1-.2*j:0,pointerEvents:e||k?"auto":"none"},children:(0,b.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,b.jsx)("span",{className:"shrink-0 text-[11px] text-primary/60 tabular-nums w-4 text-center",children:c+1}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-[13px] text-muted-foreground leading-snug truncate",children:(f=a.content).length<=80?f:f.slice(0,80).trimEnd()+"…"}),a.attachment_ids&&a.attachment_ids.length>0&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5 shrink-0 text-[11px] text-muted-foreground/50",children:[(0,b.jsx)(M.Paperclip,{className:"size-2.5"}),a.attachment_ids.length]})]}),(0,b.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),d(a.id)},className:(0,i.cn)("shrink-0 rounded-sm p-0.5 transition-all duration-150","text-muted-foreground/30 hover:text-foreground hover:bg-muted",e?"opacity-100":"opacity-0"),tabIndex:e?0:-1,children:(0,b.jsx)(O.X,{className:"size-3"})})]})},a.id)}),!e&&g>h&&(0,b.jsxs)("span",{className:"absolute -top-4 right-1 text-[10px] text-muted-foreground/40 tabular-nums",children:["+",g-h," more"]})]})})})}var ab=a.i(389660);let ac={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 ad({taskId:a,stepCount:d,workspaceId:e}){let[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{if(!j&&!h){i(!0);try{let b=await (0,w.getTaskMessages)(a,e);g(b)}catch{g([])}finally{i(!1),k(!0)}}},[j,h,a,e]);return(0,b.jsx)(v,{task:ac,messages:f,stepCountHint:d,onExpandSteps:l,stepsLoading:h})}var ae=a.i(560893),af=a.i(307992);let ag=(0,G.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"}]]);a.s(["Flag",0,ag],40924);var ah=a.i(584126);let ai={mention:["data-agent-id"]},aj=["mention"];function ak({content:a,conversationType:c}){let d=ar(a,c),e="h-4 w-4 mt-0.5 shrink-0";return"issue"===d?(0,b.jsx)(af.CircleDot,{className:e}):"email"===d?(0,b.jsx)(K.Mail,{className:e}):(0,b.jsx)(ae.Calendar,{className:e})}function al({attachmentIds:a,artifacts:c,onArtifactClick:d}){let e=a.map(a=>c.find(b=>b.id===a)).filter(a=>!!a);return 0===e.length?null:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:e.map(a=>(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),d(a)},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,b.jsx)(J.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-37.5",children:a.filename})]},a.id))})}function am({pendingFiles:a,messageId:c}){let d=a.get(c);return d&&0!==d.length?(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:d.map((a,c)=>(0,b.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,b.jsx)(J.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-37.5",children:a.name})]},c))}):null}let an=(0,c.memo)(function({msg:a,agents:d,artifacts:e,activeTask:f,taskMessages:h,connectionLost:k,isLastMessage:l,stepCount:m,targetConvId:n,workspaceId:o,conversationType:q,pendingFilesByMessage:r,onArtifactClick:s,onEmailClick:t,onIssueClick:u,onCalendarEventClick:w,onRetry:x,mentionComponents:y,isFlagged:z,onToggleFlag:A}){let B,D,F,G,H,I,J,[K,L]=(0,c.useState)(!1),M=f&&"assistant"===a.role&&a.task_id===f.id&&a.conversation_id===f.conversation_id&&h.length>0,N=!M&&n&&"assistant"===a.role&&a.task_id&&m>0?m:0,O=M&&f&&["completed","failed","cancelled","superseded"].includes(f.status),P="assistant"===a.role?(0,b.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs","aria-label":K?"Copied":"Copy message",onClick:async b=>{b.stopPropagation();try{await navigator.clipboard.writeText(a.content),L(!0),C.toast.success("Copied to clipboard"),setTimeout(()=>L(!1),2e3)}catch{C.toast.error("Failed to copy")}},className:(0,i.cn)("self-start mb-1",K?"text-green-500 opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:K?(0,b.jsx)(j.Check,{className:"size-3.5"}):(0,b.jsx)(ah.Copy,{className:"size-3.5"})}),(0,b.jsx)(E.TooltipContent,{children:K?"Copied":"Copy"})]}),A&&(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs",onClick:()=>A(a.id),className:(0,i.cn)("self-start mb-1",z?"text-primary opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:(0,b.jsx)(ag,{className:(0,i.cn)("size-3.5",z&&"fill-current")})}),(0,b.jsx)(E.TooltipContent,{children:z?"Unflag":"Flag"})]})]}):null;return(0,b.jsxs)(c.default.Fragment,{children:[M&&(0,b.jsxs)("div",{className:(0,i.cn)("group/msg",z&&"bg-muted/30 rounded-lg px-2 -mx-2"),...O?{"data-quote-source":!0}:{},children:[(0,b.jsx)(v,{task:f,messages:h,connectionLost:k,onRetry:x}),O&&P]}),N>0&&a.task_id&&(0,b.jsx)(ad,{taskId:a.task_id,stepCount:N,workspaceId:o}),"user"===a.role?(B=l&&!!f&&"running"!==f.status&&!["completed","failed","cancelled","superseded"].includes(f.status),D=a.content.match(/^\/(\S+)\s?([\s\S]*)$/),F=D?.[1]??null,G=D?D[2]||"":a.content,(0,b.jsx)("div",{className:"flex justify-end","data-message-id":a.id,...a.task_id?{"data-task-id":a.task_id}:{},children:(0,b.jsxs)("div",{className:(0,i.cn)("max-w-[80%] rounded-lg px-4 py-2 bg-primary text-primary-foreground text-base relative"),children:[B&&(0,b.jsx)("div",{className:"absolute inset-0 rounded-lg animate-pulse pointer-events-none",style:{boxShadow:"0 0 0 2px var(--bubble-glow)"}}),F&&(0,b.jsxs)("span",{className:"inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-primary-foreground/15 text-primary-foreground mb-1",children:["/",F]}),G&&(0,b.jsx)("div",{className:"markdown markdown-user",children:(0,b.jsx)(p.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:ai,literalTagContent:aj,components:y,children:U(G,d)})}),a.attachment_ids&&a.attachment_ids.length>0&&(0,b.jsx)(al,{attachmentIds:a.attachment_ids,artifacts:e,onArtifactClick:s}),!a.attachment_ids&&(0,b.jsx)(am,{pendingFiles:r,messageId:a.id})]})})):"event"===a.role?(H=a.metadata?.emailId,I=a.metadata?.issueId,J=a.metadata?.calendarEventId,(0,b.jsx)("div",{className:"flex justify-start","data-message-id":a.id,...a.task_id?{"data-task-id":a.task_id}:{},children:(0,b.jsxs)("div",{className:(0,i.cn)("w-full rounded-md border bg-muted/50 text-muted-foreground text-sm px-3 py-2 flex items-start gap-2",(!!H||!!I||!!J)&&"cursor-pointer hover:bg-muted transition-colors"),onClick:H?()=>t(H):I?()=>u(I):J?()=>w(J):void 0,children:[(0,b.jsx)(ak,{content:a.content,conversationType:q}),(0,b.jsx)("span",{className:"min-w-0 wrap-anywhere",children:a.content})]})})):M?null:(0,b.jsxs)("div",{className:(0,i.cn)("group/msg flex flex-col justify-start min-w-0 overflow-hidden",z&&"bg-muted/30 rounded-lg px-2 -mx-2"),"data-message-id":a.id,"data-quote-source":!0,...a.task_id?{"data-task-id":a.task_id}:{},children:[(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,b.jsx)(p.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:ai,literalTagContent:aj,components:y,children:U(a.content,d)})}),P]})]})});var ao=a.i(781418),ap=a.i(722393);let aq={mention:function(a){let{children:c,...d}=a,{agents:e}=(0,y.useAgentContext)(),f=d["data-agent-id"]??d.dataAgentId,g=f?e.find(a=>a.id===f):void 0;if(!g&&"string"==typeof c){let a=c.startsWith("@")?c.slice(1):c;g=e.find(b=>b.name.toLowerCase()===a.toLowerCase())}return g?(0,b.jsxs)(ap.Popover,{children:[(0,b.jsx)(ap.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,b.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:c}),(0,b.jsx)(ap.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,b.jsx)(ao.AgentPreviewCard,{agent:g})})]}):(0,b.jsx)("span",{className:"mention-highlight",children:c})},p:({children:a,node:c,...d})=>(0,b.jsx)("div",{"data-md-p":"",...d,children:a})};function ar(a,b){if("issue_event"===b)return"issue";if("email_notification"===b)return"email";if("calendar_event"===b)return"calendar";let c=a.toLowerCase();return c.startsWith("issue ")||c.startsWith("issue:")?"issue":c.includes("email")?"email":"calendar"}function as(a,b){let c=new Map;for(let b of a)c.set(b.id,b);for(let a of b)c.set(a.id,a);return[...c.values()].slice().sort((a,b)=>{let c=a.created_at.localeCompare(b.created_at);return 0!==c?c:a.id.localeCompare(b.id)})}function at(a){let b=[],c=[],d=!1;for(let e of a)"message"===e.kind&&"user"===e.data.role?(d=!0,b.push(e)):"message"===e.kind&&"assistant"===e.data.role?(b.push(e),b.push(...c),c=[],d=!1):d&&"artifact"===e.kind?c.push(e):b.push(e);return b.push(...c),b}function au(a){let b=(0,c.useRef)(a);return(0,c.useEffect)(()=>{b.current=a},[a]),b}function av({agentName:a}){return(0,b.jsxs)("div",{className:"flex items-center gap-3 py-4 select-none","aria-hidden":!0,children:[(0,b.jsx)("div",{className:"flex-1 border-t border-border/40"}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground/60 whitespace-nowrap",children:[a," took a nap 💤"]}),(0,b.jsx)("div",{className:"flex-1 border-t border-border/40"})]})}function aw({artifact:a,version:c,hasDuplicates:d,onClick:e}){return(0,b.jsxs)("button",{onClick:()=>e(a),className:(0,i.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,b.jsx)(J.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("p",{className:"text-sm font-medium truncate",children:[a.filename,d&&(0,b.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",c]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,V.formatSize)(a.size)})]})]})}function ax({agentId:a,targetConvId:h,scrollToTaskId:j,scrollToMessageId:k}){let l,m,n,p=(0,e.useParams)(),q=(0,e.useSearchParams)(),{workspaceId:r,slug:s}=(0,f.useWorkspace)(),{agents:t,agentLinks:u,activeTaskCounts:G,subscribeWs:P}=(0,y.useAgentContext)(),{refresh:R}=(0,z.useInboxCount)(),{activeChannel:T,loading:W,setAgentId:X}=(0,B.useChannel)(),ac=a??p.id,ad=void 0!==j?j:q.get("task"),ae=void 0!==k?k:q.get("msg"),af=void 0!==h?h:q.get("conv"),[ag,ah]=(0,c.useState)(null),[ai,aj]=(0,c.useState)([]),[ak,al]=(0,c.useState)(()=>""),[am,ao]=(0,c.useState)(!1),[ap,ar]=(0,c.useState)(!1),[ay,az]=(0,c.useState)(null),[aA,aB]=(0,c.useState)([]),[aC,aD]=(0,c.useState)(!0),[aE,aF]=(0,c.useState)(!1),[aG,aH]=(0,c.useState)(!1),[aI,aJ]=(0,c.useState)(!1),[aK,aL]=(0,c.useState)([]),[aM,aN]=(0,c.useState)(!1),[aO,aP]=(0,c.useState)(null),[aQ,aR]=(0,c.useState)(null),[aS,aT]=(0,c.useState)(!1),[aU,aV]=(0,c.useState)(null),[aW,aX]=(0,c.useState)(!1),[aY,aZ]=(0,c.useState)(null),[a$,a_]=(0,c.useState)(!1),[a0,a1]=(0,c.useState)(null),[a2,a3]=(0,c.useState)(null),[a4,a5]=(0,c.useState)(!1),[a6,a7]=(0,c.useState)(null),[a8,a9]=(0,c.useState)(null),[ba,bb]=(0,c.useState)(448),[bc,bd]=(0,c.useState)([]),[be,bf]=(0,c.useState)([]),[bg,bh]=(0,c.useState)(null),[bi,bj]=(0,c.useState)([]),[bk,bl]=(0,c.useState)(!1),[bm,bn]=(0,c.useState)([]),[bo,bp]=(0,c.useState)({}),[bq]=(0,c.useState)(()=>Date.now()),[br,bs]=(0,c.useState)(()=>new Map),[bt,bu]=(0,c.useState)(()=>null),[bv,bw]=(0,c.useState)(null),[bx,by]=(0,c.useState)(new Set),bz=(0,c.useRef)(bx);(0,c.useEffect)(()=>{bz.current=bx});let{increment:bA,decrement:bB,refresh:bC}=(0,A.useFlagCount)(),{writeToCache:bD}=function(a,b){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(a);return(0,c.useEffect)(()=>{if(h.current=a,!a||!b){e(null),g(!1);return}(0,x.openCacheDB)(b);let c=!1;return(0,x.getCachedMessages)(a,b).then(b=>{c||h.current!==a||(b&&b.length>0?(e(b),g(!0)):(e(null),g(!1)))}),()=>{c=!0}},[a,b]),{cachedMessages:d,isFromCache:f,writeToCache:(0,c.useCallback)(async(a,c)=>{h.current&&b&&await (0,x.mergeCachedMessages)(h.current,a,c,b)},[b])}}(af??null,r),bE=(0,c.useRef)(bD);(0,c.useEffect)(()=>{bE.current=bD},[bD]),(0,c.useEffect)(()=>{X(ac)},[ac,X]);let bF=(0,c.useMemo)(()=>aK.filter(a=>"agent"===a.source),[aK]),{versionMap:bG,duplicateFilenames:bH}=(0,c.useMemo)(()=>(0,_.computeArtifactVersions)(bF),[bF]),bI=(0,c.useMemo)(()=>"agent"===aQ?bF:"issue"===aQ?a2?.artifacts??[]:[],[aQ,bF,a2?.artifacts]),{versionMap:bJ,duplicateFilenames:bK}=(0,c.useMemo)(()=>(0,_.computeArtifactVersions)(bI),[bI]),bL=(0,c.useMemo)(()=>(function(a,b,c,d){if(!d||0===c.length){let d=[...a.map(a=>({kind:"message",data:a})),...b.map(a=>({kind:"artifact",data:a})),...c.map(a=>({kind:"nap",data:a}))];return d.sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);if(0!==c)return c;if("nap"===a.kind||"nap"===b.kind){if("nap"===a.kind&&"nap"!==b.kind)return 1;if("nap"!==a.kind&&"nap"===b.kind)return -1}return a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)}),at(d)}let e=new Set(c.map(a=>a.id.replace(/^nap-/,""))),f=[...c].sort((a,b)=>a.created_at.localeCompare(b.created_at)),g=c=>at([...a.filter(a=>a.conversation_id===c).map(a=>({kind:"message",data:a})),...b.filter(a=>a.conversation_id===c).map(a=>({kind:"artifact",data:a}))].sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);return 0!==c?c:a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)})),h=[];for(let a of f){let b=a.id.replace(/^nap-/,"");h.push(...g(b)),h.push({kind:"nap",data:a})}h.push(...g(d));let i=new Set([...e,d]),j=a.filter(a=>!i.has(a.conversation_id)),k=b.filter(a=>!i.has(a.conversation_id));if(j.length>0||k.length>0){let a=[...j.map(a=>({kind:"message",data:a})),...k.map(a=>({kind:"artifact",data:a}))];a.sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);return 0!==c?c:a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)});let b=at(a),c=h.findIndex(a=>"nap"===a.kind);c>=0?h.splice(c,0,...b):h.push(...b)}return h})(ai,bF,bm,ag?.id),[ai,bF,bm,ag?.id]),bM=(0,c.useCallback)(a=>{(0,_.isPreviewable)(a)?(aP(a),aR("agent"),aN(!0)):window.open((0,_.getArtifactUrl)(a.id,r,!0),"_blank")},[r]),bN=(0,c.useCallback)(a=>{(0,_.isPreviewable)(a)?(aP(a),aR("issue"),aN(!0)):window.open((0,_.getArtifactUrl)(a.id,r,!0),"_blank")},[r]),bO=(0,c.useRef)(null),bP=(0,c.useRef)(null),bQ=(0,c.useRef)(null),bR=(0,c.useRef)(null),bS=(0,c.useRef)(0),bT=(0,c.useRef)(0),bU=(0,c.useRef)(!1),bV=(0,c.useRef)(!1),bW=(0,c.useRef)(!0),bX=(0,c.useRef)(!1),bY=(0,c.useRef)(null),bZ=(0,c.useRef)(null),b$=(0,c.useRef)(0),b_=(0,c.useRef)(void 0),b0=(0,c.useRef)(null),b1=(0,c.useRef)(null),b2=function({input:a,caretIndex:b,textareaRef:d,agents:e,agentLinks:f,currentAgentId:g,onInputChange:h}){let[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),[m,n]=(0,c.useState)(0),[o,p]=(0,c.useState)({top:0,left:0}),q=(0,c.useRef)(null),r=(0,c.useMemo)(()=>{let a=new Set;for(let b of f)b.source_agent_id===g&&a.add(b.target_agent_id),b.target_agent_id===g&&a.add(b.source_agent_id);return a},[f,g]),{relatedAgents:s,otherAgents:t,allAgents:u}=(0,c.useMemo)(()=>{if(!i)return{relatedAgents:[],otherAgents:[],allAgents:[]};let a=a=>{if(!k)return a.slice(0,20);let b=k.toLowerCase(),c=[],d=[];for(let e of a){let a=e.name.toLowerCase();a.startsWith(b)?c.push(e):a.includes(b)&&d.push(e)}return[...c,...d]},b=[],c=[];for(let a of e)r.has(a.id)?b.push(a):c.push(a);let d=a(b),f=a(c);return{relatedAgents:d,otherAgents:f,allAgents:[...d,...f]}},[i,k,e,r]);(0,c.useEffect)(()=>{n(0)},[u.length,k]),(0,c.useEffect)(()=>{if(null===b)return void j(!1);let c=function(a,b){let c=b-1;for(;c>=0&&b-c<=30;){let d=a.charCodeAt(c);if(64===d)return{start:c,query:a.slice(c+1,b)};if(10===d||13===d)break;c--}return null}(a,b);c?(q.current=c.start,l(c.query),j(!0),d.current&&p(function(a,b){let c=document.createElement("div"),d=window.getComputedStyle(a);for(let b of(c.style.position="absolute",c.style.top="-9999px",c.style.left="-9999px",c.style.visibility="hidden",c.style.overflow="hidden",c.style.width=`${a.offsetWidth}px`,["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent","lineHeight","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing","whiteSpace","wordWrap","overflowWrap"]))c.style[b]=d.getPropertyValue(b.replace(/([A-Z])/g,"-$1").toLowerCase());c.textContent=a.value.slice(0,b);let e=document.createElement("span");e.textContent="",c.appendChild(e),document.body.appendChild(c);let f=e.offsetTop-a.scrollTop,g=Math.max(0,Math.min(e.offsetLeft,a.offsetWidth-256));return document.body.removeChild(c),{top:f,left:g}}(d.current,c.start))):(j(!1),q.current=null)},[a,b,d]);let v=(0,c.useCallback)(c=>{if(null===b||null===q.current)return;let e=a.slice(0,q.current),f=a.slice(b);h(`${e}@${c.name} ${f}`),j(!1);let g=e.length+1+c.name.length+1;requestAnimationFrame(()=>{let a=d.current;a&&(a.focus(),a.setSelectionRange(g,g))})},[a,b,d,h]),w=(0,c.useCallback)(a=>!!i&&0!==u.length&&!a.nativeEvent.isComposing&&("ArrowDown"===a.key?(a.preventDefault(),n(a=>(a+1)%u.length),!0):"ArrowUp"===a.key?(a.preventDefault(),n(a=>(a-1+u.length)%u.length),!0):"Enter"===a.key?(a.preventDefault(),v(u[m]),!0):"Escape"===a.key&&(a.preventDefault(),j(!1),!0)),[i,u,m,v]);return{isOpen:i,query:k,selectedIndex:m,anchorPos:o,relatedAgents:s,otherAgents:t,allAgents:u,handleMentionKeyDown:w,selectAgent:v}}({input:ak,caretIndex:bg,textareaRef:b1,agents:(0,c.useMemo)(()=>t.filter(a=>a.id!==ac),[t,ac]),agentLinks:u,currentAgentId:ac,onInputChange:al}),[b3,b4]=(0,c.useState)([]),b5=(0,c.useRef)(!1),b6=(0,c.useRef)(!1);(0,c.useEffect)(()=>{b5.current||(b5.current=!0,(0,w.getAgentSkills)(ac,r).then(a=>b4(a.skills)).catch(()=>{}))},[ac,r]);let[b7]=(0,c.useState)(()=>null),b8=function({input:a,caretIndex:b,textareaRef:d,skills:e,onInputChange:f,initialActiveSkill:g}){let[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(0),[n,o]=(0,c.useState)({top:0,left:0}),p=(0,c.useRef)(null),q=(0,c.useMemo)(()=>{if(!h)return[];if(!j)return e;let a=j.toLowerCase(),b=[],c=[];for(let d of e){let e=d.name.toLowerCase();e.startsWith(a)?b.push(d):e.includes(a)&&c.push(d)}return[...b,...c]},[h,j,e]);(0,c.useEffect)(()=>{m(0)},[q.length,j]);let[r,s]=(0,c.useState)(g??null);(0,c.useEffect)(()=>{if(r||null===b)return void i(!1);let c=function(a,b){if(!a.startsWith("/")||0===b)return null;let c=b-1;for(;c>=0&&b-c<=30;){let d=a.charCodeAt(c);if(47===d&&0===c)return{start:0,query:a.slice(1,b)};if(10===d||13===d||32===d)break;c--}return null}(a,b);c?(p.current=c.start,k(c.query),i(!0),d.current&&o(function(a,b){let c=document.createElement("div"),d=window.getComputedStyle(a);for(let b of(c.style.position="absolute",c.style.top="-9999px",c.style.left="-9999px",c.style.visibility="hidden",c.style.overflow="hidden",c.style.width=`${a.offsetWidth}px`,["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent","lineHeight","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing","whiteSpace","wordWrap","overflowWrap"]))c.style[b]=d.getPropertyValue(b.replace(/([A-Z])/g,"-$1").toLowerCase());c.textContent=a.value.slice(0,b);let e=document.createElement("span");e.textContent="",c.appendChild(e),document.body.appendChild(c);let f=e.offsetTop-a.scrollTop,g=Math.max(0,Math.min(e.offsetLeft,a.offsetWidth-280));return document.body.removeChild(c),{top:f,left:g}}(d.current,c.start))):(i(!1),p.current=null)},[a,b,d,r]);let t=(0,c.useCallback)(a=>{s(a),f(""),i(!1),requestAnimationFrame(()=>{let a=d.current;a&&(a.focus(),a.setSelectionRange(0,0))})},[d,f]),u=(0,c.useCallback)(()=>{s(null)},[]),v=(0,c.useCallback)(a=>!!h&&0!==q.length&&!a.nativeEvent.isComposing&&("ArrowDown"===a.key?(a.preventDefault(),m(a=>(a+1)%q.length),!0):"ArrowUp"===a.key?(a.preventDefault(),m(a=>(a-1+q.length)%q.length),!0):"Enter"===a.key||"Tab"===a.key?(a.preventDefault(),t(q[l]),!0):"Escape"===a.key&&(a.preventDefault(),i(!1),!0)),[h,q,l,t]);return{isOpen:h,query:j,selectedIndex:l,anchorPos:n,skills:q,activeSkill:r,handleSlashKeyDown:v,selectSkill:t,clearActiveSkill:u,setActiveSkill:s}}({input:ak,caretIndex:bg,textareaRef:b1,skills:b3,onInputChange:al,initialActiveSkill:b7});(0,c.useEffect)(()=>{0===b3.length||!b8.activeSkill||b3.some(a=>a.name===b8.activeSkill.name)||b8.setActiveSkill(null)},[b3]),(0,c.useEffect)(()=>{let a=`chat-draft:${ac}:${af??"default"}`;ak?localStorage.setItem(a,ak):localStorage.removeItem(a)},[ak,ac,af]),(0,c.useEffect)(()=>{if(!b6.current)return;let a=`chat-draft-meta:${ac}:${af??"default"}`,b={};b8.activeSkill&&(b.skill={name:b8.activeSkill.name,description:b8.activeSkill.description}),bt&&(b.quote=bt),b.skill||b.quote?localStorage.setItem(a,JSON.stringify(b)):localStorage.removeItem(a)},[b8.activeSkill,bt,ac,af]),(0,c.useEffect)(()=>{am||b1.current?.focus()},[am]);let b9=(0,c.useCallback)(()=>{bW.current=!0,setTimeout(()=>{bO.current?.scrollTo({top:bO.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,c.useEffect)(()=>{if(W)return;bP.current&&clearInterval(bP.current),bP.current=null,bR.current=null;let a=!1;aD(!0),bU.current=!1,az(null),aB([]),bf([]),bs(new Map),bn([]),bp({}),bj([]),bl(!1),bZ.current=null,al(localStorage.getItem(`chat-draft:${ac}:${af??"default"}`)??"");let b=localStorage.getItem(`chat-draft-meta:${ac}:${af??"default"}`);if(b)try{let a=JSON.parse(b);bu(a.quote??null),b8.setActiveSkill(a.skill?a.skill:null)}catch{bu(null),b8.setActiveSkill(null)}else bu(null),b8.setActiveSkill(null);return b6.current=!0,aj([]),async function(){let b=!1;try{let c=null,d=null;if(af){if(c=af,d=await (0,x.getCacheMeta)(c,r),d?.newestMessageId){let e=await (0,x.getCachedMessages)(c,r);if(a)return;e&&e.length>0&&(b=!0,aj(e),aH(d.hasMore),aD(!1))}}else try{let e=await (0,w.checkFreshness)({agentId:ac,channel:T},r);if(a)return;if(c=e.conversation_id,d=await (0,x.getCacheMeta)(c,r),d?.newestMessageId&&d.newestMessageId===e.newest_message_id){let e=await (0,x.getCachedMessages)(c,r);if(a)return;e&&e.length>0&&(b=!0,aj(e),aH(d.hasMore),aD(!1))}}catch{}if(c){let b=await (0,w.conversationInit)(c,r,{newestMessageId:d?.newestMessageId??void 0});if(a)return;if(ah(b.conversation),bl(b.has_more_conversations),!b.cache_valid&&b.messages?(aj(a=>as(a,b.messages)),bE.current(b.messages,b.has_more_messages).catch(()=>{}),aH(b.has_more_messages)):d&&aH(d.hasMore),bp(b.step_counts),aL(b.artifacts),bf(b.buffered_messages),by(new Set(b.flagged_message_ids)),b.active_task&&(az(b.active_task),aB(b.task_messages),b.task_messages.length>0&&(bS.current=Math.max(...b.task_messages.map(a=>a.seq))),bY.current?.(b.active_task.id,c,bS.current)),ad){let b=await (0,w.getTask)(ad,r).catch(()=>null);if(a)return;if(b&&!["completed","failed","cancelled","superseded"].includes(b.status)){az(b);let d=await (0,w.getTaskMessages)(ad,r).catch(()=>[]);if(a)return;aB(d),d.length>0&&(bS.current=Math.max(...d.map(a=>a.seq))),bY.current?.(b.id,c,bS.current)}}}else{let b=await (0,w.chatInit)(ac,r,T);if(a)return;ah(b.conversation),aj(a=>a.length>0?as(a,b.messages):b.messages),aH(b.has_more_messages),aL(b.artifacts),bf(b.buffered_messages),bl(b.has_more_conversations),bE.current(b.messages,b.has_more_messages).catch(()=>{}),(0,w.listFlaggedMessageIds)(r,b.conversation.id).then(b=>{a||by(new Set(b.message_ids))}).catch(()=>{}),b.active_task&&(az(b.active_task),b.task_messages.length>0&&(aB(b.task_messages),bS.current=Math.max(...b.task_messages.map(a=>a.seq))),["completed","failed","cancelled","superseded"].includes(b.active_task.status)||bY.current?.(b.active_task.id,b.conversation.id,bS.current))}}catch{b?C.toast.error("Couldn't refresh conversation"):C.toast.error("Failed to load conversation")}finally{a||aD(!1)}}(),()=>{a=!0}},[ac,r,af,ad,T,W]);let ca=(0,c.useRef)(R);(0,c.useEffect)(()=>{ca.current=R},[R]);let cb=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!ag?.id||!r||cb.current===ag.id)return;cb.current=ag.id;let a=setTimeout(()=>{(0,w.markInboxRead)(ag.id,r).then(()=>ca.current()).catch(()=>{})},1e3);return()=>{cb.current=null,clearTimeout(a)}},[ag?.id,r]),(0,c.useEffect)(()=>{aC||!(ai.length>0)||bU.current||(bU.current=!0,ad||ae?bW.current=!1:h?setTimeout(()=>{let a=bO.current?.querySelectorAll("[data-quote-source]");a&&a.length>0?a[a.length-1].scrollIntoView({behavior:"instant",block:"start"}):bO.current?.scrollTo({top:bO.current.scrollHeight})},50):setTimeout(()=>{bO.current?.scrollTo({top:bO.current.scrollHeight})},50))},[aC,ai.length,ad,ae,h]),(0,c.useEffect)(()=>{let a;if(!ad||aC||!ag)return;bW.current=!1,bX.current=!0;let b=!1,c=()=>{if(b)return!1;let c=document.querySelector(`[data-task-id="${CSS.escape(ad)}"]`);return!!c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),c.classList.add("task-highlight"),a=setTimeout(()=>{c.classList.remove("task-highlight"),b||(bX.current=!1)},1500),!0)},d=setTimeout(async()=>{if(!b&&!c())try{let a=await (0,w.listMessagesAroundTask)(ag.id,r,ad);if(b)return;a.length>0?(aj(b=>as(b,a)),requestAnimationFrame(()=>{setTimeout(()=>{c()||(bX.current=!1)},100)})):bX.current=!1}catch{b||(bX.current=!1)}},100);return()=>{b=!0,clearTimeout(d),a&&clearTimeout(a)}},[ad,aC,ag,r]),(0,c.useEffect)(()=>{let a;if(!ae||ad||aC||!ag)return;bW.current=!1,bX.current=!0;let b=!1,c=setTimeout(()=>{!b&&((()=>{if(b)return!1;let c=document.querySelector(`[data-message-id="${CSS.escape(ae)}"]`);return!!c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),c.classList.add("task-highlight"),a=setTimeout(()=>{c.classList.remove("task-highlight"),b||(bX.current=!1)},1500),!0)})()||(bO.current?.scrollTo({top:bO.current.scrollHeight}),bX.current=!1))},100);return()=>{b=!0,clearTimeout(c),a&&clearTimeout(a)}},[ae,ad,aC,ag]);let cc=ay?.status;(0,c.useEffect)(()=>{bX.current||("running"===cc||"queued"===cc)&&bW.current&&b9()},[aA.length,cc,b9]);let cd=(0,c.useMemo)(()=>t.find(a=>a.id===ac)?.name??"Agent",[t,ac]),ce=au(ai),cf=au(aG),cg=au(bi),ch=au(bk),ci=au(cd),cj=au(T),ck=(0,c.useCallback)(async(a=!1)=>{if(!ag||bV.current)return;bV.current=!0;let b=ce.current,c=cf.current,e=ch.current,f=ci.current,g=cj.current,h=!!af,i=b[0],j=bZ.current?.id??ag.id,k=c&&i,l=cg.current;if(!h&&!k&&0===l.length&&e){let a=bZ.current??{id:ag.id,created_at:ag.created_at};try{let b=await (0,w.listPreviousConversations)(ac,r,{exclude:ag.id,before:a.created_at,channel:g});l=b.conversations,bj(b.conversations),bl(b.has_more)}catch{bl(!1)}}let m=!h&&l.length>0;if(!k&&!m){bV.current=!1;return}aJ(!0);let n=bO.current;n&&(n.style.overflowAnchor="none");let o=n?.scrollHeight??0;try{let b=[],c=[],m=20,p=!1,q=[],s=!1;if(k){let a=j===ag.id?await (0,x.getCachedMessagesBefore)(j,i.created_at,i.id,20,r):null;if(a)b=a.messages,m-=a.messages.length,p=a.hasMore;else{let a=await (0,w.listMessages)(j,r,{limit:20,before:i.created_at,beforeId:i.id});b=a.messages,m-=a.messages.length,p=a.has_more}s=p}if(!h&&!p&&m>0){if(0===l.length&&e){let a=bZ.current??{id:ag.id,created_at:ag.created_at};try{let b=await (0,w.listPreviousConversations)(ac,r,{exclude:ag.id,before:a.created_at,channel:g});l=b.conversations,bj(b.conversations),bl(b.has_more)}catch{bl(!1)}}let a=0,b=0;for(;a<l.length&&m>0&&b<5;){let d=l[a];a++,b++;let e=await (0,w.listMessages)(d.id,r,{limit:m});if(0===e.messages.length){bZ.current=d;continue}let g=bZ.current?.created_at??ag.created_at;q.push({agentName:f,created_at:g,id:`nap-${d.id}`}),c=[...e.messages,...c],m-=e.messages.length,p=e.has_more,bZ.current=d}a>0&&bj(b=>b.slice(a))}let t=[...c,...b];if((0,d.flushSync)(()=>{t.length>0?(q.length>0&&bn(a=>{let b=new Set(a.map(a=>a.id)),c=q.filter(a=>!b.has(a.id));return[...a,...c]}),aH(p),aj(a=>{let b=new Set(a.map(a=>a.id));return[...t.filter(a=>!b.has(a.id)),...a]})):aH(!1)}),t.length>0&&ag){let a=t.filter(a=>a.conversation_id===ag.id);a.length>0&&(0,x.mergeCachedMessages)(ag.id,a,s,r).catch(()=>{})}if(bV.current=!1,(0,d.flushSync)(()=>aJ(!1)),n)if(a)n.scrollTop=n.scrollHeight;else{let a=n.scrollHeight;n.scrollTop=a-o}}catch{C.toast.error("Failed to load older messages")}finally{bV.current=!1,aJ(!1),bO.current&&(bO.current.style.overflowAnchor="")}},[ag,r,ac,af,ce,cf,ch,ci,cj,cg]),cl=af?aG:aG||bi.length>0||bk;(0,c.useEffect)(()=>{ag?.id!==b_.current&&(b_.current=ag?.id,b$.current=0)},[ag?.id]),(0,c.useEffect)(()=>{aC||!ag||ad||af||ai.length>=10||!cl||aI||b$.current>=3||(b$.current+=1,ck(!0))},[aC,ai.length,cl,aI,ag,ck,ad,af]);let cm=(0,c.useCallback)(()=>{let a=bO.current;a&&(bW.current=a.scrollHeight-a.scrollTop-a.clientHeight<100)},[]),cn=(0,c.useCallback)((a,b,c)=>{bP.current&&clearInterval(bP.current),bS.current=c??0,bT.current=0,aF(!1),bR.current=a,bP.current=setInterval(async()=>{if(bR.current===a)try{let[c,d]=await Promise.all([(0,w.getTask)(a,r),(0,w.getTaskMessages)(a,r,bS.current||void 0)]),e=bR.current!==a;if(bT.current=0,aF(!1),d.length>0&&!e&&(aB(a=>{let b=new Set(a.map(a=>a.seq)),c=d.filter(a=>!b.has(a.seq));return c.length>0?[...a,...c]:a}),bS.current=Math.max(...d.map(a=>a.seq),bS.current)),"completed"===c.status||"failed"===c.status||"cancelled"===c.status||"superseded"===c.status){if(e)return void(0,w.listMessages)(b,r).then(({messages:a})=>{aj(b=>as(b,a)),(0,x.mergeCachedMessages)(b,a,null,r).catch(()=>{})}).catch(()=>{});bP.current&&clearInterval(bP.current),bP.current=null,bQ.current&&clearTimeout(bQ.current),bQ.current=setTimeout(()=>{(0,w.markInboxRead)(b,r).then(()=>ca.current()).catch(()=>{})},1e3);let d=!bX.current&&bW.current;try{let[a,d]=await Promise.all([(0,w.listMessages)(b,r),(0,w.listArtifacts)(b,r).catch(()=>null)]);aj(b=>as(b,a.messages)),(0,x.mergeCachedMessages)(b,a.messages,null,r).catch(()=>{}),d&&aL(d),az(c)}catch{az(c),C.toast.error("Failed to refresh messages")}d&&requestAnimationFrame(()=>{bO.current?.scrollTo({top:bO.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!bP.current)try{let[c,d]=await Promise.all([(0,w.getActiveTask)(b,r),(0,w.listBufferedMessages)(b,r)]);if(bf(d),c&&c.id!==a){let{messages:a}=await (0,w.listMessages)(b,r);aj(b=>as(b,a)),(0,x.mergeCachedMessages)(b,a,null,r).catch(()=>{}),az(c),aB([]),bY.current?.(c.id,b)}}catch{}},1e3)}else e||az(c)}catch{if(bR.current!==a)return;bT.current+=1,bT.current>=3&&aF(!0),bT.current>=10&&(bP.current&&clearInterval(bP.current),bP.current=null,C.toast.error("Lost connection to agent"))}},3e3)},[r]);(0,c.useEffect)(()=>{bY.current=cn},[cn]),(0,c.useEffect)(()=>()=>{bP.current&&clearInterval(bP.current),bQ.current&&clearTimeout(bQ.current)},[]);let co=(0,c.useRef)(null);(0,c.useEffect)(()=>{co.current=ay?.id??null},[ay]),(0,c.useEffect)(()=>P(a=>{if("task.messages"===a.type&&a.taskId===co.current){let b=a.messages.filter(a=>a.seq>bS.current);b.length>0&&(aB(a=>{let c=new Set(a.map(a=>a.seq)),d=b.filter(a=>!c.has(a.seq));return d.length>0?[...a,...d]:a}),bS.current=Math.max(...b.map(a=>a.seq),bS.current))}if("task.created"===a.type&&a.conversationId===ag?.id){(0,w.listMessages)(a.conversationId,r).then(({messages:b})=>{aj(a=>as(a,b)),(0,x.mergeCachedMessages)(a.conversationId,b,null,r).catch(()=>{})}).catch(()=>{});let b=a.task;co.current=b.id,az(b),aB([]),bS.current=0,bY.current?.(b.id,a.conversationId)}if("conversation.message"===a.type&&a.conversationId===ag?.id&&(aj(b=>as(b,[a.message])),(0,x.appendCachedMessage)(a.conversationId,a.message,r).catch(()=>{})),"task.updated"===a.type&&a.taskId===co.current&&az(b=>b?{...b,status:a.status}:b),"artifact.uploaded"===a.type&&a.conversationId===ag?.id&&aL(b=>b.some(b=>b.id===a.artifact.id)?b:[...b,a.artifact]),"followup.dispatched"===a.type&&a.conversationId===ag?.id){bf(b=>b.filter(b=>b.id!==a.message.id)),(0,w.listBufferedMessages)(a.conversationId,r).then(bf).catch(()=>{}),(0,w.listMessages)(a.conversationId,r).then(({messages:b})=>{aj(a=>as(a,b)),(0,x.mergeCachedMessages)(a.conversationId,b,null,r).catch(()=>{})}).catch(()=>{});let b=a.task;co.current=b.id,az(b),aB([]),bY.current?.(b.id,a.conversationId)}"followup.created"===a.type&&a.conversationId===ag?.id&&bf(b=>(function(a,b){if(a.some(a=>a.id===b.id))return a;let c=new Date(b.created_at).getTime();return a.some(a=>a.id.startsWith("temp-")&&2e3>Math.abs(new Date(a.created_at).getTime()-c))?a:[...a,b]})(b,a.message)),"followup.deleted"===a.type&&a.conversationId===ag?.id&&bf(b=>b.filter(b=>b.id!==a.messageId)),"followup.dispatch_failed"===a.type&&a.conversationId===ag?.id&&C.toast.error(a.error||"Failed to dispatch follow-up")}),[P,ag?.id,r]);let cp=(0,c.useCallback)(a=>{let b=a.target.files;if(!b)return;let c=[];for(let a of Array.from(b))a.size>0xa00000?C.toast.error(`"${a.name}" exceeds 10 MB limit`):c.push(a);c.length>0&&bd(a=>[...a,...c]),a.target.value=""},[]),cq=(0,c.useCallback)(a=>{bd(b=>b.filter((b,c)=>c!==a))},[]),cr=(0,c.useCallback)(()=>{let a=window.getSelection();if(!a||a.isCollapsed||!a.rangeCount)return void bw(null);let b=a.toString().trim();if(!b)return void bw(null);let c=a.getRangeAt(0),d=c.commonAncestorContainer instanceof HTMLElement?c.commonAncestorContainer:c.commonAncestorContainer.parentElement;if(!d?.closest("[data-quote-source]"))return void bw(null);let e=c.getClientRects(),f=e[e.length-1]||c.getBoundingClientRect();bw({text:b,x:f.right,y:f.top-4})},[]);(0,c.useEffect)(()=>(document.addEventListener("selectionchange",cr),()=>document.removeEventListener("selectionchange",cr)),[cr]);let cs=(0,c.useCallback)(()=>{bv&&(bu(bv.text),bw(null),window.getSelection()?.removeAllRanges(),b1.current?.focus())},[bv]),[ct,cu]=(0,c.useState)(!1),cv=(0,c.useRef)(0),cw=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cv.current++,a.dataTransfer.types.includes("Files")&&cu(!0)},[]),cx=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cv.current--,0===cv.current&&cu(!1)},[]),cy=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),cz=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cu(!1),cv.current=0;let b=Array.from(a.dataTransfer.files),c=[];for(let a of b)a.size>0xa00000?C.toast.error(`"${a.name}" exceeds 10 MB limit`):c.push(a);c.length>0&&bd(a=>[...a,...c])},[]),cA=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a=0;a<b.length;a++){let d=b[a];if("file"===d.kind){let a=d.getAsFile();a&&c.push(a)}}if(0===c.length)return;a.preventDefault();let d=[];for(let a of c)a.size>0xa00000?C.toast.error(`"${a.name}" exceeds 10 MB limit`):d.push(a);d.length>0&&bd(a=>[...a,...d])},[]),cB=async()=>{if(ag&&!ap){ar(!0);try{let a=await (0,w.cancelActiveTask)(ag.id,r);if(a){if(co.current&&co.current!==a.id)return;bP.current&&clearInterval(bP.current),bP.current=null;let[b,c]=await Promise.all([(0,w.listMessages)(ag.id,r),(0,w.listBufferedMessages)(ag.id,r)]);aj(a=>as(a,b.messages)),(0,x.mergeCachedMessages)(ag.id,b.messages,null,r).catch(()=>{}),bf(c),az(a),aB([])}}catch{C.toast.error("Failed to cancel task")}finally{ar(!1)}}},cC=async()=>{let a=ak.trim();if(!a&&0===bc.length||am||!ag)return;if(!a)return void C.toast.error("Please type a message");let b=bt?`> ${bt.split("\n").join("\n> ")}
|
|
1
|
+
module.exports=[831893,896393,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(752792),f=a.i(506180),g=a.i(626806);let h=["user_dm_message"],i=["user_dm_message"];function j(){return h}a.s(["INBOX_FILTER_LABELS",0,{user_dm_message:"DM",calendar_event:"Calendar",email_notification:"Email"},"INBOX_FILTER_TYPES",0,["user_dm_message","calendar_event","email_notification"],"MANDATORY_INBOX_TYPES",0,i,"getInboxFilterTypes",0,j,"setInboxFilterTypes",0,function(a){let b=[...a];for(let a of i)b.includes(a)||b.unshift(a);localStorage.setItem("inbox-filter-types",JSON.stringify(b))}],896393);let k=(0,c.createContext)(null),l={count:0,notificationToken:0,refresh:()=>{},decrement:()=>{}};a.s(["InboxCountProvider",0,function({children:a}){let{workspaceId:h}=(0,f.useWorkspace)(),{subscribeWs:i,agents:l}=(0,e.useAgentContext)(),[m,n]=(0,c.useState)(0),[o,p]=(0,c.useState)(0),q=(0,c.useRef)(null),r=(0,c.useRef)(null),s=(0,c.useRef)(l);(0,c.useEffect)(()=>{s.current=l});let t=(0,c.useCallback)(()=>{let a=j();(0,d.getInboxCount)(h,{types:a}).then(a=>{let b=q.current;if(q.current=a.count,n(a.count),null!==b&&a.count>b){p(a=>a+1);let a=r.current?s.current.find(a=>a.id===r.current):void 0;(0,g.sendTaskNotification)("completed",a?.name)}r.current=null}).catch(()=>{})},[h]),u=(0,c.useCallback)(()=>{n(a=>{let b=Math.max(0,a-1);return q.current=b,b})},[]);return(0,c.useEffect)(()=>{t()},[t]),(0,c.useEffect)(()=>i(a=>{"task.updated"===a.type&&("completed"===a.status||"failed"===a.status)&&(r.current=a.agentId,t())}),[i,t]),(0,c.useEffect)(()=>{let a=setInterval(t,6e4);return()=>clearInterval(a)},[t]),(0,b.jsx)(k.Provider,{value:{count:m,notificationToken:o,refresh:t,decrement:u},children:a})},"useInboxCount",0,function(){return(0,c.useContext)(k)??l}],831893)},70813,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(506180);let f=(0,c.createContext)(null);a.s(["FlagCountProvider",0,function({children:a}){let{workspaceId:g}=(0,e.useWorkspace)(),[h,i]=(0,c.useState)(0),j=(0,c.useCallback)(()=>{(0,d.getFlaggedCount)(g).then(a=>i(a.count)).catch(()=>{})},[g]),k=(0,c.useCallback)(()=>{i(a=>a+1)},[]),l=(0,c.useCallback)(()=>{i(a=>Math.max(0,a-1))},[]);return(0,c.useEffect)(()=>{j()},[j]),(0,b.jsx)(f.Provider,{value:{count:h,refresh:j,increment:k,decrement:l},children:a})},"useFlagCount",0,function(){let a=(0,c.useContext)(f);if(!a)throw Error("useFlagCount must be used within FlagCountProvider");return a}])},781418,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(549931),e=a.i(584126),f=a.i(921584);a.i(735132);var g=a.i(253260),h=a.i(325848),i=a.i(191525),j=a.i(75118);a.s(["AgentPreviewCard",0,function({agent:a,isOnline:k,activeTaskCount:l,variant:m="default",isHovered:n}){let[o,p]=(0,c.useState)(!1),q=a.email_handle?`${a.email_handle}@alook.ai`:null,r=(0,c.useCallback)(async()=>{if(q)try{await navigator.clipboard.writeText(q),p(!0),f.toast.success("Email copied to clipboard"),setTimeout(()=>p(!1),2e3)}catch{f.toast.error("Failed to copy email")}},[q]);if("compact"===m){let c;return(0,b.jsxs)("div",{className:"flex items-center gap-2 p-0",children:[(c=(0,h.parseAvatarUrl)(a.avatar_url))?(0,b.jsx)(g.AnimatedAvatar,{config:c,size:32,className:"shrink-0 rounded-xl",isHovered:n??!1,isWorking:!!k&&(l??0)>0}):(0,b.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:a.name.charAt(0).toUpperCase()}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate max-w-35",children:a.name}),q&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:q})]}),void 0!==k&&(0,b.jsx)("div",{className:"pointer-events-none mt-0.5",children:(0,b.jsx)(i.AgentStatusBadge,{isOnline:k,taskCount:l??0,agentId:a.id})})]})]})}return(0,b.jsxs)("div",{className:"flex flex-col gap-1.5 p-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate",children:a.name}),(0,b.jsx)("span",{className:"flex-1"}),void 0!==k&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground",children:[(0,b.jsx)("span",{className:(0,j.cn)("size-1.5 rounded-full",k?"bg-status-online":"bg-status-offline")}),k?(l??0)>0?"Working":null:"Offline"]})]}),q&&(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:q}),(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),r()},className:"shrink-0 p-0.5 rounded-sm text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",children:o?(0,b.jsx)(d.Check,{className:"size-3 text-green-500"}):(0,b.jsx)(e.Copy,{className:"size-3"})})]}),a.description&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2",children:a.description})]})}])},127026,40924,a=>{"use strict";a.s(["AgentChatView",()=>ay,"getEventIconType",()=>as],127026);var b=a.i(749314),c=a.i(437199),d=a.i(131675),e=a.i(207058),f=a.i(506180),g=a.i(732254),h=a.i(464830),i=a.i(75118),j=a.i(549931),k=a.i(143984),l=a.i(374870),m=a.i(123047),n=a.i(723127),o=a.i(16831);a.i(343563);var p=a.i(347788);function q(a){return a.replace(/_/g," ").replace(/\b\w/g,a=>a.toUpperCase())}let r=new Set(["status","log"]);function s({item:a,isRunning:d,isLast:e}){let f=(0,c.useMemo)(()=>{if(!a.input)return null;try{return JSON.stringify(a.input,null,2)}catch{return String(a.input)}},[a.input]);return f?(0,b.jsxs)("details",{className:"group/tool",children:[(0,b.jsxs)("summary",{className:(0,i.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,b.jsx)(k.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/tool:rotate-90"}),(0,b.jsx)("span",{className:"font-medium text-foreground/80",children:q(a.tool)}),d&&e&&(0,b.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary/60 animate-pulse"}),d&&!e&&(0,b.jsx)(j.Check,{className:"ml-auto size-3 text-emerald-500"})]}),(0,b.jsx)("div",{className:"mt-1 mb-2 ml-5",children:(0,b.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:f})})]}):(0,b.jsxs)("div",{className:(0,i.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md","text-sm text-muted-foreground"),children:[(0,b.jsx)("span",{className:"font-medium text-foreground/80",children:q(a.tool)}),d&&e&&(0,b.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary/60 animate-pulse"}),d&&!e&&(0,b.jsx)(j.Check,{className:"ml-auto size-3 text-emerald-500"})]})}function t({item:a}){return a.content?(0,b.jsxs)("details",{className:"group/think",children:[(0,b.jsxs)("summary",{className:(0,i.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,b.jsx)(k.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/40 transition-transform duration-150 group-open/think:rotate-90"}),(0,b.jsx)(l.Brain,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{children:"Thinking..."})]}),(0,b.jsx)("div",{className:"mt-1 mb-2 ml-5",children:(0,b.jsx)("p",{className:"text-sm italic text-muted-foreground/60 whitespace-pre-wrap",children:a.content})})]}):(0,b.jsxs)("div",{className:(0,i.cn)("flex items-center gap-2 py-1 px-2 -mx-2 rounded-md","text-sm text-muted-foreground/60 italic"),children:[(0,b.jsx)(l.Brain,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{children:"Thinking..."})]})}function u({value:a}){let d=(0,c.useRef)(a),[e,f]=(0,c.useState)({current:a,previous:null}),[g,h]=(0,c.useState)("idle");return(0,c.useEffect)(()=>{if(a===d.current)return;let b=d.current;d.current=a,f({current:a,previous:b}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{h("animating")})});let c=setTimeout(()=>{h("idle"),f(a=>({...a,previous:null}))},300);return()=>clearTimeout(c)},[a]),(0,b.jsxs)("span",{style:{display:"inline-block",position:"relative",overflow:"hidden",height:"1.2em",lineHeight:"1.2em",verticalAlign:"bottom"},children:[null!==e.previous&&(0,b.jsx)("span",{style:{display:"block",position:"absolute",inset:"0",transition:"animating"===g?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:"animating"===g?"translateY(-100%)":"translateY(0)",opacity:+("animating"!==g)},children:e.previous}),(0,b.jsx)("span",{style:{display:"block",transition:"animating"===g?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:null!==e.previous&&"animating"!==g?"translateY(100%)":"translateY(0)",opacity:+(null===e.previous||"animating"===g)},children:e.current})]})}function v({task:a,messages:d,connectionLost:e,onRetry:f,stepCountHint:g,onExpandSteps:j,stepsLoading:l}){let[q,w]=(0,c.useState)(!1),x=(0,c.useMemo)(()=>(function(a){let b=[],c=new Map;for(let d of a){if(r.has(d.type))continue;let a=d.id||`seq-${d.seq}`;switch(d.type){case"tool-use":{let e=d.call_id,f={kind:"tool-call",id:a,tool:d.tool,input:d.input};e&&c.set(e,f),b.push(f);break}case"tool-result":break;case"text":b.push({kind:"text",id:a,content:d.content});break;case"thinking":b.push({kind:"thinking",id:a,content:d.content});break;case"error":b.push({kind:"status",id:a,content:d.content||d.output,type:"error"})}}return b})(d),[d]),y="completed"!==a.status&&"failed"!==a.status&&"cancelled"!==a.status&&"superseded"!==a.status,z=x.filter(a=>"text"!==a.kind),A=x.filter(a=>"text"===a.kind),B=A.length>0?A[A.length-1]:null,C=(0,c.useRef)(null),D=(0,c.useRef)(null),E=(0,c.useRef)(!1);(0,c.useEffect)(()=>{y&&C.current&&(C.current.scrollTop=C.current.scrollHeight)},[z.length,y]),(0,c.useEffect)(()=>{y&&D.current&&(D.current.scrollTop=D.current.scrollHeight)},[A.length,y]);let F=y?A:A.slice(0,-1),G=!y&&null!==B,H=z.length>0?z.length:g??0,I=z.length>0||g&&g>0;return(0,b.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:"running"===a.status?(0,b.jsxs)(h.Badge,{variant:"secondary",className:"gap-1.5 relative overflow-hidden",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),"Working",(0,b.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%)"}})]}):y?(0,b.jsxs)(h.Badge,{variant:"secondary",className:"relative overflow-hidden",children:[a.status,(0,b.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,b.jsx)(h.Badge,{variant:"secondary",children:a.status})}),I&&(0,b.jsxs)("details",{className:"group/stream pl-1",onToggle:a=>{a.currentTarget.open&&!E.current&&j&&(E.current=!0,j())},children:[(0,b.jsxs)("summary",{className:(0,i.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,b.jsx)(k.ChevronRight,{className:(0,i.cn)("size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/stream:rotate-90",y&&"animate-pulse text-primary")}),(0,b.jsxs)("span",{children:[(0,b.jsx)(u,{value:H})," ",1===H?"step":"steps"]})]}),(0,b.jsxs)("div",{ref:C,className:"mt-1 max-h-80 overflow-y-auto overflow-x-hidden thin-scrollbar space-y-0.5 pl-1",children:[l&&0===z.length&&(0,b.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)(o.Loader2,{className:"size-3 animate-spin"}),(0,b.jsx)("span",{children:"Loading steps..."})]}),z.map((a,c)=>{switch(a.kind){case"tool-call":return(0,b.jsx)(s,{item:a,isRunning:y,isLast:c===z.length-1},a.id);case"thinking":return(0,b.jsx)(t,{item:a},a.id);case"status":return(0,b.jsxs)("p",{className:"text-xs text-muted-foreground px-1 wrap-anywhere",children:["error"===a.type&&(0,b.jsx)(m.AlertCircle,{className:"inline size-3 mr-1 -mt-0.5 text-destructive"}),a.content]},a.id);default:return null}})]})]}),F.length>0&&(0,b.jsxs)("details",{className:"group/midtext pl-1",open:!G||void 0,children:[(0,b.jsxs)("summary",{className:(0,i.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,b.jsx)(k.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/midtext:rotate-90"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(u,{value:F.length})," thinking"]})]}),(0,b.jsx)("div",{ref:D,className:"mt-1 space-y-2 pl-1",children:F.map(a=>(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-0.5 text-sm text-muted-foreground",children:(0,b.jsx)(p.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:a.content})},a.id))})]}),G&&!j&&(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,b.jsx)(p.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:B.content})}),"failed"===a.status&&a.error&&(0,b.jsxs)("div",{className:"flex items-start gap-2 mt-2 max-w-full overflow-hidden",children:[(0,b.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,b.jsx)(m.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,b.jsx)("span",{className:"wrap-anywhere",children:a.error})]}),f&&(0,b.jsxs)("button",{type:"button",onClick:async()=>{w(!0);try{await f()}finally{w(!1)}},disabled:q,className:"shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[q?(0,b.jsx)(o.Loader2,{className:"size-3 animate-spin"}):(0,b.jsx)(n.RotateCw,{className:"size-3"}),"Retry"]})]}),e&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]})}var w=a.i(588339),x=a.i(562706),y=a.i(752792),z=a.i(831893),A=a.i(70813),B=a.i(452906),C=a.i(921584),D=a.i(25668),E=a.i(525132),F=a.i(540858),G=a.i(647651);let H=(0,G.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"}]]),I=(0,G.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 J=a.i(510698),K=a.i(606896);let L=(0,G.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"}]]);var M=a.i(546257),N=a.i(484573),O=a.i(518828);function P({agent:a,isSelected:c,onSelect:d}){return(0,b.jsxs)("button",{type:"button","data-mention-item":!0,className:(0,i.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",c?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:b=>{b.preventDefault(),d(a)},children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.name}),a.email_handle&&(0,b.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[a.email_handle,"@alook.ai"]})]})}function Q({isOpen:a,relatedAgents:d,otherAgents:e,selectedIndex:f,onSelect:g,anchorPos:h}){let i=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!i.current)return;let a=i.current.querySelectorAll("[data-mention-item]")[f];a?.scrollIntoView({block:"nearest"})},[f]);let j=d.length+e.length;if(!a||0===j)return null;let k=d.length>0&&e.length>0;return(0,b.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:h.top-4,left:h.left,transform:"translateY(-100%)"},children:(0,b.jsxs)("div",{ref:i,className:"max-h-50 overflow-y-auto py-1 thin-scrollbar",children:[d.map((a,c)=>(0,b.jsx)(P,{agent:a,isSelected:c===f,onSelect:g},a.id)),k&&(0,b.jsx)("div",{className:"mx-3 my-1 border-t border-border"}),e.map((a,c)=>(0,b.jsx)(P,{agent:a,isSelected:d.length+c===f,onSelect:g},a.id))]})})}function R({skill:a,isSelected:c,onSelect:d}){return(0,b.jsxs)("button",{type:"button","data-slash-item":!0,className:(0,i.cn)("flex w-full flex-col gap-0.5 px-3 py-1.5 text-left text-sm transition-colors",c?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:b=>{b.preventDefault(),d(a)},children:[(0,b.jsxs)("span",{className:"flex w-full items-center gap-2",children:[(0,b.jsxs)("span",{className:"min-w-0 flex-1 truncate font-medium",children:["/",a.name]}),a.isGlobal&&(0,b.jsx)("span",{className:"shrink-0 rounded px-1 py-0.5 text-[10px] font-medium bg-muted text-muted-foreground",children:"Global"})]}),a.description&&(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:a.description.slice(0,80)})]})}function S({isOpen:a,skills:d,selectedIndex:e,onSelect:f,anchorPos:g}){let h=(0,c.useRef)(null);return((0,c.useEffect)(()=>{if(!h.current)return;let a=h.current.querySelectorAll("[data-slash-item]")[e];a?.scrollIntoView({block:"nearest"})},[e]),a&&0!==d.length)?(0,b.jsx)("div",{className:"absolute z-50 w-70 rounded-lg border border-border bg-popover text-popover-foreground shadow-md transition-opacity duration-150",style:{top:g.top-4,left:g.left,transform:"translateY(-100%)"},children:(0,b.jsx)("div",{ref:h,className:"max-h-60 overflow-y-auto py-1 thin-scrollbar",children:d.map((a,c)=>(0,b.jsx)(R,{skill:a,isSelected:c===e,onSelect:f},a.name))})}):null}function T(a,b){if(b>=a.length)return!0;let c=a.charCodeAt(b);return(!(c>=48)||!(c<=57))&&(!(c>=65)||!(c<=90))&&(!(c>=97)||!(c<=122))&&95!==c}function U(a,b){if(!a||0===b.length||!a.includes("@"))return a;let c=b.slice().sort((a,b)=>b.name.length-a.name.length),d=[];for(let b=0;b<a.length;b++){if("@"!==a[b]||!function(a,b){if(0===b)return!0;let c=a.charCodeAt(b-1);return(!(c>=48)||!(c<=57))&&(!(c>=65)||!(c<=90))&&(!(c>=97)||!(c<=122))&&95!==c}(a,b))continue;let e=b+1;for(let f of c){let c=e+f.name.length;if(c>a.length||a.slice(e,c).toLowerCase()!==f.name.toLowerCase())continue;let g=c,h=a.slice(c).match(/^ \([a-zA-Z0-9-]+@alook\.ai\)/);if(h&&(g=c+h[0].length),(h||T(a,c))&&(!h||T(a,g))){if(d.some(a=>b>=a.start&&b<a.end))break;d.push({start:b,end:c,name:f.name,agentId:f.id});break}}}let e=a;for(let a=d.length-1;a>=0;a--){let b=d[a],c=e.slice(b.start,b.end);e=e.slice(0,b.start)+`<mention data-agent-id="${b.agentId}">${c}</mention>`+e.slice(b.end)}return e}var V=a.i(207461),W=a.i(7455),X=a.i(390759),Y=a.i(135510);function Z({open:a,onOpenChange:d,emailId:e,workspaceId:f}){let[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(!1),[n,p]=(0,c.useState)(500),q=(0,c.useRef)(!1),r=(0,c.useRef)(d);(0,c.useEffect)(()=>{r.current=d}),(0,c.useEffect)(()=>{a&&e&&(m(!0),i(null),k(null),Promise.all([(0,w.getEmail)(e,f),(0,w.getEmailBody)(e,f)]).then(([a,b])=>{i(a),k(b)}).catch(()=>{C.toast.error("Email not found"),r.current(!1)}).finally(()=>m(!1)))},[a,e,f]);let s=a=>{d(a),a||setTimeout(()=>{i(null),k(null)},300)},t=(0,c.useCallback)(a=>{a.preventDefault(),q.current=!0,a.target.setPointerCapture(a.pointerId)},[]),u=(0,c.useCallback)(a=>{q.current&&p(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-a.clientX)))},[]),v=(0,c.useCallback)(()=>{q.current=!1},[]);return(0,b.jsx)(W.Sheet,{open:a,onOpenChange:s,children:(0,b.jsxs)(W.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${n}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,b.jsx)("div",{onPointerDown:t,onPointerMove:u,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"}),(0,b.jsx)(W.SheetHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(K.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsx)(W.SheetTitle,{className:"truncate flex-1",children:l?"Loading...":h?.subject||"Email"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>s(!1),children:(0,b.jsx)(O.X,{className:"h-4 w-4"})})]})}),(0,b.jsx)(W.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:l?(0,b.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,b.jsx)(o.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):h?(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"text-sm space-y-1 border-b pb-3",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"From:"}),(0,b.jsx)("span",{className:"truncate",children:h.from_email})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"To:"}),(0,b.jsx)("span",{className:"truncate",children:h.to_email})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Date:"}),(0,b.jsx)("span",{children:new Date(h.created_at).toLocaleString()})]})]}),j?.isHtml?(0,b.jsx)(Y.EmailBodyFrame,{html:j.content,className:"max-w-full"}):(0,b.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:j?.content}),h.attachments&&h.attachments.length>0&&(0,b.jsxs)("div",{className:"border-t pt-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mb-2 text-xs text-muted-foreground",children:[(0,b.jsx)(M.Paperclip,{className:"size-3"}),h.attachments.length," attachment",h.attachments.length>1?"s":""]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.attachments.map((a,c)=>(0,b.jsxs)("a",{href:`/api/email/${h.id}/attachment/${c}?workspace_id=${f}`,target:"_blank",rel:"noopener noreferrer",download:a.filename,className:"flex items-center gap-1.5 rounded-md border border-border/50 bg-muted/50 px-2.5 py-1.5 text-xs hover:bg-muted transition-colors cursor-pointer",children:[(0,b.jsx)(X.File,{className:"size-3 text-muted-foreground shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-45",children:a.filename}),(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:a.size<1024?`${a.size} B`:a.size<1048576?`${(a.size/1024).toFixed(1)} KB`:`${(a.size/1048576).toFixed(1)} MB`})]},a.key))})]})]}):null})]})})}var $=a.i(276163),_=a.i(963744),aa=a.i(698824);function ab({bufferedMessages:a,onDelete:d}){let[e,f]=(0,c.useState)(!1),g=a.length;if(0===g)return null;let h=Math.min(g,3);return(0,b.jsx)("div",{className:"relative px-5 pb-1",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl flex justify-center",children:(0,b.jsxs)("div",{className:"relative w-full max-w-lg transition-[height] duration-200 ease-out",style:{height:e?32*g+(g-1)*4:32+(h-1)*6},onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:[a.map((a,c)=>{var f;let j=g-1-c,k=c>=g-h;return(0,b.jsx)("div",{className:"absolute right-0 left-0 transition-all duration-200 ease-out",style:{height:32,zIndex:c+1,bottom:e?36*j:k?6*j:0,transform:e?"scale(1)":`scale(${k?1-.03*j:.91})`,opacity:e?1:k?1-.2*j:0,pointerEvents:e||k?"auto":"none"},children:(0,b.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,b.jsx)("span",{className:"shrink-0 text-[11px] text-primary/60 tabular-nums w-4 text-center",children:c+1}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-[13px] text-muted-foreground leading-snug truncate",children:(f=a.content).length<=80?f:f.slice(0,80).trimEnd()+"…"}),a.attachment_ids&&a.attachment_ids.length>0&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5 shrink-0 text-[11px] text-muted-foreground/50",children:[(0,b.jsx)(M.Paperclip,{className:"size-2.5"}),a.attachment_ids.length]})]}),(0,b.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),d(a.id)},className:(0,i.cn)("shrink-0 rounded-sm p-0.5 transition-all duration-150","text-muted-foreground/30 hover:text-foreground hover:bg-muted",e?"opacity-100":"opacity-0"),tabIndex:e?0:-1,children:(0,b.jsx)(O.X,{className:"size-3"})})]})},a.id)}),!e&&g>h&&(0,b.jsxs)("span",{className:"absolute -top-4 right-1 text-[10px] text-muted-foreground/40 tabular-nums",children:["+",g-h," more"]})]})})})}var ac=a.i(389660);let ad={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 ae({taskId:a,stepCount:d,workspaceId:e}){let[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{if(!j&&!h){i(!0);try{let b=await (0,w.getTaskMessages)(a,e);g(b)}catch{g([])}finally{i(!1),k(!0)}}},[j,h,a,e]);return(0,b.jsx)(v,{task:ad,messages:f,stepCountHint:d,onExpandSteps:l,stepsLoading:h})}var af=a.i(560893),ag=a.i(307992);let ah=(0,G.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"}]]);a.s(["Flag",0,ah],40924);var ai=a.i(584126);let aj={mention:["data-agent-id"]},ak=["mention"];function al({content:a,conversationType:c}){let d=as(a,c),e="h-4 w-4 mt-0.5 shrink-0";return"issue"===d?(0,b.jsx)(ag.CircleDot,{className:e}):"email"===d?(0,b.jsx)(K.Mail,{className:e}):(0,b.jsx)(af.Calendar,{className:e})}function am({attachmentIds:a,artifacts:c,onArtifactClick:d}){let e=a.map(a=>c.find(b=>b.id===a)).filter(a=>!!a);return 0===e.length?null:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:e.map(a=>(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),d(a)},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,b.jsx)(J.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-37.5",children:a.filename})]},a.id))})}function an({pendingFiles:a,messageId:c}){let d=a.get(c);return d&&0!==d.length?(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:d.map((a,c)=>(0,b.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,b.jsx)(J.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-37.5",children:a.name})]},c))}):null}let ao=(0,c.memo)(function({msg:a,agents:d,artifacts:e,activeTask:f,taskMessages:h,connectionLost:k,isLastMessage:l,stepCount:m,targetConvId:n,workspaceId:o,conversationType:q,pendingFilesByMessage:r,onArtifactClick:s,onEmailClick:t,onIssueClick:u,onCalendarEventClick:w,onRetry:x,mentionComponents:y,isFlagged:z,onToggleFlag:A}){let B,D,F,G,H,I,J,[K,L]=(0,c.useState)(!1),M=f&&"assistant"===a.role&&a.task_id===f.id&&a.conversation_id===f.conversation_id&&h.length>0,N=!M&&n&&"assistant"===a.role&&a.task_id&&m>0?m:0,O=M&&f&&["completed","failed","cancelled","superseded"].includes(f.status),P="assistant"===a.role?(0,b.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs","aria-label":K?"Copied":"Copy message",onClick:async b=>{b.stopPropagation();try{await navigator.clipboard.writeText(a.content),L(!0),C.toast.success("Copied to clipboard"),setTimeout(()=>L(!1),2e3)}catch{C.toast.error("Failed to copy")}},className:(0,i.cn)("self-start mb-1",K?"text-green-500 opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:K?(0,b.jsx)(j.Check,{className:"size-3.5"}):(0,b.jsx)(ai.Copy,{className:"size-3.5"})}),(0,b.jsx)(E.TooltipContent,{children:K?"Copied":"Copy"})]}),A&&(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs",onClick:()=>A(a.id),className:(0,i.cn)("self-start mb-1",z?"text-primary opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:(0,b.jsx)(ah,{className:(0,i.cn)("size-3.5",z&&"fill-current")})}),(0,b.jsx)(E.TooltipContent,{children:z?"Unflag":"Flag"})]})]}):null;return(0,b.jsxs)(c.default.Fragment,{children:[M&&(0,b.jsxs)("div",{className:(0,i.cn)("group/msg",z&&"bg-muted/30 rounded-lg px-2 -mx-2"),...O?{"data-quote-source":!0}:{},children:[(0,b.jsx)(v,{task:f,messages:h,connectionLost:k,onRetry:x}),O&&P]}),N>0&&a.task_id&&(0,b.jsx)(ae,{taskId:a.task_id,stepCount:N,workspaceId:o}),"user"===a.role?(B=l&&!!f&&"running"!==f.status&&!["completed","failed","cancelled","superseded"].includes(f.status),D=a.content.match(/^\/(\S+)\s?([\s\S]*)$/),F=D?.[1]??null,G=D?D[2]||"":a.content,(0,b.jsx)("div",{className:"flex justify-end","data-message-id":a.id,...a.task_id?{"data-task-id":a.task_id}:{},children:(0,b.jsxs)("div",{className:(0,i.cn)("max-w-[80%] rounded-lg px-4 py-2 bg-primary text-primary-foreground text-base relative"),children:[B&&(0,b.jsx)("div",{className:"absolute inset-0 rounded-lg animate-pulse pointer-events-none",style:{boxShadow:"0 0 0 2px var(--bubble-glow)"}}),F&&(0,b.jsxs)("span",{className:"inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-primary-foreground/15 text-primary-foreground mb-1",children:["/",F]}),G&&(0,b.jsx)("div",{className:"markdown markdown-user",children:(0,b.jsx)(p.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:aj,literalTagContent:ak,components:y,children:U(G,d)})}),a.attachment_ids&&a.attachment_ids.length>0&&(0,b.jsx)(am,{attachmentIds:a.attachment_ids,artifacts:e,onArtifactClick:s}),!a.attachment_ids&&(0,b.jsx)(an,{pendingFiles:r,messageId:a.id})]})})):"event"===a.role?(H=a.metadata?.emailId,I=a.metadata?.issueId,J=a.metadata?.calendarEventId,(0,b.jsx)("div",{className:"flex justify-start","data-message-id":a.id,...a.task_id?{"data-task-id":a.task_id}:{},children:(0,b.jsxs)("div",{className:(0,i.cn)("w-full rounded-md border bg-muted/50 text-muted-foreground text-sm px-3 py-2 flex items-start gap-2",(!!H||!!I||!!J)&&"cursor-pointer hover:bg-muted transition-colors"),onClick:H?()=>t(H):I?()=>u(I):J?()=>w(J):void 0,children:[(0,b.jsx)(al,{content:a.content,conversationType:q}),(0,b.jsx)("span",{className:"min-w-0 wrap-anywhere",children:a.content})]})})):M?null:(0,b.jsxs)("div",{className:(0,i.cn)("group/msg flex flex-col justify-start min-w-0 overflow-hidden",z&&"bg-muted/30 rounded-lg px-2 -mx-2"),"data-message-id":a.id,"data-quote-source":!0,...a.task_id?{"data-task-id":a.task_id}:{},children:[(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,b.jsx)(p.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:aj,literalTagContent:ak,components:y,children:U(a.content,d)})}),P]})]})});var ap=a.i(781418),aq=a.i(722393);let ar={mention:function(a){let{children:c,...d}=a,{agents:e}=(0,y.useAgentContext)(),f=d["data-agent-id"]??d.dataAgentId,g=f?e.find(a=>a.id===f):void 0;if(!g&&"string"==typeof c){let a=c.startsWith("@")?c.slice(1):c;g=e.find(b=>b.name.toLowerCase()===a.toLowerCase())}return g?(0,b.jsxs)(aq.Popover,{children:[(0,b.jsx)(aq.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,b.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:c}),(0,b.jsx)(aq.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,b.jsx)(ap.AgentPreviewCard,{agent:g})})]}):(0,b.jsx)("span",{className:"mention-highlight",children:c})},p:({children:a,node:c,...d})=>(0,b.jsx)("div",{"data-md-p":"",...d,children:a})};function as(a,b){if("issue_event"===b)return"issue";if("email_notification"===b)return"email";if("calendar_event"===b)return"calendar";let c=a.toLowerCase();return c.startsWith("issue ")||c.startsWith("issue:")?"issue":c.includes("email")?"email":"calendar"}function at(a,b){let c=new Map;for(let b of a)c.set(b.id,b);for(let a of b)c.set(a.id,a);return[...c.values()].slice().sort((a,b)=>{let c=a.created_at.localeCompare(b.created_at);return 0!==c?c:a.id.localeCompare(b.id)})}function au(a){let b=[],c=[],d=!1;for(let e of a)"message"===e.kind&&"user"===e.data.role?(d=!0,b.push(e)):"message"===e.kind&&"assistant"===e.data.role?(b.push(e),b.push(...c),c=[],d=!1):d&&"artifact"===e.kind?c.push(e):b.push(e);return b.push(...c),b}function av(a){let b=(0,c.useRef)(a);return(0,c.useEffect)(()=>{b.current=a},[a]),b}function aw({agentName:a}){return(0,b.jsxs)("div",{className:"flex items-center gap-3 py-4 select-none","aria-hidden":!0,children:[(0,b.jsx)("div",{className:"flex-1 border-t border-border/40"}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground/60 whitespace-nowrap",children:[a," took a nap 💤"]}),(0,b.jsx)("div",{className:"flex-1 border-t border-border/40"})]})}function ax({artifact:a,version:c,hasDuplicates:d,onClick:e}){return(0,b.jsxs)("button",{onClick:()=>e(a),className:(0,i.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,b.jsx)(J.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("p",{className:"text-sm font-medium truncate",children:[a.filename,d&&(0,b.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",c]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,V.formatSize)(a.size)})]})]})}function ay({agentId:a,targetConvId:h,scrollToTaskId:j,scrollToMessageId:k}){let l,m,n,p=(0,e.useParams)(),q=(0,e.useSearchParams)(),{workspaceId:r,slug:s}=(0,f.useWorkspace)(),{agents:t,agentLinks:u,activeTaskCounts:G,subscribeWs:P}=(0,y.useAgentContext)(),{refresh:R}=(0,z.useInboxCount)(),{activeChannel:T,loading:W,setAgentId:X}=(0,B.useChannel)(),Y=a??p.id,ad=void 0!==j?j:q.get("task"),ae=void 0!==k?k:q.get("msg"),af=void 0!==h?h:q.get("conv"),[ag,ah]=(0,c.useState)(null),[ai,aj]=(0,c.useState)([]),[ak,al]=(0,c.useState)(()=>""),[am,an]=(0,c.useState)(!1),[ap,aq]=(0,c.useState)(!1),[as,az]=(0,c.useState)(null),[aA,aB]=(0,c.useState)([]),[aC,aD]=(0,c.useState)(!0),[aE,aF]=(0,c.useState)(!1),[aG,aH]=(0,c.useState)(!1),[aI,aJ]=(0,c.useState)(!1),[aK,aL]=(0,c.useState)([]),[aM,aN]=(0,c.useState)(!1),[aO,aP]=(0,c.useState)(null),[aQ,aR]=(0,c.useState)(null),[aS,aT]=(0,c.useState)(!1),[aU,aV]=(0,c.useState)(null),[aW,aX]=(0,c.useState)(!1),[aY,aZ]=(0,c.useState)(null),[a$,a_]=(0,c.useState)(!1),[a0,a1]=(0,c.useState)(null),[a2,a3]=(0,c.useState)(null),[a4,a5]=(0,c.useState)(!1),[a6,a7]=(0,c.useState)(null),[a8,a9]=(0,c.useState)(null),[ba,bb]=(0,c.useState)(448),[bc,bd]=(0,c.useState)([]),[be,bf]=(0,c.useState)([]),[bg,bh]=(0,c.useState)(null),[bi,bj]=(0,c.useState)([]),[bk,bl]=(0,c.useState)(!1),[bm,bn]=(0,c.useState)([]),[bo,bp]=(0,c.useState)({}),[bq]=(0,c.useState)(()=>Date.now()),[br,bs]=(0,c.useState)(()=>new Map),[bt,bu]=(0,c.useState)(()=>null),[bv,bw]=(0,c.useState)(null),[bx,by]=(0,c.useState)(new Set),bz=(0,c.useRef)(bx);(0,c.useEffect)(()=>{bz.current=bx});let{increment:bA,decrement:bB,refresh:bC}=(0,A.useFlagCount)(),{writeToCache:bD}=function(a,b){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(a);return(0,c.useEffect)(()=>{if(h.current=a,!a||!b){e(null),g(!1);return}(0,x.openCacheDB)(b);let c=!1;return(0,x.getCachedMessages)(a,b).then(b=>{c||h.current!==a||(b&&b.length>0?(e(b),g(!0)):(e(null),g(!1)))}),()=>{c=!0}},[a,b]),{cachedMessages:d,isFromCache:f,writeToCache:(0,c.useCallback)(async(a,c)=>{h.current&&b&&await (0,x.mergeCachedMessages)(h.current,a,c,b)},[b])}}(af??null,r),bE=(0,c.useRef)(bD);(0,c.useEffect)(()=>{bE.current=bD},[bD]),(0,c.useEffect)(()=>{X(Y)},[Y,X]);let bF=(0,c.useMemo)(()=>aK.filter(a=>"agent"===a.source),[aK]),{versionMap:bG,duplicateFilenames:bH}=(0,c.useMemo)(()=>(0,aa.computeArtifactVersions)(bF),[bF]),bI=(0,c.useMemo)(()=>"agent"===aQ?bF:"issue"===aQ?a2?.artifacts??[]:[],[aQ,bF,a2?.artifacts]),{versionMap:bJ,duplicateFilenames:bK}=(0,c.useMemo)(()=>(0,aa.computeArtifactVersions)(bI),[bI]),bL=(0,c.useMemo)(()=>(function(a,b,c,d){if(!d||0===c.length){let d=[...a.map(a=>({kind:"message",data:a})),...b.map(a=>({kind:"artifact",data:a})),...c.map(a=>({kind:"nap",data:a}))];return d.sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);if(0!==c)return c;if("nap"===a.kind||"nap"===b.kind){if("nap"===a.kind&&"nap"!==b.kind)return 1;if("nap"!==a.kind&&"nap"===b.kind)return -1}return a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)}),au(d)}let e=new Set(c.map(a=>a.id.replace(/^nap-/,""))),f=[...c].sort((a,b)=>a.created_at.localeCompare(b.created_at)),g=c=>au([...a.filter(a=>a.conversation_id===c).map(a=>({kind:"message",data:a})),...b.filter(a=>a.conversation_id===c).map(a=>({kind:"artifact",data:a}))].sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);return 0!==c?c:a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)})),h=[];for(let a of f){let b=a.id.replace(/^nap-/,"");h.push(...g(b)),h.push({kind:"nap",data:a})}h.push(...g(d));let i=new Set([...e,d]),j=a.filter(a=>!i.has(a.conversation_id)),k=b.filter(a=>!i.has(a.conversation_id));if(j.length>0||k.length>0){let a=[...j.map(a=>({kind:"message",data:a})),...k.map(a=>({kind:"artifact",data:a}))];a.sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);return 0!==c?c:a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)});let b=au(a),c=h.findIndex(a=>"nap"===a.kind);c>=0?h.splice(c,0,...b):h.push(...b)}return h})(ai,bF,bm,ag?.id),[ai,bF,bm,ag?.id]),bM=(0,c.useCallback)(a=>{(0,aa.isPreviewable)(a)?(aP(a),aR("agent"),aN(!0)):window.open((0,aa.getArtifactUrl)(a.id,r,!0),"_blank")},[r]),bN=(0,c.useCallback)(a=>{(0,aa.isPreviewable)(a)?(aP(a),aR("issue"),aN(!0)):window.open((0,aa.getArtifactUrl)(a.id,r,!0),"_blank")},[r]),bO=(0,c.useRef)(null),bP=(0,c.useRef)(null),bQ=(0,c.useRef)(null),bR=(0,c.useRef)(null),bS=(0,c.useRef)(0),bT=(0,c.useRef)(0),bU=(0,c.useRef)(!1),bV=(0,c.useRef)(!1),bW=(0,c.useRef)(!0),bX=(0,c.useRef)(!1),bY=(0,c.useRef)(null),bZ=(0,c.useRef)(null),b$=(0,c.useRef)(0),b_=(0,c.useRef)(void 0),b0=(0,c.useRef)(null),b1=(0,c.useRef)(null),b2=function({input:a,caretIndex:b,textareaRef:d,agents:e,agentLinks:f,currentAgentId:g,onInputChange:h}){let[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),[m,n]=(0,c.useState)(0),[o,p]=(0,c.useState)({top:0,left:0}),q=(0,c.useRef)(null),r=(0,c.useMemo)(()=>{let a=new Set;for(let b of f)b.source_agent_id===g&&a.add(b.target_agent_id),b.target_agent_id===g&&a.add(b.source_agent_id);return a},[f,g]),{relatedAgents:s,otherAgents:t,allAgents:u}=(0,c.useMemo)(()=>{if(!i)return{relatedAgents:[],otherAgents:[],allAgents:[]};let a=a=>{if(!k)return a.slice(0,20);let b=k.toLowerCase(),c=[],d=[];for(let e of a){let a=e.name.toLowerCase();a.startsWith(b)?c.push(e):a.includes(b)&&d.push(e)}return[...c,...d]},b=[],c=[];for(let a of e)r.has(a.id)?b.push(a):c.push(a);let d=a(b),f=a(c);return{relatedAgents:d,otherAgents:f,allAgents:[...d,...f]}},[i,k,e,r]);(0,c.useEffect)(()=>{n(0)},[u.length,k]),(0,c.useEffect)(()=>{if(null===b)return void j(!1);let c=function(a,b){let c=b-1;for(;c>=0&&b-c<=30;){let d=a.charCodeAt(c);if(64===d)return{start:c,query:a.slice(c+1,b)};if(10===d||13===d)break;c--}return null}(a,b);c?(q.current=c.start,l(c.query),j(!0),d.current&&p(function(a,b){let c=document.createElement("div"),d=window.getComputedStyle(a);for(let b of(c.style.position="absolute",c.style.top="-9999px",c.style.left="-9999px",c.style.visibility="hidden",c.style.overflow="hidden",c.style.width=`${a.offsetWidth}px`,["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent","lineHeight","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing","whiteSpace","wordWrap","overflowWrap"]))c.style[b]=d.getPropertyValue(b.replace(/([A-Z])/g,"-$1").toLowerCase());c.textContent=a.value.slice(0,b);let e=document.createElement("span");e.textContent="",c.appendChild(e),document.body.appendChild(c);let f=e.offsetTop-a.scrollTop,g=Math.max(0,Math.min(e.offsetLeft,a.offsetWidth-256));return document.body.removeChild(c),{top:f,left:g}}(d.current,c.start))):(j(!1),q.current=null)},[a,b,d]);let v=(0,c.useCallback)(c=>{if(null===b||null===q.current)return;let e=a.slice(0,q.current),f=a.slice(b);h(`${e}@${c.name} ${f}`),j(!1);let g=e.length+1+c.name.length+1;requestAnimationFrame(()=>{let a=d.current;a&&(a.focus(),a.setSelectionRange(g,g))})},[a,b,d,h]),w=(0,c.useCallback)(a=>!!i&&0!==u.length&&!a.nativeEvent.isComposing&&("ArrowDown"===a.key?(a.preventDefault(),n(a=>(a+1)%u.length),!0):"ArrowUp"===a.key?(a.preventDefault(),n(a=>(a-1+u.length)%u.length),!0):"Enter"===a.key?(a.preventDefault(),v(u[m]),!0):"Escape"===a.key&&(a.preventDefault(),j(!1),!0)),[i,u,m,v]);return{isOpen:i,query:k,selectedIndex:m,anchorPos:o,relatedAgents:s,otherAgents:t,allAgents:u,handleMentionKeyDown:w,selectAgent:v}}({input:ak,caretIndex:bg,textareaRef:b1,agents:(0,c.useMemo)(()=>t.filter(a=>a.id!==Y),[t,Y]),agentLinks:u,currentAgentId:Y,onInputChange:al}),[b3,b4]=(0,c.useState)([]),b5=(0,c.useRef)(!1),b6=(0,c.useRef)(!1);(0,c.useEffect)(()=>{b5.current||(b5.current=!0,(0,w.getAgentSkills)(Y,r).then(a=>b4(a.skills)).catch(()=>{}))},[Y,r]);let[b7]=(0,c.useState)(()=>null),b8=function({input:a,caretIndex:b,textareaRef:d,skills:e,onInputChange:f,initialActiveSkill:g}){let[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(0),[n,o]=(0,c.useState)({top:0,left:0}),p=(0,c.useRef)(null),q=(0,c.useMemo)(()=>{if(!h)return[];if(!j)return e;let a=j.toLowerCase(),b=[],c=[];for(let d of e){let e=d.name.toLowerCase();e.startsWith(a)?b.push(d):e.includes(a)&&c.push(d)}return[...b,...c]},[h,j,e]);(0,c.useEffect)(()=>{m(0)},[q.length,j]);let[r,s]=(0,c.useState)(g??null);(0,c.useEffect)(()=>{if(r||null===b)return void i(!1);let c=function(a,b){if(!a.startsWith("/")||0===b)return null;let c=b-1;for(;c>=0&&b-c<=30;){let d=a.charCodeAt(c);if(47===d&&0===c)return{start:0,query:a.slice(1,b)};if(10===d||13===d||32===d)break;c--}return null}(a,b);c?(p.current=c.start,k(c.query),i(!0),d.current&&o(function(a,b){let c=document.createElement("div"),d=window.getComputedStyle(a);for(let b of(c.style.position="absolute",c.style.top="-9999px",c.style.left="-9999px",c.style.visibility="hidden",c.style.overflow="hidden",c.style.width=`${a.offsetWidth}px`,["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent","lineHeight","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing","whiteSpace","wordWrap","overflowWrap"]))c.style[b]=d.getPropertyValue(b.replace(/([A-Z])/g,"-$1").toLowerCase());c.textContent=a.value.slice(0,b);let e=document.createElement("span");e.textContent="",c.appendChild(e),document.body.appendChild(c);let f=e.offsetTop-a.scrollTop,g=Math.max(0,Math.min(e.offsetLeft,a.offsetWidth-280));return document.body.removeChild(c),{top:f,left:g}}(d.current,c.start))):(i(!1),p.current=null)},[a,b,d,r]);let t=(0,c.useCallback)(a=>{s(a),f(""),i(!1),requestAnimationFrame(()=>{let a=d.current;a&&(a.focus(),a.setSelectionRange(0,0))})},[d,f]),u=(0,c.useCallback)(()=>{s(null)},[]),v=(0,c.useCallback)(a=>!!h&&0!==q.length&&!a.nativeEvent.isComposing&&("ArrowDown"===a.key?(a.preventDefault(),m(a=>(a+1)%q.length),!0):"ArrowUp"===a.key?(a.preventDefault(),m(a=>(a-1+q.length)%q.length),!0):"Enter"===a.key||"Tab"===a.key?(a.preventDefault(),t(q[l]),!0):"Escape"===a.key&&(a.preventDefault(),i(!1),!0)),[h,q,l,t]);return{isOpen:h,query:j,selectedIndex:l,anchorPos:n,skills:q,activeSkill:r,handleSlashKeyDown:v,selectSkill:t,clearActiveSkill:u,setActiveSkill:s}}({input:ak,caretIndex:bg,textareaRef:b1,skills:b3,onInputChange:al,initialActiveSkill:b7});(0,c.useEffect)(()=>{0===b3.length||!b8.activeSkill||b3.some(a=>a.name===b8.activeSkill.name)||b8.setActiveSkill(null)},[b3]),(0,c.useEffect)(()=>{let a=`chat-draft:${Y}:${af??"default"}`;ak?localStorage.setItem(a,ak):localStorage.removeItem(a)},[ak,Y,af]),(0,c.useEffect)(()=>{if(!b6.current)return;let a=`chat-draft-meta:${Y}:${af??"default"}`,b={};b8.activeSkill&&(b.skill={name:b8.activeSkill.name,description:b8.activeSkill.description}),bt&&(b.quote=bt),b.skill||b.quote?localStorage.setItem(a,JSON.stringify(b)):localStorage.removeItem(a)},[b8.activeSkill,bt,Y,af]),(0,c.useEffect)(()=>{am||b1.current?.focus()},[am]);let b9=(0,c.useCallback)(()=>{bW.current=!0,setTimeout(()=>{bO.current?.scrollTo({top:bO.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,c.useEffect)(()=>{if(W)return;bP.current&&clearInterval(bP.current),bP.current=null,bR.current=null;let a=!1;aD(!0),bU.current=!1,az(null),aB([]),bf([]),bs(new Map),bn([]),bp({}),bj([]),bl(!1),bZ.current=null,al(localStorage.getItem(`chat-draft:${Y}:${af??"default"}`)??"");let b=localStorage.getItem(`chat-draft-meta:${Y}:${af??"default"}`);if(b)try{let a=JSON.parse(b);bu(a.quote??null),b8.setActiveSkill(a.skill?a.skill:null)}catch{bu(null),b8.setActiveSkill(null)}else bu(null),b8.setActiveSkill(null);return b6.current=!0,aj([]),async function(){let b=!1;try{let c=null,d=null;if(af){if(c=af,d=await (0,x.getCacheMeta)(c,r),d?.newestMessageId){let e=await (0,x.getCachedMessages)(c,r);if(a)return;e&&e.length>0&&(b=!0,aj(e),aH(d.hasMore),aD(!1))}}else try{let e=await (0,w.checkFreshness)({agentId:Y,channel:T},r);if(a)return;if(c=e.conversation_id,d=await (0,x.getCacheMeta)(c,r),d?.newestMessageId&&d.newestMessageId===e.newest_message_id){let e=await (0,x.getCachedMessages)(c,r);if(a)return;e&&e.length>0&&(b=!0,aj(e),aH(d.hasMore),aD(!1))}}catch{}if(c){let b=await (0,w.conversationInit)(c,r,{newestMessageId:d?.newestMessageId??void 0});if(a)return;if(ah(b.conversation),bl(b.has_more_conversations),!b.cache_valid&&b.messages?(aj(a=>at(a,b.messages)),bE.current(b.messages,b.has_more_messages).catch(()=>{}),aH(b.has_more_messages)):d&&aH(d.hasMore),bp(b.step_counts),aL(b.artifacts),bf(b.buffered_messages),by(new Set(b.flagged_message_ids)),b.active_task&&(az(b.active_task),aB(b.task_messages),b.task_messages.length>0&&(bS.current=Math.max(...b.task_messages.map(a=>a.seq))),bY.current?.(b.active_task.id,c,bS.current)),ad){let b=await (0,w.getTask)(ad,r).catch(()=>null);if(a)return;if(b&&!["completed","failed","cancelled","superseded"].includes(b.status)){az(b);let d=await (0,w.getTaskMessages)(ad,r).catch(()=>[]);if(a)return;aB(d),d.length>0&&(bS.current=Math.max(...d.map(a=>a.seq))),bY.current?.(b.id,c,bS.current)}}}else{let b=await (0,w.chatInit)(Y,r,T);if(a)return;ah(b.conversation),aj(a=>a.length>0?at(a,b.messages):b.messages),aH(b.has_more_messages),aL(b.artifacts),bf(b.buffered_messages),bl(b.has_more_conversations),bE.current(b.messages,b.has_more_messages).catch(()=>{}),(0,w.listFlaggedMessageIds)(r,b.conversation.id).then(b=>{a||by(new Set(b.message_ids))}).catch(()=>{}),b.active_task&&(az(b.active_task),b.task_messages.length>0&&(aB(b.task_messages),bS.current=Math.max(...b.task_messages.map(a=>a.seq))),["completed","failed","cancelled","superseded"].includes(b.active_task.status)||bY.current?.(b.active_task.id,b.conversation.id,bS.current))}}catch{b?C.toast.error("Couldn't refresh conversation"):C.toast.error("Failed to load conversation")}finally{a||aD(!1)}}(),()=>{a=!0}},[Y,r,af,ad,T,W]);let ca=(0,c.useRef)(R);(0,c.useEffect)(()=>{ca.current=R},[R]);let cb=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!ag?.id||!r||cb.current===ag.id)return;cb.current=ag.id;let a=setTimeout(()=>{(0,w.markInboxRead)(ag.id,r).then(()=>ca.current()).catch(()=>{})},1e3);return()=>{cb.current=null,clearTimeout(a)}},[ag?.id,r]),(0,c.useEffect)(()=>{aC||!(ai.length>0)||bU.current||(bU.current=!0,ad||ae?bW.current=!1:h?setTimeout(()=>{let a=bO.current?.querySelectorAll("[data-quote-source]");a&&a.length>0?a[a.length-1].scrollIntoView({behavior:"instant",block:"start"}):bO.current?.scrollTo({top:bO.current.scrollHeight})},50):setTimeout(()=>{bO.current?.scrollTo({top:bO.current.scrollHeight})},50))},[aC,ai.length,ad,ae,h]),(0,c.useEffect)(()=>{let a;if(!ad||aC||!ag)return;bW.current=!1,bX.current=!0;let b=!1,c=()=>{if(b)return!1;let c=document.querySelector(`[data-task-id="${CSS.escape(ad)}"]`);return!!c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),c.classList.add("task-highlight"),a=setTimeout(()=>{c.classList.remove("task-highlight"),b||(bX.current=!1)},1500),!0)},d=setTimeout(async()=>{if(!b&&!c())try{let a=await (0,w.listMessagesAroundTask)(ag.id,r,ad);if(b)return;a.length>0?(aj(b=>at(b,a)),requestAnimationFrame(()=>{setTimeout(()=>{c()||(bX.current=!1)},100)})):bX.current=!1}catch{b||(bX.current=!1)}},100);return()=>{b=!0,clearTimeout(d),a&&clearTimeout(a)}},[ad,aC,ag,r]),(0,c.useEffect)(()=>{let a;if(!ae||ad||aC||!ag)return;bW.current=!1,bX.current=!0;let b=!1,c=setTimeout(()=>{!b&&((()=>{if(b)return!1;let c=document.querySelector(`[data-message-id="${CSS.escape(ae)}"]`);return!!c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),c.classList.add("task-highlight"),a=setTimeout(()=>{c.classList.remove("task-highlight"),b||(bX.current=!1)},1500),!0)})()||(bO.current?.scrollTo({top:bO.current.scrollHeight}),bX.current=!1))},100);return()=>{b=!0,clearTimeout(c),a&&clearTimeout(a)}},[ae,ad,aC,ag]);let cc=as?.status;(0,c.useEffect)(()=>{bX.current||("running"===cc||"queued"===cc)&&bW.current&&b9()},[aA.length,cc,b9]);let cd=(0,c.useMemo)(()=>t.find(a=>a.id===Y)?.name??"Agent",[t,Y]),ce=av(ai),cf=av(aG),cg=av(bi),ch=av(bk),ci=av(cd),cj=av(T),ck=(0,c.useCallback)(async(a=!1)=>{if(!ag||bV.current)return;bV.current=!0;let b=ce.current,c=cf.current,e=ch.current,f=ci.current,g=cj.current,h=!!af,i=b[0],j=bZ.current?.id??ag.id,k=c&&i,l=cg.current;if(!h&&!k&&0===l.length&&e){let a=bZ.current??{id:ag.id,created_at:ag.created_at};try{let b=await (0,w.listPreviousConversations)(Y,r,{exclude:ag.id,before:a.created_at,channel:g});l=b.conversations,bj(b.conversations),bl(b.has_more)}catch{bl(!1)}}let m=!h&&l.length>0;if(!k&&!m){bV.current=!1;return}aJ(!0);let n=bO.current;n&&(n.style.overflowAnchor="none");let o=n?.scrollHeight??0;try{let b=[],c=[],m=20,p=!1,q=[],s=!1;if(k){let a=j===ag.id?await (0,x.getCachedMessagesBefore)(j,i.created_at,i.id,20,r):null;if(a)b=a.messages,m-=a.messages.length,p=a.hasMore;else{let a=await (0,w.listMessages)(j,r,{limit:20,before:i.created_at,beforeId:i.id});b=a.messages,m-=a.messages.length,p=a.has_more}s=p}if(!h&&!p&&m>0){if(0===l.length&&e){let a=bZ.current??{id:ag.id,created_at:ag.created_at};try{let b=await (0,w.listPreviousConversations)(Y,r,{exclude:ag.id,before:a.created_at,channel:g});l=b.conversations,bj(b.conversations),bl(b.has_more)}catch{bl(!1)}}let a=0,b=0;for(;a<l.length&&m>0&&b<5;){let d=l[a];a++,b++;let e=await (0,w.listMessages)(d.id,r,{limit:m});if(0===e.messages.length){bZ.current=d;continue}let g=bZ.current?.created_at??ag.created_at;q.push({agentName:f,created_at:g,id:`nap-${d.id}`}),c=[...e.messages,...c],m-=e.messages.length,p=e.has_more,bZ.current=d}a>0&&bj(b=>b.slice(a))}let t=[...c,...b];if((0,d.flushSync)(()=>{t.length>0?(q.length>0&&bn(a=>{let b=new Set(a.map(a=>a.id)),c=q.filter(a=>!b.has(a.id));return[...a,...c]}),aH(p),aj(a=>{let b=new Set(a.map(a=>a.id));return[...t.filter(a=>!b.has(a.id)),...a]})):aH(!1)}),t.length>0&&ag){let a=t.filter(a=>a.conversation_id===ag.id);a.length>0&&(0,x.mergeCachedMessages)(ag.id,a,s,r).catch(()=>{})}if(bV.current=!1,(0,d.flushSync)(()=>aJ(!1)),n)if(a)n.scrollTop=n.scrollHeight;else{let a=n.scrollHeight;n.scrollTop=a-o}}catch{C.toast.error("Failed to load older messages")}finally{bV.current=!1,aJ(!1),bO.current&&(bO.current.style.overflowAnchor="")}},[ag,r,Y,af,ce,cf,ch,ci,cj,cg]),cl=af?aG:aG||bi.length>0||bk;(0,c.useEffect)(()=>{ag?.id!==b_.current&&(b_.current=ag?.id,b$.current=0)},[ag?.id]),(0,c.useEffect)(()=>{aC||!ag||ad||af||ai.length>=10||!cl||aI||b$.current>=3||(b$.current+=1,ck(!0))},[aC,ai.length,cl,aI,ag,ck,ad,af]);let cm=(0,c.useCallback)(()=>{let a=bO.current;a&&(bW.current=a.scrollHeight-a.scrollTop-a.clientHeight<100)},[]),cn=(0,c.useCallback)((a,b,c)=>{bP.current&&clearInterval(bP.current),bS.current=c??0,bT.current=0,aF(!1),bR.current=a,bP.current=setInterval(async()=>{if(bR.current===a)try{let[c,d]=await Promise.all([(0,w.getTask)(a,r),(0,w.getTaskMessages)(a,r,bS.current||void 0)]),e=bR.current!==a;if(bT.current=0,aF(!1),d.length>0&&!e&&(aB(a=>{let b=new Set(a.map(a=>a.seq)),c=d.filter(a=>!b.has(a.seq));return c.length>0?[...a,...c]:a}),bS.current=Math.max(...d.map(a=>a.seq),bS.current)),"completed"===c.status||"failed"===c.status||"cancelled"===c.status||"superseded"===c.status){if(e)return void(0,w.listMessages)(b,r).then(({messages:a})=>{aj(b=>at(b,a)),(0,x.mergeCachedMessages)(b,a,null,r).catch(()=>{})}).catch(()=>{});bP.current&&clearInterval(bP.current),bP.current=null,bQ.current&&clearTimeout(bQ.current),bQ.current=setTimeout(()=>{(0,w.markInboxRead)(b,r).then(()=>ca.current()).catch(()=>{})},1e3);let d=!bX.current&&bW.current;try{let[a,d]=await Promise.all([(0,w.listMessages)(b,r),(0,w.listArtifacts)(b,r).catch(()=>null)]);aj(b=>at(b,a.messages)),(0,x.mergeCachedMessages)(b,a.messages,null,r).catch(()=>{}),d&&aL(d),az(c)}catch{az(c),C.toast.error("Failed to refresh messages")}d&&requestAnimationFrame(()=>{bO.current?.scrollTo({top:bO.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!bP.current)try{let[c,d]=await Promise.all([(0,w.getActiveTask)(b,r),(0,w.listBufferedMessages)(b,r)]);if(bf(d),c&&c.id!==a){let{messages:a}=await (0,w.listMessages)(b,r);aj(b=>at(b,a)),(0,x.mergeCachedMessages)(b,a,null,r).catch(()=>{}),az(c),aB([]),bY.current?.(c.id,b)}}catch{}},1e3)}else e||az(c)}catch{if(bR.current!==a)return;bT.current+=1,bT.current>=3&&aF(!0),bT.current>=10&&(bP.current&&clearInterval(bP.current),bP.current=null,C.toast.error("Lost connection to agent"))}},3e3)},[r]);(0,c.useEffect)(()=>{bY.current=cn},[cn]),(0,c.useEffect)(()=>()=>{bP.current&&clearInterval(bP.current),bQ.current&&clearTimeout(bQ.current)},[]);let co=(0,c.useRef)(null);(0,c.useEffect)(()=>{co.current=as?.id??null},[as]),(0,c.useEffect)(()=>P(a=>{if("task.messages"===a.type&&a.taskId===co.current){let b=a.messages.filter(a=>a.seq>bS.current);b.length>0&&(aB(a=>{let c=new Set(a.map(a=>a.seq)),d=b.filter(a=>!c.has(a.seq));return d.length>0?[...a,...d]:a}),bS.current=Math.max(...b.map(a=>a.seq),bS.current))}if("task.created"===a.type&&a.conversationId===ag?.id){(0,w.listMessages)(a.conversationId,r).then(({messages:b})=>{aj(a=>at(a,b)),(0,x.mergeCachedMessages)(a.conversationId,b,null,r).catch(()=>{})}).catch(()=>{});let b=a.task;co.current=b.id,az(b),aB([]),bS.current=0,bY.current?.(b.id,a.conversationId)}if("conversation.message"===a.type&&a.conversationId===ag?.id&&(aj(b=>at(b,[a.message])),(0,x.appendCachedMessage)(a.conversationId,a.message,r).catch(()=>{})),"task.updated"===a.type&&a.taskId===co.current&&az(b=>b?{...b,status:a.status}:b),"artifact.uploaded"===a.type&&a.conversationId===ag?.id&&aL(b=>b.some(b=>b.id===a.artifact.id)?b:[...b,a.artifact]),"followup.dispatched"===a.type&&a.conversationId===ag?.id){bf(b=>b.filter(b=>b.id!==a.message.id)),(0,w.listBufferedMessages)(a.conversationId,r).then(bf).catch(()=>{}),(0,w.listMessages)(a.conversationId,r).then(({messages:b})=>{aj(a=>at(a,b)),(0,x.mergeCachedMessages)(a.conversationId,b,null,r).catch(()=>{})}).catch(()=>{});let b=a.task;co.current=b.id,az(b),aB([]),bY.current?.(b.id,a.conversationId)}"followup.created"===a.type&&a.conversationId===ag?.id&&bf(b=>(function(a,b){if(a.some(a=>a.id===b.id))return a;let c=new Date(b.created_at).getTime();return a.some(a=>a.id.startsWith("temp-")&&2e3>Math.abs(new Date(a.created_at).getTime()-c))?a:[...a,b]})(b,a.message)),"followup.deleted"===a.type&&a.conversationId===ag?.id&&bf(b=>b.filter(b=>b.id!==a.messageId)),"followup.dispatch_failed"===a.type&&a.conversationId===ag?.id&&C.toast.error(a.error||"Failed to dispatch follow-up")}),[P,ag?.id,r]);let cp=(0,c.useCallback)(a=>{let b=a.target.files;if(!b)return;let c=[];for(let a of Array.from(b))a.size>0xa00000?C.toast.error(`"${a.name}" exceeds 10 MB limit`):c.push(a);c.length>0&&bd(a=>[...a,...c]),a.target.value=""},[]),cq=(0,c.useCallback)(a=>{bd(b=>b.filter((b,c)=>c!==a))},[]),cr=(0,c.useCallback)(()=>{let a=window.getSelection();if(!a||a.isCollapsed||!a.rangeCount)return void bw(null);let b=a.toString().trim();if(!b)return void bw(null);let c=a.getRangeAt(0),d=c.commonAncestorContainer instanceof HTMLElement?c.commonAncestorContainer:c.commonAncestorContainer.parentElement;if(!d?.closest("[data-quote-source]"))return void bw(null);let e=c.getClientRects(),f=e[e.length-1]||c.getBoundingClientRect();bw({text:b,x:f.right,y:f.top-4})},[]);(0,c.useEffect)(()=>(document.addEventListener("selectionchange",cr),()=>document.removeEventListener("selectionchange",cr)),[cr]);let cs=(0,c.useCallback)(()=>{bv&&(bu(bv.text),bw(null),window.getSelection()?.removeAllRanges(),b1.current?.focus())},[bv]),[ct,cu]=(0,c.useState)(!1),cv=(0,c.useRef)(0),cw=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cv.current++,a.dataTransfer.types.includes("Files")&&cu(!0)},[]),cx=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cv.current--,0===cv.current&&cu(!1)},[]),cy=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),cz=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cu(!1),cv.current=0;let b=Array.from(a.dataTransfer.files),c=[];for(let a of b)a.size>0xa00000?C.toast.error(`"${a.name}" exceeds 10 MB limit`):c.push(a);c.length>0&&bd(a=>[...a,...c])},[]),cA=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a=0;a<b.length;a++){let d=b[a];if("file"===d.kind){let a=d.getAsFile();a&&c.push(a)}}if(0===c.length)return;a.preventDefault();let d=[];for(let a of c)a.size>0xa00000?C.toast.error(`"${a.name}" exceeds 10 MB limit`):d.push(a);d.length>0&&bd(a=>[...a,...d])},[]),cB=async()=>{if(ag&&!ap){aq(!0);try{let a=await (0,w.cancelActiveTask)(ag.id,r);if(a){if(co.current&&co.current!==a.id)return;bP.current&&clearInterval(bP.current),bP.current=null;let[b,c]=await Promise.all([(0,w.listMessages)(ag.id,r),(0,w.listBufferedMessages)(ag.id,r)]);aj(a=>at(a,b.messages)),(0,x.mergeCachedMessages)(ag.id,b.messages,null,r).catch(()=>{}),bf(c),az(a),aB([])}}catch{C.toast.error("Failed to cancel task")}finally{aq(!1)}}},cC=async()=>{let a=ak.trim();if(!a&&0===bc.length||am||!ag)return;if(!a)return void C.toast.error("Please type a message");let b=bt?`> ${bt.split("\n").join("\n> ")}
|
|
2
2
|
|
|
3
|
-
${a}`:a;b8.activeSkill&&(b=`/${b8.activeSkill.name} ${b}`);let c=[...bc];if(al(""),bd([]),bu(null),b8.clearActiveSkill(),ao(!0),ay&&!["completed","failed","cancelled","superseded"].includes(ay.status)){let a=`temp-${Date.now()}`,d={id:a,conversation_id:ag.id,role:"user",content:b,task_id:null,attachment_ids:null,status:"buffered",created_at:new Date().toISOString()};bf(a=>[...a,d]);try{let{message:d}=await (0,w.createBufferedMessage)(ag.id,b,r,c.length>0?c:void 0);bf(b=>b.some(a=>a.id===d.id)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?d:b))}catch(d){bf(b=>b.filter(b=>b.id!==a)),al(b),bd(c),C.toast.error(d instanceof Error?d.message:"Failed to queue follow-up")}finally{ao(!1)}return}let d=`temp-${Date.now()}`,e={id:d,conversation_id:ag.id,role:"user",content:b,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};c.length>0&&bs(a=>{let b=new Map(a);return b.set(d,c),b}),aj(a=>[...a,e]),b9();try{let{message:a,task:f}=await (0,w.sendMessage)(ag.id,b,r,c.length>0?c:void 0);bs(a=>{if(!a.has(d))return a;let b=new Map(a);return b.delete(d),b}),aj(b=>b.map(b=>b.id===e.id?a:b)),a.attachment_ids&&a.attachment_ids.length>0&&(0,w.listArtifacts)(ag.id,r).then(a=>aL(a)).catch(()=>{}),az(f),aB([]),cn(f.id,ag.id)}catch(a){bs(a=>{if(!a.has(d))return a;let b=new Map(a);return b.delete(d),b}),aj(a=>a.filter(a=>a.id!==e.id)),al(b),bd(c),C.toast.error(a instanceof Error?a.message:"Failed to send message")}finally{ao(!1),b1.current?.focus()}},cD=(0,c.useCallback)(async()=>{if(!ay||!ag)return;let a=await (0,w.retryTask)(ay.id,r);az(a),aB([]),cn(a.id,ag.id)},[ay,ag,r,cn]),cE=(0,c.useCallback)(async a=>{let b=bz.current.has(a);by(c=>{let d=new Set(c);return b?d.delete(a):d.add(a),d}),b?(bB(),(0,w.unflagMessage)(r,a).then(()=>{bC()}).catch(()=>{by(b=>new Set(b).add(a)),bA()})):(bA(),(0,w.flagMessage)(r,a).then(()=>{bC()}).catch(()=>{by(b=>{let c=new Set(b);return c.delete(a),c}),bB()}))},[r,bA,bB,bC]),cF=(0,c.useCallback)(async a=>{a1(a),a_(!0),a5(!0),a7(null),a9(null);try{let b=await (0,w.getIssue)(r,a);a3(b),b.issue.latest_task_id&&(0,w.getTask)(b.issue.latest_task_id,r).then(a=>a9(a)).catch(()=>a9(null)),b.issue.trace_id&&(0,w.getTrace)(b.issue.trace_id,r).then(a=>a7(a.tasks)).catch(()=>a7(null))}catch(a){C.toast.error(a instanceof Error?a.message:"Failed to load issue"),a_(!1)}finally{a5(!1)}},[r]),cG=a2?.issue?.conversation_id??null,cH=a2?.issue?.latest_task_id??null;(0,c.useEffect)(()=>{if(a$&&a0)return P(a=>{if("task.updated"===a.type&&cH&&a.taskId===cH&&(0,w.getTask)(cH,r).then(a=>a9(a)).catch(()=>{}),"conversation.message"===a.type&&cG&&a.conversationId===cG&&(a3(b=>!b||b.messages.some(b=>b.id===a.message.id)?b:{...b,messages:[...b.messages,a.message]}),"event"===a.message.role&&a.message.content.startsWith("Issue status changed:"))){let b=a.message.content.match(/-> (\w+)/);b&&a3(a=>a?{...a,issue:{...a.issue,status:b[1]}}:a)}"issue.comment"===a.type&&a.issueId===a0&&a3(b=>!b||b.comments.some(b=>b.id===a.comment.id)?b:{...b,comments:[...b.comments,a.comment]})})},[a$,a0,cG,cH,r,P]);let[cI,cJ]=(0,c.useState)(!1),cK=(0,c.useMemo)(()=>!!ag&&ai.some(a=>a.conversation_id===ag.id),[ag,ai]),cL=async()=>{if(ag&&cK&&!cI){cJ(!0);try{bP.current&&(clearInterval(bP.current),bP.current=null);let a=await (0,w.createConversation)(ac,r,T);bn(b=>[...b,{agentName:cd,created_at:a.created_at,id:`nap-${ag.id}`}]),bj(a=>[{id:ag.id,created_at:ag.created_at},...a]),ah(a),az(null),aB([]),aL([]),bf([]),bd([]),bs(new Map),bS.current=0,aF(!1),aH(!1),bZ.current=null,b9()}catch{C.toast.error("Failed to start new conversation")}finally{cJ(!1)}}},cM=!!ay&&!["completed","failed","cancelled","superseded"].includes(ay.status);return aC?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-3 md:px-5",children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4",children:[(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(D.Skeleton,{className:"h-10 w-48 rounded-lg"})}),(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,b.jsx)(D.Skeleton,{className:"h-4 w-72"}),(0,b.jsx)(D.Skeleton,{className:"h-4 w-56"}),(0,b.jsx)(D.Skeleton,{className:"h-4 w-64"})]})}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(D.Skeleton,{className:"h-10 w-36 rounded-lg"})}),(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,b.jsx)(D.Skeleton,{className:"h-4 w-64"}),(0,b.jsx)(D.Skeleton,{className:"h-4 w-48"})]})})]})}),(0,b.jsx)("div",{className:"px-3 md:px-5 py-3",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl",children:(0,b.jsx)(D.Skeleton,{className:"h-18 w-full rounded-xl"})})})]}):aC||ag||0!==ai.length?(0,b.jsxs)(b.Fragment,{children:[bv&&(0,b.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:bv.x,top:bv.y,transform:"translate(-100%, -100%)"},onMouseDown:a=>a.preventDefault(),onClick:cs,children:[(0,b.jsx)(L,{className:"size-3"}),"Quote"]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0",children:[(0,b.jsx)("div",{className:"h-full overflow-y-auto overflow-x-hidden px-3 md:px-5 thin-scrollbar",ref:bO,onScroll:cm,onClick:a=>{a.target.closest('[data-streamdown="code-block-actions"] button')&&C.toast.success("Copied to clipboard")},children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4 min-w-0",children:[ag&&cl&&!aI&&(0,b.jsx)("div",{className:"flex justify-center py-2",children:(0,b.jsx)("button",{onClick:()=>ck(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),aI&&(0,b.jsx)("div",{className:"flex justify-center py-2",children:(0,b.jsx)(o.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===ai.length&&!ay&&(l=t.find(a=>a.id===ac),m=l?.created_at&&bq-new Date(l.created_at).getTime()<3e5,n=(G[ac]??0)>0,m&&n&&"default"===T?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 gap-3 animate-[fade-up_400ms_ease-out_both]",children:[(0,b.jsxs)("div",{className:"relative animate-bounce",children:[(0,b.jsx)(K.Mail,{className:"size-8 text-primary"}),(0,b.jsxs)("span",{className:"absolute -top-1 -right-1 flex size-3",children:[(0,b.jsx)("span",{className:"animate-ping absolute inline-flex size-full rounded-full bg-primary/60"}),(0,b.jsx)("span",{className:"relative inline-flex size-3 rounded-full bg-primary"})]})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground text-center max-w-xs",children:"Your agent is sending you a welcome email."}),(0,b.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,b.jsx)("p",{className:"text-center text-muted-foreground py-20 text-sm",children:"Send a message to start chatting with the agent."})),bL.map(a=>{if("nap"===a.kind)return(0,b.jsx)(av,{agentName:cd},a.data.id);if("artifact"===a.kind)return(0,b.jsx)(aw,{artifact:a.data,version:bG.get(a.data.id)??1,hasDuplicates:bH.has(a.data.filename),onClick:bM},`artifact-${a.data.id}`);let c=a.data;return(0,b.jsx)(an,{msg:c,agents:t,artifacts:aK,activeTask:ay,taskMessages:aA,connectionLost:aE,isLastMessage:ai.length>0&&ai[ai.length-1].id===c.id,stepCount:c.task_id?bo[c.task_id]??0:0,targetConvId:af,workspaceId:r,conversationType:ag?.type,pendingFilesByMessage:br,onArtifactClick:bM,onEmailClick:a=>{aV(a),aT(!0)},onCalendarEventClick:a=>{aZ(a),aX(!0)},onIssueClick:a=>cF(a),onRetry:cD,mentionComponents:aq,isFlagged:bx.has(c.id),onToggleFlag:"assistant"===c.role?cE:void 0},c.id)}),ay&&ay.conversation_id===ag?.id&&!["completed","failed","cancelled","superseded"].includes(ay.status)&&(0,b.jsx)(v,{task:ay,messages:aA,connectionLost:aE})]})}),(0,b.jsx)(ab.ScrollToBottomButton,{scrollRef:bO})]}),ag&&(0,b.jsx)(aa,{bufferedMessages:be,onDelete:a=>{bf(b=>b.filter(b=>b.id!==a)),(0,w.deleteBufferedMessage)(ag.id,a,r).catch(()=>{bf(be),C.toast.error("Failed to delete follow-up")})}}),(0,b.jsx)("div",{className:"px-3 md:px-5 py-3",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl relative",children:(0,b.jsxs)("div",{className:(0,i.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",am&&"opacity-50",ct&&"border-ring ring-3 ring-ring/50"),onDragEnter:cw,onDragLeave:cx,onDragOver:cy,onDrop:cz,children:[ct&&(0,b.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,b.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),b8.activeSkill&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"shrink-0 text-xs font-medium text-primary",children:["/",b8.activeSkill.name]}),b8.activeSkill.isGlobal&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground bg-muted rounded px-1 py-0.5",children:"Global"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:b8.activeSkill.description})]}),(0,b.jsx)("button",{type:"button",onClick:b8.clearActiveSkill,className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,b.jsx)(O.X,{className:"size-3.5"})})]}),bt&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex items-start gap-2",children:[(0,b.jsx)(L,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[bt.slice(0,120),bt.length>120?"...":""]})]}),(0,b.jsx)("button",{type:"button",onClick:()=>bu(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,b.jsx)(O.X,{className:"size-3.5"})})]}),(0,b.jsx)(Q,{isOpen:b2.isOpen,relatedAgents:b2.relatedAgents,otherAgents:b2.otherAgents,selectedIndex:b2.selectedIndex,onSelect:b2.selectAgent,anchorPos:b2.anchorPos}),(0,b.jsx)(S,{isOpen:b8.isOpen,skills:b8.skills,selectedIndex:b8.selectedIndex,onSelect:b8.selectSkill,anchorPos:b8.anchorPos}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.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:ak?U(ak.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),t).replace(/<mention[^>]*>/g,'<span class="mention-highlight">').replace(/<\/mention>/g,"</span>")+(ak.endsWith("\n")?"\n":""):""}}),(0,b.jsx)("textarea",{ref:b1,value:ak,enterKeyHint:"send",onChange:a=>{al(a.target.value),bh(a.target.selectionStart),requestAnimationFrame(()=>{let b=a.target.previousElementSibling;b&&(b.scrollTop=a.target.scrollTop)})},onKeyDown:a=>{b2.handleMentionKeyDown(a)||!b8.handleSlashKeyDown(a)&&("Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||(a.preventDefault(),cC()))},onPaste:cA,onKeyUp:a=>bh(a.target.selectionStart),onClick:a=>bh(a.target.selectionStart),onSelect:a=>bh(a.target.selectionStart),onScroll:a=>{let b=a.target.previousElementSibling;b&&(b.scrollTop=a.target.scrollTop)},placeholder:cM?"Type a follow-up...":"Type a message or / for skills...",rows:1,disabled:am,className:(0,i.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")})]}),bc.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pb-1",children:bc.map((a,c)=>(0,b.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,b.jsx)(J.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-30",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground/60",children:(0,V.formatSize)(a.size)}),(0,b.jsx)("button",{type:"button",onClick:()=>cq(c),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,b.jsx)(O.X,{className:"size-3"})})]},`${a.name}-${c}`))}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-2 pb-2 pt-0.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[!af&&(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:a=>(0,b.jsx)("span",{...a,className:(0,i.cn)("inline-flex",a.className),children:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onClick:cL,disabled:cI||!ag||!cK||cM,className:"rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200",children:cI?(0,b.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(H,{className:"size-3.5"})})})}),(0,b.jsx)(E.TooltipContent,{side:"top",children:cM?"Wait for the task to finish":cK?"Take a nap":`${cd} is well-rested and ready to go`})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsxs)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{aR("agent"),aN(!0)},className:"relative rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:[(0,b.jsx)(I,{className:"size-3.5"}),bF.length>0&&(0,b.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:bF.length})]}),(0,b.jsx)(E.TooltipContent,{side:"top",children:"Artifacts"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("input",{ref:b0,type:"file",multiple:!0,className:"hidden",onChange:cp}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onPointerDown:a=>a.preventDefault(),onClick:()=>b0.current?.click(),disabled:am,className:"rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,b.jsx)(M.Paperclip,{className:"size-3.5"})}),(0,b.jsx)(E.TooltipContent,{side:"top",children:"Attach files"})]}),!cM||ak.trim()||am?(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{size:"icon-sm",onClick:cC,disabled:!ak.trim()||am,className:(0,i.cn)("rounded-lg transition-opacity duration-200",!ak.trim()&&"opacity-40")}),children:am?(0,b.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(F.ArrowUp,{className:"size-3.5"})}),(0,b.jsx)(E.TooltipContent,{side:"top",children:"Send"})]}):(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{size:"icon-sm",onClick:cB,disabled:ap,className:"rounded-lg bg-red-500/10 text-red-500 hover:bg-red-500/20 transition-colors duration-200"}),children:ap?(0,b.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(N.Square,{className:"size-3.5 fill-current"})}),(0,b.jsx)(E.TooltipContent,{side:"top",children:"Stop task"})]})]})]})]})})}),(0,b.jsx)(V.ArtifactSheet,{open:aM,onOpenChange:a=>{aN(a),a||setTimeout(()=>{aP(null),aR(null)},300)},artifacts:bI,workspaceId:r,initialArtifact:aO,versionMap:bJ,duplicateFilenames:bK}),(0,b.jsx)(Y,{open:aS,onOpenChange:a=>{aT(a),a||setTimeout(()=>aV(null),300)},emailId:aU,workspaceId:r}),(0,b.jsx)(Z.CalendarEventSheet,{readonly:!0,open:aW,onOpenChange:a=>{aX(a),a||setTimeout(()=>aZ(null),300)},calendarEventId:aY,workspaceId:r}),(0,b.jsx)($.IssueSheet,{open:a$,onOpenChange:a=>{a_(a),a||setTimeout(()=>{a1(null),a3(null),a9(null)},300)},agents:t,issue:a2?.issue??null,detail:a2?{messages:a2.messages,comments:a2.comments,artifacts:a2.artifacts,traceId:a2.issue.trace_id}:null,detailLoading:a4,activeTask:a8,traceTasks:a6,slug:s,workspaceId:r,width:ba,onWidthChange:bb,onUpdate:async(a,b)=>{try{let c=await (0,w.updateIssue)(r,a,b);a3(d=>d&&d.issue.id===a?{...d,issue:{...d.issue,...b,updated_at:c.updated_at}}:d)}catch(a){C.toast.error(a instanceof Error?a.message:"Failed to update issue")}},onStatusChange:async(a,b)=>{try{await (0,w.updateIssue)(r,a,{status:b}),a3(c=>c&&c.issue.id===a?{...c,issue:{...c.issue,status:b}}:c)}catch(a){C.toast.error(a instanceof Error?a.message:"Failed to update status")}},onCommented:()=>{a0&&cF(a0)},onArtifactClick:bN})]}):(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}}];
|
|
3
|
+
${a}`:a;b8.activeSkill&&(b=`/${b8.activeSkill.name} ${b}`);let c=[...bc];if(al(""),bd([]),bu(null),b8.clearActiveSkill(),an(!0),as&&!["completed","failed","cancelled","superseded"].includes(as.status)){let a=`temp-${Date.now()}`,d={id:a,conversation_id:ag.id,role:"user",content:b,task_id:null,attachment_ids:null,status:"buffered",created_at:new Date().toISOString()};bf(a=>[...a,d]);try{let{message:d}=await (0,w.createBufferedMessage)(ag.id,b,r,c.length>0?c:void 0);bf(b=>b.some(a=>a.id===d.id)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?d:b))}catch(d){bf(b=>b.filter(b=>b.id!==a)),al(b),bd(c),C.toast.error(d instanceof Error?d.message:"Failed to queue follow-up")}finally{an(!1)}return}let d=`temp-${Date.now()}`,e={id:d,conversation_id:ag.id,role:"user",content:b,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};c.length>0&&bs(a=>{let b=new Map(a);return b.set(d,c),b}),aj(a=>[...a,e]),b9();try{let{message:a,task:f}=await (0,w.sendMessage)(ag.id,b,r,c.length>0?c:void 0);bs(a=>{if(!a.has(d))return a;let b=new Map(a);return b.delete(d),b}),aj(b=>b.map(b=>b.id===e.id?a:b)),a.attachment_ids&&a.attachment_ids.length>0&&(0,w.listArtifacts)(ag.id,r).then(a=>aL(a)).catch(()=>{}),az(f),aB([]),cn(f.id,ag.id)}catch(a){bs(a=>{if(!a.has(d))return a;let b=new Map(a);return b.delete(d),b}),aj(a=>a.filter(a=>a.id!==e.id)),al(b),bd(c),C.toast.error(a instanceof Error?a.message:"Failed to send message")}finally{an(!1),b1.current?.focus()}},cD=(0,c.useCallback)(async()=>{if(!as||!ag)return;let a=await (0,w.retryTask)(as.id,r);az(a),aB([]),cn(a.id,ag.id)},[as,ag,r,cn]),cE=(0,c.useCallback)(async a=>{let b=bz.current.has(a);by(c=>{let d=new Set(c);return b?d.delete(a):d.add(a),d}),b?(bB(),(0,w.unflagMessage)(r,a).then(()=>{bC()}).catch(()=>{by(b=>new Set(b).add(a)),bA()})):(bA(),(0,w.flagMessage)(r,a).then(()=>{bC()}).catch(()=>{by(b=>{let c=new Set(b);return c.delete(a),c}),bB()}))},[r,bA,bB,bC]),cF=(0,c.useCallback)(async a=>{a1(a),a_(!0),a5(!0),a7(null),a9(null);try{let b=await (0,w.getIssue)(r,a);a3(b),b.issue.latest_task_id&&(0,w.getTask)(b.issue.latest_task_id,r).then(a=>a9(a)).catch(()=>a9(null)),b.issue.trace_id&&(0,w.getTrace)(b.issue.trace_id,r).then(a=>a7(a.tasks)).catch(()=>a7(null))}catch(a){C.toast.error(a instanceof Error?a.message:"Failed to load issue"),a_(!1)}finally{a5(!1)}},[r]),cG=a2?.issue?.conversation_id??null,cH=a2?.issue?.latest_task_id??null;(0,c.useEffect)(()=>{if(a$&&a0)return P(a=>{if("task.updated"===a.type&&cH&&a.taskId===cH&&(0,w.getTask)(cH,r).then(a=>a9(a)).catch(()=>{}),"conversation.message"===a.type&&cG&&a.conversationId===cG&&(a3(b=>!b||b.messages.some(b=>b.id===a.message.id)?b:{...b,messages:[...b.messages,a.message]}),"event"===a.message.role&&a.message.content.startsWith("Issue status changed:"))){let b=a.message.content.match(/-> (\w+)/);b&&a3(a=>a?{...a,issue:{...a.issue,status:b[1]}}:a)}"issue.comment"===a.type&&a.issueId===a0&&a3(b=>!b||b.comments.some(b=>b.id===a.comment.id)?b:{...b,comments:[...b.comments,a.comment]})})},[a$,a0,cG,cH,r,P]);let[cI,cJ]=(0,c.useState)(!1),cK=(0,c.useMemo)(()=>!!ag&&ai.some(a=>a.conversation_id===ag.id),[ag,ai]),cL=async()=>{if(ag&&cK&&!cI){cJ(!0);try{bP.current&&(clearInterval(bP.current),bP.current=null);let a=await (0,w.createConversation)(Y,r,T);bn(b=>[...b,{agentName:cd,created_at:a.created_at,id:`nap-${ag.id}`}]),bj(a=>[{id:ag.id,created_at:ag.created_at},...a]),ah(a),az(null),aB([]),aL([]),bf([]),bd([]),bs(new Map),bS.current=0,aF(!1),aH(!1),bZ.current=null,b9()}catch{C.toast.error("Failed to start new conversation")}finally{cJ(!1)}}},cM=!!as&&!["completed","failed","cancelled","superseded"].includes(as.status);return aC?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-3 md:px-5",children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4",children:[(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(D.Skeleton,{className:"h-10 w-48 rounded-lg"})}),(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,b.jsx)(D.Skeleton,{className:"h-4 w-72"}),(0,b.jsx)(D.Skeleton,{className:"h-4 w-56"}),(0,b.jsx)(D.Skeleton,{className:"h-4 w-64"})]})}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(D.Skeleton,{className:"h-10 w-36 rounded-lg"})}),(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,b.jsx)(D.Skeleton,{className:"h-4 w-64"}),(0,b.jsx)(D.Skeleton,{className:"h-4 w-48"})]})})]})}),(0,b.jsx)("div",{className:"px-3 md:px-5 py-3",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl",children:(0,b.jsx)(D.Skeleton,{className:"h-18 w-full rounded-xl"})})})]}):aC||ag||0!==ai.length?(0,b.jsxs)(b.Fragment,{children:[bv&&(0,b.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:bv.x,top:bv.y,transform:"translate(-100%, -100%)"},onMouseDown:a=>a.preventDefault(),onClick:cs,children:[(0,b.jsx)(L,{className:"size-3"}),"Quote"]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0",children:[(0,b.jsx)("div",{className:"h-full overflow-y-auto overflow-x-hidden px-3 md:px-5 thin-scrollbar",ref:bO,onScroll:cm,onClick:a=>{a.target.closest('[data-streamdown="code-block-actions"] button')&&C.toast.success("Copied to clipboard")},children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4 min-w-0",children:[ag&&cl&&!aI&&(0,b.jsx)("div",{className:"flex justify-center py-2",children:(0,b.jsx)("button",{onClick:()=>ck(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),aI&&(0,b.jsx)("div",{className:"flex justify-center py-2",children:(0,b.jsx)(o.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===ai.length&&!as&&(l=t.find(a=>a.id===Y),m=l?.created_at&&bq-new Date(l.created_at).getTime()<3e5,n=(G[Y]??0)>0,m&&n&&"default"===T?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 gap-3 animate-[fade-up_400ms_ease-out_both]",children:[(0,b.jsxs)("div",{className:"relative animate-bounce",children:[(0,b.jsx)(K.Mail,{className:"size-8 text-primary"}),(0,b.jsxs)("span",{className:"absolute -top-1 -right-1 flex size-3",children:[(0,b.jsx)("span",{className:"animate-ping absolute inline-flex size-full rounded-full bg-primary/60"}),(0,b.jsx)("span",{className:"relative inline-flex size-3 rounded-full bg-primary"})]})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground text-center max-w-xs",children:"Your agent is sending you a welcome email."}),(0,b.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,b.jsx)("p",{className:"text-center text-muted-foreground py-20 text-sm",children:"Send a message to start chatting with the agent."})),bL.map(a=>{if("nap"===a.kind)return(0,b.jsx)(aw,{agentName:cd},a.data.id);if("artifact"===a.kind)return(0,b.jsx)(ax,{artifact:a.data,version:bG.get(a.data.id)??1,hasDuplicates:bH.has(a.data.filename),onClick:bM},`artifact-${a.data.id}`);let c=a.data;return(0,b.jsx)(ao,{msg:c,agents:t,artifacts:aK,activeTask:as,taskMessages:aA,connectionLost:aE,isLastMessage:ai.length>0&&ai[ai.length-1].id===c.id,stepCount:c.task_id?bo[c.task_id]??0:0,targetConvId:af,workspaceId:r,conversationType:ag?.type,pendingFilesByMessage:br,onArtifactClick:bM,onEmailClick:a=>{aV(a),aT(!0)},onCalendarEventClick:a=>{aZ(a),aX(!0)},onIssueClick:a=>cF(a),onRetry:cD,mentionComponents:ar,isFlagged:bx.has(c.id),onToggleFlag:"assistant"===c.role?cE:void 0},c.id)}),as&&as.conversation_id===ag?.id&&!["completed","failed","cancelled","superseded"].includes(as.status)&&(0,b.jsx)(v,{task:as,messages:aA,connectionLost:aE})]})}),(0,b.jsx)(ac.ScrollToBottomButton,{scrollRef:bO})]}),ag&&(0,b.jsx)(ab,{bufferedMessages:be,onDelete:a=>{bf(b=>b.filter(b=>b.id!==a)),(0,w.deleteBufferedMessage)(ag.id,a,r).catch(()=>{bf(be),C.toast.error("Failed to delete follow-up")})}}),(0,b.jsx)("div",{className:"px-3 md:px-5 py-3",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl relative",children:(0,b.jsxs)("div",{className:(0,i.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",am&&"opacity-50",ct&&"border-ring ring-3 ring-ring/50"),onDragEnter:cw,onDragLeave:cx,onDragOver:cy,onDrop:cz,children:[ct&&(0,b.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,b.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),b8.activeSkill&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"shrink-0 text-xs font-medium text-primary",children:["/",b8.activeSkill.name]}),b8.activeSkill.isGlobal&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground bg-muted rounded px-1 py-0.5",children:"Global"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:b8.activeSkill.description})]}),(0,b.jsx)("button",{type:"button",onClick:b8.clearActiveSkill,className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,b.jsx)(O.X,{className:"size-3.5"})})]}),bt&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex items-start gap-2",children:[(0,b.jsx)(L,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[bt.slice(0,120),bt.length>120?"...":""]})]}),(0,b.jsx)("button",{type:"button",onClick:()=>bu(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,b.jsx)(O.X,{className:"size-3.5"})})]}),(0,b.jsx)(Q,{isOpen:b2.isOpen,relatedAgents:b2.relatedAgents,otherAgents:b2.otherAgents,selectedIndex:b2.selectedIndex,onSelect:b2.selectAgent,anchorPos:b2.anchorPos}),(0,b.jsx)(S,{isOpen:b8.isOpen,skills:b8.skills,selectedIndex:b8.selectedIndex,onSelect:b8.selectSkill,anchorPos:b8.anchorPos}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.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:ak?U(ak.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),t).replace(/<mention[^>]*>/g,'<span class="mention-highlight">').replace(/<\/mention>/g,"</span>")+(ak.endsWith("\n")?"\n":""):""}}),(0,b.jsx)("textarea",{ref:b1,value:ak,enterKeyHint:"send",onChange:a=>{al(a.target.value),bh(a.target.selectionStart),requestAnimationFrame(()=>{let b=a.target.previousElementSibling;b&&(b.scrollTop=a.target.scrollTop)})},onKeyDown:a=>{b2.handleMentionKeyDown(a)||!b8.handleSlashKeyDown(a)&&("Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||(a.preventDefault(),cC()))},onPaste:cA,onKeyUp:a=>bh(a.target.selectionStart),onClick:a=>bh(a.target.selectionStart),onSelect:a=>bh(a.target.selectionStart),onScroll:a=>{let b=a.target.previousElementSibling;b&&(b.scrollTop=a.target.scrollTop)},placeholder:cM?"Type a follow-up...":"Type a message or / for skills...",rows:1,disabled:am,className:(0,i.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")})]}),bc.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pb-1",children:bc.map((a,c)=>(0,b.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,b.jsx)(J.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-30",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground/60",children:(0,V.formatSize)(a.size)}),(0,b.jsx)("button",{type:"button",onClick:()=>cq(c),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,b.jsx)(O.X,{className:"size-3"})})]},`${a.name}-${c}`))}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-2 pb-2 pt-0.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[!af&&(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:a=>(0,b.jsx)("span",{...a,className:(0,i.cn)("inline-flex",a.className),children:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onClick:cL,disabled:cI||!ag||!cK||cM,className:"rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200",children:cI?(0,b.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(H,{className:"size-3.5"})})})}),(0,b.jsx)(E.TooltipContent,{side:"top",children:cM?"Wait for the task to finish":cK?"Take a nap":`${cd} is well-rested and ready to go`})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsxs)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{aR("agent"),aN(!0)},className:"relative rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:[(0,b.jsx)(I,{className:"size-3.5"}),bF.length>0&&(0,b.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:bF.length})]}),(0,b.jsx)(E.TooltipContent,{side:"top",children:"Artifacts"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("input",{ref:b0,type:"file",multiple:!0,className:"hidden",onChange:cp}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onPointerDown:a=>a.preventDefault(),onClick:()=>b0.current?.click(),disabled:am,className:"rounded-lg text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,b.jsx)(M.Paperclip,{className:"size-3.5"})}),(0,b.jsx)(E.TooltipContent,{side:"top",children:"Attach files"})]}),!cM||ak.trim()||am?(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{size:"icon-sm",onClick:cC,disabled:!ak.trim()||am,className:(0,i.cn)("rounded-lg transition-opacity duration-200",!ak.trim()&&"opacity-40")}),children:am?(0,b.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(F.ArrowUp,{className:"size-3.5"})}),(0,b.jsx)(E.TooltipContent,{side:"top",children:"Send"})]}):(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{render:(0,b.jsx)(g.Button,{size:"icon-sm",onClick:cB,disabled:ap,className:"rounded-lg bg-red-500/10 text-red-500 hover:bg-red-500/20 transition-colors duration-200"}),children:ap?(0,b.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(N.Square,{className:"size-3.5 fill-current"})}),(0,b.jsx)(E.TooltipContent,{side:"top",children:"Stop task"})]})]})]})]})})}),(0,b.jsx)(V.ArtifactSheet,{open:aM,onOpenChange:a=>{aN(a),a||setTimeout(()=>{aP(null),aR(null)},300)},artifacts:bI,workspaceId:r,initialArtifact:aO,versionMap:bJ,duplicateFilenames:bK}),(0,b.jsx)(Z,{open:aS,onOpenChange:a=>{aT(a),a||setTimeout(()=>aV(null),300)},emailId:aU,workspaceId:r}),(0,b.jsx)($.CalendarEventSheet,{readonly:!0,open:aW,onOpenChange:a=>{aX(a),a||setTimeout(()=>aZ(null),300)},calendarEventId:aY,workspaceId:r}),(0,b.jsx)(_.IssueSheet,{open:a$,onOpenChange:a=>{a_(a),a||setTimeout(()=>{a1(null),a3(null),a9(null)},300)},agents:t,issue:a2?.issue??null,detail:a2?{messages:a2.messages,comments:a2.comments,artifacts:a2.artifacts,traceId:a2.issue.trace_id}:null,detailLoading:a4,activeTask:a8,traceTasks:a6,slug:s,workspaceId:r,width:ba,onWidthChange:bb,onUpdate:async(a,b)=>{try{let c=await (0,w.updateIssue)(r,a,b);a3(d=>d&&d.issue.id===a?{...d,issue:{...d.issue,...b,updated_at:c.updated_at}}:d)}catch(a){C.toast.error(a instanceof Error?a.message:"Failed to update issue")}},onStatusChange:async(a,b)=>{try{await (0,w.updateIssue)(r,a,{status:b}),a3(c=>c&&c.issue.id===a?{...c,issue:{...c.issue,status:b}}:c)}catch(a){C.toast.error(a instanceof Error?a.message:"Failed to update status")}},onCommented:()=>{a0&&cF(a0)},onArtifactClick:bN})]}):(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}}];
|
|
4
4
|
|
|
5
5
|
//# sourceMappingURL=src_web_src_0~23g-y._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[489351,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(207058),e=a.i(921584),f=a.i(75118),g=a.i(752792),h=a.i(506180),i=a.i(732254),j=a.i(552012),k=a.i(588339),l=a.i(38763),m=a.i(25668),n=a.i(905890),o=a.i(316215);function p({events:a,agents:c,loading:d,onSelectEvent:e}){let g=function(a){let b=new Map;for(let c of a){let a=new Date(c.scheduled_at),d=(0,l.dateKey)(a);if(!b.has(d)){let c=new Date(a.getFullYear(),a.getMonth(),a.getDate());b.set(d,{day:c,items:[]})}b.get(d).items.push(c)}let c=[...b.values()].sort((a,b)=>a.day.getTime()-b.day.getTime());for(let a of c)a.items.sort((a,b)=>new Date(a.scheduled_at).getTime()-new Date(b.scheduled_at).getTime());return c}(a),h=new Map;for(let a of c)h.set(a.id,a.name);let i=new Date;return d&&0===a.length?(0,b.jsx)("div",{className:"flex flex-col gap-4",children:Array.from({length:4}).map((a,c)=>(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(m.Skeleton,{className:"h-3 w-24"}),Array.from({length:2}).map((a,c)=>(0,b.jsx)(m.Skeleton,{className:"h-8 w-full rounded-md"},c))]},c))}):0===g.length?(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center py-12",children:(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"No events in view."}),(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Switch to month view or create a new event above."})]})}):(0,b.jsx)("div",{className:"flex flex-col gap-4","data-testid":"calendar-agenda",children:g.map(a=>{let c=i.getFullYear()===a.day.getFullYear()&&i.getMonth()===a.day.getMonth()&&i.getDate()===a.day.getDate();return(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("h3",{className:(0,f.cn)("sticky top-0 z-10 py-1 text-[11px] font-medium text-muted-foreground",c&&"text-foreground"),children:[a.day.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}),c&&(0,b.jsx)("span",{className:"ml-2 rounded-full bg-foreground text-background px-1.5 py-0.5 text-[10px]",children:"Today"})]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:a.items.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>e(a),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,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground tabular-nums w-16",children:new Date(a.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}),(0,b.jsx)("span",{className:(0,f.cn)("shrink-0 rounded-sm px-1.5 py-0.5 text-[10px] font-medium",(0,n.agentColor)(a.agent_id)),children:h.get(a.agent_id)??a.agent_id}),(0,b.jsx)("span",{className:"flex-1 truncate text-sm",children:a.title}),a.repeat_interval&&(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(0,o.formatRepeatDisplay)(a.repeat_interval)}),null!=a.collapsed_count&&a.collapsed_count>1&&(0,b.jsxs)("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:["× ",a.collapsed_count," today"]})]})},`${a.id}@${a.occurrence_at}`))})]},(0,l.dateKey)(a.day))})})}var q=a.i(807018),r=a.i(143984),s=a.i(313404);function t(a){let b=new Date(a.getFullYear(),a.getMonth(),a.getDate());return b.setDate(b.getDate()-b.getDay()),b}function u(a){let b,c=t(a),d=((b=new Date(t(a))).setDate(b.getDate()+6),b.setHours(23,59,59,999),b);return{from:c.toISOString(),to:d.toISOString()}}let v=Array.from({length:24},(a,b)=>b);function w({weekStart:a,events:d,agents:e,loading:g,focusedDate:h,compact:j=!1,onPrevWeek:k,onNextWeek:o,onJumpToToday:p,onJumpToDate:t,onSelectSlot:u,onSelectEvent:x,headerExtras:y}){let z,A,B,C,D=j?36:48,E=j?"2.5rem":"3.5rem",F=(0,c.useRef)(null),G=(0,c.useRef)(!1),H=new Date,I=new Date(a);I.setDate(I.getDate()+6);let J=(z=a.toLocaleDateString("en-US",{month:"short"}),A=I.toLocaleDateString("en-US",{month:"short"}),B=a.getFullYear(),B!==(C=I.getFullYear())?`${z} ${a.getDate()}, ${B}\u2013${A} ${I.getDate()}, ${C}`:z!==A?`${z} ${a.getDate()}\u2013${A} ${I.getDate()}, ${C}`:`${z} ${a.getDate()}\u2013${I.getDate()}, ${B}`),K=H>=a&&H<=new Date(I.getFullYear(),I.getMonth(),I.getDate(),23,59,59,999),L=(0,c.useMemo)(()=>{let b=[];for(let c=0;c<7;c++){let d=new Date(a);d.setDate(a.getDate()+c),b.push(d)}return b},[a]),M=(0,c.useMemo)(()=>{let a=new Map;for(let b of d){let c=(0,l.dateKey)(new Date(b.scheduled_at));a.has(c)||a.set(c,[]),a.get(c).push(b)}return a},[d]),N=(0,c.useMemo)(()=>{let a=new Map;for(let[b,c]of M)a.set(b,function(a){if(0===a.length)return[];let b=[...a].sort((a,b)=>new Date(a.scheduled_at).getTime()-new Date(b.scheduled_at).getTime()),c=[],d=[b[0]],e=new Date(b[0].scheduled_at).getTime()+18e5;for(let a=1;a<b.length;a++){let f=new Date(b[a].scheduled_at).getTime();if(f<e){d.push(b[a]);let c=f+18e5;c>e&&(e=c)}else c.push(d),d=[b[a]],e=f+18e5}c.push(d);let f=[];for(let a of c){let b=a.length;for(let c=0;c<a.length;c++)f.push({event:a[c],columnIndex:c,columnCount:b})}return f}(c));return a},[M]),O=(0,c.useMemo)(()=>{let a=new Map;for(let b of e)a.set(b.id,b.name);return a},[e]);(0,c.useEffect)(()=>{if(G.current||!F.current)return;let a=Math.max(0,(new Date().getHours()-1)*D);F.current.scrollTop=a,G.current=!0},[D]);let P=(0,c.useMemo)(()=>{let a=new Date;return a.getHours()+a.getMinutes()/60},[]);if(g&&0===d.length){let a=`${E} repeat(7, 1fr)`;return(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,b.jsx)(m.Skeleton,{className:"h-5 w-48"}),(0,b.jsx)(m.Skeleton,{className:"h-7 w-32"})]}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[(0,b.jsxs)("div",{className:"border-b border-border/30 shrink-0",style:{display:"grid",gridTemplateColumns:a},children:[(0,b.jsx)("div",{className:"h-8"}),Array.from({length:7}).map((a,c)=>(0,b.jsx)(m.Skeleton,{className:"h-5 mx-2 my-1.5"},c))]}),(0,b.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:Array.from({length:12}).map((c,d)=>(0,b.jsxs)("div",{className:"border-b border-border/10",style:{display:"grid",gridTemplateColumns:a,height:D},children:[(0,b.jsx)(m.Skeleton,{className:"h-3 w-8 mx-1 my-2"}),Array.from({length:7}).map((a,c)=>(0,b.jsx)("div",{className:"relative",children:d%4==c%3&&(0,b.jsx)(m.Skeleton,{className:"absolute left-1 right-1 top-2 rounded-sm",style:{height:24}})},c))]},d))})]})]})}return(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,b.jsx)("h2",{className:"text-sm font-medium tabular-nums",children:J}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[y,(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button","aria-label":"Previous week",onClick:k,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,b.jsx)(q.ChevronLeft,{className:"size-4"})}),(0,b.jsx)(i.Button,{variant:"outline",size:"sm",onClick:p,disabled:K,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,b.jsx)("button",{type:"button","aria-label":"Next week",onClick:o,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,b.jsx)(r.ChevronRight,{className:"size-4"})})]}),(0,b.jsx)(s.CalendarDatePicker,{value:h,onChange:t,ariaLabel:"Jump to date"})]})]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[g&&(0,b.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,b.jsx)("div",{className:"h-full w-1/3 animate-[calendar-progress_1.2s_ease-in-out_infinite] bg-foreground/40"})}),(0,b.jsxs)("div",{role:"grid","aria-label":`Week of ${J}`,"aria-busy":g||void 0,className:(0,f.cn)("flex flex-1 flex-col min-h-0 transition-opacity",g&&"opacity-70"),children:[(0,b.jsxs)("div",{role:"row",className:"sticky top-0 z-10 border-b border-border/30 bg-background",style:{display:"grid",gridTemplateColumns:`${E} repeat(7, 1fr)`},children:[(0,b.jsx)("div",{role:"columnheader",className:"h-8"}),L.map(a=>{let c=(0,l.sameDay)(a,H);return(0,b.jsx)("div",{role:"columnheader","aria-current":c?"date":void 0,className:(0,f.cn)("flex items-center justify-center h-8 text-xs font-medium",c?"text-foreground":"text-muted-foreground"),children:(0,b.jsx)("span",{className:(0,f.cn)("px-1.5 py-0.5 rounded-md",c&&"bg-foreground text-background"),children:function(a,b){if(b)return["S","M","T","W","T","F","S"][a.getDay()];let c=a.toLocaleDateString("en-US",{weekday:"short"});return`${c} ${a.getDate()}`}(a,j)})},(0,l.dateKey)(a))})]}),(0,b.jsx)("div",{ref:F,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar",children:(0,b.jsxs)("div",{className:"relative",style:{display:"grid",gridTemplateColumns:`${E} repeat(7, 1fr)`},children:[(0,b.jsx)("div",{role:"rowheader",className:"relative",children:v.map(a=>{var c;return(0,b.jsx)("div",{className:"flex items-start justify-end pr-2 text-[10px] text-muted-foreground tabular-nums",style:{height:D},children:(0,b.jsx)("span",{className:"-mt-1.5",children:0===a?"":(c=a,j?0===c?"12a":c<12?`${c}a`:12===c?"12p":`${c-12}p`:`${String(c).padStart(2,"0")}:00`)})},a)})}),L.map(a=>{let c=(0,l.dateKey)(a),d=(0,l.sameDay)(a,H),e=N.get(c)??[];return(0,b.jsxs)("div",{className:"relative border-l border-border/20",style:{height:24*D},children:[v.map(c=>(0,b.jsx)("div",{className:"absolute inset-x-0 border-t border-border/15 cursor-pointer hover:bg-accent/30 transition-colors",style:{top:c*D,height:D},onClick:()=>u(a,c)},c)),d&&(0,b.jsxs)("div",{className:"absolute inset-x-0 z-10 pointer-events-none",style:{top:P*D},children:[(0,b.jsx)("div",{className:"h-px bg-foreground/40"}),(0,b.jsx)("div",{className:"absolute -left-0.5 -top-0.75 size-1.75 rounded-full bg-foreground/40"})]}),e.map(({event:a,columnIndex:c,columnCount:d})=>{let e,g=(e=new Date(a.scheduled_at)).getHours()+e.getMinutes()/60,h=100/d,i=O.get(a.agent_id),k=new Date(a.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1});return(0,b.jsxs)("button",{type:"button",role:"button","aria-label":`${a.title} at ${k}${i?` \u2014 ${i}`:""}`,onClick:b=>{b.stopPropagation(),x(a)},className:(0,f.cn)("absolute rounded-sm font-medium truncate text-left transition-colors hover:opacity-80 cursor-pointer",j?"text-[9px] px-1":"text-[10px] px-1.5",(0,n.agentColor)(a.agent_id)),style:{top:g*D,height:24,left:`${c*h}%`,width:`calc(${h}% - 2px)`,marginLeft:1,lineHeight:"24px"},title:`${a.title}${i?` \u2014 ${i}`:""}`,children:[a.title,null!=a.collapsed_count&&a.collapsed_count>1&&(0,b.jsxs)("span",{className:"ml-0.5 opacity-70",children:["×",a.collapsed_count]})]},`${a.id}@${a.occurrence_at}`)})]},c)})]})})]})]})]})}function x({view:a,onChange:c}){return(0,b.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(d=>{let e=a===d;return(0,b.jsx)("button",{type:"button",role:"radio","aria-checked":e,onClick:()=>c(d),className:(0,f.cn)("h-6 px-2.5 rounded text-xs font-medium transition-colors capitalize",e?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:d},d)})})}function y({agents:a,selected:c,onToggle:d}){return(0,b.jsx)("div",{className:"flex min-h-6 items-center gap-1.5 overflow-x-auto flex-nowrap scrollbar-none sm:flex-wrap sm:overflow-x-visible",children:0===a.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.Skeleton,{className:"h-6 w-20 rounded-full"}),(0,b.jsx)(m.Skeleton,{className:"h-6 w-24 rounded-full"}),(0,b.jsx)(m.Skeleton,{className:"h-6 w-16 rounded-full"})]}):a.map(a=>{let e=c.has(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>d(a.id),className:(0,f.cn)("flex h-6 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-[11px] font-medium transition-colors",e?"bg-foreground text-background":"bg-transparent text-muted-foreground border border-border hover:bg-accent"),children:[(0,b.jsx)("span",{className:(0,f.cn)("size-2 rounded-full",(0,n.agentColor)(a.id).split(" ")[0])}),(0,b.jsx)("span",{className:"max-w-[120px] truncate sm:max-w-none",children:a.name})]},a.id)})})}var z=a.i(276163),A=a.i(586220);function B(a,b){let c=(0,l.buildMonthCells)(a,b),d=c[0].date,e=c[c.length-1].date,f=new Date(d.getFullYear(),d.getMonth(),d.getDate(),0,0,0,0),g=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999);return{from:f.toISOString(),to:g.toISOString()}}a.s(["default",0,function(){var a;let{workspaceId:m}=(0,h.useWorkspace)(),{agents:n}=(0,g.useAgentContext)(),o=(0,d.useRouter)(),q=(0,d.usePathname)(),r=(0,d.useSearchParams)(),s=(0,A.useIsMobile)(),v=new Date,C=Number(r.get("y"))||v.getFullYear(),D=r.has("m")?Number(r.get("m")):v.getMonth(),E="week"===(a=r.get("view"))?"week":"agenda"===a?"agenda":"month",[F,G]=(0,c.useState)(C),[H,I]=(0,c.useState)(D),[J,K]=(0,c.useState)(E),[L,M]=(0,c.useState)(()=>{let a=r.get("agents");return a?new Set(a.split(",").filter(Boolean)):new Set}),[N,O]=(0,c.useState)(()=>{let a=new Date;return a.getFullYear()===C&&a.getMonth()===D?a:new Date(C,D,1)}),[P,Q]=(0,c.useState)(()=>"week"===E&&r.has("d")?t(new Date(C,D,Number(r.get("d")))):t(new Date)),[R,S]=(0,c.useState)(null),[T,U]=(0,c.useState)([]),[V,W]=(0,c.useState)(!0),[X,Y]=(0,c.useState)(!1),[Z,$]=(0,c.useState)(),[_,aa]=(0,c.useState)(null),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)(!1),[af,ag]=(0,c.useState)(!1),[ah,ai]=(0,c.useState)(null),aj=(0,c.useCallback)((a,b,c,d,e)=>{let f=new URLSearchParams;f.set("y",String(a)),f.set("m",String(b)),c.size>0&&f.set("agents",[...c].join(",")),"month"!==d&&f.set("view",d),"week"===d&&e&&f.set("d",String(e.getDate())),o.replace(`${q}?${f.toString()}`,{scroll:!1})},[q,o]),ak=(0,c.useCallback)(async()=>{let{from:a,to:b}="week"===J?u(P):B(F,H);W(!0);try{let c=await (0,k.listCalendarEvents)(m,{from:a,to:b});U(c)}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to load events")}finally{W(!1)}},[m,F,H,J,P]);(0,c.useEffect)(()=>{ak()},[ak]);let al=(0,c.useMemo)(()=>0===L.size?T:T.filter(a=>L.has(a.agent_id)),[T,L]),am=(0,c.useCallback)(()=>{let a=0===H?11:H-1,b=0===H?F-1:F;I(a),G(b),O(new Date(b,a,1)),aj(b,a,L,J)},[H,F,L,J,aj]),an=(0,c.useCallback)(()=>{let a=11===H?0:H+1,b=11===H?F+1:F;I(a),G(b),O(new Date(b,a,1)),aj(b,a,L,J)},[H,F,L,J,aj]),ao=(0,c.useCallback)(()=>{let a=new Date(P);a.setDate(a.getDate()-7),Q(a),O(a),aj(a.getFullYear(),a.getMonth(),L,"week",a)},[P,L,aj]),ap=(0,c.useCallback)(()=>{let a=new Date(P);a.setDate(a.getDate()+7),Q(a),O(a),aj(a.getFullYear(),a.getMonth(),L,"week",a)},[P,L,aj]),aq=a=>{aa(a),ac(!0)},ar=(0,c.useCallback)(a=>{let b=a.getFullYear(),c=a.getMonth();if(G(b),I(c),O(a),"week"===J){let d=t(a);Q(d),aj(b,c,L,J,d)}else aj(b,c,L,J)},[L,J,aj]),as=(0,c.useCallback)(()=>{let a=new Date;if("week"===J){let b=t(a);Q(b),O(a),aj(b.getFullYear(),b.getMonth(),L,"week",b)}else ar(a)},[ar,J,L,aj]),at=(0,c.useCallback)(a=>{if(K(a),"week"===a){let b=t(N);Q(b),aj(F,H,L,a,b)}else if("week"===J){let b=P.getFullYear(),c=P.getMonth();G(b),I(c),aj(b,c,L,a)}else aj(F,H,L,a)},[F,H,L,aj,N,J,P]),au=async a=>{ae(!0);try{let b=await (0,k.createCalendarEvent)(a,m),{from:c,to:d}="week"===J?u(P):B(F,H),f=new Date(b.scheduled_at).getTime();f>=new Date(c).getTime()&&f<=new Date(d).getTime()&&U(a=>[...a,b]),Y(!1),e.toast.success("Event created")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to create event")}finally{ae(!1)}},av=async(a,b)=>{ag(!0);try{await (0,k.updateCalendarEvent)(a.id,b,m),await ak(),ac(!1),aa(null),e.toast.success("Event updated")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to update event")}finally{ag(!1)}},aw=async(a,b)=>{ai(a.id);try{await (0,k.deleteCalendarEvent)(a.id,m,b),b?.scope?await ak():U(b=>b.filter(b=>b.id!==a.id)),ac(!1),aa(null),e.toast.success("Event deleted")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to delete event")}finally{ai(null)}},ax=(0,c.useRef)(X),ay=(0,c.useRef)(ab);(0,c.useEffect)(()=>{ax.current=X},[X]),(0,c.useEffect)(()=>{ay.current=ab},[ab]);let az=(0,c.useCallback)(a=>{let b=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`,c=0;for(let a of al){let d=new Date(a.scheduled_at);`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`===b&&c++}return Math.max(0,c-3)},[al]);return(0,c.useEffect)(()=>{let a=a=>{if(ax.current||ay.current||function(a){if(!a||"string"!=typeof a.tagName)return!1;let b=a.tagName;return"INPUT"===b||"TEXTAREA"===b||"SELECT"===b||!!a.isContentEditable}(a.target))return;if("t"===a.key){a.preventDefault();let b=new Date;if("week"===J){let a=t(b);Q(a),O(b),aj(a.getFullYear(),a.getMonth(),L,"week",a)}else b.getFullYear()!==F||b.getMonth()!==H?ar(b):O(b);return}if("n"===a.key){a.preventDefault(),$(N),Y(!0);return}if("month"!==J&&"week"!==J)return;if("week"===J){if("ArrowLeft"===a.key){a.preventDefault();let b=new Date(N);b.setDate(b.getDate()-1),O(b);let c=t(b);c.getTime()!==P.getTime()&&(Q(c),aj(c.getFullYear(),c.getMonth(),L,"week",c));return}if("ArrowRight"===a.key){a.preventDefault();let b=new Date(N);b.setDate(b.getDate()+1),O(b);let c=t(b);c.getTime()!==P.getTime()&&(Q(c),aj(c.getFullYear(),c.getMonth(),L,"week",c));return}if("ArrowUp"===a.key){a.preventDefault();let b=new Date(N);b.setHours(b.getHours()-1),O(b);return}if("ArrowDown"===a.key){a.preventDefault();let b=new Date(N);b.setHours(b.getHours()+1),O(b)}return}let b=document.activeElement?.getAttribute("role")==="gridcell";if("Enter"===a.key){if(!b)return;a.preventDefault(),az(N)>0?S(`${N.getFullYear()}-${String(N.getMonth()+1).padStart(2,"0")}-${String(N.getDate()).padStart(2,"0")}`):($(N),Y(!0));return}if(!b)return;let c=(0,l.stepDate)(N,a.key);c&&(a.preventDefault(),c.getFullYear()===F&&c.getMonth()===H?O(c):ar(c))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[J,F,H,N,ar,az,P,L,aj]),(0,c.useEffect)(()=>{if("month"!==J)return;let a=document.activeElement;if(!a||"gridcell"!==a.getAttribute("role"))return;let b=`[data-date="${(0,l.dateKey)(N)}"]`,c=document.querySelector(b);c?.focus()},[N,J,F,H]),(0,b.jsxs)(b.Fragment,{children:[(0,b.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,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,b.jsx)("h1",{className:"text-sm font-medium",children:"Calendar"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground hidden md:block",children:"Schedule recurring and one-time tasks for your agents."})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(x,{view:J,onChange:at}),(0,b.jsxs)(i.Button,{size:"sm",variant:"outline",onClick:()=>{$(void 0),Y(!0)},disabled:0===n.length,className:"min-w-[44px] min-h-[44px] sm:min-w-0 sm:min-h-0",children:[(0,b.jsx)(j.Plus,{className:"size-3.5"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"New event"})]})]})]}),(0,b.jsxs)("div",{className:(0,f.cn)("flex flex-1 flex-col gap-4 px-3 py-3 sm:px-5 sm:py-5","week"===J?"min-h-0 overflow-hidden":"overflow-y-auto"),children:[(0,b.jsx)(y,{agents:n,selected:L,onToggle:a=>{let b=new Set(L);b.has(a)?b.delete(a):b.add(a),M(b),aj(F,H,b,J,"week"===J?P:null)}}),"month"===J&&(0,b.jsx)(l.CalendarMonthGrid,{year:F,month:H,events:al,agents:n,loading:V,focusedDate:N,openPopoverKey:R,onPopoverChange:S,onPrev:am,onNext:an,onJumpToToday:as,onJumpToDate:ar,onSelectDay:a=>{$(a),Y(!0),O(a)},onSelectEvent:aq}),"week"===J&&(0,b.jsx)(w,{weekStart:P,events:al,agents:n,loading:V,focusedDate:N,compact:s,onPrevWeek:ao,onNextWeek:ap,onJumpToToday:as,onJumpToDate:ar,onSelectSlot:(a,b)=>{$(new Date(a.getFullYear(),a.getMonth(),a.getDate(),b)),Y(!0)},onSelectEvent:aq}),"agenda"===J&&(0,b.jsx)(p,{events:al,agents:n,loading:V,onSelectEvent:aq}),("month"===J||"week"===J)&&!V&&T.length>0&&0===al.length&&(0,b.jsx)("p",{className:"text-center text-xs text-muted-foreground py-4",children:"No events for selected agents."})]}),(0,b.jsx)(z.CalendarEventSheet,{open:X,onOpenChange:Y,agents:n,defaultDate:Z,submitting:ad,onCreate:au}),(0,b.jsx)(z.CalendarEventSheet,{event:_,agents:n,open:ab,onOpenChange:ac,onDelete:aw,onUpdate:av,deleting:ah===_?.id,saving:af})]})}],489351)}];
|
|
1
|
+
module.exports=[489351,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(207058),e=a.i(921584),f=a.i(75118),g=a.i(752792),h=a.i(506180),i=a.i(732254),j=a.i(552012),k=a.i(588339),l=a.i(38763),m=a.i(25668),n=a.i(905890),o=a.i(316215);function p({events:a,agents:c,loading:d,onSelectEvent:e}){let g=function(a){let b=new Map;for(let c of a){let a=new Date(c.scheduled_at),d=(0,l.dateKey)(a);if(!b.has(d)){let c=new Date(a.getFullYear(),a.getMonth(),a.getDate());b.set(d,{day:c,items:[]})}b.get(d).items.push(c)}let c=[...b.values()].sort((a,b)=>a.day.getTime()-b.day.getTime());for(let a of c)a.items.sort((a,b)=>new Date(a.scheduled_at).getTime()-new Date(b.scheduled_at).getTime());return c}(a),h=new Map;for(let a of c)h.set(a.id,a.name);let i=new Date;return d&&0===a.length?(0,b.jsx)("div",{className:"flex flex-col gap-4",children:Array.from({length:4}).map((a,c)=>(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(m.Skeleton,{className:"h-3 w-24"}),Array.from({length:2}).map((a,c)=>(0,b.jsx)(m.Skeleton,{className:"h-8 w-full rounded-md"},c))]},c))}):0===g.length?(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center py-12",children:(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"No events in view."}),(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Switch to month view or create a new event above."})]})}):(0,b.jsx)("div",{className:"flex flex-col gap-4","data-testid":"calendar-agenda",children:g.map(a=>{let c=i.getFullYear()===a.day.getFullYear()&&i.getMonth()===a.day.getMonth()&&i.getDate()===a.day.getDate();return(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("h3",{className:(0,f.cn)("sticky top-0 z-10 py-1 text-[11px] font-medium text-muted-foreground",c&&"text-foreground"),children:[a.day.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}),c&&(0,b.jsx)("span",{className:"ml-2 rounded-full bg-foreground text-background px-1.5 py-0.5 text-[10px]",children:"Today"})]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:a.items.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>e(a),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,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground tabular-nums w-16",children:new Date(a.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}),(0,b.jsx)("span",{className:(0,f.cn)("shrink-0 rounded-sm px-1.5 py-0.5 text-[10px] font-medium",(0,n.agentColor)(a.agent_id)),children:h.get(a.agent_id)??a.agent_id}),(0,b.jsx)("span",{className:"flex-1 truncate text-sm",children:a.title}),a.repeat_interval&&(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(0,o.formatRepeatDisplay)(a.repeat_interval)}),null!=a.collapsed_count&&a.collapsed_count>1&&(0,b.jsxs)("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:["× ",a.collapsed_count," today"]})]})},`${a.id}@${a.occurrence_at}`))})]},(0,l.dateKey)(a.day))})})}var q=a.i(807018),r=a.i(143984),s=a.i(313404);function t(a){let b=new Date(a.getFullYear(),a.getMonth(),a.getDate());return b.setDate(b.getDate()-b.getDay()),b}function u(a){let b,c=t(a),d=((b=new Date(t(a))).setDate(b.getDate()+6),b.setHours(23,59,59,999),b);return{from:c.toISOString(),to:d.toISOString()}}let v=Array.from({length:24},(a,b)=>b);function w({weekStart:a,events:d,agents:e,loading:g,focusedDate:h,compact:j=!1,onPrevWeek:k,onNextWeek:o,onJumpToToday:p,onJumpToDate:t,onSelectSlot:u,onSelectEvent:x,headerExtras:y}){let z,A,B,C,D=j?36:48,E=j?"2.5rem":"3.5rem",F=(0,c.useRef)(null),G=(0,c.useRef)(!1),H=new Date,I=new Date(a);I.setDate(I.getDate()+6);let J=(z=a.toLocaleDateString("en-US",{month:"short"}),A=I.toLocaleDateString("en-US",{month:"short"}),B=a.getFullYear(),B!==(C=I.getFullYear())?`${z} ${a.getDate()}, ${B}\u2013${A} ${I.getDate()}, ${C}`:z!==A?`${z} ${a.getDate()}\u2013${A} ${I.getDate()}, ${C}`:`${z} ${a.getDate()}\u2013${I.getDate()}, ${B}`),K=H>=a&&H<=new Date(I.getFullYear(),I.getMonth(),I.getDate(),23,59,59,999),L=(0,c.useMemo)(()=>{let b=[];for(let c=0;c<7;c++){let d=new Date(a);d.setDate(a.getDate()+c),b.push(d)}return b},[a]),M=(0,c.useMemo)(()=>{let a=new Map;for(let b of d){let c=(0,l.dateKey)(new Date(b.scheduled_at));a.has(c)||a.set(c,[]),a.get(c).push(b)}return a},[d]),N=(0,c.useMemo)(()=>{let a=new Map;for(let[b,c]of M)a.set(b,function(a){if(0===a.length)return[];let b=[...a].sort((a,b)=>new Date(a.scheduled_at).getTime()-new Date(b.scheduled_at).getTime()),c=[],d=[b[0]],e=new Date(b[0].scheduled_at).getTime()+18e5;for(let a=1;a<b.length;a++){let f=new Date(b[a].scheduled_at).getTime();if(f<e){d.push(b[a]);let c=f+18e5;c>e&&(e=c)}else c.push(d),d=[b[a]],e=f+18e5}c.push(d);let f=[];for(let a of c){let b=a.length;for(let c=0;c<a.length;c++)f.push({event:a[c],columnIndex:c,columnCount:b})}return f}(c));return a},[M]),O=(0,c.useMemo)(()=>{let a=new Map;for(let b of e)a.set(b.id,b.name);return a},[e]);(0,c.useEffect)(()=>{if(G.current||!F.current)return;let a=Math.max(0,(new Date().getHours()-1)*D);F.current.scrollTop=a,G.current=!0},[D]);let P=(0,c.useMemo)(()=>{let a=new Date;return a.getHours()+a.getMinutes()/60},[]);if(g&&0===d.length){let a=`${E} repeat(7, 1fr)`;return(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,b.jsx)(m.Skeleton,{className:"h-5 w-48"}),(0,b.jsx)(m.Skeleton,{className:"h-7 w-32"})]}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[(0,b.jsxs)("div",{className:"border-b border-border/30 shrink-0",style:{display:"grid",gridTemplateColumns:a},children:[(0,b.jsx)("div",{className:"h-8"}),Array.from({length:7}).map((a,c)=>(0,b.jsx)(m.Skeleton,{className:"h-5 mx-2 my-1.5"},c))]}),(0,b.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:Array.from({length:12}).map((c,d)=>(0,b.jsxs)("div",{className:"border-b border-border/10",style:{display:"grid",gridTemplateColumns:a,height:D},children:[(0,b.jsx)(m.Skeleton,{className:"h-3 w-8 mx-1 my-2"}),Array.from({length:7}).map((a,c)=>(0,b.jsx)("div",{className:"relative",children:d%4==c%3&&(0,b.jsx)(m.Skeleton,{className:"absolute left-1 right-1 top-2 rounded-sm",style:{height:24}})},c))]},d))})]})]})}return(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,b.jsx)("h2",{className:"text-sm font-medium tabular-nums",children:J}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[y,(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button","aria-label":"Previous week",onClick:k,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,b.jsx)(q.ChevronLeft,{className:"size-4"})}),(0,b.jsx)(i.Button,{variant:"outline",size:"sm",onClick:p,disabled:K,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,b.jsx)("button",{type:"button","aria-label":"Next week",onClick:o,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,b.jsx)(r.ChevronRight,{className:"size-4"})})]}),(0,b.jsx)(s.CalendarDatePicker,{value:h,onChange:t,ariaLabel:"Jump to date"})]})]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[g&&(0,b.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,b.jsx)("div",{className:"h-full w-1/3 animate-[calendar-progress_1.2s_ease-in-out_infinite] bg-foreground/40"})}),(0,b.jsxs)("div",{role:"grid","aria-label":`Week of ${J}`,"aria-busy":g||void 0,className:(0,f.cn)("flex flex-1 flex-col min-h-0 transition-opacity",g&&"opacity-70"),children:[(0,b.jsxs)("div",{role:"row",className:"sticky top-0 z-10 border-b border-border/30 bg-background",style:{display:"grid",gridTemplateColumns:`${E} repeat(7, 1fr)`},children:[(0,b.jsx)("div",{role:"columnheader",className:"h-8"}),L.map(a=>{let c=(0,l.sameDay)(a,H);return(0,b.jsx)("div",{role:"columnheader","aria-current":c?"date":void 0,className:(0,f.cn)("flex items-center justify-center h-8 text-xs font-medium",c?"text-foreground":"text-muted-foreground"),children:(0,b.jsx)("span",{className:(0,f.cn)("px-1.5 py-0.5 rounded-md",c&&"bg-foreground text-background"),children:function(a,b){if(b)return["S","M","T","W","T","F","S"][a.getDay()];let c=a.toLocaleDateString("en-US",{weekday:"short"});return`${c} ${a.getDate()}`}(a,j)})},(0,l.dateKey)(a))})]}),(0,b.jsx)("div",{ref:F,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar",children:(0,b.jsxs)("div",{className:"relative",style:{display:"grid",gridTemplateColumns:`${E} repeat(7, 1fr)`},children:[(0,b.jsx)("div",{role:"rowheader",className:"relative",children:v.map(a=>{var c;return(0,b.jsx)("div",{className:"flex items-start justify-end pr-2 text-[10px] text-muted-foreground tabular-nums",style:{height:D},children:(0,b.jsx)("span",{className:"-mt-1.5",children:0===a?"":(c=a,j?0===c?"12a":c<12?`${c}a`:12===c?"12p":`${c-12}p`:`${String(c).padStart(2,"0")}:00`)})},a)})}),L.map(a=>{let c=(0,l.dateKey)(a),d=(0,l.sameDay)(a,H),e=N.get(c)??[];return(0,b.jsxs)("div",{className:"relative border-l border-border/20",style:{height:24*D},children:[v.map(c=>(0,b.jsx)("div",{className:"absolute inset-x-0 border-t border-border/15 cursor-pointer hover:bg-accent/30 transition-colors",style:{top:c*D,height:D},onClick:()=>u(a,c)},c)),d&&(0,b.jsxs)("div",{className:"absolute inset-x-0 z-10 pointer-events-none",style:{top:P*D},children:[(0,b.jsx)("div",{className:"h-px bg-foreground/40"}),(0,b.jsx)("div",{className:"absolute -left-0.5 -top-0.75 size-1.75 rounded-full bg-foreground/40"})]}),e.map(({event:a,columnIndex:c,columnCount:d})=>{let e,g=(e=new Date(a.scheduled_at)).getHours()+e.getMinutes()/60,h=100/d,i=O.get(a.agent_id),k=new Date(a.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1});return(0,b.jsxs)("button",{type:"button",role:"button","aria-label":`${a.title} at ${k}${i?` \u2014 ${i}`:""}`,onClick:b=>{b.stopPropagation(),x(a)},className:(0,f.cn)("absolute rounded-sm font-medium truncate text-left transition-colors hover:opacity-80 cursor-pointer",j?"text-[9px] px-1":"text-[10px] px-1.5",(0,n.agentColor)(a.agent_id)),style:{top:g*D,height:24,left:`${c*h}%`,width:`calc(${h}% - 2px)`,marginLeft:1,lineHeight:"24px"},title:`${a.title}${i?` \u2014 ${i}`:""}`,children:[a.title,null!=a.collapsed_count&&a.collapsed_count>1&&(0,b.jsxs)("span",{className:"ml-0.5 opacity-70",children:["×",a.collapsed_count]})]},`${a.id}@${a.occurrence_at}`)})]},c)})]})})]})]})]})}function x({view:a,onChange:c}){return(0,b.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(d=>{let e=a===d;return(0,b.jsx)("button",{type:"button",role:"radio","aria-checked":e,onClick:()=>c(d),className:(0,f.cn)("h-6 px-2.5 rounded text-xs font-medium transition-colors capitalize",e?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:d},d)})})}function y({agents:a,selected:c,onToggle:d}){return(0,b.jsx)("div",{className:"flex min-h-6 items-center gap-1.5 overflow-x-auto flex-nowrap scrollbar-none sm:flex-wrap sm:overflow-x-visible",children:0===a.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.Skeleton,{className:"h-6 w-20 rounded-full"}),(0,b.jsx)(m.Skeleton,{className:"h-6 w-24 rounded-full"}),(0,b.jsx)(m.Skeleton,{className:"h-6 w-16 rounded-full"})]}):a.map(a=>{let e=c.has(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>d(a.id),className:(0,f.cn)("flex h-6 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-[11px] font-medium transition-colors",e?"bg-foreground text-background":"bg-transparent text-muted-foreground border border-border hover:bg-accent"),children:[(0,b.jsx)("span",{className:(0,f.cn)("size-2 rounded-full",(0,n.agentColor)(a.id).split(" ")[0])}),(0,b.jsx)("span",{className:"max-w-30 truncate sm:max-w-none",children:a.name})]},a.id)})})}var z=a.i(276163),A=a.i(586220);function B(a,b){let c=(0,l.buildMonthCells)(a,b),d=c[0].date,e=c[c.length-1].date,f=new Date(d.getFullYear(),d.getMonth(),d.getDate(),0,0,0,0),g=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999);return{from:f.toISOString(),to:g.toISOString()}}a.s(["default",0,function(){var a;let{workspaceId:m}=(0,h.useWorkspace)(),{agents:n}=(0,g.useAgentContext)(),o=(0,d.useRouter)(),q=(0,d.usePathname)(),r=(0,d.useSearchParams)(),s=(0,A.useIsMobile)(),v=new Date,C=Number(r.get("y"))||v.getFullYear(),D=r.has("m")?Number(r.get("m")):v.getMonth(),E="week"===(a=r.get("view"))?"week":"agenda"===a?"agenda":"month",[F,G]=(0,c.useState)(C),[H,I]=(0,c.useState)(D),[J,K]=(0,c.useState)(E),[L,M]=(0,c.useState)(()=>{let a=r.get("agents");return a?new Set(a.split(",").filter(Boolean)):new Set}),[N,O]=(0,c.useState)(()=>{let a=new Date;return a.getFullYear()===C&&a.getMonth()===D?a:new Date(C,D,1)}),[P,Q]=(0,c.useState)(()=>"week"===E&&r.has("d")?t(new Date(C,D,Number(r.get("d")))):t(new Date)),[R,S]=(0,c.useState)(null),[T,U]=(0,c.useState)([]),[V,W]=(0,c.useState)(!0),[X,Y]=(0,c.useState)(!1),[Z,$]=(0,c.useState)(),[_,aa]=(0,c.useState)(null),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)(!1),[af,ag]=(0,c.useState)(!1),[ah,ai]=(0,c.useState)(null),aj=(0,c.useCallback)((a,b,c,d,e)=>{let f=new URLSearchParams;f.set("y",String(a)),f.set("m",String(b)),c.size>0&&f.set("agents",[...c].join(",")),"month"!==d&&f.set("view",d),"week"===d&&e&&f.set("d",String(e.getDate())),o.replace(`${q}?${f.toString()}`,{scroll:!1})},[q,o]),ak=(0,c.useCallback)(async()=>{let{from:a,to:b}="week"===J?u(P):B(F,H);W(!0);try{let c=await (0,k.listCalendarEvents)(m,{from:a,to:b});U(c)}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to load events")}finally{W(!1)}},[m,F,H,J,P]);(0,c.useEffect)(()=>{ak()},[ak]);let al=(0,c.useMemo)(()=>0===L.size?T:T.filter(a=>L.has(a.agent_id)),[T,L]),am=(0,c.useCallback)(()=>{let a=0===H?11:H-1,b=0===H?F-1:F;I(a),G(b),O(new Date(b,a,1)),aj(b,a,L,J)},[H,F,L,J,aj]),an=(0,c.useCallback)(()=>{let a=11===H?0:H+1,b=11===H?F+1:F;I(a),G(b),O(new Date(b,a,1)),aj(b,a,L,J)},[H,F,L,J,aj]),ao=(0,c.useCallback)(()=>{let a=new Date(P);a.setDate(a.getDate()-7),Q(a),O(a),aj(a.getFullYear(),a.getMonth(),L,"week",a)},[P,L,aj]),ap=(0,c.useCallback)(()=>{let a=new Date(P);a.setDate(a.getDate()+7),Q(a),O(a),aj(a.getFullYear(),a.getMonth(),L,"week",a)},[P,L,aj]),aq=a=>{aa(a),ac(!0)},ar=(0,c.useCallback)(a=>{let b=a.getFullYear(),c=a.getMonth();if(G(b),I(c),O(a),"week"===J){let d=t(a);Q(d),aj(b,c,L,J,d)}else aj(b,c,L,J)},[L,J,aj]),as=(0,c.useCallback)(()=>{let a=new Date;if("week"===J){let b=t(a);Q(b),O(a),aj(b.getFullYear(),b.getMonth(),L,"week",b)}else ar(a)},[ar,J,L,aj]),at=(0,c.useCallback)(a=>{if(K(a),"week"===a){let b=t(N);Q(b),aj(F,H,L,a,b)}else if("week"===J){let b=P.getFullYear(),c=P.getMonth();G(b),I(c),aj(b,c,L,a)}else aj(F,H,L,a)},[F,H,L,aj,N,J,P]),au=async a=>{ae(!0);try{let b=await (0,k.createCalendarEvent)(a,m),{from:c,to:d}="week"===J?u(P):B(F,H),f=new Date(b.scheduled_at).getTime();f>=new Date(c).getTime()&&f<=new Date(d).getTime()&&U(a=>[...a,b]),Y(!1),e.toast.success("Event created")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to create event")}finally{ae(!1)}},av=async(a,b)=>{ag(!0);try{await (0,k.updateCalendarEvent)(a.id,b,m),await ak(),ac(!1),aa(null),e.toast.success("Event updated")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to update event")}finally{ag(!1)}},aw=async(a,b)=>{ai(a.id);try{await (0,k.deleteCalendarEvent)(a.id,m,b),b?.scope?await ak():U(b=>b.filter(b=>b.id!==a.id)),ac(!1),aa(null),e.toast.success("Event deleted")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to delete event")}finally{ai(null)}},ax=(0,c.useRef)(X),ay=(0,c.useRef)(ab);(0,c.useEffect)(()=>{ax.current=X},[X]),(0,c.useEffect)(()=>{ay.current=ab},[ab]);let az=(0,c.useCallback)(a=>{let b=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`,c=0;for(let a of al){let d=new Date(a.scheduled_at);`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`===b&&c++}return Math.max(0,c-3)},[al]);return(0,c.useEffect)(()=>{let a=a=>{if(ax.current||ay.current||function(a){if(!a||"string"!=typeof a.tagName)return!1;let b=a.tagName;return"INPUT"===b||"TEXTAREA"===b||"SELECT"===b||!!a.isContentEditable}(a.target))return;if("t"===a.key){a.preventDefault();let b=new Date;if("week"===J){let a=t(b);Q(a),O(b),aj(a.getFullYear(),a.getMonth(),L,"week",a)}else b.getFullYear()!==F||b.getMonth()!==H?ar(b):O(b);return}if("n"===a.key){a.preventDefault(),$(N),Y(!0);return}if("month"!==J&&"week"!==J)return;if("week"===J){if("ArrowLeft"===a.key){a.preventDefault();let b=new Date(N);b.setDate(b.getDate()-1),O(b);let c=t(b);c.getTime()!==P.getTime()&&(Q(c),aj(c.getFullYear(),c.getMonth(),L,"week",c));return}if("ArrowRight"===a.key){a.preventDefault();let b=new Date(N);b.setDate(b.getDate()+1),O(b);let c=t(b);c.getTime()!==P.getTime()&&(Q(c),aj(c.getFullYear(),c.getMonth(),L,"week",c));return}if("ArrowUp"===a.key){a.preventDefault();let b=new Date(N);b.setHours(b.getHours()-1),O(b);return}if("ArrowDown"===a.key){a.preventDefault();let b=new Date(N);b.setHours(b.getHours()+1),O(b)}return}let b=document.activeElement?.getAttribute("role")==="gridcell";if("Enter"===a.key){if(!b)return;a.preventDefault(),az(N)>0?S(`${N.getFullYear()}-${String(N.getMonth()+1).padStart(2,"0")}-${String(N.getDate()).padStart(2,"0")}`):($(N),Y(!0));return}if(!b)return;let c=(0,l.stepDate)(N,a.key);c&&(a.preventDefault(),c.getFullYear()===F&&c.getMonth()===H?O(c):ar(c))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[J,F,H,N,ar,az,P,L,aj]),(0,c.useEffect)(()=>{if("month"!==J)return;let a=document.activeElement;if(!a||"gridcell"!==a.getAttribute("role"))return;let b=`[data-date="${(0,l.dateKey)(N)}"]`,c=document.querySelector(b);c?.focus()},[N,J,F,H]),(0,b.jsxs)(b.Fragment,{children:[(0,b.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,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,b.jsx)("h1",{className:"text-sm font-medium",children:"Calendar"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground hidden md:block",children:"Schedule recurring and one-time tasks for your agents."})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(x,{view:J,onChange:at}),(0,b.jsxs)(i.Button,{size:"sm",variant:"outline",onClick:()=>{$(void 0),Y(!0)},disabled:0===n.length,className:"min-w-11 min-h-11 sm:min-w-0 sm:min-h-0",children:[(0,b.jsx)(j.Plus,{className:"size-3.5"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"New event"})]})]})]}),(0,b.jsxs)("div",{className:(0,f.cn)("flex flex-1 flex-col gap-4 px-3 py-3 sm:px-5 sm:py-5","week"===J?"min-h-0 overflow-hidden":"overflow-y-auto"),children:[(0,b.jsx)(y,{agents:n,selected:L,onToggle:a=>{let b=new Set(L);b.has(a)?b.delete(a):b.add(a),M(b),aj(F,H,b,J,"week"===J?P:null)}}),"month"===J&&(0,b.jsx)(l.CalendarMonthGrid,{year:F,month:H,events:al,agents:n,loading:V,focusedDate:N,openPopoverKey:R,onPopoverChange:S,onPrev:am,onNext:an,onJumpToToday:as,onJumpToDate:ar,onSelectDay:a=>{$(a),Y(!0),O(a)},onSelectEvent:aq}),"week"===J&&(0,b.jsx)(w,{weekStart:P,events:al,agents:n,loading:V,focusedDate:N,compact:s,onPrevWeek:ao,onNextWeek:ap,onJumpToToday:as,onJumpToDate:ar,onSelectSlot:(a,b)=>{$(new Date(a.getFullYear(),a.getMonth(),a.getDate(),b)),Y(!0)},onSelectEvent:aq}),"agenda"===J&&(0,b.jsx)(p,{events:al,agents:n,loading:V,onSelectEvent:aq}),("month"===J||"week"===J)&&!V&&T.length>0&&0===al.length&&(0,b.jsx)("p",{className:"text-center text-xs text-muted-foreground py-4",children:"No events for selected agents."})]}),(0,b.jsx)(z.CalendarEventSheet,{open:X,onOpenChange:Y,agents:n,defaultDate:Z,submitting:ad,onCreate:au}),(0,b.jsx)(z.CalendarEventSheet,{event:_,agents:n,open:ab,onOpenChange:ac,onDelete:aw,onUpdate:av,deleting:ah===_?.id,saving:af})]})}],489351)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_web_src_app_%28app%29_w_%5Bslug%5D_calendar_page_tsx_01geiyd._.js.map
|