@alook/app 0.0.115 → 0.0.117

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.
Files changed (78) hide show
  1. package/bundled/email-worker/index.js +1 -4
  2. package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
  3. package/bundled/web/.open-next/assets/BUILD_ID +1 -1
  4. package/bundled/web/.open-next/assets/_headers +30 -0
  5. package/bundled/web/.open-next/assets/_next/static/chunks/{0feon~hbkd1t8.js → 042a4jeudcp22.js} +1 -1
  6. package/bundled/web/.open-next/assets/_next/static/chunks/0fme52sqdtk.p.js +3 -0
  7. package/bundled/web/.open-next/assets/_next/static/chunks/{13ogh4gvbsvjk.js → 0j5gd-ljh6ao_.js} +8 -8
  8. package/bundled/web/.open-next/assets/_next/static/chunks/{0fk-wipqnt2ce.css → 0s-pai_2464mg.css} +1 -1
  9. package/bundled/web/.open-next/cache/{ksu9gbgScKyxMGC1tp9YU → FjNKGEvkF0L0MRIiOb2vT}/_global-error.cache +1 -1
  10. package/bundled/web/.open-next/cache/{ksu9gbgScKyxMGC1tp9YU → FjNKGEvkF0L0MRIiOb2vT}/_not-found.cache +1 -1
  11. package/bundled/web/.open-next/cache/{ksu9gbgScKyxMGC1tp9YU → FjNKGEvkF0L0MRIiOb2vT}/device.cache +1 -1
  12. package/bundled/web/.open-next/cache/{ksu9gbgScKyxMGC1tp9YU → FjNKGEvkF0L0MRIiOb2vT}/privacy.cache +1 -1
  13. package/bundled/web/.open-next/cache/{ksu9gbgScKyxMGC1tp9YU → FjNKGEvkF0L0MRIiOb2vT}/sitemap.xml.cache +1 -1
  14. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  15. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  16. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  17. package/bundled/web/.open-next/middleware/handler.mjs +4 -4
  18. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  19. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  20. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  21. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  22. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  33. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  34. 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
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page_client-reference-manifest.js +1 -1
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  40. 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
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  44. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  46. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/device/page_client-reference-manifest.js +1 -1
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  50. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0bzc7r~._.js +1 -4
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0jj44iu._.js +1 -1
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0m4uqwa._.js +1 -1
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0mibx4k._.js +1 -1
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r0h9so._.js +3 -5
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_web_src_lib_templates_index_ts_11-ty8l._.js +14 -14
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0_.06ux._.js +1 -1
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0sby7nn._.js +1 -1
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0vtcof8._.js +1 -1
  60. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_templates_index_ts_13n9_2e._.js +14 -14
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  66. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +122 -57
  67. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +44 -44
  68. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
  69. package/bundled/ws-do/index.js +1 -4
  70. package/dist/cli/index.js +1 -4
  71. package/dist/cli/session-runner.js +1 -4
  72. package/dist/index.js +1 -4
  73. package/package.json +1 -1
  74. package/bundled/web/.open-next/assets/_next/static/chunks/0oui29jtw.z4u.js +0 -3
  75. /package/bundled/web/.open-next/assets/_next/static/{ksu9gbgScKyxMGC1tp9YU → FjNKGEvkF0L0MRIiOb2vT}/_buildManifest.js +0 -0
  76. /package/bundled/web/.open-next/assets/_next/static/{ksu9gbgScKyxMGC1tp9YU → FjNKGEvkF0L0MRIiOb2vT}/_clientMiddlewareManifest.js +0 -0
  77. /package/bundled/web/.open-next/assets/_next/static/{ksu9gbgScKyxMGC1tp9YU → FjNKGEvkF0L0MRIiOb2vT}/_ssgManifest.js +0 -0
  78. /package/bundled/web/.open-next/cache/{ksu9gbgScKyxMGC1tp9YU → FjNKGEvkF0L0MRIiOb2vT}/robots.txt.cache +0 -0
