@alook/app 0.0.107 → 0.0.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
- package/bundled/web/.open-next/assets/BUILD_ID +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0-cq0qfayk62j.js +63 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0fdb6ux5h_md8.js → 032abedppun95.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{0kdkur96-.nfu.js → 0jf7729mi60rk.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0q.6r1w8fuz_c.css +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0y4~yxd1iyiue.js +3 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0t904i3tiot_h.js → 0~tcqxgka2xol.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{0uu2lp4s8i4ks.js → 12bd-kqbplx9m.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{07m1ihu8g4f_s.js → 1712ppta_sub~.js} +2 -2
- package/bundled/web/.open-next/cache/{_wF0lP4hezd6WDjEY4ues → ZoH0qYtBG9o2M-yTRK3ab}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{_wF0lP4hezd6WDjEY4ues → ZoH0qYtBG9o2M-yTRK3ab}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{_wF0lP4hezd6WDjEY4ues → ZoH0qYtBG9o2M-yTRK3ab}/device.cache +1 -1
- package/bundled/web/.open-next/cache/{_wF0lP4hezd6WDjEY4ues → ZoH0qYtBG9o2M-yTRK3ab}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{_wF0lP4hezd6WDjEY4ues → ZoH0qYtBG9o2M-yTRK3ab}/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 +5 -5
- 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/app-path-routes-manifest.json +1 -0
- 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/routes-manifest.json +8 -0
- 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/agent-links/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agent-links/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/access/[userId]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/access/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/active-tasks/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/activity/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/chat-init/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/conversation/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/conversations/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/email-accounts/[accountId]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/email-accounts/[accountId]/sync/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/email-accounts/[accountId]/test/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/email-accounts/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/meetings/[meetingId]/approve/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/meetings/[meetingId]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/meetings/[meetingId]/stop/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/meetings/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/pin/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/skills/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/[whitelistId]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/workspace/browse/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/active-task-counts/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/active-tasks/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/pins/reorder/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/pins/route.js +2 -2
- 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 +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/sidebar/reorder/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/artifacts/[id]/content/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/artifacts/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/artifacts/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/artifacts/upload/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/reorder/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/channels/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/config/min-version/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/config/model-options/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/active-task/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/[messageId]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/init/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/messages/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/check-fresh/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/deregister/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/heartbeat/route.js +2 -2
- 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/skills/sync/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]/progress/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]/status/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/daemon/workspace/report/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/attachment/[index]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/body/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/raw/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/[id]/thread/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/send/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/upload/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/flags/[messageId]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/flags/count/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/flags/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/inbox/count/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/inbox/read/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/inbox/read-all/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/inbox/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/invite/[token]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/comments/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/machine-tokens/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/machine-tokens/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/me/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/meeting/callback/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/members/me/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/[runtimeId]/rescan/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/[runtimeId]/update/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/machine/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/runtimes/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/check-handles/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/check-name/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/messages/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/retry/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/traces/[traceId]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/traces/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/invites/[inviteId]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/invites/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/members/[memberId]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/members/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/overview/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/route.js +2 -2
- 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/sitemap.xml/route.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/json/route.js +9 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/json/route_client-reference-manifest.js +3 -0
- 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/app-paths-manifest.json +1 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0-857yf._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0-f7f94._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0-x_e2-._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0-y0x05._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.i~n9k._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__00-t~84._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__01m8-42._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__027birg._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__042daks._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__04d5vn8._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__04ga0fm._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__04lf9dm._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__05.i~p4._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__05cpvpx._.js +18 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__05j4uuj._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__06-~y~n._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__06h.0.p._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__06jx2r6._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__07_2txj._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__07kynzq._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__09c2eii._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__09p6viv._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0afyujp._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ai~o9t._.js +85 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0blgkro._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0bm22_4._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0d6ebrz._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0e50pyj._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0f1ifkk._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0foyyii._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0hfok0d._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0i2~~cu._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ibt4_b._.js +85 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ii4sxa._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0l7bqz8._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0lc6d3p._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ltc6gj._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0oui7hy._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ov0u8s._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0pafdaa._.js +31 -15
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0pld4w5._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0q.1vjc._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0q7ub2s._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0q_9ucm._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0rum9mg._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0s0x1gw._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0sef7j.._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0te6cra._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0tgnaho._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0u_.xg8._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0umjqi0._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0v6cx19._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0vry3o4._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0w1jro_._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0w8pipz._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0w~qukv._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ycrc-4._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0yslih5._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0z1srcf._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0zp3bvl._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__10ygwwj._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__11~a0kb._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1254c58._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__13bx1-9._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__13cfxr-._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__13l5e82._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +74 -74
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r0h9so._.js +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_web__next-internal_server_app_templates_[id]_json_route_actions_0b0.eep.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{0b5f_next_dist_esm_build_templates_app-route_08rz-qa.js → src_web_src_lib_templates_index_ts_11-ty8l._.js} +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0.zvpt1._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__13_rzu8._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +74 -74
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_03pr.j2._.js → _0amp3a1._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0llmkdo._.js +65 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_109tnuh._.js → _0orn3gz._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_12gr6-r._.js → _0viys_q._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0zbzypo._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_agents_[id]_layout_tsx_0juu2um._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_home_page_tsx_0lkx78f._.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 +121 -105
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +858 -1980
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +5 -5
- package/dist/cli/index.js +95 -2
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/05rvi4uh8778q.js +0 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/0qyg8fp44pjef.css +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/18058zalgswdp.js +0 -63
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0-vzyo8._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0-y1g0.._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.1vmoe._.js +0 -85
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.dfvh3._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.pstc1._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__00_7~3~._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__00f946j._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__00gpm8y._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__01e67yh._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__01z_y19._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__02np6j1._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__037rgtw._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__05d~fq2._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__065un1t._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__077rvkk._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__08.dwne._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__081v-vn._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__08cz5i-._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__096oel-._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__09d-0v~._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__09s1i~7._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0_1pk~d._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0cnqzn4._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0dlt9bt._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0dpmc74._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0dvpt~y._.js +0 -18
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0ezasi-._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0g-xxhj._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0hd.yda._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0hgh92o._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0i5dgp9._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0inam0n._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0k3bvwx._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0kj5lg3._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0kwlvx0._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0m9332l._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0niqi98._.js +0 -85
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0nooc_b._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0o_~d1v._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0q6awek._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0rf4yis._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0rkdssk._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0sj8dk9._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0t74od3._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0tn3f9a._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0v-p92-._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0v.0_p3._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0vtwgq9._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0w2.frb._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0wfvng_._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0y0yodd._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0y79_77._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0z-c1gu._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0z_em0b._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0zjmkhv._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0zx18d8._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0zx75nw._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0~qneth._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__10i0.8d._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__11ub2ix._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__12nfiuw._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__13_p2cf._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__13c7pjf._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__13p_aap._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0tlzps3._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__11ik~gq._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_08n-_76._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0oqgv67._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_10lli35._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_13kzmvp._.js +0 -65
- /package/bundled/web/.open-next/assets/_next/static/{_wF0lP4hezd6WDjEY4ues → ZoH0qYtBG9o2M-yTRK3ab}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{_wF0lP4hezd6WDjEY4ues → ZoH0qYtBG9o2M-yTRK3ab}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{_wF0lP4hezd6WDjEY4ues → ZoH0qYtBG9o2M-yTRK3ab}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{_wF0lP4hezd6WDjEY4ues → ZoH0qYtBG9o2M-yTRK3ab}/robots.txt.cache +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
module.exports=[831893,896393,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(752792),f=a.i(506180),g=a.i(626806);let h=["user_dm_message"],i=["user_dm_message"];function j(){return h}a.s(["INBOX_FILTER_LABELS",0,{user_dm_message:"DM",calendar_event:"Calendar",email_notification:"Email"},"INBOX_FILTER_TYPES",0,["user_dm_message","calendar_event","email_notification"],"MANDATORY_INBOX_TYPES",0,i,"getInboxFilterTypes",0,j,"setInboxFilterTypes",0,function(a){let b=[...a];for(let a of i)b.includes(a)||b.unshift(a);localStorage.setItem("inbox-filter-types",JSON.stringify(b))}],896393);let k=(0,c.createContext)(null),l={count:0,notificationToken:0,refresh:()=>{},decrement:()=>{}};a.s(["InboxCountProvider",0,function({children:a}){let{workspaceId:h}=(0,f.useWorkspace)(),{subscribeWs:i,agents:l}=(0,e.useAgentContext)(),[m,n]=(0,c.useState)(0),[o,p]=(0,c.useState)(0),q=(0,c.useRef)(null),r=(0,c.useRef)(null),s=(0,c.useRef)(l);(0,c.useEffect)(()=>{s.current=l});let t=(0,c.useCallback)(()=>{let a=j();(0,d.getInboxCount)(h,{types:a}).then(a=>{let b=q.current;if(q.current=a.count,n(a.count),null!==b&&a.count>b){p(a=>a+1);let a=r.current?s.current.find(a=>a.id===r.current):void 0;(0,g.sendTaskNotification)("completed",a?.name)}r.current=null}).catch(()=>{})},[h]),u=(0,c.useCallback)(()=>{n(a=>{let b=Math.max(0,a-1);return q.current=b,b})},[]);return(0,c.useEffect)(()=>{t()},[t]),(0,c.useEffect)(()=>i(a=>{"task.updated"===a.type&&("completed"===a.status||"failed"===a.status)&&(r.current=a.agentId,t())}),[i,t]),(0,c.useEffect)(()=>{let a=setInterval(t,6e4);return()=>clearInterval(a)},[t]),(0,b.jsx)(k.Provider,{value:{count:m,notificationToken:o,refresh:t,decrement:u},children:a})},"useInboxCount",0,function(){return(0,c.useContext)(k)??l}],831893)},70813,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(506180);let f=(0,c.createContext)(null);a.s(["FlagCountProvider",0,function({children:a}){let{workspaceId:g}=(0,e.useWorkspace)(),[h,i]=(0,c.useState)(0),j=(0,c.useCallback)(()=>{(0,d.getFlaggedCount)(g).then(a=>i(a.count)).catch(()=>{})},[g]),k=(0,c.useCallback)(()=>{i(a=>a+1)},[]),l=(0,c.useCallback)(()=>{i(a=>Math.max(0,a-1))},[]);return(0,c.useEffect)(()=>{j()},[j]),(0,b.jsx)(f.Provider,{value:{count:h,refresh:j,increment:k,decrement:l},children:a})},"useFlagCount",0,function(){let a=(0,c.useContext)(f);if(!a)throw Error("useFlagCount must be used within FlagCountProvider");return a}])},781418,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(549931),e=a.i(584126),f=a.i(921584);a.i(735132);var g=a.i(253260),h=a.i(325848),i=a.i(191525),j=a.i(75118);a.s(["AgentPreviewCard",0,function({agent:a,isOnline:k,activeTaskCount:l,variant:m="default",isHovered:n}){let[o,p]=(0,c.useState)(!1),q=a.email_handle?`${a.email_handle}@alook.ai`:null,r=(0,c.useCallback)(async()=>{if(q)try{await navigator.clipboard.writeText(q),p(!0),f.toast.success("Email copied to clipboard"),setTimeout(()=>p(!1),2e3)}catch{f.toast.error("Failed to copy email")}},[q]);if("compact"===m){let c;return(0,b.jsxs)("div",{className:"flex items-center gap-2 p-0",children:[(c=(0,h.parseAvatarUrl)(a.avatar_url))?(0,b.jsx)(g.AnimatedAvatar,{config:c,size:32,className:"shrink-0 rounded-xl",isHovered:n??!1,isWorking:!!k&&(l??0)>0}):(0,b.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:a.name.charAt(0).toUpperCase()}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate max-w-35",children:a.name}),q&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:q})]}),void 0!==k&&(0,b.jsx)("div",{className:"pointer-events-none mt-0.5",children:(0,b.jsx)(i.AgentStatusBadge,{isOnline:k,taskCount:l??0,agentId:a.id})})]})]})}return(0,b.jsxs)("div",{className:"flex flex-col gap-1.5 p-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate",children:a.name}),(0,b.jsx)("span",{className:"flex-1"}),void 0!==k&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground",children:[(0,b.jsx)("span",{className:(0,j.cn)("size-1.5 rounded-full",k?"bg-status-online":"bg-status-offline")}),k?(l??0)>0?"Working":null:"Offline"]})]}),q&&(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:q}),(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),r()},className:"shrink-0 p-0.5 rounded-sm text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",children:o?(0,b.jsx)(d.Check,{className:"size-3 text-green-500"}):(0,b.jsx)(e.Copy,{className:"size-3"})})]}),a.description&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2",children:a.description})]})}])},127026,40924,a=>{"use strict";a.s(["AgentChatView",()=>aF,"getEventIconType",()=>ay],127026);var b=a.i(749314),c=a.i(437199),d=a.i(131675),e=a.i(207058),f=a.i(506180),g=a.i(732254),h=a.i(464830),i=a.i(75118),j=a.i(143984),k=a.i(123047),l=a.i(723127),m=a.i(16831);a.i(343563);var n=a.i(347788);function o({value:a}){let d=(0,c.useRef)(a),[e,f]=(0,c.useState)({current:a,previous:null}),[g,h]=(0,c.useState)("idle");return(0,c.useEffect)(()=>{if(a===d.current)return;let b=d.current;d.current=a,f({current:a,previous:b}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{h("animating")})});let c=setTimeout(()=>{h("idle"),f(a=>({...a,previous:null}))},300);return()=>clearTimeout(c)},[a]),(0,b.jsxs)("span",{style:{display:"inline-block",position:"relative",overflow:"hidden",height:"1.2em",lineHeight:"1.2em",verticalAlign:"bottom"},children:[null!==e.previous&&(0,b.jsx)("span",{style:{display:"block",position:"absolute",inset:"0",transition:"animating"===g?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:"animating"===g?"translateY(-100%)":"translateY(0)",opacity:+("animating"!==g)},children:e.previous}),(0,b.jsx)("span",{style:{display:"block",transition:"animating"===g?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:null!==e.previous&&"animating"!==g?"translateY(100%)":"translateY(0)",opacity:+(null===e.previous||"animating"===g)},children:e.current})]})}function p({task:a,messages:d,connectionLost:e,onRetry:f,thinkingCountHint:g,onExpandThinking:q,thinkingLoading:r}){let[s,t]=(0,c.useState)(!1),u=(0,c.useMemo)(()=>(function(a){let b=[];for(let c of a){let a=c.id||`seq-${c.seq}`;"text"===c.type?b.push({kind:"text",id:a,content:c.content}):"error"===c.type&&b.push({kind:"error",id:a,content:c.content||c.output})}return b})(d),[d]),v="completed"!==a.status&&"failed"!==a.status&&"cancelled"!==a.status&&"superseded"!==a.status,w=u.filter(a=>"text"===a.kind),x=u.filter(a=>"error"===a.kind),y=w.length>0?w[w.length-1]:null,z=(0,c.useRef)(null),A=(0,c.useRef)(!1);(0,c.useEffect)(()=>{v&&z.current&&(z.current.scrollTop=z.current.scrollHeight)},[w.length,v]);let B=v?w:w.slice(0,-1),C=!v&&null!==y,D=B.length>0||g&&g>0,E=B.length>0?B.length:g??0;return(0,b.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[!q&&(0,b.jsx)("div",{className:"flex items-center gap-2",children:"running"===a.status?(0,b.jsxs)(h.Badge,{variant:"secondary",className:"gap-1.5 relative overflow-hidden",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),"Working",(0,b.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):v?(0,b.jsxs)(h.Badge,{variant:"secondary",className:"relative overflow-hidden",children:[a.status,(0,b.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):(0,b.jsx)(h.Badge,{variant:"secondary",children:a.status})}),D&&(0,b.jsxs)("details",{className:"group/midtext pl-1",open:!C&&!q||void 0,onToggle:a=>{a.currentTarget.open&&!A.current&&q&&(A.current=!0,q())},children:[(0,b.jsxs)("summary",{className:(0,i.cn)("flex items-center gap-1.5 py-1 cursor-pointer select-none","text-xs text-muted-foreground transition-colors duration-150","hover:text-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,b.jsx)(j.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/midtext:rotate-90"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(o,{value:E})," thinking"]})]}),(0,b.jsxs)("div",{ref:z,className:"mt-1 pl-1",children:[r&&0===B.length&&(0,b.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)(m.Loader2,{className:"size-3 animate-spin"}),(0,b.jsx)("span",{children:"Loading..."})]}),B.map(a=>(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 text-sm text-muted-foreground",children:(0,b.jsx)(n.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:a.content})},a.id))]})]}),C&&!q&&(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,b.jsx)(n.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:y.content})}),x.length>0&&(0,b.jsx)("div",{className:"space-y-1 mt-1",children:x.map(a=>(0,b.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,b.jsx)(k.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,b.jsx)("span",{className:"wrap-anywhere",children:a.content})]},a.id))}),"failed"===a.status&&a.error&&(0,b.jsxs)("div",{className:"flex items-start gap-2 mt-2 max-w-full overflow-hidden",children:[(0,b.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,b.jsx)(k.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,b.jsx)("span",{className:"wrap-anywhere",children:a.error})]}),f&&(0,b.jsxs)("button",{type:"button",onClick:async()=>{t(!0);try{await f()}finally{t(!1)}},disabled:s,className:"shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[s?(0,b.jsx)(m.Loader2,{className:"size-3 animate-spin"}):(0,b.jsx)(l.RotateCw,{className:"size-3"}),"Retry"]})]}),e&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]})}var q=a.i(588339),r=a.i(562706),s=a.i(752792),t=a.i(831893),u=a.i(70813),v=a.i(452906),w=a.i(921584),x=a.i(25668),y=a.i(525132),z=a.i(540858),A=a.i(647651);let B=(0,A.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"}]]),C=(0,A.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 D=a.i(510698),E=a.i(606896);let F=(0,A.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 G=a.i(546257),H=a.i(552012),I=a.i(484573),J=a.i(518828);function K({skill:a,isSelected:c,onSelect:d}){return(0,b.jsxs)("button",{type:"button","data-slash-item":!0,className:(0,i.cn)("flex w-full flex-col gap-0.5 px-3 py-1.5 text-left text-sm transition-colors",c?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:b=>{b.preventDefault(),d(a)},children:[(0,b.jsxs)("span",{className:"flex w-full items-center gap-2",children:[(0,b.jsxs)("span",{className:"min-w-0 flex-1 truncate font-medium",children:["/",a.name]}),a.isGlobal&&(0,b.jsx)("span",{className:"shrink-0 rounded px-1 py-0.5 text-[10px] font-medium bg-muted text-muted-foreground",children:"Global"})]}),a.description&&(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:a.description.slice(0,80)})]})}function L({isOpen:a,skills:d,selectedIndex:e,onSelect:f,anchorPos:g}){let h=(0,c.useRef)(null);if((0,c.useEffect)(()=>{if(!h.current)return;let a=h.current.querySelectorAll("[data-slash-item]")[e];a?.scrollIntoView({block:"nearest"})},[e]),!a||0===d.length)return null;let i=g.left,j=Math.min(g.left,i);return(0,b.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:g.top-4,left:j,transform:"translateY(-100%)"},children:(0,b.jsx)("div",{ref:h,className:"max-h-60 overflow-y-auto py-1 thin-scrollbar",children:d.map((a,c)=>(0,b.jsx)(K,{skill:a,isSelected:c===e,onSelect:f},a.name))})})}var M=a.i(623789),N=a.i(892236),O=a.i(807820),P=a.i(717132);function Q(a,b){if(!b)return a;let c=b.toLowerCase(),d=[],e=[];for(let b of a){let a=b.name.toLowerCase();a.startsWith(c)?d.push(b):a.includes(c)&&e.push(b)}return[...d,...e]}var R=a.i(388126);function S(a){return a.replaceAll("<","<").replaceAll(">",">").replaceAll("&","&")}let T={items:[],selectedIndex:0,command:null,rect:null};function U({state:a}){let e=(0,c.useRef)(null),{items:f,selectedIndex:g,command:h,rect:j}=a;if((0,c.useEffect)(()=>{if(!e.current)return;let a=e.current.children[g];a?.scrollIntoView({block:"nearest"})},[g]),!j||0===f.length||!h)return null;let k=j.left,l=Math.min(j.left,k);return(0,d.createPortal)((0,b.jsx)("div",{className:"fixed z-100 w-64 rounded-lg border border-border bg-popover text-popover-foreground shadow-md",style:{top:j.top-4,left:l,transform:"translateY(-100%)"},children:(0,b.jsx)("div",{ref:e,className:"max-h-50 overflow-y-auto py-1 thin-scrollbar",children:f.map((a,c)=>(0,b.jsxs)("button",{type:"button",className:(0,i.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",c===g?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:b=>{b.preventDefault(),h({id:a.id,label:a.name})},children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.name}),a.email_handle&&(0,b.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[a.email_handle,"@alook.ai"]})]},a.id))})}),document.body)}let V=(0,c.forwardRef)(function({value:a,onChange:d,onEditorState:e,onSend:f,placeholder:g,disabled:h,onMultiLineChange:i,onFiles:j,agents:k,agentLinks:l,currentAgentId:m,slashIsOpen:n,onSlashKeyDown:o},p){let[q,r]=(0,c.useState)(T),s=(0,c.useRef)(q);(0,c.useEffect)(()=>{s.current=q},[q]);let t=(0,c.useRef)(k),u=(0,c.useRef)(l),v=(0,c.useRef)(m),w=(0,c.useRef)(f),x=(0,c.useRef)(e),y=(0,c.useRef)(d),z=(0,c.useRef)(j),A=(0,c.useRef)(n),B=(0,c.useRef)(o);(0,c.useEffect)(()=>{t.current=k},[k]),(0,c.useEffect)(()=>{u.current=l},[l]),(0,c.useEffect)(()=>{v.current=m},[m]),(0,c.useEffect)(()=>{w.current=f},[f]),(0,c.useEffect)(()=>{x.current=e},[e]),(0,c.useEffect)(()=>{y.current=d},[d]),(0,c.useEffect)(()=>{z.current=j},[j]),(0,c.useEffect)(()=>{A.current=n},[n]),(0,c.useEffect)(()=>{B.current=o},[o]);let C=a=>{x.current(a.getText(),a.state.selection.from-1)},[D]=(0,c.useState)(()=>R.default.extend({markdownName:"mention",renderMarkdown:a=>`@${a.attrs.label??a.attrs.id}`}).configure({HTMLAttributes:{class:"mention-highlight"},renderText:({node:a})=>`@${a.attrs.label??a.attrs.id}`,suggestion:{char:"@",items:({query:a})=>(function(a,b,c,d,e=20){let f=function(a,b){let c=new Set;for(let d of a)d.source_agent_id===b&&c.add(d.target_agent_id),d.target_agent_id===b&&c.add(d.source_agent_id);return c}(b,c),g=[],h=[];for(let b of a)f.has(b.id)?g.push(b):h.push(b);return[...Q(g,d),...Q(h,d)].slice(0,e)})(t.current,u.current,v.current,a),render:()=>({onStart:a=>{r({items:a.items??[],selectedIndex:0,command:a.command,rect:a.clientRect?.()??null})},onUpdate:a=>{r(b=>({items:a.items??[],selectedIndex:b.selectedIndex<(a.items?.length??0)?b.selectedIndex:0,command:a.command,rect:a.clientRect?.()??null}))},onKeyDown:({event:a})=>{if(a.isComposing)return!1;let b=s.current;if(0===b.items.length)return!1;if("ArrowDown"===a.key)return a.preventDefault(),r(a=>({...a,selectedIndex:(a.selectedIndex+1)%a.items.length})),!0;if("ArrowUp"===a.key)return a.preventDefault(),r(a=>({...a,selectedIndex:(a.selectedIndex-1+a.items.length)%a.items.length})),!0;if("Enter"===a.key){a.preventDefault();let c=b.items[b.selectedIndex];return c&&b.command&&b.command({id:c.id,label:c.name}),r(T),!0}return"Escape"===a.key&&(r(T),!0)},onExit:()=>r(T)})}})),E=(0,M.useEditor)({immediatelyRender:!1,content:a||void 0,contentType:"markdown",editable:!h,extensions:[N.default.configure({heading:!1,blockquote:!1,codeBlock:!1,horizontalRule:!1,bold:!1,italic:!1,strike:!1,code:!1}),O.default.configure({placeholder:g??""}),P.Markdown,D],editorProps:{attributes:{class:"outline-none",enterkeyhint:"send"},handleKeyDown:(a,b)=>(!(s.current.items.length>0)||null===s.current.command)&&(!!(A.current&&B.current({key:b.key,isComposing:b.isComposing,preventDefault:()=>b.preventDefault()}))||!("Enter"!==b.key||b.shiftKey||b.isComposing||E?.isActive("bulletList")||E?.isActive("orderedList")||E?.isActive("listItem"))&&!A.current&&(b.preventDefault(),w.current(),!0)),handlePaste:(a,b)=>{let c=b.clipboardData?.items;if(!c)return!1;let d=[];for(let a=0;a<c.length;a++)if("file"===c[a].kind){let b=c[a].getAsFile();b&&d.push(b)}return 0!==d.length&&(b.preventDefault(),z.current?.(d),!0)},handleDrop:(a,b)=>{let c=b.dataTransfer?.files;return!!c&&0!==c.length&&(b.preventDefault(),z.current?.(Array.from(c)),!0)}},onUpdate:({editor:a})=>{y.current(S(a.getMarkdown())),C(a)},onSelectionUpdate:({editor:a})=>{C(a)}});(0,c.useEffect)(()=>{E?.setEditable(!h)},[E,h]),(0,c.useEffect)(()=>{if(!E)return;let b=(a||"").trim();b!==S(E.getMarkdown()||"").trim()&&(b?E.commands.setContent(a||"",{emitUpdate:!1,contentType:"markdown"}):E.commands.clearContent(),x.current(E.getText(),E.state.selection.from-1))},[a,E]);let F=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!E||!i)return;let a=F.current?.querySelector(".ProseMirror");if(!a)return;let b=()=>i(a.scrollHeight>32);b();let c=new ResizeObserver(b);return c.observe(a),()=>c.disconnect()},[E,i]),(0,c.useImperativeHandle)(p,()=>({focus:()=>E?.commands.focus(),clear:()=>E?.commands.clearContent(),isEmpty:()=>E?.isEmpty??!0,coordsAtTextIndex:a=>{if(!E)return null;try{let b=E.view.coordsAtPos(a+1);return{top:b.top,left:b.left}}catch{return null}}}),[E]),(0,b.jsxs)("div",{ref:F,className:"chat-composer relative",children:[(0,b.jsx)(M.EditorContent,{editor:E,className:"max-h-44 overflow-y-auto thin-scrollbar pr-2 text-base chat-input-line-height"}),(0,b.jsx)(U,{state:q})]})});var W=a.i(207461),X=a.i(596174),Y=a.i(7455),Z=a.i(390759),$=a.i(135510);function _({open:a,onOpenChange:d,emailId:e,workspaceId:f}){let[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(null),[l,n]=(0,c.useState)(!1),{width:o,onPointerDown:p,onPointerMove:r,onPointerUp:s}=(0,X.useSheetResize)({defaultWidth:500,minWidth:320,maxWidthRatio:.8}),t=(0,c.useRef)(d);(0,c.useEffect)(()=>{t.current=d}),(0,c.useEffect)(()=>{a&&e&&(n(!0),i(null),k(null),Promise.all([(0,q.getEmail)(e,f),(0,q.getEmailBody)(e,f)]).then(([a,b])=>{i(a),k(b)}).catch(()=>{w.toast.error("Email not found"),t.current(!1)}).finally(()=>n(!1)))},[a,e,f]);let u=a=>{d(a),a||setTimeout(()=>{i(null),k(null)},300)};return(0,b.jsx)(Y.Sheet,{open:a,onOpenChange:u,children:(0,b.jsxs)(Y.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${o}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,b.jsx)(X.SheetResizeHandle,{onPointerDown:p,onPointerMove:r,onPointerUp:s}),(0,b.jsx)(Y.SheetHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(E.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsx)(Y.SheetTitle,{className:"truncate flex-1",children:l?"Loading...":h?.subject||"Email"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>u(!1),children:(0,b.jsx)(J.X,{className:"h-4 w-4"})})]})}),(0,b.jsx)(Y.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:l?(0,b.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,b.jsx)(m.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):h?(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"text-sm space-y-1 border-b pb-3",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"From:"}),(0,b.jsx)("span",{className:"truncate",children:h.from_email})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"To:"}),(0,b.jsx)("span",{className:"truncate",children:h.to_email})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Date:"}),(0,b.jsx)("span",{children:new Date(h.created_at).toLocaleString()})]})]}),j?.isHtml?(0,b.jsx)($.EmailBodyFrame,{html:j.content,className:"max-w-full"}):(0,b.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:j?.content}),h.attachments&&h.attachments.length>0&&(0,b.jsxs)("div",{className:"border-t pt-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mb-2 text-xs text-muted-foreground",children:[(0,b.jsx)(G.Paperclip,{className:"size-3"}),h.attachments.length," attachment",h.attachments.length>1?"s":""]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.attachments.map((a,c)=>(0,b.jsxs)("a",{href:`/api/email/${h.id}/attachment/${c}?workspace_id=${f}`,target:"_blank",rel:"noopener noreferrer",download:a.filename,className:"flex items-center gap-1.5 rounded-md border border-border/50 bg-muted/50 px-2.5 py-1.5 text-xs hover:bg-muted transition-colors cursor-pointer",children:[(0,b.jsx)(Z.File,{className:"size-3 text-muted-foreground shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-45",children:a.filename}),(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:a.size<1024?`${a.size} B`:a.size<1048576?`${(a.size/1024).toFixed(1)} KB`:`${(a.size/1048576).toFixed(1)} MB`})]},a.key))})]})]}):null})]})})}var aa=a.i(276163),ab=a.i(963744),ac=a.i(698824);function ad({bufferedMessages:a,onDelete:d}){let[e,f]=(0,c.useState)(!1),g=a.length;if(0===g)return null;let h=Math.min(g,3);return(0,b.jsx)("div",{className:"relative px-5 pb-1",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl flex justify-center",children:(0,b.jsxs)("div",{className:"relative w-full max-w-lg transition-[height] duration-200 ease-out",style:{height:e?32*g+(g-1)*4:32+(h-1)*6},onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:[a.map((a,c)=>{var f;let j=g-1-c,k=c>=g-h;return(0,b.jsx)("div",{className:"absolute right-0 left-0 transition-all duration-200 ease-out",style:{height:32,zIndex:c+1,bottom:e?36*j:k?6*j:0,transform:e?"scale(1)":`scale(${k?1-.03*j:.91})`,opacity:e?1:k?1-.2*j:0,pointerEvents:e||k?"auto":"none"},children:(0,b.jsxs)("div",{className:"h-full rounded-lg border bg-background/95 backdrop-blur-sm shadow-sm flex items-center gap-2 px-3",children:[(0,b.jsx)("span",{className:"shrink-0 text-[11px] text-primary/60 tabular-nums w-4 text-center",children:c+1}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-[13px] text-muted-foreground leading-snug truncate",children:(f=a.content).length<=80?f:f.slice(0,80).trimEnd()+"…"}),a.attachment_ids&&a.attachment_ids.length>0&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5 shrink-0 text-[11px] text-muted-foreground/50",children:[(0,b.jsx)(G.Paperclip,{className:"size-2.5"}),a.attachment_ids.length]})]}),(0,b.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),d(a.id)},className:(0,i.cn)("shrink-0 rounded-sm p-0.5 transition-all duration-150","text-muted-foreground/30 hover:text-foreground hover:bg-muted",e?"opacity-100":"opacity-0"),tabIndex:e?0:-1,children:(0,b.jsx)(J.X,{className:"size-3"})})]})},a.id)}),!e&&g>h&&(0,b.jsxs)("span",{className:"absolute -top-4 right-1 text-[10px] text-muted-foreground/40 tabular-nums",children:["+",g-h," more"]})]})})})}var ae=a.i(389660);function af(a,b){if(b>=a.length)return!0;let c=a.charCodeAt(b);return(!(c>=48)||!(c<=57))&&(!(c>=65)||!(c<=90))&&(!(c>=97)||!(c<=122))&&95!==c}function ag(a,b){if(!a||0===b.length||!a.includes("@"))return a;let c=b.slice().sort((a,b)=>b.name.length-a.name.length),d=[];for(let b=0;b<a.length;b++){if("@"!==a[b]||!function(a,b){if(0===b)return!0;let c=a.charCodeAt(b-1);return(!(c>=48)||!(c<=57))&&(!(c>=65)||!(c<=90))&&(!(c>=97)||!(c<=122))&&95!==c}(a,b))continue;let e=b+1;for(let f of c){let c=e+f.name.length;if(c>a.length||a.slice(e,c).toLowerCase()!==f.name.toLowerCase())continue;let g=c,h=a.slice(c).match(/^ \([a-zA-Z0-9-]+@alook\.ai\)/);if(h&&(g=c+h[0].length),(h||af(a,c))&&(!h||af(a,g))){if(d.some(a=>b>=a.start&&b<a.end))break;d.push({start:b,end:c,name:f.name,agentId:f.id});break}}}let e=a;for(let a=d.length-1;a>=0;a--){let b=d[a],c=e.slice(b.start,b.end);e=e.slice(0,b.start)+`<mention data-agent-id="${b.agentId}">${c}</mention>`+e.slice(b.end)}return e}let ah={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 ai({taskId:a,thinkingCount:d,workspaceId:e}){let[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{if(!j&&!h){i(!0);try{let b=await (0,q.getTaskMessages)(a,e);g(b)}catch{g([])}finally{i(!1),k(!0)}}},[j,h,a,e]);return(0,b.jsx)(p,{task:ah,messages:f,thinkingCountHint:d,onExpandThinking:l,thinkingLoading:h})}var aj=a.i(560893),ak=a.i(307992);let al=(0,A.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]);a.s(["Flag",0,al],40924);var am=a.i(584126),an=a.i(549931);let ao={mention:["data-agent-id"]},ap=["mention"];function aq({content:a,conversationType:c}){let d=ay(a,c),e="h-4 w-4 mt-0.5 shrink-0";return"issue"===d?(0,b.jsx)(ak.CircleDot,{className:e}):"email"===d?(0,b.jsx)(E.Mail,{className:e}):(0,b.jsx)(aj.Calendar,{className:e})}function ar({attachmentIds:a,artifacts:c,onArtifactClick:d}){let e=a.map(a=>c.find(b=>b.id===a)).filter(a=>!!a);return 0===e.length?null:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:e.map(a=>(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),d(a)},className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80 hover:bg-primary-foreground/20 transition-colors cursor-pointer",children:[(0,b.jsx)(D.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-37.5",children:a.filename})]},a.id))})}function as({pendingFiles:a,messageId:c}){let d=a.get(c);return d&&0!==d.length?(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:d.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80",children:[(0,b.jsx)(D.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-37.5",children:a.name})]},c))}):null}let at={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"},au=(0,c.memo)(function({msg:a,agents:d,artifacts:e,activeTask:f,taskMessages:h,connectionLost:j,isLastMessage:k,thinkingCount:l,targetConvId:m,workspaceId:o,conversationType:q,pendingFilesByMessage:r,onArtifactClick:s,onEmailClick:t,onIssueClick:u,onCalendarEventClick:v,onRetry:x,mentionComponents:z,isFlagged:A,onToggleFlag:B,groupPosition:C="solo"}){let D,E,F,G,H,I,J,{copy:K,copied:L}=function(a=2e3){let[b,d]=(0,c.useState)(!1),e=(0,c.useRef)(void 0),f=(0,c.useCallback)(async b=>{try{return await navigator.clipboard.writeText(b),d(!0),clearTimeout(e.current),e.current=setTimeout(()=>d(!1),a),!0}catch{return!1}},[a]);return(0,c.useEffect)(()=>()=>clearTimeout(e.current),[]),{copy:f,copied:b}}(),M=f&&"assistant"===a.role&&a.task_id===f.id&&a.conversation_id===f.conversation_id&&h.length>0,N=M&&f&&["completed","failed","cancelled","superseded"].includes(f.status),O="assistant"===a.role?(0,b.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs","aria-label":L?"Copied":"Copy message",onClick:async b=>{b.stopPropagation(),await K(a.content)?w.toast.success("Copied to clipboard"):w.toast.error("Failed to copy")},className:(0,i.cn)("self-start mb-1",L?"text-green-500 opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:L?(0,b.jsx)(an.Check,{className:"size-3.5"}):(0,b.jsx)(am.Copy,{className:"size-3.5"})}),(0,b.jsx)(y.TooltipContent,{children:L?"Copied":"Copy"})]}),B&&(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs",onClick:()=>B(a.id),className:(0,i.cn)("self-start mb-1",A?"text-primary opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:(0,b.jsx)(al,{className:(0,i.cn)("size-3.5",A&&"fill-current")})}),(0,b.jsx)(y.TooltipContent,{children:A?"Unflag":"Flag"})]})]}):null;return(0,b.jsxs)(c.default.Fragment,{children:[M&&(0,b.jsxs)("div",{className:(0,i.cn)("group/msg",A&&"bg-muted/30 rounded-lg px-2 -mx-2"),...N?{"data-quote-source":!0}:{},children:[(0,b.jsx)(p,{task:f,messages:h,connectionLost:j,onRetry:x}),N&&O]}),"user"===a.role?(D=k&&!!f&&"running"!==f.status&&!["completed","failed","cancelled","superseded"].includes(f.status),E=a.content.match(/^\/(\S+)\s?([\s\S]*)$/),F=E?.[1]??null,G=E?E[2]||"":a.content,(0,b.jsx)("div",{className:"flex justify-end","data-message-id":a.id,...a.task_id?{"data-task-id":a.task_id}:{},children:(0,b.jsxs)("div",{className:(0,i.cn)("max-w-[80%] px-4 py-2 bg-primary text-primary-foreground text-base relative",at[C]),children:[D&&(0,b.jsx)("div",{className:(0,i.cn)("absolute inset-0 animate-pulse pointer-events-none",at[C]),style:{boxShadow:"0 0 0 2px var(--bubble-glow)"}}),F&&(0,b.jsxs)("span",{className:"inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-primary-foreground/15 text-primary-foreground mb-1",children:["/",F]}),G&&(0,b.jsx)("div",{className:"markdown markdown-user",children:(0,b.jsx)(n.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:ao,literalTagContent:ap,components:z,children:ag(G,d)})}),a.attachment_ids&&a.attachment_ids.length>0&&(0,b.jsx)(ar,{attachmentIds:a.attachment_ids,artifacts:e,onArtifactClick:s}),!a.attachment_ids&&(0,b.jsx)(as,{pendingFiles:r,messageId:a.id})]})})):"event"===a.role?(H=a.metadata?.emailId,I=a.metadata?.issueId,J=a.metadata?.calendarEventId,(0,b.jsx)("div",{className:"flex justify-start","data-message-id":a.id,...a.task_id?{"data-task-id":a.task_id}:{},children:(0,b.jsxs)("div",{className:(0,i.cn)("w-full rounded-md border bg-muted/50 text-muted-foreground text-sm px-3 py-2 flex items-start gap-2",(!!H||!!I||!!J)&&"cursor-pointer hover:bg-muted transition-colors"),onClick:H?()=>t(H):I?()=>u(I):J?()=>v(J):void 0,children:[(0,b.jsx)(aq,{content:a.content,conversationType:q}),(0,b.jsx)("span",{className:"min-w-0 wrap-anywhere",children:a.content})]})})):M?null:(0,b.jsxs)("div",{className:(0,i.cn)("group/msg flex flex-col justify-start min-w-0 overflow-x-clip",A&&"bg-muted/30 rounded-lg px-2 -mx-2"),"data-message-id":a.id,"data-quote-source":!0,...a.task_id?{"data-task-id":a.task_id}:{},children:[m&&"assistant"===a.role&&a.task_id&&l>1&&(0,b.jsx)(ai,{taskId:a.task_id,thinkingCount:l-1,workspaceId:o}),(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,b.jsx)(n.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:ao,literalTagContent:ap,components:z,children:ag(a.content,d)})}),O]})]})});var av=a.i(781418),aw=a.i(722393);let ax={mention:function(a){let{children:c,...d}=a,{agents:e}=(0,s.useAgentContext)(),f=d["data-agent-id"]??d.dataAgentId,g=f?e.find(a=>a.id===f):void 0;if(!g&&"string"==typeof c){let a=c.startsWith("@")?c.slice(1):c;g=e.find(b=>b.name.toLowerCase()===a.toLowerCase())}return g?(0,b.jsxs)(aw.Popover,{children:[(0,b.jsx)(aw.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,b.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:c}),(0,b.jsx)(aw.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,b.jsx)(av.AgentPreviewCard,{agent:g})})]}):(0,b.jsx)("span",{className:"mention-highlight",children:c})},p:({children:a,node:c,...d})=>(0,b.jsx)("div",{"data-md-p":"",...d,children:a})};function ay(a,b){if("issue_event"===b)return"issue";if("email_notification"===b)return"email";if("calendar_event"===b)return"calendar";let c=a.toLowerCase();return c.startsWith("issue ")||c.startsWith("issue:")?"issue":c.includes("email")?"email":"calendar"}function az(a){return a.slice().sort((a,b)=>{let c=a.created_at.localeCompare(b.created_at);return 0!==c?c:a.id.localeCompare(b.id)})}function aA(a,b){let c=new Map;for(let b of a)c.set(b.id,b);for(let a of b)c.set(a.id,a);return az([...c.values()])}function aB(a){let b=[],c=[],d=!1;for(let e of a)"message"===e.kind&&"user"===e.data.role?(d=!0,b.push(e)):"message"===e.kind&&"assistant"===e.data.role?(b.push(e),b.push(...c),c=[],d=!1):d&&"artifact"===e.kind?c.push(e):b.push(e);return b.push(...c),b}function aC(a){let b=(0,c.useRef)(a);return(0,c.useEffect)(()=>{b.current=a},[a]),b}function aD({agentName:a}){return(0,b.jsxs)("div",{className:"flex items-center gap-3 py-4 select-none","aria-hidden":!0,children:[(0,b.jsx)("div",{className:"flex-1 border-t border-border/40"}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground/60 whitespace-nowrap",children:[a," took a nap 💤"]}),(0,b.jsx)("div",{className:"flex-1 border-t border-border/40"})]})}function aE({artifact:a,version:c,hasDuplicates:d,onClick:e}){return(0,b.jsxs)("button",{onClick:()=>e(a),className:(0,i.cn)("flex items-center gap-3 w-full max-w-sm rounded-lg border border-border/60 bg-muted/30","px-3.5 py-2.5 text-left transition-colors duration-150","hover:bg-muted/60 hover:border-border"),children:[(0,b.jsx)(D.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("p",{className:"text-sm font-medium truncate",children:[a.filename,d&&(0,b.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",c]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,W.formatSize)(a.size)})]})]})}function aF({agentId:a,targetConvId:h,scrollToTaskId:j,scrollToMessageId:k}){let l,n,o,A=(0,e.useParams)(),K=(0,e.useSearchParams)(),{workspaceId:M,slug:N}=(0,f.useWorkspace)(),{agents:O,agentLinks:P,activeTaskCounts:Q,subscribeWs:R,subscribeReconnect:S}=(0,s.useAgentContext)(),{refresh:T}=(0,t.useInboxCount)(),{activeChannel:U,loading:X,setAgentId:Y}=(0,v.useChannel)(),Z=a??A.id,$=void 0!==j?j:K.get("task"),af=void 0!==k?k:K.get("msg"),ag=void 0!==h?h:K.get("conv"),[ah,ai]=(0,c.useState)(null),[aj,ak]=(0,c.useState)([]),[al,am]=(0,c.useState)(()=>""),[an,ao]=(0,c.useState)(!1),[ap,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(null),[at,av]=(0,c.useState)([]),[ay,aG]=(0,c.useState)(!0),[aH,aI]=(0,c.useState)(!1),[aJ,aK]=(0,c.useState)(!1),[aL,aM]=(0,c.useState)(!1),[aN,aO]=(0,c.useState)([]),[aP,aQ]=(0,c.useState)(!1),[aR,aS]=(0,c.useState)(null),[aT,aU]=(0,c.useState)(null),[aV,aW]=(0,c.useState)(!1),[aX,aY]=(0,c.useState)(null),[aZ,a$]=(0,c.useState)(!1),[a_,a0]=(0,c.useState)(null),[a1,a2]=(0,c.useState)(!1),[a3,a4]=(0,c.useState)(null),[a5,a6]=(0,c.useState)(null),[a7,a8]=(0,c.useState)(!1),[a9,ba]=(0,c.useState)(null),[bb,bc]=(0,c.useState)(null),[bd,be]=(0,c.useState)([]),[bf,bg]=(0,c.useState)([]),[bh,bi]=(0,c.useState)(null),[bj,bk]=(0,c.useState)([]),[bl,bm]=(0,c.useState)(!1),[bn,bo]=(0,c.useState)([]),[bp,bq]=(0,c.useState)({}),[br]=(0,c.useState)(()=>Date.now()),[bs,bt]=(0,c.useState)(()=>new Map),[bu,bv]=(0,c.useState)(()=>null),[bw,bx]=(0,c.useState)(!1),[by,bz]=(0,c.useState)(null),[bA,bB]=(0,c.useState)(new Set),bC=(0,c.useRef)(bA);(0,c.useEffect)(()=>{bC.current=bA});let{increment:bD,decrement:bE,refresh:bF}=(0,u.useFlagCount)(),{writeToCache:bG}=function(a,b){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(a);return(0,c.useEffect)(()=>{if(h.current=a,!a||!b){e(null),g(!1);return}(0,r.openCacheDB)(b);let c=!1;return(0,r.getCachedMessages)(a,b).then(b=>{c||h.current!==a||(b&&b.length>0?(e(b),g(!0)):(e(null),g(!1)))}),()=>{c=!0}},[a,b]),{cachedMessages:d,isFromCache:f,writeToCache:(0,c.useCallback)(async(a,c,d)=>{h.current&&b&&await (0,r.mergeCachedMessages)(h.current,a,c,b,d)},[b])}}(ag??null,M),bH=(0,c.useRef)(bG);(0,c.useEffect)(()=>{bH.current=bG},[bG]),(0,c.useEffect)(()=>{Y(Z)},[Z,Y]);let bI=(0,c.useMemo)(()=>aN.filter(a=>"agent"===a.source),[aN]),{versionMap:bJ,duplicateFilenames:bK}=(0,c.useMemo)(()=>(0,ac.computeArtifactVersions)(bI),[bI]),bL=(0,c.useMemo)(()=>"agent"===aT?bI:"issue"===aT?a5?.artifacts??[]:[],[aT,bI,a5?.artifacts]),{versionMap:bM,duplicateFilenames:bN}=(0,c.useMemo)(()=>(0,ac.computeArtifactVersions)(bL),[bL]),bO=(0,c.useMemo)(()=>(function(a,b,c,d){if(!d||0===c.length){let d=[...a.map(a=>({kind:"message",data:a})),...b.map(a=>({kind:"artifact",data:a})),...c.map(a=>({kind:"nap",data:a}))];return d.sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);if(0!==c)return c;if("nap"===a.kind||"nap"===b.kind){if("nap"===a.kind&&"nap"!==b.kind)return 1;if("nap"!==a.kind&&"nap"===b.kind)return -1}return a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)}),aB(d)}let e=new Set(c.map(a=>a.id.replace(/^nap-/,""))),f=[...c].sort((a,b)=>a.created_at.localeCompare(b.created_at)),g=c=>aB([...a.filter(a=>a.conversation_id===c).map(a=>({kind:"message",data:a})),...b.filter(a=>a.conversation_id===c).map(a=>({kind:"artifact",data:a}))].sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);return 0!==c?c:a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)})),h=[];for(let a of f){let b=a.id.replace(/^nap-/,"");h.push(...g(b)),h.push({kind:"nap",data:a})}h.push(...g(d));let i=new Set([...e,d]),j=a.filter(a=>!i.has(a.conversation_id)),k=b.filter(a=>!i.has(a.conversation_id));if(j.length>0||k.length>0){let a=[...j.map(a=>({kind:"message",data:a})),...k.map(a=>({kind:"artifact",data:a}))];a.sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);return 0!==c?c:a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)});let b=aB(a),c=h.findIndex(a=>"nap"===a.kind);c>=0?h.splice(c,0,...b):h.push(...b)}return h})(aj,bI,bn,ah?.id),[aj,bI,bn,ah?.id]),bP=(0,c.useMemo)(()=>(function(a){let b=Array(a.length).fill(null),c=a=>"user"===a.role||"assistant"===a.role;for(let d=0;d<a.length;d++){let e=a[d];if("message"!==e.kind)continue;let f=e.data;if(!c(f))continue;let g=d>0?a[d-1]:null,h=d<a.length-1?a[d+1]:null,i=g?.kind==="message"&&c(g.data)&&g.data.role===f.role&&(!f.created_at||!g.data.created_at||6e4>Math.abs(new Date(f.created_at).getTime()-new Date(g.data.created_at).getTime())),j=h?.kind==="message"&&c(h.data)&&h.data.role===f.role&&(!f.created_at||!h.data.created_at||6e4>Math.abs(new Date(h.data.created_at).getTime()-new Date(f.created_at).getTime()));i&&j?b[d]="middle":i&&!j?b[d]="last":!i&&j?b[d]="first":b[d]="solo"}return b})(bO),[bO]),bQ=(0,c.useCallback)(a=>{(0,ac.isPreviewable)(a)?(aS(a),aU("agent"),aQ(!0)):window.open((0,ac.getArtifactUrl)(a.id,M,!0),"_blank")},[M]),bR=(0,c.useCallback)(a=>{(0,ac.isPreviewable)(a)?(aS(a),aU("issue"),aQ(!0)):window.open((0,ac.getArtifactUrl)(a.id,M,!0),"_blank")},[M]),bS=(0,c.useRef)(null),bT=(0,c.useRef)(null),bU=(0,c.useRef)(null),bV=(0,c.useRef)(null),bW=(0,c.useRef)(0),bX=(0,c.useRef)(0),bY=(0,c.useRef)(!1),bZ=(0,c.useRef)(!1),b$=(0,c.useRef)(!0),b_=(0,c.useRef)(!1),b0=(0,c.useRef)(null),b1=(0,c.useRef)(null),b2=(0,c.useRef)(0),b3=(0,c.useRef)(void 0),b4=(0,c.useRef)(null),b5=(0,c.useRef)({completedKey:null}),b6=(0,c.useRef)(null),b7=(0,c.useRef)(null),[b8,b9]=(0,c.useState)(""),ca=(0,c.useMemo)(()=>O.filter(a=>a.id!==Z),[O,Z]),[cb,cc]=(0,c.useState)([]),cd=(0,c.useRef)(!1),ce=(0,c.useRef)(!1);(0,c.useEffect)(()=>{cd.current||(cd.current=!0,(0,q.getAgentSkills)(Z,M).then(a=>cc(a.skills)).catch(()=>{}))},[Z,M]);let[cf]=(0,c.useState)(()=>null),cg=function({input:a,caretIndex:b,skills:d,onInputChange:e,initialActiveSkill:f,getAnchorPos:g,onAfterSelect:h}){let[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),[m,n]=(0,c.useState)(0),[o,p]=(0,c.useState)({top:0,left:0}),q=(0,c.useRef)(null),r=(0,c.useMemo)(()=>{if(!i)return[];if(!k)return d;let a=k.toLowerCase(),b=[],c=[];for(let e of d){let d=e.name.toLowerCase();d.startsWith(a)?b.push(e):d.includes(a)&&c.push(e)}return[...b,...c]},[i,k,d]);(0,c.useEffect)(()=>{n(0)},[r.length,k]);let[s,t]=(0,c.useState)(f??null);(0,c.useEffect)(()=>{if(s||null===b)return void j(!1);let c=function(a,b){if(!a.startsWith("/")||0===b)return null;let c=b-1;for(;c>=0&&b-c<=30;){let d=a.charCodeAt(c);if(47===d&&0===c)return{start:0,query:a.slice(1,b)};if(10===d||13===d||32===d)break;c--}return null}(a,b);if(c){q.current=c.start,l(c.query),j(!0);let a=g(c.start);a&&p(a)}else j(!1),q.current=null},[a,b,g,s]);let u=(0,c.useCallback)(a=>{t(a),e(""),j(!1),h?.()},[e,h]),v=(0,c.useCallback)(()=>{t(null)},[]),w=(0,c.useCallback)(a=>!!i&&0!==r.length&&!a.isComposing&&("ArrowDown"===a.key?(a.preventDefault(),n(a=>(a+1)%r.length),!0):"ArrowUp"===a.key?(a.preventDefault(),n(a=>(a-1+r.length)%r.length),!0):"Enter"===a.key||"Tab"===a.key?(a.preventDefault(),u(r[m]),!0):"Escape"===a.key&&(a.preventDefault(),j(!1),!0)),[i,r,m,u]);return{isOpen:i,query:k,selectedIndex:m,anchorPos:o,skills:r,activeSkill:s,handleSlashKeyDown:w,selectSkill:u,clearActiveSkill:v,setActiveSkill:t}}({input:b8,caretIndex:bh,skills:cb,onInputChange:()=>b7.current?.clear(),initialActiveSkill:cf,getAnchorPos:(0,c.useCallback)(a=>b7.current?.coordsAtTextIndex(a)??null,[]),onAfterSelect:(0,c.useCallback)(()=>{requestAnimationFrame(()=>b7.current?.focus())},[])});(0,c.useEffect)(()=>{0===cb.length||!cg.activeSkill||cb.some(a=>a.name===cg.activeSkill.name)||cg.setActiveSkill(null)},[cb]),(0,c.useEffect)(()=>{let a=`chat-draft:${Z}:${ag??"default"}`;al?localStorage.setItem(a,al):localStorage.removeItem(a)},[al,Z,ag]),(0,c.useEffect)(()=>{if(!ce.current)return;let a=`chat-draft-meta:${Z}:${ag??"default"}`,b={};cg.activeSkill&&(b.skill={name:cg.activeSkill.name,description:cg.activeSkill.description}),bu&&(b.quote=bu),b.skill||b.quote?localStorage.setItem(a,JSON.stringify(b)):localStorage.removeItem(a)},[cg.activeSkill,bu,Z,ag]),(0,c.useEffect)(()=>{an||b7.current?.focus()},[an]);let ch=(0,c.useCallback)(()=>{b$.current=!0,setTimeout(()=>{bS.current?.scrollTo({top:bS.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,c.useEffect)(()=>{var a,b;if(!ag&&X)return;let c=(a={workspaceId:M,agentId:Z,targetConvId:ag,scrollToTaskId:$}).targetConvId?`${a.workspaceId}::${a.agentId}::${a.targetConvId}::${a.scrollToTaskId??""}`:null;if(b=b5.current,c&&b.completedKey===c||(b.completedKey=null,0))return;bT.current&&clearInterval(bT.current),bT.current=null,bV.current=null,b4.current=null;let d=!1;aG(!0),bY.current=!1,as(null),av([]),bg([]),bt(new Map),bo([]),bq({}),bk([]),bm(!1),b1.current=null,am(localStorage.getItem(`chat-draft:${Z}:${ag??"default"}`)??"");let e=localStorage.getItem(`chat-draft-meta:${Z}:${ag??"default"}`);if(e)try{let a=JSON.parse(e);bv(a.quote??null),cg.setActiveSkill(a.skill?a.skill:null)}catch{bv(null),cg.setActiveSkill(null)}else bv(null),cg.setActiveSkill(null);async function f(a){let b=await (0,r.getCacheMeta)(a,M);if(b?.newestMessageId){let c=await (0,r.getCachedMessages)(a,M);if(d)return{painted:!1,cacheMeta:b};if(c&&c.length>0)return ak(c),aK(b.hasMore),aG(!1),{painted:!0,cacheMeta:b}}return{painted:!1,cacheMeta:b}}return ce.current=!0,ak([]),async function(){let a=!1;try{let b=null,c=null,e=null;if(ag){b=ag;let e=await f(b);if(d)return;c=e.cacheMeta,a=e.painted}else{let g=await (0,r.getLastOpenConversation)(Z,U,M);if(d)return;if(g?.conversation_id&&g.serverMessageCount>0){let b=await f(g.conversation_id);if(d)return;b.painted&&(a=!0,e=g.conversation_id,c=b.cacheMeta)}try{let g=await (0,q.checkFreshness)({agentId:Z,channel:U},M);if(d)return;if(b=g.conversation_id,e&&b!==e){bY.current=!1,b$.current=!0;let e=await f(b);if(d)return;c=e.cacheMeta,a=e.painted,e.painted||(ak([]),aG(!0))}else if(!e){let e=await f(b);if(d)return;c=e.cacheMeta,a=e.painted}}catch{}}if(b){b4.current=b;let e=await (0,q.conversationInit)(b,M,{newestMessageId:c?.newestMessageId??void 0,messageCount:c?.serverMessageCount||void 0});if(d)return;if(ai(e.conversation),bm(e.has_more_conversations),!e.cache_valid&&e.messages){let c=b$.current;ak(a=>aA(a,e.messages)),b4.current===b&&(0,r.mergeCachedMessages)(b,e.messages,e.has_more_messages,M,e.message_count).catch(()=>{}),aK(e.has_more_messages),a&&bY.current&&c&&ch()}else c&&aK(c.hasMore);if(b4.current===b){let a=await (0,r.getCacheMeta)(b,M);if(d)return;(0,r.setLastOpenConversation)(Z,U,{conversation_id:b,newestMessageId:a?.newestMessageId??c?.newestMessageId??null,serverMessageCount:e.message_count},M).catch(()=>{})}if(bq(e.thinking_counts),aO(e.artifacts),bg(e.buffered_messages),bB(new Set(e.flagged_message_ids)),e.active_task&&(as(e.active_task),av(e.task_messages),e.task_messages.length>0&&(bW.current=Math.max(...e.task_messages.map(a=>a.seq))),b0.current?.(e.active_task.id,b,bW.current)),$){let a=await (0,q.getTask)($,M).catch(()=>null);if(d)return;if(a&&!["completed","failed","cancelled","superseded"].includes(a.status)){as(a);let c=await (0,q.getTaskMessages)($,M).catch(()=>[]);if(d)return;av(c),c.length>0&&(bW.current=Math.max(...c.map(a=>a.seq))),b0.current?.(a.id,b,bW.current)}}}else{let b=await (0,q.chatInit)(Z,M,U);if(d)return;b4.current=b.conversation.id,ai(b.conversation);let c=b$.current;ak(a=>a.length>0?aA(a,b.messages):b.messages),aK(b.has_more_messages),aO(b.artifacts),bg(b.buffered_messages),bm(b.has_more_conversations),(0,r.mergeCachedMessages)(b.conversation.id,b.messages,b.has_more_messages,M).catch(()=>{}),(0,r.setLastOpenConversation)(Z,U,{conversation_id:b.conversation.id,newestMessageId:b.messages.length>0?b.messages[b.messages.length-1].id:null,serverMessageCount:b.has_more_messages?0:b.messages.length},M).catch(()=>{}),a&&bY.current&&c&&ch(),(0,q.listFlaggedMessageIds)(M,b.conversation.id).then(a=>{d||bB(new Set(a.message_ids))}).catch(()=>{}),b.active_task&&(as(b.active_task),b.task_messages.length>0&&(av(b.task_messages),bW.current=Math.max(...b.task_messages.map(a=>a.seq))),["completed","failed","cancelled","superseded"].includes(b.active_task.status)||b0.current?.(b.active_task.id,b.conversation.id,bW.current))}}catch{a?w.toast.error("Couldn't refresh conversation"):w.toast.error("Failed to load conversation")}finally{if(!d){var b;aG(!1),b=b5.current,c&&(b.completedKey=c)}}}(),()=>{d=!0}},[Z,M,ag,$,U,X]);let ci=(0,c.useRef)(T);(0,c.useEffect)(()=>{ci.current=T},[T]);let cj=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!ah?.id||!M||cj.current===ah.id)return;cj.current=ah.id;let a=setTimeout(()=>{(0,q.markInboxRead)(ah.id,M).then(()=>ci.current()).catch(()=>{})},1e3);return()=>{cj.current=null,clearTimeout(a)}},[ah?.id,M]),(0,c.useEffect)(()=>{ay||!(aj.length>0)||bY.current||(bY.current=!0,$||af?b$.current=!1:h?setTimeout(()=>{let a=bS.current?.querySelectorAll("[data-quote-source]");a&&a.length>0?a[a.length-1].scrollIntoView({behavior:"instant",block:"start"}):bS.current?.scrollTo({top:bS.current.scrollHeight})},50):setTimeout(()=>{bS.current?.scrollTo({top:bS.current.scrollHeight})},50))},[ay,aj.length,$,af,h]),(0,c.useEffect)(()=>{let a;if(!$||ay||!ah)return;b$.current=!1,b_.current=!0;let b=!1,c=()=>{if(b)return!1;let c=document.querySelector(`[data-task-id="${CSS.escape($)}"]`);return!!c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),c.classList.add("task-highlight"),a=setTimeout(()=>{c.classList.remove("task-highlight"),b||(b_.current=!1)},1500),!0)},d=setTimeout(async()=>{if(!b&&!c())try{let a=await (0,q.listMessagesAroundTask)(ah.id,M,$);if(b)return;a.length>0?(ak(b=>aA(b,a)),requestAnimationFrame(()=>{setTimeout(()=>{c()||(b_.current=!1)},100)})):b_.current=!1}catch{b||(b_.current=!1)}},100);return()=>{b=!0,clearTimeout(d),a&&clearTimeout(a)}},[$,ay,ah,M]),(0,c.useEffect)(()=>{let a;if(!af||$||ay||!ah)return;b$.current=!1,b_.current=!0;let b=!1,c=setTimeout(()=>{!b&&((()=>{if(b)return!1;let c=document.querySelector(`[data-message-id="${CSS.escape(af)}"]`);return!!c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),c.classList.add("task-highlight"),a=setTimeout(()=>{c.classList.remove("task-highlight"),b||(b_.current=!1)},1500),!0)})()||(bS.current?.scrollTo({top:bS.current.scrollHeight}),b_.current=!1))},100);return()=>{b=!0,clearTimeout(c),a&&clearTimeout(a)}},[af,$,ay,ah]);let ck=ar?.status;(0,c.useEffect)(()=>{b_.current||("running"===ck||"queued"===ck)&&b$.current&&ch()},[at.length,ck,ch]);let cl=(0,c.useMemo)(()=>O.find(a=>a.id===Z)?.name??"Agent",[O,Z]),cm=aC(aj),cn=aC(aJ),co=aC(bj),cp=aC(bl),cq=aC(cl),cr=aC(U),cs=(0,c.useCallback)(async(a=!1)=>{if(!ah||bZ.current)return;bZ.current=!0;let b=cm.current,c=cn.current,e=cp.current,f=cq.current,g=cr.current,h=!!ag,i=b[0],j=b1.current?.id??ah.id,k=c&&i,l=co.current;if(!h&&!k&&0===l.length&&e){let a=b1.current??{id:ah.id,created_at:ah.created_at};try{let b=await (0,q.listPreviousConversations)(Z,M,{exclude:ah.id,before:a.created_at,channel:g});l=b.conversations,bk(b.conversations),bm(b.has_more)}catch{bm(!1)}}let m=!h&&l.length>0;if(!k&&!m){bZ.current=!1;return}aM(!0);let n=bS.current;n&&(n.style.overflowAnchor="none");let o=n?.scrollHeight??0;try{let b=[],c=[],m=20,p=!1,s=[],t=!1;if(k){let a=j===ah.id?await (0,r.getCachedMessagesBefore)(j,i.created_at,i.id,20,M):null;if(a)b=a.messages,m-=a.messages.length,p=a.hasMore;else{let a=await (0,q.listMessages)(j,M,{limit:20,before:i.created_at,beforeId:i.id});b=a.messages,m-=a.messages.length,p=a.has_more}t=p}if(!h&&!p&&m>0){if(0===l.length&&e){let a=b1.current??{id:ah.id,created_at:ah.created_at};try{let b=await (0,q.listPreviousConversations)(Z,M,{exclude:ah.id,before:a.created_at,channel:g});l=b.conversations,bk(b.conversations),bm(b.has_more)}catch{bm(!1)}}let a=0,b=0;for(;a<l.length&&m>0&&b<5;){let d=l[a];a++,b++;let e=await (0,q.listMessages)(d.id,M,{limit:m});if(0===e.messages.length){b1.current=d;continue}let g=b1.current?.created_at??ah.created_at;s.push({agentName:f,created_at:g,id:`nap-${d.id}`}),c=[...e.messages,...c],m-=e.messages.length,p=e.has_more,b1.current=d}a>0&&bk(b=>b.slice(a))}let u=[...c,...b];if((0,d.flushSync)(()=>{u.length>0?(s.length>0&&bo(a=>{let b=new Set(a.map(a=>a.id)),c=s.filter(a=>!b.has(a.id));return[...a,...c]}),aK(p),ak(a=>{let b=new Set(a.map(a=>a.id));return[...u.filter(a=>!b.has(a.id)),...a]})):aK(!1)}),u.length>0&&ah){let a=u.filter(a=>a.conversation_id===ah.id);a.length>0&&(0,r.mergeCachedMessages)(ah.id,a,t,M).catch(()=>{})}if(bZ.current=!1,(0,d.flushSync)(()=>aM(!1)),n)if(a)n.scrollTop=n.scrollHeight;else{let a=n.scrollHeight;n.scrollTop=a-o}}catch{w.toast.error("Failed to load older messages")}finally{bZ.current=!1,aM(!1),bS.current&&(bS.current.style.overflowAnchor="")}},[ah,M,Z,ag,cm,cn,cp,cq,cr,co]),ct=ag?aJ:aJ||bj.length>0||bl;(0,c.useEffect)(()=>{ah?.id!==b3.current&&(b3.current=ah?.id,b2.current=0)},[ah?.id]),(0,c.useEffect)(()=>{ay||!ah||$||ag||aj.length>=10||!ct||aL||b2.current>=3||(b2.current+=1,cs(!0))},[ay,aj.length,ct,aL,ah,cs,$,ag]);let cu=(0,c.useCallback)(()=>{let a=bS.current;a&&(b$.current=a.scrollHeight-a.scrollTop-a.clientHeight<100)},[]),cv=(0,c.useCallback)((a,b,c)=>{bT.current&&clearInterval(bT.current),bW.current=c??0,bX.current=0,aI(!1),bV.current=a,bT.current=setInterval(async()=>{if(bV.current===a)try{let[c,d]=await Promise.all([(0,q.getTask)(a,M),(0,q.getTaskMessages)(a,M,bW.current||void 0)]),e=bV.current!==a;if(bX.current=0,aI(!1),d.length>0&&!e&&(av(a=>{let b=new Set(a.map(a=>a.seq)),c=d.filter(a=>!b.has(a.seq));return c.length>0?[...a,...c]:a}),bW.current=Math.max(...d.map(a=>a.seq),bW.current)),"completed"===c.status||"failed"===c.status||"cancelled"===c.status||"superseded"===c.status){if(e)return void(0,q.listMessages)(b,M).then(({messages:a})=>{ak(b=>aA(b,a)),(0,r.mergeCachedMessages)(b,a,null,M).catch(()=>{})}).catch(()=>{});bT.current&&clearInterval(bT.current),bT.current=null,bU.current&&clearTimeout(bU.current),bU.current=setTimeout(()=>{(0,q.markInboxRead)(b,M).then(()=>ci.current()).catch(()=>{})},1e3);let d=!b_.current&&b$.current;try{let[a,d]=await Promise.all([(0,q.listMessages)(b,M),(0,q.listArtifacts)(b,M).catch(()=>null)]);ak(b=>aA(b,a.messages)),(0,r.mergeCachedMessages)(b,a.messages,null,M).catch(()=>{}),d&&aO(d),as(c)}catch{as(c),w.toast.error("Failed to refresh messages")}d&&requestAnimationFrame(()=>{bS.current?.scrollTo({top:bS.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!bT.current)try{let[c,d]=await Promise.all([(0,q.getActiveTask)(b,M),(0,q.listBufferedMessages)(b,M)]);if(bg(d),c&&c.id!==a){let{messages:a}=await (0,q.listMessages)(b,M);ak(b=>aA(b,a)),(0,r.mergeCachedMessages)(b,a,null,M).catch(()=>{}),as(c),av([]),b0.current?.(c.id,b)}}catch{}},1e3)}else e||as(c)}catch{if(bV.current!==a)return;bX.current+=1,bX.current>=3&&aI(!0),bX.current>=10&&(bT.current&&clearInterval(bT.current),bT.current=null,w.toast.error("Lost connection to agent"))}},3e3)},[M]);(0,c.useEffect)(()=>{b0.current=cv},[cv]),(0,c.useEffect)(()=>()=>{bT.current&&clearInterval(bT.current),bU.current&&clearTimeout(bU.current)},[]);let cw=(0,c.useRef)(null);(0,c.useEffect)(()=>{cw.current=ar?.id??null},[ar]),(0,c.useEffect)(()=>R(a=>{if("task.messages"===a.type&&a.taskId===cw.current){let b=a.messages.filter(a=>a.seq>bW.current);b.length>0&&(av(a=>{let c=new Set(a.map(a=>a.seq)),d=b.filter(a=>!c.has(a.seq));return d.length>0?[...a,...d]:a}),bW.current=Math.max(...b.map(a=>a.seq),bW.current))}if("task.created"===a.type&&a.conversationId===ah?.id){(0,q.listMessages)(a.conversationId,M).then(({messages:b})=>{ak(a=>aA(a,b)),(0,r.mergeCachedMessages)(a.conversationId,b,null,M).catch(()=>{})}).catch(()=>{});let b=a.task;cw.current=b.id,as(b),av([]),bW.current=0,b0.current?.(b.id,a.conversationId)}if("conversation.message"===a.type&&(a.conversationId===b4.current&&(0,r.appendCachedMessage)(a.conversationId,a.message,M).catch(()=>{}),a.conversationId===ah?.id&&ak(b=>{let c=new Date(a.message.created_at).getTime(),d=b.findIndex(b=>b.id.startsWith("temp-")&&b.role===a.message.role&&b.content===a.message.content&&2e3>Math.abs(new Date(b.created_at).getTime()-c));if(-1!==d){let c=[...b];return c[d]=a.message,c}return aA(b,[a.message])})),"task.updated"===a.type&&a.taskId===cw.current&&as(b=>b?{...b,status:a.status}:b),"artifact.uploaded"===a.type&&a.conversationId===ah?.id&&aO(b=>b.some(b=>b.id===a.artifact.id)?b:[...b,a.artifact]),"followup.dispatched"===a.type&&a.conversationId===ah?.id){bg(b=>b.filter(b=>b.id!==a.message.id)),(0,q.listBufferedMessages)(a.conversationId,M).then(bg).catch(()=>{}),(0,q.listMessages)(a.conversationId,M).then(({messages:b})=>{ak(a=>aA(a,b)),(0,r.mergeCachedMessages)(a.conversationId,b,null,M).catch(()=>{})}).catch(()=>{});let b=a.task;cw.current=b.id,as(b),av([]),b0.current?.(b.id,a.conversationId)}"followup.created"===a.type&&a.conversationId===ah?.id&&bg(b=>(function(a,b){if(a.some(a=>a.id===b.id))return a;let c=new Date(b.created_at).getTime();return a.some(a=>a.id.startsWith("temp-")&&2e3>Math.abs(new Date(a.created_at).getTime()-c))?a:[...a,b]})(b,a.message)),"followup.deleted"===a.type&&a.conversationId===ah?.id&&bg(b=>b.filter(b=>b.id!==a.messageId)),"followup.dispatch_failed"===a.type&&a.conversationId===ah?.id&&w.toast.error(a.error||"Failed to dispatch follow-up")}),[R,ah?.id,M]),(0,c.useEffect)(()=>S(()=>{ah?.id&&(0,r.getCacheMeta)(ah.id,M).then(a=>{(0,q.conversationInit)(ah.id,M,{newestMessageId:a?.newestMessageId??void 0,messageCount:a?.serverMessageCount??void 0}).then(a=>{!a.cache_valid&&a.messages&&(ak(b=>aA(b,a.messages)),bH.current(a.messages,a.has_more_messages,a.message_count).catch(()=>{}))}).catch(()=>{})})}),[S,ah?.id,M]);let cx=(0,c.useCallback)(a=>{let b=[];for(let c of a)c.size>0xa00000?w.toast.error(`"${c.name}" exceeds 10 MB limit`):b.push(c);b.length>0&&be(a=>[...a,...b])},[]),cy=(0,c.useCallback)(a=>{let b=a.target.files;b&&(cx(Array.from(b)),a.target.value="")},[cx]),cz=(0,c.useCallback)(a=>{be(b=>b.filter((b,c)=>c!==a))},[]),cA=(0,c.useCallback)(()=>{let a=window.getSelection();if(!a||a.isCollapsed||!a.rangeCount)return void bz(null);let b=a.toString().trim();if(!b)return void bz(null);let c=a.getRangeAt(0),d=c.commonAncestorContainer instanceof HTMLElement?c.commonAncestorContainer:c.commonAncestorContainer.parentElement;if(!d?.closest("[data-quote-source]"))return void bz(null);let e=c.getClientRects(),f=e[e.length-1]||c.getBoundingClientRect();bz({text:b,x:f.right,y:f.top-4})},[]);(0,c.useEffect)(()=>(document.addEventListener("selectionchange",cA),()=>document.removeEventListener("selectionchange",cA)),[cA]);let cB=(0,c.useCallback)(()=>{by&&(bv(by.text),bz(null),window.getSelection()?.removeAllRanges(),b7.current?.focus())},[by]),[cC,cD]=(0,c.useState)(!1),cE=(0,c.useRef)(0),cF=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cE.current++,a.dataTransfer.types.includes("Files")&&cD(!0)},[]),cG=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cE.current--,0===cE.current&&cD(!1)},[]),cH=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),cI=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cD(!1),cE.current=0,cx(Array.from(a.dataTransfer.files))},[cx]),cJ=async()=>{if(ah&&!ap){aq(!0);try{let a=await (0,q.cancelActiveTask)(ah.id,M);if(a){if(cw.current&&cw.current!==a.id)return;bT.current&&clearInterval(bT.current),bT.current=null;let[b,c]=await Promise.all([(0,q.listMessages)(ah.id,M),(0,q.listBufferedMessages)(ah.id,M)]);ak(a=>aA(a,b.messages)),(0,r.mergeCachedMessages)(ah.id,b.messages,null,M).catch(()=>{}),bg(c),as(a),av([])}}catch{w.toast.error("Failed to cancel task")}finally{aq(!1)}}},cK=async()=>{let a=al.trim();if(!a&&0===bd.length||an||!ah)return;if(!a)return void w.toast.error("Please type a message");let b=bu?`> ${bu.split("\n").join("\n> ")}
|
|
1
|
+
module.exports=[831893,896393,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(752792),f=a.i(506180),g=a.i(626806);let h=["user_dm_message"],i=["user_dm_message"];function j(){return h}a.s(["INBOX_FILTER_LABELS",0,{user_dm_message:"DM",calendar_event:"Calendar",email_notification:"Email"},"INBOX_FILTER_TYPES",0,["user_dm_message","calendar_event","email_notification"],"MANDATORY_INBOX_TYPES",0,i,"getInboxFilterTypes",0,j,"setInboxFilterTypes",0,function(a){let b=[...a];for(let a of i)b.includes(a)||b.unshift(a);localStorage.setItem("inbox-filter-types",JSON.stringify(b))}],896393);let k=(0,c.createContext)(null),l={count:0,notificationToken:0,refresh:()=>{},decrement:()=>{}};a.s(["InboxCountProvider",0,function({children:a}){let{workspaceId:h}=(0,f.useWorkspace)(),{subscribeWs:i,agents:l}=(0,e.useAgentContext)(),[m,n]=(0,c.useState)(0),[o,p]=(0,c.useState)(0),q=(0,c.useRef)(null),r=(0,c.useRef)(null),s=(0,c.useRef)(l);(0,c.useEffect)(()=>{s.current=l});let t=(0,c.useCallback)(()=>{let a=j();(0,d.getInboxCount)(h,{types:a}).then(a=>{let b=q.current;if(q.current=a.count,n(a.count),null!==b&&a.count>b){p(a=>a+1);let a=r.current?s.current.find(a=>a.id===r.current):void 0;(0,g.sendTaskNotification)("completed",a?.name)}r.current=null}).catch(()=>{})},[h]),u=(0,c.useCallback)(()=>{n(a=>{let b=Math.max(0,a-1);return q.current=b,b})},[]);return(0,c.useEffect)(()=>{t()},[t]),(0,c.useEffect)(()=>i(a=>{"task.updated"===a.type&&("completed"===a.status||"failed"===a.status)&&(r.current=a.agentId,t())}),[i,t]),(0,c.useEffect)(()=>{let a=setInterval(t,6e4);return()=>clearInterval(a)},[t]),(0,b.jsx)(k.Provider,{value:{count:m,notificationToken:o,refresh:t,decrement:u},children:a})},"useInboxCount",0,function(){return(0,c.useContext)(k)??l}],831893)},70813,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(588339),e=a.i(506180);let f=(0,c.createContext)(null);a.s(["FlagCountProvider",0,function({children:a}){let{workspaceId:g}=(0,e.useWorkspace)(),[h,i]=(0,c.useState)(0),j=(0,c.useCallback)(()=>{(0,d.getFlaggedCount)(g).then(a=>i(a.count)).catch(()=>{})},[g]),k=(0,c.useCallback)(()=>{i(a=>a+1)},[]),l=(0,c.useCallback)(()=>{i(a=>Math.max(0,a-1))},[]);return(0,c.useEffect)(()=>{j()},[j]),(0,b.jsx)(f.Provider,{value:{count:h,refresh:j,increment:k,decrement:l},children:a})},"useFlagCount",0,function(){let a=(0,c.useContext)(f);if(!a)throw Error("useFlagCount must be used within FlagCountProvider");return a}])},781418,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(549931),e=a.i(584126),f=a.i(921584);a.i(735132);var g=a.i(253260),h=a.i(325848),i=a.i(191525),j=a.i(75118);a.s(["AgentPreviewCard",0,function({agent:a,isOnline:k,activeTaskCount:l,variant:m="default",isHovered:n}){let[o,p]=(0,c.useState)(!1),q=a.email_handle?`${a.email_handle}@alook.ai`:null,r=(0,c.useCallback)(async()=>{if(q)try{await navigator.clipboard.writeText(q),p(!0),f.toast.success("Email copied to clipboard"),setTimeout(()=>p(!1),2e3)}catch{f.toast.error("Failed to copy email")}},[q]);if("compact"===m){let c;return(0,b.jsxs)("div",{className:"flex items-center gap-2 p-0",children:[(c=(0,h.parseAvatarUrl)(a.avatar_url))?(0,b.jsx)(g.AnimatedAvatar,{config:c,size:32,className:"shrink-0 rounded-xl",isHovered:n??!1,isWorking:!!k&&(l??0)>0}):(0,b.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:a.name.charAt(0).toUpperCase()}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate max-w-35",children:a.name}),q&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:q})]}),void 0!==k&&(0,b.jsx)("div",{className:"pointer-events-none mt-0.5",children:(0,b.jsx)(i.AgentStatusBadge,{isOnline:k,taskCount:l??0,agentId:a.id})})]})]})}return(0,b.jsxs)("div",{className:"flex flex-col gap-1.5 p-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate",children:a.name}),(0,b.jsx)("span",{className:"flex-1"}),void 0!==k&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground",children:[(0,b.jsx)("span",{className:(0,j.cn)("size-1.5 rounded-full",k?"bg-status-online":"bg-status-offline")}),k?(l??0)>0?"Working":null:"Offline"]})]}),q&&(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:q}),(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),r()},className:"shrink-0 p-0.5 rounded-sm text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",children:o?(0,b.jsx)(d.Check,{className:"size-3 text-green-500"}):(0,b.jsx)(e.Copy,{className:"size-3"})})]}),a.description&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2",children:a.description})]})}])},127026,40924,a=>{"use strict";a.s(["AgentChatView",()=>aF,"getEventIconType",()=>ay],127026);var b=a.i(749314),c=a.i(437199),d=a.i(131675),e=a.i(207058),f=a.i(506180),g=a.i(732254),h=a.i(464830),i=a.i(75118),j=a.i(143984),k=a.i(123047),l=a.i(723127),m=a.i(16831);a.i(343563);var n=a.i(347788);function o({value:a}){let d=(0,c.useRef)(a),[e,f]=(0,c.useState)({current:a,previous:null}),[g,h]=(0,c.useState)("idle");return(0,c.useEffect)(()=>{if(a===d.current)return;let b=d.current;d.current=a,f({current:a,previous:b}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{h("animating")})});let c=setTimeout(()=>{h("idle"),f(a=>({...a,previous:null}))},300);return()=>clearTimeout(c)},[a]),(0,b.jsxs)("span",{style:{display:"inline-block",position:"relative",overflow:"hidden",height:"1.2em",lineHeight:"1.2em",verticalAlign:"bottom"},children:[null!==e.previous&&(0,b.jsx)("span",{style:{display:"block",position:"absolute",inset:"0",transition:"animating"===g?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:"animating"===g?"translateY(-100%)":"translateY(0)",opacity:+("animating"!==g)},children:e.previous}),(0,b.jsx)("span",{style:{display:"block",transition:"animating"===g?"transform 250ms ease-out, opacity 250ms ease-out":"none",transform:null!==e.previous&&"animating"!==g?"translateY(100%)":"translateY(0)",opacity:+(null===e.previous||"animating"===g)},children:e.current})]})}function p({task:a,messages:d,connectionLost:e,onRetry:f,thinkingCountHint:g,onExpandThinking:q,thinkingLoading:r}){let[s,t]=(0,c.useState)(!1),u=(0,c.useMemo)(()=>(function(a){let b=[];for(let c of a){let a=c.id||`seq-${c.seq}`;"text"===c.type?b.push({kind:"text",id:a,content:c.content}):"error"===c.type&&b.push({kind:"error",id:a,content:c.content||c.output})}return b})(d),[d]),v="completed"!==a.status&&"failed"!==a.status&&"cancelled"!==a.status&&"superseded"!==a.status,w=u.filter(a=>"text"===a.kind),x=u.filter(a=>"error"===a.kind),y=w.length>0?w[w.length-1]:null,z=(0,c.useRef)(null),A=(0,c.useRef)(!1);(0,c.useEffect)(()=>{v&&z.current&&(z.current.scrollTop=z.current.scrollHeight)},[w.length,v]);let B=v?w:w.slice(0,-1),C=!v&&null!==y,D=B.length>0||g&&g>0,E=B.length>0?B.length:g??0;return(0,b.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[!q&&(0,b.jsx)("div",{className:"flex items-center gap-2",children:"running"===a.status?(0,b.jsxs)(h.Badge,{variant:"secondary",className:"gap-1.5 relative overflow-hidden",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),"Working",(0,b.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):v?(0,b.jsxs)(h.Badge,{variant:"secondary",className:"relative overflow-hidden",children:[a.status,(0,b.jsx)("div",{className:"pointer-events-none absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite]",style:{background:"linear-gradient(90deg, transparent 0%, var(--shimmer) 40%, var(--shimmer-peak) 50%, var(--shimmer) 60%, transparent 100%)"}})]}):(0,b.jsx)(h.Badge,{variant:"secondary",children:a.status})}),D&&(0,b.jsxs)("details",{className:"group/midtext pl-1",open:!C&&!q||void 0,onToggle:a=>{a.currentTarget.open&&!A.current&&q&&(A.current=!0,q())},children:[(0,b.jsxs)("summary",{className:(0,i.cn)("flex items-center gap-1.5 py-1 cursor-pointer select-none","text-xs text-muted-foreground transition-colors duration-150","hover:text-foreground","[&::-webkit-details-marker]:hidden [&::marker]:hidden"),children:[(0,b.jsx)(j.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground/60 transition-transform duration-150 group-open/midtext:rotate-90"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(o,{value:E})," thinking"]})]}),(0,b.jsxs)("div",{ref:z,className:"mt-1 pl-1",children:[r&&0===B.length&&(0,b.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)(m.Loader2,{className:"size-3 animate-spin"}),(0,b.jsx)("span",{children:"Loading..."})]}),B.map(a=>(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 text-sm text-muted-foreground",children:(0,b.jsx)(n.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:a.content})},a.id))]})]}),C&&!q&&(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,b.jsx)(n.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},children:y.content})}),x.length>0&&(0,b.jsx)("div",{className:"space-y-1 mt-1",children:x.map(a=>(0,b.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,b.jsx)(k.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,b.jsx)("span",{className:"wrap-anywhere",children:a.content})]},a.id))}),"failed"===a.status&&a.error&&(0,b.jsxs)("div",{className:"flex items-start gap-2 mt-2 max-w-full overflow-hidden",children:[(0,b.jsxs)("p",{className:"text-sm text-destructive flex items-start gap-1.5 min-w-0",children:[(0,b.jsx)(k.AlertCircle,{className:"size-3.5 shrink-0 mt-0.5"}),(0,b.jsx)("span",{className:"wrap-anywhere",children:a.error})]}),f&&(0,b.jsxs)("button",{type:"button",onClick:async()=>{t(!0);try{await f()}finally{t(!1)}},disabled:s,className:"shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[s?(0,b.jsx)(m.Loader2,{className:"size-3 animate-spin"}):(0,b.jsx)(l.RotateCw,{className:"size-3"}),"Retry"]})]}),e&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]})}var q=a.i(588339),r=a.i(562706),s=a.i(752792),t=a.i(831893),u=a.i(70813),v=a.i(452906),w=a.i(921584),x=a.i(25668),y=a.i(525132),z=a.i(540858),A=a.i(647651);let B=(0,A.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"}]]),C=(0,A.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 D=a.i(510698),E=a.i(606896);let F=(0,A.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 G=a.i(945081),H=a.i(546257),I=a.i(484573),J=a.i(518828);function K({skill:a,isSelected:c,onSelect:d}){return(0,b.jsxs)("button",{type:"button","data-slash-item":!0,className:(0,i.cn)("flex w-full flex-col gap-0.5 px-3 py-1.5 text-left text-sm transition-colors",c?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:b=>{b.preventDefault(),d(a)},children:[(0,b.jsxs)("span",{className:"flex w-full items-center gap-2",children:[(0,b.jsxs)("span",{className:"min-w-0 flex-1 truncate font-medium",children:["/",a.name]}),a.isGlobal&&(0,b.jsx)("span",{className:"shrink-0 rounded px-1 py-0.5 text-[10px] font-medium bg-muted text-muted-foreground",children:"Global"})]}),a.description&&(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:a.description.slice(0,80)})]})}function L({isOpen:a,skills:d,selectedIndex:e,onSelect:f,anchorPos:g}){let h=(0,c.useRef)(null);if((0,c.useEffect)(()=>{if(!h.current)return;let a=h.current.querySelectorAll("[data-slash-item]")[e];a?.scrollIntoView({block:"nearest"})},[e]),!a||0===d.length)return null;let i=g.left,j=Math.min(g.left,i);return(0,b.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:g.top-4,left:j,transform:"translateY(-100%)"},children:(0,b.jsx)("div",{ref:h,className:"max-h-60 overflow-y-auto py-1 thin-scrollbar",children:d.map((a,c)=>(0,b.jsx)(K,{skill:a,isSelected:c===e,onSelect:f},a.name))})})}var M=a.i(623789),N=a.i(892236),O=a.i(807820),P=a.i(717132);function Q(a,b){if(!b)return a;let c=b.toLowerCase(),d=[],e=[];for(let b of a){let a=b.name.toLowerCase();a.startsWith(c)?d.push(b):a.includes(c)&&e.push(b)}return[...d,...e]}var R=a.i(388126);function S(a){return a.replaceAll("<","<").replaceAll(">",">").replaceAll("&","&")}let T={items:[],selectedIndex:0,command:null,rect:null};function U({state:a}){let e=(0,c.useRef)(null),{items:f,selectedIndex:g,command:h,rect:j}=a;if((0,c.useEffect)(()=>{if(!e.current)return;let a=e.current.children[g];a?.scrollIntoView({block:"nearest"})},[g]),!j||0===f.length||!h)return null;let k=j.left,l=Math.min(j.left,k);return(0,d.createPortal)((0,b.jsx)("div",{className:"fixed z-100 w-64 rounded-lg border border-border bg-popover text-popover-foreground shadow-md",style:{top:j.top-4,left:l,transform:"translateY(-100%)"},children:(0,b.jsx)("div",{ref:e,className:"max-h-50 overflow-y-auto py-1 thin-scrollbar",children:f.map((a,c)=>(0,b.jsxs)("button",{type:"button",className:(0,i.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",c===g?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:b=>{b.preventDefault(),h({id:a.id,label:a.name})},children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.name}),a.email_handle&&(0,b.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[a.email_handle,"@alook.ai"]})]},a.id))})}),document.body)}let V=(0,c.forwardRef)(function({value:a,onChange:d,onEditorState:e,onSend:f,placeholder:g,disabled:h,onMultiLineChange:i,onFiles:j,agents:k,agentLinks:l,currentAgentId:m,slashIsOpen:n,onSlashKeyDown:o},p){let[q,r]=(0,c.useState)(T),s=(0,c.useRef)(q);(0,c.useEffect)(()=>{s.current=q},[q]);let t=(0,c.useRef)(k),u=(0,c.useRef)(l),v=(0,c.useRef)(m),w=(0,c.useRef)(f),x=(0,c.useRef)(e),y=(0,c.useRef)(d),z=(0,c.useRef)(j),A=(0,c.useRef)(n),B=(0,c.useRef)(o);(0,c.useEffect)(()=>{t.current=k},[k]),(0,c.useEffect)(()=>{u.current=l},[l]),(0,c.useEffect)(()=>{v.current=m},[m]),(0,c.useEffect)(()=>{w.current=f},[f]),(0,c.useEffect)(()=>{x.current=e},[e]),(0,c.useEffect)(()=>{y.current=d},[d]),(0,c.useEffect)(()=>{z.current=j},[j]),(0,c.useEffect)(()=>{A.current=n},[n]),(0,c.useEffect)(()=>{B.current=o},[o]);let C=a=>{x.current(a.getText(),a.state.selection.from-1)},[D]=(0,c.useState)(()=>R.default.extend({markdownName:"mention",renderMarkdown:a=>`@${a.attrs.label??a.attrs.id}`}).configure({HTMLAttributes:{class:"mention-highlight"},renderText:({node:a})=>`@${a.attrs.label??a.attrs.id}`,suggestion:{char:"@",items:({query:a})=>(function(a,b,c,d,e=20){let f=function(a,b){let c=new Set;for(let d of a)d.source_agent_id===b&&c.add(d.target_agent_id),d.target_agent_id===b&&c.add(d.source_agent_id);return c}(b,c),g=[],h=[];for(let b of a)f.has(b.id)?g.push(b):h.push(b);return[...Q(g,d),...Q(h,d)].slice(0,e)})(t.current,u.current,v.current,a),render:()=>({onStart:a=>{r({items:a.items??[],selectedIndex:0,command:a.command,rect:a.clientRect?.()??null})},onUpdate:a=>{r(b=>({items:a.items??[],selectedIndex:b.selectedIndex<(a.items?.length??0)?b.selectedIndex:0,command:a.command,rect:a.clientRect?.()??null}))},onKeyDown:({event:a})=>{if(a.isComposing)return!1;let b=s.current;if(0===b.items.length)return!1;if("ArrowDown"===a.key)return a.preventDefault(),r(a=>({...a,selectedIndex:(a.selectedIndex+1)%a.items.length})),!0;if("ArrowUp"===a.key)return a.preventDefault(),r(a=>({...a,selectedIndex:(a.selectedIndex-1+a.items.length)%a.items.length})),!0;if("Enter"===a.key){a.preventDefault();let c=b.items[b.selectedIndex];return c&&b.command&&b.command({id:c.id,label:c.name}),r(T),!0}return"Escape"===a.key&&(r(T),!0)},onExit:()=>r(T)})}})),E=(0,M.useEditor)({immediatelyRender:!1,content:a||void 0,contentType:"markdown",editable:!h,extensions:[N.default.configure({heading:!1,blockquote:!1,codeBlock:!1,horizontalRule:!1,bold:!1,italic:!1,strike:!1,code:!1}),O.default.configure({placeholder:g??""}),P.Markdown,D],editorProps:{attributes:{class:"outline-none",enterkeyhint:"send"},handleKeyDown:(a,b)=>(!(s.current.items.length>0)||null===s.current.command)&&(!!(A.current&&B.current({key:b.key,isComposing:b.isComposing,preventDefault:()=>b.preventDefault()}))||!("Enter"!==b.key||b.shiftKey||b.isComposing||E?.isActive("bulletList")||E?.isActive("orderedList")||E?.isActive("listItem"))&&!A.current&&(b.preventDefault(),w.current(),!0)),handlePaste:(a,b)=>{let c=b.clipboardData?.items;if(!c)return!1;let d=[];for(let a=0;a<c.length;a++)if("file"===c[a].kind){let b=c[a].getAsFile();b&&d.push(b)}return 0!==d.length&&(b.preventDefault(),z.current?.(d),!0)},handleDrop:(a,b)=>{let c=b.dataTransfer?.files;return!!c&&0!==c.length&&(b.preventDefault(),z.current?.(Array.from(c)),!0)}},onUpdate:({editor:a})=>{y.current(S(a.getMarkdown())),C(a)},onSelectionUpdate:({editor:a})=>{C(a)}});(0,c.useEffect)(()=>{E?.setEditable(!h)},[E,h]),(0,c.useEffect)(()=>{if(!E)return;let b=(a||"").trim();b!==S(E.getMarkdown()||"").trim()&&(b?E.commands.setContent(a||"",{emitUpdate:!1,contentType:"markdown"}):E.commands.clearContent(),x.current(E.getText(),E.state.selection.from-1))},[a,E]);let F=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!E||!i)return;let a=F.current?.querySelector(".ProseMirror");if(!a)return;let b=()=>i(a.scrollHeight>32);b();let c=new ResizeObserver(b);return c.observe(a),()=>c.disconnect()},[E,i]),(0,c.useImperativeHandle)(p,()=>({focus:()=>E?.commands.focus(),clear:()=>E?.commands.clearContent(),isEmpty:()=>E?.isEmpty??!0,coordsAtTextIndex:a=>{if(!E)return null;try{let b=E.view.coordsAtPos(a+1);return{top:b.top,left:b.left}}catch{return null}}}),[E]),(0,b.jsxs)("div",{ref:F,className:"chat-composer relative",children:[(0,b.jsx)(M.EditorContent,{editor:E,className:"max-h-44 overflow-y-auto thin-scrollbar pr-2 text-base chat-input-line-height"}),(0,b.jsx)(U,{state:q})]})});var W=a.i(207461),X=a.i(596174),Y=a.i(7455),Z=a.i(390759),$=a.i(135510);function _({open:a,onOpenChange:d,emailId:e,workspaceId:f}){let[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(null),[l,n]=(0,c.useState)(!1),{width:o,onPointerDown:p,onPointerMove:r,onPointerUp:s}=(0,X.useSheetResize)({defaultWidth:500,minWidth:320,maxWidthRatio:.8}),t=(0,c.useRef)(d);(0,c.useEffect)(()=>{t.current=d}),(0,c.useEffect)(()=>{a&&e&&(n(!0),i(null),k(null),Promise.all([(0,q.getEmail)(e,f),(0,q.getEmailBody)(e,f)]).then(([a,b])=>{i(a),k(b)}).catch(()=>{w.toast.error("Email not found"),t.current(!1)}).finally(()=>n(!1)))},[a,e,f]);let u=a=>{d(a),a||setTimeout(()=>{i(null),k(null)},300)};return(0,b.jsx)(Y.Sheet,{open:a,onOpenChange:u,children:(0,b.jsxs)(Y.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${o}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,b.jsx)(X.SheetResizeHandle,{onPointerDown:p,onPointerMove:r,onPointerUp:s}),(0,b.jsx)(Y.SheetHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(E.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsx)(Y.SheetTitle,{className:"truncate flex-1",children:l?"Loading...":h?.subject||"Email"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>u(!1),children:(0,b.jsx)(J.X,{className:"h-4 w-4"})})]})}),(0,b.jsx)(Y.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:l?(0,b.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,b.jsx)(m.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):h?(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"text-sm space-y-1 border-b pb-3",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"From:"}),(0,b.jsx)("span",{className:"truncate",children:h.from_email})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"To:"}),(0,b.jsx)("span",{className:"truncate",children:h.to_email})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Date:"}),(0,b.jsx)("span",{children:new Date(h.created_at).toLocaleString()})]})]}),j?.isHtml?(0,b.jsx)($.EmailBodyFrame,{html:j.content,className:"max-w-full"}):(0,b.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:j?.content}),h.attachments&&h.attachments.length>0&&(0,b.jsxs)("div",{className:"border-t pt-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mb-2 text-xs text-muted-foreground",children:[(0,b.jsx)(H.Paperclip,{className:"size-3"}),h.attachments.length," attachment",h.attachments.length>1?"s":""]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.attachments.map((a,c)=>(0,b.jsxs)("a",{href:`/api/email/${h.id}/attachment/${c}?workspace_id=${f}`,target:"_blank",rel:"noopener noreferrer",download:a.filename,className:"flex items-center gap-1.5 rounded-md border border-border/50 bg-muted/50 px-2.5 py-1.5 text-xs hover:bg-muted transition-colors cursor-pointer",children:[(0,b.jsx)(Z.File,{className:"size-3 text-muted-foreground shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-45",children:a.filename}),(0,b.jsx)("span",{className:"text-muted-foreground shrink-0",children:a.size<1024?`${a.size} B`:a.size<1048576?`${(a.size/1024).toFixed(1)} KB`:`${(a.size/1048576).toFixed(1)} MB`})]},a.key))})]})]}):null})]})})}var aa=a.i(276163),ab=a.i(963744),ac=a.i(698824);function ad({bufferedMessages:a,onDelete:d}){let[e,f]=(0,c.useState)(!1),g=a.length;if(0===g)return null;let h=Math.min(g,3);return(0,b.jsx)("div",{className:"relative px-5 pb-1",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl flex justify-center",children:(0,b.jsxs)("div",{className:"relative w-full max-w-lg transition-[height] duration-200 ease-out",style:{height:e?32*g+(g-1)*4:32+(h-1)*6},onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:[a.map((a,c)=>{var f;let j=g-1-c,k=c>=g-h;return(0,b.jsx)("div",{className:"absolute right-0 left-0 transition-all duration-200 ease-out",style:{height:32,zIndex:c+1,bottom:e?36*j:k?6*j:0,transform:e?"scale(1)":`scale(${k?1-.03*j:.91})`,opacity:e?1:k?1-.2*j:0,pointerEvents:e||k?"auto":"none"},children:(0,b.jsxs)("div",{className:"h-full rounded-lg border bg-background/95 backdrop-blur-sm shadow-sm flex items-center gap-2 px-3",children:[(0,b.jsx)("span",{className:"shrink-0 text-[11px] text-primary/60 tabular-nums w-4 text-center",children:c+1}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"text-[13px] text-muted-foreground leading-snug truncate",children:(f=a.content).length<=80?f:f.slice(0,80).trimEnd()+"…"}),a.attachment_ids&&a.attachment_ids.length>0&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5 shrink-0 text-[11px] text-muted-foreground/50",children:[(0,b.jsx)(H.Paperclip,{className:"size-2.5"}),a.attachment_ids.length]})]}),(0,b.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),d(a.id)},className:(0,i.cn)("shrink-0 rounded-sm p-0.5 transition-all duration-150","text-muted-foreground/30 hover:text-foreground hover:bg-muted",e?"opacity-100":"opacity-0"),tabIndex:e?0:-1,children:(0,b.jsx)(J.X,{className:"size-3"})})]})},a.id)}),!e&&g>h&&(0,b.jsxs)("span",{className:"absolute -top-4 right-1 text-[10px] text-muted-foreground/40 tabular-nums",children:["+",g-h," more"]})]})})})}var ae=a.i(389660);function af(a,b){if(b>=a.length)return!0;let c=a.charCodeAt(b);return(!(c>=48)||!(c<=57))&&(!(c>=65)||!(c<=90))&&(!(c>=97)||!(c<=122))&&95!==c}function ag(a,b){if(!a||0===b.length||!a.includes("@"))return a;let c=b.slice().sort((a,b)=>b.name.length-a.name.length),d=[];for(let b=0;b<a.length;b++){if("@"!==a[b]||!function(a,b){if(0===b)return!0;let c=a.charCodeAt(b-1);return(!(c>=48)||!(c<=57))&&(!(c>=65)||!(c<=90))&&(!(c>=97)||!(c<=122))&&95!==c}(a,b))continue;let e=b+1;for(let f of c){let c=e+f.name.length;if(c>a.length||a.slice(e,c).toLowerCase()!==f.name.toLowerCase())continue;let g=c,h=a.slice(c).match(/^ \([a-zA-Z0-9-]+@alook\.ai\)/);if(h&&(g=c+h[0].length),(h||af(a,c))&&(!h||af(a,g))){if(d.some(a=>b>=a.start&&b<a.end))break;d.push({start:b,end:c,name:f.name,agentId:f.id});break}}}let e=a;for(let a=d.length-1;a>=0;a--){let b=d[a],c=e.slice(b.start,b.end);e=e.slice(0,b.start)+`<mention data-agent-id="${b.agentId}">${c}</mention>`+e.slice(b.end)}return e}let ah={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 ai({taskId:a,thinkingCount:d,workspaceId:e}){let[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{if(!j&&!h){i(!0);try{let b=await (0,q.getTaskMessages)(a,e);g(b)}catch{g([])}finally{i(!1),k(!0)}}},[j,h,a,e]);return(0,b.jsx)(p,{task:ah,messages:f,thinkingCountHint:d,onExpandThinking:l,thinkingLoading:h})}var aj=a.i(560893),ak=a.i(307992);let al=(0,A.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]);a.s(["Flag",0,al],40924);var am=a.i(584126),an=a.i(549931);let ao={mention:["data-agent-id"]},ap=["mention"];function aq({content:a,conversationType:c}){let d=ay(a,c),e="h-4 w-4 mt-0.5 shrink-0";return"issue"===d?(0,b.jsx)(ak.CircleDot,{className:e}):"email"===d?(0,b.jsx)(E.Mail,{className:e}):(0,b.jsx)(aj.Calendar,{className:e})}function ar({attachmentIds:a,artifacts:c,onArtifactClick:d}){let e=a.map(a=>c.find(b=>b.id===a)).filter(a=>!!a);return 0===e.length?null:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:e.map(a=>(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),d(a)},className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80 hover:bg-primary-foreground/20 transition-colors cursor-pointer",children:[(0,b.jsx)(D.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-37.5",children:a.filename})]},a.id))})}function as({pendingFiles:a,messageId:c}){let d=a.get(c);return d&&0!==d.length?(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:d.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80",children:[(0,b.jsx)(D.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-37.5",children:a.name})]},c))}):null}let at={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"},au=(0,c.memo)(function({msg:a,agents:d,artifacts:e,activeTask:f,taskMessages:h,connectionLost:j,isLastMessage:k,thinkingCount:l,targetConvId:m,workspaceId:o,conversationType:q,pendingFilesByMessage:r,onArtifactClick:s,onEmailClick:t,onIssueClick:u,onCalendarEventClick:v,onRetry:x,mentionComponents:z,isFlagged:A,onToggleFlag:B,groupPosition:C="solo"}){let D,E,F,G,H,I,J,{copy:K,copied:L}=function(a=2e3){let[b,d]=(0,c.useState)(!1),e=(0,c.useRef)(void 0),f=(0,c.useCallback)(async b=>{try{return await navigator.clipboard.writeText(b),d(!0),clearTimeout(e.current),e.current=setTimeout(()=>d(!1),a),!0}catch{return!1}},[a]);return(0,c.useEffect)(()=>()=>clearTimeout(e.current),[]),{copy:f,copied:b}}(),M=f&&"assistant"===a.role&&a.task_id===f.id&&a.conversation_id===f.conversation_id&&h.length>0,N=M&&f&&["completed","failed","cancelled","superseded"].includes(f.status),O="assistant"===a.role?(0,b.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs","aria-label":L?"Copied":"Copy message",onClick:async b=>{b.stopPropagation(),await K(a.content)?w.toast.success("Copied to clipboard"):w.toast.error("Failed to copy")},className:(0,i.cn)("self-start mb-1",L?"text-green-500 opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:L?(0,b.jsx)(an.Check,{className:"size-3.5"}):(0,b.jsx)(am.Copy,{className:"size-3.5"})}),(0,b.jsx)(y.TooltipContent,{children:L?"Copied":"Copy"})]}),B&&(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs",onClick:()=>B(a.id),className:(0,i.cn)("self-start mb-1",A?"text-primary opacity-100":"text-muted-foreground md:opacity-0 md:group-hover/msg:opacity-100")}),children:(0,b.jsx)(al,{className:(0,i.cn)("size-3.5",A&&"fill-current")})}),(0,b.jsx)(y.TooltipContent,{children:A?"Unflag":"Flag"})]})]}):null;return(0,b.jsxs)(c.default.Fragment,{children:[M&&(0,b.jsxs)("div",{className:(0,i.cn)("group/msg",A&&"bg-muted/30 rounded-lg px-2 -mx-2"),...N?{"data-quote-source":!0}:{},children:[(0,b.jsx)(p,{task:f,messages:h,connectionLost:j,onRetry:x}),N&&O]}),"user"===a.role?(D=k&&!!f&&"running"!==f.status&&!["completed","failed","cancelled","superseded"].includes(f.status),E=a.content.match(/^\/(\S+)\s?([\s\S]*)$/),F=E?.[1]??null,G=E?E[2]||"":a.content,(0,b.jsx)("div",{className:"flex justify-end","data-message-id":a.id,...a.task_id?{"data-task-id":a.task_id}:{},children:(0,b.jsxs)("div",{className:(0,i.cn)("max-w-[80%] px-4 py-2 bg-primary text-primary-foreground text-base relative",at[C]),children:[D&&(0,b.jsx)("div",{className:(0,i.cn)("absolute inset-0 animate-pulse pointer-events-none",at[C]),style:{boxShadow:"0 0 0 2px var(--bubble-glow)"}}),F&&(0,b.jsxs)("span",{className:"inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-primary-foreground/15 text-primary-foreground mb-1",children:["/",F]}),G&&(0,b.jsx)("div",{className:"markdown markdown-user",children:(0,b.jsx)(n.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:ao,literalTagContent:ap,components:z,children:ag(G,d)})}),a.attachment_ids&&a.attachment_ids.length>0&&(0,b.jsx)(ar,{attachmentIds:a.attachment_ids,artifacts:e,onArtifactClick:s}),!a.attachment_ids&&(0,b.jsx)(as,{pendingFiles:r,messageId:a.id})]})})):"event"===a.role?(H=a.metadata?.emailId,I=a.metadata?.issueId,J=a.metadata?.calendarEventId,(0,b.jsx)("div",{className:"flex justify-start","data-message-id":a.id,...a.task_id?{"data-task-id":a.task_id}:{},children:(0,b.jsxs)("div",{className:(0,i.cn)("w-full rounded-md border bg-muted/50 text-muted-foreground text-sm px-3 py-2 flex items-start gap-2",(!!H||!!I||!!J)&&"cursor-pointer hover:bg-muted transition-colors"),onClick:H?()=>t(H):I?()=>u(I):J?()=>v(J):void 0,children:[(0,b.jsx)(aq,{content:a.content,conversationType:q}),(0,b.jsx)("span",{className:"min-w-0 wrap-anywhere",children:a.content})]})})):M?null:(0,b.jsxs)("div",{className:(0,i.cn)("group/msg flex flex-col justify-start min-w-0 overflow-x-clip",A&&"bg-muted/30 rounded-lg px-2 -mx-2"),"data-message-id":a.id,"data-quote-source":!0,...a.task_id?{"data-task-id":a.task_id}:{},children:[m&&"assistant"===a.role&&a.task_id&&l>1&&(0,b.jsx)(ai,{taskId:a.task_id,thinkingCount:l-1,workspaceId:o}),(0,b.jsx)("div",{className:"markdown max-w-full min-w-0 px-1 py-1 text-base text-foreground",children:(0,b.jsx)(n.Streamdown,{controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:ao,literalTagContent:ap,components:z,children:ag(a.content,d)})}),O]})]})});var av=a.i(781418),aw=a.i(722393);let ax={mention:function(a){let{children:c,...d}=a,{agents:e}=(0,s.useAgentContext)(),f=d["data-agent-id"]??d.dataAgentId,g=f?e.find(a=>a.id===f):void 0;if(!g&&"string"==typeof c){let a=c.startsWith("@")?c.slice(1):c;g=e.find(b=>b.name.toLowerCase()===a.toLowerCase())}return g?(0,b.jsxs)(aw.Popover,{children:[(0,b.jsx)(aw.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,b.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:c}),(0,b.jsx)(aw.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,b.jsx)(av.AgentPreviewCard,{agent:g})})]}):(0,b.jsx)("span",{className:"mention-highlight",children:c})},p:({children:a,node:c,...d})=>(0,b.jsx)("div",{"data-md-p":"",...d,children:a})};function ay(a,b){if("issue_event"===b)return"issue";if("email_notification"===b)return"email";if("calendar_event"===b)return"calendar";let c=a.toLowerCase();return c.startsWith("issue ")||c.startsWith("issue:")?"issue":c.includes("email")?"email":"calendar"}function az(a){return a.slice().sort((a,b)=>{let c=a.created_at.localeCompare(b.created_at);return 0!==c?c:a.id.localeCompare(b.id)})}function aA(a,b){let c=new Map;for(let b of a)c.set(b.id,b);for(let a of b)c.set(a.id,a);return az([...c.values()])}function aB(a){let b=[],c=[],d=!1;for(let e of a)"message"===e.kind&&"user"===e.data.role?(d=!0,b.push(e)):"message"===e.kind&&"assistant"===e.data.role?(b.push(e),b.push(...c),c=[],d=!1):d&&"artifact"===e.kind?c.push(e):b.push(e);return b.push(...c),b}function aC(a){let b=(0,c.useRef)(a);return(0,c.useEffect)(()=>{b.current=a},[a]),b}function aD({agentName:a}){return(0,b.jsxs)("div",{className:"flex items-center gap-3 py-4 select-none","aria-hidden":!0,children:[(0,b.jsx)("div",{className:"flex-1 border-t border-border/40"}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground/60 whitespace-nowrap",children:[a," took a nap 💤"]}),(0,b.jsx)("div",{className:"flex-1 border-t border-border/40"})]})}function aE({artifact:a,version:c,hasDuplicates:d,onClick:e}){return(0,b.jsxs)("button",{onClick:()=>e(a),className:(0,i.cn)("flex items-center gap-3 w-full max-w-sm rounded-lg border border-border/60 bg-muted/30","px-3.5 py-2.5 text-left transition-colors duration-150","hover:bg-muted/60 hover:border-border"),children:[(0,b.jsx)(D.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("p",{className:"text-sm font-medium truncate",children:[a.filename,d&&(0,b.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",c]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,W.formatSize)(a.size)})]})]})}function aF({agentId:a,targetConvId:h,scrollToTaskId:j,scrollToMessageId:k}){let l,n,o,A=(0,e.useParams)(),K=(0,e.useSearchParams)(),{workspaceId:M,slug:N}=(0,f.useWorkspace)(),{agents:O,agentLinks:P,activeTaskCounts:Q,subscribeWs:R,subscribeReconnect:S}=(0,s.useAgentContext)(),{refresh:T}=(0,t.useInboxCount)(),{activeChannel:U,loading:X,setAgentId:Y}=(0,v.useChannel)(),Z=a??A.id,$=void 0!==j?j:K.get("task"),af=void 0!==k?k:K.get("msg"),ag=void 0!==h?h:K.get("conv"),[ah,ai]=(0,c.useState)(null),[aj,ak]=(0,c.useState)([]),[al,am]=(0,c.useState)(()=>""),[an,ao]=(0,c.useState)(!1),[ap,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(null),[at,av]=(0,c.useState)([]),[ay,aG]=(0,c.useState)(!0),[aH,aI]=(0,c.useState)(!1),[aJ,aK]=(0,c.useState)(!1),[aL,aM]=(0,c.useState)(!1),[aN,aO]=(0,c.useState)([]),[aP,aQ]=(0,c.useState)(!1),[aR,aS]=(0,c.useState)(null),[aT,aU]=(0,c.useState)(null),[aV,aW]=(0,c.useState)(!1),[aX,aY]=(0,c.useState)(null),[aZ,a$]=(0,c.useState)(!1),[a_,a0]=(0,c.useState)(null),[a1,a2]=(0,c.useState)(!1),[a3,a4]=(0,c.useState)(null),[a5,a6]=(0,c.useState)(null),[a7,a8]=(0,c.useState)(!1),[a9,ba]=(0,c.useState)(null),[bb,bc]=(0,c.useState)(null),[bd,be]=(0,c.useState)([]),[bf,bg]=(0,c.useState)([]),[bh,bi]=(0,c.useState)(null),[bj,bk]=(0,c.useState)([]),[bl,bm]=(0,c.useState)(!1),[bn,bo]=(0,c.useState)([]),[bp,bq]=(0,c.useState)({}),[br]=(0,c.useState)(()=>Date.now()),[bs,bt]=(0,c.useState)(()=>new Map),[bu,bv]=(0,c.useState)(()=>null),[bw,bx]=(0,c.useState)(!1),[by,bz]=(0,c.useState)(null),[bA,bB]=(0,c.useState)(new Set),bC=(0,c.useRef)(bA);(0,c.useEffect)(()=>{bC.current=bA});let{increment:bD,decrement:bE,refresh:bF}=(0,u.useFlagCount)(),{writeToCache:bG}=function(a,b){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(a);return(0,c.useEffect)(()=>{if(h.current=a,!a||!b){e(null),g(!1);return}(0,r.openCacheDB)(b);let c=!1;return(0,r.getCachedMessages)(a,b).then(b=>{c||h.current!==a||(b&&b.length>0?(e(b),g(!0)):(e(null),g(!1)))}),()=>{c=!0}},[a,b]),{cachedMessages:d,isFromCache:f,writeToCache:(0,c.useCallback)(async(a,c,d)=>{h.current&&b&&await (0,r.mergeCachedMessages)(h.current,a,c,b,d)},[b])}}(ag??null,M),bH=(0,c.useRef)(bG);(0,c.useEffect)(()=>{bH.current=bG},[bG]),(0,c.useEffect)(()=>{Y(Z)},[Z,Y]);let bI=(0,c.useMemo)(()=>aN.filter(a=>"agent"===a.source),[aN]),{versionMap:bJ,duplicateFilenames:bK}=(0,c.useMemo)(()=>(0,ac.computeArtifactVersions)(bI),[bI]),bL=(0,c.useMemo)(()=>"agent"===aT?bI:"issue"===aT?a5?.artifacts??[]:[],[aT,bI,a5?.artifacts]),{versionMap:bM,duplicateFilenames:bN}=(0,c.useMemo)(()=>(0,ac.computeArtifactVersions)(bL),[bL]),bO=(0,c.useMemo)(()=>(function(a,b,c,d){if(!d||0===c.length){let d=[...a.map(a=>({kind:"message",data:a})),...b.map(a=>({kind:"artifact",data:a})),...c.map(a=>({kind:"nap",data:a}))];return d.sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);if(0!==c)return c;if("nap"===a.kind||"nap"===b.kind){if("nap"===a.kind&&"nap"!==b.kind)return 1;if("nap"!==a.kind&&"nap"===b.kind)return -1}return a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)}),aB(d)}let e=new Set(c.map(a=>a.id.replace(/^nap-/,""))),f=[...c].sort((a,b)=>a.created_at.localeCompare(b.created_at)),g=c=>aB([...a.filter(a=>a.conversation_id===c).map(a=>({kind:"message",data:a})),...b.filter(a=>a.conversation_id===c).map(a=>({kind:"artifact",data:a}))].sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);return 0!==c?c:a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)})),h=[];for(let a of f){let b=a.id.replace(/^nap-/,"");h.push(...g(b)),h.push({kind:"nap",data:a})}h.push(...g(d));let i=new Set([...e,d]),j=a.filter(a=>!i.has(a.conversation_id)),k=b.filter(a=>!i.has(a.conversation_id));if(j.length>0||k.length>0){let a=[...j.map(a=>({kind:"message",data:a})),...k.map(a=>({kind:"artifact",data:a}))];a.sort((a,b)=>{let c=a.data.created_at.localeCompare(b.data.created_at);return 0!==c?c:a.kind!==b.kind?"message"===a.kind?-1:1:a.data.id.localeCompare(b.data.id)});let b=aB(a),c=h.findIndex(a=>"nap"===a.kind);c>=0?h.splice(c,0,...b):h.push(...b)}return h})(aj,bI,bn,ah?.id),[aj,bI,bn,ah?.id]),bP=(0,c.useMemo)(()=>(function(a){let b=Array(a.length).fill(null),c=a=>"user"===a.role||"assistant"===a.role;for(let d=0;d<a.length;d++){let e=a[d];if("message"!==e.kind)continue;let f=e.data;if(!c(f))continue;let g=d>0?a[d-1]:null,h=d<a.length-1?a[d+1]:null,i=g?.kind==="message"&&c(g.data)&&g.data.role===f.role&&(!f.created_at||!g.data.created_at||6e4>Math.abs(new Date(f.created_at).getTime()-new Date(g.data.created_at).getTime())),j=h?.kind==="message"&&c(h.data)&&h.data.role===f.role&&(!f.created_at||!h.data.created_at||6e4>Math.abs(new Date(h.data.created_at).getTime()-new Date(f.created_at).getTime()));i&&j?b[d]="middle":i&&!j?b[d]="last":!i&&j?b[d]="first":b[d]="solo"}return b})(bO),[bO]),bQ=(0,c.useCallback)(a=>{(0,ac.isPreviewable)(a)?(aS(a),aU("agent"),aQ(!0)):window.open((0,ac.getArtifactUrl)(a.id,M,!0),"_blank")},[M]),bR=(0,c.useCallback)(a=>{(0,ac.isPreviewable)(a)?(aS(a),aU("issue"),aQ(!0)):window.open((0,ac.getArtifactUrl)(a.id,M,!0),"_blank")},[M]),bS=(0,c.useRef)(null),bT=(0,c.useRef)(null),bU=(0,c.useRef)(null),bV=(0,c.useRef)(null),bW=(0,c.useRef)(0),bX=(0,c.useRef)(0),bY=(0,c.useRef)(!1),bZ=(0,c.useRef)(!1),b$=(0,c.useRef)(!0),b_=(0,c.useRef)(!1),b0=(0,c.useRef)(null),b1=(0,c.useRef)(null),b2=(0,c.useRef)(0),b3=(0,c.useRef)(void 0),b4=(0,c.useRef)(null),b5=(0,c.useRef)({completedKey:null}),b6=(0,c.useRef)(null),b7=(0,c.useRef)(null),[b8,b9]=(0,c.useState)(""),ca=(0,c.useMemo)(()=>O.filter(a=>a.id!==Z),[O,Z]),[cb,cc]=(0,c.useState)([]),cd=(0,c.useRef)(!1),ce=(0,c.useRef)(!1);(0,c.useEffect)(()=>{cd.current||(cd.current=!0,(0,q.getAgentSkills)(Z,M).then(a=>cc(a.skills)).catch(()=>{}))},[Z,M]);let[cf]=(0,c.useState)(()=>null),cg=function({input:a,caretIndex:b,skills:d,onInputChange:e,initialActiveSkill:f,getAnchorPos:g,onAfterSelect:h}){let[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),[m,n]=(0,c.useState)(0),[o,p]=(0,c.useState)({top:0,left:0}),q=(0,c.useRef)(null),r=(0,c.useMemo)(()=>{if(!i)return[];if(!k)return d;let a=k.toLowerCase(),b=[],c=[];for(let e of d){let d=e.name.toLowerCase();d.startsWith(a)?b.push(e):d.includes(a)&&c.push(e)}return[...b,...c]},[i,k,d]);(0,c.useEffect)(()=>{n(0)},[r.length,k]);let[s,t]=(0,c.useState)(f??null);(0,c.useEffect)(()=>{if(s||null===b)return void j(!1);let c=function(a,b){if(!a.startsWith("/")||0===b)return null;let c=b-1;for(;c>=0&&b-c<=30;){let d=a.charCodeAt(c);if(47===d&&0===c)return{start:0,query:a.slice(1,b)};if(10===d||13===d||32===d)break;c--}return null}(a,b);if(c){q.current=c.start,l(c.query),j(!0);let a=g(c.start);a&&p(a)}else j(!1),q.current=null},[a,b,g,s]);let u=(0,c.useCallback)(a=>{t(a),e(""),j(!1),h?.()},[e,h]),v=(0,c.useCallback)(()=>{t(null)},[]),w=(0,c.useCallback)(a=>!!i&&0!==r.length&&!a.isComposing&&("ArrowDown"===a.key?(a.preventDefault(),n(a=>(a+1)%r.length),!0):"ArrowUp"===a.key?(a.preventDefault(),n(a=>(a-1+r.length)%r.length),!0):"Enter"===a.key||"Tab"===a.key?(a.preventDefault(),u(r[m]),!0):"Escape"===a.key&&(a.preventDefault(),j(!1),!0)),[i,r,m,u]);return{isOpen:i,query:k,selectedIndex:m,anchorPos:o,skills:r,activeSkill:s,handleSlashKeyDown:w,selectSkill:u,clearActiveSkill:v,setActiveSkill:t}}({input:b8,caretIndex:bh,skills:cb,onInputChange:()=>b7.current?.clear(),initialActiveSkill:cf,getAnchorPos:(0,c.useCallback)(a=>b7.current?.coordsAtTextIndex(a)??null,[]),onAfterSelect:(0,c.useCallback)(()=>{requestAnimationFrame(()=>b7.current?.focus())},[])});(0,c.useEffect)(()=>{0===cb.length||!cg.activeSkill||cb.some(a=>a.name===cg.activeSkill.name)||cg.setActiveSkill(null)},[cb]),(0,c.useEffect)(()=>{let a=`chat-draft:${Z}:${ag??"default"}`;al?localStorage.setItem(a,al):localStorage.removeItem(a)},[al,Z,ag]),(0,c.useEffect)(()=>{if(!ce.current)return;let a=`chat-draft-meta:${Z}:${ag??"default"}`,b={};cg.activeSkill&&(b.skill={name:cg.activeSkill.name,description:cg.activeSkill.description}),bu&&(b.quote=bu),b.skill||b.quote?localStorage.setItem(a,JSON.stringify(b)):localStorage.removeItem(a)},[cg.activeSkill,bu,Z,ag]),(0,c.useEffect)(()=>{an||b7.current?.focus()},[an]);let ch=(0,c.useCallback)(()=>{b$.current=!0,setTimeout(()=>{bS.current?.scrollTo({top:bS.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,c.useEffect)(()=>{var a,b;if(!ag&&X)return;let c=(a={workspaceId:M,agentId:Z,targetConvId:ag,scrollToTaskId:$}).targetConvId?`${a.workspaceId}::${a.agentId}::${a.targetConvId}::${a.scrollToTaskId??""}`:null;if(b=b5.current,c&&b.completedKey===c||(b.completedKey=null,0))return;bT.current&&clearInterval(bT.current),bT.current=null,bV.current=null,b4.current=null;let d=!1;aG(!0),bY.current=!1,as(null),av([]),bg([]),bt(new Map),bo([]),bq({}),bk([]),bm(!1),b1.current=null,am(localStorage.getItem(`chat-draft:${Z}:${ag??"default"}`)??"");let e=localStorage.getItem(`chat-draft-meta:${Z}:${ag??"default"}`);if(e)try{let a=JSON.parse(e);bv(a.quote??null),cg.setActiveSkill(a.skill?a.skill:null)}catch{bv(null),cg.setActiveSkill(null)}else bv(null),cg.setActiveSkill(null);async function f(a){let b=await (0,r.getCacheMeta)(a,M);if(b?.newestMessageId){let c=await (0,r.getCachedMessages)(a,M);if(d)return{painted:!1,cacheMeta:b};if(c&&c.length>0)return ak(c),aK(b.hasMore),aG(!1),{painted:!0,cacheMeta:b}}return{painted:!1,cacheMeta:b}}return ce.current=!0,ak([]),async function(){let a=!1;try{let b=null,c=null,e=null;if(ag){b=ag;let e=await f(b);if(d)return;c=e.cacheMeta,a=e.painted}else{let g=await (0,r.getLastOpenConversation)(Z,U,M);if(d)return;if(g?.conversation_id&&g.serverMessageCount>0){let b=await f(g.conversation_id);if(d)return;b.painted&&(a=!0,e=g.conversation_id,c=b.cacheMeta)}try{let g=await (0,q.checkFreshness)({agentId:Z,channel:U},M);if(d)return;if(b=g.conversation_id,e&&b!==e){bY.current=!1,b$.current=!0;let e=await f(b);if(d)return;c=e.cacheMeta,a=e.painted,e.painted||(ak([]),aG(!0))}else if(!e){let e=await f(b);if(d)return;c=e.cacheMeta,a=e.painted}}catch{}}if(b){b4.current=b;let e=await (0,q.conversationInit)(b,M,{newestMessageId:c?.newestMessageId??void 0,messageCount:c?.serverMessageCount||void 0});if(d)return;if(ai(e.conversation),bm(e.has_more_conversations),!e.cache_valid&&e.messages){let c=b$.current;ak(a=>aA(a,e.messages)),b4.current===b&&(0,r.mergeCachedMessages)(b,e.messages,e.has_more_messages,M,e.message_count).catch(()=>{}),aK(e.has_more_messages),a&&bY.current&&c&&ch()}else c&&aK(c.hasMore);if(b4.current===b){let a=await (0,r.getCacheMeta)(b,M);if(d)return;(0,r.setLastOpenConversation)(Z,U,{conversation_id:b,newestMessageId:a?.newestMessageId??c?.newestMessageId??null,serverMessageCount:e.message_count},M).catch(()=>{})}if(bq(e.thinking_counts),aO(e.artifacts),bg(e.buffered_messages),bB(new Set(e.flagged_message_ids)),e.active_task&&(as(e.active_task),av(e.task_messages),e.task_messages.length>0&&(bW.current=Math.max(...e.task_messages.map(a=>a.seq))),b0.current?.(e.active_task.id,b,bW.current)),$){let a=await (0,q.getTask)($,M).catch(()=>null);if(d)return;if(a&&!["completed","failed","cancelled","superseded"].includes(a.status)){as(a);let c=await (0,q.getTaskMessages)($,M).catch(()=>[]);if(d)return;av(c),c.length>0&&(bW.current=Math.max(...c.map(a=>a.seq))),b0.current?.(a.id,b,bW.current)}}}else{let b=await (0,q.chatInit)(Z,M,U);if(d)return;b4.current=b.conversation.id,ai(b.conversation);let c=b$.current;ak(a=>a.length>0?aA(a,b.messages):b.messages),aK(b.has_more_messages),aO(b.artifacts),bg(b.buffered_messages),bm(b.has_more_conversations),(0,r.mergeCachedMessages)(b.conversation.id,b.messages,b.has_more_messages,M).catch(()=>{}),(0,r.setLastOpenConversation)(Z,U,{conversation_id:b.conversation.id,newestMessageId:b.messages.length>0?b.messages[b.messages.length-1].id:null,serverMessageCount:b.has_more_messages?0:b.messages.length},M).catch(()=>{}),a&&bY.current&&c&&ch(),(0,q.listFlaggedMessageIds)(M,b.conversation.id).then(a=>{d||bB(new Set(a.message_ids))}).catch(()=>{}),b.active_task&&(as(b.active_task),b.task_messages.length>0&&(av(b.task_messages),bW.current=Math.max(...b.task_messages.map(a=>a.seq))),["completed","failed","cancelled","superseded"].includes(b.active_task.status)||b0.current?.(b.active_task.id,b.conversation.id,bW.current))}}catch{a?w.toast.error("Couldn't refresh conversation"):w.toast.error("Failed to load conversation")}finally{if(!d){var b;aG(!1),b=b5.current,c&&(b.completedKey=c)}}}(),()=>{d=!0}},[Z,M,ag,$,U,X]);let ci=(0,c.useRef)(T);(0,c.useEffect)(()=>{ci.current=T},[T]);let cj=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!ah?.id||!M||cj.current===ah.id)return;cj.current=ah.id;let a=setTimeout(()=>{(0,q.markInboxRead)(ah.id,M).then(()=>ci.current()).catch(()=>{})},1e3);return()=>{cj.current=null,clearTimeout(a)}},[ah?.id,M]),(0,c.useEffect)(()=>{ay||!(aj.length>0)||bY.current||(bY.current=!0,$||af?b$.current=!1:h?setTimeout(()=>{let a=bS.current?.querySelectorAll("[data-quote-source]");a&&a.length>0?a[a.length-1].scrollIntoView({behavior:"instant",block:"start"}):bS.current?.scrollTo({top:bS.current.scrollHeight})},50):setTimeout(()=>{bS.current?.scrollTo({top:bS.current.scrollHeight})},50))},[ay,aj.length,$,af,h]),(0,c.useEffect)(()=>{let a;if(!$||ay||!ah)return;b$.current=!1,b_.current=!0;let b=!1,c=()=>{if(b)return!1;let c=document.querySelector(`[data-task-id="${CSS.escape($)}"]`);return!!c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),c.classList.add("task-highlight"),a=setTimeout(()=>{c.classList.remove("task-highlight"),b||(b_.current=!1)},1500),!0)},d=setTimeout(async()=>{if(!b&&!c())try{let a=await (0,q.listMessagesAroundTask)(ah.id,M,$);if(b)return;a.length>0?(ak(b=>aA(b,a)),requestAnimationFrame(()=>{setTimeout(()=>{c()||(b_.current=!1)},100)})):b_.current=!1}catch{b||(b_.current=!1)}},100);return()=>{b=!0,clearTimeout(d),a&&clearTimeout(a)}},[$,ay,ah,M]),(0,c.useEffect)(()=>{let a;if(!af||$||ay||!ah)return;b$.current=!1,b_.current=!0;let b=!1,c=setTimeout(()=>{!b&&((()=>{if(b)return!1;let c=document.querySelector(`[data-message-id="${CSS.escape(af)}"]`);return!!c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),c.classList.add("task-highlight"),a=setTimeout(()=>{c.classList.remove("task-highlight"),b||(b_.current=!1)},1500),!0)})()||(bS.current?.scrollTo({top:bS.current.scrollHeight}),b_.current=!1))},100);return()=>{b=!0,clearTimeout(c),a&&clearTimeout(a)}},[af,$,ay,ah]);let ck=ar?.status;(0,c.useEffect)(()=>{b_.current||("running"===ck||"queued"===ck)&&b$.current&&ch()},[at.length,ck,ch]);let cl=(0,c.useMemo)(()=>O.find(a=>a.id===Z)?.name??"Agent",[O,Z]),cm=aC(aj),cn=aC(aJ),co=aC(bj),cp=aC(bl),cq=aC(cl),cr=aC(U),cs=(0,c.useCallback)(async(a=!1)=>{if(!ah||bZ.current)return;bZ.current=!0;let b=cm.current,c=cn.current,e=cp.current,f=cq.current,g=cr.current,h=!!ag,i=b[0],j=b1.current?.id??ah.id,k=c&&i,l=co.current;if(!h&&!k&&0===l.length&&e){let a=b1.current??{id:ah.id,created_at:ah.created_at};try{let b=await (0,q.listPreviousConversations)(Z,M,{exclude:ah.id,before:a.created_at,channel:g});l=b.conversations,bk(b.conversations),bm(b.has_more)}catch{bm(!1)}}let m=!h&&l.length>0;if(!k&&!m){bZ.current=!1;return}aM(!0);let n=bS.current;n&&(n.style.overflowAnchor="none");let o=n?.scrollHeight??0;try{let b=[],c=[],m=20,p=!1,s=[],t=!1;if(k){let a=j===ah.id?await (0,r.getCachedMessagesBefore)(j,i.created_at,i.id,20,M):null;if(a)b=a.messages,m-=a.messages.length,p=a.hasMore;else{let a=await (0,q.listMessages)(j,M,{limit:20,before:i.created_at,beforeId:i.id});b=a.messages,m-=a.messages.length,p=a.has_more}t=p}if(!h&&!p&&m>0){if(0===l.length&&e){let a=b1.current??{id:ah.id,created_at:ah.created_at};try{let b=await (0,q.listPreviousConversations)(Z,M,{exclude:ah.id,before:a.created_at,channel:g});l=b.conversations,bk(b.conversations),bm(b.has_more)}catch{bm(!1)}}let a=0,b=0;for(;a<l.length&&m>0&&b<5;){let d=l[a];a++,b++;let e=await (0,q.listMessages)(d.id,M,{limit:m});if(0===e.messages.length){b1.current=d;continue}let g=b1.current?.created_at??ah.created_at;s.push({agentName:f,created_at:g,id:`nap-${d.id}`}),c=[...e.messages,...c],m-=e.messages.length,p=e.has_more,b1.current=d}a>0&&bk(b=>b.slice(a))}let u=[...c,...b];if((0,d.flushSync)(()=>{u.length>0?(s.length>0&&bo(a=>{let b=new Set(a.map(a=>a.id)),c=s.filter(a=>!b.has(a.id));return[...a,...c]}),aK(p),ak(a=>{let b=new Set(a.map(a=>a.id));return[...u.filter(a=>!b.has(a.id)),...a]})):aK(!1)}),u.length>0&&ah){let a=u.filter(a=>a.conversation_id===ah.id);a.length>0&&(0,r.mergeCachedMessages)(ah.id,a,t,M).catch(()=>{})}if(bZ.current=!1,(0,d.flushSync)(()=>aM(!1)),n)if(a)n.scrollTop=n.scrollHeight;else{let a=n.scrollHeight;n.scrollTop=a-o}}catch{w.toast.error("Failed to load older messages")}finally{bZ.current=!1,aM(!1),bS.current&&(bS.current.style.overflowAnchor="")}},[ah,M,Z,ag,cm,cn,cp,cq,cr,co]),ct=ag?aJ:aJ||bj.length>0||bl;(0,c.useEffect)(()=>{ah?.id!==b3.current&&(b3.current=ah?.id,b2.current=0)},[ah?.id]),(0,c.useEffect)(()=>{ay||!ah||$||ag||aj.length>=10||!ct||aL||b2.current>=3||(b2.current+=1,cs(!0))},[ay,aj.length,ct,aL,ah,cs,$,ag]);let cu=(0,c.useCallback)(()=>{let a=bS.current;a&&(b$.current=a.scrollHeight-a.scrollTop-a.clientHeight<100)},[]),cv=(0,c.useCallback)((a,b,c)=>{bT.current&&clearInterval(bT.current),bW.current=c??0,bX.current=0,aI(!1),bV.current=a,bT.current=setInterval(async()=>{if(bV.current===a)try{let[c,d]=await Promise.all([(0,q.getTask)(a,M),(0,q.getTaskMessages)(a,M,bW.current||void 0)]),e=bV.current!==a;if(bX.current=0,aI(!1),d.length>0&&!e&&(av(a=>{let b=new Set(a.map(a=>a.seq)),c=d.filter(a=>!b.has(a.seq));return c.length>0?[...a,...c]:a}),bW.current=Math.max(...d.map(a=>a.seq),bW.current)),"completed"===c.status||"failed"===c.status||"cancelled"===c.status||"superseded"===c.status){if(e)return void(0,q.listMessages)(b,M).then(({messages:a})=>{ak(b=>aA(b,a)),(0,r.mergeCachedMessages)(b,a,null,M).catch(()=>{})}).catch(()=>{});bT.current&&clearInterval(bT.current),bT.current=null,bU.current&&clearTimeout(bU.current),bU.current=setTimeout(()=>{(0,q.markInboxRead)(b,M).then(()=>ci.current()).catch(()=>{})},1e3);let d=!b_.current&&b$.current;try{let[a,d]=await Promise.all([(0,q.listMessages)(b,M),(0,q.listArtifacts)(b,M).catch(()=>null)]);ak(b=>aA(b,a.messages)),(0,r.mergeCachedMessages)(b,a.messages,null,M).catch(()=>{}),d&&aO(d),as(c)}catch{as(c),w.toast.error("Failed to refresh messages")}d&&requestAnimationFrame(()=>{bS.current?.scrollTo({top:bS.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!bT.current)try{let[c,d]=await Promise.all([(0,q.getActiveTask)(b,M),(0,q.listBufferedMessages)(b,M)]);if(bg(d),c&&c.id!==a){let{messages:a}=await (0,q.listMessages)(b,M);ak(b=>aA(b,a)),(0,r.mergeCachedMessages)(b,a,null,M).catch(()=>{}),as(c),av([]),b0.current?.(c.id,b)}}catch{}},1e3)}else e||as(c)}catch{if(bV.current!==a)return;bX.current+=1,bX.current>=3&&aI(!0),bX.current>=10&&(bT.current&&clearInterval(bT.current),bT.current=null,w.toast.error("Lost connection to agent"))}},3e3)},[M]);(0,c.useEffect)(()=>{b0.current=cv},[cv]),(0,c.useEffect)(()=>()=>{bT.current&&clearInterval(bT.current),bU.current&&clearTimeout(bU.current)},[]);let cw=(0,c.useRef)(null);(0,c.useEffect)(()=>{cw.current=ar?.id??null},[ar]),(0,c.useEffect)(()=>R(a=>{if("task.messages"===a.type&&a.taskId===cw.current){let b=a.messages.filter(a=>a.seq>bW.current);b.length>0&&(av(a=>{let c=new Set(a.map(a=>a.seq)),d=b.filter(a=>!c.has(a.seq));return d.length>0?[...a,...d]:a}),bW.current=Math.max(...b.map(a=>a.seq),bW.current))}if("task.created"===a.type&&a.conversationId===ah?.id){(0,q.listMessages)(a.conversationId,M).then(({messages:b})=>{ak(a=>aA(a,b)),(0,r.mergeCachedMessages)(a.conversationId,b,null,M).catch(()=>{})}).catch(()=>{});let b=a.task;cw.current=b.id,as(b),av([]),bW.current=0,b0.current?.(b.id,a.conversationId)}if("conversation.message"===a.type&&(a.conversationId===b4.current&&(0,r.appendCachedMessage)(a.conversationId,a.message,M).catch(()=>{}),a.conversationId===ah?.id&&ak(b=>{let c=new Date(a.message.created_at).getTime(),d=b.findIndex(b=>b.id.startsWith("temp-")&&b.role===a.message.role&&b.content===a.message.content&&2e3>Math.abs(new Date(b.created_at).getTime()-c));if(-1!==d){let c=[...b];return c[d]=a.message,c}return aA(b,[a.message])})),"task.updated"===a.type&&a.taskId===cw.current&&as(b=>b?{...b,status:a.status}:b),"artifact.uploaded"===a.type&&a.conversationId===ah?.id&&aO(b=>b.some(b=>b.id===a.artifact.id)?b:[...b,a.artifact]),"followup.dispatched"===a.type&&a.conversationId===ah?.id){bg(b=>b.filter(b=>b.id!==a.message.id)),(0,q.listBufferedMessages)(a.conversationId,M).then(bg).catch(()=>{}),(0,q.listMessages)(a.conversationId,M).then(({messages:b})=>{ak(a=>aA(a,b)),(0,r.mergeCachedMessages)(a.conversationId,b,null,M).catch(()=>{})}).catch(()=>{});let b=a.task;cw.current=b.id,as(b),av([]),b0.current?.(b.id,a.conversationId)}"followup.created"===a.type&&a.conversationId===ah?.id&&bg(b=>(function(a,b){if(a.some(a=>a.id===b.id))return a;let c=new Date(b.created_at).getTime();return a.some(a=>a.id.startsWith("temp-")&&2e3>Math.abs(new Date(a.created_at).getTime()-c))?a:[...a,b]})(b,a.message)),"followup.deleted"===a.type&&a.conversationId===ah?.id&&bg(b=>b.filter(b=>b.id!==a.messageId)),"followup.dispatch_failed"===a.type&&a.conversationId===ah?.id&&w.toast.error(a.error||"Failed to dispatch follow-up")}),[R,ah?.id,M]),(0,c.useEffect)(()=>S(()=>{ah?.id&&(0,r.getCacheMeta)(ah.id,M).then(a=>{(0,q.conversationInit)(ah.id,M,{newestMessageId:a?.newestMessageId??void 0,messageCount:a?.serverMessageCount??void 0}).then(a=>{!a.cache_valid&&a.messages&&(ak(b=>aA(b,a.messages)),bH.current(a.messages,a.has_more_messages,a.message_count).catch(()=>{}))}).catch(()=>{})})}),[S,ah?.id,M]);let cx=(0,c.useCallback)(a=>{let b=[];for(let c of a)c.size>0xa00000?w.toast.error(`"${c.name}" exceeds 10 MB limit`):b.push(c);b.length>0&&be(a=>[...a,...b])},[]),cy=(0,c.useCallback)(a=>{let b=a.target.files;b&&(cx(Array.from(b)),a.target.value="")},[cx]),cz=(0,c.useCallback)(a=>{be(b=>b.filter((b,c)=>c!==a))},[]),cA=(0,c.useCallback)(()=>{let a=window.getSelection();if(!a||a.isCollapsed||!a.rangeCount)return void bz(null);let b=a.toString().trim();if(!b)return void bz(null);let c=a.getRangeAt(0),d=c.commonAncestorContainer instanceof HTMLElement?c.commonAncestorContainer:c.commonAncestorContainer.parentElement;if(!d?.closest("[data-quote-source]"))return void bz(null);let e=c.getClientRects(),f=e[e.length-1]||c.getBoundingClientRect();bz({text:b,x:f.right,y:f.top-4})},[]);(0,c.useEffect)(()=>(document.addEventListener("selectionchange",cA),()=>document.removeEventListener("selectionchange",cA)),[cA]);let cB=(0,c.useCallback)(()=>{by&&(bv(by.text),bz(null),window.getSelection()?.removeAllRanges(),b7.current?.focus())},[by]),[cC,cD]=(0,c.useState)(!1),cE=(0,c.useRef)(0),cF=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cE.current++,a.dataTransfer.types.includes("Files")&&cD(!0)},[]),cG=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cE.current--,0===cE.current&&cD(!1)},[]),cH=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),cI=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),cD(!1),cE.current=0,cx(Array.from(a.dataTransfer.files))},[cx]),cJ=async()=>{if(ah&&!ap){aq(!0);try{let a=await (0,q.cancelActiveTask)(ah.id,M);if(a){if(cw.current&&cw.current!==a.id)return;bT.current&&clearInterval(bT.current),bT.current=null;let[b,c]=await Promise.all([(0,q.listMessages)(ah.id,M),(0,q.listBufferedMessages)(ah.id,M)]);ak(a=>aA(a,b.messages)),(0,r.mergeCachedMessages)(ah.id,b.messages,null,M).catch(()=>{}),bg(c),as(a),av([])}}catch{w.toast.error("Failed to cancel task")}finally{aq(!1)}}},cK=async()=>{let a=al.trim();if(!a&&0===bd.length||an||!ah)return;if(!a)return void w.toast.error("Please type a message");let b=bu?`> ${bu.split("\n").join("\n> ")}
|
|
2
2
|
|
|
3
|
-
${a}`:a;cg.activeSkill&&(b=`/${cg.activeSkill.name} ${b}`);let c=[...bd];if(am(""),be([]),bv(null),cg.clearActiveSkill(),ao(!0),ar&&!["completed","failed","cancelled","superseded"].includes(ar.status)){let a=`temp-${Date.now()}`,d={id:a,conversation_id:ah.id,role:"user",content:b,task_id:null,attachment_ids:null,status:"buffered",created_at:new Date().toISOString()};bg(a=>[...a,d]);try{let{message:d}=await (0,q.createBufferedMessage)(ah.id,b,M,c.length>0?c:void 0);bg(b=>b.some(a=>a.id===d.id)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?d:b))}catch(d){bg(b=>b.filter(b=>b.id!==a)),am(b),be(c),w.toast.error(d instanceof Error?d.message:"Failed to queue follow-up")}finally{ao(!1)}return}let d=`temp-${Date.now()}`,e={id:d,conversation_id:ah.id,role:"user",content:b,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};c.length>0&&bt(a=>{let b=new Map(a);return b.set(d,c),b}),ak(a=>[...a,e]),ch();try{let{message:a,task:f}=await (0,q.sendMessage)(ah.id,b,M,c.length>0?c:void 0);bt(a=>{if(!a.has(d))return a;let b=new Map(a);return b.delete(d),b}),ak(b=>{if(!b.some(a=>a.id===e.id))return b.some(b=>b.id===a.id)?b:az([...b,a]);let c=b.filter(b=>b.id!==e.id&&b.id!==a.id);return az([...c,a])}),(0,r.appendCachedMessage)(ah.id,a,M).catch(()=>{}),a.attachment_ids&&a.attachment_ids.length>0&&(0,q.listArtifacts)(ah.id,M).then(a=>aO(a)).catch(()=>{}),as(f),av([]),cv(f.id,ah.id)}catch(a){bt(a=>{if(!a.has(d))return a;let b=new Map(a);return b.delete(d),b}),ak(a=>a.filter(a=>a.id!==e.id)),am(b),be(c),w.toast.error(a instanceof Error?a.message:"Failed to send message")}finally{ao(!1),b7.current?.focus()}},cL=(0,c.useCallback)(async()=>{if(!ar||!ah)return;let a=await (0,q.retryTask)(ar.id,M);as(a),av([]),cv(a.id,ah.id)},[ar,ah,M,cv]),cM=(0,c.useCallback)(async a=>{let b=bC.current.has(a);bB(c=>{let d=new Set(c);return b?d.delete(a):d.add(a),d}),b?(bE(),(0,q.unflagMessage)(M,a).then(()=>{bF()}).catch(()=>{bB(b=>new Set(b).add(a)),bD()})):(bD(),(0,q.flagMessage)(M,a).then(()=>{bF()}).catch(()=>{bB(b=>{let c=new Set(b);return c.delete(a),c}),bE()}))},[M,bD,bE,bF]),cN=(0,c.useCallback)(async a=>{a4(a),a2(!0),a8(!0),ba(null),bc(null);try{let b=await (0,q.getIssue)(M,a);a6(b),b.issue.latest_task_id&&(0,q.getTask)(b.issue.latest_task_id,M).then(a=>bc(a)).catch(()=>bc(null)),b.issue.trace_id&&(0,q.getTrace)(b.issue.trace_id,M).then(a=>ba(a.tasks)).catch(()=>ba(null))}catch(a){w.toast.error(a instanceof Error?a.message:"Failed to load issue"),a2(!1)}finally{a8(!1)}},[M]),cO=a5?.issue?.conversation_id??null,cP=a5?.issue?.latest_task_id??null;(0,c.useEffect)(()=>{if(a1&&a3)return R(a=>{if("task.updated"===a.type&&cP&&a.taskId===cP&&(0,q.getTask)(cP,M).then(a=>bc(a)).catch(()=>{}),"conversation.message"===a.type&&cO&&a.conversationId===cO&&(a6(b=>!b||b.messages.some(b=>b.id===a.message.id)?b:{...b,messages:[...b.messages,a.message]}),"event"===a.message.role&&a.message.content.startsWith("Issue status changed:"))){let b=a.message.content.match(/-> (\w+)/);b&&a6(a=>a?{...a,issue:{...a.issue,status:b[1]}}:a)}"issue.comment"===a.type&&a.issueId===a3&&a6(b=>!b||b.comments.some(b=>b.id===a.comment.id)?b:{...b,comments:[...b.comments,a.comment]})})},[a1,a3,cO,cP,M,R]);let[cQ,cR]=(0,c.useState)(!1),cS=(0,c.useMemo)(()=>!!ah&&aj.some(a=>a.conversation_id===ah.id),[ah,aj]),cT=async()=>{if(ah&&cS&&!cQ){cR(!0);try{bT.current&&(clearInterval(bT.current),bT.current=null);let a=await (0,q.createConversation)(Z,M,U);bo(b=>[...b,{agentName:cl,created_at:a.created_at,id:`nap-${ah.id}`}]),bk(a=>[{id:ah.id,created_at:ah.created_at},...a]),ai(a),as(null),av([]),aO([]),bg([]),be([]),bt(new Map),bW.current=0,aI(!1),aK(!1),b1.current=null,ch()}catch{w.toast.error("Failed to start new conversation")}finally{cR(!1)}}},cU=!!ar&&!["completed","failed","cancelled","superseded"].includes(ar.status);return ay?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-3 md:px-5",children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4",children:[(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(x.Skeleton,{className:"h-10 w-48 rounded-lg"})}),(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,b.jsx)(x.Skeleton,{className:"h-4 w-72"}),(0,b.jsx)(x.Skeleton,{className:"h-4 w-56"}),(0,b.jsx)(x.Skeleton,{className:"h-4 w-64"})]})}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(x.Skeleton,{className:"h-10 w-36 rounded-lg"})}),(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,b.jsx)(x.Skeleton,{className:"h-4 w-64"}),(0,b.jsx)(x.Skeleton,{className:"h-4 w-48"})]})})]})}),(0,b.jsx)("div",{className:"px-3 md:px-5 pt-3 pb-5 md:pb-6",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl",children:(0,b.jsx)(x.Skeleton,{className:"h-12 w-full rounded-3xl"})})})]}):ay||ah||0!==aj.length?(0,b.jsxs)(b.Fragment,{children:[by&&(0,b.jsxs)("button",{type:"button",className:"fixed z-50 flex items-center gap-1 px-2 py-1 rounded-md bg-popover border shadow-md text-xs text-popover-foreground hover:bg-accent transition-colors",style:{left:by.x,top:by.y,transform:"translate(-100%, -100%)"},onMouseDown:a=>a.preventDefault(),onClick:cB,children:[(0,b.jsx)(F,{className:"size-3"}),"Quote"]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0",children:[(0,b.jsx)("div",{className:"h-full overflow-y-auto overflow-x-hidden px-3 md:px-5 thin-scrollbar",ref:bS,onScroll:cu,onClick:a=>{a.target.closest('[data-streamdown="code-block-actions"] button')&&w.toast.success("Copied to clipboard")},children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl pt-6 pb-[60px] min-w-0",children:[ah&&ct&&!aL&&(0,b.jsx)("div",{className:"flex justify-center py-2",children:(0,b.jsx)("button",{onClick:()=>cs(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),aL&&(0,b.jsx)("div",{className:"flex justify-center py-2",children:(0,b.jsx)(m.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===aj.length&&!ar&&(l=O.find(a=>a.id===Z),n=l?.created_at&&br-new Date(l.created_at).getTime()<3e5,o=(Q[Z]??0)>0,n&&o&&"default"===U?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 gap-3 animate-[fade-up_400ms_ease-out_both]",children:[(0,b.jsxs)("div",{className:"relative animate-bounce",children:[(0,b.jsx)(E.Mail,{className:"size-8 text-primary"}),(0,b.jsxs)("span",{className:"absolute -top-1 -right-1 flex size-3",children:[(0,b.jsx)("span",{className:"animate-ping absolute inline-flex size-full rounded-full bg-primary/60"}),(0,b.jsx)("span",{className:"relative inline-flex size-3 rounded-full bg-primary"})]})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground text-center max-w-xs",children:"Your agent is sending you a welcome email."}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground/60 text-center max-w-xs",children:"Wait for the email task in the top-left to complete, then check your inbox. Or send a message below to start chatting."})]}):(0,b.jsx)("p",{className:"text-center text-muted-foreground py-20 text-sm",children:"Send a message to start chatting with the agent."})),bO.map((a,c)=>{let d=bP[c],e="first"===d||"solo"===d||null===d,f=0===c?"":e?"mt-4":"mt-0.5";if("nap"===a.kind)return(0,b.jsx)("div",{className:f,children:(0,b.jsx)(aD,{agentName:cl})},a.data.id);if("artifact"===a.kind)return(0,b.jsx)("div",{className:f,children:(0,b.jsx)(aE,{artifact:a.data,version:bJ.get(a.data.id)??1,hasDuplicates:bK.has(a.data.filename),onClick:bQ})},`artifact-${a.data.id}`);let g=a.data;return(0,b.jsx)("div",{className:f,children:(0,b.jsx)(au,{msg:g,agents:O,artifacts:aN,activeTask:ar,taskMessages:at,connectionLost:aH,isLastMessage:aj.length>0&&aj[aj.length-1].id===g.id,thinkingCount:g.task_id?bp[g.task_id]??0:0,targetConvId:ag,workspaceId:M,conversationType:ah?.type,pendingFilesByMessage:bs,onArtifactClick:bQ,onEmailClick:a=>{aY(a),aW(!0)},onCalendarEventClick:a=>{a0(a),a$(!0)},onIssueClick:a=>cN(a),onRetry:cL,mentionComponents:ax,isFlagged:bA.has(g.id),onToggleFlag:"assistant"===g.role?cM:void 0,groupPosition:d??"solo"})},g.id)}),ar&&ar.conversation_id===ah?.id&&!["completed","failed","cancelled","superseded"].includes(ar.status)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(p,{task:ar,messages:at,connectionLost:aH})})]})}),(0,b.jsx)(ae.ScrollToBottomButton,{scrollRef:bS})]}),ah&&(0,b.jsx)(ad,{bufferedMessages:bf,onDelete:a=>{bg(b=>b.filter(b=>b.id!==a)),(0,q.deleteBufferedMessage)(ah.id,a,M).catch(()=>{bg(bf),w.toast.error("Failed to delete follow-up")})}}),(0,b.jsx)("div",{className:"relative z-10 px-3 md:px-5 pt-3 pb-5 md:pb-6",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl relative",children:(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[!ag&&(0,b.jsxs)(aw.Popover,{children:[(0,b.jsx)(aw.PopoverTrigger,{render:(0,b.jsx)(g.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,b.jsx)(H.Plus,{className:"size-4"})}),(0,b.jsxs)(aw.PopoverContent,{side:"top",align:"start",className:"w-auto p-1.5 flex flex-col gap-0.5",children:[(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:a=>(0,b.jsx)("span",{...a,className:(0,i.cn)("inline-flex",a.className),children:(0,b.jsxs)(g.Button,{variant:"ghost",size:"sm",onClick:cT,disabled:cQ||!ah||!cS||cU,className:"w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[cQ?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(B,{className:"size-3.5"}),(0,b.jsx)("span",{className:"text-xs",children:"Nap"})]})})}),(0,b.jsx)(y.TooltipContent,{side:"right",children:cU?"Wait for the task to finish":cS?"Take a nap":`${cl} is well-rested and ready to go`})]}),(0,b.jsxs)(g.Button,{variant:"ghost",size:"sm",onClick:()=>{aU("agent"),aQ(!0)},className:"relative w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[(0,b.jsx)(C,{className:"size-3.5"}),(0,b.jsx)("span",{className:"text-xs",children:"Artifacts"}),bI.length>0&&(0,b.jsx)("span",{className:"ml-auto flex size-4 items-center justify-center rounded-full bg-primary text-[9px] font-medium text-primary-foreground",children:bI.length})]})]})]}),(0,b.jsxs)("div",{className:(0,i.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",(bw||bu||cg.activeSkill)&&"rounded-2xl",an&&"opacity-50",cC&&"border-ring ring-3 ring-ring/50"),onDragEnter:cF,onDragLeave:cG,onDragOver:cH,onDrop:cI,children:[cC&&(0,b.jsx)("div",{className:(0,i.cn)("absolute inset-0 z-10 flex items-center justify-center bg-background/80 border-2 border-dashed border-ring pointer-events-none",bw||bu||cg.activeSkill?"rounded-2xl":"rounded-3xl"),children:(0,b.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),cg.activeSkill&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"shrink-0 text-xs font-medium text-primary",children:["/",cg.activeSkill.name]}),cg.activeSkill.isGlobal&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground bg-muted rounded px-1 py-0.5",children:"Global"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:cg.activeSkill.description})]}),(0,b.jsx)("button",{type:"button",onClick:cg.clearActiveSkill,className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,b.jsx)(J.X,{className:"size-3.5"})})]}),bu&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex items-start gap-2",children:[(0,b.jsx)(F,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[bu.slice(0,120),bu.length>120?"...":""]})]}),(0,b.jsx)("button",{type:"button",onClick:()=>bv(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,b.jsx)(J.X,{className:"size-3.5"})})]}),(0,b.jsx)(L,{isOpen:cg.isOpen,skills:cg.skills,selectedIndex:cg.selectedIndex,onSelect:cg.selectSkill,anchorPos:cg.anchorPos}),bd.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pt-3 pb-0.5",children:bd.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground",children:[(0,b.jsx)(D.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-30",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground/60",children:(0,W.formatSize)(a.size)}),(0,b.jsx)("button",{type:"button",onClick:()=>cz(c),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,b.jsx)(J.X,{className:"size-3"})})]},`${a.name}-${c}`))}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("input",{ref:b6,type:"file",multiple:!0,className:"hidden",onChange:cy}),(0,b.jsx)("div",{className:"px-13 py-3",children:(0,b.jsx)(V,{ref:b7,value:al,onChange:am,onEditorState:(a,b)=>{b9(a),bi(b)},onSend:cK,placeholder:cU?"Type a follow-up...":"Type a task...",disabled:an,onMultiLineChange:bx,onFiles:cx,agents:ca,agentLinks:P,currentAgentId:Z,slashIsOpen:cg.isOpen,onSlashKeyDown:cg.handleSlashKeyDown})}),(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onPointerDown:a=>a.preventDefault(),onClick:()=>b6.current?.click(),disabled:an,className:"absolute left-2 bottom-2 size-8 rounded-full text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,b.jsx)(G.Paperclip,{className:"size-3.5"})}),(0,b.jsx)(y.TooltipContent,{side:"top",children:"Attach files"})]}),!cU||al.trim()||an?(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{size:"icon-sm",onClick:cK,disabled:!al.trim()||an,className:(0,i.cn)("absolute right-2 bottom-2 size-8 rounded-full bg-primary text-primary-foreground transition-opacity duration-200",!al.trim()&&"opacity-30")}),children:an?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(z.ArrowUp,{className:"size-3.5"})}),(0,b.jsx)(y.TooltipContent,{side:"top",children:"Send"})]}):(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{size:"icon-sm",onClick:cJ,disabled:ap,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:ap?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(I.Square,{className:"size-3.5 fill-current"})}),(0,b.jsx)(y.TooltipContent,{side:"top",children:"Stop task"})]})]})]})]})})}),(0,b.jsx)(W.ArtifactSheet,{open:aP,onOpenChange:a=>{aQ(a),a||setTimeout(()=>{aS(null),aU(null)},300)},artifacts:bL,workspaceId:M,initialArtifact:aR,versionMap:bM,duplicateFilenames:bN}),(0,b.jsx)(_,{open:aV,onOpenChange:a=>{aW(a),a||setTimeout(()=>aY(null),300)},emailId:aX,workspaceId:M}),(0,b.jsx)(aa.CalendarEventSheet,{readonly:!0,open:aZ,onOpenChange:a=>{a$(a),a||setTimeout(()=>a0(null),300)},calendarEventId:a_,workspaceId:M}),(0,b.jsx)(ab.IssueSheet,{open:a1,onOpenChange:a=>{a2(a),a||setTimeout(()=>{a4(null),a6(null),bc(null)},300)},agents:O,issue:a5?.issue??null,detail:a5?{messages:a5.messages,comments:a5.comments,artifacts:a5.artifacts,traceId:a5.issue.trace_id}:null,detailLoading:a7,activeTask:bb,traceTasks:a9,slug:N,workspaceId:M,onUpdate:async(a,b)=>{try{let c=await (0,q.updateIssue)(M,a,b);a6(d=>d&&d.issue.id===a?{...d,issue:{...d.issue,...b,updated_at:c.updated_at}}:d)}catch(a){w.toast.error(a instanceof Error?a.message:"Failed to update issue")}},onStatusChange:async(a,b)=>{try{await (0,q.updateIssue)(M,a,{status:b}),a6(c=>c&&c.issue.id===a?{...c,issue:{...c.issue,status:b}}:c)}catch(a){w.toast.error(a instanceof Error?a.message:"Failed to update status")}},onCommented:()=>{a3&&cN(a3)},onArtifactClick:bR})]}):(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}}];
|
|
3
|
+
${a}`:a;cg.activeSkill&&(b=`/${cg.activeSkill.name} ${b}`);let c=[...bd];if(am(""),be([]),bv(null),cg.clearActiveSkill(),ao(!0),ar&&!["completed","failed","cancelled","superseded"].includes(ar.status)){let a=`temp-${Date.now()}`,d={id:a,conversation_id:ah.id,role:"user",content:b,task_id:null,attachment_ids:null,status:"buffered",created_at:new Date().toISOString()};bg(a=>[...a,d]);try{let{message:d}=await (0,q.createBufferedMessage)(ah.id,b,M,c.length>0?c:void 0);bg(b=>b.some(a=>a.id===d.id)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?d:b))}catch(d){bg(b=>b.filter(b=>b.id!==a)),am(b),be(c),w.toast.error(d instanceof Error?d.message:"Failed to queue follow-up")}finally{ao(!1)}return}let d=`temp-${Date.now()}`,e={id:d,conversation_id:ah.id,role:"user",content:b,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};c.length>0&&bt(a=>{let b=new Map(a);return b.set(d,c),b}),ak(a=>[...a,e]),ch();try{let{message:a,task:f}=await (0,q.sendMessage)(ah.id,b,M,c.length>0?c:void 0);bt(a=>{if(!a.has(d))return a;let b=new Map(a);return b.delete(d),b}),ak(b=>{if(!b.some(a=>a.id===e.id))return b.some(b=>b.id===a.id)?b:az([...b,a]);let c=b.filter(b=>b.id!==e.id&&b.id!==a.id);return az([...c,a])}),(0,r.appendCachedMessage)(ah.id,a,M).catch(()=>{}),a.attachment_ids&&a.attachment_ids.length>0&&(0,q.listArtifacts)(ah.id,M).then(a=>aO(a)).catch(()=>{}),as(f),av([]),cv(f.id,ah.id)}catch(a){bt(a=>{if(!a.has(d))return a;let b=new Map(a);return b.delete(d),b}),ak(a=>a.filter(a=>a.id!==e.id)),am(b),be(c),w.toast.error(a instanceof Error?a.message:"Failed to send message")}finally{ao(!1),b7.current?.focus()}},cL=(0,c.useCallback)(async()=>{if(!ar||!ah)return;let a=await (0,q.retryTask)(ar.id,M);as(a),av([]),cv(a.id,ah.id)},[ar,ah,M,cv]),cM=(0,c.useCallback)(async a=>{let b=bC.current.has(a);bB(c=>{let d=new Set(c);return b?d.delete(a):d.add(a),d}),b?(bE(),(0,q.unflagMessage)(M,a).then(()=>{bF()}).catch(()=>{bB(b=>new Set(b).add(a)),bD()})):(bD(),(0,q.flagMessage)(M,a).then(()=>{bF()}).catch(()=>{bB(b=>{let c=new Set(b);return c.delete(a),c}),bE()}))},[M,bD,bE,bF]),cN=(0,c.useCallback)(async a=>{a4(a),a2(!0),a8(!0),ba(null),bc(null);try{let b=await (0,q.getIssue)(M,a);a6(b),b.issue.latest_task_id&&(0,q.getTask)(b.issue.latest_task_id,M).then(a=>bc(a)).catch(()=>bc(null)),b.issue.trace_id&&(0,q.getTrace)(b.issue.trace_id,M).then(a=>ba(a.tasks)).catch(()=>ba(null))}catch(a){w.toast.error(a instanceof Error?a.message:"Failed to load issue"),a2(!1)}finally{a8(!1)}},[M]),cO=a5?.issue?.conversation_id??null,cP=a5?.issue?.latest_task_id??null;(0,c.useEffect)(()=>{if(a1&&a3)return R(a=>{if("task.updated"===a.type&&cP&&a.taskId===cP&&(0,q.getTask)(cP,M).then(a=>bc(a)).catch(()=>{}),"conversation.message"===a.type&&cO&&a.conversationId===cO&&(a6(b=>!b||b.messages.some(b=>b.id===a.message.id)?b:{...b,messages:[...b.messages,a.message]}),"event"===a.message.role&&a.message.content.startsWith("Issue status changed:"))){let b=a.message.content.match(/-> (\w+)/);b&&a6(a=>a?{...a,issue:{...a.issue,status:b[1]}}:a)}"issue.comment"===a.type&&a.issueId===a3&&a6(b=>!b||b.comments.some(b=>b.id===a.comment.id)?b:{...b,comments:[...b.comments,a.comment]})})},[a1,a3,cO,cP,M,R]);let[cQ,cR]=(0,c.useState)(!1),[cS,cT]=(0,c.useState)(!1),cU=(0,c.useMemo)(()=>!!ah&&aj.some(a=>a.conversation_id===ah.id),[ah,aj]),cV=async()=>{if(ah&&cU&&!cQ){cR(!0);try{bT.current&&(clearInterval(bT.current),bT.current=null);let a=await (0,q.createConversation)(Z,M,U);bo(b=>[...b,{agentName:cl,created_at:a.created_at,id:`nap-${ah.id}`}]),bk(a=>[{id:ah.id,created_at:ah.created_at},...a]),ai(a),as(null),av([]),aO([]),bg([]),be([]),bt(new Map),bW.current=0,aI(!1),aK(!1),b1.current=null,ch()}catch{w.toast.error("Failed to start new conversation")}finally{cR(!1)}}},cW=!!ar&&!["completed","failed","cancelled","superseded"].includes(ar.status);return ay?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-3 md:px-5",children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl py-6 space-y-4",children:[(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(x.Skeleton,{className:"h-10 w-48 rounded-lg"})}),(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,b.jsx)(x.Skeleton,{className:"h-4 w-72"}),(0,b.jsx)(x.Skeleton,{className:"h-4 w-56"}),(0,b.jsx)(x.Skeleton,{className:"h-4 w-64"})]})}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(x.Skeleton,{className:"h-10 w-36 rounded-lg"})}),(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsxs)("div",{className:"space-y-2 px-1 py-1",children:[(0,b.jsx)(x.Skeleton,{className:"h-4 w-64"}),(0,b.jsx)(x.Skeleton,{className:"h-4 w-48"})]})})]})}),(0,b.jsx)("div",{className:"px-3 md:px-5 pt-3 pb-5 md:pb-6",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl",children:(0,b.jsx)(x.Skeleton,{className:"h-12 w-full rounded-3xl"})})})]}):ay||ah||0!==aj.length?(0,b.jsxs)(b.Fragment,{children:[by&&(0,b.jsxs)("button",{type:"button",className:"fixed z-50 flex items-center gap-1 px-2 py-1 rounded-md bg-popover border shadow-md text-xs text-popover-foreground hover:bg-accent transition-colors",style:{left:by.x,top:by.y,transform:"translate(-100%, -100%)"},onMouseDown:a=>a.preventDefault(),onClick:cB,children:[(0,b.jsx)(F,{className:"size-3"}),"Quote"]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0",children:[(0,b.jsx)("div",{className:"h-full overflow-y-auto overflow-x-hidden px-3 md:px-5 thin-scrollbar",ref:bS,onScroll:cu,onClick:a=>{a.target.closest('[data-streamdown="code-block-actions"] button')&&w.toast.success("Copied to clipboard")},children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl pt-6 pb-15 min-w-0",children:[ah&&ct&&!aL&&(0,b.jsx)("div",{className:"flex justify-center py-2",children:(0,b.jsx)("button",{onClick:()=>cs(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),aL&&(0,b.jsx)("div",{className:"flex justify-center py-2",children:(0,b.jsx)(m.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===aj.length&&!ar&&(l=O.find(a=>a.id===Z),n=l?.created_at&&br-new Date(l.created_at).getTime()<3e5,o=(Q[Z]??0)>0,n&&o&&"default"===U?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 gap-3 animate-[fade-up_400ms_ease-out_both]",children:[(0,b.jsxs)("div",{className:"relative animate-bounce",children:[(0,b.jsx)(E.Mail,{className:"size-8 text-primary"}),(0,b.jsxs)("span",{className:"absolute -top-1 -right-1 flex size-3",children:[(0,b.jsx)("span",{className:"animate-ping absolute inline-flex size-full rounded-full bg-primary/60"}),(0,b.jsx)("span",{className:"relative inline-flex size-3 rounded-full bg-primary"})]})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground text-center max-w-xs",children:"Your agent is sending you a welcome email."}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground/60 text-center max-w-xs",children:"Wait for the email task in the top-left to complete, then check your inbox. Or send a message below to start chatting."})]}):(0,b.jsx)("p",{className:"text-center text-muted-foreground py-20 text-sm",children:"Send a message to start chatting with the agent."})),bO.map((a,c)=>{let d=bP[c],e="first"===d||"solo"===d||null===d,f=0===c?"":e?"mt-4":"mt-0.5";if("nap"===a.kind)return(0,b.jsx)("div",{className:f,children:(0,b.jsx)(aD,{agentName:cl})},a.data.id);if("artifact"===a.kind)return(0,b.jsx)("div",{className:f,children:(0,b.jsx)(aE,{artifact:a.data,version:bJ.get(a.data.id)??1,hasDuplicates:bK.has(a.data.filename),onClick:bQ})},`artifact-${a.data.id}`);let g=a.data;return(0,b.jsx)("div",{className:f,children:(0,b.jsx)(au,{msg:g,agents:O,artifacts:aN,activeTask:ar,taskMessages:at,connectionLost:aH,isLastMessage:aj.length>0&&aj[aj.length-1].id===g.id,thinkingCount:g.task_id?bp[g.task_id]??0:0,targetConvId:ag,workspaceId:M,conversationType:ah?.type,pendingFilesByMessage:bs,onArtifactClick:bQ,onEmailClick:a=>{aY(a),aW(!0)},onCalendarEventClick:a=>{a0(a),a$(!0)},onIssueClick:a=>cN(a),onRetry:cL,mentionComponents:ax,isFlagged:bA.has(g.id),onToggleFlag:"assistant"===g.role?cM:void 0,groupPosition:d??"solo"})},g.id)}),ar&&ar.conversation_id===ah?.id&&!["completed","failed","cancelled","superseded"].includes(ar.status)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(p,{task:ar,messages:at,connectionLost:aH})})]})}),(0,b.jsx)(ae.ScrollToBottomButton,{scrollRef:bS})]}),ah&&(0,b.jsx)(ad,{bufferedMessages:bf,onDelete:a=>{bg(b=>b.filter(b=>b.id!==a)),(0,q.deleteBufferedMessage)(ah.id,a,M).catch(()=>{bg(bf),w.toast.error("Failed to delete follow-up")})}}),(0,b.jsx)("div",{className:"relative z-10 px-3 md:px-5 pt-3 pb-5 md:pb-6",children:(0,b.jsx)("div",{className:"mx-auto max-w-2xl relative",children:(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[!ag&&(0,b.jsxs)(aw.Popover,{open:cS,onOpenChange:cT,children:[(0,b.jsx)(aw.PopoverTrigger,{render:(0,b.jsx)(g.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,b.jsx)(G.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(aw.PopoverContent,{side:"top",align:"start",className:"w-auto p-1.5 flex flex-col gap-0.5",children:[(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:a=>(0,b.jsx)("span",{...a,className:(0,i.cn)("inline-flex",a.className),children:(0,b.jsxs)(g.Button,{variant:"ghost",size:"sm",onClick:cV,disabled:cQ||!ah||!cU||cW,className:"w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[cQ?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(B,{className:"size-3.5"}),(0,b.jsx)("span",{className:"text-xs",children:"Nap"})]})})}),(0,b.jsx)(y.TooltipContent,{side:"right",children:cW?"Wait for the task to finish":cU?"Take a nap":`${cl} is well-rested and ready to go`})]}),(0,b.jsxs)(g.Button,{variant:"ghost",size:"sm",onClick:()=>{aU("agent"),aQ(!0)},className:"relative w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[(0,b.jsx)(C,{className:"size-3.5"}),(0,b.jsx)("span",{className:"text-xs",children:"Artifacts"}),bI.length>0&&(0,b.jsx)("span",{className:"ml-auto flex size-4 items-center justify-center rounded-full bg-primary text-[9px] font-medium text-primary-foreground",children:bI.length})]})]})]}),(0,b.jsxs)("div",{className:(0,i.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",(bw||bu||cg.activeSkill)&&"rounded-2xl",an&&"opacity-50",cC&&"border-ring ring-3 ring-ring/50"),onDragEnter:cF,onDragLeave:cG,onDragOver:cH,onDrop:cI,children:[cC&&(0,b.jsx)("div",{className:(0,i.cn)("absolute inset-0 z-10 flex items-center justify-center bg-background/80 border-2 border-dashed border-ring pointer-events-none",bw||bu||cg.activeSkill?"rounded-2xl":"rounded-3xl"),children:(0,b.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),cg.activeSkill&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"shrink-0 text-xs font-medium text-primary",children:["/",cg.activeSkill.name]}),cg.activeSkill.isGlobal&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground bg-muted rounded px-1 py-0.5",children:"Global"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:cg.activeSkill.description})]}),(0,b.jsx)("button",{type:"button",onClick:cg.clearActiveSkill,className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,b.jsx)(J.X,{className:"size-3.5"})})]}),bu&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex items-start gap-2",children:[(0,b.jsx)(F,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[bu.slice(0,120),bu.length>120?"...":""]})]}),(0,b.jsx)("button",{type:"button",onClick:()=>bv(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,b.jsx)(J.X,{className:"size-3.5"})})]}),(0,b.jsx)(L,{isOpen:cg.isOpen,skills:cg.skills,selectedIndex:cg.selectedIndex,onSelect:cg.selectSkill,anchorPos:cg.anchorPos}),bd.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pt-3 pb-0.5",children:bd.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground",children:[(0,b.jsx)(D.FileText,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate max-w-30",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground/60",children:(0,W.formatSize)(a.size)}),(0,b.jsx)("button",{type:"button",onClick:()=>cz(c),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,b.jsx)(J.X,{className:"size-3"})})]},`${a.name}-${c}`))}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("input",{ref:b6,type:"file",multiple:!0,className:"hidden",onChange:cy}),(0,b.jsx)("div",{className:"px-13 py-3",children:(0,b.jsx)(V,{ref:b7,value:al,onChange:am,onEditorState:(a,b)=>{b9(a),bi(b)},onSend:cK,placeholder:cW?"Type a follow-up...":"Type a task...",disabled:an,onMultiLineChange:bx,onFiles:cx,agents:ca,agentLinks:P,currentAgentId:Z,slashIsOpen:cg.isOpen,onSlashKeyDown:cg.handleSlashKeyDown})}),(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onPointerDown:a=>a.preventDefault(),onClick:()=>b6.current?.click(),disabled:an,className:"absolute left-2 bottom-2 size-8 rounded-full text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,b.jsx)(H.Paperclip,{className:"size-3.5"})}),(0,b.jsx)(y.TooltipContent,{side:"top",children:"Attach files"})]}),!cW||al.trim()||an?(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{size:"icon-sm",onClick:cK,disabled:!al.trim()||an,className:(0,i.cn)("absolute right-2 bottom-2 size-8 rounded-full bg-primary text-primary-foreground transition-opacity duration-200",!al.trim()&&"opacity-30")}),children:an?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(z.ArrowUp,{className:"size-3.5"})}),(0,b.jsx)(y.TooltipContent,{side:"top",children:"Send"})]}):(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(g.Button,{size:"icon-sm",onClick:cJ,disabled:ap,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:ap?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(I.Square,{className:"size-3.5 fill-current"})}),(0,b.jsx)(y.TooltipContent,{side:"top",children:"Stop task"})]})]})]}),!ag&&(0,b.jsx)("div",{className:"shrink-0 self-end mb-2.5 size-8","aria-hidden":"true"})]})})}),(0,b.jsx)(W.ArtifactSheet,{open:aP,onOpenChange:a=>{aQ(a),a||setTimeout(()=>{aS(null),aU(null)},300)},artifacts:bL,workspaceId:M,initialArtifact:aR,versionMap:bM,duplicateFilenames:bN}),(0,b.jsx)(_,{open:aV,onOpenChange:a=>{aW(a),a||setTimeout(()=>aY(null),300)},emailId:aX,workspaceId:M}),(0,b.jsx)(aa.CalendarEventSheet,{readonly:!0,open:aZ,onOpenChange:a=>{a$(a),a||setTimeout(()=>a0(null),300)},calendarEventId:a_,workspaceId:M}),(0,b.jsx)(ab.IssueSheet,{open:a1,onOpenChange:a=>{a2(a),a||setTimeout(()=>{a4(null),a6(null),bc(null)},300)},agents:O,issue:a5?.issue??null,detail:a5?{messages:a5.messages,comments:a5.comments,artifacts:a5.artifacts,traceId:a5.issue.trace_id}:null,detailLoading:a7,activeTask:bb,traceTasks:a9,slug:N,workspaceId:M,onUpdate:async(a,b)=>{try{let c=await (0,q.updateIssue)(M,a,b);a6(d=>d&&d.issue.id===a?{...d,issue:{...d.issue,...b,updated_at:c.updated_at}}:d)}catch(a){w.toast.error(a instanceof Error?a.message:"Failed to update issue")}},onStatusChange:async(a,b)=>{try{await (0,q.updateIssue)(M,a,{status:b}),a6(c=>c&&c.issue.id===a?{...c,issue:{...c.issue,status:b}}:c)}catch(a){w.toast.error(a instanceof Error?a.message:"Failed to update status")}},onCommented:()=>{a3&&cN(a3)},onArtifactClick:bR})]}):(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}}];
|
|
4
4
|
|
|
5
5
|
//# sourceMappingURL=src_web_src_0~23g-y._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[812187,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(207058),e=a.i(26822),f=a.i(752792),g=a.i(506180),h=a.i(732254),i=a.i(22902),j=a.i(654461),k=a.i(75118),l=a.i(647651);let m=(0,l.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var n=a.i(137993),o=a.i(334235),p=a.i(76592),q=a.i(889624),r=a.i(984078),s=a.i(588339),t=a.i(921584),u=a.i(224226);a.i(735132);var v=a.i(628508),w=a.i(325848);function x({ratio:a,size:c=16,stroke:d=1.5}){let e=(c-d)/2,f=2*Math.PI*e,g=(a<=0?0:a>=1?1:Math.log1p(99*a)/Math.log(100))*f;return(0,b.jsxs)("svg",{width:c,height:c,className:"shrink-0 -rotate-90","aria-hidden":!0,children:[(0,b.jsx)("circle",{cx:c/2,cy:c/2,r:e,fill:"none",stroke:"currentColor",strokeWidth:d,className:"text-border"}),(0,b.jsx)("circle",{cx:c/2,cy:c/2,r:e,fill:"none",stroke:"currentColor",strokeWidth:d,strokeDasharray:`${g} ${f-g}`,strokeLinecap:"round",className:(0,k.cn)("transition-all duration-300",a>.9?"text-destructive/70":a>.7?"text-yellow-500/50":"text-muted-foreground/30")})]})}function y({model:a,setModel:c,runtimeId:d,setRuntimeId:e,runtimes:f,providerModels:g}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(p.Label,{className:"text-xs text-muted-foreground",children:"Runtime"}),(0,b.jsx)(r.RuntimeSelect,{value:d,onValueChange:a=>{let b=f.find(a=>a.id===d)?.provider,g=f.find(b=>b.id===a)?.provider;e(a),b&&b!==g&&c("")},runtimes:f})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(p.Label,{className:"text-xs text-muted-foreground",children:"Model"}),(0,b.jsx)(o.Input,{value:a,onChange:a=>c(a.target.value),placeholder:"Default (runtime model)",list:"agent-model-options-edit"}),g.length>0&&(0,b.jsx)("datalist",{id:"agent-model-options-edit",children:g.map(a=>(0,b.jsx)("option",{value:a},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground/70",children:"Optional. Leave blank to use the runtime's default model."})]})]})}function z({agent:a,runtimes:d,modelOptions:e,onSave:f,onCancel:i,saving:l}){let{workspaceId:o}=(0,g.useWorkspace)(),[p,r]=(0,c.useState)("general"),[A,B]=(0,c.useState)(a.name??""),[C,D]=(0,c.useState)(a.description??""),[E,F]=(0,c.useState)(a.runtime_id??""),[G,H]=(0,c.useState)(()=>(0,w.parseAvatarUrl)(a.avatar_url)??w.DEFAULT_CONFIG),[I,J]=(0,c.useState)(()=>{let b=a.runtime_config;return"string"==typeof b?.model?b.model:""}),[K,L]=(0,c.useState)(a.instructions??""),[M,N]=(0,c.useState)(a.instructions??""),O=(0,c.useRef)(K);(0,c.useEffect)(()=>{O.current=K},[K]);let P=(0,c.useRef)(M);(0,c.useEffect)(()=>{P.current=M},[M]);let Q=(0,c.useRef)(null),R=(0,c.useRef)(!1),S=(0,c.useRef)(()=>{}),T=(0,c.useCallback)(async()=>{if(R.current)return;let b=O.current;if(b!==P.current){R.current=!0;try{await (0,s.updateAgent)(a.id,{instructions:b},o),N(b)}catch(a){t.toast.error(a instanceof Error?a.message:"Failed to save instructions")}finally{R.current=!1,O.current!==P.current&&S.current()}}},[a.id,o]),U=(0,c.useCallback)(()=>{Q.current&&clearTimeout(Q.current),Q.current=setTimeout(T,500)},[T]);(0,c.useEffect)(()=>{S.current=U},[U]);let V=(0,c.useCallback)(a=>{L(a),U()},[U]);(0,c.useEffect)(()=>{let b=()=>{if(Q.current&&clearTimeout(Q.current),O.current!==P.current){let b=new URLSearchParams({workspace_id:o});fetch(`/api/agents/${a.id}?${b}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({instructions:O.current}),keepalive:!0})}};return window.addEventListener("beforeunload",b),()=>window.removeEventListener("beforeunload",b)},[a.id,o]),(0,c.useEffect)(()=>()=>{if(Q.current&&clearTimeout(Q.current),O.current!==P.current){let b=new URLSearchParams({workspace_id:o});fetch(`/api/agents/${a.id}?${b}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({instructions:O.current}),keepalive:!0})}},[a.id,o]);let W=d.find(a=>a.id===E),X=W&&e?e[W.provider]??[]:[],Y=async a=>{a.preventDefault(),await f({name:A,description:C,runtime_id:E,runtime_config:I?{model:I}:{},avatar_url:(0,w.serializeAvatarConfig)(G)})},Z=[{id:"general",label:"General"},{id:"instruction",label:"Instruction"},{id:"runtime",label:"Runtime"},{id:"email",label:"Email"},{id:"permission",label:"Permission"}],$="general"===p||"runtime"===p||"email"===p,_=K.length/5e4;return(0,b.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,b.jsx)("nav",{className:"w-48 shrink-0 border-r border-border/50 py-3 px-2 hidden md:block",children:Z.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>r(a.id),className:(0,k.cn)("w-full rounded-md px-2.5 py-1.5 text-left text-sm transition-colors",p===a.id?"bg-accent text-foreground font-medium":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:a.label},a.id))}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,b.jsx)("div",{className:"px-4 pt-2 md:hidden",children:(0,b.jsx)(j.Tabs,{className:"items-center",value:p,onValueChange:a=>r(a),children:(0,b.jsx)(j.TabsList,{className:"h-auto gap-1",children:Z.map(a=>(0,b.jsx)(j.TabsTrigger,{value:a.id,children:a.label},a.id))})})}),"instruction"===p?(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-h-0",children:[(0,b.jsx)("div",{className:"flex-1 px-6 pt-4 pb-4 overflow-y-auto",children:(0,b.jsx)(q.MarkdownEditor,{value:K,onChange:V,placeholder:"Write instructions for this agent...",minHeight:"calc(100vh - 240px)",contentType:"markdown",variant:"seamless"})}),(0,b.jsxs)("div",{className:"flex items-center gap-2 px-6 py-3 border-t border-border/50",children:[(0,b.jsx)(x,{ratio:_}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Agent-specific instruction. Your global instruction is prepended automatically."})]})]}):(0,b.jsx)("div",{className:"flex-1 overflow-y-auto thin-scrollbar px-5 py-6",children:$?(0,b.jsxs)("form",{onSubmit:Y,className:"mx-auto max-w-md space-y-4",children:["general"===p&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(v.AvatarPickerDialog,{config:G,onChange:H}),(0,b.jsx)(u.GeneralFields,{name:A,setName:B,description:C,setDescription:D,model:I,setModel:J,runtimeId:E,setRuntimeId:F,runtimes:[],providerModels:[]})]}),"runtime"===p&&(0,b.jsx)(y,{model:I,setModel:J,runtimeId:E,setRuntimeId:F,runtimes:d,providerModels:X}),"email"===p&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"rounded-lg border border-border/50 bg-muted/30 px-4 py-3",children:[(0,b.jsxs)("div",{className:"mb-2.5 flex items-center gap-1.5",children:[(0,b.jsx)(m,{className:"size-3 text-muted-foreground/60"}),(0,b.jsx)("span",{className:"text-xs font-medium text-muted-foreground/60",children:"Set at creation"})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Email"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.email_handle?`${a.email_handle}@alook.ai`:"Not configured"})]})]}),(0,b.jsx)(n.CustomEmailForm,{agentId:a.id,workspaceId:a.workspace_id}),a.email_handle&&(0,b.jsx)("div",{className:"border-t border-border/50 pt-4 mt-4",children:(0,b.jsx)(u.AllowedSendersTab,{agentId:a.id})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 pt-2",children:[(0,b.jsx)(h.Button,{type:"button",variant:"ghost",size:"sm",onClick:i,children:"Cancel"}),(0,b.jsx)(h.Button,{type:"submit",size:"sm",disabled:l||!A,children:l?"Saving...":"Save"})]})]}):(0,b.jsx)(u.AgentAccessTab,{agentId:a.id,ownerId:a.owner_id})})]})]})}var A=a.i(953528),B=a.i(25668),C=a.i(191525),D=a.i(426619),E=a.i(858767),F=a.i(304377),G=a.i(606896),H=a.i(113010);let I=(0,l.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"}]]);var J=a.i(372443),K=a.i(415584),L=a.i(110025),M=a.i(518828),N=a.i(867561),O=a.i(525132);a.s(["default",0,function({children:a}){let j=(0,d.useParams)(),k=(0,d.useRouter)(),l=(0,d.usePathname)(),{slug:m}=(0,g.useWorkspace)(),n=(0,d.useSearchParams)(),o=j.id,p=!!n.get("conv"),q=l.includes("/activity")||p?"activity":l.includes("/meetings")?"meetings":l.includes("/email")?"email":l.includes("/files")?"files":"chat",{agents:r,runtimes:t,handleDeleteAgent:u,handleUpdateAgent:v}=(0,f.useAgentContext)(),w=r.find(a=>a.id===o),x=w?t.find(a=>a.id===w.runtime_id):null,y=x?.status==="online",{activeTaskCounts:P}=(0,f.useAgentContext)(),Q=P[o]??0,[R,S]=(0,c.useState)(!1),[T,U]=(0,c.useState)(!1),[V,W]=(0,c.useState)(!1),[X,Y]=(0,c.useState)(!1),[Z,$]=(0,c.useState)({});return(0,c.useEffect)(()=>{(0,s.fetchModelOptions)().then($).catch(()=>{})},[]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/50 px-4 md:px-5 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[w?(0,b.jsx)(C.AgentStatusBadge,{isOnline:y,taskCount:Q,agentId:o}):(0,b.jsx)(B.Skeleton,{className:"size-2 rounded-full shrink-0"}),w?(0,b.jsxs)(O.Tooltip,{children:[(0,b.jsx)(O.TooltipTrigger,{render:(0,b.jsx)(e.default,{href:`/w/${m}/agents/${o}`,onClick:()=>S(!1),className:"text-sm font-medium truncate hover:text-foreground/80 transition-colors"}),children:w.name}),(0,b.jsx)(O.TooltipContent,{children:w.description||"No description"})]}):(0,b.jsx)(B.Skeleton,{className:"h-3.5 w-24"}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["/ ",R?"Settings":({email:"Email",meetings:"Meetings",activity:"Activity",files:"Files"})[q]??"Chat"]})]}),w?(0,b.jsx)("div",{className:"flex items-center gap-0.5 shrink-0",children:R?(0,b.jsxs)(h.Button,{variant:"ghost",size:"sm",className:"text-xs text-muted-foreground h-7 gap-1 px-2",onClick:()=>S(!1),children:[(0,b.jsx)(M.X,{className:"size-3"}),"Cancel"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"hidden sm:flex items-center gap-0.5",children:[(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"chat"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(H.MessageSquare,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"chat"===q?"max-w-16 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Chat"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}/email`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"email"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(G.Mail,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"email"===q?"max-w-16 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Email"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}/meetings`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"meetings"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(L.Video,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"meetings"===q?"max-w-20 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-20 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Meetings"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}/activity`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"activity"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(F.History,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"activity"===q?"max-w-16 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Activity"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}/files`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"files"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(D.FolderOpen,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"files"===q?"max-w-16 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Files"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/threads?agentId=${o}`,className:"group inline-flex items-center rounded-lg text-xs text-muted-foreground h-7 px-2 hover:bg-muted hover:text-foreground transition-all",children:[(0,b.jsx)(E.GitBranch,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"max-w-0 opacity-0 group-hover:max-w-20 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300 overflow-hidden transition-all duration-500 ease-out",children:"Threads"})]}),(0,b.jsx)("div",{className:"w-px h-4 bg-border mx-1"}),(0,b.jsxs)("button",{className:"group inline-flex items-center rounded-lg text-xs text-muted-foreground h-7 px-2 hover:bg-muted hover:text-foreground transition-all",onClick:()=>S(!0),children:[(0,b.jsx)(J.Pencil,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"max-w-0 opacity-0 group-hover:max-w-12 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300 overflow-hidden transition-all duration-500 ease-out",children:"Edit"})]}),(0,b.jsxs)("button",{className:"group inline-flex items-center rounded-lg text-xs text-muted-foreground h-7 px-2 hover:bg-muted hover:text-destructive transition-all",onClick:()=>W(!0),children:[(0,b.jsx)(K.Trash2,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300 overflow-hidden transition-all duration-500 ease-out",children:"Remove"})]})]}),(0,b.jsx)("div",{className:"sm:hidden",children:(0,b.jsxs)(N.DropdownMenu,{children:[(0,b.jsx)(N.DropdownMenuTrigger,{render:(0,b.jsx)(h.Button,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground"}),children:(0,b.jsx)(I,{className:"size-4"})}),(0,b.jsxs)(N.DropdownMenuContent,{align:"end",sideOffset:6,children:["chat"!==q&&(0,b.jsxs)(N.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}`),children:[(0,b.jsx)(H.MessageSquare,{className:"size-3.5"})," Chat"]}),"email"!==q&&(0,b.jsxs)(N.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}/email`),children:[(0,b.jsx)(G.Mail,{className:"size-3.5"})," Email"]}),"meetings"!==q&&(0,b.jsxs)(N.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}/meetings`),children:[(0,b.jsx)(L.Video,{className:"size-3.5"})," Meetings"]}),"activity"!==q&&(0,b.jsxs)(N.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}/activity`),children:[(0,b.jsx)(F.History,{className:"size-3.5"})," Activity"]}),"files"!==q&&(0,b.jsxs)(N.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}/files`),children:[(0,b.jsx)(D.FolderOpen,{className:"size-3.5"})," Files"]}),(0,b.jsxs)(N.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/threads?agentId=${o}`),children:[(0,b.jsx)(E.GitBranch,{className:"size-3.5"}),"Threads"]}),(0,b.jsx)(N.DropdownMenuSeparator,{}),(0,b.jsxs)(N.DropdownMenuItem,{onClick:()=>S(!0),children:[(0,b.jsx)(J.Pencil,{className:"size-3.5"}),"Edit"]}),(0,b.jsx)(N.DropdownMenuSeparator,{}),(0,b.jsxs)(N.DropdownMenuItem,{variant:"destructive",onClick:()=>W(!0),children:[(0,b.jsx)(K.Trash2,{className:"size-3.5"}),"Remove"]})]})]})})]})}):(0,b.jsx)("div",{className:"h-7 shrink-0"})]}),R&&w?(0,b.jsx)(z,{agent:w,runtimes:t,modelOptions:Z,saving:T,onCancel:()=>S(!1),onSave:async a=>{U(!0);try{let b=await v(w.id,a);return b&&S(!1),b}finally{U(!1)}}}):(0,b.jsxs)("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col",children:["chat"===q&&(0,b.jsx)(A.ChannelBar,{}),a]}),w&&(0,b.jsx)(i.ConfirmDialog,{open:V,onOpenChange:W,title:"Remove agent",description:`This will permanently delete "${w.name}" and all its conversations.`,loading:X,onConfirm:async()=>{Y(!0);try{await u(w.id)&&k.push(`/w/${m}/home`)}finally{Y(!1),W(!1)}}})]})}],812187)}];
|
|
1
|
+
module.exports=[812187,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(207058),e=a.i(26822),f=a.i(752792),g=a.i(506180),h=a.i(732254),i=a.i(22902),j=a.i(654461),k=a.i(75118);let l=(0,a.i(647651).default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var m=a.i(137993),n=a.i(334235),o=a.i(76592),p=a.i(889624),q=a.i(984078),r=a.i(588339),s=a.i(921584),t=a.i(224226);a.i(735132);var u=a.i(628508),v=a.i(325848);function w({ratio:a,size:c=16,stroke:d=1.5}){let e=(c-d)/2,f=2*Math.PI*e,g=(a<=0?0:a>=1?1:Math.log1p(99*a)/Math.log(100))*f;return(0,b.jsxs)("svg",{width:c,height:c,className:"shrink-0 -rotate-90","aria-hidden":!0,children:[(0,b.jsx)("circle",{cx:c/2,cy:c/2,r:e,fill:"none",stroke:"currentColor",strokeWidth:d,className:"text-border"}),(0,b.jsx)("circle",{cx:c/2,cy:c/2,r:e,fill:"none",stroke:"currentColor",strokeWidth:d,strokeDasharray:`${g} ${f-g}`,strokeLinecap:"round",className:(0,k.cn)("transition-all duration-300",a>.9?"text-destructive/70":a>.7?"text-yellow-500/50":"text-muted-foreground/30")})]})}function x({model:a,setModel:c,runtimeId:d,setRuntimeId:e,runtimes:f,providerModels:g}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(o.Label,{className:"text-xs text-muted-foreground",children:"Runtime"}),(0,b.jsx)(q.RuntimeSelect,{value:d,onValueChange:a=>{let b=f.find(a=>a.id===d)?.provider,g=f.find(b=>b.id===a)?.provider;e(a),b&&b!==g&&c("")},runtimes:f})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(o.Label,{className:"text-xs text-muted-foreground",children:"Model"}),(0,b.jsx)(n.Input,{value:a,onChange:a=>c(a.target.value),placeholder:"Default (runtime model)",list:"agent-model-options-edit"}),g.length>0&&(0,b.jsx)("datalist",{id:"agent-model-options-edit",children:g.map(a=>(0,b.jsx)("option",{value:a},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground/70",children:"Optional. Leave blank to use the runtime's default model."})]})]})}function y({agent:a,runtimes:d,modelOptions:e,onSave:f,onCancel:i,saving:n}){let{workspaceId:o}=(0,g.useWorkspace)(),[q,z]=(0,c.useState)("general"),[A,B]=(0,c.useState)(a.name??""),[C,D]=(0,c.useState)(a.description??""),[E,F]=(0,c.useState)(a.runtime_id??""),[G,H]=(0,c.useState)(()=>(0,v.parseAvatarUrl)(a.avatar_url)??v.DEFAULT_CONFIG),[I,J]=(0,c.useState)(()=>{let b=a.runtime_config;return"string"==typeof b?.model?b.model:""}),[K,L]=(0,c.useState)(a.instructions??""),[M,N]=(0,c.useState)(a.instructions??""),O=(0,c.useRef)(K);(0,c.useEffect)(()=>{O.current=K},[K]);let P=(0,c.useRef)(M);(0,c.useEffect)(()=>{P.current=M},[M]);let Q=(0,c.useRef)(null),R=(0,c.useRef)(!1),S=(0,c.useRef)(()=>{}),T=(0,c.useCallback)(async()=>{if(R.current)return;let b=O.current;if(b!==P.current){R.current=!0;try{await (0,r.updateAgent)(a.id,{instructions:b},o),N(b)}catch(a){s.toast.error(a instanceof Error?a.message:"Failed to save instructions")}finally{R.current=!1,O.current!==P.current&&S.current()}}},[a.id,o]),U=(0,c.useCallback)(()=>{Q.current&&clearTimeout(Q.current),Q.current=setTimeout(T,500)},[T]);(0,c.useEffect)(()=>{S.current=U},[U]);let V=(0,c.useCallback)(a=>{L(a),U()},[U]);(0,c.useEffect)(()=>{let b=()=>{if(Q.current&&clearTimeout(Q.current),O.current!==P.current){let b=new URLSearchParams({workspace_id:o});fetch(`/api/agents/${a.id}?${b}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({instructions:O.current}),keepalive:!0})}};return window.addEventListener("beforeunload",b),()=>window.removeEventListener("beforeunload",b)},[a.id,o]),(0,c.useEffect)(()=>()=>{if(Q.current&&clearTimeout(Q.current),O.current!==P.current){let b=new URLSearchParams({workspace_id:o});fetch(`/api/agents/${a.id}?${b}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({instructions:O.current}),keepalive:!0})}},[a.id,o]);let W=d.find(a=>a.id===E),X=W&&e?e[W.provider]??[]:[],Y=async a=>{a.preventDefault(),await f({name:A,description:C,runtime_id:E,runtime_config:I?{model:I}:{},avatar_url:(0,v.serializeAvatarConfig)(G)})},Z=[{id:"general",label:"General"},{id:"instruction",label:"Instruction"},{id:"runtime",label:"Runtime"},{id:"email",label:"Email"},{id:"permission",label:"Permission"}],$="general"===q||"runtime"===q||"email"===q,_=K.length/5e4;return(0,b.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,b.jsx)("nav",{className:"w-48 shrink-0 border-r border-border/50 py-3 px-2 hidden md:block",children:Z.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>z(a.id),className:(0,k.cn)("w-full rounded-md px-2.5 py-1.5 text-left text-sm transition-colors",q===a.id?"bg-accent text-foreground font-medium":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:a.label},a.id))}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,b.jsx)("div",{className:"px-4 pt-2 md:hidden",children:(0,b.jsx)(j.Tabs,{className:"items-center",value:q,onValueChange:a=>z(a),children:(0,b.jsx)(j.TabsList,{className:"h-auto gap-1",children:Z.map(a=>(0,b.jsx)(j.TabsTrigger,{value:a.id,children:a.label},a.id))})})}),"instruction"===q?(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-h-0",children:[(0,b.jsx)("div",{className:"flex-1 px-6 pt-4 pb-4 overflow-y-auto",children:(0,b.jsx)(p.MarkdownEditor,{value:K,onChange:V,placeholder:"Write instructions for this agent...",minHeight:"calc(100vh - 240px)",contentType:"markdown",variant:"seamless"})}),(0,b.jsxs)("div",{className:"flex items-center gap-2 px-6 py-3 border-t border-border/50",children:[(0,b.jsx)(w,{ratio:_}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Agent-specific instruction. Your global instruction is prepended automatically."})]})]}):(0,b.jsx)("div",{className:"flex-1 overflow-y-auto thin-scrollbar px-5 py-6",children:$?(0,b.jsxs)("form",{onSubmit:Y,className:"mx-auto max-w-md space-y-4",children:["general"===q&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(u.AvatarPickerDialog,{config:G,onChange:H}),(0,b.jsx)(t.GeneralFields,{name:A,setName:B,description:C,setDescription:D,model:I,setModel:J,runtimeId:E,setRuntimeId:F,runtimes:[],providerModels:[]})]}),"runtime"===q&&(0,b.jsx)(x,{model:I,setModel:J,runtimeId:E,setRuntimeId:F,runtimes:d,providerModels:X}),"email"===q&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"rounded-lg border border-border/50 bg-muted/30 px-4 py-3",children:[(0,b.jsxs)("div",{className:"mb-2.5 flex items-center gap-1.5",children:[(0,b.jsx)(l,{className:"size-3 text-muted-foreground/60"}),(0,b.jsx)("span",{className:"text-xs font-medium text-muted-foreground/60",children:"Set at creation"})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Email"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.email_handle?`${a.email_handle}@alook.ai`:"Not configured"})]})]}),(0,b.jsx)(m.CustomEmailForm,{agentId:a.id,workspaceId:a.workspace_id}),a.email_handle&&(0,b.jsx)("div",{className:"border-t border-border/50 pt-4 mt-4",children:(0,b.jsx)(t.AllowedSendersTab,{agentId:a.id})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 pt-2",children:[(0,b.jsx)(h.Button,{type:"button",variant:"ghost",size:"sm",onClick:i,children:"Cancel"}),(0,b.jsx)(h.Button,{type:"submit",size:"sm",disabled:n||!A,children:n?"Saving...":"Save"})]})]}):(0,b.jsx)(t.AgentAccessTab,{agentId:a.id,ownerId:a.owner_id})})]})]})}var z=a.i(953528),A=a.i(25668),B=a.i(191525),C=a.i(426619),D=a.i(858767),E=a.i(304377),F=a.i(606896),G=a.i(113010),H=a.i(945081),I=a.i(372443),J=a.i(415584),K=a.i(110025),L=a.i(518828),M=a.i(867561),N=a.i(525132);a.s(["default",0,function({children:a}){let j=(0,d.useParams)(),k=(0,d.useRouter)(),l=(0,d.usePathname)(),{slug:m}=(0,g.useWorkspace)(),n=(0,d.useSearchParams)(),o=j.id,p=!!n.get("conv"),q=l.includes("/activity")||p?"activity":l.includes("/meetings")?"meetings":l.includes("/email")?"email":l.includes("/files")?"files":"chat",{agents:s,runtimes:t,handleDeleteAgent:u,handleUpdateAgent:v}=(0,f.useAgentContext)(),w=s.find(a=>a.id===o),x=w?t.find(a=>a.id===w.runtime_id):null,O=x?.status==="online",{activeTaskCounts:P}=(0,f.useAgentContext)(),Q=P[o]??0,[R,S]=(0,c.useState)(!1),[T,U]=(0,c.useState)(!1),[V,W]=(0,c.useState)(!1),[X,Y]=(0,c.useState)(!1),[Z,$]=(0,c.useState)({});return(0,c.useEffect)(()=>{(0,r.fetchModelOptions)().then($).catch(()=>{})},[]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/50 px-4 md:px-5 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[w?(0,b.jsx)(B.AgentStatusBadge,{isOnline:O,taskCount:Q,agentId:o}):(0,b.jsx)(A.Skeleton,{className:"size-2 rounded-full shrink-0"}),w?(0,b.jsxs)(N.Tooltip,{children:[(0,b.jsx)(N.TooltipTrigger,{render:(0,b.jsx)(e.default,{href:`/w/${m}/agents/${o}`,onClick:()=>S(!1),className:"text-sm font-medium truncate hover:text-foreground/80 transition-colors"}),children:w.name}),(0,b.jsx)(N.TooltipContent,{children:w.description||"No description"})]}):(0,b.jsx)(A.Skeleton,{className:"h-3.5 w-24"}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["/ ",R?"Settings":({email:"Email",meetings:"Meetings",activity:"Activity",files:"Files"})[q]??"Chat"]})]}),w?(0,b.jsx)("div",{className:"flex items-center gap-0.5 shrink-0",children:R?(0,b.jsxs)(h.Button,{variant:"ghost",size:"sm",className:"text-xs text-muted-foreground h-7 gap-1 px-2",onClick:()=>S(!1),children:[(0,b.jsx)(L.X,{className:"size-3"}),"Cancel"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"hidden sm:flex items-center gap-0.5",children:[(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"chat"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(G.MessageSquare,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"chat"===q?"max-w-16 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Chat"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}/email`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"email"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(F.Mail,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"email"===q?"max-w-16 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Email"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}/meetings`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"meetings"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(K.Video,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"meetings"===q?"max-w-20 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-20 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Meetings"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}/activity`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"activity"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(E.History,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"activity"===q?"max-w-16 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Activity"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/agents/${o}/files`,className:`group inline-flex items-center rounded-lg text-xs h-7 px-2 transition-all ${"files"===q?"text-foreground bg-muted":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[(0,b.jsx)(C.FolderOpen,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:`overflow-hidden transition-all duration-500 ease-out ${"files"===q?"max-w-16 opacity-100 ml-1":"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300"}`,children:"Files"})]}),(0,b.jsxs)(e.default,{href:`/w/${m}/threads?agentId=${o}`,className:"group inline-flex items-center rounded-lg text-xs text-muted-foreground h-7 px-2 hover:bg-muted hover:text-foreground transition-all",children:[(0,b.jsx)(D.GitBranch,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"max-w-0 opacity-0 group-hover:max-w-20 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300 overflow-hidden transition-all duration-500 ease-out",children:"Threads"})]}),(0,b.jsx)("div",{className:"w-px h-4 bg-border mx-1"}),(0,b.jsxs)("button",{className:"group inline-flex items-center rounded-lg text-xs text-muted-foreground h-7 px-2 hover:bg-muted hover:text-foreground transition-all",onClick:()=>S(!0),children:[(0,b.jsx)(I.Pencil,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"max-w-0 opacity-0 group-hover:max-w-12 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300 overflow-hidden transition-all duration-500 ease-out",children:"Edit"})]}),(0,b.jsxs)("button",{className:"group inline-flex items-center rounded-lg text-xs text-muted-foreground h-7 px-2 hover:bg-muted hover:text-destructive transition-all",onClick:()=>W(!0),children:[(0,b.jsx)(J.Trash2,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"max-w-0 opacity-0 group-hover:max-w-16 group-hover:opacity-100 group-hover:ml-1 group-hover:delay-300 overflow-hidden transition-all duration-500 ease-out",children:"Remove"})]})]}),(0,b.jsx)("div",{className:"sm:hidden",children:(0,b.jsxs)(M.DropdownMenu,{children:[(0,b.jsx)(M.DropdownMenuTrigger,{render:(0,b.jsx)(h.Button,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground"}),children:(0,b.jsx)(H.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(M.DropdownMenuContent,{align:"end",sideOffset:6,children:["chat"!==q&&(0,b.jsxs)(M.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}`),children:[(0,b.jsx)(G.MessageSquare,{className:"size-3.5"})," Chat"]}),"email"!==q&&(0,b.jsxs)(M.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}/email`),children:[(0,b.jsx)(F.Mail,{className:"size-3.5"})," Email"]}),"meetings"!==q&&(0,b.jsxs)(M.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}/meetings`),children:[(0,b.jsx)(K.Video,{className:"size-3.5"})," Meetings"]}),"activity"!==q&&(0,b.jsxs)(M.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}/activity`),children:[(0,b.jsx)(E.History,{className:"size-3.5"})," Activity"]}),"files"!==q&&(0,b.jsxs)(M.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/agents/${o}/files`),children:[(0,b.jsx)(C.FolderOpen,{className:"size-3.5"})," Files"]}),(0,b.jsxs)(M.DropdownMenuItem,{onClick:()=>k.push(`/w/${m}/threads?agentId=${o}`),children:[(0,b.jsx)(D.GitBranch,{className:"size-3.5"}),"Threads"]}),(0,b.jsx)(M.DropdownMenuSeparator,{}),(0,b.jsxs)(M.DropdownMenuItem,{onClick:()=>S(!0),children:[(0,b.jsx)(I.Pencil,{className:"size-3.5"}),"Edit"]}),(0,b.jsx)(M.DropdownMenuSeparator,{}),(0,b.jsxs)(M.DropdownMenuItem,{variant:"destructive",onClick:()=>W(!0),children:[(0,b.jsx)(J.Trash2,{className:"size-3.5"}),"Remove"]})]})]})})]})}):(0,b.jsx)("div",{className:"h-7 shrink-0"})]}),R&&w?(0,b.jsx)(y,{agent:w,runtimes:t,modelOptions:Z,saving:T,onCancel:()=>S(!1),onSave:async a=>{U(!0);try{let b=await v(w.id,a);return b&&S(!1),b}finally{U(!1)}}}):(0,b.jsxs)("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col",children:["chat"===q&&(0,b.jsx)(z.ChannelBar,{}),a]}),w&&(0,b.jsx)(i.ConfirmDialog,{open:V,onOpenChange:W,title:"Remove agent",description:`This will permanently delete "${w.name}" and all its conversations.`,loading:X,onConfirm:async()=>{Y(!0);try{await u(w.id)&&k.push(`/w/${m}/home`)}finally{Y(!1),W(!1)}}})]})}],812187)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_web_src_app_%28app%29_w_%5Bslug%5D_agents_%5Bid%5D_layout_tsx_0juu2um._.js.map
|