@alook/app 0.0.108 → 0.0.110
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/email-worker/index.js +8 -5
- 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/{0t3u2c6n51rlj.js → 01apep3k2lhu1.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/039rsmy2xv5a-.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/08_pxrd46meym.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/08p2ekglkxw~q.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0aj8yzj6vrad4.css +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{1712ppta_sub~.js → 0caq6r63e_.cz.js} +2 -2
- package/bundled/web/.open-next/assets/_next/static/chunks/0kjdnm3_zoplm.js +63 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/11.l90o9r_vdp.js +62 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0aiuwip8_7r1i.js → 13bvgms2h_9ud.js} +1 -1
- package/bundled/web/.open-next/cache/{ZoH0qYtBG9o2M-yTRK3ab → KbaMV38oRSu84qh40vSuT}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{ZoH0qYtBG9o2M-yTRK3ab → KbaMV38oRSu84qh40vSuT}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{ZoH0qYtBG9o2M-yTRK3ab → KbaMV38oRSu84qh40vSuT}/device.cache +1 -1
- package/bundled/web/.open-next/cache/{ZoH0qYtBG9o2M-yTRK3ab → KbaMV38oRSu84qh40vSuT}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{ZoH0qYtBG9o2M-yTRK3ab → KbaMV38oRSu84qh40vSuT}/sitemap.xml.cache +1 -1
- package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
- package/bundled/web/.open-next/cloudflare/init.js +1 -1
- package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
- package/bundled/web/.open-next/middleware/handler.mjs +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/chat-init/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/recruit/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/[id]/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/active-task/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/init/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/messages/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/deregister/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/heartbeat/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/register/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/sweep/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/complete/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/fail/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/messages/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/start/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/supersede/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/poll/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/notify/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/comments/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/meeting/callback/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/machine/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/retry/route.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/device/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/[root-of-the-server]__027mioa._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ai~o9t._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0g2f8es._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0hfok0d._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ibt4_b._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__0d6ebrz._.js → [root-of-the-server]__0l2s5a9._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__0ycrc-4._.js → [root-of-the-server]__0p25hr6._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__042daks._.js → [root-of-the-server]__0twttjc._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__0lc6d3p._.js → [root-of-the-server]__0y7iq_6._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__0l7bqz8._.js → [root-of-the-server]__0~6oegu._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0~qx7w~._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +35 -35
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0kfs6gu._.js → _0.gkbx8._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0xjhix2._.js → _00-p7_0._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0v78k7n._.js → _0047hu1._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0r7d~ex._.js → _03.wj5m._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0j5oga0._.js → _03gwxos._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_09yl_9p._.js → _03pj4c4._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0zhu~h5._.js → _0403fh~._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06imn.m._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08xh_f8._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0xfvf8p._.js → _0aa_-d.._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0a3hhbw._.js → _0aomz8a._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0qh5atg._.js → _0aqlpnt._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0iiaqss._.js → _0b6v~wp._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0d5xg0u._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0es3xrw._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_089u_am._.js → _0fj.mo3._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0fjzb27._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0j22j5s._.js → _0huk3rm._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_027kyge._.js → _0i~wxfn._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0f2yj1_._.js → _0nyvdk.._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_07n_1wf._.js → _0oewl7j._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r~swxs._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0y1jmbv._.js → _0w5uflk._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0p8t2cq._.js → _0wbaduy._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0t1vdvk._.js → _0xed-yu._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0xfnkkm._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_0422iyn._.js → _0yzq1gx._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_00clbi5._.js → _0zt3sdk._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_13sefqw._.js → _11zk~pq._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{_064~~s0._.js → _12-_-5g._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{src_0yrpg8t._.js → src_0wkbw.-._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__13_rzu8._.js → [root-of-the-server]__00ir-1l._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +35 -35
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_06glull._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0orn3gz._.js → _0lb.qjt._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0llmkdo._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0r_z7cy._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ryz7_7._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0v378m.._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0amp3a1._.js → _0xhqu2a._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0viys_q._.js → _12~4zih._.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_components_00xgo_-._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_0nj0euq._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{src_web_src_components_avatar_04z95~4._.js → src_web_src_components_avatar_0a0h8en._.js} +2 -2
- 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 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_typewriter-visual_tsx_0lk-33~._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +55 -55
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +358 -358
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
- package/bundled/ws-do/index.js +4 -2
- package/dist/cli/index.js +5 -4
- package/package.json +5 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/0-cq0qfayk62j.js +0 -63
- package/bundled/web/.open-next/assets/_next/static/chunks/09fgwh4kts~24.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0eih9s5qcj60s.js +0 -62
- package/bundled/web/.open-next/assets/_next/static/chunks/0or~sn2q6u39-.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0puh0qew5ubn-.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0q.6r1w8fuz_c.css +0 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_11wu9fj._.js +0 -3
- /package/bundled/web/.open-next/assets/_next/static/{ZoH0qYtBG9o2M-yTRK3ab → KbaMV38oRSu84qh40vSuT}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{ZoH0qYtBG9o2M-yTRK3ab → KbaMV38oRSu84qh40vSuT}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{ZoH0qYtBG9o2M-yTRK3ab → KbaMV38oRSu84qh40vSuT}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{ZoH0qYtBG9o2M-yTRK3ab → KbaMV38oRSu84qh40vSuT}/robots.txt.cache +0 -0
package/bundled/web/.open-next/assets/_next/static/chunks/{1712ppta_sub~.js → 0caq6r63e_.cz.js}
RENAMED
|
@@ -1,3 +1,3 @@
|
|
|
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",()=>eR,"getEventIconType",()=>e_],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(108281),u=e.i(140483),m=e.i(371522);e.i(112946);var f=e.i(164300);function h({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 g({task:e,messages:a,connectionLost:r,onRetry:n,thinkingCountHint:l,onExpandThinking:p,thinkingLoading:x}){let[v,k]=(0,s.useState)(!1),j=(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=j.filter(e=>"text"===e.kind),w=j.filter(e=>"error"===e.kind),N=b.length>0?b[b.length-1]:null,C=(0,s.useRef)(null),S=(0,s.useRef)(!1);(0,s.useEffect)(()=>{y&&C.current&&(C.current.scrollTop=C.current.scrollHeight)},[b.length,y]);let _=y?b:b.slice(0,-1),T=!y&&null!==N,M=_.length>0||l&&l>0,I=_.length>0?_.length:l??0;return(0,t.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[!p&&(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&&!p||void 0,onToggle:e=>{e.currentTarget.open&&!S.current&&p&&(S.current=!0,p())},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)(h,{value:I})," thinking"]})]}),(0,t.jsxs)("div",{ref:C,className:"mt-1 pl-1",children:[x&&0===_.length&&(0,t.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-muted-foreground",children:[(0,t.jsx)(m.Loader2,{className:"size-3 animate-spin"}),(0,t.jsx)("span",{children:"Loading..."})]}),_.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)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:e.content})},e.id))]})]}),T&&!p&&(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,t.jsx)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:N.content})}),w.length>0&&(0,t.jsx)("div",{className:"space-y-1 mt-1",children:w.map(e=>(0,t.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,t.jsx)(d.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,t.jsx)("span",{className:"wrap-anywhere",children:e.content})]},e.id))}),"failed"===e.status&&e.error&&(0,t.jsxs)("div",{className:"flex items-start gap-2 mt-2 max-w-full overflow-hidden",children:[(0,t.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,t.jsx)(d.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,t.jsx)("span",{className:"wrap-anywhere",children:e.error})]}),n&&(0,t.jsxs)("button",{type:"button",onClick:async()=>{k(!0);try{await n()}finally{k(!1)}},disabled:v,className:"shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[v?(0,t.jsx)(m.Loader2,{className:"size-3 animate-spin"}):(0,t.jsx)(u.RotateCw,{className:"size-3"}),"Retry"]})]}),r&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]})}var p=e.i(222862),x=e.i(275351),v=e.i(355578),k=e.i(875494),j=e.i(74348),y=e.i(872937),b=e.i(880932),w=e.i(728886),N=e.i(329686),C=e.i(36303),S=e.i(406963);let _=(0,S.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"}]]),T=(0,S.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 M=e.i(872057),I=e.i(6131);let E=(0,S.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 A=e.i(653216),z=e.i(554468),R=e.i(745925),D=e.i(937091);function F({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 P({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)(F,{skill:e,isSelected:s===r,onSelect:n},e.name))})})}var $=e.i(944391),L=e.i(415708),q=e.i(842892),B=e.i(333556);function O(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 H=e.i(161767);function W(e){return e.replaceAll("<","<").replaceAll(">",">").replaceAll("&","&")}let U={items:[],selectedIndex:0,command:null,rect:null};function V({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.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[e.email_handle,"@alook.ai"]})]},e.id))})}),document.body)}let K=(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){let[p,x]=(0,s.useState)(U),v=(0,s.useRef)(p);(0,s.useEffect)(()=>{v.current=p},[p]);let k=(0,s.useRef)(d),j=(0,s.useRef)(u),y=(0,s.useRef)(m),b=(0,s.useRef)(n),w=(0,s.useRef)(r),N=(0,s.useRef)(a),C=(0,s.useRef)(c),S=(0,s.useRef)(f),_=(0,s.useRef)(h);(0,s.useEffect)(()=>{k.current=d},[d]),(0,s.useEffect)(()=>{j.current=u},[u]),(0,s.useEffect)(()=>{y.current=m},[m]),(0,s.useEffect)(()=>{b.current=n},[n]),(0,s.useEffect)(()=>{w.current=r},[r]),(0,s.useEffect)(()=>{N.current=a},[a]),(0,s.useEffect)(()=>{C.current=c},[c]),(0,s.useEffect)(()=>{S.current=f},[f]),(0,s.useEffect)(()=>{_.current=h},[h]);let T=e=>{w.current(e.getText(),e.state.selection.from-1)},[M]=(0,s.useState)(()=>H.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[...O(l,a),...O(i,a)].slice(0,r)})(k.current,j.current,y.current,e),render:()=>({onStart:e=>{x({items:e.items??[],selectedIndex:0,command:e.command,rect:e.clientRect?.()??null})},onUpdate:e=>{x(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=v.current;if(0===t.items.length)return!1;if("ArrowDown"===e.key)return e.preventDefault(),x(e=>({...e,selectedIndex:(e.selectedIndex+1)%e.items.length})),!0;if("ArrowUp"===e.key)return e.preventDefault(),x(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}),x(U),!0}return"Escape"===e.key&&(x(U),!0)},onExit:()=>x(U)})}})),I=(0,$.useEditor)({immediatelyRender:!1,content:e||void 0,contentType:"markdown",editable:!i,extensions:[L.default.configure({heading:!1,blockquote:!1,codeBlock:!1,horizontalRule:!1,bold:!1,italic:!1,strike:!1,code:!1}),q.default.configure({placeholder:l??""}),B.Markdown,M],editorProps:{attributes:{class:"outline-none",enterkeyhint:"send"},handleKeyDown:(e,t)=>(!(v.current.items.length>0)||null===v.current.command)&&(!!(S.current&&_.current({key:t.key,isComposing:t.isComposing,preventDefault:()=>t.preventDefault()}))||!("Enter"!==t.key||t.shiftKey||t.isComposing||I?.isActive("bulletList")||I?.isActive("orderedList")||I?.isActive("listItem"))&&!S.current&&(t.preventDefault(),b.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)}return 0!==a.length&&(t.preventDefault(),C.current?.(a),!0)},handleDrop:(e,t)=>{let s=t.dataTransfer?.files;return!!s&&0!==s.length&&(t.preventDefault(),C.current?.(Array.from(s)),!0)}},onUpdate:({editor:e})=>{N.current(W(e.getMarkdown())),T(e)},onSelectionUpdate:({editor:e})=>{T(e)}});(0,s.useEffect)(()=>{I?.setEditable(!i)},[I,i]),(0,s.useEffect)(()=>{if(!I)return;let t=(e||"").trim();t!==W(I.getMarkdown()||"").trim()&&(t?I.commands.setContent(e||"",{emitUpdate:!1,contentType:"markdown"}):I.commands.clearContent(),w.current(I.getText(),I.state.selection.from-1))},[e,I]);let E=(0,s.useRef)(null);return(0,s.useEffect)(()=>{if(!I||!o)return;let e=E.current?.querySelector(".ProseMirror");if(!e)return;let t=()=>o(e.scrollHeight>32);t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[I,o]),(0,s.useImperativeHandle)(g,()=>({focus:()=>I?.commands.focus(),clear:()=>I?.commands.clearContent(),isEmpty:()=>I?.isEmpty??!0,coordsAtTextIndex:e=>{if(!I)return null;try{let t=I.view.coordsAtPos(e+1);return{top:t.top,left:t.left}}catch{return null}}}),[I]),(0,t.jsxs)("div",{ref:E,className:"chat-composer relative",children:[(0,t.jsx)($.EditorContent,{editor:I,className:"max-h-44 overflow-y-auto thin-scrollbar pr-2 text-base chat-input-line-height"}),(0,t.jsx)(V,{state:p})]})});var Y=e.i(721387),X=e.i(288329),G=e.i(332680),J=e.i(535991),Z=e.i(940931);function Q({open:e,onOpenChange:a,emailId:r,workspaceId:n}){let[i,o]=(0,s.useState)(null),[c,d]=(0,s.useState)(null),[u,f]=(0,s.useState)(!1),{width:h,onPointerDown:g,onPointerMove:x,onPointerUp:v}=(0,X.useSheetResize)({defaultWidth:500,minWidth:320,maxWidthRatio:.8}),k=(0,s.useRef)(a);(0,s.useEffect)(()=>{k.current=a}),(0,s.useEffect)(()=>{e&&r&&(f(!0),o(null),d(null),Promise.all([(0,p.getEmail)(r,n),(0,p.getEmailBody)(r,n)]).then(([e,t])=>{o(e),d(t)}).catch(()=>{b.toast.error("Email not found"),k.current(!1)}).finally(()=>f(!1)))},[e,r,n]);let j=e=>{a(e),e||setTimeout(()=>{o(null),d(null)},300)};return(0,t.jsx)(G.Sheet,{open:e,onOpenChange:j,children:(0,t.jsxs)(G.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)(X.SheetResizeHandle,{onPointerDown:g,onPointerMove:x,onPointerUp:v}),(0,t.jsx)(G.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(I.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsx)(G.SheetTitle,{className:"truncate flex-1",children:u?"Loading...":i?.subject||"Email"}),(0,t.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>j(!1),children:(0,t.jsx)(D.X,{className:"h-4 w-4"})})]})}),(0,t.jsx)(G.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:u?(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(m.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)(Z.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)(z.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)(J.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 ee=e.i(781360),et=e.i(169678),es=e.i(364079);function ea({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)(z.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)(D.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 er=e.i(219658);function en(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 el(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||en(e,s))&&(!i||en(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 ei={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 eo({taskId:e,thinkingCount:a,workspaceId:r}){let[n,l]=(0,s.useState)([]),[i,o]=(0,s.useState)(!1),[c,d]=(0,s.useState)(!1),u=(0,s.useCallback)(async()=>{if(!c&&!i){o(!0);try{let t=await (0,p.getTaskMessages)(e,r);l(t)}catch{l([])}finally{o(!1),d(!0)}}},[c,i,e,r]);return(0,t.jsx)(g,{task:ei,messages:n,thinkingCountHint:a,onExpandThinking:u,thinkingLoading:i})}var ec=e.i(983453),ed=e.i(251638);let eu=(0,S.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,eu],618615);var em=e.i(89440),ef=e.i(541544);let eh={mention:["data-agent-id"]},eg=["mention"];function ep({content:e,conversationType:s}){let a=e_(e,s),r="h-4 w-4 mt-0.5 shrink-0";return"issue"===a?(0,t.jsx)(ed.CircleDot,{className:r}):"email"===a?(0,t.jsx)(I.Mail,{className:r}):(0,t.jsx)(ec.Calendar,{className:r})}function ex({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)(M.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.filename})]},e.id))})}function ev({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)(M.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.name})]},s))}):null}let ek={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"},ej=(0,s.memo)(function({msg:e,agents:a,artifacts:r,activeTask:n,taskMessages:i,connectionLost:c,isLastMessage:d,thinkingCount:u,targetConvId:m,workspaceId:h,conversationType:p,pendingFilesByMessage:x,onArtifactClick:v,onEmailClick:k,onIssueClick:j,onCalendarEventClick:y,onRetry:w,mentionComponents:C,isFlagged:S,onToggleFlag:_,groupPosition:T="solo"}){let M,I,E,A,z,R,D,{copy:F,copied:P}=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}}(),$=n&&"assistant"===e.role&&e.task_id===n.id&&e.conversation_id===n.conversation_id&&i.length>0,L=$&&n&&["completed","failed","cancelled","superseded"].includes(n.status),q="assistant"===e.role?(0,t.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs","aria-label":P?"Copied":"Copy message",onClick:async t=>{t.stopPropagation(),await F(e.content)?b.toast.success("Copied to clipboard"):b.toast.error("Failed to copy")},className:(0,o.cn)("self-start mb-1",P?"text-green-500 opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:P?(0,t.jsx)(ef.Check,{className:"size-3.5"}):(0,t.jsx)(em.Copy,{className:"size-3.5"})}),(0,t.jsx)(N.TooltipContent,{children:P?"Copied":"Copy"})]}),_&&(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs",onClick:()=>_(e.id),className:(0,o.cn)("self-start mb-1",S?"text-primary opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:(0,t.jsx)(eu,{className:(0,o.cn)("size-3.5",S&&"fill-current")})}),(0,t.jsx)(N.TooltipContent,{children:S?"Unflag":"Flag"})]})]}):null;return(0,t.jsxs)(s.default.Fragment,{children:[$&&(0,t.jsxs)("div",{className:(0,o.cn)("group/msg",S&&"bg-muted/30 rounded-lg px-2 -mx-2"),...L?{"data-quote-source":!0}:{},children:[(0,t.jsx)(g,{task:n,messages:i,connectionLost:c,onRetry:w}),L&&q]}),"user"===e.role?(M=d&&!!n&&"running"!==n.status&&!["completed","failed","cancelled","superseded"].includes(n.status),I=e.content.match(/^\/(\S+)\s?([\s\S]*)$/),E=I?.[1]??null,A=I?I[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",ek[T]),children:[M&&(0,t.jsx)("div",{className:(0,o.cn)("absolute inset-0 animate-pulse pointer-events-none",ek[T]),style:{boxShadow:"0 0 0 2px var(--bubble-glow)"}}),E&&(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:["/",E]}),A&&(0,t.jsx)("div",{className:"markdown markdown-user",children:(0,t.jsx)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:eh,literalTagContent:eg,components:C,children:el(A,a)})}),e.attachment_ids&&e.attachment_ids.length>0&&(0,t.jsx)(ex,{attachmentIds:e.attachment_ids,artifacts:r,onArtifactClick:v}),!e.attachment_ids&&(0,t.jsx)(ev,{pendingFiles:x,messageId:e.id})]})})):"event"===e.role?(z=e.metadata?.emailId,R=e.metadata?.issueId,D=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",(!!z||!!R||!!D)&&"cursor-pointer hover:bg-muted transition-colors"),onClick:z?()=>k(z):R?()=>j(R):D?()=>y(D):void 0,children:[(0,t.jsx)(ep,{content:e.content,conversationType:p}),(0,t.jsx)("span",{className:"min-w-0 wrap-anywhere",children:e.content})]})})):$?null:(0,t.jsxs)("div",{className:(0,o.cn)("group/msg flex flex-col justify-start min-w-0 overflow-x-clip",S&&"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:[m&&"assistant"===e.role&&e.task_id&&u>1&&(0,t.jsx)(eo,{taskId:e.task_id,thinkingCount:u-1,workspaceId: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)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:eh,literalTagContent:eg,components:C,children:el(e.content,a)})}),q]})]})});e.i(400175);var ey=e.i(819748),eb=e.i(126366),ew=e.i(309475);function eN({agent:e,isOnline:a,activeTaskCount:r,variant:n="default",isHovered:l}){let[i,c]=(0,s.useState)(!1),d=e.email_handle?`${e.email_handle}@alook.ai`:null,u=(0,s.useCallback)(async()=>{if(d)try{await navigator.clipboard.writeText(d),c(!0),b.toast.success("Email copied to clipboard"),setTimeout(()=>c(!1),2e3)}catch{b.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,eb.parseAvatarUrl)(e.avatar_url))?(0,t.jsx)(ey.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)(ew.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)(ef.Check,{className:"size-3 text-green-500"}):(0,t.jsx)(em.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,eN],844010);var eC=e.i(224950);let eS={mention:function(e){let{children:s,...a}=e,{agents:r}=(0,v.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)(eC.Popover,{children:[(0,t.jsx)(eC.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,t.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:s}),(0,t.jsx)(eC.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,t.jsx)(eN,{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 e_(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 eT(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 eM(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 eT([...s.values()])}function eI(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 eE(e){let t=(0,s.useRef)(e);return(0,s.useEffect)(()=>{t.current=e},[e]),t}function eA({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 ez({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)(M.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,Y.formatSize)(e.size)})]})]})}function eR({agentId:e,targetConvId:i,scrollToTaskId:c,scrollToMessageId:d}){let u,f,h,S=(0,r.useParams)(),F=(0,r.useSearchParams)(),{workspaceId:$,slug:L}=(0,n.useWorkspace)(),{agents:q,agentLinks:B,activeTaskCounts:O,subscribeWs:H,subscribeReconnect:W}=(0,v.useAgentContext)(),{refresh:U}=(0,k.useInboxCount)(),{activeChannel:V,loading:X,setAgentId:G}=(0,y.useChannel)(),J=e??S.id,Z=void 0!==c?c:F.get("task"),en=void 0!==d?d:F.get("msg"),el=void 0!==i?i:F.get("conv"),[ei,eo]=(0,s.useState)(null),[ec,ed]=(0,s.useState)([]),[eu,em]=(0,s.useState)(()=>localStorage.getItem(`chat-draft:${J}:${el??"default"}`)??""),[ef,eh]=(0,s.useState)(!1),[eg,ep]=(0,s.useState)(!1),[ex,ev]=(0,s.useState)(null),[ek,ey]=(0,s.useState)([]),[eb,ew]=(0,s.useState)(!0),[eN,e_]=(0,s.useState)(!1),[eD,eF]=(0,s.useState)(!1),[eP,e$]=(0,s.useState)(!1),[eL,eq]=(0,s.useState)([]),[eB,eO]=(0,s.useState)(!1),[eH,eW]=(0,s.useState)(null),[eU,eV]=(0,s.useState)(null),[eK,eY]=(0,s.useState)(!1),[eX,eG]=(0,s.useState)(null),[eJ,eZ]=(0,s.useState)(!1),[eQ,e0]=(0,s.useState)(null),[e1,e2]=(0,s.useState)(!1),[e5,e3]=(0,s.useState)(null),[e4,e8]=(0,s.useState)(null),[e6,e7]=(0,s.useState)(!1),[e9,te]=(0,s.useState)(null),[tt,ts]=(0,s.useState)(null),[ta,tr]=(0,s.useState)([]),[tn,tl]=(0,s.useState)([]),[ti,to]=(0,s.useState)(null),[tc,td]=(0,s.useState)([]),[tu,tm]=(0,s.useState)(!1),[tf,th]=(0,s.useState)([]),[tg,tp]=(0,s.useState)({}),[tx]=(0,s.useState)(()=>Date.now()),[tv,tk]=(0,s.useState)(()=>new Map),[tj,ty]=(0,s.useState)(()=>{try{let e=JSON.parse(localStorage.getItem(`chat-draft-meta:${J}:${el??"default"}`)??"null");return e?.quote??null}catch{return null}}),[tb,tw]=(0,s.useState)(!1),[tN,tC]=(0,s.useState)(null),[tS,t_]=(0,s.useState)(new Set),tT=(0,s.useRef)(tS);(0,s.useEffect)(()=>{tT.current=tS});let{increment:tM,decrement:tI,refresh:tE}=(0,j.useFlagCount)(),{writeToCache:tA}=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,x.openCacheDB)(t);let s=!1;return(0,x.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,x.mergeCachedMessages)(i.current,e,s,t,a)},[t])}}(el??null,$),tz=(0,s.useRef)(tA);(0,s.useEffect)(()=>{tz.current=tA},[tA]),(0,s.useEffect)(()=>{G(J)},[J,G]);let tR=(0,s.useMemo)(()=>eL.filter(e=>"agent"===e.source),[eL]),{versionMap:tD,duplicateFilenames:tF}=(0,s.useMemo)(()=>(0,es.computeArtifactVersions)(tR),[tR]),tP=(0,s.useMemo)(()=>"agent"===eU?tR:"issue"===eU?e4?.artifacts??[]:[],[eU,tR,e4?.artifacts]),{versionMap:t$,duplicateFilenames:tL}=(0,s.useMemo)(()=>(0,es.computeArtifactVersions)(tP),[tP]),tq=(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)}),eI(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=>eI([...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=eI(e),s=i.findIndex(e=>"nap"===e.kind);s>=0?i.splice(s,0,...t):i.push(...t)}return i})(ec,tR,tf,ei?.id),[ec,tR,tf,ei?.id]),tB=(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})(tq),[tq]),tO=(0,s.useCallback)(e=>{(0,es.isPreviewable)(e)?(eW(e),eV("agent"),eO(!0)):window.open((0,es.getArtifactUrl)(e.id,$,!0),"_blank")},[$]),tH=(0,s.useCallback)(e=>{(0,es.isPreviewable)(e)?(eW(e),eV("issue"),eO(!0)):window.open((0,es.getArtifactUrl)(e.id,$,!0),"_blank")},[$]),tW=(0,s.useRef)(null),tU=(0,s.useRef)(null),tV=(0,s.useRef)(null),tK=(0,s.useRef)(null),tY=(0,s.useRef)(0),tX=(0,s.useRef)(0),tG=(0,s.useRef)(!1),tJ=(0,s.useRef)(!1),tZ=(0,s.useRef)(!0),tQ=(0,s.useRef)(!1),t0=(0,s.useRef)(null),t1=(0,s.useRef)(null),t2=(0,s.useRef)(0),t5=(0,s.useRef)(void 0),t3=(0,s.useRef)(null),t4=(0,s.useRef)({completedKey:null}),t8=(0,s.useRef)(null),t6=(0,s.useRef)(null),[t7,t9]=(0,s.useState)(""),se=(0,s.useMemo)(()=>q.filter(e=>e.id!==J),[q,J]),[st,ss]=(0,s.useState)([]),sa=(0,s.useRef)(!1),sr=(0,s.useRef)(!1);(0,s.useEffect)(()=>{sa.current||(sa.current=!0,(0,p.getAgentSkills)(J,$).then(e=>ss(e.skills)).catch(()=>{}))},[J,$]);let[sn]=(0,s.useState)(()=>{try{let e=JSON.parse(localStorage.getItem(`chat-draft-meta:${J}:${el??"default"}`)??"null");return e?.skill??null}catch{return null}}),sl=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:t7,caretIndex:ti,skills:st,onInputChange:()=>t6.current?.clear(),initialActiveSkill:sn,getAnchorPos:(0,s.useCallback)(e=>t6.current?.coordsAtTextIndex(e)??null,[]),onAfterSelect:(0,s.useCallback)(()=>{requestAnimationFrame(()=>t6.current?.focus())},[])});(0,s.useEffect)(()=>{0===st.length||!sl.activeSkill||st.some(e=>e.name===sl.activeSkill.name)||sl.setActiveSkill(null)},[st]),(0,s.useEffect)(()=>{let e=`chat-draft:${J}:${el??"default"}`;eu?localStorage.setItem(e,eu):localStorage.removeItem(e)},[eu,J,el]),(0,s.useEffect)(()=>{if(!sr.current)return;let e=`chat-draft-meta:${J}:${el??"default"}`,t={};sl.activeSkill&&(t.skill={name:sl.activeSkill.name,description:sl.activeSkill.description}),tj&&(t.quote=tj),t.skill||t.quote?localStorage.setItem(e,JSON.stringify(t)):localStorage.removeItem(e)},[sl.activeSkill,tj,J,el]),(0,s.useEffect)(()=>{ef||t6.current?.focus()},[ef]);let si=(0,s.useCallback)(()=>{tZ.current=!0,setTimeout(()=>{tW.current?.scrollTo({top:tW.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,s.useEffect)(()=>{var e,t;if(!el&&X)return;let s=(e={workspaceId:$,agentId:J,targetConvId:el,scrollToTaskId:Z}).targetConvId?`${e.workspaceId}::${e.agentId}::${e.targetConvId}::${e.scrollToTaskId??""}`:null;if(t=t4.current,s&&t.completedKey===s||(t.completedKey=null,0))return;tU.current&&clearInterval(tU.current),tU.current=null,tK.current=null,t3.current=null;let a=!1;ew(!0),tG.current=!1,ev(null),ey([]),tl([]),tk(new Map),th([]),tp({}),td([]),tm(!1),t1.current=null,em(localStorage.getItem(`chat-draft:${J}:${el??"default"}`)??"");let r=localStorage.getItem(`chat-draft-meta:${J}:${el??"default"}`);if(r)try{let e=JSON.parse(r);ty(e.quote??null),sl.setActiveSkill(e.skill?e.skill:null)}catch{ty(null),sl.setActiveSkill(null)}else ty(null),sl.setActiveSkill(null);async function n(e){let t=await (0,x.getCacheMeta)(e,$);if(t?.newestMessageId){let s=await (0,x.getCachedMessages)(e,$);if(a)return{painted:!1,cacheMeta:t};if(s&&s.length>0)return ed(s),eF(t.hasMore),ew(!1),{painted:!0,cacheMeta:t}}return{painted:!1,cacheMeta:t}}return sr.current=!0,ed([]),async function(){let e=!1;try{let t=null,s=null,r=null;if(el){t=el;let r=await n(t);if(a)return;s=r.cacheMeta,e=r.painted}else{let l=await (0,x.getLastOpenConversation)(J,V,$);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,p.checkFreshness)({agentId:J,channel:V},$);if(a)return;if(t=l.conversation_id,r&&t!==r){tG.current=!1,tZ.current=!0;let r=await n(t);if(a)return;s=r.cacheMeta,e=r.painted,r.painted||(ed([]),ew(!0))}else if(!r){let r=await n(t);if(a)return;s=r.cacheMeta,e=r.painted}}catch{}}if(t){t3.current=t;let r=await (0,p.conversationInit)(t,$,{newestMessageId:s?.newestMessageId??void 0,messageCount:s?.serverMessageCount||void 0});if(a)return;if(eo(r.conversation),tm(r.has_more_conversations),!r.cache_valid&&r.messages){let s=tZ.current;ed(e=>eM(e,r.messages)),t3.current===t&&(0,x.mergeCachedMessages)(t,r.messages,r.has_more_messages,$,r.message_count).catch(()=>{}),eF(r.has_more_messages),e&&tG.current&&s&&si()}else s&&eF(s.hasMore);if(t3.current===t){let e=await (0,x.getCacheMeta)(t,$);if(a)return;(0,x.setLastOpenConversation)(J,V,{conversation_id:t,newestMessageId:e?.newestMessageId??s?.newestMessageId??null,serverMessageCount:r.message_count},$).catch(()=>{})}if(tp(r.thinking_counts),eq(r.artifacts),tl(r.buffered_messages),t_(new Set(r.flagged_message_ids)),r.active_task&&(ev(r.active_task),ey(r.task_messages),r.task_messages.length>0&&(tY.current=Math.max(...r.task_messages.map(e=>e.seq))),t0.current?.(r.active_task.id,t,tY.current)),Z){let e=await (0,p.getTask)(Z,$).catch(()=>null);if(a)return;if(e&&!["completed","failed","cancelled","superseded"].includes(e.status)){ev(e);let s=await (0,p.getTaskMessages)(Z,$).catch(()=>[]);if(a)return;ey(s),s.length>0&&(tY.current=Math.max(...s.map(e=>e.seq))),t0.current?.(e.id,t,tY.current)}}}else{let t=await (0,p.chatInit)(J,$,V);if(a)return;t3.current=t.conversation.id,eo(t.conversation);let s=tZ.current;ed(e=>e.length>0?eM(e,t.messages):t.messages),eF(t.has_more_messages),eq(t.artifacts),tl(t.buffered_messages),tm(t.has_more_conversations),(0,x.mergeCachedMessages)(t.conversation.id,t.messages,t.has_more_messages,$).catch(()=>{}),(0,x.setLastOpenConversation)(J,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},$).catch(()=>{}),e&&tG.current&&s&&si(),(0,p.listFlaggedMessageIds)($,t.conversation.id).then(e=>{a||t_(new Set(e.message_ids))}).catch(()=>{}),t.active_task&&(ev(t.active_task),t.task_messages.length>0&&(ey(t.task_messages),tY.current=Math.max(...t.task_messages.map(e=>e.seq))),["completed","failed","cancelled","superseded"].includes(t.active_task.status)||t0.current?.(t.active_task.id,t.conversation.id,tY.current))}}catch{e?b.toast.error("Couldn't refresh conversation"):b.toast.error("Failed to load conversation")}finally{if(!a){var t;ew(!1),t=t4.current,s&&(t.completedKey=s)}}}(),()=>{a=!0}},[J,$,el,Z,V,X]);let so=(0,s.useRef)(U);(0,s.useEffect)(()=>{so.current=U},[U]);let sc=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!ei?.id||!$||sc.current===ei.id)return;sc.current=ei.id;let e=setTimeout(()=>{(0,p.markInboxRead)(ei.id,$).then(()=>so.current()).catch(()=>{})},1e3);return()=>{sc.current=null,clearTimeout(e)}},[ei?.id,$]),(0,s.useEffect)(()=>{eb||!(ec.length>0)||tG.current||(tG.current=!0,Z||en?tZ.current=!1:i?setTimeout(()=>{let e=tW.current?.querySelectorAll("[data-quote-source]");e&&e.length>0?e[e.length-1].scrollIntoView({behavior:"instant",block:"start"}):tW.current?.scrollTo({top:tW.current.scrollHeight})},50):setTimeout(()=>{tW.current?.scrollTo({top:tW.current.scrollHeight})},50))},[eb,ec.length,Z,en,i]),(0,s.useEffect)(()=>{let e;if(!Z||eb||!ei)return;tZ.current=!1,tQ.current=!0;let t=!1,s=()=>{if(t)return!1;let s=document.querySelector(`[data-task-id="${CSS.escape(Z)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tQ.current=!1)},1500),!0)},a=setTimeout(async()=>{if(!t&&!s())try{let e=await (0,p.listMessagesAroundTask)(ei.id,$,Z);if(t)return;e.length>0?(ed(t=>eM(t,e)),requestAnimationFrame(()=>{setTimeout(()=>{s()||(tQ.current=!1)},100)})):tQ.current=!1}catch{t||(tQ.current=!1)}},100);return()=>{t=!0,clearTimeout(a),e&&clearTimeout(e)}},[Z,eb,ei,$]),(0,s.useEffect)(()=>{let e;if(!en||Z||eb||!ei)return;tZ.current=!1,tQ.current=!0;let t=!1,s=setTimeout(()=>{!t&&((()=>{if(t)return!1;let s=document.querySelector(`[data-message-id="${CSS.escape(en)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tQ.current=!1)},1500),!0)})()||(tW.current?.scrollTo({top:tW.current.scrollHeight}),tQ.current=!1))},100);return()=>{t=!0,clearTimeout(s),e&&clearTimeout(e)}},[en,Z,eb,ei]);let sd=ex?.status;(0,s.useEffect)(()=>{tQ.current||("running"===sd||"queued"===sd)&&tZ.current&&si()},[ek.length,sd,si]);let su=(0,s.useMemo)(()=>q.find(e=>e.id===J)?.name??"Agent",[q,J]),sm=eE(ec),sf=eE(eD),sh=eE(tc),sg=eE(tu),sp=eE(su),sx=eE(V),sv=(0,s.useCallback)(async(e=!1)=>{if(!ei||tJ.current)return;tJ.current=!0;let t=sm.current,s=sf.current,r=sg.current,n=sp.current,l=sx.current,i=!!el,o=t[0],c=t1.current?.id??ei.id,d=s&&o,u=sh.current;if(!i&&!d&&0===u.length&&r){let e=t1.current??{id:ei.id,created_at:ei.created_at};try{let t=await (0,p.listPreviousConversations)(J,$,{exclude:ei.id,before:e.created_at,channel:l});u=t.conversations,td(t.conversations),tm(t.has_more)}catch{tm(!1)}}let m=!i&&u.length>0;if(!d&&!m){tJ.current=!1;return}e$(!0);let f=tW.current;f&&(f.style.overflowAnchor="none");let h=f?.scrollHeight??0;try{let t=[],s=[],m=20,g=!1,v=[],k=!1;if(d){let e=c===ei.id?await (0,x.getCachedMessagesBefore)(c,o.created_at,o.id,20,$):null;if(e)t=e.messages,m-=e.messages.length,g=e.hasMore;else{let e=await (0,p.listMessages)(c,$,{limit:20,before:o.created_at,beforeId:o.id});t=e.messages,m-=e.messages.length,g=e.has_more}k=g}if(!i&&!g&&m>0){if(0===u.length&&r){let e=t1.current??{id:ei.id,created_at:ei.created_at};try{let t=await (0,p.listPreviousConversations)(J,$,{exclude:ei.id,before:e.created_at,channel:l});u=t.conversations,td(t.conversations),tm(t.has_more)}catch{tm(!1)}}let e=0,t=0;for(;e<u.length&&m>0&&t<5;){let a=u[e];e++,t++;let r=await (0,p.listMessages)(a.id,$,{limit:m});if(0===r.messages.length){t1.current=a;continue}let l=t1.current?.created_at??ei.created_at;v.push({agentName:n,created_at:l,id:`nap-${a.id}`}),s=[...r.messages,...s],m-=r.messages.length,g=r.has_more,t1.current=a}e>0&&td(t=>t.slice(e))}let j=[...s,...t];if((0,a.flushSync)(()=>{j.length>0?(v.length>0&&th(e=>{let t=new Set(e.map(e=>e.id)),s=v.filter(e=>!t.has(e.id));return[...e,...s]}),eF(g),ed(e=>{let t=new Set(e.map(e=>e.id));return[...j.filter(e=>!t.has(e.id)),...e]})):eF(!1)}),j.length>0&&ei){let e=j.filter(e=>e.conversation_id===ei.id);e.length>0&&(0,x.mergeCachedMessages)(ei.id,e,k,$).catch(()=>{})}if(tJ.current=!1,(0,a.flushSync)(()=>e$(!1)),f)if(e)f.scrollTop=f.scrollHeight;else{let e=f.scrollHeight;f.scrollTop=e-h}}catch{b.toast.error("Failed to load older messages")}finally{tJ.current=!1,e$(!1),tW.current&&(tW.current.style.overflowAnchor="")}},[ei,$,J,el,sm,sf,sg,sp,sx,sh]),sk=el?eD:eD||tc.length>0||tu;(0,s.useEffect)(()=>{ei?.id!==t5.current&&(t5.current=ei?.id,t2.current=0)},[ei?.id]),(0,s.useEffect)(()=>{eb||!ei||Z||el||ec.length>=10||!sk||eP||t2.current>=3||(t2.current+=1,sv(!0))},[eb,ec.length,sk,eP,ei,sv,Z,el]);let sj=(0,s.useCallback)(()=>{let e=tW.current;e&&(tZ.current=e.scrollHeight-e.scrollTop-e.clientHeight<100)},[]),sy=(0,s.useCallback)((e,t,s)=>{tU.current&&clearInterval(tU.current),tY.current=s??0,tX.current=0,e_(!1),tK.current=e,tU.current=setInterval(async()=>{if(tK.current===e)try{let[s,a]=await Promise.all([(0,p.getTask)(e,$),(0,p.getTaskMessages)(e,$,tY.current||void 0)]),r=tK.current!==e;if(tX.current=0,e_(!1),a.length>0&&!r&&(ey(e=>{let t=new Set(e.map(e=>e.seq)),s=a.filter(e=>!t.has(e.seq));return s.length>0?[...e,...s]:e}),tY.current=Math.max(...a.map(e=>e.seq),tY.current)),"completed"===s.status||"failed"===s.status||"cancelled"===s.status||"superseded"===s.status){if(r)return void(0,p.listMessages)(t,$).then(({messages:e})=>{ed(t=>eM(t,e)),(0,x.mergeCachedMessages)(t,e,null,$).catch(()=>{})}).catch(()=>{});tU.current&&clearInterval(tU.current),tU.current=null,tV.current&&clearTimeout(tV.current),tV.current=setTimeout(()=>{(0,p.markInboxRead)(t,$).then(()=>so.current()).catch(()=>{})},1e3);let a=!tQ.current&&tZ.current;try{let[e,a]=await Promise.all([(0,p.listMessages)(t,$),(0,p.listArtifacts)(t,$).catch(()=>null)]);ed(t=>eM(t,e.messages)),(0,x.mergeCachedMessages)(t,e.messages,null,$).catch(()=>{}),a&&eq(a),ev(s)}catch{ev(s),b.toast.error("Failed to refresh messages")}a&&requestAnimationFrame(()=>{tW.current?.scrollTo({top:tW.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!tU.current)try{let[s,a]=await Promise.all([(0,p.getActiveTask)(t,$),(0,p.listBufferedMessages)(t,$)]);if(tl(a),s&&s.id!==e){let{messages:e}=await (0,p.listMessages)(t,$);ed(t=>eM(t,e)),(0,x.mergeCachedMessages)(t,e,null,$).catch(()=>{}),ev(s),ey([]),t0.current?.(s.id,t)}}catch{}},1e3)}else r||ev(s)}catch{if(tK.current!==e)return;tX.current+=1,tX.current>=3&&e_(!0),tX.current>=10&&(tU.current&&clearInterval(tU.current),tU.current=null,b.toast.error("Lost connection to agent"))}},3e3)},[$]);(0,s.useEffect)(()=>{t0.current=sy},[sy]),(0,s.useEffect)(()=>()=>{tU.current&&clearInterval(tU.current),tV.current&&clearTimeout(tV.current)},[]);let sb=(0,s.useRef)(null);(0,s.useEffect)(()=>{sb.current=ex?.id??null},[ex]),(0,s.useEffect)(()=>H(e=>{if("task.messages"===e.type&&e.taskId===sb.current){let t=e.messages.filter(e=>e.seq>tY.current);t.length>0&&(ey(e=>{let s=new Set(e.map(e=>e.seq)),a=t.filter(e=>!s.has(e.seq));return a.length>0?[...e,...a]:e}),tY.current=Math.max(...t.map(e=>e.seq),tY.current))}if("task.created"===e.type&&e.conversationId===ei?.id){(0,p.listMessages)(e.conversationId,$).then(({messages:t})=>{ed(e=>eM(e,t)),(0,x.mergeCachedMessages)(e.conversationId,t,null,$).catch(()=>{})}).catch(()=>{});let t=e.task;sb.current=t.id,ev(t),ey([]),tY.current=0,t0.current?.(t.id,e.conversationId)}if("conversation.message"===e.type&&(e.conversationId===t3.current&&(0,x.appendCachedMessage)(e.conversationId,e.message,$).catch(()=>{}),e.conversationId===ei?.id&&ed(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 eM(t,[e.message])})),"task.updated"===e.type&&e.taskId===sb.current&&ev(t=>t?{...t,status:e.status}:t),"artifact.uploaded"===e.type&&e.conversationId===ei?.id&&eq(t=>t.some(t=>t.id===e.artifact.id)?t:[...t,e.artifact]),"followup.dispatched"===e.type&&e.conversationId===ei?.id){tl(t=>t.filter(t=>t.id!==e.message.id)),(0,p.listBufferedMessages)(e.conversationId,$).then(tl).catch(()=>{}),(0,p.listMessages)(e.conversationId,$).then(({messages:t})=>{ed(e=>eM(e,t)),(0,x.mergeCachedMessages)(e.conversationId,t,null,$).catch(()=>{})}).catch(()=>{});let t=e.task;sb.current=t.id,ev(t),ey([]),t0.current?.(t.id,e.conversationId)}"followup.created"===e.type&&e.conversationId===ei?.id&&tl(t=>(function(e,t){if(e.some(e=>e.id===t.id))return e;let s=new Date(t.created_at).getTime();return e.some(e=>e.id.startsWith("temp-")&&2e3>Math.abs(new Date(e.created_at).getTime()-s))?e:[...e,t]})(t,e.message)),"followup.deleted"===e.type&&e.conversationId===ei?.id&&tl(t=>t.filter(t=>t.id!==e.messageId)),"followup.dispatch_failed"===e.type&&e.conversationId===ei?.id&&b.toast.error(e.error||"Failed to dispatch follow-up")}),[H,ei?.id,$]),(0,s.useEffect)(()=>W(()=>{ei?.id&&(0,x.getCacheMeta)(ei.id,$).then(e=>{(0,p.conversationInit)(ei.id,$,{newestMessageId:e?.newestMessageId??void 0,messageCount:e?.serverMessageCount??void 0}).then(e=>{!e.cache_valid&&e.messages&&(ed(t=>eM(t,e.messages)),tz.current(e.messages,e.has_more_messages,e.message_count).catch(()=>{}))}).catch(()=>{})})}),[W,ei?.id,$]);let sw=(0,s.useCallback)(e=>{let t=[];for(let s of e)s.size>0xa00000?b.toast.error(`"${s.name}" exceeds 10 MB limit`):t.push(s);t.length>0&&tr(e=>[...e,...t])},[]),sN=(0,s.useCallback)(e=>{let t=e.target.files;t&&(sw(Array.from(t)),e.target.value="")},[sw]),sC=(0,s.useCallback)(e=>{tr(t=>t.filter((t,s)=>s!==e))},[]),sS=(0,s.useCallback)(()=>{let e=window.getSelection();if(!e||e.isCollapsed||!e.rangeCount)return void tC(null);let t=e.toString().trim();if(!t)return void tC(null);let s=e.getRangeAt(0),a=s.commonAncestorContainer instanceof HTMLElement?s.commonAncestorContainer:s.commonAncestorContainer.parentElement;if(!a?.closest("[data-quote-source]"))return void tC(null);let r=s.getClientRects(),n=r[r.length-1]||s.getBoundingClientRect();tC({text:t,x:n.right,y:n.top-4})},[]);(0,s.useEffect)(()=>(document.addEventListener("selectionchange",sS),()=>document.removeEventListener("selectionchange",sS)),[sS]);let s_=(0,s.useCallback)(()=>{tN&&(ty(tN.text),tC(null),window.getSelection()?.removeAllRanges(),t6.current?.focus())},[tN]),[sT,sM]=(0,s.useState)(!1),sI=(0,s.useRef)(0),sE=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sI.current++,e.dataTransfer.types.includes("Files")&&sM(!0)},[]),sA=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sI.current--,0===sI.current&&sM(!1)},[]),sz=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),sR=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sM(!1),sI.current=0,sw(Array.from(e.dataTransfer.files))},[sw]),sD=async()=>{if(ei&&!eg){ep(!0);try{let e=await (0,p.cancelActiveTask)(ei.id,$);if(e){if(sb.current&&sb.current!==e.id)return;tU.current&&clearInterval(tU.current),tU.current=null;let[t,s]=await Promise.all([(0,p.listMessages)(ei.id,$),(0,p.listBufferedMessages)(ei.id,$)]);ed(e=>eM(e,t.messages)),(0,x.mergeCachedMessages)(ei.id,t.messages,null,$).catch(()=>{}),tl(s),ev(e),ey([])}}catch{b.toast.error("Failed to cancel task")}finally{ep(!1)}}},sF=async()=>{let e=eu.trim();if(!e&&0===ta.length||ef||!ei)return;if(!e)return void b.toast.error("Please type a message");let t=tj?`> ${tj.split("\n").join("\n> ")}
|
|
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",()=>eR,"getEventIconType",()=>e_],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(108281),u=e.i(140483),m=e.i(371522);e.i(112946);var f=e.i(164300);function h({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 g({task:e,messages:a,connectionLost:r,onRetry:n,thinkingCountHint:l,onExpandThinking:p,thinkingLoading:x}){let[v,k]=(0,s.useState)(!1),j=(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=j.filter(e=>"text"===e.kind),w=j.filter(e=>"error"===e.kind),N=b.length>0?b[b.length-1]:null,C=(0,s.useRef)(null),S=(0,s.useRef)(!1);(0,s.useEffect)(()=>{y&&C.current&&(C.current.scrollTop=C.current.scrollHeight)},[b.length,y]);let _=y?b:b.slice(0,-1),M=!y&&null!==N,T=_.length>0||l&&l>0,I=_.length>0?_.length:l??0;return(0,t.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[!p&&(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})}),T&&(0,t.jsxs)("details",{className:"group/midtext pl-1",open:!M&&!p||void 0,onToggle:e=>{e.currentTarget.open&&!S.current&&p&&(S.current=!0,p())},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)(h,{value:I})," thinking"]})]}),(0,t.jsxs)("div",{ref:C,className:"mt-1 pl-1",children:[x&&0===_.length&&(0,t.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-muted-foreground",children:[(0,t.jsx)(m.Loader2,{className:"size-3 animate-spin"}),(0,t.jsx)("span",{children:"Loading..."})]}),_.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)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:e.content})},e.id))]})]}),M&&!p&&(0,t.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,t.jsx)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:N.content})}),w.length>0&&(0,t.jsx)("div",{className:"space-y-1 mt-1",children:w.map(e=>(0,t.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,t.jsx)(d.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,t.jsx)("span",{className:"wrap-anywhere",children:e.content})]},e.id))}),"failed"===e.status&&e.error&&(0,t.jsxs)("div",{className:"flex items-start gap-2 mt-2 max-w-full overflow-hidden",children:[(0,t.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,t.jsx)(d.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,t.jsx)("span",{className:"wrap-anywhere",children:e.error})]}),n&&(0,t.jsxs)("button",{type:"button",onClick:async()=>{k(!0);try{await n()}finally{k(!1)}},disabled:v,className:"shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[v?(0,t.jsx)(m.Loader2,{className:"size-3 animate-spin"}):(0,t.jsx)(u.RotateCw,{className:"size-3"}),"Retry"]})]}),r&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]})}var p=e.i(222862),x=e.i(275351),v=e.i(355578),k=e.i(875494),j=e.i(74348),y=e.i(872937),b=e.i(880932),w=e.i(728886),N=e.i(329686),C=e.i(36303),S=e.i(406963);let _=(0,S.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"}]]),M=(0,S.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 T=e.i(872057),I=e.i(6131);let E=(0,S.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 A=e.i(653216),z=e.i(554468),R=e.i(745925),D=e.i(937091);function F({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 P({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)(F,{skill:e,isSelected:s===r,onSelect:n},e.name))})})}var $=e.i(944391),L=e.i(415708),q=e.i(842892),B=e.i(333556);function O(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 H=e.i(161767);function W(e){return e.replaceAll("<","<").replaceAll(">",">").replaceAll("&","&")}let U={items:[],selectedIndex:0,command:null,rect:null};function V({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.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[e.email_handle,"@alook.ai"]})]},e.id))})}),document.body)}let K=(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){let[p,x]=(0,s.useState)(U),v=(0,s.useRef)(p);(0,s.useEffect)(()=>{v.current=p},[p]);let k=(0,s.useRef)(d),j=(0,s.useRef)(u),y=(0,s.useRef)(m),b=(0,s.useRef)(n),w=(0,s.useRef)(r),N=(0,s.useRef)(a),C=(0,s.useRef)(c),S=(0,s.useRef)(f),_=(0,s.useRef)(h);(0,s.useEffect)(()=>{k.current=d},[d]),(0,s.useEffect)(()=>{j.current=u},[u]),(0,s.useEffect)(()=>{y.current=m},[m]),(0,s.useEffect)(()=>{b.current=n},[n]),(0,s.useEffect)(()=>{w.current=r},[r]),(0,s.useEffect)(()=>{N.current=a},[a]),(0,s.useEffect)(()=>{C.current=c},[c]),(0,s.useEffect)(()=>{S.current=f},[f]),(0,s.useEffect)(()=>{_.current=h},[h]);let M=e=>{w.current(e.getText(),e.state.selection.from-1)},[T]=(0,s.useState)(()=>H.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[...O(l,a),...O(i,a)].slice(0,r)})(k.current,j.current,y.current,e),render:()=>({onStart:e=>{x({items:e.items??[],selectedIndex:0,command:e.command,rect:e.clientRect?.()??null})},onUpdate:e=>{x(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=v.current;if(0===t.items.length)return!1;if("ArrowDown"===e.key)return e.preventDefault(),x(e=>({...e,selectedIndex:(e.selectedIndex+1)%e.items.length})),!0;if("ArrowUp"===e.key)return e.preventDefault(),x(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}),x(U),!0}return"Escape"===e.key&&(x(U),!0)},onExit:()=>x(U)})}})),I=(0,$.useEditor)({immediatelyRender:!1,content:e||void 0,contentType:"markdown",editable:!i,extensions:[L.default.configure({heading:!1,blockquote:!1,codeBlock:!1,horizontalRule:!1,bold:!1,italic:!1,strike:!1,code:!1}),q.default.configure({placeholder:l??""}),B.Markdown,T],editorProps:{attributes:{class:"outline-none",enterkeyhint:"send"},handleKeyDown:(e,t)=>(!(v.current.items.length>0)||null===v.current.command)&&(!!(S.current&&_.current({key:t.key,isComposing:t.isComposing,preventDefault:()=>t.preventDefault()}))||!("Enter"!==t.key||t.shiftKey||t.isComposing||I?.isActive("bulletList")||I?.isActive("orderedList")||I?.isActive("listItem"))&&!S.current&&(t.preventDefault(),b.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)}return 0!==a.length&&(t.preventDefault(),C.current?.(a),!0)},handleDrop:(e,t)=>{let s=t.dataTransfer?.files;return!!s&&0!==s.length&&(t.preventDefault(),C.current?.(Array.from(s)),!0)}},onUpdate:({editor:e})=>{N.current(W(e.getMarkdown())),M(e)},onSelectionUpdate:({editor:e})=>{M(e)}});(0,s.useEffect)(()=>{I?.setEditable(!i)},[I,i]),(0,s.useEffect)(()=>{if(!I)return;let t=(e||"").trim();t!==W(I.getMarkdown()||"").trim()&&(t?I.commands.setContent(e||"",{emitUpdate:!1,contentType:"markdown"}):I.commands.clearContent(),w.current(I.getText(),I.state.selection.from-1))},[e,I]);let E=(0,s.useRef)(null);return(0,s.useEffect)(()=>{if(!I||!o)return;let e=E.current?.querySelector(".ProseMirror");if(!e)return;let t=()=>o(e.scrollHeight>32);t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[I,o]),(0,s.useImperativeHandle)(g,()=>({focus:()=>I?.commands.focus(),clear:()=>I?.commands.clearContent(),isEmpty:()=>I?.isEmpty??!0,coordsAtTextIndex:e=>{if(!I)return null;try{let t=I.view.coordsAtPos(e+1);return{top:t.top,left:t.left}}catch{return null}}}),[I]),(0,t.jsxs)("div",{ref:E,className:"chat-composer relative",children:[(0,t.jsx)($.EditorContent,{editor:I,className:"max-h-44 overflow-y-auto thin-scrollbar pr-2 text-base chat-input-line-height"}),(0,t.jsx)(V,{state:p})]})});var Y=e.i(721387),X=e.i(288329),G=e.i(332680),J=e.i(535991),Z=e.i(940931);function Q({open:e,onOpenChange:a,emailId:r,workspaceId:n}){let[i,o]=(0,s.useState)(null),[c,d]=(0,s.useState)(null),[u,f]=(0,s.useState)(!1),{width:h,onPointerDown:g,onPointerMove:x,onPointerUp:v}=(0,X.useSheetResize)({defaultWidth:500,minWidth:320,maxWidthRatio:.8}),k=(0,s.useRef)(a);(0,s.useEffect)(()=>{k.current=a}),(0,s.useEffect)(()=>{e&&r&&(f(!0),o(null),d(null),Promise.all([(0,p.getEmail)(r,n),(0,p.getEmailBody)(r,n)]).then(([e,t])=>{o(e),d(t)}).catch(()=>{b.toast.error("Email not found"),k.current(!1)}).finally(()=>f(!1)))},[e,r,n]);let j=e=>{a(e),e||setTimeout(()=>{o(null),d(null)},300)};return(0,t.jsx)(G.Sheet,{open:e,onOpenChange:j,children:(0,t.jsxs)(G.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)(X.SheetResizeHandle,{onPointerDown:g,onPointerMove:x,onPointerUp:v}),(0,t.jsx)(G.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(I.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsx)(G.SheetTitle,{className:"truncate flex-1",children:u?"Loading...":i?.subject||"Email"}),(0,t.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>j(!1),children:(0,t.jsx)(D.X,{className:"h-4 w-4"})})]})}),(0,t.jsx)(G.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:u?(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(m.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)(Z.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)(z.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)(J.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 ee=e.i(781360),et=e.i(169678),es=e.i(364079);function ea({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)(z.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)(D.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 er=e.i(219658);function en(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 el(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||en(e,s))&&(!i||en(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 ei={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 eo({taskId:e,thinkingCount:a,workspaceId:r}){let[n,l]=(0,s.useState)([]),[i,o]=(0,s.useState)(!1),[c,d]=(0,s.useState)(!1),u=(0,s.useCallback)(async()=>{if(!c&&!i){o(!0);try{let t=await (0,p.getTaskMessages)(e,r);l(t)}catch{l([])}finally{o(!1),d(!0)}}},[c,i,e,r]);return(0,t.jsx)(g,{task:ei,messages:n,thinkingCountHint:a,onExpandThinking:u,thinkingLoading:i})}var ec=e.i(983453),ed=e.i(251638);let eu=(0,S.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,eu],618615);var em=e.i(89440),ef=e.i(541544);let eh={mention:["data-agent-id"]},eg=["mention"];function ep({content:e,conversationType:s}){let a=e_(e,s),r="h-4 w-4 mt-0.5 shrink-0";return"issue"===a?(0,t.jsx)(ed.CircleDot,{className:r}):"email"===a?(0,t.jsx)(I.Mail,{className:r}):(0,t.jsx)(ec.Calendar,{className:r})}function ex({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)(T.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.filename})]},e.id))})}function ev({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)(T.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.name})]},s))}):null}let ek={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"},ej=(0,s.memo)(function({msg:e,agents:a,artifacts:r,activeTask:n,taskMessages:i,connectionLost:c,isLastMessage:d,thinkingCount:u,targetConvId:m,workspaceId:h,conversationType:p,pendingFilesByMessage:x,onArtifactClick:v,onEmailClick:k,onIssueClick:j,onCalendarEventClick:y,onRetry:w,mentionComponents:C,isFlagged:S,onToggleFlag:_,groupPosition:M="solo"}){let T,I,E,A,z,R,D,{copy:F,copied:P}=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}}(),$=n&&"assistant"===e.role&&e.task_id===n.id&&e.conversation_id===n.conversation_id&&i.length>0,L=$&&n&&["completed","failed","cancelled","superseded"].includes(n.status),q="assistant"===e.role?(0,t.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs","aria-label":P?"Copied":"Copy message",onClick:async t=>{t.stopPropagation(),await F(e.content)?b.toast.success("Copied to clipboard"):b.toast.error("Failed to copy")},className:(0,o.cn)("self-start mb-1",P?"text-green-500 opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:P?(0,t.jsx)(ef.Check,{className:"size-3.5"}):(0,t.jsx)(em.Copy,{className:"size-3.5"})}),(0,t.jsx)(N.TooltipContent,{children:P?"Copied":"Copy"})]}),_&&(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-xs",onClick:()=>_(e.id),className:(0,o.cn)("self-start mb-1",S?"text-primary opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:(0,t.jsx)(eu,{className:(0,o.cn)("size-3.5",S&&"fill-current")})}),(0,t.jsx)(N.TooltipContent,{children:S?"Unflag":"Flag"})]})]}):null;return(0,t.jsxs)(s.default.Fragment,{children:[$&&(0,t.jsxs)("div",{className:(0,o.cn)("group/msg",S&&"bg-muted/30 rounded-lg px-2 -mx-2"),...L?{"data-quote-source":!0}:{},children:[(0,t.jsx)(g,{task:n,messages:i,connectionLost:c,onRetry:w}),L&&q]}),"user"===e.role?(T=d&&!!n&&"running"!==n.status&&!["completed","failed","cancelled","superseded"].includes(n.status),I=e.content.match(/^\/(\S+)\s?([\s\S]*)$/),E=I?.[1]??null,A=I?I[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",ek[M]),children:[T&&(0,t.jsx)("div",{className:(0,o.cn)("absolute inset-0 animate-pulse pointer-events-none",ek[M]),style:{boxShadow:"0 0 0 2px var(--bubble-glow)"}}),E&&(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:["/",E]}),A&&(0,t.jsx)("div",{className:"markdown markdown-user",children:(0,t.jsx)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:eh,literalTagContent:eg,components:C,children:el(A,a)})}),e.attachment_ids&&e.attachment_ids.length>0&&(0,t.jsx)(ex,{attachmentIds:e.attachment_ids,artifacts:r,onArtifactClick:v}),!e.attachment_ids&&(0,t.jsx)(ev,{pendingFiles:x,messageId:e.id})]})})):"event"===e.role?(z=e.metadata?.emailId,R=e.metadata?.issueId,D=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",(!!z||!!R||!!D)&&"cursor-pointer hover:bg-muted transition-colors"),onClick:z?()=>k(z):R?()=>j(R):D?()=>y(D):void 0,children:[(0,t.jsx)(ep,{content:e.content,conversationType:p}),(0,t.jsx)("span",{className:"min-w-0 wrap-anywhere",children:e.content})]})})):$?null:(0,t.jsxs)("div",{className:(0,o.cn)("group/msg flex flex-col justify-start min-w-0 overflow-x-clip",S&&"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:[m&&"assistant"===e.role&&e.task_id&&u>1&&(0,t.jsx)(eo,{taskId:e.task_id,thinkingCount:u-1,workspaceId: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)(f.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:eh,literalTagContent:eg,components:C,children:el(e.content,a)})}),q]})]})});e.i(400175);var ey=e.i(819748),eb=e.i(126366),ew=e.i(309475);function eN({agent:e,isOnline:a,activeTaskCount:r,variant:n="default",isHovered:l}){let[i,c]=(0,s.useState)(!1),d=e.email_handle?`${e.email_handle}@alook.ai`:null,u=(0,s.useCallback)(async()=>{if(d)try{await navigator.clipboard.writeText(d),c(!0),b.toast.success("Email copied to clipboard"),setTimeout(()=>c(!1),2e3)}catch{b.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,eb.parseAvatarUrl)(e.avatar_url))?(0,t.jsx)(ey.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)(ew.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)(ef.Check,{className:"size-3 text-green-500"}):(0,t.jsx)(em.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,eN],844010);var eC=e.i(224950);let eS={mention:function(e){let{children:s,...a}=e,{agents:r}=(0,v.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)(eC.Popover,{children:[(0,t.jsx)(eC.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,t.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:s}),(0,t.jsx)(eC.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,t.jsx)(eN,{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 e_(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 eM(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 eT(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 eM([...s.values()])}function eI(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 eE(e){let t=(0,s.useRef)(e);return(0,s.useEffect)(()=>{t.current=e},[e]),t}function eA({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 ez({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)(T.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,Y.formatSize)(e.size)})]})]})}function eR({agentId:e,targetConvId:i,scrollToTaskId:c,scrollToMessageId:d}){let u,f,h,S=(0,r.useParams)(),F=(0,r.useSearchParams)(),{workspaceId:$,slug:L}=(0,n.useWorkspace)(),{agents:q,agentLinks:B,activeTaskCounts:O,subscribeWs:H,subscribeReconnect:W}=(0,v.useAgentContext)(),{refresh:U}=(0,k.useInboxCount)(),{activeChannel:V,loading:X,setAgentId:G}=(0,y.useChannel)(),J=e??S.id,Z=void 0!==c?c:F.get("task"),en=void 0!==d?d:F.get("msg"),el=void 0!==i?i:F.get("conv"),[ei,eo]=(0,s.useState)(null),[ec,ed]=(0,s.useState)([]),[eu,em]=(0,s.useState)(()=>localStorage.getItem(`chat-draft:${J}:${el??"default"}`)??""),[ef,eh]=(0,s.useState)(!1),[eg,ep]=(0,s.useState)(!1),[ex,ev]=(0,s.useState)(null),[ek,ey]=(0,s.useState)([]),[eb,ew]=(0,s.useState)(!0),[eN,e_]=(0,s.useState)(!1),[eD,eF]=(0,s.useState)(!1),[eP,e$]=(0,s.useState)(!1),[eL,eq]=(0,s.useState)([]),[eB,eO]=(0,s.useState)(!1),[eH,eW]=(0,s.useState)(null),[eU,eV]=(0,s.useState)(null),[eK,eY]=(0,s.useState)(!1),[eX,eG]=(0,s.useState)(null),[eJ,eZ]=(0,s.useState)(!1),[eQ,e0]=(0,s.useState)(null),[e1,e2]=(0,s.useState)(!1),[e5,e3]=(0,s.useState)(null),[e4,e8]=(0,s.useState)(null),[e6,e7]=(0,s.useState)(!1),[e9,te]=(0,s.useState)(null),[tt,ts]=(0,s.useState)(null),[ta,tr]=(0,s.useState)([]),[tn,tl]=(0,s.useState)([]),[ti,to]=(0,s.useState)(null),[tc,td]=(0,s.useState)([]),[tu,tm]=(0,s.useState)(!1),[tf,th]=(0,s.useState)([]),[tg,tp]=(0,s.useState)({}),[tx]=(0,s.useState)(()=>Date.now()),[tv,tk]=(0,s.useState)(()=>new Map),[tj,ty]=(0,s.useState)(()=>{try{let e=JSON.parse(localStorage.getItem(`chat-draft-meta:${J}:${el??"default"}`)??"null");return e?.quote??null}catch{return null}}),[tb,tw]=(0,s.useState)(!1),[tN,tC]=(0,s.useState)(null),[tS,t_]=(0,s.useState)(new Set),tM=(0,s.useRef)(tS);(0,s.useEffect)(()=>{tM.current=tS});let{increment:tT,decrement:tI,refresh:tE}=(0,j.useFlagCount)(),{writeToCache:tA}=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,x.openCacheDB)(t);let s=!1;return(0,x.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,x.mergeCachedMessages)(i.current,e,s,t,a)},[t])}}(el??null,$),tz=(0,s.useRef)(tA);(0,s.useEffect)(()=>{tz.current=tA},[tA]),(0,s.useEffect)(()=>{G(J)},[J,G]);let tR=(0,s.useMemo)(()=>eL.filter(e=>"agent"===e.source),[eL]),{versionMap:tD,duplicateFilenames:tF}=(0,s.useMemo)(()=>(0,es.computeArtifactVersions)(tR),[tR]),tP=(0,s.useMemo)(()=>"agent"===eU?tR:"issue"===eU?e4?.artifacts??[]:[],[eU,tR,e4?.artifacts]),{versionMap:t$,duplicateFilenames:tL}=(0,s.useMemo)(()=>(0,es.computeArtifactVersions)(tP),[tP]),tq=(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)}),eI(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=>eI([...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=eI(e),s=i.findIndex(e=>"nap"===e.kind);s>=0?i.splice(s,0,...t):i.push(...t)}return i})(ec,tR,tf,ei?.id),[ec,tR,tf,ei?.id]),tB=(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})(tq),[tq]),tO=(0,s.useCallback)(e=>{(0,es.isPreviewable)(e)?(eW(e),eV("agent"),eO(!0)):window.open((0,es.getArtifactUrl)(e.id,$,!0),"_blank")},[$]),tH=(0,s.useCallback)(e=>{(0,es.isPreviewable)(e)?(eW(e),eV("issue"),eO(!0)):window.open((0,es.getArtifactUrl)(e.id,$,!0),"_blank")},[$]),tW=(0,s.useRef)(null),tU=(0,s.useRef)(null),tV=(0,s.useRef)(null),tK=(0,s.useRef)(null),tY=(0,s.useRef)(0),tX=(0,s.useRef)(0),tG=(0,s.useRef)(!1),tJ=(0,s.useRef)(!1),tZ=(0,s.useRef)(!0),tQ=(0,s.useRef)(!1),t0=(0,s.useRef)(null),t1=(0,s.useRef)(null),t2=(0,s.useRef)(0),t5=(0,s.useRef)(void 0),t3=(0,s.useRef)(null),t4=(0,s.useRef)({completedKey:null}),t8=(0,s.useRef)(null),t6=(0,s.useRef)(null),[t7,t9]=(0,s.useState)(""),se=(0,s.useMemo)(()=>q.filter(e=>e.id!==J),[q,J]),[st,ss]=(0,s.useState)([]),sa=(0,s.useRef)(!1),sr=(0,s.useRef)(!1);(0,s.useEffect)(()=>{sa.current||(sa.current=!0,(0,p.getAgentSkills)(J,$).then(e=>ss(e.skills)).catch(()=>{}))},[J,$]);let[sn]=(0,s.useState)(()=>{try{let e=JSON.parse(localStorage.getItem(`chat-draft-meta:${J}:${el??"default"}`)??"null");return e?.skill??null}catch{return null}}),sl=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:t7,caretIndex:ti,skills:st,onInputChange:()=>t6.current?.clear(),initialActiveSkill:sn,getAnchorPos:(0,s.useCallback)(e=>t6.current?.coordsAtTextIndex(e)??null,[]),onAfterSelect:(0,s.useCallback)(()=>{requestAnimationFrame(()=>t6.current?.focus())},[])});(0,s.useEffect)(()=>{0===st.length||!sl.activeSkill||st.some(e=>e.name===sl.activeSkill.name)||sl.setActiveSkill(null)},[st]),(0,s.useEffect)(()=>{let e=`chat-draft:${J}:${el??"default"}`;eu?localStorage.setItem(e,eu):localStorage.removeItem(e)},[eu,J,el]),(0,s.useEffect)(()=>{if(!sr.current)return;let e=`chat-draft-meta:${J}:${el??"default"}`,t={};sl.activeSkill&&(t.skill={name:sl.activeSkill.name,description:sl.activeSkill.description}),tj&&(t.quote=tj),t.skill||t.quote?localStorage.setItem(e,JSON.stringify(t)):localStorage.removeItem(e)},[sl.activeSkill,tj,J,el]),(0,s.useEffect)(()=>{ef||t6.current?.focus()},[ef]);let si=(0,s.useCallback)(()=>{tZ.current=!0,setTimeout(()=>{tW.current?.scrollTo({top:tW.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,s.useEffect)(()=>{var e,t;if(!el&&X)return;let s=(e={workspaceId:$,agentId:J,targetConvId:el,scrollToTaskId:Z}).targetConvId?`${e.workspaceId}::${e.agentId}::${e.targetConvId}::${e.scrollToTaskId??""}`:null;if(t=t4.current,s&&t.completedKey===s||(t.completedKey=null,0))return;tU.current&&clearInterval(tU.current),tU.current=null,tK.current=null,t3.current=null;let a=!1;ew(!0),tG.current=!1,ev(null),ey([]),tl([]),tk(new Map),th([]),tp({}),td([]),tm(!1),t1.current=null,em(localStorage.getItem(`chat-draft:${J}:${el??"default"}`)??"");let r=localStorage.getItem(`chat-draft-meta:${J}:${el??"default"}`);if(r)try{let e=JSON.parse(r);ty(e.quote??null),sl.setActiveSkill(e.skill?e.skill:null)}catch{ty(null),sl.setActiveSkill(null)}else ty(null),sl.setActiveSkill(null);async function n(e){let t=await (0,x.getCacheMeta)(e,$);if(t?.newestMessageId){let s=await (0,x.getCachedMessages)(e,$);if(a)return{painted:!1,cacheMeta:t};if(s&&s.length>0)return ed(s),eF(t.hasMore),ew(!1),{painted:!0,cacheMeta:t}}return{painted:!1,cacheMeta:t}}return sr.current=!0,ed([]),async function(){let e=!1;try{let t=null,s=null,r=null;if(el){t=el;let r=await n(t);if(a)return;s=r.cacheMeta,e=r.painted}else{let l=await (0,x.getLastOpenConversation)(J,V,$);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,p.checkFreshness)({agentId:J,channel:V},$);if(a)return;if(t=l.conversation_id,r&&t!==r){tG.current=!1,tZ.current=!0;let r=await n(t);if(a)return;s=r.cacheMeta,e=r.painted,r.painted||(ed([]),ew(!0))}else if(!r){let r=await n(t);if(a)return;s=r.cacheMeta,e=r.painted}}catch{}}if(t){t3.current=t;let r=await (0,p.conversationInit)(t,$,{newestMessageId:s?.newestMessageId??void 0,messageCount:s?.serverMessageCount||void 0});if(a)return;if(eo(r.conversation),tm(r.has_more_conversations),!r.cache_valid&&r.messages){let s=tZ.current;ed(e=>eT(e,r.messages)),t3.current===t&&(0,x.mergeCachedMessages)(t,r.messages,r.has_more_messages,$,r.message_count).catch(()=>{}),eF(r.has_more_messages),e&&tG.current&&s&&si()}else s&&eF(s.hasMore);if(t3.current===t&&!el){let e=await (0,x.getCacheMeta)(t,$);if(a)return;(0,x.setLastOpenConversation)(J,V,{conversation_id:t,newestMessageId:e?.newestMessageId??s?.newestMessageId??null,serverMessageCount:r.message_count},$).catch(()=>{})}if(tp(r.thinking_counts),eq(r.artifacts),tl(r.buffered_messages),t_(new Set(r.flagged_message_ids)),r.active_task&&(ev(r.active_task),ey(r.task_messages),r.task_messages.length>0&&(tY.current=Math.max(...r.task_messages.map(e=>e.seq))),t0.current?.(r.active_task.id,t,tY.current)),Z){let e=await (0,p.getTask)(Z,$).catch(()=>null);if(a)return;if(e&&!["completed","failed","cancelled","superseded"].includes(e.status)){ev(e);let s=await (0,p.getTaskMessages)(Z,$).catch(()=>[]);if(a)return;ey(s),s.length>0&&(tY.current=Math.max(...s.map(e=>e.seq))),t0.current?.(e.id,t,tY.current)}}}else{let t=await (0,p.chatInit)(J,$,V);if(a)return;t3.current=t.conversation.id,eo(t.conversation);let s=tZ.current;ed(e=>e.length>0?eT(e,t.messages):t.messages),eF(t.has_more_messages),eq(t.artifacts),tl(t.buffered_messages),tm(t.has_more_conversations),(0,x.mergeCachedMessages)(t.conversation.id,t.messages,t.has_more_messages,$).catch(()=>{}),(0,x.setLastOpenConversation)(J,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},$).catch(()=>{}),e&&tG.current&&s&&si(),(0,p.listFlaggedMessageIds)($,t.conversation.id).then(e=>{a||t_(new Set(e.message_ids))}).catch(()=>{}),t.active_task&&(ev(t.active_task),t.task_messages.length>0&&(ey(t.task_messages),tY.current=Math.max(...t.task_messages.map(e=>e.seq))),["completed","failed","cancelled","superseded"].includes(t.active_task.status)||t0.current?.(t.active_task.id,t.conversation.id,tY.current))}}catch{e?b.toast.error("Couldn't refresh conversation"):b.toast.error("Failed to load conversation")}finally{if(!a){var t;ew(!1),t=t4.current,s&&(t.completedKey=s)}}}(),()=>{a=!0}},[J,$,el,Z,V,X]);let so=(0,s.useRef)(U);(0,s.useEffect)(()=>{so.current=U},[U]);let sc=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!ei?.id||!$||sc.current===ei.id)return;sc.current=ei.id;let e=setTimeout(()=>{(0,p.markInboxRead)(ei.id,$).then(()=>so.current()).catch(()=>{})},1e3);return()=>{sc.current=null,clearTimeout(e)}},[ei?.id,$]),(0,s.useEffect)(()=>{eb||!(ec.length>0)||tG.current||(tG.current=!0,Z||en?tZ.current=!1:i?setTimeout(()=>{let e=tW.current?.querySelectorAll("[data-quote-source]");e&&e.length>0?e[e.length-1].scrollIntoView({behavior:"instant",block:"start"}):tW.current?.scrollTo({top:tW.current.scrollHeight})},50):setTimeout(()=>{tW.current?.scrollTo({top:tW.current.scrollHeight})},50))},[eb,ec.length,Z,en,i]),(0,s.useEffect)(()=>{let e;if(!Z||eb||!ei)return;tZ.current=!1,tQ.current=!0;let t=!1,s=()=>{if(t)return!1;let s=document.querySelector(`[data-task-id="${CSS.escape(Z)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tQ.current=!1)},1500),!0)},a=setTimeout(async()=>{if(!t&&!s())try{let e=await (0,p.listMessagesAroundTask)(ei.id,$,Z);if(t)return;e.length>0?(ed(t=>eT(t,e)),requestAnimationFrame(()=>{setTimeout(()=>{s()||(tQ.current=!1)},100)})):tQ.current=!1}catch{t||(tQ.current=!1)}},100);return()=>{t=!0,clearTimeout(a),e&&clearTimeout(e)}},[Z,eb,ei,$]),(0,s.useEffect)(()=>{let e;if(!en||Z||eb||!ei)return;tZ.current=!1,tQ.current=!0;let t=!1,s=setTimeout(()=>{!t&&((()=>{if(t)return!1;let s=document.querySelector(`[data-message-id="${CSS.escape(en)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"start"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(tQ.current=!1)},1500),!0)})()||(tW.current?.scrollTo({top:tW.current.scrollHeight}),tQ.current=!1))},100);return()=>{t=!0,clearTimeout(s),e&&clearTimeout(e)}},[en,Z,eb,ei]);let sd=ex?.status;(0,s.useEffect)(()=>{tQ.current||("running"===sd||"queued"===sd)&&tZ.current&&si()},[ek.length,sd,si]);let su=(0,s.useMemo)(()=>q.find(e=>e.id===J)?.name??"Agent",[q,J]),sm=eE(ec),sf=eE(eD),sh=eE(tc),sg=eE(tu),sp=eE(su),sx=eE(V),sv=(0,s.useCallback)(async(e=!1)=>{if(!ei||tJ.current)return;tJ.current=!0;let t=sm.current,s=sf.current,r=sg.current,n=sp.current,l=sx.current,i=!!el,o=t[0],c=t1.current?.id??ei.id,d=s&&o,u=sh.current;if(!i&&!d&&0===u.length&&r){let e=t1.current??{id:ei.id,created_at:ei.created_at};try{let t=await (0,p.listPreviousConversations)(J,$,{exclude:ei.id,before:e.created_at,channel:l});u=t.conversations,td(t.conversations),tm(t.has_more)}catch{tm(!1)}}let m=!i&&u.length>0;if(!d&&!m){tJ.current=!1;return}e$(!0);let f=tW.current;f&&(f.style.overflowAnchor="none");let h=f?.scrollHeight??0;try{let t=[],s=[],m=20,g=!1,v=[],k=!1;if(d){let e=c===ei.id?await (0,x.getCachedMessagesBefore)(c,o.created_at,o.id,20,$):null;if(e)t=e.messages,m-=e.messages.length,g=e.hasMore;else{let e=await (0,p.listMessages)(c,$,{limit:20,before:o.created_at,beforeId:o.id});t=e.messages,m-=e.messages.length,g=e.has_more}k=g}if(!i&&!g&&m>0){if(0===u.length&&r){let e=t1.current??{id:ei.id,created_at:ei.created_at};try{let t=await (0,p.listPreviousConversations)(J,$,{exclude:ei.id,before:e.created_at,channel:l});u=t.conversations,td(t.conversations),tm(t.has_more)}catch{tm(!1)}}let e=0,t=0;for(;e<u.length&&m>0&&t<5;){let a=u[e];e++,t++;let r=await (0,p.listMessages)(a.id,$,{limit:m});if(0===r.messages.length){t1.current=a;continue}let l=t1.current?.created_at??ei.created_at;v.push({agentName:n,created_at:l,id:`nap-${a.id}`}),s=[...r.messages,...s],m-=r.messages.length,g=r.has_more,t1.current=a}e>0&&td(t=>t.slice(e))}let j=[...s,...t];if((0,a.flushSync)(()=>{j.length>0?(v.length>0&&th(e=>{let t=new Set(e.map(e=>e.id)),s=v.filter(e=>!t.has(e.id));return[...e,...s]}),eF(g),ed(e=>{let t=new Set(e.map(e=>e.id));return[...j.filter(e=>!t.has(e.id)),...e]})):eF(!1)}),j.length>0&&ei){let e=j.filter(e=>e.conversation_id===ei.id);e.length>0&&(0,x.mergeCachedMessages)(ei.id,e,k,$).catch(()=>{})}if(tJ.current=!1,(0,a.flushSync)(()=>e$(!1)),f)if(e)f.scrollTop=f.scrollHeight;else{let e=f.scrollHeight;f.scrollTop=e-h}}catch{b.toast.error("Failed to load older messages")}finally{tJ.current=!1,e$(!1),tW.current&&(tW.current.style.overflowAnchor="")}},[ei,$,J,el,sm,sf,sg,sp,sx,sh]),sk=el?eD:eD||tc.length>0||tu;(0,s.useEffect)(()=>{ei?.id!==t5.current&&(t5.current=ei?.id,t2.current=0)},[ei?.id]),(0,s.useEffect)(()=>{eb||!ei||Z||el||ec.length>=10||!sk||eP||t2.current>=3||(t2.current+=1,sv(!0))},[eb,ec.length,sk,eP,ei,sv,Z,el]);let sj=(0,s.useCallback)(()=>{let e=tW.current;e&&(tZ.current=e.scrollHeight-e.scrollTop-e.clientHeight<100)},[]),sy=(0,s.useCallback)((e,t,s)=>{tU.current&&clearInterval(tU.current),tY.current=s??0,tX.current=0,e_(!1),tK.current=e,tU.current=setInterval(async()=>{if(tK.current===e)try{let[s,a]=await Promise.all([(0,p.getTask)(e,$),(0,p.getTaskMessages)(e,$,tY.current||void 0)]),r=tK.current!==e;if(tX.current=0,e_(!1),a.length>0&&!r&&(ey(e=>{let t=new Set(e.map(e=>e.seq)),s=a.filter(e=>!t.has(e.seq));return s.length>0?[...e,...s]:e}),tY.current=Math.max(...a.map(e=>e.seq),tY.current)),"completed"===s.status||"failed"===s.status||"cancelled"===s.status||"superseded"===s.status){if(r)return void(0,p.listMessages)(t,$).then(({messages:e})=>{ed(t=>eT(t,e)),(0,x.mergeCachedMessages)(t,e,null,$).catch(()=>{})}).catch(()=>{});tU.current&&clearInterval(tU.current),tU.current=null,tV.current&&clearTimeout(tV.current),tV.current=setTimeout(()=>{(0,p.markInboxRead)(t,$).then(()=>so.current()).catch(()=>{})},1e3);let a=!tQ.current&&tZ.current;try{let[e,a]=await Promise.all([(0,p.listMessages)(t,$),(0,p.listArtifacts)(t,$).catch(()=>null)]);ed(t=>eT(t,e.messages)),(0,x.mergeCachedMessages)(t,e.messages,null,$).catch(()=>{}),a&&eq(a),ev(s)}catch{ev(s),b.toast.error("Failed to refresh messages")}a&&requestAnimationFrame(()=>{tW.current?.scrollTo({top:tW.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!tU.current)try{let[s,a]=await Promise.all([(0,p.getActiveTask)(t,$),(0,p.listBufferedMessages)(t,$)]);if(tl(a),s&&s.id!==e){let{messages:e}=await (0,p.listMessages)(t,$);ed(t=>eT(t,e)),(0,x.mergeCachedMessages)(t,e,null,$).catch(()=>{}),ev(s),ey([]),t0.current?.(s.id,t)}}catch{}},1e3)}else r||ev(s)}catch{if(tK.current!==e)return;tX.current+=1,tX.current>=3&&e_(!0),tX.current>=10&&(tU.current&&clearInterval(tU.current),tU.current=null,b.toast.error("Lost connection to agent"))}},3e3)},[$]);(0,s.useEffect)(()=>{t0.current=sy},[sy]),(0,s.useEffect)(()=>()=>{tU.current&&clearInterval(tU.current),tV.current&&clearTimeout(tV.current)},[]);let sb=(0,s.useRef)(null);(0,s.useEffect)(()=>{sb.current=ex?.id??null},[ex]),(0,s.useEffect)(()=>H(e=>{if("task.messages"===e.type&&e.taskId===sb.current){let t=e.messages.filter(e=>e.seq>tY.current);t.length>0&&(ey(e=>{let s=new Set(e.map(e=>e.seq)),a=t.filter(e=>!s.has(e.seq));return a.length>0?[...e,...a]:e}),tY.current=Math.max(...t.map(e=>e.seq),tY.current))}if("task.created"===e.type&&e.conversationId===ei?.id){(0,p.listMessages)(e.conversationId,$).then(({messages:t})=>{ed(e=>eT(e,t)),(0,x.mergeCachedMessages)(e.conversationId,t,null,$).catch(()=>{})}).catch(()=>{});let t=e.task;sb.current=t.id,ev(t),ey([]),tY.current=0,t0.current?.(t.id,e.conversationId)}if("task.created"===e.type){let t=e.task,s=sx.current;(0,x.getLastOpenConversation)(J,s,$).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:J,activeChannel:s,currentPointerConvId:e?.conversation_id??null});if(a)return(0,x.getCacheMeta)(a,$).then(e=>(0,x.setLastOpenConversation)(J,s,{conversation_id:a,newestMessageId:e?.newestMessageId??null,serverMessageCount:e?.messageCount??0},$))}).catch(()=>{})}if("conversation.message"===e.type&&(e.conversationId===t3.current&&(0,x.appendCachedMessage)(e.conversationId,e.message,$).catch(()=>{}),e.conversationId===ei?.id&&ed(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 eT(t,[e.message])})),"task.updated"===e.type&&e.taskId===sb.current&&ev(t=>t?{...t,status:e.status}:t),"artifact.uploaded"===e.type&&e.conversationId===ei?.id&&eq(t=>t.some(t=>t.id===e.artifact.id)?t:[...t,e.artifact]),"followup.dispatched"===e.type&&e.conversationId===ei?.id){tl(t=>t.filter(t=>t.id!==e.message.id)),(0,p.listBufferedMessages)(e.conversationId,$).then(tl).catch(()=>{}),(0,p.listMessages)(e.conversationId,$).then(({messages:t})=>{ed(e=>eT(e,t)),(0,x.mergeCachedMessages)(e.conversationId,t,null,$).catch(()=>{})}).catch(()=>{});let t=e.task;sb.current=t.id,ev(t),ey([]),t0.current?.(t.id,e.conversationId)}"followup.created"===e.type&&e.conversationId===ei?.id&&tl(t=>(function(e,t){if(e.some(e=>e.id===t.id))return e;let s=new Date(t.created_at).getTime();return e.some(e=>e.id.startsWith("temp-")&&2e3>Math.abs(new Date(e.created_at).getTime()-s))?e:[...e,t]})(t,e.message)),"followup.deleted"===e.type&&e.conversationId===ei?.id&&tl(t=>t.filter(t=>t.id!==e.messageId)),"followup.dispatch_failed"===e.type&&e.conversationId===ei?.id&&b.toast.error(e.error||"Failed to dispatch follow-up")}),[H,ei?.id,$,J]),(0,s.useEffect)(()=>W(()=>{ei?.id&&(0,x.getCacheMeta)(ei.id,$).then(e=>{(0,p.conversationInit)(ei.id,$,{newestMessageId:e?.newestMessageId??void 0,messageCount:e?.serverMessageCount??void 0}).then(e=>{!e.cache_valid&&e.messages&&(ed(t=>eT(t,e.messages)),tz.current(e.messages,e.has_more_messages,e.message_count).catch(()=>{}))}).catch(()=>{})})}),[W,ei?.id,$]);let sw=(0,s.useCallback)(e=>{let t=[];for(let s of e)s.size>0xa00000?b.toast.error(`"${s.name}" exceeds 10 MB limit`):t.push(s);t.length>0&&tr(e=>[...e,...t])},[]),sN=(0,s.useCallback)(e=>{let t=e.target.files;t&&(sw(Array.from(t)),e.target.value="")},[sw]),sC=(0,s.useCallback)(e=>{tr(t=>t.filter((t,s)=>s!==e))},[]),sS=(0,s.useCallback)(()=>{let e=window.getSelection();if(!e||e.isCollapsed||!e.rangeCount)return void tC(null);let t=e.toString().trim();if(!t)return void tC(null);let s=e.getRangeAt(0),a=s.commonAncestorContainer instanceof HTMLElement?s.commonAncestorContainer:s.commonAncestorContainer.parentElement;if(!a?.closest("[data-quote-source]"))return void tC(null);let r=s.getClientRects(),n=r[r.length-1]||s.getBoundingClientRect();tC({text:t,x:n.right,y:n.top-4})},[]);(0,s.useEffect)(()=>(document.addEventListener("selectionchange",sS),()=>document.removeEventListener("selectionchange",sS)),[sS]);let s_=(0,s.useCallback)(()=>{tN&&(ty(tN.text),tC(null),window.getSelection()?.removeAllRanges(),t6.current?.focus())},[tN]),[sM,sT]=(0,s.useState)(!1),sI=(0,s.useRef)(0),sE=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sI.current++,e.dataTransfer.types.includes("Files")&&sT(!0)},[]),sA=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sI.current--,0===sI.current&&sT(!1)},[]),sz=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),sR=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),sT(!1),sI.current=0,sw(Array.from(e.dataTransfer.files))},[sw]),sD=async()=>{if(ei&&!eg){ep(!0);try{let e=await (0,p.cancelActiveTask)(ei.id,$);if(e){if(sb.current&&sb.current!==e.id)return;tU.current&&clearInterval(tU.current),tU.current=null;let[t,s]=await Promise.all([(0,p.listMessages)(ei.id,$),(0,p.listBufferedMessages)(ei.id,$)]);ed(e=>eT(e,t.messages)),(0,x.mergeCachedMessages)(ei.id,t.messages,null,$).catch(()=>{}),tl(s),ev(e),ey([])}}catch{b.toast.error("Failed to cancel task")}finally{ep(!1)}}},sF=async()=>{let e=eu.trim();if(!e&&0===ta.length||ef||!ei)return;if(!e)return void b.toast.error("Please type a message");let t=tj?`> ${tj.split("\n").join("\n> ")}
|
|
2
2
|
|
|
3
|
-
${e}`:e;sl.activeSkill&&(t=`/${sl.activeSkill.name} ${t}`);let s=[...ta];if(em(""),tr([]),ty(null),sl.clearActiveSkill(),eh(!0),ex&&!["completed","failed","cancelled","superseded"].includes(ex.status)){let e=`temp-${Date.now()}`,a={id:e,conversation_id:ei.id,role:"user",content:t,task_id:null,attachment_ids:null,status:"buffered",created_at:new Date().toISOString()};tl(e=>[...e,a]);try{let{message:a}=await (0,p.createBufferedMessage)(ei.id,t,$,s.length>0?s:void 0);tl(t=>t.some(e=>e.id===a.id)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?a:t))}catch(a){tl(t=>t.filter(t=>t.id!==e)),em(t),tr(s),b.toast.error(a instanceof Error?a.message:"Failed to queue follow-up")}finally{eh(!1)}return}let a=`temp-${Date.now()}`,r={id:a,conversation_id:ei.id,role:"user",content:t,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};s.length>0&&tk(e=>{let t=new Map(e);return t.set(a,s),t}),ed(e=>[...e,r]),si();try{let{message:e,task:n}=await (0,p.sendMessage)(ei.id,t,$,s.length>0?s:void 0);tk(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),ed(t=>{if(!t.some(e=>e.id===r.id))return t.some(t=>t.id===e.id)?t:eT([...t,e]);let s=t.filter(t=>t.id!==r.id&&t.id!==e.id);return eT([...s,e])}),(0,x.appendCachedMessage)(ei.id,e,$).catch(()=>{}),e.attachment_ids&&e.attachment_ids.length>0&&(0,p.listArtifacts)(ei.id,$).then(e=>eq(e)).catch(()=>{}),ev(n),ey([]),sy(n.id,ei.id)}catch(e){tk(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),ed(e=>e.filter(e=>e.id!==r.id)),em(t),tr(s),b.toast.error(e instanceof Error?e.message:"Failed to send message")}finally{eh(!1),t6.current?.focus()}},sP=(0,s.useCallback)(async()=>{if(!ex||!ei)return;let e=await (0,p.retryTask)(ex.id,$);ev(e),ey([]),sy(e.id,ei.id)},[ex,ei,$,sy]),s$=(0,s.useCallback)(async e=>{let t=tT.current.has(e);t_(s=>{let a=new Set(s);return t?a.delete(e):a.add(e),a}),t?(tI(),(0,p.unflagMessage)($,e).then(()=>{tE()}).catch(()=>{t_(t=>new Set(t).add(e)),tM()})):(tM(),(0,p.flagMessage)($,e).then(()=>{tE()}).catch(()=>{t_(t=>{let s=new Set(t);return s.delete(e),s}),tI()}))},[$,tM,tI,tE]),sL=(0,s.useCallback)(async e=>{e3(e),e2(!0),e7(!0),te(null),ts(null);try{let t=await (0,p.getIssue)($,e);e8(t),t.issue.latest_task_id&&(0,p.getTask)(t.issue.latest_task_id,$).then(e=>ts(e)).catch(()=>ts(null)),t.issue.trace_id&&(0,p.getTrace)(t.issue.trace_id,$).then(e=>te(e.tasks)).catch(()=>te(null))}catch(e){b.toast.error(e instanceof Error?e.message:"Failed to load issue"),e2(!1)}finally{e7(!1)}},[$]),sq=e4?.issue?.conversation_id??null,sB=e4?.issue?.latest_task_id??null;(0,s.useEffect)(()=>{if(e1&&e5)return H(e=>{if("task.updated"===e.type&&sB&&e.taskId===sB&&(0,p.getTask)(sB,$).then(e=>ts(e)).catch(()=>{}),"conversation.message"===e.type&&sq&&e.conversationId===sq&&(e8(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&&e8(e=>e?{...e,issue:{...e.issue,status:t[1]}}:e)}"issue.comment"===e.type&&e.issueId===e5&&e8(t=>!t||t.comments.some(t=>t.id===e.comment.id)?t:{...t,comments:[...t.comments,e.comment]})})},[e1,e5,sq,sB,$,H]);let[sO,sH]=(0,s.useState)(!1),[sW,sU]=(0,s.useState)(!1),sV=(0,s.useMemo)(()=>!!ei&&ec.some(e=>e.conversation_id===ei.id),[ei,ec]),sK=async()=>{if(ei&&sV&&!sO){sH(!0);try{tU.current&&(clearInterval(tU.current),tU.current=null);let e=await (0,p.createConversation)(J,$,V);th(t=>[...t,{agentName:su,created_at:e.created_at,id:`nap-${ei.id}`}]),td(e=>[{id:ei.id,created_at:ei.created_at},...e]),eo(e),ev(null),ey([]),eq([]),tl([]),tr([]),tk(new Map),tY.current=0,e_(!1),eF(!1),t1.current=null,si()}catch{b.toast.error("Failed to start new conversation")}finally{sH(!1)}}},sY=!!ex&&!["completed","failed","cancelled","superseded"].includes(ex.status);return eb?(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)(w.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)(w.Skeleton,{className:"h-4 w-72"}),(0,t.jsx)(w.Skeleton,{className:"h-4 w-56"}),(0,t.jsx)(w.Skeleton,{className:"h-4 w-64"})]})}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(w.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)(w.Skeleton,{className:"h-4 w-64"}),(0,t.jsx)(w.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)(w.Skeleton,{className:"h-12 w-full rounded-3xl"})})})]}):eb||ei||0!==ec.length?(0,t.jsxs)(t.Fragment,{children:[tN&&(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:tN.x,top:tN.y,transform:"translate(-100%, -100%)"},onMouseDown:e=>e.preventDefault(),onClick:s_,children:[(0,t.jsx)(E,{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:tW,onScroll:sj,onClick:e=>{e.target.closest('[data-streamdown="code-block-actions"] button')&&b.toast.success("Copied to clipboard")},children:(0,t.jsxs)("div",{className:"mx-auto max-w-2xl pt-6 pb-15 min-w-0",children:[ei&&sk&&!eP&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)("button",{onClick:()=>sv(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),eP&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)(m.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===ec.length&&!ex&&(u=q.find(e=>e.id===J),f=u?.created_at&&tx-new Date(u.created_at).getTime()<3e5,h=(O[J]??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)(I.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."})),tq.map((e,s)=>{let a=tB[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)(eA,{agentName:su})},e.data.id);if("artifact"===e.kind)return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(ez,{artifact:e.data,version:tD.get(e.data.id)??1,hasDuplicates:tF.has(e.data.filename),onClick:tO})},`artifact-${e.data.id}`);let l=e.data;return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(ej,{msg:l,agents:q,artifacts:eL,activeTask:ex,taskMessages:ek,connectionLost:eN,isLastMessage:ec.length>0&&ec[ec.length-1].id===l.id,thinkingCount:l.task_id?tg[l.task_id]??0:0,targetConvId:el,workspaceId:$,conversationType:ei?.type,pendingFilesByMessage:tv,onArtifactClick:tO,onEmailClick:e=>{eG(e),eY(!0)},onCalendarEventClick:e=>{e0(e),eZ(!0)},onIssueClick:e=>sL(e),onRetry:sP,mentionComponents:eS,isFlagged:tS.has(l.id),onToggleFlag:"assistant"===l.role?s$:void 0,groupPosition:a??"solo"})},l.id)}),ex&&ex.conversation_id===ei?.id&&!["completed","failed","cancelled","superseded"].includes(ex.status)&&(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(g,{task:ex,messages:ek,connectionLost:eN})})]})}),(0,t.jsx)(er.ScrollToBottomButton,{scrollRef:tW})]}),ei&&(0,t.jsx)(ea,{bufferedMessages:tn,onDelete:e=>{tl(t=>t.filter(t=>t.id!==e)),(0,p.deleteBufferedMessage)(ei.id,e,$).catch(()=>{tl(tn),b.toast.error("Failed to delete follow-up")})}}),(0,t.jsx)("div",{className:"relative z-10 px-3 md:px-5 pt-3 pb-5 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:[!el&&(0,t.jsxs)(eC.Popover,{open:sW,onOpenChange:sU,children:[(0,t.jsx)(eC.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)(A.MoreHorizontal,{className:"size-4"})}),(0,t.jsxs)(eC.PopoverContent,{side:"top",align:"start",className:"w-auto p-1.5 flex flex-col gap-0.5",children:[(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.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:sK,disabled:sO||!ei||!sV||sY,className:"w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[sO?(0,t.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(_,{className:"size-3.5"}),(0,t.jsx)("span",{className:"text-xs",children:"Nap"})]})})}),(0,t.jsx)(N.TooltipContent,{side:"right",children:sY?"Wait for the task to finish":sV?"Take a nap":`${su} is well-rested and ready to go`})]}),(0,t.jsxs)(l.Button,{variant:"ghost",size:"sm",onClick:()=>{eV("agent"),eO(!0)},className:"relative w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[(0,t.jsx)(T,{className:"size-3.5"}),(0,t.jsx)("span",{className:"text-xs",children:"Artifacts"}),tR.length>0&&(0,t.jsx)("span",{className:"ml-auto flex size-4 items-center justify-center rounded-full bg-primary text-[9px] font-medium text-primary-foreground",children:tR.length})]})]})]}),(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",(tb||tj||sl.activeSkill)&&"rounded-2xl",ef&&"opacity-50",sT&&"border-ring ring-3 ring-ring/50"),onDragEnter:sE,onDragLeave:sA,onDragOver:sz,onDrop:sR,children:[sT&&(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",tb||tj||sl.activeSkill?"rounded-2xl":"rounded-3xl"),children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),sl.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:["/",sl.activeSkill.name]}),sl.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:sl.activeSkill.description})]}),(0,t.jsx)("button",{type:"button",onClick:sl.clearActiveSkill,className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)(D.X,{className:"size-3.5"})})]}),tj&&(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)(E,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[tj.slice(0,120),tj.length>120?"...":""]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>ty(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)(D.X,{className:"size-3.5"})})]}),(0,t.jsx)(P,{isOpen:sl.isOpen,skills:sl.skills,selectedIndex:sl.selectedIndex,onSelect:sl.selectSkill,anchorPos:sl.anchorPos}),ta.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pt-3 pb-0.5",children:ta.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground",children:[(0,t.jsx)(M.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,Y.formatSize)(e.size)}),(0,t.jsx)("button",{type:"button",onClick:()=>sC(s),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,t.jsx)(D.X,{className:"size-3"})})]},`${e.name}-${s}`))}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{ref:t8,type:"file",multiple:!0,className:"hidden",onChange:sN}),(0,t.jsx)("div",{className:"px-13 py-3",children:(0,t.jsx)(K,{ref:t6,value:eu,onChange:em,onEditorState:(e,t)=>{t9(e),to(t)},onSend:sF,placeholder:sY?"Type a follow-up...":"Type a task...",disabled:ef,onMultiLineChange:tw,onFiles:sw,agents:se,agentLinks:B,currentAgentId:J,slashIsOpen:sl.isOpen,onSlashKeyDown:sl.handleSlashKeyDown})}),(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onPointerDown:e=>e.preventDefault(),onClick:()=>t8.current?.click(),disabled:ef,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)(z.Paperclip,{className:"size-3.5"})}),(0,t.jsx)(N.TooltipContent,{side:"top",children:"Attach files"})]}),!sY||eu.trim()||ef?(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:sF,disabled:!eu.trim()||ef,className:(0,o.cn)("absolute right-2 bottom-2 size-8 rounded-full bg-primary text-primary-foreground transition-opacity duration-200",!eu.trim()&&"opacity-30")}),children:ef?(0,t.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(C.ArrowUp,{className:"size-3.5"})}),(0,t.jsx)(N.TooltipContent,{side:"top",children:"Send"})]}):(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:sD,disabled:eg,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:eg?(0,t.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(R.Square,{className:"size-3.5 fill-current"})}),(0,t.jsx)(N.TooltipContent,{side:"top",children:"Stop task"})]})]})]}),!el&&(0,t.jsx)("div",{className:"shrink-0 self-end mb-2.5 size-8","aria-hidden":"true"})]})})}),(0,t.jsx)(Y.ArtifactSheet,{open:eB,onOpenChange:e=>{eO(e),e||setTimeout(()=>{eW(null),eV(null)},300)},artifacts:tP,workspaceId:$,initialArtifact:eH,versionMap:t$,duplicateFilenames:tL}),(0,t.jsx)(Q,{open:eK,onOpenChange:e=>{eY(e),e||setTimeout(()=>eG(null),300)},emailId:eX,workspaceId:$}),(0,t.jsx)(ee.CalendarEventSheet,{readonly:!0,open:eJ,onOpenChange:e=>{eZ(e),e||setTimeout(()=>e0(null),300)},calendarEventId:eQ,workspaceId:$}),(0,t.jsx)(et.IssueSheet,{open:e1,onOpenChange:e=>{e2(e),e||setTimeout(()=>{e3(null),e8(null),ts(null)},300)},agents:q,issue:e4?.issue??null,detail:e4?{messages:e4.messages,comments:e4.comments,artifacts:e4.artifacts,traceId:e4.issue.trace_id}:null,detailLoading:e6,activeTask:tt,traceTasks:e9,slug:L,workspaceId:$,onUpdate:async(e,t)=>{try{let s=await (0,p.updateIssue)($,e,t);e8(a=>a&&a.issue.id===e?{...a,issue:{...a.issue,...t,updated_at:s.updated_at}}:a)}catch(e){b.toast.error(e instanceof Error?e.message:"Failed to update issue")}},onStatusChange:async(e,t)=>{try{await (0,p.updateIssue)($,e,{status:t}),e8(s=>s&&s.issue.id===e?{...s,issue:{...s.issue,status:t}}:s)}catch(e){b.toast.error(e instanceof Error?e.message:"Failed to update status")}},onCommented:()=>{e5&&sL(e5)},onArtifactClick:tH})]}):(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}}]);
|
|
3
|
+
${e}`:e;sl.activeSkill&&(t=`/${sl.activeSkill.name} ${t}`);let s=[...ta];if(em(""),tr([]),ty(null),sl.clearActiveSkill(),eh(!0),ex&&!["completed","failed","cancelled","superseded"].includes(ex.status)){let e=`temp-${Date.now()}`,a={id:e,conversation_id:ei.id,role:"user",content:t,task_id:null,attachment_ids:null,status:"buffered",created_at:new Date().toISOString()};tl(e=>[...e,a]);try{let{message:a}=await (0,p.createBufferedMessage)(ei.id,t,$,s.length>0?s:void 0);tl(t=>t.some(e=>e.id===a.id)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?a:t))}catch(a){tl(t=>t.filter(t=>t.id!==e)),em(t),tr(s),b.toast.error(a instanceof Error?a.message:"Failed to queue follow-up")}finally{eh(!1)}return}let a=`temp-${Date.now()}`,r={id:a,conversation_id:ei.id,role:"user",content:t,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};s.length>0&&tk(e=>{let t=new Map(e);return t.set(a,s),t}),ed(e=>[...e,r]),si();try{let{message:e,task:n}=await (0,p.sendMessage)(ei.id,t,$,s.length>0?s:void 0);tk(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),ed(t=>{if(!t.some(e=>e.id===r.id))return t.some(t=>t.id===e.id)?t:eM([...t,e]);let s=t.filter(t=>t.id!==r.id&&t.id!==e.id);return eM([...s,e])}),(0,x.appendCachedMessage)(ei.id,e,$).catch(()=>{}),e.attachment_ids&&e.attachment_ids.length>0&&(0,p.listArtifacts)(ei.id,$).then(e=>eq(e)).catch(()=>{}),ev(n),ey([]),sy(n.id,ei.id)}catch(e){tk(e=>{if(!e.has(a))return e;let t=new Map(e);return t.delete(a),t}),ed(e=>e.filter(e=>e.id!==r.id)),em(t),tr(s),b.toast.error(e instanceof Error?e.message:"Failed to send message")}finally{eh(!1),t6.current?.focus()}},sP=(0,s.useCallback)(async()=>{if(!ex||!ei)return;let e=await (0,p.retryTask)(ex.id,$);ev(e),ey([]),sy(e.id,ei.id)},[ex,ei,$,sy]),s$=(0,s.useCallback)(async e=>{let t=tM.current.has(e);t_(s=>{let a=new Set(s);return t?a.delete(e):a.add(e),a}),t?(tI(),(0,p.unflagMessage)($,e).then(()=>{tE()}).catch(()=>{t_(t=>new Set(t).add(e)),tT()})):(tT(),(0,p.flagMessage)($,e).then(()=>{tE()}).catch(()=>{t_(t=>{let s=new Set(t);return s.delete(e),s}),tI()}))},[$,tT,tI,tE]),sL=(0,s.useCallback)(async e=>{e3(e),e2(!0),e7(!0),te(null),ts(null);try{let t=await (0,p.getIssue)($,e);e8(t),t.issue.latest_task_id&&(0,p.getTask)(t.issue.latest_task_id,$).then(e=>ts(e)).catch(()=>ts(null)),t.issue.trace_id&&(0,p.getTrace)(t.issue.trace_id,$).then(e=>te(e.tasks)).catch(()=>te(null))}catch(e){b.toast.error(e instanceof Error?e.message:"Failed to load issue"),e2(!1)}finally{e7(!1)}},[$]),sq=e4?.issue?.conversation_id??null,sB=e4?.issue?.latest_task_id??null;(0,s.useEffect)(()=>{if(e1&&e5)return H(e=>{if("task.updated"===e.type&&sB&&e.taskId===sB&&(0,p.getTask)(sB,$).then(e=>ts(e)).catch(()=>{}),"conversation.message"===e.type&&sq&&e.conversationId===sq&&(e8(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&&e8(e=>e?{...e,issue:{...e.issue,status:t[1]}}:e)}"issue.comment"===e.type&&e.issueId===e5&&e8(t=>!t||t.comments.some(t=>t.id===e.comment.id)?t:{...t,comments:[...t.comments,e.comment]})})},[e1,e5,sq,sB,$,H]);let[sO,sH]=(0,s.useState)(!1),[sW,sU]=(0,s.useState)(!1),sV=(0,s.useMemo)(()=>!!ei&&ec.some(e=>e.conversation_id===ei.id),[ei,ec]),sK=async()=>{if(ei&&sV&&!sO){sH(!0);try{tU.current&&(clearInterval(tU.current),tU.current=null);let e=await (0,p.createConversation)(J,$,V);th(t=>[...t,{agentName:su,created_at:e.created_at,id:`nap-${ei.id}`}]),td(e=>[{id:ei.id,created_at:ei.created_at},...e]),eo(e),ev(null),ey([]),eq([]),tl([]),tr([]),tk(new Map),tY.current=0,e_(!1),eF(!1),t1.current=null,si()}catch{b.toast.error("Failed to start new conversation")}finally{sH(!1)}}},sY=!!ex&&!["completed","failed","cancelled","superseded"].includes(ex.status);return eb?(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)(w.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)(w.Skeleton,{className:"h-4 w-72"}),(0,t.jsx)(w.Skeleton,{className:"h-4 w-56"}),(0,t.jsx)(w.Skeleton,{className:"h-4 w-64"})]})}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(w.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)(w.Skeleton,{className:"h-4 w-64"}),(0,t.jsx)(w.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)(w.Skeleton,{className:"h-12 w-full rounded-3xl"})})})]}):eb||ei||0!==ec.length?(0,t.jsxs)(t.Fragment,{children:[tN&&(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:tN.x,top:tN.y,transform:"translate(-100%, -100%)"},onMouseDown:e=>e.preventDefault(),onClick:s_,children:[(0,t.jsx)(E,{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:tW,onScroll:sj,onClick:e=>{e.target.closest('[data-streamdown="code-block-actions"] button')&&b.toast.success("Copied to clipboard")},children:(0,t.jsxs)("div",{className:"mx-auto max-w-2xl pt-6 pb-15 min-w-0",children:[ei&&sk&&!eP&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)("button",{onClick:()=>sv(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),eP&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)(m.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===ec.length&&!ex&&(u=q.find(e=>e.id===J),f=u?.created_at&&tx-new Date(u.created_at).getTime()<3e5,h=(O[J]??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)(I.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."})),tq.map((e,s)=>{let a=tB[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)(eA,{agentName:su})},e.data.id);if("artifact"===e.kind)return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(ez,{artifact:e.data,version:tD.get(e.data.id)??1,hasDuplicates:tF.has(e.data.filename),onClick:tO})},`artifact-${e.data.id}`);let l=e.data;return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(ej,{msg:l,agents:q,artifacts:eL,activeTask:ex,taskMessages:ek,connectionLost:eN,isLastMessage:ec.length>0&&ec[ec.length-1].id===l.id,thinkingCount:l.task_id?tg[l.task_id]??0:0,targetConvId:el,workspaceId:$,conversationType:ei?.type,pendingFilesByMessage:tv,onArtifactClick:tO,onEmailClick:e=>{eG(e),eY(!0)},onCalendarEventClick:e=>{e0(e),eZ(!0)},onIssueClick:e=>sL(e),onRetry:sP,mentionComponents:eS,isFlagged:tS.has(l.id),onToggleFlag:"assistant"===l.role?s$:void 0,groupPosition:a??"solo"})},l.id)}),ex&&ex.conversation_id===ei?.id&&!["completed","failed","cancelled","superseded"].includes(ex.status)&&(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(g,{task:ex,messages:ek,connectionLost:eN})})]})}),(0,t.jsx)(er.ScrollToBottomButton,{scrollRef:tW})]}),ei&&(0,t.jsx)(ea,{bufferedMessages:tn,onDelete:e=>{tl(t=>t.filter(t=>t.id!==e)),(0,p.deleteBufferedMessage)(ei.id,e,$).catch(()=>{tl(tn),b.toast.error("Failed to delete follow-up")})}}),(0,t.jsx)("div",{className:"relative z-10 px-3 md:px-5 pt-3 pb-5 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:[!el&&(0,t.jsxs)(eC.Popover,{open:sW,onOpenChange:sU,children:[(0,t.jsx)(eC.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)(A.MoreHorizontal,{className:"size-4"})}),(0,t.jsxs)(eC.PopoverContent,{side:"top",align:"start",className:"w-auto p-1.5 flex flex-col gap-0.5",children:[(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.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:()=>{sU(!1),sK()},disabled:sO||!ei||!sV||sY,className:"w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[sO?(0,t.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(_,{className:"size-3.5"}),(0,t.jsx)("span",{className:"text-xs",children:"Nap"})]})})}),(0,t.jsx)(N.TooltipContent,{side:"right",children:sY?"Wait for the task to finish":sV?"Take a nap":`${su} is well-rested and ready to go`})]}),(0,t.jsxs)(l.Button,{variant:"ghost",size:"sm",onClick:()=>{sU(!1),eV("agent"),eO(!0)},className:"relative w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[(0,t.jsx)(M,{className:"size-3.5"}),(0,t.jsx)("span",{className:"text-xs",children:"Artifacts"}),tR.length>0&&(0,t.jsx)("span",{className:"ml-auto flex size-4 items-center justify-center rounded-full bg-primary text-[9px] font-medium text-primary-foreground",children:tR.length})]})]})]}),(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",(tb||tj||sl.activeSkill)&&"rounded-2xl",ef&&"opacity-50",sM&&"border-ring ring-3 ring-ring/50"),onDragEnter:sE,onDragLeave:sA,onDragOver:sz,onDrop:sR,children:[sM&&(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",tb||tj||sl.activeSkill?"rounded-2xl":"rounded-3xl"),children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),sl.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:["/",sl.activeSkill.name]}),sl.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:sl.activeSkill.description})]}),(0,t.jsx)("button",{type:"button",onClick:sl.clearActiveSkill,className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)(D.X,{className:"size-3.5"})})]}),tj&&(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)(E,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[tj.slice(0,120),tj.length>120?"...":""]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>ty(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)(D.X,{className:"size-3.5"})})]}),(0,t.jsx)(P,{isOpen:sl.isOpen,skills:sl.skills,selectedIndex:sl.selectedIndex,onSelect:sl.selectSkill,anchorPos:sl.anchorPos}),ta.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pt-3 pb-0.5",children:ta.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground",children:[(0,t.jsx)(T.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,Y.formatSize)(e.size)}),(0,t.jsx)("button",{type:"button",onClick:()=>sC(s),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,t.jsx)(D.X,{className:"size-3"})})]},`${e.name}-${s}`))}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{ref:t8,type:"file",multiple:!0,className:"hidden",onChange:sN}),(0,t.jsx)("div",{className:"px-13 py-3",children:(0,t.jsx)(K,{ref:t6,value:eu,onChange:em,onEditorState:(e,t)=>{t9(e),to(t)},onSend:sF,placeholder:sY?"Type a follow-up...":"Type a task...",disabled:ef,onMultiLineChange:tw,onFiles:sw,agents:se,agentLinks:B,currentAgentId:J,slashIsOpen:sl.isOpen,onSlashKeyDown:sl.handleSlashKeyDown})}),(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{variant:"ghost",size:"icon-sm",onPointerDown:e=>e.preventDefault(),onClick:()=>t8.current?.click(),disabled:ef,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)(z.Paperclip,{className:"size-3.5"})}),(0,t.jsx)(N.TooltipContent,{side:"top",children:"Attach files"})]}),!sY||eu.trim()||ef?(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:sF,disabled:!eu.trim()||ef,className:(0,o.cn)("absolute right-2 bottom-2 size-8 rounded-full bg-primary text-primary-foreground transition-opacity duration-200",!eu.trim()&&"opacity-30")}),children:ef?(0,t.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(C.ArrowUp,{className:"size-3.5"})}),(0,t.jsx)(N.TooltipContent,{side:"top",children:"Send"})]}):(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{render:(0,t.jsx)(l.Button,{size:"icon-sm",onClick:sD,disabled:eg,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:eg?(0,t.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(R.Square,{className:"size-3.5 fill-current"})}),(0,t.jsx)(N.TooltipContent,{side:"top",children:"Stop task"})]})]})]}),!el&&(0,t.jsx)("div",{className:"shrink-0 self-end mb-2.5 size-8","aria-hidden":"true"})]})})}),(0,t.jsx)(Y.ArtifactSheet,{open:eB,onOpenChange:e=>{eO(e),e||setTimeout(()=>{eW(null),eV(null)},300)},artifacts:tP,workspaceId:$,initialArtifact:eH,versionMap:t$,duplicateFilenames:tL}),(0,t.jsx)(Q,{open:eK,onOpenChange:e=>{eY(e),e||setTimeout(()=>eG(null),300)},emailId:eX,workspaceId:$}),(0,t.jsx)(ee.CalendarEventSheet,{readonly:!0,open:eJ,onOpenChange:e=>{eZ(e),e||setTimeout(()=>e0(null),300)},calendarEventId:eQ,workspaceId:$}),(0,t.jsx)(et.IssueSheet,{open:e1,onOpenChange:e=>{e2(e),e||setTimeout(()=>{e3(null),e8(null),ts(null)},300)},agents:q,issue:e4?.issue??null,detail:e4?{messages:e4.messages,comments:e4.comments,artifacts:e4.artifacts,traceId:e4.issue.trace_id}:null,detailLoading:e6,activeTask:tt,traceTasks:e9,slug:L,workspaceId:$,onUpdate:async(e,t)=>{try{let s=await (0,p.updateIssue)($,e,t);e8(a=>a&&a.issue.id===e?{...a,issue:{...a.issue,...t,updated_at:s.updated_at}}:a)}catch(e){b.toast.error(e instanceof Error?e.message:"Failed to update issue")}},onStatusChange:async(e,t)=>{try{await (0,p.updateIssue)($,e,{status:t}),e8(s=>s&&s.issue.id===e?{...s,issue:{...s.issue,status:t}}:s)}catch(e){b.toast.error(e instanceof Error?e.message:"Failed to update status")}},onCommented:()=>{e5&&sL(e5)},onArtifactClick:tH})]}):(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}}]);
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,275351,e=>{"use strict";let t,r,a,n,i=(e,t)=>t.some(t=>e instanceof t),s=new WeakMap,o=new WeakMap,l=new WeakMap,u={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return c(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function c(e){if(e instanceof IDBRequest){let t;return t=new Promise((t,r)=>{let a=()=>{e.removeEventListener("success",n),e.removeEventListener("error",i)},n=()=>{t(c(e.result)),a()},i=()=>{r(e.error),a()};e.addEventListener("success",n),e.addEventListener("error",i)}),l.set(t,e),t}if(o.has(e))return o.get(e);let t=function(e){if("function"==typeof e)return(n||(n=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(d(this),t),c(this.request)}:function(...t){return c(e.apply(d(this),t))};return(e instanceof IDBTransaction&&function(e){if(s.has(e))return;let t=new Promise((t,r)=>{let a=()=>{e.removeEventListener("complete",n),e.removeEventListener("error",i),e.removeEventListener("abort",i)},n=()=>{t(),a()},i=()=>{r(e.error||new DOMException("AbortError","AbortError")),a()};e.addEventListener("complete",n),e.addEventListener("error",i),e.addEventListener("abort",i)});s.set(e,t)}(e),i(e,a||(a=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])))?new Proxy(e,u):e}(e);return t!==e&&(o.set(e,t),l.set(t,e)),t}let d=e=>l.get(e),f=["get","getKey","getAll","getAllKeys","count"],h=["put","add","delete","clear"],g=new Map;function m(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(g.get(t))return g.get(t);let r=t.replace(/FromIndex$/,""),a=t!==r,n=h.includes(r);if(!(r in(a?IDBIndex:IDBObjectStore).prototype)||!(n||f.includes(r)))return;let i=async function(e,...t){let i=this.transaction(e,n?"readwrite":"readonly"),s=i.store;return a&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),n&&i.done]))[0]};return g.set(t,i),i}u={...t=u,get:(e,r,a)=>m(e,r)||t.get(e,r,a),has:(e,r)=>!!m(e,r)||t.has(e,r)};let p=["continue","continuePrimaryKey","advance"],v={},b=new WeakMap,y=new WeakMap,x={get(e,t){if(!p.includes(t))return e[t];let r=v[t];return r||(r=v[t]=function(...e){b.set(this,y.get(this)[t](...e))}),r}};async function*w(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;let r=new Proxy(t,x);for(y.set(r,t),l.set(r,d(t));t;)yield r,t=await (b.get(r)||t.continue()),b.delete(r)}function k(e,t){return t===Symbol.asyncIterator&&i(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&i(e,[IDBIndex,IDBObjectStore])}u={...r=u,get:(e,t,a)=>k(e,t)?w:r.get(e,t,a),has:(e,t)=>k(e,t)||r.has(e,t)};let C=null,I=null;function N(e){return"u"<typeof indexedDB?null:C&&I===e?C:(I=e,C=function(e,{blocked:t,upgrade:r,blocking:a,terminated:n}={}){let i=indexedDB.open(e,3),s=c(i);return r&&i.addEventListener("upgradeneeded",e=>{r(c(i.result),e.oldVersion,e.newVersion,c(i.transaction),e)}),t&&i.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),s.then(e=>{n&&e.addEventListener("close",()=>n()),a&&e.addEventListener("versionchange",e=>a(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}(`alook-chat-cache-${e}`,{upgrade(e,t){if(t<1){let t=e.createObjectStore("messages",{keyPath:["conversation_id","id"]});t.createIndex("by-conversation","conversation_id",{unique:!1}),t.createIndex("by-created",["conversation_id","created_at"],{unique:!1}),e.createObjectStore("cache_meta",{keyPath:"conversation_id"})}t<3&&e.createObjectStore("last_open",{keyPath:"key"}).createIndex("by-conversation","conversation_id",{unique:!1})}}))}function E(e){return e?N(e):C}async function S(e,t){let r=E(t);if(!r)return null;try{let t=await r,a=await t.getAllFromIndex("messages","by-conversation",e);if(0===a.length)return null;let n=a.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));n.sort((e,t)=>{let r=e.created_at.localeCompare(t.created_at);return 0!==r?r:e.id.localeCompare(t.id)});let i=await t.get("cache_meta",e);return i&&await t.put("cache_meta",{...i,lastAccessedAt:Date.now()}),n}catch{return null}}async function D(e,t,r,a,n){let i=E(n);if(!i)return null;try{let n=await i,s=await n.get("cache_meta",e);if(!s)return null;let o=IDBKeyRange.bound([e,""],[e,t],!1,!1),l=(await n.getAllFromIndex("messages","by-created",o)).filter(e=>!("buffered"===e.status||e.id.startsWith("temp-"))&&(e.created_at!==t||!(e.id>=r)));l.sort((e,t)=>{let r=t.created_at.localeCompare(e.created_at);return 0!==r?r:t.id.localeCompare(e.id)});let u=l.slice(0,a);if(u.length<a&&s.hasMore)return null;return await n.put("cache_meta",{...s,lastAccessedAt:Date.now()}),{messages:u.reverse(),hasMore:l.length>a||s.hasMore}}catch{return null}}async function T(e,t,r,a,n){let i=E(a);if(i)try{let a=await i,s=t.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));if(0===s.length)return;let o=a.transaction(["messages","cache_meta"],"readwrite"),l=o.objectStore("messages"),u=o.objectStore("cache_meta");for(let e of s)await l.put(e);let c=await l.index("by-conversation").getAllKeys(e),d=Date.now(),f=s.reduce((e,t)=>e.created_at>t.created_at?e:t),h=await u.get(e),g=r??h?.hasMore??!0,m=h?.newestMessageId&&h.newestMessageId!==f.id?await (async()=>{let t=await l.get([e,h.newestMessageId]);return t&&t.created_at>f.created_at?t.id:f.id})():f.id,p={conversation_id:e,lastFetchedAt:d,lastAccessedAt:d,messageCount:c.length,newestMessageId:m,hasMore:g,serverMessageCount:n??h?.serverMessageCount??0};await u.put(p),await o.done,A().catch(()=>{})}catch{}}async function j(e,t,r){let a=E(r);if(a&&!("buffered"===t.status||t.id.startsWith("temp-")))try{let r=await a,n=await r.get("cache_meta",e);if(!n)return;let i=await r.get("messages",[e,t.id]);await r.put("messages",t),await r.put("cache_meta",{...n,lastAccessedAt:Date.now(),messageCount:i?n.messageCount:n.messageCount+1,newestMessageId:t.id})}catch{}}async function M(e,t){let r=E(t);if(!r)return null;try{let t=await r;return await t.get("cache_meta",e)??null}catch{return null}}function _(e,t){return`${e}::${null==t?"":t}`}async function O(e,t,r){let a=E(r);if(!a)return null;try{let r=await a;return await r.get("last_open",_(e,t))??null}catch{return null}}async function L(e,t,r,a){let n=E(a);if(n)try{let a=await n;await a.put("last_open",{key:_(e,t),conversation_id:r.conversation_id,newestMessageId:r.newestMessageId,serverMessageCount:r.serverMessageCount,updatedAt:Date.now()})}catch{}}async function A(e=50){let t=E();if(t)try{let r=await t,a=await r.getAll("cache_meta");if(a.length<=e)return;a.sort((e,t)=>e.lastAccessedAt-t.lastAccessedAt);let n=a.slice(0,a.length-e),i=r.transaction(["messages","cache_meta","last_open"],"readwrite"),s=i.objectStore("messages"),o=i.objectStore("cache_meta"),l=i.objectStore("last_open");for(let e of n){for(let t of(await s.index("by-conversation").getAllKeys(e.conversation_id)))await s.delete(t);for(let t of(await o.delete(e.conversation_id),await l.index("by-conversation").getAllKeys(e.conversation_id)))await l.delete(t)}await i.done}catch{}}async function P(){if("u">typeof indexedDB)try{C&&((await C).close(),C=null),I&&(await B(`alook-chat-cache-${I}`),I=null)}catch{}}async function B(e){return new Promise((t,r)=>{let a=indexedDB.deleteDatabase(e);a.onsuccess=()=>t(),a.onerror=()=>r(a.error),a.onblocked=()=>t()})}e.s(["appendCachedMessage",0,j,"clearAllCache",0,P,"getCacheMeta",0,M,"getCachedMessages",0,S,"getCachedMessagesBefore",0,D,"getLastOpenConversation",0,O,"mergeCachedMessages",0,T,"openCacheDB",0,N,"setLastOpenConversation",0,L],275351)},790659,e=>{"use strict";var t=e.i(298699),r=e.i(982218),a=e.i(627498),n=e.i(893205);e.s(["useAnchoredPopupScrollLock",0,function(e,i,s,o){let[l,u]=t.useState(!1);(0,n.useIsoLayoutEffect)(()=>{if(!e||!i||null==s)return void u(!1);let t=(0,r.ownerDocument)(s).documentElement.clientWidth,a=s.offsetWidth;u(t>0&&a>0&&a>=t-20)},[e,i,s]),(0,a.useScrollLock)(e&&(!i||l),o)}])},643899,e=>{"use strict";var t=e.i(240003),r=e.i(298699);let a=r.createContext(void 0);e.s(["useToolbarRootContext",0,function(e){let n=r.useContext(a);if(void 0===n&&!e)throw Error((0,t.default)(69));return n}])},8043,e=>{"use strict";var t=e.i(298699);e.s(["useControlled",0,function({controlled:e,default:r,name:a,state:n="value"}){let{current:i}=t.useRef(void 0!==e),[s,o]=t.useState(r),l=t.useCallback(e=>{i||o(e)},[]);return[i?e:s,l]}])},94896,867588,e=>{"use strict";e.i(459119);var t,r=e.i(240003),a=e.i(298699),n=e.i(366767);let i=((t={}).disabled="data-disabled",t.valid="data-valid",t.invalid="data-invalid",t.touched="data-touched",t.dirty="data-dirty",t.filled="data-filled",t.focused="data-focused",t),s={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},o={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},l={disabled:!1,...o};e.s(["DEFAULT_FIELD_ROOT_STATE",0,l,"DEFAULT_FIELD_STATE_ATTRIBUTES",0,o,"DEFAULT_VALIDITY_STATE",0,s,"fieldValidityMapping",0,{valid:e=>null===e?null:e?{[i.valid]:""}:{[i.invalid]:""}}],867588);let u={invalid:void 0,name:void 0,validityData:{state:s,errors:[],error:"",value:"",initialValue:null},setValidityData:n.NOOP,disabled:void 0,touched:o.touched,setTouched:n.NOOP,dirty:o.dirty,setDirty:n.NOOP,filled:o.filled,setFilled:n.NOOP,focused:o.focused,setFocused:n.NOOP,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:l,markedDirtyRef:{current:!1},registerFieldControl:n.NOOP,validation:{getValidationProps:(e=n.EMPTY_OBJECT)=>e,getInputValidationProps:(e=n.EMPTY_OBJECT)=>e,inputRef:{current:null},commit:async()=>{}}},c=a.createContext(u);e.s(["FieldRootContext",0,c,"useFieldRootContext",0,function(e=!0){let t=a.useContext(c);if(t.setValidityData===n.NOOP&&!e)throw Error((0,r.default)(28));return t}],94896)},560258,e=>{"use strict";var t=e.i(298699),r=e.i(893205),a=e.i(94896);e.s(["useRegisterFieldControl",0,function(e,n,i,s,o=!0){let{registerFieldControl:l}=(0,a.useFieldRootContext)(),u=t.useRef(null);u.current||(u.current=Symbol()),(0,r.useIsoLayoutEffect)(()=>{let t=u.current;if(t&&o)return l(t,{controlRef:e,getValue:s,id:n,value:i}),()=>{l(t,void 0)}},[e,o,s,n,l,i])}])},786551,e=>{"use strict";var t=e.i(298699),r=e.i(366767);let a=t.createContext({controlId:void 0,registerControlId:r.NOOP,labelId:void 0,setLabelId:r.NOOP,messageIds:[],setMessageIds:r.NOOP,getDescriptionProps:e=>e});e.s(["LabelableContext",0,a,"useLabelableContext",0,function(){return t.useContext(a)}])},434045,e=>{"use strict";var t=e.i(298699),r=e.i(893205),a=e.i(673664),n=e.i(421350),i=e.i(92615),s=e.i(366767),o=e.i(384555),l=e.i(786551);e.s(["useLabelableId",0,function(e={}){let{id:u,implicit:c=!1,controlRef:d}=e,{controlId:f,registerControlId:h}=(0,l.useLabelableContext)(),g=(0,o.useBaseUiId)(u),m=c?f:void 0,p=(0,n.useRefWithInit)(()=>Symbol("labelable-control")),v=t.useRef(!1),b=t.useRef(null!=u),y=(0,a.useStableCallback)(()=>{v.current&&h!==s.NOOP&&(v.current=!1,h(p.current,void 0))});return(0,r.useIsoLayoutEffect)(()=>{let e;if(h!==s.NOOP){if(c){let t=d?.current;e=(0,i.isElement)(t)&&null!=t.closest("label")?u??null:m??g}else if(null!=u)b.current=!0,e=u;else{if(!b.current)return void y();e=g}if(void 0===e)return void y();v.current=!0,h(p.current,e)}},[u,d,m,h,c,g,p,y]),t.useEffect(()=>y,[y]),f??g}])},253432,e=>{"use strict";var t=e.i(298699),r=e.i(366767);let a=t.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:r.NOOP,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});e.s(["useFormContext",0,function(){return t.useContext(a)}])},405091,e=>{"use strict";var t=e.i(92615),r=e.i(982218),a=e.i(673664),n=e.i(444153),i=e.i(893205),s=e.i(384555),o=e.i(786551);e.s(["useLabel",0,function(e={}){let l,{id:u,fallbackControlId:c,native:d=!1,setLabelId:f,focusControl:h}=e,{controlId:g,setLabelId:m}=(0,o.useLabelableContext)(),p=(0,a.useStableCallback)(e=>{m(e),f?.(e)}),v=(l=(0,s.useBaseUiId)(u),(0,i.useIsoLayoutEffect)(()=>(p(l),()=>{p(void 0)}),[l,p]),l),b=g??c;function y(e){let a=(0,n.getTarget)(e.nativeEvent);a?.closest("button,input,select,textarea")||(!e.defaultPrevented&&e.detail>1&&e.preventDefault(),d||function(e){if(h)return h(e,b);if(!b)return;let a=(0,r.ownerDocument)(e.currentTarget).getElementById(b);(0,t.isHTMLElement)(a)&&a.focus({focusVisible:!0})}(e))}return d?{id:v,htmlFor:b??void 0,onMouseDown:y}:{id:v,onClick:y,onPointerDown(e){e.preventDefault()}}}],405091)},497064,e=>{"use strict";var t=e.i(298699),r=e.i(863764);let a=t.forwardRef(function(e,t){let{className:a,render:n,orientation:i="horizontal",style:s,...o}=e;return(0,r.useRenderElement)("div",e,{state:{orientation:i},ref:t,props:[{role:"separator","aria-orientation":i},o]})});e.s(["Separator",0,a])},310318,e=>{"use strict";var t=e.i(298699);let r=t.createContext(void 0),a={disableStyleElements:!1};e.s(["useCSPContext",0,function(){return t.useContext(r)??a}])},764434,e=>{"use strict";var t=e.i(298699);let r=t.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});e.s(["CompositeListContext",0,r,"useCompositeListContext",0,function(){return t.useContext(r)}])},401489,e=>{"use strict";var t,r=e.i(298699),a=e.i(893205),n=e.i(764434);let i=((t={})[t.None=0]="None",t[t.GuessFromOrder=1]="GuessFromOrder",t);e.s(["IndexGuessBehavior",0,i,"useCompositeListItem",0,function(e={}){let{label:t,metadata:s,textRef:o,indexGuessBehavior:l,index:u}=e,{register:c,unregister:d,subscribeMapChange:f,elementsRef:h,labelsRef:g,nextIndexRef:m}=(0,n.useCompositeListContext)(),p=r.useRef(-1),[v,b]=r.useState(u??(l===i.GuessFromOrder?()=>{if(-1===p.current){let e=m.current;m.current+=1,p.current=e}return p.current}:-1)),y=r.useRef(null),x=r.useCallback(e=>{if(y.current=e,-1!==v&&null!==e&&(h.current[v]=e,g)){let r=void 0!==t;g.current[v]=r?t:o?.current?.textContent??e.textContent}},[v,h,g,t,o]);return(0,a.useIsoLayoutEffect)(()=>{if(null!=u)return;let e=y.current;if(e)return c(e,s),()=>{d(e)}},[u,c,d,s]),(0,a.useIsoLayoutEffect)(()=>{if(null==u)return f(e=>{let t=y.current?e.get(y.current)?.index:null;null!=t&&b(t)})},[u,f,b]),r.useMemo(()=>({ref:x,index:v}),[v,x])}])},442405,e=>{"use strict";var t=e.i(298699),r=e.i(421350),a=e.i(673664),n=e.i(893205),i=e.i(764434),s=e.i(368075);function o(){return new Map}function l(){return new Set}function u(e,t){let r=e.compareDocumentPosition(t);return r&Node.DOCUMENT_POSITION_FOLLOWING||r&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:r&Node.DOCUMENT_POSITION_PRECEDING||r&Node.DOCUMENT_POSITION_CONTAINS?1:0}e.s(["CompositeList",0,function(e){let{children:c,elementsRef:d,labelsRef:f,onMapChange:h}=e,g=(0,a.useStableCallback)(h),m=t.useRef(0),p=(0,r.useRefWithInit)(l).current,v=(0,r.useRefWithInit)(o).current,[b,y]=t.useState(0),x=t.useRef(b),w=(0,a.useStableCallback)((e,t)=>{v.set(e,t??null),x.current+=1,y(x.current)}),k=(0,a.useStableCallback)(e=>{v.delete(e),x.current+=1,y(x.current)}),C=t.useMemo(()=>{let e=new Map;return Array.from(v.keys()).filter(e=>e.isConnected).sort(u).forEach((t,r)=>{let a=v.get(t)??{};e.set(t,{...a,index:r})}),e},[v,b]);(0,n.useIsoLayoutEffect)(()=>{if("function"!=typeof MutationObserver||0===C.size)return;let e=new MutationObserver(e=>{let t=new Set,r=e=>t.has(e)?t.delete(e):t.add(e);e.forEach(e=>{e.removedNodes.forEach(r),e.addedNodes.forEach(r)}),0===t.size&&(x.current+=1,y(x.current))});return C.forEach((t,r)=>{r.parentElement&&e.observe(r.parentElement,{childList:!0})}),()=>{e.disconnect()}},[C]),(0,n.useIsoLayoutEffect)(()=>{x.current===b&&(d.current.length!==C.size&&(d.current.length=C.size),f&&f.current.length!==C.size&&(f.current.length=C.size),m.current=C.size),g(C)},[g,C,d,f,b]),(0,n.useIsoLayoutEffect)(()=>()=>{d.current=[]},[d]),(0,n.useIsoLayoutEffect)(()=>()=>{f&&(f.current=[])},[f]);let I=(0,a.useStableCallback)(e=>(p.add(e),()=>{p.delete(e)}));(0,n.useIsoLayoutEffect)(()=>{p.forEach(e=>e(C))},[p,C]);let N=t.useMemo(()=>({register:w,unregister:k,subscribeMapChange:I,elementsRef:d,labelsRef:f,nextIndexRef:m}),[w,k,I,d,f,m]);return(0,s.jsx)(i.CompositeListContext.Provider,{value:N,children:c})}])},26165,e=>{"use strict";var t=e.i(297925);e.s(["CheckIcon",()=>t.default])},416765,e=>{"use strict";let t=(0,e.i(406963).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["default",0,t])},466314,990114,e=>{"use strict";function t(e,r=Number.MIN_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER){return Math.max(r,Math.min(e,a))}e.s(["clamp",0,t],990114),e.s(["SCROLL_EDGE_TOLERANCE_PX",0,1,"getMaxScrollOffset",0,function(e,t){return Math.max(0,e-t)},"normalizeScrollOffset",0,function(e,r){if(r<=0)return 0;let a=t(e,0,r),n=r-a,i=a<=1,s=n<=1;return i&&s?a<=n?0:r:i?0:s?r:a}],466314)},367598,e=>{"use strict";var t=e.i(368075);let r="base-ui-disable-scrollbar";e.s(["styleDisableScrollbar",0,{className:r,getElement:e=>(0,t.jsx)("style",{nonce:e,href:r,precedence:"base-ui:low",children:`.${r}{scrollbar-width:none}.${r}::-webkit-scrollbar{display:none}`})}])},400175,e=>{"use strict";e.i(126366),e.i(819748),e.i(108772),e.i(261819),e.s([])},927783,e=>{"use strict";let t=(0,e.i(406963).default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);e.s(["GitBranch",0,t],927783)},872937,e=>{"use strict";var t=e.i(368075),r=e.i(298699),a=e.i(222862),n=e.i(880932);let i=(0,r.createContext)(null);function s(e,t){return t?`alook:channel:${e}:${t}`:`alook:channel:${e}`}e.s(["ChannelProvider",0,function({workspaceId:e,children:o}){let[l,u]=(0,r.useState)([]),[c,d]=(0,r.useState)("default"),[f,h]=(0,r.useState)(!0),[g,m]=(0,r.useState)(null),[p,v]=(0,r.useState)(!1),[b,y]=(0,r.useState)(null),[x,w]=(0,r.useState)(null),k=(0,r.useCallback)(async()=>{try{let t=await (0,a.listChannels)(e);u(t)}catch{u([])}},[e]);(0,r.useEffect)(()=>{k().finally(()=>h(!1))},[e,k]),(0,r.useEffect)(()=>{g&&d(localStorage.getItem(s(e,g))??"default")},[e,g]);let C=(0,r.useCallback)(t=>{d(t);try{localStorage.setItem(s(e,g),t)}catch{}},[e,g]),I=(0,r.useCallback)(async t=>{if(!p){v(!0);try{let r=await (0,a.createChannelApi)(e,t);return await k(),r}finally{v(!1)}}},[e,k,p]),N=(0,r.useCallback)(async(t,r)=>{if(!x){w(t);try{let n=l.find(e=>e.id===t);await (0,a.renameChannelApi)(t,e,r),n&&n.name===c&&C(r),await k()}finally{w(null)}}},[e,l,c,C,k,x]),E=(0,r.useCallback)(async t=>{if(!b){y(t);try{let r=l.find(e=>e.id===t);await (0,a.deleteChannelApi)(t,e),r&&r.name===c&&C("default"),await k()}finally{y(null)}}},[e,l,c,C,k,b]),S=(0,r.useCallback)(async t=>{u(e=>{let r=new Map(e.map(e=>[e.id,e])),a=t.map(e=>r.get(e)).filter(e=>void 0!==e),n=new Set(t);return[...e.filter(e=>!n.has(e.id)),...a]});try{await (0,a.reorderChannelsApi)(e,t)}catch{await k(),n.toast.error("Failed to reorder channels")}},[e,k]);return(0,t.jsx)(i.Provider,{value:{channels:l,activeChannel:c,loading:f,creating:p,deleting:b,renaming:x,setActiveChannel:C,setAgentId:m,createChannel:I,renameChannel:N,deleteChannel:E,reorderChannels:S,refresh:k},children:o})},"useChannel",0,function(){let e=(0,r.useContext)(i);if(!e)throw Error("useChannel must be used within a ChannelProvider");return e}])},937091,e=>{"use strict";var t=e.i(852665);e.s(["X",()=>t.default])},64873,907361,e=>{"use strict";let t=(0,e.i(406963).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["default",0,t],907361),e.s(["ChevronRight",0,t],64873)},520582,e=>{"use strict";var t=e.i(368075),r=e.i(298699),a=e.i(613349);let n=e=>{e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)},i=r.forwardRef(({className:e,onChange:i,...s},o)=>{let l=r.useRef(null),u=r.useCallback(e=>{l.current=e,"function"==typeof o?o(e):o&&(o.current=e),n(e)},[o]);return r.useEffect(()=>{n(l.current)},[s.value]),(0,t.jsx)("textarea",{ref:u,className:(0,a.cn)("resize-none overflow-hidden",e),onChange:e=>{n(e.target),i?.(e)},...s})});i.displayName="AutoResizeTextarea",e.s(["AutoResizeTextarea",0,i])},653216,e=>{"use strict";let t=(0,e.i(406963).default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);e.s(["MoreHorizontal",0,t],653216)},309475,450463,e=>{"use strict";var t=e.i(368075),r=e.i(298699),a=e.i(789994),n=e.i(875061),i=e.i(224950),s=e.i(329686),o=e.i(728886),l=e.i(613349),u=e.i(222862),c=e.i(500324);function d(e){let t=new Date(e);if(isNaN(t.getTime()))return"";let r=Math.floor((new Date().getTime()-t.getTime())/6e4);if(r<1)return"just now";if(r<60)return`${r}m ago`;let a=Math.floor(r/60);if(a<24)return`${a}h ago`;let n=Math.floor(a/24);return n<7?`${n}d ago`:t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function f({online:e}){return(0,t.jsx)("span",{className:(0,l.cn)("size-1.5 rounded-full shrink-0",e?"bg-status-online":"bg-status-offline")})}function h({task:e,slug:r,agentId:n}){var i;let s,o="running"===e.status;return(0,t.jsxs)(a.default,{href:`/w/${r}/agents/${n}?task=${e.id}&conv=${e.conversation_id}`,className:"flex items-center gap-2 w-full py-1.5 px-2 hover:bg-muted rounded-md transition-colors cursor-pointer",children:[(0,t.jsx)("span",{className:(0,l.cn)("size-1.5 rounded-full shrink-0",o?"bg-primary animate-pulse":"bg-muted-foreground/40")}),(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)("p",{className:"text-xs truncate",children:(s=(i=e.prompt).match(/^Issue\s+iss_\w+:\s*(.+)/))?s[1].split("\n")[0]:i.split("\n")[0]})}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground whitespace-nowrap shrink-0",children:d(e.created_at)})]})}e.s(["relativeTime",0,d],450463);let g="gap-1.5 text-muted-foreground hover:text-foreground cursor-pointer";e.s(["AgentStatusBadge",0,function({isOnline:e,taskCount:d,agentId:m}){let{slug:p,workspaceId:v}=(0,c.useWorkspace)(),[b,y]=(0,r.useState)(null),[x,w]=(0,r.useState)(!1),[k,C]=(0,r.useState)(!1),I=(0,r.useCallback)(async()=>{y(null),w(!0),C(!1);try{let e=await (0,u.listWorkspaceActiveTasks)(v);y(e.tasks.filter(e=>e.agent_id===m))}catch{C(!0)}finally{w(!1)}},[m,v]);return e?(0,t.jsxs)(i.Popover,{onOpenChange:e=>{e&&I()},children:[(0,t.jsxs)(i.PopoverTrigger,{render:(0,t.jsx)("button",{type:"button",className:(0,l.cn)((0,n.badgeVariants)({variant:"outline"}),g),onClick:e=>e.stopPropagation()}),children:[(0,t.jsx)(f,{online:!0}),d>0?(0,t.jsx)("span",{className:"hidden sm:inline",children:"Working"}):(0,t.jsx)("span",{className:"hidden sm:inline text-muted-foreground/40",children:"Online"})]}),(0,t.jsx)(i.PopoverContent,{className:"w-72 p-1",children:x?(0,t.jsx)("div",{className:"p-2 space-y-1",children:Array.from({length:3}).map((e,r)=>(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1.5 px-2",children:[(0,t.jsx)(o.Skeleton,{className:"size-1.5 rounded-full"}),(0,t.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,t.jsx)(o.Skeleton,{className:"h-2.5 w-10"}),(0,t.jsx)(o.Skeleton,{className:"h-3 w-full"})]}),(0,t.jsx)(o.Skeleton,{className:"h-2.5 w-8"})]},r))}):k?(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"Failed to load"}):b&&0!==b.length?(0,t.jsxs)("div",{className:"max-h-75 overflow-y-auto",children:[b.slice(0,6).map(e=>(0,t.jsx)(h,{task:e,slug:p,agentId:m},e.id)),b.length>6&&(0,t.jsxs)(a.default,{href:`/w/${p}/agents/${m}/activity?status=running`,className:"block text-xs text-muted-foreground hover:text-foreground text-center py-1.5 transition-colors",children:["View all ",b.length," tasks"]})]}):(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"No active tasks"})})]}):(0,t.jsxs)(s.Tooltip,{children:[(0,t.jsx)(s.TooltipTrigger,{render:(0,t.jsxs)(n.Badge,{variant:"outline",render:(0,t.jsx)(a.default,{href:`/w/${p}/runtimes`}),className:g,children:[(0,t.jsx)(f,{online:!1}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Offline"})]})}),(0,t.jsx)(s.TooltipContent,{children:"Runtime offline — click to manage runtimes"})]})}],309475)},393153,e=>{"use strict";var t=e.i(368075),r=e.i(779646),a=e.i(186339);e.s(["ConfirmDialog",0,function({open:e,onOpenChange:n,title:i,description:s,confirmLabel:o="Remove",loadingLabel:l,confirmVariant:u="destructive",loading:c=!1,onConfirm:d}){return(0,t.jsx)(r.Dialog,{open:e,onOpenChange:n,children:(0,t.jsxs)(r.DialogContent,{showCloseButton:!1,children:[(0,t.jsxs)(r.DialogHeader,{children:[(0,t.jsx)(r.DialogTitle,{children:i}),(0,t.jsx)(r.DialogDescription,{children:s})]}),(0,t.jsxs)(r.DialogFooter,{children:[(0,t.jsx)(a.Button,{variant:"outline",size:"sm",onClick:()=>n(!1),disabled:c,children:"Cancel"}),(0,t.jsx)(a.Button,{variant:u,size:"sm",onClick:d,disabled:c,children:c?l??`${o}...`:o})]})]})})}])},875061,e=>{"use strict";var t=e.i(390072),r=e.i(863764),a=e.i(294237),n=e.i(613349);let i=(0,a.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:a="default",render:s,...o}){var l;return l={defaultTagName:"span",props:(0,t.mergeProps)({className:(0,n.cn)(i({variant:a}),e)},o),render:s,state:{slot:"badge",variant:a}},(0,r.useRenderElement)(l.defaultTagName??"div",l,l)},"badgeVariants",0,i],875061)},371522,e=>{"use strict";let t=(0,e.i(406963).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],371522)},208020,(e,t,r)=>{t.exports=e.r(170928)},406963,e=>{"use strict";var t=e.i(298699);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let i=(0,t.createContext)({}),s=(0,t.forwardRef)(({color:e,size:a,strokeWidth:s,absoluteStrokeWidth:o,className:l="",children:u,iconNode:c,...d},f)=>{let{size:h=24,strokeWidth:g=2,absoluteStrokeWidth:m=!1,color:p="currentColor",className:v=""}=(0,t.useContext)(i)??{},b=o??m?24*Number(s??g)/Number(a??h):s??g;return(0,t.createElement)("svg",{ref:f,...n,width:a??h??n.width,height:a??h??n.height,stroke:e??p,strokeWidth:b,className:r("lucide",v,l),...!u&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(d)&&{"aria-hidden":"true"},...d},[...c.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(u)?u:[u]])});e.s(["default",0,(e,n)=>{let i=(0,t.forwardRef)(({className:i,...o},l)=>(0,t.createElement)(s,{ref:l,iconNode:n,className:r(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,i),...o}));return i.displayName=a(e),i}],406963)},931764,536460,e=>{"use strict";e.i(459119);var t=e.i(298699),r=e.i(92615),a=e.i(673664),n=e.i(893205),i=e.i(390072),s=e.i(240003);let o=t.createContext(void 0);function l(e=!1){let r=t.useContext(o);if(void 0===r&&!e)throw Error((0,s.default)(16));return r}function u(e){return(0,r.isHTMLElement)(e)&&"BUTTON"===e.tagName}e.s(["CompositeRootContext",0,o,"useCompositeRootContext",0,l],536460),e.s(["useButton",0,function(e={}){let{disabled:r=!1,focusableWhenDisabled:s,tabIndex:o=0,native:c=!0,composite:d}=e,f=t.useRef(null),h=l(!0),g=d??void 0!==h,{props:m}=function(e){let{focusableWhenDisabled:r,disabled:a,composite:n=!1,tabIndex:i=0,isNativeButton:s}=e,o=n&&!1!==r,l=n&&!1===r;return{props:t.useMemo(()=>{let e={onKeyDown(e){a&&r&&"Tab"!==e.key&&e.preventDefault()}};return n||(e.tabIndex=i,!s&&a&&(e.tabIndex=r?i:-1)),(s&&(r||o)||!s&&a)&&(e["aria-disabled"]=a),s&&(!r||l)&&(e.disabled=a),e},[n,a,r,o,l,s,i])}}({focusableWhenDisabled:s,disabled:r,composite:g,tabIndex:o,isNativeButton:c}),p=t.useCallback(()=>{let e=f.current;u(e)&&g&&r&&void 0===m.disabled&&e.disabled&&(e.disabled=!1)},[r,m.disabled,g]);return(0,n.useIsoLayoutEffect)(p,[p]),{getButtonProps:t.useCallback((e={})=>{let{onClick:t,onMouseDown:a,onKeyUp:n,onKeyDown:s,onPointerDown:o,...l}=e;return(0,i.mergeProps)({onClick(e){r?e.preventDefault():t?.(e)},onMouseDown(e){r||a?.(e)},onKeyDown(e){var a;if(r||((0,i.makeEventPreventable)(e),s?.(e),e.baseUIHandlerPrevented))return;let n=e.target===e.currentTarget,o=e.currentTarget,l=u(o),d=!c&&(a=o,!!(a?.tagName==="A"&&a?.href)),f=n&&(c?l:!d),h="Enter"===e.key,m=" "===e.key,p=o.getAttribute("role"),v=p?.startsWith("menuitem")||"option"===p||"gridcell"===p;if(n&&g&&m){if(e.defaultPrevented&&v)return;e.preventDefault(),d||c&&l?(o.click(),e.preventBaseUIHandler()):f&&(t?.(e),e.preventBaseUIHandler());return}f&&(!c&&(m||h)&&e.preventDefault(),!c&&h&&t?.(e))},onKeyUp(e){r||(((0,i.makeEventPreventable)(e),n?.(e),e.target===e.currentTarget&&c&&g&&u(e.currentTarget)&&" "===e.key)?e.preventDefault():!e.baseUIHandlerPrevented&&(e.target!==e.currentTarget||c||g||" "!==e.key||t?.(e)))},onPointerDown(e){r?e.preventDefault():o?.(e)}},c?{type:"button"}:{role:"button"},m,l)},[r,m,g,c]),buttonRef:(0,a.useStableCallback)(e=>{f.current=e,p()})}}],931764)},294237,e=>{"use strict";var t=e.i(7284);let r=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=t.clsx;e.s(["cva",0,(e,t)=>n=>{var i;if((null==t?void 0:t.variants)==null)return a(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:s,defaultVariants:o}=t,l=Object.keys(s).map(e=>{let t=null==n?void 0:n[e],a=null==o?void 0:o[e];if(null===t)return null;let i=r(t)||r(a);return s[e][i]}),u=n&&Object.entries(n).reduce((e,t)=>{let[r,a]=t;return void 0===a||(e[r]=a),e},{});return a(e,l,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:r,className:a,...n}=t;return Object.entries(n).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...o,...u}[t]):({...o,...u})[t]===r})?[...e,r,a]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}])},186339,e=>{"use strict";var t=e.i(368075);e.i(459119);var r=e.i(298699),a=e.i(931764),n=e.i(863764);let i=r.forwardRef(function(e,t){let{render:r,className:i,disabled:s=!1,focusableWhenDisabled:o=!1,nativeButton:l=!0,style:u,...c}=e,{getButtonProps:d,buttonRef:f}=(0,a.useButton)({disabled:s,focusableWhenDisabled:o,native:l});return(0,n.useRenderElement)("button",e,{state:{disabled:s},ref:[t,f],props:[c,d]})});var s=e.i(294237),o=e.i(613349);let l=(0,s.cva)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});e.s(["Button",0,function({className:e,variant:r="default",size:a="default",...n}){return(0,t.jsx)(i,{"data-slot":"button",className:(0,o.cn)(l({variant:r,size:a,className:e})),...n})},"buttonVariants",0,l],186339)},297925,e=>{"use strict";let t=(0,e.i(406963).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t])},332680,e=>{"use strict";var t=e.i(368075),r=e.i(55916),a=e.i(613349),n=e.i(186339),i=e.i(49695);function s({...e}){return(0,t.jsx)(r.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function o({className:e,...n}){return(0,t.jsx)(r.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,a.cn)("fixed inset-0 z-50 bg-black/20 backdrop-blur-[2px] transition-[opacity,backdrop-filter] duration-200 ease-out data-ending-style:opacity-0 data-ending-style:backdrop-blur-none data-starting-style:opacity-0 data-starting-style:backdrop-blur-none",e),...n})}e.s(["Sheet",0,function({...e}){return(0,t.jsx)(r.Dialog.Root,{"data-slot":"sheet",...e})},"SheetBody",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sheet-body",className:(0,a.cn)("flex-1 overflow-y-auto thin-scrollbar px-4 sm:px-6 py-5",e),...r})},"SheetClose",0,function({...e}){return(0,t.jsx)(r.Dialog.Close,{"data-slot":"sheet-close",...e})},"SheetContent",0,function({className:e,children:l,side:u="right",showCloseButton:c=!0,...d}){return(0,t.jsxs)(s,{children:[(0,t.jsx)(o,{forceRender:!0}),(0,t.jsxs)(r.Dialog.Popup,{"data-slot":"sheet-content","data-side":u,className:(0,a.cn)("fixed z-50 flex flex-col bg-background shadow-xl outline-none transition duration-300 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0","data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-full data-[side=right]:max-w-md data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-10 data-[side=right]:data-starting-style:translate-x-10","data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-full data-[side=left]:max-w-md data-[side=left]:border-r data-[side=left]:data-ending-style:-translate-x-10 data-[side=left]:data-starting-style:-translate-x-10","data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:-translate-y-10 data-[side=top]:data-starting-style:-translate-y-10","data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-10 data-[side=bottom]:data-starting-style:translate-y-10",e),...d,children:[l,c&&(0,t.jsxs)(r.Dialog.Close,{"data-slot":"sheet-close",render:(0,t.jsx)(n.Button,{variant:"ghost",className:"absolute top-3 right-3 z-10",size:"icon-sm"}),children:[(0,t.jsx)(i.XIcon,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"SheetDescription",0,function({className:e,...n}){return(0,t.jsx)(r.Dialog.Description,{"data-slot":"sheet-description",className:(0,a.cn)("text-sm text-muted-foreground",e),...n})},"SheetFooter",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sheet-footer",className:(0,a.cn)("flex flex-col-reverse gap-2 border-t bg-muted/50 px-4 sm:px-6 py-4 sm:flex-row sm:justify-end",e),...r})},"SheetHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,a.cn)("flex flex-col gap-1 border-b px-4 sm:px-6 py-5",e),...r})},"SheetTitle",0,function({className:e,...n}){return(0,t.jsx)(r.Dialog.Title,{"data-slot":"sheet-title",className:(0,a.cn)("font-heading text-lg leading-tight font-semibold",e),...n})},"SheetTrigger",0,function({...e}){return(0,t.jsx)(r.Dialog.Trigger,{"data-slot":"sheet-trigger",...e})}])},108281,e=>{"use strict";let t=(0,e.i(406963).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,t],108281)},313101,e=>{"use strict";let t=(0,e.i(406963).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",0,t],313101)},745925,e=>{"use strict";let t=(0,e.i(406963).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);e.s(["Square",0,t],745925)},980630,e=>{"use strict";let t="browser-notification-enabled",r="browser-notification-events",a=["completed","failed"],n={completed:"Task Completed",failed:"Task Failed"};function i(){return"Notification"in window}function s(){return"true"===localStorage.getItem(t)}function o(){try{let e=localStorage.getItem(r);if(e)return JSON.parse(e)}catch{}return[...a]}async function l(){return!!i()&&("granted"===Notification.permission||"denied"!==Notification.permission&&"granted"===await Notification.requestPermission())}e.s(["NOTIFICATION_EVENTS",0,a,"NOTIFICATION_EVENT_LABELS",0,n,"getNotificationEnabled",0,s,"getNotificationEvents",0,o,"isNotificationSupported",0,i,"requestNotificationPermission",0,l,"sendTaskNotification",0,function(e,t,r){if(!i()||"granted"!==Notification.permission||!s()||!o().includes(e))return;let a=n[e]??`Task ${e}`;new Notification(t?`${t} — ${a}`:a,{body:r??"",icon:"/alook.svg"})},"setNotificationEnabled",0,function(e){localStorage.setItem(t,String(e))},"setNotificationEvents",0,function(e){localStorage.setItem(r,JSON.stringify(e))}])},875494,685835,e=>{"use strict";var t=e.i(368075),r=e.i(298699),a=e.i(222862),n=e.i(355578),i=e.i(500324),s=e.i(980630);let o="inbox-filter-types",l=["user_dm_message","calendar_event","email_notification"],u=["user_dm_message"],c=["user_dm_message"];function d(){try{let e=localStorage.getItem(o);if(!e)return u;let t=JSON.parse(e).filter(e=>l.includes(e));if(0===t.length)return u;for(let e of c)t.includes(e)||t.unshift(e);return t}catch{return u}}e.s(["INBOX_FILTER_LABELS",0,{user_dm_message:"DM",calendar_event:"Calendar",email_notification:"Email"},"INBOX_FILTER_TYPES",0,l,"MANDATORY_INBOX_TYPES",0,c,"getInboxFilterTypes",0,d,"setInboxFilterTypes",0,function(e){let t=[...e];for(let e of c)t.includes(e)||t.unshift(e);localStorage.setItem(o,JSON.stringify(t))}],685835);let f=(0,r.createContext)(null),h={count:0,notificationToken:0,refresh:()=>{},decrement:()=>{}};e.s(["InboxCountProvider",0,function({children:e}){let{workspaceId:o}=(0,i.useWorkspace)(),{subscribeWs:l,agents:u}=(0,n.useAgentContext)(),[c,h]=(0,r.useState)(0),[g,m]=(0,r.useState)(0),p=(0,r.useRef)(null),v=(0,r.useRef)(null),b=(0,r.useRef)(u);(0,r.useEffect)(()=>{b.current=u});let y=(0,r.useCallback)(()=>{let e=d();(0,a.getInboxCount)(o,{types:e}).then(e=>{let t=p.current;if(p.current=e.count,h(e.count),null!==t&&e.count>t){m(e=>e+1);let e=v.current?b.current.find(e=>e.id===v.current):void 0;(0,s.sendTaskNotification)("completed",e?.name)}v.current=null}).catch(()=>{})},[o]),x=(0,r.useCallback)(()=>{h(e=>{let t=Math.max(0,e-1);return p.current=t,t})},[]);return(0,r.useEffect)(()=>{y()},[y]),(0,r.useEffect)(()=>l(e=>{"task.updated"===e.type&&("completed"===e.status||"failed"===e.status)&&(v.current=e.agentId,y())}),[l,y]),(0,r.useEffect)(()=>{let e=setInterval(y,6e4);return()=>clearInterval(e)},[y]),(0,t.jsx)(f.Provider,{value:{count:c,notificationToken:g,refresh:y,decrement:x},children:e})},"useInboxCount",0,function(){return(0,r.useContext)(f)??h}],875494)},265481,e=>{"use strict";let t=(0,e.i(406963).default)("calendar-days",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]);e.s(["CalendarDays",0,t],265481)},251638,e=>{"use strict";let t=(0,e.i(406963).default)("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);e.s(["CircleDot",0,t],251638)},140483,219658,e=>{"use strict";var t=e.i(406963);let r=(0,t.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);e.s(["RotateCw",0,r],140483);var a=e.i(368075),n=e.i(298699),i=e.i(186339),s=e.i(329686);let o=(0,t.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var l=e.i(613349);e.s(["ScrollToBottomButton",0,function({scrollRef:e,threshold:t=100}){let[r,u]=(0,n.useState)(!1),c=(0,n.useCallback)(()=>{let r=e.current;if(!r)return;let a=r.scrollHeight-r.scrollTop-r.clientHeight<t;u(r.scrollHeight>r.clientHeight&&!a)},[e,t]);return(0,n.useEffect)(()=>{let t=e.current;if(!t)return;t.addEventListener("scroll",c,{passive:!0}),c();let r=new ResizeObserver(c);return r.observe(t),()=>{t.removeEventListener("scroll",c),r.disconnect()}},[e,c]),(0,a.jsx)("div",{className:(0,l.cn)("absolute bottom-1 left-1/2 -translate-x-1/2 z-10 transition-all duration-200 ease-out",r?"opacity-100 translate-y-0":"opacity-0 translate-y-2 pointer-events-none"),children:(0,a.jsxs)(s.Tooltip,{children:[(0,a.jsx)(s.TooltipTrigger,{render:(0,a.jsx)(i.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{let t=e.current;t&&t.scrollTo({top:t.scrollHeight,behavior:"smooth"})},className:"rounded-full bg-background/80 backdrop-blur-sm border shadow-sm hover:bg-background"}),children:(0,a.jsx)(o,{})}),(0,a.jsx)(s.TooltipContent,{side:"top",children:"Scroll to bottom"})]})})}],219658)},6131,e=>{"use strict";let t=(0,e.i(406963).default)("mail",[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]);e.s(["Mail",0,t],6131)},814552,e=>{"use strict";let t=(0,e.i(406963).default)("message-square",[["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"}]]);e.s(["MessageSquare",0,t],814552)},983453,e=>{"use strict";let t=(0,e.i(406963).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);e.s(["Calendar",0,t],983453)},541544,e=>{"use strict";var t=e.i(297925);e.s(["Check",()=>t.default])},113354,e=>{"use strict";let t=(0,e.i(406963).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],113354)},89440,e=>{"use strict";let t=(0,e.i(406963).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],89440)},554468,940931,e=>{"use strict";let t=(0,e.i(406963).default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);e.s(["Paperclip",0,t],554468);var r=e.i(368075),a=e.i(298699),n=e.i(635790);let i=`
|
|
2
|
+
html, body {
|
|
3
|
+
overflow: hidden;
|
|
4
|
+
}
|
|
5
|
+
`,s=`
|
|
6
|
+
html, body {
|
|
7
|
+
--sb-thumb: rgba(0,0,0,0.15);
|
|
8
|
+
--sb-hover: rgba(0,0,0,0.3);
|
|
9
|
+
margin: 0;
|
|
10
|
+
padding: 0;
|
|
11
|
+
background: transparent;
|
|
12
|
+
color: #1a1a1a;
|
|
13
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
14
|
+
font-size: 15px;
|
|
15
|
+
line-height: 1.6;
|
|
16
|
+
word-wrap: break-word;
|
|
17
|
+
overflow-wrap: break-word;
|
|
18
|
+
overflow: hidden;
|
|
19
|
+
}
|
|
20
|
+
a { color: inherit; }
|
|
21
|
+
img { max-width: 100%; height: auto; }
|
|
22
|
+
`,o=`
|
|
23
|
+
html, body {
|
|
24
|
+
--sb-thumb: rgba(255,255,255,0.1);
|
|
25
|
+
--sb-hover: rgba(255,255,255,0.25);
|
|
26
|
+
margin: 0;
|
|
27
|
+
padding: 0;
|
|
28
|
+
background: transparent;
|
|
29
|
+
color: #e8e5e0;
|
|
30
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
31
|
+
font-size: 15px;
|
|
32
|
+
line-height: 1.6;
|
|
33
|
+
word-wrap: break-word;
|
|
34
|
+
overflow-wrap: break-word;
|
|
35
|
+
overflow: hidden;
|
|
36
|
+
color-scheme: dark;
|
|
37
|
+
}
|
|
38
|
+
a { color: inherit; }
|
|
39
|
+
img { max-width: 100%; height: auto; }
|
|
40
|
+
/* Force dark-friendly defaults on common email patterns */
|
|
41
|
+
body, div, td, th, p, span, li {
|
|
42
|
+
color: #e8e5e0 !important;
|
|
43
|
+
}
|
|
44
|
+
table, tr, td, th, div, section, article, header, footer, main {
|
|
45
|
+
background-color: transparent !important;
|
|
46
|
+
border-color: rgba(255, 255, 255, 0.1) !important;
|
|
47
|
+
}
|
|
48
|
+
/* Preserve image backgrounds (logos, etc) */
|
|
49
|
+
img { background-color: transparent !important; }
|
|
50
|
+
h1, h2, h3, h4, h5, h6 {
|
|
51
|
+
color: #f0ede8 !important;
|
|
52
|
+
}
|
|
53
|
+
a { color: #93b5ff !important; }
|
|
54
|
+
`;e.s(["EmailBodyFrame",0,function({html:e,className:t}){let l=(0,a.useRef)(null),{resolvedTheme:u}=(0,n.useTheme)(),[c,d]=(0,a.useState)(200),f="dark"===u;return(0,a.useEffect)(()=>{let t=l.current;if(!t)return;let r=null;t.srcdoc=`<!DOCTYPE html>
|
|
55
|
+
<html>
|
|
56
|
+
<head>
|
|
57
|
+
<meta charset="utf-8">
|
|
58
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
59
|
+
<meta name="color-scheme" content="${f?"dark":"light"}">
|
|
60
|
+
<style>${i}${f?o:s}</style>
|
|
61
|
+
</head>
|
|
62
|
+
<body>${e}</body>
|
|
63
|
+
</html>`;let a=()=>{let e=t.contentDocument;if(!e)return;let a=()=>{let t=e.documentElement.scrollHeight;t>0&&d(t)};a(),(r=new ResizeObserver(a)).observe(e.documentElement)};return t.addEventListener("load",a),()=>{t.removeEventListener("load",a),r?.disconnect()}},[e,f]),(0,r.jsx)("iframe",{ref:l,sandbox:"allow-same-origin",className:t,style:{width:"100%",height:`${c}px`,border:"none",display:"block"},title:"Email content"})}],940931)}]);
|