@@ -1,3 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74348,e=>{"use strict";var t=e.i(368075),s=e.i(298699),a=e.i(222862),r=e.i(500324);let n=(0,s.createContext)(null);e.s(["FlagCountProvider",0,function({children:e}){let{workspaceId:l}=(0,r.useWorkspace)(),[i,o]=(0,s.useState)(0),c=(0,s.useCallback)(()=>{(0,a.getFlaggedCount)(l).then(e=>o(e.count)).catch(()=>{})},[l]),d=(0,s.useCallback)(()=>{o(e=>e+1)},[]),u=(0,s.useCallback)(()=>{o(e=>Math.max(0,e-1))},[]);return(0,s.useEffect)(()=>{c()},[c]),(0,t.jsx)(n.Provider,{value:{count:i,refresh:c,increment:d,decrement:u},children:e})},"useFlagCount",0,function(){let e=(0,s.useContext)(n);if(!e)throw Error("useFlagCount must be used within FlagCountProvider");return e}])},49879,618615,844010,e=>{"use strict";e.s(["AgentChatView",()=>e$,"getEventIconType",()=>eA],49879);var t=e.i(368075),s=e.i(298699),a=e.i(550008),r=e.i(208020),n=e.i(500324),l=e.i(186339),i=e.i(875061),o=e.i(613349),c=e.i(64873),d=e.i(371522);e.i(112946);var u=e.i(164300),m=e.i(418277),f=e.i(72852),h=e.i(108281),g=e.i(140483);let p={claude:"Claude Code",codex:"Codex",opencode:"OpenCode"},x="the agent runtime";function v({provider:e,message:a,onRetry:r,retrying:n}){let[l,i]=(0,s.useState)(!1),o=n??l,c=async()=>{if(r){i(!0);try{await r()}finally{i(!1)}}};return(0,t.jsxs)("div",{className:"rounded-md border border-destructive/30 bg-destructive/5 p-2 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("p",{className:"flex items-center gap-1.5 text-sm font-semibold text-destructive min-w-0",children:[(0,t.jsx)(h.AlertCircle,{className:"size-3.5 shrink-0"}),(0,t.jsxs)("span",{children:["Error from ",e?p[e]??x:x]})]}),r&&(0,t.jsxs)("button",{type:"button",onClick:c,disabled:o,className:"ml-auto shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[o?(0,t.jsx)(d.Loader2,{className:"size-3 animate-spin"}):(0,t.jsx)(g.RotateCw,{className:"size-3"}),"Retry"]})]}),(0,t.jsx)("p",{className:"mt-1.5 text-sm text-destructive/90 wrap-anywhere whitespace-pre-wrap",children:a}),(0,t.jsx)("p",{className:"mt-1.5 text-xs text-muted-foreground",children:"This came from the agent runtime on your machine, not from Alook."})]})}function k({value:e}){let a=(0,s.useRef)(e),[r,n]=(0,s.useState)({current:e,previous:null}),[l,i]=(0,s.useState)("idle");return(0,s.useEffect)(()=>{if(e===a.current)return;let t=a.current;a.current=e,n({current:e,previous:t}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{i("animating")})});let s=setTimeout(()=>{i("idle"),n(e=>({...e,previous:null}))},300);return()=>clearTimeout(s)},[e]),(0,t.jsxs)("span",{style:{display:"inline-block",position:"relative",overflow:"hidden",height:"1.2em",lineHeight:"1.2em",verticalAlign:"bottom"},children:[null!==r.previous&&(0,t.jsx)("span",{style:{display:"block",position:"absolute",inset:"0",transition:"animating"===l?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:"animating"===l?"translateY(-100%)":"translateY(0)",opacity:+("animating"!==l)},children:r.previous}),(0,t.jsx)("span",{style:{display:"block",transition:"animating"===l?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:null!==r.previous&&"animating"!==l?"translateY(100%)":"translateY(0)",opacity:+(null===r.previous||"animating"===l)},children:r.current})]})}function j({task:e,messages:a,connectionLost:r,onRetry:n,thinkingCountHint:l,onExpandThinking:h,thinkingLoading:g,provider:p}){let x=(0,s.useMemo)(()=>(function(e){let t=[];for(let s of e){let e=s.id||`seq-${s.seq}`;"text"===s.type?t.push({kind:"text",id:e,content:s.content}):"error"===s.type&&t.push({kind:"error",id:e,content:s.content||s.output})}return t})(a),[a]),y="completed"!==e.status&&"failed"!==e.status&&"cancelled"!==e.status&&"superseded"!==e.status,b=x.filter(e=>"text"===e.kind),w=x.filter(e=>"error"===e.kind),N=b.length>0?b[b.length-1]:null,C=(0,s.useRef)(null),_=(0,s.useRef)(!1);(0,s.useEffect)(()=>{y&&C.current&&(C.current.scrollTop=C.current.scrollHeight)},[b.length,y]);let S=y?b:b.slice(0,-1),T=!y&&null!==N,M=S.length>0||l&&l>0,I=S.length>0?S.length:l??0;return(0,t.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[!h&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:"running"===e.status?(0,t.jsxs)(i.Badge,{variant:"secondary",className:"gap-1.5 relative overflow-hidden",children:[(0,t.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),"Working",(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):y?(0,t.jsxs)(i.Badge,{variant:"secondary",className:"relative overflow-hidden",children:[e.status,(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):(0,t.jsx)(i.Badge,{variant:"secondary",children:e.status})}),M&&(0,t.jsxs)("details",{className:"group/midtext pl-1",open:!T&&!h||void 0,onToggle:e=>{e.currentTarget.open&&!_.current&&h&&(_.current=!0,h())},children:[(0,t.jsxs)("summary",{className:(0,o.cn)("flex items-center gap-1.5 py-1 cursor-pointer select-none","text-xs text-muted-foreground transition-colors duration-150","hover:text-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,t.jsx)(c.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/midtext:rotate-90"}),(0,t.jsxs)("span",{children:[(0,t.jsx)(k,{value:I})," thinking"]})]}),(0,t.jsxs)("div",{ref:C,className:"mt-1 pl-1",children:[g&&0===S.length&&(0,t.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-muted-foreground",children:[(0,t.jsx)(d.Loader2,{className:"size-3 animate-spin"}),(0,t.jsx)("span",{children:"Loading..."})]}),S.map(e=>(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 text-sm text-muted-foreground",children:(0,t.jsx)(u.Streamdown,{plugins:{mermaid:m.mermaid,cjk:f.cjk},controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:e.content})},e.id))]})]}),T&&!h&&(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,t.jsx)(u.Streamdown,{plugins:{mermaid:m.mermaid,cjk:f.cjk},controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:N.content})}),w.length>0&&(0,t.jsx)("div",{className:"space-y-1 mt-1",children:w.map(e=>(0,t.jsx)(v,{provider:p,message:e.content},e.id))}),"failed"===e.status&&e.error&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(v,{provider:p,message:e.error,onRetry:n})}),r&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]})}var y=e.i(222862),b=e.i(275351),w=e.i(355578),N=e.i(875494),C=e.i(74348),_=e.i(872937),S=e.i(880932),T=e.i(728886),M=e.i(329686),I=e.i(36303),E=e.i(406963);let A=(0,E.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"}]]);var z=e.i(872057),R=e.i(6131);let D=(0,E.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 L=e.i(653216),F=e.i(554468),P=e.i(745925),$=e.i(937091);function q({skill:e,isSelected:s,onSelect:a}){return(0,t.jsxs)("button",{type:"button","data-slash-item":!0,className:(0,o.cn)("flex w-full flex-col gap-0.5 px-3 py-1.5 text-left text-sm transition-colors",s?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:t=>{t.preventDefault(),a(e)},children:[(0,t.jsxs)("span",{className:"flex w-full items-center gap-2",children:[(0,t.jsxs)("span",{className:"min-w-0 flex-1 truncate font-medium",children:["/",e.name]}),e.isGlobal&&(0,t.jsx)("span",{className:"shrink-0 rounded px-1 py-0.5 text-[10px] font-medium bg-muted text-muted-foreground",children:"Global"})]}),e.description&&(0,t.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:e.description.slice(0,80)})]})}function B({isOpen:e,skills:a,selectedIndex:r,onSelect:n,anchorPos:l}){let i=(0,s.useRef)(null);if((0,s.useEffect)(()=>{if(!i.current)return;let e=i.current.querySelectorAll("[data-slash-item]")[r];e?.scrollIntoView({block:"nearest"})},[r]),!e||0===a.length)return null;let o=Math.max(8,window.innerWidth-280-8),c=Math.min(l.left,o);return(0,t.jsx)("div",{className:"fixed z-100 w-70 rounded-lg border border-border bg-popover text-popover-foreground shadow-md transition-opacity duration-150",style:{top:l.top-4,left:c,transform:"translateY(-100%)"},children:(0,t.jsx)("div",{ref:i,className:"max-h-60 overflow-y-auto py-1 thin-scrollbar",children:a.map((e,s)=>(0,t.jsx)(q,{skill:e,isSelected:s===r,onSelect:n},e.name))})})}var O=e.i(944391),H=e.i(415708),W=e.i(842892),U=e.i(333556);function V(e,t){if(!t)return e;let s=t.toLowerCase(),a=[],r=[];for(let t of e){let e=t.name.toLowerCase();e.startsWith(s)?a.push(t):e.includes(s)&&r.push(t)}return[...a,...r]}var K=e.i(161767);function Y(e){return e.replaceAll("&lt;","<").replaceAll("&gt;",">").replaceAll("&amp;","&")}e.i(954194);var X=e.i(439769);let G={items:[],selectedIndex:0,command:null,rect:null};function J({state:e}){let r=(0,s.useRef)(null),{items:n,selectedIndex:l,command:i,rect:c}=e;if((0,s.useEffect)(()=>{if(!r.current)return;let e=r.current.children[l];e?.scrollIntoView({block:"nearest"})},[l]),!c||0===n.length||!i)return null;let d=Math.max(8,window.innerWidth-256-8),u=Math.min(c.left,d);return(0,a.createPortal)((0,t.jsx)("div",{className:"fixed z-100 w-64 rounded-lg border border-border bg-popover text-popover-foreground shadow-md",style:{top:c.top-4,left:u,transform:"translateY(-100%)"},children:(0,t.jsx)("div",{ref:r,className:"max-h-50 overflow-y-auto py-1 thin-scrollbar",children:n.map((e,s)=>(0,t.jsxs)("button",{type:"button",className:(0,o.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",s===l?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:t=>{t.preventDefault(),i({id:e.id,label:e.name})},children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e.name}),e.email_handle&&(0,t.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:(0,X.toAlookAddress)(e.email_handle)})]},e.id))})}),document.body)}let Q=(0,s.forwardRef)(function({value:e,onChange:a,onEditorState:r,onSend:n,placeholder:l,disabled:i,onMultiLineChange:o,onFiles:c,agents:d,agentLinks:u,currentAgentId:m,slashIsOpen:f,onSlashKeyDown:h},g){var p;let[x,v]=(0,s.useState)(G),k=(0,s.useRef)(x);(0,s.useEffect)(()=>{k.current=x},[x]);let j=(0,s.useRef)(d),y=(0,s.useRef)(u),b=(0,s.useRef)(m),w=(0,s.useRef)(n),N=(0,s.useRef)(r),C=(0,s.useRef)(a),_=(0,s.useRef)(c),S=(0,s.useRef)(f),T=(0,s.useRef)(h);(0,s.useEffect)(()=>{j.current=d},[d]),(0,s.useEffect)(()=>{y.current=u},[u]),(0,s.useEffect)(()=>{b.current=m},[m]),(0,s.useEffect)(()=>{w.current=n},[n]),(0,s.useEffect)(()=>{N.current=r},[r]),(0,s.useEffect)(()=>{C.current=a},[a]),(0,s.useEffect)(()=>{_.current=c},[c]),(0,s.useEffect)(()=>{S.current=f},[f]),(0,s.useEffect)(()=>{T.current=h},[h]);let M=e=>{N.current(e.getText(),e.state.selection.from-1)},[I]=(0,s.useState)(()=>K.default.extend({markdownName:"mention",renderMarkdown:e=>`@${e.attrs.label??e.attrs.id}`}).configure({HTMLAttributes:{class:"mention-highlight"},renderText:({node:e})=>`@${e.attrs.label??e.attrs.id}`,suggestion:{char:"@",items:({query:e})=>(function(e,t,s,a,r=20){let n=function(e,t){let s=new Set;for(let a of e)a.source_agent_id===t&&s.add(a.target_agent_id),a.target_agent_id===t&&s.add(a.source_agent_id);return s}(t,s),l=[],i=[];for(let t of e)n.has(t.id)?l.push(t):i.push(t);return[...V(l,a),...V(i,a)].slice(0,r)})(j.current,y.current,b.current,e),render:()=>({onStart:e=>{v({items:e.items??[],selectedIndex:0,command:e.command,rect:e.clientRect?.()??null})},onUpdate:e=>{v(t=>({items:e.items??[],selectedIndex:t.selectedIndex<(e.items?.length??0)?t.selectedIndex:0,command:e.command,rect:e.clientRect?.()??null}))},onKeyDown:({event:e})=>{if(e.isComposing)return!1;let t=k.current;if(0===t.items.length)return!1;if("ArrowDown"===e.key)return e.preventDefault(),v(e=>({...e,selectedIndex:(e.selectedIndex+1)%e.items.length})),!0;if("ArrowUp"===e.key)return e.preventDefault(),v(e=>({...e,selectedIndex:(e.selectedIndex-1+e.items.length)%e.items.length})),!0;if("Enter"===e.key){e.preventDefault();let s=t.items[t.selectedIndex];return s&&t.command&&t.command({id:s.id,label:s.name}),v(G),!0}return"Escape"===e.key&&(v(G),!0)},onExit:()=>v(G)})}})),E=(0,O.useEditor)({immediatelyRender:!1,content:e?e.replaceAll("\n","<br>"):void 0,editable:!i,extensions:[H.default.configure({heading:!1,blockquote:!1,codeBlock:!1,horizontalRule:!1,bold:!1,italic:!1,strike:!1,code:!1,link:!1,bulletList:!1,orderedList:!1,listItem:!1,listKeymap:!1}),W.default.configure({placeholder:l??""}),U.Markdown,I],editorProps:{attributes:{class:"outline-none",enterkeyhint:"send"},handleKeyDown:(e,t)=>(!(k.current.items.length>0)||null===k.current.command)&&(!!(S.current&&T.current({key:t.key,isComposing:t.isComposing,preventDefault:()=>t.preventDefault()}))||"Enter"===t.key&&!t.shiftKey&&!t.isComposing&&!S.current&&(t.preventDefault(),w.current(),!0)),handlePaste:(e,t)=>{let s=t.clipboardData?.items;if(!s)return!1;let a=[];for(let e=0;e<s.length;e++)if("file"===s[e].kind){let t=s[e].getAsFile();t&&a.push(t)}if(a.length>0)return t.preventDefault(),_.current?.(a),!0;let r=t.clipboardData?.getData("text/plain");return!!r&&(t.preventDefault(),e.dispatch(e.state.tr.insertText(r)),!0)},handleDrop:()=>!1},onUpdate:({editor:e})=>{C.current(Y(e.getMarkdown())),M(e)},onSelectionUpdate:({editor:e})=>{M(e)}});(0,s.useEffect)(()=>{E?.setEditable(!i)},[E,i]),(0,s.useEffect)(()=>{if(!E)return;let t=(e||"").trim();t!==Y(E.getMarkdown()||"").trim()&&(t?E.commands.setContent((e||"").replaceAll("\n","<br>"),{emitUpdate:!1}):E.commands.clearContent(),N.current(E.getText(),E.state.selection.from-1))},[e,E]);let A=(0,s.useRef)(null);return(0,s.useEffect)(()=>{if(!E||!o)return;let e=A.current?.querySelector(".ProseMirror");if(!e)return;let t=()=>o(e.scrollHeight>32);t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[E,o]),p=!!E?.isFocused,(0,s.useEffect)(()=>{let e=function(e,t){let s=navigator.virtualKeyboard;if(!s)return null;s.overlaysContent=!0;let a=e()?.closest("[data-keyboard-offset]");if(!a)return null;let r=()=>{if(!t){a.style.transform="";return}let{height:e}=s.boundingRect;a.style.transform=e>0?`translateY(-${e}px)`:""};return s.addEventListener("geometrychange",r),()=>{s.removeEventListener("geometrychange",r),a.style.transform="",s.overlaysContent=!1}}(()=>A.current,p);return e||(function(e,t){let s,a=window.visualViewport;if(!a)return null;let{handler:r,cleanup:n}={handler:()=>{t&&(clearTimeout(s),s=setTimeout(()=>{let t=e();if(!t)return;let s=window.visualViewport;if(!s)return void t.scrollIntoView({block:"end",behavior:"smooth"});let a=window.innerHeight-s.height,r=t.closest("[data-keyboard-offset]");if(r&&a>0){let e=r.getBoundingClientRect().bottom-s.height-s.offsetTop;r.style.transform=e>0?`translateY(-${e}px)`:""}else r?r.style.transform="":t.scrollIntoView({block:"end",behavior:"smooth"})},150))},cleanup:()=>{clearTimeout(s);let t=e();if(!t)return;let a=t.closest("[data-keyboard-offset]");a&&(a.style.transform="")}};return a.addEventListener("resize",r),a.addEventListener("scroll",r),()=>{a.removeEventListener("resize",r),a.removeEventListener("scroll",r),n()}}(()=>A.current,p)??void 0)},[A,p]),(0,s.useImperativeHandle)(g,()=>({focus:()=>E?.commands.focus(),clear:()=>E?.commands.clearContent(),isEmpty:()=>E?.isEmpty??!0,coordsAtTextIndex:e=>{if(!E)return null;try{let t=E.view.coordsAtPos(e+1);return{top:t.top,left:t.left}}catch{return null}}}),[E]),(0,t.jsxs)("div",{ref:A,className:"chat-composer relative",children:[(0,t.jsx)(O.EditorContent,{editor:E,className:"max-h-44 overflow-y-auto thin-scrollbar pr-2 text-base chat-input-line-height"}),(0,t.jsx)(J,{state:x})]})});var Z=e.i(721387),ee=e.i(288329),et=e.i(332680),es=e.i(535991),ea=e.i(940931);function er({open:e,onOpenChange:a,emailId:r,workspaceId:n}){let[i,o]=(0,s.useState)(null),[c,u]=(0,s.useState)(null),[m,f]=(0,s.useState)(!1),{width:h,onPointerDown:g,onPointerMove:p,onPointerUp:x}=(0,ee.useSheetResize)({defaultWidth:500,minWidth:320,maxWidthRatio:.8}),v=(0,s.useRef)(a);(0,s.useEffect)(()=>{v.current=a}),(0,s.useEffect)(()=>{e&&r&&(f(!0),o(null),u(null),Promise.all([(0,y.getEmail)(r,n),(0,y.getEmailBody)(r,n)]).then(([e,t])=>{o(e),u(t)}).catch(()=>{S.toast.error("Email not found"),v.current(!1)}).finally(()=>f(!1)))},[e,r,n]);let k=e=>{a(e),e||setTimeout(()=>{o(null),u(null)},300)};return(0,t.jsx)(et.Sheet,{open:e,onOpenChange:k,children:(0,t.jsxs)(et.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${h}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,t.jsx)(ee.SheetResizeHandle,{onPointerDown:g,onPointerMove:p,onPointerUp:x}),(0,t.jsx)(et.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(R.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsx)(et.SheetTitle,{className:"truncate flex-1",children:m?"Loading...":i?.subject||"Email"}),(0,t.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>k(!1),children:(0,t.jsx)($.X,{className:"h-4 w-4"})})]})}),(0,t.jsx)(et.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:m?(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(d.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):i?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"text-sm space-y-1 border-b pb-3",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"From:"}),(0,t.jsx)("span",{className:"truncate",children:i.from_email})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"To:"}),(0,t.jsx)("span",{className:"truncate",children:i.to_email})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Date:"}),(0,t.jsx)("span",{children:new Date(i.created_at).toLocaleString()})]})]}),c?.isHtml?(0,t.jsx)(ea.EmailBodyFrame,{html:c.content,className:"max-w-full"}):(0,t.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:c?.content}),i.attachments&&i.attachments.length>0&&(0,t.jsxs)("div",{className:"border-t pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 mb-2 text-xs text-muted-foreground",children:[(0,t.jsx)(F.Paperclip,{className:"size-3"}),i.attachments.length," attachment",i.attachments.length>1?"s":""]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:i.attachments.map((e,s)=>(0,t.jsxs)("a",{href:`/api/email/${i.id}/attachment/${s}?workspace_id=${n}`,target:"_blank",rel:"noopener noreferrer",download:e.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,t.jsx)(es.File,{className:"size-3 text-muted-foreground shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-45",children:e.filename}),(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:e.size<1024?`${e.size} B`:e.size<1048576?`${(e.size/1024).toFixed(1)} KB`:`${(e.size/1048576).toFixed(1)} MB`})]},e.key))})]})]}):null})]})})}var en=e.i(781360),el=e.i(169678),ei=e.i(364079);function eo({bufferedMessages:e,onDelete:a}){let[r,n]=(0,s.useState)(!1),l=e.length;if(0===l)return null;let i=Math.min(l,3);return(0,t.jsx)("div",{className:"relative px-5 pb-1",children:(0,t.jsx)("div",{className:"mx-auto max-w-2xl flex justify-center",children:(0,t.jsxs)("div",{className:"relative w-full max-w-lg transition-[height] duration-200 ease-out",style:{height:r?32*l+(l-1)*4:32+(i-1)*6},onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[e.map((e,s)=>{var n;let c=l-1-s,d=s>=l-i;return(0,t.jsx)("div",{className:"absolute right-0 left-0 transition-all duration-200 ease-out",style:{height:32,zIndex:s+1,bottom:r?36*c:d?6*c:0,transform:r?"scale(1)":`scale(${d?1-.03*c:.91})`,opacity:r?1:d?1-.2*c:0,pointerEvents:r||d?"auto":"none"},children:(0,t.jsxs)("div",{className:"h-full rounded-lg border bg-background/95 backdrop-blur-sm shadow-sm flex items-center gap-2 px-3",children:[(0,t.jsx)("span",{className:"shrink-0 text-[11px] text-primary/60 tabular-nums w-4 text-center",children:s+1}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-[13px] text-muted-foreground leading-snug truncate",children:(n=e.content).length<=80?n:n.slice(0,80).trimEnd()+"…"}),e.attachment_ids&&e.attachment_ids.length>0&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 shrink-0 text-[11px] text-muted-foreground/50",children:[(0,t.jsx)(F.Paperclip,{className:"size-2.5"}),e.attachment_ids.length]})]}),(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),a(e.id)},className:(0,o.cn)("shrink-0 rounded-sm p-0.5 transition-all duration-150","text-muted-foreground/30 hover:text-foreground hover:bg-muted",r?"opacity-100":"opacity-0"),tabIndex:r?0:-1,children:(0,t.jsx)($.X,{className:"size-3"})})]})},e.id)}),!r&&l>i&&(0,t.jsxs)("span",{className:"absolute -top-4 right-1 text-[10px] text-muted-foreground/40 tabular-nums",children:["+",l-i," more"]})]})})})}var ec=e.i(219658);function ed(e,t){if(t>=e.length)return!0;let s=e.charCodeAt(t);return(!(s>=48)||!(s<=57))&&(!(s>=65)||!(s<=90))&&(!(s>=97)||!(s<=122))&&95!==s}function eu(e,t){if(!e||0===t.length||!e.includes("@"))return e;let s=t.slice().sort((e,t)=>t.name.length-e.name.length),a=[];for(let t=0;t<e.length;t++){if("@"!==e[t]||!function(e,t){if(0===t)return!0;let s=e.charCodeAt(t-1);return(!(s>=48)||!(s<=57))&&(!(s>=65)||!(s<=90))&&(!(s>=97)||!(s<=122))&&95!==s}(e,t))continue;let r=t+1;for(let n of s){let s=r+n.name.length;if(s>e.length||e.slice(r,s).toLowerCase()!==n.name.toLowerCase())continue;let l=s,i=e.slice(s).match(/^ \([a-zA-Z0-9-]+@alook\.ai\)/);if(i&&(l=s+i[0].length),(i||ed(e,s))&&(!i||ed(e,l))){if(a.some(e=>t>=e.start&&t<e.end))break;a.push({start:t,end:s,name:n.name,agentId:n.id});break}}}let r=e;for(let e=a.length-1;e>=0;e--){let t=a[e],s=r.slice(t.start,t.end);r=r.slice(0,t.start)+`<mention data-agent-id="${t.agentId}">${s}</mention>`+r.slice(t.end)}return r}let em={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 ef({taskId:e,thinkingCount:a,workspaceId:r,provider:n}){let[l,i]=(0,s.useState)([]),[o,c]=(0,s.useState)(!1),[d,u]=(0,s.useState)(!1),m=(0,s.useCallback)(async()=>{if(!d&&!o){c(!0);try{let t=await (0,y.getTaskMessages)(e,r);i(t)}catch{i([])}finally{c(!1),u(!0)}}},[d,o,e,r]);return(0,t.jsx)(j,{task:em,messages:l,thinkingCountHint:a,onExpandThinking:m,thinkingLoading:o,provider:n})}var eh=e.i(983453),eg=e.i(251638);let ep=(0,E.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]);e.s(["Flag",0,ep],618615);var ex=e.i(89440),ev=e.i(541544);let ek={mention:["data-agent-id"]},ej=["mention"];function ey({content:e,conversationType:s}){let a=eA(e,s),r="h-4 w-4 mt-0.5 shrink-0";return"issue"===a?(0,t.jsx)(eg.CircleDot,{className:r}):"email"===a?(0,t.jsx)(R.Mail,{className:r}):(0,t.jsx)(eh.Calendar,{className:r})}function eb({attachmentIds:e,artifacts:s,onArtifactClick:a}){let r=e.map(e=>s.find(t=>t.id===e)).filter(e=>!!e);return 0===r.length?null:(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:r.map(e=>(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),a(e)},className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80 hover:bg-primary-foreground/20 transition-colors cursor-pointer",children:[(0,t.jsx)(z.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.filename})]},e.id))})}function ew({pendingFiles:e,messageId:s}){let a=e.get(s);return a&&0!==a.length?(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:a.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80",children:[(0,t.jsx)(z.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.name})]},s))}):null}let eN={solo:"rounded-2xl",first:"rounded-tl-2xl rounded-tr-2xl rounded-bl-2xl rounded-br-md",middle:"rounded-tl-2xl rounded-tr-md rounded-bl-2xl rounded-br-md",last:"rounded-tl-2xl rounded-tr-md rounded-bl-2xl rounded-br-2xl"},eC=(0,s.memo)(function({msg:e,agents:a,artifacts:r,activeTask:n,taskMessages:i,connectionLost:c,isLastMessage:d,thinkingCount:h,targetConvId:g,workspaceId:p,conversationType:x,pendingFilesByMessage:k,onArtifactClick:y,onEmailClick:b,onIssueClick:w,onCalendarEventClick:N,onRetry:C,mentionComponents:_,isFlagged:T,onToggleFlag:I,groupPosition:E="solo",provider:A}){let z,R,D,L,F,P,$,{copy:q,copied:B}=function(e=2e3){let[t,a]=(0,s.useState)(!1),r=(0,s.useRef)(void 0),n=(0,s.useCallback)(async t=>{try{return await navigator.clipboard.writeText(t),a(!0),clearTimeout(r.current),r.current=setTimeout(()=>a(!1),e),!0}catch{return!1}},[e]);return(0,s.useEffect)(()=>()=>clearTimeout(r.current),[]),{copy:n,copied:t}}(),O=n&&"assistant"===e.role&&e.task_id===n.id&&e.conversation_id===n.conversation_id&&i.length>0,H=O&&n&&["completed","failed","cancelled","superseded"].includes(n.status),W="assistant"===e.role?(0,t.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs","aria-label":B?"Copied":"Copy message",onClick:async t=>{t.stopPropagation(),await q(e.content)?S.toast.success("Copied to clipboard"):S.toast.error("Failed to copy")},className:(0,o.cn)("self-start mb-1",B?"text-green-500 opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:B?(0,t.jsx)(ev.Check,{className:"size-3.5"}):(0,t.jsx)(ex.Copy,{className:"size-3.5"})}),(0,t.jsx)(M.TooltipContent,{children:B?"Copied":"Copy"})]}),I&&(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs",onClick:()=>I(e.id),className:(0,o.cn)("self-start mb-1",T?"text-primary opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:(0,t.jsx)(ep,{className:(0,o.cn)("size-3.5",T&&"fill-current")})}),(0,t.jsx)(M.TooltipContent,{children:T?"Unflag":"Flag"})]})]}):null;return(0,t.jsxs)(s.default.Fragment,{children:[O&&(0,t.jsxs)("div",{className:(0,o.cn)("group/msg",T&&"bg-muted/30 rounded-lg px-2 -mx-2"),...H?{"data-quote-source":!0}:{},children:[(0,t.jsx)(j,{task:n,messages:i,connectionLost:c,onRetry:C,provider:A}),H&&W]}),"user"===e.role?(z=d&&!!n&&"running"!==n.status&&!["completed","failed","cancelled","superseded"].includes(n.status),R=e.content.match(/^\/(\S+)\s?([\s\S]*)$/),D=R?.[1]??null,L=R?R[2]||"":e.content,(0,t.jsx)("div",{className:"flex justify-end","data-message-id":e.id,...e.task_id?{"data-task-id":e.task_id}:{},children:(0,t.jsxs)("div",{className:(0,o.cn)("max-w-[80%] px-4 py-2 bg-primary text-primary-foreground text-base relative",eN[E]),children:[z&&(0,t.jsx)("div",{className:(0,o.cn)("absolute inset-0 animate-pulse pointer-events-none",eN[E]),style:{boxShadow:"0 0 0 2px var(--bubble-glow)"}}),D&&(0,t.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:["/",D]}),L&&(0,t.jsx)("div",{className:"markdown markdown-user",children:(0,t.jsx)(u.Streamdown,{plugins:{mermaid:m.mermaid,cjk:f.cjk},controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:ek,literalTagContent:ej,components:_,children:eu(L,a)})}),e.attachment_ids&&e.attachment_ids.length>0&&(0,t.jsx)(eb,{attachmentIds:e.attachment_ids,artifacts:r,onArtifactClick:y}),!e.attachment_ids&&(0,t.jsx)(ew,{pendingFiles:k,messageId:e.id})]})})):"event"===e.role?(F=e.metadata?.emailId,P=e.metadata?.issueId,$=e.metadata?.calendarEventId,(0,t.jsx)("div",{className:"flex justify-start","data-message-id":e.id,...e.task_id?{"data-task-id":e.task_id}:{},children:(0,t.jsxs)("div",{className:(0,o.cn)("w-full rounded-md border bg-muted/50 text-muted-foreground text-sm px-3 py-2 flex items-start gap-2",(!!F||!!P||!!$)&&"cursor-pointer hover:bg-muted transition-colors"),onClick:F?()=>b(F):P?()=>w(P):$?()=>N($):void 0,children:[(0,t.jsx)(ey,{content:e.content,conversationType:x}),(0,t.jsx)("span",{className:"min-w-0 wrap-anywhere",children:e.content})]})})):O?null:(0,t.jsxs)("div",{className:(0,o.cn)("group/msg flex flex-col justify-start min-w-0 overflow-x-clip",T&&"bg-muted/30 rounded-lg px-2 -mx-2"),"data-message-id":e.id,"data-quote-source":!0,...e.task_id?{"data-task-id":e.task_id}:{},children:[g&&"assistant"===e.role&&e.task_id&&h>1&&(0,t.jsx)(ef,{taskId:e.task_id,thinkingCount:h-1,workspaceId:p,provider:A}),e.metadata?.error_source==="runtime"?(0,t.jsx)("div",{className:"px-1 py-1",children:(0,t.jsx)(v,{provider:e.metadata.provider??A,message:e.content})}):(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,t.jsx)(u.Streamdown,{plugins:{mermaid:m.mermaid,cjk:f.cjk},controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:ek,literalTagContent:ej,components:_,children:eu(e.content,a)})}),W]})]})});e.i(400175);var e_=e.i(819748),eS=e.i(126366),eT=e.i(309475);function eM({agent:e,isOnline:a,activeTaskCount:r,variant:n="default",isHovered:l}){let[i,c]=(0,s.useState)(!1),d=e.email_handle?(0,X.toAlookAddress)(e.email_handle):null,u=(0,s.useCallback)(async()=>{if(d)try{await navigator.clipboard.writeText(d),c(!0),S.toast.success("Email copied to clipboard"),setTimeout(()=>c(!1),2e3)}catch{S.toast.error("Failed to copy email")}},[d]);if("compact"===n){let s;return(0,t.jsxs)("div",{className:"flex items-center gap-2 p-0",children:[(s=(0,eS.parseAvatarUrl)(e.avatar_url))?(0,t.jsx)(e_.AnimatedAvatar,{config:s,size:32,className:"shrink-0 rounded-xl",isHovered:l??!1,isWorking:!!a&&(r??0)>0}):(0,t.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:e.name.charAt(0).toUpperCase()}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate max-w-35",children:e.name}),d&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:d})]}),void 0!==a&&(0,t.jsx)("div",{className:"pointer-events-none mt-0.5",children:(0,t.jsx)(eT.AgentStatusBadge,{isOnline:a,taskCount:r??0,agentId:e.id})})]})]})}return(0,t.jsxs)("div",{className:"flex flex-col gap-1.5 p-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate",children:e.name}),(0,t.jsx)("span",{className:"flex-1"}),void 0!==a&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground",children:[(0,t.jsx)("span",{className:(0,o.cn)("size-1.5 rounded-full",a?"bg-status-online":"bg-status-offline")}),a?(r??0)>0?"Working":null:"Offline"]})]}),d&&(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:d}),(0,t.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),u()},className:"shrink-0 p-0.5 rounded-sm text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",children:i?(0,t.jsx)(ev.Check,{className:"size-3 text-green-500"}):(0,t.jsx)(ex.Copy,{className:"size-3"})})]}),e.description&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2",children:e.description})]})}e.s(["AgentPreviewCard",0,eM],844010);var eI=e.i(224950);let eE={mention:function(e){let{children:s,...a}=e,{agents:r}=(0,w.useAgentContext)(),n=a["data-agent-id"]??a.dataAgentId,l=n?r.find(e=>e.id===n):void 0;if(!l&&"string"==typeof s){let e=s.startsWith("@")?s.slice(1):s;l=r.find(t=>t.name.toLowerCase()===e.toLowerCase())}return l?(0,t.jsxs)(eI.Popover,{children:[(0,t.jsx)(eI.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,t.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:s}),(0,t.jsx)(eI.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,t.jsx)(eM,{agent:l})})]}):(0,t.jsx)("span",{className:"mention-highlight",children:s})},p:({children:e,node:s,...a})=>(0,t.jsx)("div",{"data-md-p":"",...a,children:e})};function eA(e,t){if("issue_event"===t)return"issue";if("email_notification"===t)return"email";if("calendar_event"===t)return"calendar";let s=e.toLowerCase();return s.startsWith("issue ")||s.startsWith("issue:")?"issue":s.includes("email")?"email":"calendar"}function ez(e){return e.slice().sort((e,t)=>{let s=e.created_at.localeCompare(t.created_at);return 0!==s?s:e.id.localeCompare(t.id)})}function eR(e,t){let s=new Map;for(let t of e)s.set(t.id,t);for(let e of t)s.set(e.id,e);return ez([...s.values()])}function eD(e){let t=[],s=[],a=!1;for(let r of e)"message"===r.kind&&"user"===r.data.role?(a=!0,t.push(r)):"message"===r.kind&&"assistant"===r.data.role?(t.push(r),t.push(...s),s=[],a=!1):a&&"artifact"===r.kind?s.push(r):t.push(r);return t.push(...s),t}function eL(e){let t=(0,s.useRef)(e);return(0,s.useEffect)(()=>{t.current=e},[e]),t}function eF({agentName:e}){return(0,t.jsxs)("div",{className:"flex items-center gap-3 py-4 select-none","aria-hidden":!0,children:[(0,t.jsx)("div",{className:"flex-1 border-t border-border/40"}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground/60 whitespace-nowrap",children:[e," took a nap 💤"]}),(0,t.jsx)("div",{className:"flex-1 border-t border-border/40"})]})}function eP({artifact:e,version:s,hasDuplicates:a,onClick:r}){return(0,t.jsxs)("button",{onClick:()=>r(e),className:(0,o.cn)("flex items-center gap-3 w-full max-w-sm rounded-lg border border-border/60 bg-muted/30","px-3.5 py-2.5 text-left transition-colors duration-150","hover:bg-muted/60 hover:border-border"),children:[(0,t.jsx)(z.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("p",{className:"text-sm font-medium truncate",children:[e.filename,a&&(0,t.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",s]})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,Z.formatSize)(e.size)})]})]})}function e$({agentId:e,targetConvId:i,scrollToTaskId:c,scrollToMessageId:u}){let m,f,h,g=(0,r.useParams)(),p=(0,r.useSearchParams)(),{workspaceId:x,slug:v}=(0,n.useWorkspace)(),{agents:k,runtimes:E,agentLinks:q,activeTaskCounts:O,subscribeWs:H,subscribeReconnect:W}=(0,w.useAgentContext)(),{refresh:U}=(0,N.useInboxCount)(),{activeChannel:V,loading:K,setAgentId:Y}=(0,_.useChannel)(),X=e??g.id,G=k.find(e=>e.id===X),J=G?.runtime_id?E.find(e=>e.id===G.runtime_id):null,ee=J?.provider??null,et=void 0!==c?c:p.get("task"),es=void 0!==u?u:p.get("msg"),ea=void 0!==i?i:p.get("conv"),[ed,eu]=(0,s.useState)(null),[em,ef]=(0,s.useState)([]),[eh,eg]=(0,s.useState)(()=>localStorage.getItem(`chat-draft:${X}:${ea??"default"}`)??""),[ep,ex]=(0,s.useState)(!1),[ev,ek]=(0,s.useState)(!1),[ej,ey]=(0,s.useState)(null),[eb,ew]=(0,s.useState)([]),[eN,e_]=(0,s.useState)(!0),[eS,eT]=(0,s.useState)(!1),[eM,eA]=(0,s.useState)(!1),[eq,eB]=(0,s.useState)(!1),[eO,eH]=(0,s.useState)([]),[eW,eU]=(0,s.useState)(!1),[eV,eK]=(0,s.useState)(null),[eY,eX]=(0,s.useState)(!1),[eG,eJ]=(0,s.useState)(null),[eQ,eZ]=(0,s.useState)(!1),[e0,e1]=(0,s.useState)(null),[e2,e5]=(0,s.useState)(!1),[e3,e4]=(0,s.useState)(null),[e8,e6]=(0,s.useState)(null),[e9,e7]=(0,s.useState)(!1),[te,tt]=(0,s.useState)(null),[ts,ta]=(0,s.useState)(null),[tr,tn]=(0,s.useState)([]),[tl,ti]=(0,s.useState)([]),[to,tc]=(0,s.useState)(null),[td,tu]=(0,s.useState)([]),[tm,tf]=(0,s.useState)(!1),[th,tg]=(0,s.useState)([]),[tp,tx]=(0,s.useState)({}),[tv]=(0,s.useState)(()=>Date.now()),[tk,tj]=(0,s.useState)(()=>new Map),[ty,tb]=(0,s.useState)(()=>{try{let e=JSON.parse(localStorage.getItem(`chat-draft-meta:${X}:${ea??"default"}`)??"null");return e?.quote??null}catch{return null}}),[tw,tN]=(0,s.useState)(!1),[tC,t_]=(0,s.useState)(null),[tS,tT]=(0,s.useState)(new Set),tM=(0,s.useRef)(tS);(0,s.useEffect)(()=>{tM.current=tS});let{increment:tI,decrement:tE,refresh:tA}=(0,C.useFlagCount)(),{writeToCache:tz}=function(e,t){let[a,r]=(0,s.useState)(null),[n,l]=(0,s.useState)(!1),i=(0,s.useRef)(e);return(0,s.useEffect)(()=>{if(i.current=e,!e||!t){r(null),l(!1);return}(0,b.openCacheDB)(t);let s=!1;return(0,b.getCachedMessages)(e,t).then(t=>{s||i.current!==e||(t&&t.length>0?(r(t),l(!0)):(r(null),l(!1)))}),()=>{s=!0}},[e,t]),{cachedMessages:a,isFromCache:n,writeToCache:(0,s.useCallback)(async(e,s,a)=>{i.current&&t&&await (0,b.mergeCachedMessages)(i.current,e,s,t,a)},[t])}}(ea??null,x),tR=(0,s.useRef)(tz);(0,s.useEffect)(()=>{tR.current=tz},[tz]),(0,s.useEffect)(()=>{Y(X)},[X,Y]);let tD=(0,s.useMemo)(()=>eO.filter(e=>"agent"===e.source),[eO]),{versionMap:tL,duplicateFilenames:tF}=(0,s.useMemo)(()=>(0,ei.computeArtifactVersions)(tD),[tD]),tP=(0,s.useMemo)(()=>(function(e,t,s,a){if(!a||0===s.length){let a=[...e.map(e=>({kind:"message",data:e})),...t.map(e=>({kind:"artifact",data:e})),...s.map(e=>({kind:"nap",data:e}))];return a.sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);if(0!==s)return s;if("nap"===e.kind||"nap"===t.kind){if("nap"===e.kind&&"nap"!==t.kind)return 1;if("nap"!==e.kind&&"nap"===t.kind)return -1}return e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)}),eD(a)}let r=new Set(s.map(e=>e.id.replace(/^nap-/,""))),n=[...s].sort((e,t)=>e.created_at.localeCompare(t.created_at)),l=s=>eD([...e.filter(e=>e.conversation_id===s).map(e=>({kind:"message",data:e})),...t.filter(e=>e.conversation_id===s).map(e=>({kind:"artifact",data:e}))].sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);return 0!==s?s:e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)})),i=[];for(let e of n){let t=e.id.replace(/^nap-/,"");i.push(...l(t)),i.push({kind:"nap",data:e})}i.push(...l(a));let o=new Set([...r,a]),c=e.filter(e=>!o.has(e.conversation_id)),d=t.filter(e=>!o.has(e.conversation_id));if(c.length>0||d.length>0){let e=[...c.map(e=>({kind:"message",data:e})),...d.map(e=>({kind:"artifact",data:e}))];e.sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);return 0!==s?s:e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)});let t=eD(e),s=i.findIndex(e=>"nap"===e.kind);s>=0?i.splice(s,0,...t):i.push(...t)}return i})(em,tD,th,ed?.id),[em,tD,th,ed?.id]),t$=(0,s.useMemo)(()=>(function(e){let t=Array(e.length).fill(null),s=e=>"user"===e.role||"assistant"===e.role;for(let a=0;a<e.length;a++){let r=e[a];if("message"!==r.kind)continue;let n=r.data;if(!s(n))continue;let l=a>0?e[a-1]:null,i=a<e.length-1?e[a+1]:null,o=l?.kind==="message"&&s(l.data)&&l.data.role===n.role&&(!n.created_at||!l.data.created_at||6e4>Math.abs(new Date(n.created_at).getTime()-new Date(l.data.created_at).getTime())),c=i?.kind==="message"&&s(i.data)&&i.data.role===n.role&&(!n.created_at||!i.data.created_at||6e4>Math.abs(new Date(i.data.created_at).getTime()-new Date(n.created_at).getTime()));o&&c?t[a]="middle":o&&!c?t[a]="last":!o&&c?t[a]="first":t[a]="solo"}return t})(tP),[tP]),tq=(0,s.useCallback)(e=>{(0,ei.isPreviewable)(e)?(eK(e),eU(!0)):window.open((0,ei.getArtifactUrl)(e.id,x,!0),"_blank")},[x]),tB=(0,s.useCallback)(e=>{(0,ei.isPreviewable)(e)?(eK(e),eU(!0)):window.open((0,ei.getArtifactUrl)(e.id,x,!0),"_blank")},[x]),tO=(0,s.useRef)(null),tH=(0,s.useRef)(null),tW=(0,s.useRef)(null),tU=(0,s.useRef)(null),tV=(0,s.useRef)(0),tK=(0,s.useRef)(0),tY=(0,s.useRef)(!1),tX=(0,s.useRef)(!1),tG=(0,s.useRef)(!0),tJ=(0,s.useRef)(!1),tQ=(0,s.useRef)(null),tZ=(0,s.useRef)(null),t0=(0,s.useRef)(0),t1=(0,s.useRef)(void 0),t2=(0,s.useRef)(null),t5=(0,s.useRef)({completedKey:null}),t3=(0,s.useRef)(null),t4=(0,s.useRef)(null),[t8,t6]=(0,s.useState)(""),t9=(0,s.useMemo)(()=>k.filter(e=>e.id!==X),[k,X]),[t7,se]=(0,s.useState)([]),st=(0,s.useRef)(!1),ss=(0,s.useRef)(!1);(0,s.useEffect)(()=>{st.current||(st.current=!0,(0,y.getAgentSkills)(X,x).then(e=>se(e.skills)).catch(()=>{}))},[X,x]);let[sa]=(0,s.useState)(()=>{try{let e=JSON.parse(localStorage.getItem(`chat-draft-meta:${X}:${ea??"default"}`)??"null");return e?.skill??null}catch{return null}}),sr=function({input:e,caretIndex:t,skills:a,onInputChange:r,initialActiveSkill:n,getAnchorPos:l,onAfterSelect:i}){let[o,c]=(0,s.useState)(!1),[d,u]=(0,s.useState)(""),[m,f]=(0,s.useState)(0),[h,g]=(0,s.useState)({top:0,left:0}),p=(0,s.useRef)(null),x=(0,s.useMemo)(()=>{if(!o)return[];if(!d)return a;let e=d.toLowerCase(),t=[],s=[];for(let r of a){let a=r.name.toLowerCase();a.startsWith(e)?t.push(r):a.includes(e)&&s.push(r)}return[...t,...s]},[o,d,a]);(0,s.useEffect)(()=>{f(0)},[x.length,d]);let[v,k]=(0,s.useState)(n??null);(0,s.useEffect)(()=>{if(v||null===t)return void c(!1);let s=function(e,t){if(!e.startsWith("/")||0===t)return null;let s=t-1;for(;s>=0&&t-s<=30;){let a=e.charCodeAt(s);if(47===a&&0===s)return{start:0,query:e.slice(1,t)};if(10===a||13===a||32===a)break;s--}return null}(e,t);if(s){p.current=s.start,u(s.query),c(!0);let e=l(s.start);e&&g(e)}else c(!1),p.current=null},[e,t,l,v]);let j=(0,s.useCallback)(e=>{k(e),r(""),c(!1),i?.()},[r,i]),y=(0,s.useCallback)(()=>{k(null)},[]),b=(0,s.useCallback)(e=>!!o&&0!==x.length&&!e.isComposing&&("ArrowDown"===e.key?(e.preventDefault(),f(e=>(e+1)%x.length),!0):"ArrowUp"===e.key?(e.preventDefault(),f(e=>(e-1+x.length)%x.length),!0):"Enter"===e.key||"Tab"===e.key?(e.preventDefault(),j(x[m]),!0):"Escape"===e.key&&(e.preventDefault(),c(!1),!0)),[o,x,m,j]);return{isOpen:o,query:d,selectedIndex:m,anchorPos:h,skills:x,activeSkill:v,handleSlashKeyDown:b,selectSkill:j,clearActiveSkill:y,setActiveSkill:k}}({input:t8,caretIndex:to,skills:t7,onInputChange:()=>t4.current?.clear(),initialActiveSkill:sa,getAnchorPos:(0,s.useCallback)(e=>t4.current?.coordsAtTextIndex(e)??null,[]),onAfterSelect:(0,s.useCallback)(()=>{requestAnimationFrame(()=>t4.current?.focus())},[])});(0,s.useEffect)(()=>{0===t7.length||!sr.activeSkill||t7.some(e=>e.name===sr.activeSkill.name)||sr.setActiveSkill(null)},[t7]),(0,s.useEffect)(()=>{let e=`chat-draft:${X}:${ea??"default"}`;eh?localStorage.setItem(e,eh):localStorage.removeItem(e)},[eh,X,ea]),(0,s.useEffect)(()=>{if(!ss.current)return;let e=`chat-draft-meta:${X}:${ea??"default"}`,t={};sr.activeSkill&&(t.skill={name:sr.activeSkill.name,description:sr.activeSkill.description}),ty&&(t.quote=ty),t.skill||t.quote?localStorage.setItem(e,JSON.stringify(t)):localStorage.removeItem(e)},[sr.activeSkill,ty,X,ea]),(0,s.useEffect)(()=>{ep||t4.current?.focus()},[ep]);let sn=(0,s.useCallback)(()=>{tG.current=!0,setTimeout(()=>{tO.current?.scrollTo({top:tO.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,s.useEffect)(()=>{var e,t;if(!ea&&K)return;let s=(e={workspaceId:x,agentId:X,targetConvId:ea,scrollToTaskId:et}).targetConvId?`${e.workspaceId}::${e.agentId}::${e.targetConvId}::${e.scrollToTaskId??""}`:null;if(t=t5.current,s&&t.completedKey===s||(t.completedKey=null,0))return;tH.current&&clearInterval(tH.current),tH.current=null,tU.current=null,t2.current=null;let a=!1;e_(!0),tY.current=!1,ey(null),ew([]),ti([]),tj(new Map),tg([]),tx({}),tu([]),tf(!1),tZ.current=null,eg(localStorage.getItem(`chat-draft:${X}:${ea??"default"}`)??"");let r=localStorage.getItem(`chat-draft-meta:${X}:${ea??"default"}`);if(r)try{let e=JSON.parse(r);tb(e.quote??null),sr.setActiveSkill(e.skill?e.skill:null)}catch{tb(null),sr.setActiveSkill(null)}else tb(null),sr.setActiveSkill(null);async function n(e){let t=await (0,b.getCacheMeta)(e,x);if(t?.newestMessageId){let s=await (0,b.getCachedMessages)(e,x);if(a)return{painted:!1,cacheMeta:t};if(s&&s.length>0)return ef(s),eA(t.hasMore),e_(!1),{painted:!0,cacheMeta:t}}return{painted:!1,cacheMeta:t}}return ss.current=!0,ef([]),async function(){let e=!1;try{let t=null,s=null,r=null;if(ea){t=ea;let r=await n(t);if(a)return;s=r.cacheMeta,e=r.painted}else{let l=await (0,b.getLastOpenConversation)(X,V,x);if(a)return;if(l?.conversation_id&&l.serverMessageCount>0){let t=await n(l.conversation_id);if(a)return;t.painted&&(e=!0,r=l.conversation_id,s=t.cacheMeta)}try{let l=await (0,y.checkFreshness)({agentId:X,channel:V},x);if(a)return;if(t=l.conversation_id,r&&t!==r){tY.current=!1,tG.current=!0;let r=await n(t);if(a)return;s=r.cacheMeta,e=r.painted,r.painted||(ef([]),e_(!0))}else if(!r){let r=await n(t);if(a)return;s=r.cacheMeta,e=r.painted}}catch{}}if(t){t2.current=t;let r=await (0,y.conversationInit)(t,x,{newestMessageId:s?.newestMessageId??void 0,messageCount:s?.serverMessageCount||void 0});if(a)return;if(eu(r.conversation),tf(r.has_more_conversations),!r.cache_valid&&r.messages){let s=tG.current;ef(e=>eR(e,r.messages)),t2.current===t&&(0,b.mergeCachedMessages)(t,r.messages,r.has_more_messages,x,r.message_count).catch(()=>{}),eA(r.has_more_messages),e&&tY.current&&s&&sn()}else s&&eA(s.hasMore);if(t2.current===t&&!ea){let e=await (0,b.getCacheMeta)(t,x);if(a)return;(0,b.setLastOpenConversation)(X,V,{conversation_id:t,newestMessageId:e?.newestMessageId??s?.newestMessageId??null,serverMessageCount:r.message_count},x).catch(()=>{})}if(tx(r.thinking_counts),eH(r.artifacts),ti(r.buffered_messages),tT(new Set(r.flagged_message_ids)),r.active_task&&(ey(r.active_task),ew(r.task_messages),r.task_messages.length>0&&(tV.current=Math.max(...r.task_messages.map(e=>e.seq))),tQ.current?.(r.active_task.id,t,tV.current)),et){let e=await (0,y.getTask)(et,x).catch(()=>null);if(a)return;if(e&&!["completed","failed","cancelled","superseded"].includes(e.status)){ey(e);let s=await (0,y.getTaskMessages)(et,x).catch(()=>[]);if(a)return;ew(s),s.length>0&&(tV.current=Math.max(...s.map(e=>e.seq))),tQ.current?.(e.id,t,tV.current)}}}else{let t=await (0,y.chatInit)(X,x,V);if(a)return;t2.current=t.conversation.id,eu(t.conversation);let s=tG.current;ef(e=>e.length>0?eR(e,t.messages):t.messages),eA(t.has_more_messages),eH(t.artifacts),ti(t.buffered_messages),tf(t.has_more_conversations),(0,b.mergeCachedMessages)(t.conversation.id,t.messages,t.has_more_messages,x).catch(()=>{}),(0,b.setLastOpenConversation)(X,V,{conversation_id:t.conversation.id,newestMessageId:t.messages.length>0?t.messages[t.messages.length-1].id:null,serverMessageCount:t.has_more_messages?0:t.messages.length},x).catch(()=>{}),e&&tY.current&&s&&sn(),(0,y.listFlaggedMessageIds)(x,t.conversation.id).then(e=>{a||tT(new Set(e.message_ids))}).catch(()=>{}),t.active_task&&(ey(t.active_task),t.task_messages.length>0&&(ew(t.task_messages),tV.current=Math.max(...t.task_messages.map(e=>e.seq))),["completed","failed","cancelled","superseded"].includes(t.active_task.status)||tQ.current?.(t.active_task.id,t.conversation.id,tV.current))}}catch{e?S.toast.error("Couldn't refresh conversation"):S.toast.error("Failed to load conversation")}finally{if(!a){var t;e_(!1),t=t5.current,s&&(t.completedKey=s)}}}(),()=>{a=!0}},[X,x,ea,et,V,K]);let sl=(0,s.useRef)(U);(0,s.useEffect)(()=>{sl.current=U},[U]);let si=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!ed?.id||!x||si.current===ed.id)return;si.current=ed.id;let e=setTimeout(()=>{(0,y.markInboxRead)(ed.id,x).then(()=>sl.current()).catch(()=>{})},1e3);return()=>{si.current=null,clearTimeout(e)}},[ed?.id,x]),(0,s.useEffect)(()=>{eN||!(em.length>0)||tY.current||(tY.current=!0,et||es?tG.current=!1:i?setTimeout(()=>{let e=tO.current?.querySelectorAll("[data-quote-source]");e&&e.length>0?e[e.length-1].scrollIntoView({behavior:"instant",block:"start"}):tO.current?.scrollTo({top:tO.current.scrollHeight})},50):setTimeout(()=>{tO.current?.scrollTo({top:tO.current.scrollHeight})},50))},[eN,em.length,et,es,i]),(0,s.useEffect)(()=>{let e;if(!et||eN||!ed)return;tG.current=!1,tJ.current=!0;let t=!1,s=()=>{if(t)return!1;let s=document.querySelector(`[data-task-id="${CSS.escape(et)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tJ.current=!1)},1500),!0)},a=setTimeout(async()=>{if(!t&&!s())try{let e=await (0,y.listMessagesAroundTask)(ed.id,x,et);if(t)return;e.length>0?(ef(t=>eR(t,e)),requestAnimationFrame(()=>{setTimeout(()=>{s()||(tJ.current=!1)},100)})):tJ.current=!1}catch{t||(tJ.current=!1)}},100);return()=>{t=!0,clearTimeout(a),e&&clearTimeout(e)}},[et,eN,ed,x]),(0,s.useEffect)(()=>{let e;if(!es||et||eN||!ed)return;tG.current=!1,tJ.current=!0;let t=!1,s=setTimeout(()=>{!t&&((()=>{if(t)return!1;let s=document.querySelector(`[data-message-id="${CSS.escape(es)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tJ.current=!1)},1500),!0)})()||(tO.current?.scrollTo({top:tO.current.scrollHeight}),tJ.current=!1))},100);return()=>{t=!0,clearTimeout(s),e&&clearTimeout(e)}},[es,et,eN,ed]);let so=ej?.status;(0,s.useEffect)(()=>{tJ.current||("running"===so||"queued"===so)&&tG.current&&sn()},[eb.length,so,sn]);let sc=(0,s.useMemo)(()=>k.find(e=>e.id===X)?.name??"Agent",[k,X]),sd=eL(em),su=eL(eM),sm=eL(td),sf=eL(tm),sh=eL(sc),sg=eL(V),sp=(0,s.useCallback)(async(e=!1)=>{if(!ed||tX.current)return;tX.current=!0;let t=sd.current,s=su.current,r=sf.current,n=sh.current,l=sg.current,i=!!ea,o=t[0],c=tZ.current?.id??ed.id,d=s&&o,u=sm.current;if(!i&&!d&&0===u.length&&r){let e=tZ.current??{id:ed.id,created_at:ed.created_at};try{let t=await (0,y.listPreviousConversations)(X,x,{exclude:ed.id,before:e.created_at,channel:l});u=t.conversations,tu(t.conversations),tf(t.has_more)}catch{tf(!1)}}let m=!i&&u.length>0;if(!d&&!m){tX.current=!1;return}eB(!0);let f=tO.current;f&&(f.style.overflowAnchor="none");let h=f?.scrollHeight??0;try{let t=[],s=[],m=20,g=!1,p=[],v=!1;if(d){let e=c===ed.id?await (0,b.getCachedMessagesBefore)(c,o.created_at,o.id,20,x):null;if(e)t=e.messages,m-=e.messages.length,g=e.hasMore;else{let e=await (0,y.listMessages)(c,x,{limit:20,before:o.created_at,beforeId:o.id});t=e.messages,m-=e.messages.length,g=e.has_more}v=g}if(!i&&!g&&m>0){if(0===u.length&&r){let e=tZ.current??{id:ed.id,created_at:ed.created_at};try{let t=await (0,y.listPreviousConversations)(X,x,{exclude:ed.id,before:e.created_at,channel:l});u=t.conversations,tu(t.conversations),tf(t.has_more)}catch{tf(!1)}}let e=0,t=0;for(;e<u.length&&m>0&&t<5;){let a=u[e];e++,t++;let r=await (0,y.listMessages)(a.id,x,{limit:m});if(0===r.messages.length){tZ.current=a;continue}let l=tZ.current?.created_at??ed.created_at;p.push({agentName:n,created_at:l,id:`nap-${a.id}`}),s=[...r.messages,...s],m-=r.messages.length,g=r.has_more,tZ.current=a}e>0&&tu(t=>t.slice(e))}let k=[...s,...t];if((0,a.flushSync)(()=>{k.length>0?(p.length>0&&tg(e=>{let t=new Set(e.map(e=>e.id)),s=p.filter(e=>!t.has(e.id));return[...e,...s]}),eA(g),ef(e=>{let t=new Set(e.map(e=>e.id));return[...k.filter(e=>!t.has(e.id)),...e]})):eA(!1)}),k.length>0&&ed){let e=k.filter(e=>e.conversation_id===ed.id);e.length>0&&(0,b.mergeCachedMessages)(ed.id,e,v,x).catch(()=>{})}if(tX.current=!1,(0,a.flushSync)(()=>eB(!1)),f)if(e)f.scrollTop=f.scrollHeight;else{let e=f.scrollHeight;f.scrollTop=e-h}}catch{S.toast.error("Failed to load older messages")}finally{tX.current=!1,eB(!1),tO.current&&(tO.current.style.overflowAnchor="")}},[ed,x,X,ea,sd,su,sf,sh,sg,sm]),sx=ea?eM:eM||td.length>0||tm;(0,s.useEffect)(()=>{ed?.id!==t1.current&&(t1.current=ed?.id,t0.current=0)},[ed?.id]),(0,s.useEffect)(()=>{eN||!ed||et||ea||em.length>=10||!sx||eq||t0.current>=3||(t0.current+=1,sp(!0))},[eN,em.length,sx,eq,ed,sp,et,ea]);let sv=(0,s.useCallback)(()=>{let e=tO.current;e&&(tG.current=e.scrollHeight-e.scrollTop-e.clientHeight<100)},[]),sk=(0,s.useCallback)((e,t,s)=>{tH.current&&clearInterval(tH.current),tV.current=s??0,tK.current=0,eT(!1),tU.current=e,tH.current=setInterval(async()=>{if(tU.current===e)try{let[s,a]=await Promise.all([(0,y.getTask)(e,x),(0,y.getTaskMessages)(e,x,tV.current||void 0)]),r=tU.current!==e;if(tK.current=0,eT(!1),a.length>0&&!r&&(ew(e=>{let t=new Set(e.map(e=>e.seq)),s=a.filter(e=>!t.has(e.seq));return s.length>0?[...e,...s]:e}),tV.current=Math.max(...a.map(e=>e.seq),tV.current)),"completed"===s.status||"failed"===s.status||"cancelled"===s.status||"superseded"===s.status){if(r)return void(0,y.listMessages)(t,x).then(({messages:e})=>{ef(t=>eR(t,e)),(0,b.mergeCachedMessages)(t,e,null,x).catch(()=>{})}).catch(()=>{});tH.current&&clearInterval(tH.current),tH.current=null,tW.current&&clearTimeout(tW.current),tW.current=setTimeout(()=>{(0,y.markInboxRead)(t,x).then(()=>sl.current()).catch(()=>{})},1e3);let a=!tJ.current&&tG.current;try{let[e,a]=await Promise.all([(0,y.listMessages)(t,x),(0,y.listArtifacts)(t,x).catch(()=>null)]);ef(t=>eR(t,e.messages)),(0,b.mergeCachedMessages)(t,e.messages,null,x).catch(()=>{}),a&&eH(a),ey(s)}catch{ey(s),S.toast.error("Failed to refresh messages")}a&&requestAnimationFrame(()=>{tO.current?.scrollTo({top:tO.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!tH.current)try{let[s,a]=await Promise.all([(0,y.getActiveTask)(t,x),(0,y.listBufferedMessages)(t,x)]);if(ti(a),s&&s.id!==e){let{messages:e}=await (0,y.listMessages)(t,x);ef(t=>eR(t,e)),(0,b.mergeCachedMessages)(t,e,null,x).catch(()=>{}),ey(s),ew([]),tQ.current?.(s.id,t)}}catch{}},1e3)}else r||ey(s)}catch{if(tU.current!==e)return;tK.current+=1,tK.current>=3&&eT(!0),tK.current>=10&&(tH.current&&clearInterval(tH.current),tH.current=null,S.toast.error("Lost connection to agent"))}},3e3)},[x]);(0,s.useEffect)(()=>{tQ.current=sk},[sk]),(0,s.useEffect)(()=>()=>{tH.current&&clearInterval(tH.current),tW.current&&clearTimeout(tW.current)},[]);let sj=(0,s.useRef)(null);(0,s.useEffect)(()=>{sj.current=ej?.id??null},[ej]),(0,s.useEffect)(()=>H(e=>{if("task.messages"===e.type&&e.taskId===sj.current){let t=e.messages.filter(e=>e.seq>tV.current);t.length>0&&(ew(e=>{let s=new Set(e.map(e=>e.seq)),a=t.filter(e=>!s.has(e.seq));return a.length>0?[...e,...a]:e}),tV.current=Math.max(...t.map(e=>e.seq),tV.current))}if("task.created"===e.type&&e.conversationId===ed?.id){(0,y.listMessages)(e.conversationId,x).then(({messages:t})=>{ef(e=>eR(e,t)),(0,b.mergeCachedMessages)(e.conversationId,t,null,x).catch(()=>{})}).catch(()=>{});let t=e.task;sj.current=t.id,ey(t),ew([]),tV.current=0,tQ.current?.(t.id,e.conversationId)}if("task.created"===e.type){let t=e.task,s=sg.current;(0,b.getLastOpenConversation)(X,s,x).then(e=>{let a=function(e){let{task:t,agentId:s,activeChannel:a,currentPointerConvId:r}=e;return t.agent_id!==s||(t.channel??"default")!==a||t.conversation_id===r?null:t.conversation_id}({task:t,agentId:X,activeChannel:s,currentPointerConvId:e?.conversation_id??null});if(a)return(0,b.getCacheMeta)(a,x).then(e=>(0,b.setLastOpenConversation)(X,s,{conversation_id:a,newestMessageId:e?.newestMessageId??null,serverMessageCount:e?.messageCount??0},x))}).catch(()=>{})}if("conversation.message"===e.type&&(e.conversationId===t2.current&&(0,b.appendCachedMessage)(e.conversationId,e.message,x).catch(()=>{}),e.conversationId===ed?.id&&ef(t=>{let s=new Date(e.message.created_at).getTime(),a=t.findIndex(t=>t.id.startsWith("temp-")&&t.role===e.message.role&&t.content===e.message.content&&2e3>Math.abs(new Date(t.created_at).getTime()-s));if(-1!==a){let s=[...t];return s[a]=e.message,s}return eR(t,[e.message])})),"task.updated"===e.type&&e.taskId===sj.current&&ey(t=>t?{...t,status:e.status}:t),"artifact.uploaded"===e.type&&e.conversationId===ed?.id&&eH(t=>t.some(t=>t.id===e.artifact.id)?t:[...t,e.artifact]),"followup.dispatched"===e.type&&e.conversationId===ed?.id){ti(t=>t.filter(t=>t.id!==e.message.id)),(0,y.listBufferedMessages)(e.conversationId,x).then(ti).catch(()=>{}),(0,y.listMessages)(e.conversationId,x).then(({messages:t})=>{ef(e=>eR(e,t)),(0,b.mergeCachedMessages)(e.conversationId,t,null,x).catch(()=>{})}).catch(()=>{});let t=e.task;sj.current=t.id,ey(t),ew([]),tQ.current?.(t.id,e.conversationId)}"followup.created"===e.type&&e.conversationId===ed?.id&&ti(t=>(function(e,t){if(e.some(e=>e.id===t.id))return e;let s=new Date(t.created_at).getTime();return e.some(e=>e.id.startsWith("temp-")&&2e3>Math.abs(new Date(e.created_at).getTime()-s))?e:[...e,t]})(t,e.message)),"followup.deleted"===e.type&&e.conversationId===ed?.id&&ti(t=>t.filter(t=>t.id!==e.messageId)),"followup.dispatch_failed"===e.type&&e.conversationId===ed?.id&&S.toast.error(e.error||"Failed to dispatch follow-up")}),[H,ed?.id,x,X]),(0,s.useEffect)(()=>W(()=>{ed?.id&&(0,b.getCacheMeta)(ed.id,x).then(e=>{(0,y.conversationInit)(ed.id,x,{newestMessageId:e?.newestMessageId??void 0,messageCount:e?.serverMessageCount??void 0}).then(e=>{!e.cache_valid&&e.messages&&(ef(t=>eR(t,e.messages)),tR.current(e.messages,e.has_more_messages,e.message_count).catch(()=>{}))}).catch(()=>{})})}),[W,ed?.id,x]);let sy=(0,s.useCallback)(e=>{let t=[];for(let s of e)s.size>0xa00000?S.toast.error(`"${s.name}" exceeds 10 MB limit`):t.push(s);t.length>0&&tn(e=>[...e,...t])},[]),sb=(0,s.useCallback)(e=>{let t=e.target.files;t&&(sy(Array.from(t)),e.target.value="")},[sy]),sw=(0,s.useCallback)(e=>{tn(t=>t.filter((t,s)=>s!==e))},[]),sN=(0,s.useCallback)(()=>{let e=window.getSelection();if(!e||e.isCollapsed||!e.rangeCount)return void t_(null);let t=e.toString().trim();if(!t)return void t_(null);let s=e.getRangeAt(0),a=s.commonAncestorContainer instanceof HTMLElement?s.commonAncestorContainer:s.commonAncestorContainer.parentElement;if(!a?.closest("[data-quote-source]"))return void t_(null);let r=s.getClientRects(),n=r[r.length-1]||s.getBoundingClientRect();t_({text:t,x:n.right,y:n.top-4})},[]);(0,s.useEffect)(()=>(document.addEventListener("selectionchange",sN),()=>document.removeEventListener("selectionchange",sN)),[sN]);let sC=(0,s.useCallback)(()=>{tC&&(tb(tC.text),t_(null),window.getSelection()?.removeAllRanges(),t4.current?.focus())},[tC]),[s_,sS]=(0,s.useState)(!1),sT=(0,s.useRef)(0),sM=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sT.current++,e.dataTransfer.types.includes("Files")&&sS(!0)},[]),sI=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sT.current--,0===sT.current&&sS(!1)},[]),sE=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),sA=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sS(!1),sT.current=0,sy(Array.from(e.dataTransfer.files))},[sy]),sz=async()=>{if(ed&&!ev){ek(!0);try{let e=await (0,y.cancelActiveTask)(ed.id,x);if(e){if(sj.current&&sj.current!==e.id)return;tH.current&&clearInterval(tH.current),tH.current=null;let[t,s]=await Promise.all([(0,y.listMessages)(ed.id,x),(0,y.listBufferedMessages)(ed.id,x)]);ef(e=>eR(e,t.messages)),(0,b.mergeCachedMessages)(ed.id,t.messages,null,x).catch(()=>{}),ti(s),ey(e),ew([])}}catch{S.toast.error("Failed to cancel task")}finally{ek(!1)}}},sR=async()=>{let e=eh.trim();if(!e&&0===tr.length||ep||!ed)return;if(!e)return void S.toast.error("Please type a message");let t=ty?`> ${ty.split("\n").join("\n> ")}
2
-
3
- ${e}`:e;sr.activeSkill&&(t=`/${sr.activeSkill.name} ${t}`);let s=[...tr];if(eg(""),tn([]),tb(null),sr.clearActiveSkill(),ex(!0),ej&&!["completed","failed","cancelled","superseded"].includes(ej.status)){let e=`temp-${Date.now()}`,a={id:e,conversation_id:ed.id,role:"user",content:t,task_id:null,attachment_ids:null,status:"buffered",created_at:new Date().toISOString()};ti(e=>[...e,a]);try{let{message:a}=await (0,y.createBufferedMessage)(ed.id,t,x,s.length>0?s:void 0);ti(t=>t.some(e=>e.id===a.id)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?a:t))}catch(a){ti(t=>t.filter(t=>t.id!==e)),eg(t),tn(s),S.toast.error(a instanceof Error?a.message:"Failed to queue follow-up")}finally{ex(!1)}return}let a=`temp-${Date.now()}`,r={id:a,conversation_id:ed.id,role:"user",content:t,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};s.length>0&&tj(e=>{let t=new Map(e);return t.set(a,s),t}),ef(e=>[...e,r]),sn();try{let{message:e,task:n}=await (0,y.sendMessage)(ed.id,t,x,s.length>0?s:void 0);tj(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),ef(t=>{if(!t.some(e=>e.id===r.id))return t.some(t=>t.id===e.id)?t:ez([...t,e]);let s=t.filter(t=>t.id!==r.id&&t.id!==e.id);return ez([...s,e])}),(0,b.appendCachedMessage)(ed.id,e,x).catch(()=>{}),e.attachment_ids&&e.attachment_ids.length>0&&(0,y.listArtifacts)(ed.id,x).then(e=>eH(e)).catch(()=>{}),ey(n),ew([]),sk(n.id,ed.id)}catch(e){tj(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),ef(e=>e.filter(e=>e.id!==r.id)),eg(t),tn(s),S.toast.error(e instanceof Error?e.message:"Failed to send message")}finally{ex(!1),t4.current?.focus()}},sD=(0,s.useCallback)(async()=>{if(!ej||!ed)return;let e=await (0,y.retryTask)(ej.id,x);ey(e),ew([]),sk(e.id,ed.id)},[ej,ed,x,sk]),sL=(0,s.useCallback)(async e=>{let t=tM.current.has(e);tT(s=>{let a=new Set(s);return t?a.delete(e):a.add(e),a}),t?(tE(),(0,y.unflagMessage)(x,e).then(()=>{tA()}).catch(()=>{tT(t=>new Set(t).add(e)),tI()})):(tI(),(0,y.flagMessage)(x,e).then(()=>{tA()}).catch(()=>{tT(t=>{let s=new Set(t);return s.delete(e),s}),tE()}))},[x,tI,tE,tA]),sF=(0,s.useCallback)(async e=>{e4(e),e5(!0),e7(!0),tt(null),ta(null);try{let t=await (0,y.getIssue)(x,e);e6(t),t.issue.latest_task_id&&(0,y.getTask)(t.issue.latest_task_id,x).then(e=>ta(e)).catch(()=>ta(null)),t.issue.trace_id&&(0,y.getTrace)(t.issue.trace_id,x).then(e=>tt(e.tasks)).catch(()=>tt(null))}catch(e){S.toast.error(e instanceof Error?e.message:"Failed to load issue"),e5(!1)}finally{e7(!1)}},[x]),sP=e8?.issue?.conversation_id??null,s$=e8?.issue?.latest_task_id??null;(0,s.useEffect)(()=>{if(e2&&e3)return H(e=>{if("task.updated"===e.type&&s$&&e.taskId===s$&&(0,y.getTask)(s$,x).then(e=>ta(e)).catch(()=>{}),"conversation.message"===e.type&&sP&&e.conversationId===sP&&(e6(t=>!t||t.messages.some(t=>t.id===e.message.id)?t:{...t,messages:[...t.messages,e.message]}),"event"===e.message.role&&e.message.content.startsWith("Issue status changed:"))){let t=e.message.content.match(/-> (\w+)/);t&&e6(e=>e?{...e,issue:{...e.issue,status:t[1]}}:e)}"issue.comment"===e.type&&e.issueId===e3&&e6(t=>!t||t.comments.some(t=>t.id===e.comment.id)?t:{...t,comments:[...t.comments,e.comment]})})},[e2,e3,sP,s$,x,H]);let[sq,sB]=(0,s.useState)(!1),[sO,sH]=(0,s.useState)(!1),sW=(0,s.useMemo)(()=>!!ed&&em.some(e=>e.conversation_id===ed.id),[ed,em]),sU=async()=>{if(ed&&sW&&!sq){sB(!0);try{tH.current&&(clearInterval(tH.current),tH.current=null);let e=await (0,y.createConversation)(X,x,V);tg(t=>[...t,{agentName:sc,created_at:e.created_at,id:`nap-${ed.id}`}]),tu(e=>[{id:ed.id,created_at:ed.created_at},...e]),eu(e),ey(null),ew([]),eH([]),ti([]),tn([]),tj(new Map),tV.current=0,eT(!1),eA(!1),tZ.current=null,sn()}catch{S.toast.error("Failed to start new conversation")}finally{sB(!1)}}},sV=!!ej&&!["completed","failed","cancelled","superseded"].includes(ej.status);return eN?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-3 md:px-5",children:(0,t.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4",children:[(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(T.Skeleton,{className:"h-10 w-48 rounded-lg"})}),(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,t.jsx)(T.Skeleton,{className:"h-4 w-72"}),(0,t.jsx)(T.Skeleton,{className:"h-4 w-56"}),(0,t.jsx)(T.Skeleton,{className:"h-4 w-64"})]})}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(T.Skeleton,{className:"h-10 w-36 rounded-lg"})}),(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,t.jsx)(T.Skeleton,{className:"h-4 w-64"}),(0,t.jsx)(T.Skeleton,{className:"h-4 w-48"})]})})]})}),(0,t.jsx)("div",{className:"px-3 md:px-5 pt-3 pb-5 md:pb-6",children:(0,t.jsx)("div",{className:"mx-auto max-w-2xl",children:(0,t.jsx)(T.Skeleton,{className:"h-12 w-full rounded-3xl"})})})]}):eN||ed||0!==em.length?(0,t.jsxs)(t.Fragment,{children:[tC&&(0,t.jsxs)("button",{type:"button",className:"fixed z-50 flex items-center gap-1 px-2 py-1 rounded-md bg-popover border shadow-md text-xs text-popover-foreground hover:bg-accent transition-colors",style:{left:tC.x,top:tC.y,transform:"translate(-100%, -100%)"},onMouseDown:e=>e.preventDefault(),onClick:sC,children:[(0,t.jsx)(D,{className:"size-3"}),"Quote"]}),(0,t.jsxs)("div",{className:"relative flex-1 min-h-0",children:[(0,t.jsx)("div",{className:"h-full overflow-y-auto overflow-x-hidden px-3 md:px-5 thin-scrollbar",ref:tO,onScroll:sv,onClick:e=>{e.target.closest('[data-streamdown="code-block-actions"] button')&&S.toast.success("Copied to clipboard")},children:(0,t.jsxs)("div",{className:"mx-auto max-w-2xl pt-6 pb-15 min-w-0",children:[ed&&sx&&!eq&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)("button",{onClick:()=>sp(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),eq&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)(d.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===em.length&&!ej&&(m=k.find(e=>e.id===X),f=m?.created_at&&tv-new Date(m.created_at).getTime()<3e5,h=(O[X]??0)>0,f&&h&&"default"===V?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 gap-3 animate-[fade-up_400ms_ease-out_both]",children:[(0,t.jsxs)("div",{className:"relative animate-bounce",children:[(0,t.jsx)(R.Mail,{className:"size-8 text-primary"}),(0,t.jsxs)("span",{className:"absolute -top-1 -right-1 flex size-3",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex size-full rounded-full bg-primary/60"}),(0,t.jsx)("span",{className:"relative inline-flex size-3 rounded-full bg-primary"})]})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground text-center max-w-xs",children:"Your agent is sending you a welcome email."}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground/60 text-center max-w-xs",children:"Wait for the email task in the top-left to complete, then check your inbox. Or send a message below to start chatting."})]}):(0,t.jsx)("p",{className:"text-center text-muted-foreground py-20 text-sm",children:"Send a message to start chatting with the agent."})),tP.map((e,s)=>{let a=t$[s],r="first"===a||"solo"===a||null===a,n=0===s?"":r?"mt-4":"mt-0.5";if("nap"===e.kind)return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(eF,{agentName:sc})},e.data.id);if("artifact"===e.kind)return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(eP,{artifact:e.data,version:tL.get(e.data.id)??1,hasDuplicates:tF.has(e.data.filename),onClick:tq})},`artifact-${e.data.id}`);let l=e.data;return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(eC,{msg:l,agents:k,artifacts:eO,activeTask:ej,taskMessages:eb,connectionLost:eS,isLastMessage:em.length>0&&em[em.length-1].id===l.id,thinkingCount:l.task_id?tp[l.task_id]??0:0,targetConvId:ea,workspaceId:x,conversationType:ed?.type,pendingFilesByMessage:tk,onArtifactClick:tq,onEmailClick:e=>{eJ(e),eX(!0)},onCalendarEventClick:e=>{e1(e),eZ(!0)},onIssueClick:e=>sF(e),onRetry:sD,mentionComponents:eE,isFlagged:tS.has(l.id),onToggleFlag:"assistant"===l.role?sL:void 0,groupPosition:a??"solo",provider:ee})},l.id)}),ej&&ej.conversation_id===ed?.id&&!["completed","failed","cancelled","superseded"].includes(ej.status)&&(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(j,{task:ej,messages:eb,connectionLost:eS,provider:ee})})]})}),(0,t.jsx)(ec.ScrollToBottomButton,{scrollRef:tO})]}),ed&&(0,t.jsx)(eo,{bufferedMessages:tl,onDelete:e=>{ti(t=>t.filter(t=>t.id!==e)),(0,y.deleteBufferedMessage)(ed.id,e,x).catch(()=>{ti(tl),S.toast.error("Failed to delete follow-up")})}}),(0,t.jsx)("div",{"data-keyboard-offset":!0,className:"relative z-10 px-3 md:px-5 pt-3 pb-[max(1.25rem,env(safe-area-inset-bottom))] md:pb-6",children:(0,t.jsx)("div",{className:"mx-auto max-w-2xl relative",children:(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[!ea&&(0,t.jsxs)(eI.Popover,{open:sO,onOpenChange:sH,children:[(0,t.jsx)(eI.PopoverTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 self-end mb-2.5 size-8 rounded-full text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,t.jsx)(L.MoreHorizontal,{className:"size-4"})}),(0,t.jsx)(eI.PopoverContent,{side:"top",align:"start",className:"w-auto p-1.5 flex flex-col gap-0.5",children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{render:e=>(0,t.jsx)("span",{...e,className:(0,o.cn)("inline-flex",e.className),children:(0,t.jsxs)(l.Button,{variant:"ghost",size:"sm",onClick:()=>{sH(!1),sU()},disabled:sq||!ed||!sW||sV,className:"w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[sq?(0,t.jsx)(d.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(A,{className:"size-3.5"}),(0,t.jsx)("span",{className:"text-xs",children:"Nap"})]})})}),(0,t.jsx)(M.TooltipContent,{side:"right",children:sV?"Wait for the task to finish":sW?"Take a nap":`${sc} is well-rested and ready to go`})]})})]}),(0,t.jsxs)("div",{className:(0,o.cn)("relative flex-1 min-w-0 flex flex-col rounded-3xl border border-border/50 bg-background/90 transition-[border-radius] duration-200","focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",(tw||ty||sr.activeSkill)&&"rounded-2xl",ep&&"opacity-50",s_&&"border-ring ring-3 ring-ring/50"),onDragEnter:sM,onDragLeave:sI,onDragOver:sE,onDrop:sA,children:[s_&&(0,t.jsx)("div",{className:(0,o.cn)("absolute inset-0 z-10 flex items-center justify-center bg-background/80 border-2 border-dashed border-ring pointer-events-none",tw||ty||sr.activeSkill?"rounded-2xl":"rounded-3xl"),children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),sr.activeSkill&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"shrink-0 text-xs font-medium text-primary",children:["/",sr.activeSkill.name]}),sr.activeSkill.isGlobal&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground bg-muted rounded px-1 py-0.5",children:"Global"}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:sr.activeSkill.description})]}),(0,t.jsx)("button",{type:"button",onClick:sr.clearActiveSkill,className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)($.X,{className:"size-3.5"})})]}),ty&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex items-start gap-2",children:[(0,t.jsx)(D,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[ty.slice(0,120),ty.length>120?"...":""]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>tb(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)($.X,{className:"size-3.5"})})]}),(0,t.jsx)(B,{isOpen:sr.isOpen,skills:sr.skills,selectedIndex:sr.selectedIndex,onSelect:sr.selectSkill,anchorPos:sr.anchorPos}),tr.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pt-3 pb-0.5",children:tr.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground",children:[(0,t.jsx)(z.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-30",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground/60",children:(0,Z.formatSize)(e.size)}),(0,t.jsx)("button",{type:"button",onClick:()=>sw(s),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,t.jsx)($.X,{className:"size-3"})})]},`${e.name}-${s}`))}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{ref:t3,type:"file",multiple:!0,className:"hidden",onChange:sb}),(0,t.jsx)("div",{className:"px-13 py-3",children:(0,t.jsx)(Q,{ref:t4,value:eh,onChange:eg,onEditorState:(e,t)=>{t6(e),tc(t)},onSend:sR,placeholder:sV?"Type a follow-up...":"Type a task...",disabled:ep,onMultiLineChange:tN,onFiles:sy,agents:t9,agentLinks:q,currentAgentId:X,slashIsOpen:sr.isOpen,onSlashKeyDown:sr.handleSlashKeyDown})}),(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onPointerDown:e=>e.preventDefault(),onClick:()=>t3.current?.click(),disabled:ep,className:"absolute left-2 bottom-2 size-8 rounded-full text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,t.jsx)(F.Paperclip,{className:"size-3.5"})}),(0,t.jsx)(M.TooltipContent,{side:"top",children:"Attach files"})]}),!sV||eh.trim()||ep?(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:sR,disabled:!eh.trim()||ep,className:(0,o.cn)("absolute right-2 bottom-2 size-8 rounded-full bg-primary text-primary-foreground transition-opacity duration-200",!eh.trim()&&"opacity-30")}),children:ep?(0,t.jsx)(d.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(I.ArrowUp,{className:"size-3.5"})}),(0,t.jsx)(M.TooltipContent,{side:"top",children:"Send"})]}):(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:sz,disabled:ev,className:"absolute right-2 bottom-2 size-8 rounded-full bg-red-500/10 text-red-500 hover:bg-red-500/20 transition-colors duration-200"}),children:ev?(0,t.jsx)(d.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(P.Square,{className:"size-3.5 fill-current"})}),(0,t.jsx)(M.TooltipContent,{side:"top",children:"Stop task"})]})]})]}),!ea&&(0,t.jsx)("div",{className:"shrink-0 self-end mb-2.5 size-8","aria-hidden":"true"})]})})}),(0,t.jsx)(Z.ArtifactSheet,{open:eW,onOpenChange:e=>{eU(e),e||setTimeout(()=>{eK(null)},300)},artifacts:eV?[eV]:tD,workspaceId:x,initialArtifact:eV,versionMap:tL,duplicateFilenames:tF}),(0,t.jsx)(er,{open:eY,onOpenChange:e=>{eX(e),e||setTimeout(()=>eJ(null),300)},emailId:eG,workspaceId:x}),(0,t.jsx)(en.CalendarEventSheet,{readonly:!0,open:eQ,onOpenChange:e=>{eZ(e),e||setTimeout(()=>e1(null),300)},calendarEventId:e0,workspaceId:x}),(0,t.jsx)(el.IssueSheet,{open:e2,onOpenChange:e=>{e5(e),e||setTimeout(()=>{e4(null),e6(null),ta(null)},300)},agents:k,issue:e8?.issue??null,detail:e8?{messages:e8.messages,comments:e8.comments,artifacts:e8.artifacts,traceId:e8.issue.trace_id}:null,detailLoading:e9,activeTask:ts,traceTasks:te,slug:v,workspaceId:x,onUpdate:async(e,t)=>{try{let s=await (0,y.updateIssue)(x,e,t);e6(a=>a&&a.issue.id===e?{...a,issue:{...a.issue,...t,updated_at:s.updated_at}}:a)}catch(e){S.toast.error(e instanceof Error?e.message:"Failed to update issue")}},onStatusChange:async(e,t)=>{try{await (0,y.updateIssue)(x,e,{status:t}),e6(s=>s&&s.issue.id===e?{...s,issue:{...s.issue,status:t}}:s)}catch(e){S.toast.error(e instanceof Error?e.message:"Failed to update status")}},onCommented:()=>{e3&&sF(e3)},onArtifactClick:tB})]}):(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}}]);