@alook/app 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/bundled/email-worker/index.js +9 -5
  2. package/bundled/web/.open-next/.build/durable-objects/queue.js +4 -4
  3. package/bundled/web/.open-next/assets/BUILD_ID +1 -1
  4. package/bundled/web/.open-next/assets/_next/static/chunks/0.johotcqi6_q.css +1 -0
  5. package/bundled/web/.open-next/assets/_next/static/chunks/{00hhut1u6hwn6.js → 0071-212kfu1m.js} +1 -1
  6. package/bundled/web/.open-next/assets/_next/static/chunks/{0il_mcv02512i.js → 06ksvdw1qrvwk.js} +1 -1
  7. package/bundled/web/.open-next/assets/_next/static/chunks/0a27029.-35e~.js +1 -0
  8. package/bundled/web/.open-next/assets/_next/static/chunks/0d7119q.u8xvu.js +1 -0
  9. package/bundled/web/.open-next/assets/_next/static/chunks/{08qdwj1xra2jx.js → 0eh6y91g1-0lc.js} +1 -1
  10. package/bundled/web/.open-next/assets/_next/static/chunks/0gnzww73lhyo3.js +1 -0
  11. package/bundled/web/.open-next/assets/_next/static/chunks/0idrbu7e1a~hd.js +1 -0
  12. package/bundled/web/.open-next/assets/_next/static/chunks/{076bjy-c4b08..js → 0p7q1v_ivmnag.js} +1 -1
  13. package/bundled/web/.open-next/assets/_next/static/chunks/{0nd3e0dbrnq5i.js → 0qwgr1bo.q5v3.js} +4 -4
  14. package/bundled/web/.open-next/assets/_next/static/chunks/{028dxg8z6qji0.js → 0t3e2f8aogso_.js} +1 -1
  15. package/bundled/web/.open-next/assets/_next/static/chunks/0tb03bpdj_am_.js +1 -0
  16. package/bundled/web/.open-next/assets/_next/static/chunks/0whmpqhfadal3.js +1 -0
  17. package/bundled/web/.open-next/assets/_next/static/chunks/11~usj.s5mzti.js +3 -0
  18. package/bundled/web/.open-next/assets/_next/static/chunks/{0-ac~bnnatk~x.js → 12oay61-cq.qw.js} +1 -1
  19. package/bundled/web/.open-next/assets/_next/static/chunks/130t-y.8dp~je.js +3 -0
  20. package/bundled/web/.open-next/cache/{36j5LIYm2caTV9Ksu2QBr → YGJyWNUCWhOqpFg-fDYKo}/_global-error.cache +1 -1
  21. package/bundled/web/.open-next/cache/{36j5LIYm2caTV9Ksu2QBr → YGJyWNUCWhOqpFg-fDYKo}/_not-found.cache +1 -1
  22. package/bundled/web/.open-next/cache/{36j5LIYm2caTV9Ksu2QBr → YGJyWNUCWhOqpFg-fDYKo}/sitemap.xml.cache +1 -1
  23. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  24. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  25. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  26. package/bundled/web/.open-next/middleware/handler.mjs +2 -2
  27. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  28. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  29. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  30. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  41. 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
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  44. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  46. 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
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  50. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/0b5f_next_dist_esm_build_templates_app-route_08rz-qa.js +1 -1
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +8 -7
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0ibtxgc._.js +1 -1
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0mexljd._.js +1 -1
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +8 -7
  60. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0.foxln._.js +3 -0
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_038.hft._.js +3 -0
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0d0a35l._.js +3 -0
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0fq1zoa._.js +3 -0
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0grgpqw._.js +3 -0
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0h5jww9._.js +3 -0
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ufmel3._.js +3 -0
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0vhi1.k._.js +3 -0
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0yeokgf._.js +1 -1
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_studio_new_client_tsx_0zandi2._.js +4 -4
  70. 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
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_settings_page_tsx_0fdcupy._.js +1 -1
  72. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_workspace-shell_tsx_0479plk._.js +1 -1
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_templates_index_ts_13n9_2e._.js +1 -1
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +1 -1
  76. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +18 -18
  77. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +215 -197
  78. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +2 -2
  79. package/dist/index.js +14 -12
  80. package/package.json +5 -2
  81. package/bundled/web/.open-next/assets/_next/static/chunks/07xq7yw.r_ik6.js +0 -1
  82. package/bundled/web/.open-next/assets/_next/static/chunks/086ly6x4sipjy.js +0 -1
  83. package/bundled/web/.open-next/assets/_next/static/chunks/0hk6-z1a4kq.1.js +0 -1
  84. package/bundled/web/.open-next/assets/_next/static/chunks/0iwzwcvjl~190.js +0 -3
  85. package/bundled/web/.open-next/assets/_next/static/chunks/0lxa14d_o098o.js +0 -1
  86. package/bundled/web/.open-next/assets/_next/static/chunks/0nykvgip8dwr..js +0 -1
  87. package/bundled/web/.open-next/assets/_next/static/chunks/0py48kb~gy1yv.css +0 -1
  88. package/bundled/web/.open-next/assets/_next/static/chunks/0rtp9qz2346v9.js +0 -3
  89. package/bundled/web/.open-next/assets/_next/static/chunks/0~wu41ykjx3ud.js +0 -1
  90. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_08.z.g0._.js +0 -3
  91. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_08wm2-0._.js +0 -3
  92. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0aao.99._.js +0 -3
  93. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0e2t1n5._.js +0 -3
  94. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0lz_8zr._.js +0 -3
  95. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0pp~l23._.js +0 -3
  96. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_13_029z._.js +0 -3
  97. /package/bundled/web/.open-next/assets/_next/static/{36j5LIYm2caTV9Ksu2QBr → YGJyWNUCWhOqpFg-fDYKo}/_buildManifest.js +0 -0
  98. /package/bundled/web/.open-next/assets/_next/static/{36j5LIYm2caTV9Ksu2QBr → YGJyWNUCWhOqpFg-fDYKo}/_clientMiddlewareManifest.js +0 -0
  99. /package/bundled/web/.open-next/assets/_next/static/{36j5LIYm2caTV9Ksu2QBr → YGJyWNUCWhOqpFg-fDYKo}/_ssgManifest.js +0 -0
  100. /package/bundled/web/.open-next/cache/{36j5LIYm2caTV9Ksu2QBr → YGJyWNUCWhOqpFg-fDYKo}/robots.txt.cache +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[294526,a=>{"use strict";var b,c,d=a.i(749314),e=a.i(437199),f=a.i(654461),g=a.i(75118),h=a.i(921584),i=a.i(207058),j=a.i(506180),k=a.i(454607),l=a.i(588339),m=a.i(732254),n=a.i(334235),o=a.i(76592),p=a.i(25668),q=a.i(390248);function r(){let{workspaceId:a,slug:b}=(0,j.useWorkspace)(),c=(0,k.useSession)(),f=(0,i.useRouter)(),[g,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(!0),[u,v]=(0,e.useState)(""),[w,x]=(0,e.useState)(""),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)(""),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)({}),[G,H]=(0,e.useState)(""),[I,J]=(0,e.useState)(!1),K=(0,e.useCallback)(async()=>{t(!0);try{let b=c.data?.user?.id,[d,e]=await Promise.all([(0,l.listMembers)(a),(0,l.listWorkspaces)()]),f=d.find(a=>a.user_id===b);r(f?.role??"");let g=e.find(b=>b.id===a);g&&(v(g.name),x(g.slug),z(g.name),B(g.slug))}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to load workspace info")}finally{t(!1)}},[a,c.data?.user?.id]);(0,e.useEffect)(()=>{c.data&&K()},[K,c.data]);let L=u!==y||w!==A,M=async()=>{let c=(0,q.validateWorkspaceForm)({name:u,slug:w});if(F(c),!(0,q.hasWorkspaceFormErrors)(c)){D(!0);try{let c=await (0,l.updateWorkspace)(a,{name:u.trim(),slug:w.trim()});z(c.name),B(c.slug),h.toast.success("Workspace updated"),c.slug!==b&&f.replace(`/w/${c.slug}/settings`)}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to update workspace")}finally{D(!1)}}},N=async()=>{if(G===y){J(!0);try{await (0,l.deleteWorkspace)(a,y),h.toast.success("Workspace deleted"),f.replace("/workspaces")}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to delete workspace")}finally{J(!1)}}};return s?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(p.Skeleton,{className:"h-4 w-32"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"})]}):"owner"!==g?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Only workspace owners can edit workspace settings."}):(0,d.jsxs)("div",{className:"space-y-10",children:[(0,d.jsxs)("section",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-medium",children:"Workspace"}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(o.Label,{htmlFor:"workspace-name",children:"Name"}),(0,d.jsx)(n.Input,{id:"workspace-name",value:u,onChange:a=>{let b=a.target.value;v(b),E.name&&b.trim()&&F(a=>({...a,name:void 0}))},placeholder:"Workspace name","aria-invalid":!!E.name,"aria-describedby":E.name?"workspace-name-error":void 0}),E.name&&(0,d.jsx)("p",{id:"workspace-name-error",className:"text-xs text-destructive",children:E.name})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(o.Label,{htmlFor:"workspace-slug",children:"Slug"}),(0,d.jsx)(n.Input,{id:"workspace-slug",value:w,onChange:a=>{let b=a.target.value;x(b),E.slug&&b.trim()&&F(a=>({...a,slug:void 0}))},placeholder:"workspace-slug","aria-invalid":!!E.slug,"aria-describedby":E.slug?"workspace-slug-error":void 0}),E.slug&&(0,d.jsx)("p",{id:"workspace-slug-error",className:"text-xs text-destructive",children:E.slug}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground/70",children:["Used in URLs: /w/",w,"/"]})]})]}),(0,d.jsx)(m.Button,{size:"sm",onClick:M,disabled:!L||C,children:C?"Saving…":"Save"})]}),(0,d.jsxs)("section",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-destructive",children:"Danger Zone"}),(0,d.jsxs)("div",{className:"rounded-md border border-destructive/30 p-4 space-y-3",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Deleting this workspace is permanent and cannot be undone. All agents, conversations, and data will be lost."}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsxs)(o.Label,{htmlFor:"delete-confirm",className:"text-xs",children:["Type ",(0,d.jsx)("span",{className:"font-medium text-foreground",children:y})," to confirm"]}),(0,d.jsx)(n.Input,{id:"delete-confirm",value:G,onChange:a=>H(a.target.value),placeholder:y})]}),(0,d.jsx)(m.Button,{size:"sm",variant:"destructive",onClick:N,disabled:G!==y||I,children:I?"Deleting…":"Delete Workspace"})]})]})]})}var s=a.i(889624);function t({ratio:a,size:b=16,stroke:c=1.5}){let e=(b-c)/2,f=2*Math.PI*e,h=(a<=0?0:a>=1?1:Math.log1p(99*a)/Math.log(100))*f;return(0,d.jsxs)("svg",{width:b,height:b,className:"shrink-0 -rotate-90","aria-hidden":!0,children:[(0,d.jsx)("circle",{cx:b/2,cy:b/2,r:e,fill:"none",stroke:"currentColor",strokeWidth:c,className:"text-border"}),(0,d.jsx)("circle",{cx:b/2,cy:b/2,r:e,fill:"none",stroke:"currentColor",strokeWidth:c,strokeDasharray:`${h} ${f-h}`,strokeLinecap:"round",className:(0,g.cn)("transition-all duration-300",a>.9?"text-destructive/70":a>.7?"text-yellow-500/50":"text-muted-foreground/30")})]})}function u(){let{workspaceId:a}=(0,j.useWorkspace)(),[b,c]=(0,e.useState)(""),[f,g]=(0,e.useState)(""),[i,k]=(0,e.useState)(!0),m=(0,e.useRef)(b);(0,e.useEffect)(()=>{m.current=b},[b]);let n=(0,e.useRef)(f);(0,e.useEffect)(()=>{n.current=f},[f]);let o=(0,e.useRef)(null),q=(0,e.useRef)(!1),r=(0,e.useCallback)(async()=>{k(!0);try{let b=await (0,l.getMemberMe)(a);c(b.global_instruction),g(b.global_instruction)}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to load settings")}finally{k(!1)}},[a]);(0,e.useEffect)(()=>{r()},[r]);let u=(0,e.useCallback)(async()=>{if(q.current)return;let b=m.current;if(b!==n.current){q.current=!0;try{let c=await (0,l.updateMemberMe)(a,b);g(c.global_instruction)}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to save")}finally{q.current=!1}}},[a]),v=(0,e.useCallback)(()=>{o.current&&clearTimeout(o.current),o.current=setTimeout(u,500)},[u]),w=(0,e.useCallback)(a=>{c(a),v()},[v]);(0,e.useEffect)(()=>{let b=()=>{if(o.current&&clearTimeout(o.current),m.current!==n.current){let b=new URLSearchParams({workspace_id:a});fetch(`/api/members/me?${b}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({global_instruction:m.current}),keepalive:!0})}};return window.addEventListener("beforeunload",b),()=>window.removeEventListener("beforeunload",b)},[a]),(0,e.useEffect)(()=>()=>{o.current&&clearTimeout(o.current),m.current!==n.current&&u()},[u]);let x=b.length/5e4;return i?(0,d.jsxs)("div",{className:"px-6 py-6 space-y-4",children:[(0,d.jsx)(p.Skeleton,{className:"h-4 w-48"}),(0,d.jsx)(p.Skeleton,{className:"h-40 w-full"})]}):(0,d.jsxs)("div",{className:"flex flex-col h-full",children:[(0,d.jsx)("div",{className:"flex-1 px-6 pt-4 pb-4",children:(0,d.jsx)(s.MarkdownEditor,{value:b,onChange:w,placeholder:"Write instructions that every agent you own will follow...",minHeight:"calc(100vh - 240px)",contentType:"markdown",variant:"seamless"})}),(0,d.jsxs)("div",{className:"flex items-center gap-2 px-6 py-3",children:[(0,d.jsx)(t,{ratio:x}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"This instruction is prepended to every agent's individual instruction."})]})]})}var v=a.i(166776),w=a.i(695004),x=a.i(911057),y=a.i(790090);let z=(0,y.default)("user-minus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);function A(a){return`${window.location.origin}/invite/${a}`}function B(){let{workspaceId:a}=(0,j.useWorkspace)(),b=(0,k.useSession)(),c=b.data?.user?.id,[f,i]=(0,e.useState)([]),[n,o]=(0,e.useState)([]),[q,r]=(0,e.useState)(!0),[s,t]=(0,e.useState)(!1),u=f.find(a=>a.user_id===c)?.role==="owner",y=(0,e.useCallback)(async()=>{r(!0);try{let[b,c]=await Promise.all([(0,l.listMembers)(a),(0,l.listInvites)(a).catch(()=>[])]);i(b),o(c)}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to load members")}finally{r(!1)}},[a]);(0,e.useEffect)(()=>{y()},[y]);let B=async()=>{t(!0);try{let b=await (0,l.createInvite)(a);o(a=>[...a,b]);let c=A(b.token);await navigator.clipboard.writeText(c),h.toast.success("Invite link copied to clipboard")}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to generate invite")}finally{t(!1)}},C=async a=>{let b=A(a);try{await navigator.clipboard.writeText(b),h.toast.success("Invite link copied")}catch{h.toast.error("Failed to copy link")}},D=async b=>{try{await (0,l.revokeInvite)(a,b),o(a=>a.filter(a=>a.id!==b)),h.toast.success("Invite revoked")}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to revoke invite")}},E=async b=>{try{await (0,l.removeMember)(a,b),i(a=>a.filter(a=>a.id!==b)),h.toast.success("Member removed")}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to remove member")}};return q?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(p.Skeleton,{className:"h-4 w-24"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"}),(0,d.jsx)(p.Skeleton,{className:"h-4 w-24 mt-6"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"})]}):(0,d.jsxs)("div",{className:"space-y-8",children:[u&&(0,d.jsxs)("section",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-medium",children:"Pending Invites"}),(0,d.jsxs)(m.Button,{size:"sm",variant:"outline",onClick:B,disabled:s,children:[(0,d.jsx)(x.Plus,{className:"size-3.5 mr-1"}),s?"Generating…":"Generate invite link"]})]}),0===n.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:"No active invite links. Generate one to invite someone to this workspace."}):(0,d.jsx)("div",{className:"space-y-1.5",children:n.map(a=>{let b=new Date(a.expires_at),c=b<new Date;return(0,d.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-border/50 px-3 py-2 text-xs",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:(0,g.cn)("font-mono truncate",c&&"text-muted-foreground line-through"),children:["/invite/",a.token.slice(0,12),"…"]}),(0,d.jsx)("p",{className:(0,g.cn)("text-muted-foreground/70 mt-0.5",c&&"text-destructive/70"),children:c?"Expired":`Expires ${b.toLocaleDateString()}`})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 ml-2 shrink-0",children:[!c&&(0,d.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0",onClick:()=>C(a.token),title:"Copy invite link",children:(0,d.jsx)(v.Copy,{className:"size-3.5"})}),(0,d.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-destructive hover:text-destructive",onClick:()=>D(a.id),title:"Revoke invite",children:(0,d.jsx)(w.Trash2,{className:"size-3.5"})})]})]},a.id)})})]}),(0,d.jsxs)("section",{className:"space-y-3",children:[(0,d.jsx)("h2",{className:"text-sm font-medium",children:"Members"}),(0,d.jsx)("div",{className:"space-y-1.5",children:f.map(a=>{let b=a.user_id===c,e=a.name?a.name.split(" ").map(a=>a[0]).join("").slice(0,2).toUpperCase():a.email.slice(0,2).toUpperCase();return(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-border/50 px-3 py-2",children:[(0,d.jsx)("div",{className:"size-7 rounded-full bg-muted flex items-center justify-center text-xs font-medium text-muted-foreground shrink-0 overflow-hidden",children:a.image?(0,d.jsx)("img",{src:a.image,alt:a.name,className:"size-full object-cover"}):e}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"text-sm font-medium truncate leading-tight",children:[a.name||a.email,b&&(0,d.jsx)("span",{className:"ml-1.5 text-xs text-muted-foreground font-normal",children:"(you)"})]}),a.name&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground truncate",children:a.email})]}),(0,d.jsx)("span",{className:(0,g.cn)("text-xs px-1.5 py-0.5 rounded shrink-0","owner"===a.role?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:a.role}),u&&!b&&(0,d.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-muted-foreground hover:text-destructive shrink-0",onClick:()=>E(a.id),title:"Remove member",children:(0,d.jsx)(z,{className:"size-3.5"})})]},a.id)})})]})]})}a.s([],543750),a.i(543750);var C=a.i(181749),D=a.i(520950),E=a.i(935469),F=a.i(901496),G=a.i(556053),H=a.i(980403),I=a.i(207116);let J=((b={}).checked="data-checked",b.unchecked="data-unchecked",b.indeterminate="data-indeterminate",b.disabled="data-disabled",b.readonly="data-readonly",b.required="data-required",b.valid="data-valid",b.invalid="data-invalid",b.touched="data-touched",b.dirty="data-dirty",b.filled="data-filled",b.focused="data-focused",b);var K=a.i(621907);function L(a){return e.useMemo(()=>({checked:b=>a.indeterminate?{}:b?{[J.checked]:""}:{[J.unchecked]:""},...K.fieldValidityMapping}),[a.indeterminate])}var M=a.i(147909),N=a.i(423994),O=a.i(991367),P=a.i(367183),Q=a.i(874417),R=a.i(336789),S=a.i(89286),T=a.i(582050),U=a.i(63462);function V(a,b,c,d=!0,f){let[g,h]=e.useState(),i=(0,N.useBaseUiId)(f?`${f}-label`:void 0),j=a??b??g;return(0,F.useIsoLayoutEffect)(()=>{let e=a||b||!d?void 0:function(a,b){let c=function(a){if(!a)return;let b=a.parentElement;if(b&&"LABEL"===b.tagName)return b;let c=a.id;if(c){let b=a.nextElementSibling;if(b&&b.htmlFor===c)return b}let d=a.labels;return d&&d[0]}(a);if(c)return!c.id&&b&&(c.id=b),c.id||void 0}(c.current,i);g!==e&&h(e)}),j}var W=a.i(10773),X=a.i(485177);let Y=e.createContext(void 0);var Z=a.i(331700),$=a.i(874514),_=a.i(36136);let aa=e.forwardRef(function(a,b){let{checked:c,className:f,defaultChecked:g=!1,"aria-labelledby":h,disabled:i=!1,form:j,id:k,indeterminate:l=!1,inputRef:m,name:n,onCheckedChange:o,parent:p=!1,readOnly:q=!1,render:r,required:s=!1,uncheckedValue:t,value:u,nativeButton:v=!1,style:w,...x}=a,{clearErrors:y}=(0,T.useFormContext)(),{disabled:z,name:A,setDirty:B,setFilled:J,setFocused:K,setTouched:X,state:aa,validationMode:ab,validityData:ac,shouldValidateOnChange:ad,validation:ae}=(0,Q.useFieldRootContext)(),af=(0,S.useFieldItemContext)(),{labelId:ag,controlId:ah,registerControlId:ai,getDescriptionProps:aj}=(0,U.useLabelableContext)(),ak=(0,W.useCheckboxGroupContext)(),al=ak?.parent,am=al&&ak.allValues,an=z||af.disabled||ak?.disabled||i,ao=A??n,ap=u??ao,aq=(0,N.useBaseUiId)(),ar=(0,N.useBaseUiId)(),as=ah;am?as=p?ar:`${al.id}-${ap}`:k&&(as=k);let at={};am&&(p?at=ak.parent.getParentProps():ap&&(at=ak.parent.getChildProps(ap)));let au=(0,E.useStableCallback)(o),{checked:av=c,indeterminate:aw=l,onCheckedChange:ax,...ay}=at,az=ak?.value,aA=ak?.setValue,aB=ak?.defaultValue,aC=e.useRef(null),aD=(0,H.useRefWithInit)(()=>Symbol("checkbox-control")),aE=e.useRef(!1),{getButtonProps:aF,buttonRef:aG}=(0,P.useButton)({disabled:an,native:v}),aH=ak?.validation??ae,[aI,aJ]=(0,D.useControlled)({controlled:ap&&az&&!p?az.includes(ap):av,default:ap&&aB&&!p?aB.includes(ap):g,name:"Checkbox",state:"checked"});(0,F.useIsoLayoutEffect)(()=>{ai!==C.NOOP&&(aE.current=!0,ai(aD.current,as))},[as,ak,ai,p,aD]),e.useEffect(()=>{let a=aD.current;return()=>{aE.current&&ai!==C.NOOP&&(aE.current=!1,ai(a,void 0))}},[ai,aD]),(0,R.useRegisterFieldControl)(aC,{enabled:!ak,id:aq,value:aI});let aK=e.useRef(null),aL=(0,G.useMergedRefs)(m,aK,aH.inputRef),aM=V(h,ag,aK,!v,as??void 0);(0,F.useIsoLayoutEffect)(()=>{aK.current&&(aK.current.indeterminate=aw,aI&&J(!0))},[aI,aw,J]),(0,_.useValueChanged)(aI,()=>{(!ak||p)&&(y(ao),J(aI),B(aI!==ac.initialValue),ad()?aH.commit(aI):aH.commit(aI,!0))});let aN=(0,O.mergeProps)({checked:aI,disabled:an,form:j,name:p?void 0:ao,id:v?void 0:as??void 0,required:s,ref:aL,style:ao?I.visuallyHiddenInput:I.visuallyHidden,tabIndex:-1,type:"checkbox","aria-hidden":!0,onChange(a){if(a.nativeEvent.defaultPrevented)return;if(q)return void a.preventDefault();let b=a.currentTarget.checked,c=(0,Z.createChangeEventDetails)($.REASONS.none,a.nativeEvent);ax?.(b,c),au(b,c),!c.isCanceled&&(aJ(b),ap&&az&&aA&&!p&&!am&&aA(b?[...az,ap]:az.filter(a=>a!==ap),c))},onFocus(){aC.current?.focus()}},void 0!==u?{value:(ak?aI&&u:u)||""}:C.EMPTY_OBJECT,aj,ak?aH.getValidationProps:aH.getInputValidationProps),aO=am?!!av:aI,aP=am&&aw||l;e.useEffect(()=>{if(!al||!ap)return;let a=al.disabledStatesRef.current;return a.set(ap,an),()=>{a.delete(ap)}},[al,an,ap]);let aQ=e.useMemo(()=>({...aa,checked:aO,disabled:an,readOnly:q,required:s,indeterminate:aP}),[aa,aO,an,q,s,aP]),aR=L(aQ),aS=(0,M.useRenderElement)("span",a,{state:aQ,ref:[aG,aC,b,ak?.registerControlRef],props:[{id:v?as??void 0:aq,role:"checkbox","aria-checked":aw?"mixed":aI,"aria-readonly":q||void 0,"aria-required":s||void 0,"aria-labelledby":aM,"data-parent":p?"":void 0,onFocus(){K(!0)},onBlur(){let a=aK.current;a&&(X(!0),K(!1),"onBlur"===ab&&aH.commit(ak?az:a.checked))},onClick(a){q||an||(a.preventDefault(),aK.current?.dispatchEvent(new PointerEvent("click",{bubbles:!0,shiftKey:a.shiftKey,ctrlKey:a.ctrlKey,altKey:a.altKey,metaKey:a.metaKey})))}},aj,aH.getValidationProps,x,ay,aF],stateAttributesMapping:aR});return(0,d.jsxs)(Y.Provider,{value:aQ,children:[aS,!aI&&!ak&&ao&&!p&&void 0!==t&&(0,d.jsx)("input",{type:"hidden",form:j,name:ao,value:t}),(0,d.jsx)("input",{...aN,suppressHydrationWarning:!0})]})});var ab=a.i(121102),ac=a.i(541481),ad=a.i(254464);let ae=e.forwardRef(function(a,b){let{render:c,className:d,style:f,keepMounted:g=!1,...h}=a,i=function(){let a=e.useContext(Y);if(void 0===a)throw Error((0,X.default)(14));return a}(),j=i.checked||i.indeterminate,{mounted:k,transitionStatus:l,setMounted:m}=(0,ac.useTransitionStatus)(j),n=e.useRef(null),o={...i,transitionStatus:l};(0,ab.useOpenChangeComplete)({open:j,ref:n,onComplete(){j||m(!1)}});let p=L(i),q=e.useMemo(()=>({...p,...ad.transitionStatusMapping,...K.fieldValidityMapping}),[p]),r=(0,M.useRenderElement)("span",a,{ref:[b,n],state:o,stateAttributesMapping:q,props:h});return g||k?r:null});a.s(["Indicator",0,ae,"Root",0,aa],634617);var af=a.i(634617),af=af,ag=a.i(322809);function ah({className:a,...b}){return(0,d.jsx)(af.Root,{"data-slot":"checkbox",className:(0,g.cn)("peer relative flex size-4 shrink-0 items-center justify-center rounded-lg border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",a),...b,children:(0,d.jsx)(af.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none [&>svg]:size-3.5",children:(0,d.jsx)(ag.CheckIcon,{})})})}a.s([],443440),a.i(443440);let ai=e.createContext(void 0),aj=((c={}).checked="data-checked",c.unchecked="data-unchecked",c.disabled="data-disabled",c.readonly="data-readonly",c.required="data-required",c.valid="data-valid",c.invalid="data-invalid",c.touched="data-touched",c.dirty="data-dirty",c.filled="data-filled",c.focused="data-focused",c),ak={...K.fieldValidityMapping,checked:a=>a?{[aj.checked]:""}:{[aj.unchecked]:""}};var al=a.i(140295);let am=e.forwardRef(function(a,b){let{checked:c,className:f,defaultChecked:g,"aria-labelledby":h,form:i,id:j,inputRef:k,name:l,nativeButton:m=!1,onCheckedChange:n,readOnly:o=!1,required:p=!1,disabled:q=!1,render:r,uncheckedValue:s,value:t,style:u,...v}=a,{clearErrors:w}=(0,T.useFormContext)(),{state:x,setTouched:y,setDirty:z,validityData:A,setFilled:B,setFocused:H,shouldValidateOnChange:J,validationMode:K,disabled:L,name:S,validation:W}=(0,Q.useFieldRootContext)(),{labelId:X}=(0,U.useLabelableContext)(),Y=L||q,aa=S??l,ab=(0,E.useStableCallback)(n),ac=e.useRef(null),ad=(0,G.useMergedRefs)(ac,k,W.inputRef),ae=e.useRef(null),af=(0,N.useBaseUiId)(),ag=(0,al.useLabelableId)({id:j,implicit:!1,controlRef:ae}),ah=m?void 0:ag,[aj,am]=(0,D.useControlled)({controlled:c,default:!!g,name:"Switch",state:"checked"});(0,R.useRegisterFieldControl)(ae,{id:af,value:aj}),(0,F.useIsoLayoutEffect)(()=>{ac.current&&B(ac.current.checked)},[ac,B]),(0,_.useValueChanged)(aj,()=>{w(aa),z(aj!==A.initialValue),B(aj),J()?W.commit(aj):W.commit(aj,!0)});let{getButtonProps:an,buttonRef:ao}=(0,P.useButton)({disabled:Y,native:m}),ap=V(h,X,ac,!m,ah),aq=e.useMemo(()=>(0,O.mergeProps)({checked:aj,disabled:Y,form:i,id:ah,name:aa,required:p,style:aa?I.visuallyHiddenInput:I.visuallyHidden,tabIndex:-1,type:"checkbox","aria-hidden":!0,ref:ad,onChange(a){if(a.nativeEvent.defaultPrevented)return;if(o)return void a.preventDefault();let b=a.currentTarget.checked,c=(0,Z.createChangeEventDetails)($.REASONS.none,a.nativeEvent);ab?.(b,c),c.isCanceled||am(b)},onFocus(){ae.current?.focus()}},W.getInputValidationProps,void 0!==t?{value:t}:C.EMPTY_OBJECT),[aj,Y,i,ad,ah,aa,ab,o,p,am,W,t]),ar=e.useMemo(()=>({...x,checked:aj,disabled:Y,readOnly:o,required:p}),[x,aj,Y,o,p]),as=(0,M.useRenderElement)("span",a,{state:ar,ref:[b,ae,ao],props:[{id:m?ag:af,role:"switch","aria-checked":aj,"aria-readonly":o||void 0,"aria-required":p||void 0,"aria-labelledby":ap,onFocus(){Y||H(!0)},onBlur(){let a=ac.current;a&&!Y&&(y(!0),H(!1),"onBlur"===K&&W.commit(a.checked))},onClick(a){o||Y||(a.preventDefault(),ac.current?.dispatchEvent(new PointerEvent("click",{bubbles:!0,shiftKey:a.shiftKey,ctrlKey:a.ctrlKey,altKey:a.altKey,metaKey:a.metaKey})))}},W.getValidationProps,v,an],stateAttributesMapping:ak});return(0,d.jsxs)(ai.Provider,{value:ar,children:[as,!aj&&aa&&void 0!==s&&(0,d.jsx)("input",{type:"hidden",form:i,name:aa,value:s}),(0,d.jsx)("input",{...aq,suppressHydrationWarning:!0})]})}),an=e.forwardRef(function(a,b){let{render:c,className:d,style:f,...g}=a,{state:h}=(0,Q.useFieldRootContext)(),i=function(){let a=e.useContext(ai);if(void 0===a)throw Error((0,X.default)(63));return a}(),j={...h,...i};return(0,M.useRenderElement)("span",a,{state:j,ref:b,stateAttributesMapping:ak,props:g})});a.s(["Root",0,am,"Thumb",0,an],795013);var ao=a.i(795013),ao=ao;function ap({className:a,size:b="default",...c}){return(0,d.jsx)(ao.Root,{"data-slot":"switch","data-size":b,className:(0,g.cn)("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",a),...c,children:(0,d.jsx)(ao.Thumb,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"})})}var aq=a.i(626806);function ar(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)([...aq.NOTIFICATION_EVENTS]),[g,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(!1);(0,e.useEffect)(()=>{i((0,aq.isNotificationSupported)()),b((0,aq.getNotificationEnabled)()),f((0,aq.getNotificationEvents)()),(0,aq.isNotificationSupported)()&&k("denied"===Notification.permission)},[]);let l=async a=>{if(!a){b(!1),(0,aq.setNotificationEnabled)(!1);return}await (0,aq.requestNotificationPermission)()?(b(!0),(0,aq.setNotificationEnabled)(!0)):(k(!0),h.toast.error("Notification permission denied. Please enable it in browser settings."))};return g?(0,d.jsx)("div",{className:"space-y-6",children:(0,d.jsxs)("section",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-medium",children:"Browser Notifications"}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"space-y-0.5",children:[(0,d.jsx)("p",{className:"text-sm",children:"Enable notifications"}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Get notified when tasks finish while the tab is in the background"})]}),(0,d.jsx)(ap,{checked:a,onCheckedChange:l,disabled:j&&!a})]}),j&&!a&&(0,d.jsx)("p",{className:"text-xs text-destructive",children:"Notification permission was denied. Please allow it in your browser settings."}),a&&(0,d.jsxs)("div",{className:"space-y-2 pl-0.5",children:[(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Notify me when:"}),aq.NOTIFICATION_EVENTS.map(a=>(0,d.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer select-none",children:[(0,d.jsx)(ah,{checked:c.includes(a),onCheckedChange:()=>{f(b=>{let c=b.includes(a)?b.filter(b=>b!==a):[...b,a];return(0,aq.setNotificationEvents)(c),c})}}),aq.NOTIFICATION_EVENT_LABELS[a]]},a))]})]})]})}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Your browser does not support notifications."})}var as=a.i(752792),at=a.i(439882),au=a.i(464830);let av=(0,y.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var aw=a.i(918768),ax=a.i(292948),ay=a.i(294044),az=a.i(385539);let aA=(0,y.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);function aB({icon:a,label:b,value:c,sub:e}){return(0,d.jsx)(at.Card,{size:"sm",children:(0,d.jsxs)(at.CardContent,{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,d.jsx)(a,{className:"size-4"})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,d.jsx)("p",{className:"text-2xl font-semibold leading-none tracking-tight",children:c}),e&&(0,d.jsx)(au.Badge,{variant:"secondary",className:"text-[10px] px-1.5 h-4 font-normal",children:e})]}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground truncate",children:b})]})]})})}function aC({agents:a,runtimes:b,activeTaskCounts:c,overview:e}){let f=new Map;for(let a of b){let b=a.daemon_id??a.id;f.set(b,f.get(b)||"online"===a.status)}let g=f.size,h=[...f.values()].filter(Boolean).length,i=Object.values(c).reduce((a,b)=>a+b,0),j=a.filter(a=>{let c=b.find(b=>b.id===a.runtime_id);return c?.status==="online"}).length;return(0,d.jsxs)("div",{className:"grid gap-3 grid-cols-2 sm:grid-cols-3 lg:grid-cols-6",children:[(0,d.jsx)(aB,{icon:az.Monitor,label:"Machines",value:`${h}/${g}`,sub:"online"}),(0,d.jsx)(aB,{icon:av,label:"Agents",value:a.length,sub:`${j} online`}),(0,d.jsx)(aB,{icon:ay.Users,label:"Members",value:e.members.length,sub:e.pending_invites>0?`${e.pending_invites} pending`:void 0}),(0,d.jsx)(aB,{icon:aA,label:"Active Tasks",value:i,sub:e.task_stats.queued>0?`${e.task_stats.queued} queued`:void 0}),(0,d.jsx)(aB,{icon:ax.Send,label:"Emails Sent",value:e.email_stats.outbound,sub:`${e.email_stats.unread} unread`}),(0,d.jsx)(aB,{icon:aw.Mail,label:"Custom Emails",value:e.email_accounts.length})]})}function aD({overview:a}){let{completed:b,failed:c,cancelled:e,queued:f,stale:g}=a.task_stats,h=b+c,i=h>0?(c/h*100).toFixed(1):"0";return(0,d.jsxs)(at.Card,{children:[(0,d.jsx)(at.CardHeader,{children:(0,d.jsx)(at.CardTitle,{children:"Task Health (Today)"})}),(0,d.jsx)(at.CardContent,{children:(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,d.jsx)(aE,{label:"Completed",value:b}),(0,d.jsx)(aE,{label:"Failed",value:c,className:c>0?"text-destructive":void 0}),(0,d.jsx)(aE,{label:"Cancelled",value:e}),(0,d.jsx)(aE,{label:"Failure Rate",value:`${i}%`,className:Number(i)>10?"text-destructive":void 0}),(0,d.jsx)(aE,{label:"Queue Backlog",value:f,className:f>10?"text-amber-500":void 0}),(0,d.jsx)(aE,{label:"Stale Tasks",value:g,className:g>0?"text-destructive":void 0})]})})]})}function aE({label:a,value:b,className:c}){return(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:`text-xl font-semibold ${c??""}`,children:b}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:a})]})}var aF=a.i(525132);function aG({overview:a,agents:b}){let{inbound:c,outbound:e,unread:f,rejected:g}=a.email_stats,h=new Map(b.map(a=>[a.id,a.name]));return(0,d.jsxs)(at.Card,{children:[(0,d.jsx)(at.CardHeader,{children:(0,d.jsx)(at.CardTitle,{children:"Email Summary"})}),(0,d.jsxs)(at.CardContent,{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-xl font-semibold",children:c}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Received"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-xl font-semibold",children:e}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Sent"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:`text-xl font-semibold ${f>0?"text-primary":""}`,children:f}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Unread"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:`text-xl font-semibold ${g>0?"text-amber-500":""}`,children:g}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Untrust"})]})]}),a.email_accounts.length>0&&(0,d.jsxs)("div",{className:"space-y-2 pt-2 border-t border-border/50",children:[(0,d.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Custom Mailboxes"}),a.email_accounts.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 text-xs",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,d.jsxs)(aF.Tooltip,{children:[(0,d.jsx)(aF.TooltipTrigger,{render:(0,d.jsx)("span",{className:`size-1.5 shrink-0 rounded-full ${"active"===a.status?"bg-emerald-500":"bg-destructive"}`})}),(0,d.jsx)(aF.TooltipContent,{side:"top",children:"active"===a.status?"Active":`Error: ${a.error_message||"inactive"}`})]}),(0,d.jsx)("span",{className:"truncate",children:a.email_address})]}),(0,d.jsx)("span",{className:"text-muted-foreground shrink-0",children:h.get(a.agent_id)??"—"})]},a.id))]})]})]})}let aH=(0,y.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);function aI({runtimes:a,agents:b}){let c=(0,i.useRouter)(),{slug:e}=(0,j.useWorkspace)(),f=new Map;for(let b of a){let a=b.daemon_id??b.id;f.has(a)||f.set(a,{runtimes:[],deviceInfo:b.device_info??""}),f.get(a).runtimes.push(b)}let g=[...f.entries()];return 0===g.length?(0,d.jsxs)(at.Card,{children:[(0,d.jsxs)(at.CardHeader,{children:[(0,d.jsx)(at.CardTitle,{children:"Machines"}),(0,d.jsx)(at.CardAction,{children:(0,d.jsx)("button",{type:"button",onClick:()=>c.push(`/w/${e}/runtimes`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,d.jsx)(aH,{className:"size-4"})})})]}),(0,d.jsx)(at.CardContent,{children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"No machines connected."})})]}):(0,d.jsxs)(at.Card,{children:[(0,d.jsx)(at.CardHeader,{children:(0,d.jsx)(at.CardTitle,{children:"Machines"})}),(0,d.jsx)(at.CardContent,{className:"space-y-3",children:g.map(([a,c])=>{let e=c.runtimes.some(a=>"online"===a.status),f=c.runtimes.map(a=>a.last_seen_at).filter(Boolean).sort().reverse()[0],g=b.filter(a=>c.runtimes.some(b=>b.id===a.runtime_id)),h=c.runtimes.some(a=>a.pending_update_version),i=c.runtimes.find(a=>a.pending_update_version)?.pending_update_version;return(0,d.jsxs)("div",{className:"flex items-start gap-3 text-xs",children:[(0,d.jsxs)(aF.Tooltip,{children:[(0,d.jsx)(aF.TooltipTrigger,{render:(0,d.jsx)("span",{className:`mt-1 size-2 shrink-0 rounded-full ${e?"bg-emerald-500":"bg-muted-foreground/30"}`})}),(0,d.jsx)(aF.TooltipContent,{side:"top",children:e?"Online":"Offline"})]}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-medium truncate",children:c.deviceInfo||a.slice(0,12)}),h&&(0,d.jsxs)(aF.Tooltip,{children:[(0,d.jsx)(aF.TooltipTrigger,{render:(0,d.jsx)("span",{children:(0,d.jsx)(au.Badge,{variant:"outline",className:"text-[10px] px-1.5 py-0 text-amber-500 border-amber-500/30",children:"update"})})}),(0,d.jsxs)(aF.TooltipContent,{side:"top",children:["Pending update to v",i]})]})]}),(0,d.jsxs)("div",{className:"text-muted-foreground mt-0.5",children:[g.length>0?g.map(a=>a.name).join(", "):"No agents"," · ",function(a){if(!a)return"never";let b=Math.floor((Date.now()-new Date(a).getTime())/1e3);if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);return d<24?`${d}h ago`:`${Math.floor(d/24)}d ago`}(f??null)]})]})]},a)})})]})}function aJ({overview:a}){let b=(0,i.useRouter)(),{slug:c}=(0,j.useWorkspace)(),{members:e,pending_invites:f}=a;return(0,d.jsxs)(at.Card,{children:[(0,d.jsxs)(at.CardHeader,{children:[(0,d.jsx)(at.CardAction,{children:(0,d.jsx)("button",{type:"button",onClick:()=>b.push(`/w/${c}/settings`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,d.jsx)(aH,{className:"size-4"})})}),(0,d.jsxs)(at.CardTitle,{children:["Team",f>0&&(0,d.jsxs)("span",{className:"ml-2 text-xs text-muted-foreground font-normal",children:["(",f," pending invite",f>1?"s":"",")"]})]})]}),(0,d.jsx)(at.CardContent,{className:"p-0",children:(0,d.jsx)("div",{className:"divide-y divide-border/50",children:[...e].sort((a,b)=>"owner"===a.role?-1:+("owner"===b.role)).map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2.5",children:[a.image?(0,d.jsx)("img",{src:a.image,alt:a.name,className:"size-7 rounded-full shrink-0"}):(0,d.jsx)("div",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-secondary text-xs font-medium",children:(a.name||a.email).charAt(0).toUpperCase()}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate block",children:a.name||a.email}),a.name&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate block",children:a.email})]}),(0,d.jsx)(au.Badge,{variant:"owner"===a.role?"default":"secondary",className:"text-[10px] px-1.5 py-0 shrink-0",children:a.role})]},a.id))})})]})}function aK(){let{agents:a,runtimes:b,loading:c,activeTaskCounts:f}=(0,as.useAgentContext)(),{workspaceId:g}=(0,j.useWorkspace)(),[h,i]=(0,e.useState)(null),[k,m]=(0,e.useState)(!1);return((0,e.useEffect)(()=>{if(c)return;let a=!1;return m(!0),(0,l.getWorkspaceOverview)(g).then(b=>{a||i(b)}).catch(()=>{}).finally(()=>{a||m(!1)}),()=>{a=!0}},[c,g]),k||!h)?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(p.Skeleton,{className:"h-44 rounded-xl"}),(0,d.jsx)(p.Skeleton,{className:"h-44 rounded-xl"}),(0,d.jsx)(p.Skeleton,{className:"h-44 rounded-xl"}),(0,d.jsx)(p.Skeleton,{className:"h-44 rounded-xl"})]}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(aC,{agents:a,runtimes:b,activeTaskCounts:f,overview:h}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(aD,{overview:h}),(0,d.jsx)(aG,{overview:h,agents:a})]}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(aI,{runtimes:b,agents:a}),(0,d.jsx)(aJ,{overview:h})]})]})}let aL=[{id:"general",label:"General"},{id:"instruction",label:"Global Instruction"},{id:"notifications",label:"Notifications"},{id:"members",label:"Members"},{id:"usages",label:"Usages"}];a.s(["default",0,function(){let[a,b]=(0,e.useState)("general");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"flex items-center justify-between border-b border-border/50 px-3 md:px-5 py-2.5 gap-3",children:(0,d.jsx)("div",{className:"flex items-center gap-3 min-w-0",children:(0,d.jsx)("h1",{className:"text-sm font-medium",children:"Settings"})})}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,d.jsx)("nav",{className:"w-48 shrink-0 border-r border-border/50 py-3 px-2 hidden md:block",children:aL.map(c=>(0,d.jsx)("button",{onClick:()=>b(c.id),className:(0,g.cn)("w-full rounded-md px-2.5 py-1.5 text-left text-sm transition-colors",a===c.id?"bg-accent text-foreground font-medium":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:c.label},c.id))}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,d.jsx)("div",{className:"px-4 pt-2 md:hidden",children:(0,d.jsx)(f.Tabs,{className:"items-center",value:a,onValueChange:a=>b(a),children:(0,d.jsx)(f.TabsList,{className:"h-auto gap-1",children:aL.map(a=>(0,d.jsx)(f.TabsTrigger,{value:a.id,children:a.label},a.id))})})}),(0,d.jsx)("div",{className:(0,g.cn)("flex-1 overflow-y-auto thin-scrollbar","instruction"!==a&&"px-5 py-5"),children:"instruction"===a?(0,d.jsx)(u,{}):"usages"===a?(0,d.jsx)(aK,{}):(0,d.jsxs)("div",{className:"mx-auto max-w-md",children:["general"===a&&(0,d.jsx)(r,{}),"notifications"===a&&(0,d.jsx)(ar,{}),"members"===a&&(0,d.jsx)(B,{})]})})]})]})]})}],294526)}];
1
+ module.exports=[294526,a=>{"use strict";var b,c,d=a.i(749314),e=a.i(437199),f=a.i(654461),g=a.i(75118),h=a.i(921584),i=a.i(207058),j=a.i(506180),k=a.i(454607),l=a.i(588339),m=a.i(732254),n=a.i(334235),o=a.i(76592),p=a.i(25668),q=a.i(390248);function r(){let{workspaceId:a,slug:b}=(0,j.useWorkspace)(),c=(0,k.useSession)(),f=(0,i.useRouter)(),[g,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(!0),[u,v]=(0,e.useState)(""),[w,x]=(0,e.useState)(""),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)(""),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)({}),[G,H]=(0,e.useState)(""),[I,J]=(0,e.useState)(!1),K=(0,e.useCallback)(async()=>{t(!0);try{let b=c.data?.user?.id,[d,e]=await Promise.all([(0,l.listMembers)(a),(0,l.listWorkspaces)()]),f=d.find(a=>a.user_id===b);r(f?.role??"");let g=e.find(b=>b.id===a);g&&(v(g.name),x(g.slug),z(g.name),B(g.slug))}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to load workspace info")}finally{t(!1)}},[a,c.data?.user?.id]);(0,e.useEffect)(()=>{c.data&&K()},[K,c.data]);let L=u!==y||w!==A,M=async()=>{let c=(0,q.validateWorkspaceForm)({name:u,slug:w});if(F(c),!(0,q.hasWorkspaceFormErrors)(c)){D(!0);try{let c=await (0,l.updateWorkspace)(a,{name:u.trim(),slug:w.trim()});z(c.name),B(c.slug),h.toast.success("Workspace updated"),c.slug!==b&&f.replace(`/w/${c.slug}/settings`)}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to update workspace")}finally{D(!1)}}},N=async()=>{if(G===y){J(!0);try{await (0,l.deleteWorkspace)(a,y),h.toast.success("Workspace deleted"),f.replace("/workspaces")}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to delete workspace")}finally{J(!1)}}};return s?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(p.Skeleton,{className:"h-4 w-32"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"})]}):"owner"!==g?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Only workspace owners can edit workspace settings."}):(0,d.jsxs)("div",{className:"space-y-10",children:[(0,d.jsxs)("section",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-medium",children:"Workspace"}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(o.Label,{htmlFor:"workspace-name",children:"Name"}),(0,d.jsx)(n.Input,{id:"workspace-name",value:u,onChange:a=>{let b=a.target.value;v(b),E.name&&b.trim()&&F(a=>({...a,name:void 0}))},placeholder:"Workspace name","aria-invalid":!!E.name,"aria-describedby":E.name?"workspace-name-error":void 0}),E.name&&(0,d.jsx)("p",{id:"workspace-name-error",className:"text-xs text-destructive",children:E.name})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(o.Label,{htmlFor:"workspace-slug",children:"Slug"}),(0,d.jsx)(n.Input,{id:"workspace-slug",value:w,onChange:a=>{let b=a.target.value;x(b),E.slug&&b.trim()&&F(a=>({...a,slug:void 0}))},placeholder:"workspace-slug","aria-invalid":!!E.slug,"aria-describedby":E.slug?"workspace-slug-error":void 0}),E.slug&&(0,d.jsx)("p",{id:"workspace-slug-error",className:"text-xs text-destructive",children:E.slug}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground/70",children:["Used in URLs: /w/",w,"/"]})]})]}),(0,d.jsx)(m.Button,{size:"sm",onClick:M,disabled:!L||C,children:C?"Saving…":"Save"})]}),(0,d.jsxs)("section",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-destructive",children:"Danger Zone"}),(0,d.jsxs)("div",{className:"rounded-md border border-destructive/30 p-4 space-y-3",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Deleting this workspace is permanent and cannot be undone. All agents, conversations, and data will be lost."}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsxs)(o.Label,{htmlFor:"delete-confirm",className:"text-xs",children:["Type ",(0,d.jsx)("span",{className:"font-medium text-foreground",children:y})," to confirm"]}),(0,d.jsx)(n.Input,{id:"delete-confirm",value:G,onChange:a=>H(a.target.value),placeholder:y})]}),(0,d.jsx)(m.Button,{size:"sm",variant:"destructive",onClick:N,disabled:G!==y||I,children:I?"Deleting…":"Delete Workspace"})]})]})]})}var s=a.i(889624);function t({ratio:a,size:b=16,stroke:c=1.5}){let e=(b-c)/2,f=2*Math.PI*e,h=(a<=0?0:a>=1?1:Math.log1p(99*a)/Math.log(100))*f;return(0,d.jsxs)("svg",{width:b,height:b,className:"shrink-0 -rotate-90","aria-hidden":!0,children:[(0,d.jsx)("circle",{cx:b/2,cy:b/2,r:e,fill:"none",stroke:"currentColor",strokeWidth:c,className:"text-border"}),(0,d.jsx)("circle",{cx:b/2,cy:b/2,r:e,fill:"none",stroke:"currentColor",strokeWidth:c,strokeDasharray:`${h} ${f-h}`,strokeLinecap:"round",className:(0,g.cn)("transition-all duration-300",a>.9?"text-destructive/70":a>.7?"text-yellow-500/50":"text-muted-foreground/30")})]})}function u(){let{workspaceId:a}=(0,j.useWorkspace)(),[b,c]=(0,e.useState)(""),[f,g]=(0,e.useState)(""),[i,k]=(0,e.useState)(!0),m=(0,e.useRef)(b);(0,e.useEffect)(()=>{m.current=b},[b]);let n=(0,e.useRef)(f);(0,e.useEffect)(()=>{n.current=f},[f]);let o=(0,e.useRef)(null),q=(0,e.useRef)(!1),r=(0,e.useCallback)(async()=>{k(!0);try{let b=await (0,l.getMemberMe)(a);c(b.global_instruction),g(b.global_instruction)}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to load settings")}finally{k(!1)}},[a]);(0,e.useEffect)(()=>{r()},[r]);let u=(0,e.useCallback)(async()=>{if(q.current)return;let b=m.current;if(b!==n.current){q.current=!0;try{let c=await (0,l.updateMemberMe)(a,b);g(c.global_instruction)}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to save")}finally{q.current=!1}}},[a]),v=(0,e.useCallback)(()=>{o.current&&clearTimeout(o.current),o.current=setTimeout(u,500)},[u]),w=(0,e.useCallback)(a=>{c(a),v()},[v]);(0,e.useEffect)(()=>{let b=()=>{if(o.current&&clearTimeout(o.current),m.current!==n.current){let b=new URLSearchParams({workspace_id:a});fetch(`/api/members/me?${b}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({global_instruction:m.current}),keepalive:!0})}};return window.addEventListener("beforeunload",b),()=>window.removeEventListener("beforeunload",b)},[a]),(0,e.useEffect)(()=>()=>{o.current&&clearTimeout(o.current),m.current!==n.current&&u()},[u]);let x=b.length/5e4;return i?(0,d.jsxs)("div",{className:"px-6 py-6 space-y-4",children:[(0,d.jsx)(p.Skeleton,{className:"h-4 w-48"}),(0,d.jsx)(p.Skeleton,{className:"h-40 w-full"})]}):(0,d.jsxs)("div",{className:"flex flex-col h-full",children:[(0,d.jsx)("div",{className:"flex-1 px-6 pt-4 pb-4",children:(0,d.jsx)(s.MarkdownEditor,{value:b,onChange:w,placeholder:"Write instructions that every agent you own will follow...",minHeight:"calc(100vh - 240px)",contentType:"markdown",variant:"seamless"})}),(0,d.jsxs)("div",{className:"flex items-center gap-2 px-6 py-3",children:[(0,d.jsx)(t,{ratio:x}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"This instruction is prepended to every agent's individual instruction."})]})]})}var v=a.i(166776),w=a.i(695004),x=a.i(911057),y=a.i(790090);let z=(0,y.default)("user-minus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);function A(a){return`${window.location.origin}/invite/${a}`}function B(){let{workspaceId:a}=(0,j.useWorkspace)(),b=(0,k.useSession)(),c=b.data?.user?.id,[f,i]=(0,e.useState)([]),[n,o]=(0,e.useState)([]),[q,r]=(0,e.useState)(!0),[s,t]=(0,e.useState)(!1),u=f.find(a=>a.user_id===c)?.role==="owner",y=(0,e.useCallback)(async()=>{r(!0);try{let[b,c]=await Promise.all([(0,l.listMembers)(a),(0,l.listInvites)(a).catch(()=>[])]);i(b),o(c)}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to load members")}finally{r(!1)}},[a]);(0,e.useEffect)(()=>{y()},[y]);let B=async()=>{t(!0);try{let b=await (0,l.createInvite)(a);o(a=>[...a,b]);let c=A(b.token);await navigator.clipboard.writeText(c),h.toast.success("Invite link copied to clipboard")}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to generate invite")}finally{t(!1)}},C=async a=>{let b=A(a);try{await navigator.clipboard.writeText(b),h.toast.success("Invite link copied")}catch{h.toast.error("Failed to copy link")}},D=async b=>{try{await (0,l.revokeInvite)(a,b),o(a=>a.filter(a=>a.id!==b)),h.toast.success("Invite revoked")}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to revoke invite")}},E=async b=>{try{await (0,l.removeMember)(a,b),i(a=>a.filter(a=>a.id!==b)),h.toast.success("Member removed")}catch(a){h.toast.error(a instanceof Error?a.message:"Failed to remove member")}};return q?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(p.Skeleton,{className:"h-4 w-24"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"}),(0,d.jsx)(p.Skeleton,{className:"h-4 w-24 mt-6"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"}),(0,d.jsx)(p.Skeleton,{className:"h-10 w-full"})]}):(0,d.jsxs)("div",{className:"space-y-8",children:[u&&(0,d.jsxs)("section",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-medium",children:"Pending Invites"}),(0,d.jsxs)(m.Button,{size:"sm",variant:"outline",onClick:B,disabled:s,children:[(0,d.jsx)(x.Plus,{className:"size-3.5 mr-1"}),s?"Generating…":"Generate invite link"]})]}),0===n.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:"No active invite links. Generate one to invite someone to this workspace."}):(0,d.jsx)("div",{className:"space-y-1.5",children:n.map(a=>{let b=new Date(a.expires_at),c=b<new Date;return(0,d.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-border/50 px-3 py-2 text-xs",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:(0,g.cn)("font-mono truncate",c&&"text-muted-foreground line-through"),children:["/invite/",a.token.slice(0,12),"…"]}),(0,d.jsx)("p",{className:(0,g.cn)("text-muted-foreground/70 mt-0.5",c&&"text-destructive/70"),children:c?"Expired":`Expires ${b.toLocaleDateString()}`})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 ml-2 shrink-0",children:[!c&&(0,d.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0",onClick:()=>C(a.token),title:"Copy invite link",children:(0,d.jsx)(v.Copy,{className:"size-3.5"})}),(0,d.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-destructive hover:text-destructive",onClick:()=>D(a.id),title:"Revoke invite",children:(0,d.jsx)(w.Trash2,{className:"size-3.5"})})]})]},a.id)})})]}),(0,d.jsxs)("section",{className:"space-y-3",children:[(0,d.jsx)("h2",{className:"text-sm font-medium",children:"Members"}),(0,d.jsx)("div",{className:"space-y-1.5",children:f.map(a=>{let b=a.user_id===c,e=a.name?a.name.split(" ").map(a=>a[0]).join("").slice(0,2).toUpperCase():a.email.slice(0,2).toUpperCase();return(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-border/50 px-3 py-2",children:[(0,d.jsx)("div",{className:"size-7 rounded-full bg-muted flex items-center justify-center text-xs font-medium text-muted-foreground shrink-0 overflow-hidden",children:a.image?(0,d.jsx)("img",{src:a.image,alt:a.name,className:"size-full object-cover"}):e}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"text-sm font-medium truncate leading-tight",children:[a.name||a.email,b&&(0,d.jsx)("span",{className:"ml-1.5 text-xs text-muted-foreground font-normal",children:"(you)"})]}),a.name&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground truncate",children:a.email})]}),(0,d.jsx)("span",{className:(0,g.cn)("text-xs px-1.5 py-0.5 rounded shrink-0","owner"===a.role?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:a.role}),u&&!b&&(0,d.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-muted-foreground hover:text-destructive shrink-0",onClick:()=>E(a.id),title:"Remove member",children:(0,d.jsx)(z,{className:"size-3.5"})})]},a.id)})})]})]})}a.s([],543750),a.i(543750);var C=a.i(181749),D=a.i(520950),E=a.i(935469),F=a.i(901496),G=a.i(556053),H=a.i(980403),I=a.i(207116);let J=((b={}).checked="data-checked",b.unchecked="data-unchecked",b.indeterminate="data-indeterminate",b.disabled="data-disabled",b.readonly="data-readonly",b.required="data-required",b.valid="data-valid",b.invalid="data-invalid",b.touched="data-touched",b.dirty="data-dirty",b.filled="data-filled",b.focused="data-focused",b);var K=a.i(621907);function L(a){return e.useMemo(()=>({checked:b=>a.indeterminate?{}:b?{[J.checked]:""}:{[J.unchecked]:""},...K.fieldValidityMapping}),[a.indeterminate])}var M=a.i(147909),N=a.i(423994),O=a.i(991367),P=a.i(367183),Q=a.i(874417),R=a.i(336789),S=a.i(89286),T=a.i(582050),U=a.i(63462);function V(a,b,c,d=!0,f){let[g,h]=e.useState(),i=(0,N.useBaseUiId)(f?`${f}-label`:void 0),j=a??b??g;return(0,F.useIsoLayoutEffect)(()=>{let e=a||b||!d?void 0:function(a,b){let c=function(a){if(!a)return;let b=a.parentElement;if(b&&"LABEL"===b.tagName)return b;let c=a.id;if(c){let b=a.nextElementSibling;if(b&&b.htmlFor===c)return b}let d=a.labels;return d&&d[0]}(a);if(c)return!c.id&&b&&(c.id=b),c.id||void 0}(c.current,i);g!==e&&h(e)}),j}var W=a.i(10773),X=a.i(485177);let Y=e.createContext(void 0);var Z=a.i(331700),$=a.i(874514),_=a.i(36136);let aa=e.forwardRef(function(a,b){let{checked:c,className:f,defaultChecked:g=!1,"aria-labelledby":h,disabled:i=!1,form:j,id:k,indeterminate:l=!1,inputRef:m,name:n,onCheckedChange:o,parent:p=!1,readOnly:q=!1,render:r,required:s=!1,uncheckedValue:t,value:u,nativeButton:v=!1,style:w,...x}=a,{clearErrors:y}=(0,T.useFormContext)(),{disabled:z,name:A,setDirty:B,setFilled:J,setFocused:K,setTouched:X,state:aa,validationMode:ab,validityData:ac,shouldValidateOnChange:ad,validation:ae}=(0,Q.useFieldRootContext)(),af=(0,S.useFieldItemContext)(),{labelId:ag,controlId:ah,registerControlId:ai,getDescriptionProps:aj}=(0,U.useLabelableContext)(),ak=(0,W.useCheckboxGroupContext)(),al=ak?.parent,am=al&&ak.allValues,an=z||af.disabled||ak?.disabled||i,ao=A??n,ap=u??ao,aq=(0,N.useBaseUiId)(),ar=(0,N.useBaseUiId)(),as=ah;am?as=p?ar:`${al.id}-${ap}`:k&&(as=k);let at={};am&&(p?at=ak.parent.getParentProps():ap&&(at=ak.parent.getChildProps(ap)));let au=(0,E.useStableCallback)(o),{checked:av=c,indeterminate:aw=l,onCheckedChange:ax,...ay}=at,az=ak?.value,aA=ak?.setValue,aB=ak?.defaultValue,aC=e.useRef(null),aD=(0,H.useRefWithInit)(()=>Symbol("checkbox-control")),aE=e.useRef(!1),{getButtonProps:aF,buttonRef:aG}=(0,P.useButton)({disabled:an,native:v}),aH=ak?.validation??ae,[aI,aJ]=(0,D.useControlled)({controlled:ap&&az&&!p?az.includes(ap):av,default:ap&&aB&&!p?aB.includes(ap):g,name:"Checkbox",state:"checked"});(0,F.useIsoLayoutEffect)(()=>{ai!==C.NOOP&&(aE.current=!0,ai(aD.current,as))},[as,ak,ai,p,aD]),e.useEffect(()=>{let a=aD.current;return()=>{aE.current&&ai!==C.NOOP&&(aE.current=!1,ai(a,void 0))}},[ai,aD]),(0,R.useRegisterFieldControl)(aC,{enabled:!ak,id:aq,value:aI});let aK=e.useRef(null),aL=(0,G.useMergedRefs)(m,aK,aH.inputRef),aM=V(h,ag,aK,!v,as??void 0);(0,F.useIsoLayoutEffect)(()=>{aK.current&&(aK.current.indeterminate=aw,aI&&J(!0))},[aI,aw,J]),(0,_.useValueChanged)(aI,()=>{(!ak||p)&&(y(ao),J(aI),B(aI!==ac.initialValue),ad()?aH.commit(aI):aH.commit(aI,!0))});let aN=(0,O.mergeProps)({checked:aI,disabled:an,form:j,name:p?void 0:ao,id:v?void 0:as??void 0,required:s,ref:aL,style:ao?I.visuallyHiddenInput:I.visuallyHidden,tabIndex:-1,type:"checkbox","aria-hidden":!0,onChange(a){if(a.nativeEvent.defaultPrevented)return;if(q)return void a.preventDefault();let b=a.currentTarget.checked,c=(0,Z.createChangeEventDetails)($.REASONS.none,a.nativeEvent);ax?.(b,c),au(b,c),!c.isCanceled&&(aJ(b),ap&&az&&aA&&!p&&!am&&aA(b?[...az,ap]:az.filter(a=>a!==ap),c))},onFocus(){aC.current?.focus()}},void 0!==u?{value:(ak?aI&&u:u)||""}:C.EMPTY_OBJECT,aj,ak?aH.getValidationProps:aH.getInputValidationProps),aO=am?!!av:aI,aP=am&&aw||l;e.useEffect(()=>{if(!al||!ap)return;let a=al.disabledStatesRef.current;return a.set(ap,an),()=>{a.delete(ap)}},[al,an,ap]);let aQ=e.useMemo(()=>({...aa,checked:aO,disabled:an,readOnly:q,required:s,indeterminate:aP}),[aa,aO,an,q,s,aP]),aR=L(aQ),aS=(0,M.useRenderElement)("span",a,{state:aQ,ref:[aG,aC,b,ak?.registerControlRef],props:[{id:v?as??void 0:aq,role:"checkbox","aria-checked":aw?"mixed":aI,"aria-readonly":q||void 0,"aria-required":s||void 0,"aria-labelledby":aM,"data-parent":p?"":void 0,onFocus(){K(!0)},onBlur(){let a=aK.current;a&&(X(!0),K(!1),"onBlur"===ab&&aH.commit(ak?az:a.checked))},onClick(a){q||an||(a.preventDefault(),aK.current?.dispatchEvent(new PointerEvent("click",{bubbles:!0,shiftKey:a.shiftKey,ctrlKey:a.ctrlKey,altKey:a.altKey,metaKey:a.metaKey})))}},aj,aH.getValidationProps,x,ay,aF],stateAttributesMapping:aR});return(0,d.jsxs)(Y.Provider,{value:aQ,children:[aS,!aI&&!ak&&ao&&!p&&void 0!==t&&(0,d.jsx)("input",{type:"hidden",form:j,name:ao,value:t}),(0,d.jsx)("input",{...aN,suppressHydrationWarning:!0})]})});var ab=a.i(121102),ac=a.i(541481),ad=a.i(254464);let ae=e.forwardRef(function(a,b){let{render:c,className:d,style:f,keepMounted:g=!1,...h}=a,i=function(){let a=e.useContext(Y);if(void 0===a)throw Error((0,X.default)(14));return a}(),j=i.checked||i.indeterminate,{mounted:k,transitionStatus:l,setMounted:m}=(0,ac.useTransitionStatus)(j),n=e.useRef(null),o={...i,transitionStatus:l};(0,ab.useOpenChangeComplete)({open:j,ref:n,onComplete(){j||m(!1)}});let p=L(i),q=e.useMemo(()=>({...p,...ad.transitionStatusMapping,...K.fieldValidityMapping}),[p]),r=(0,M.useRenderElement)("span",a,{ref:[b,n],state:o,stateAttributesMapping:q,props:h});return g||k?r:null});a.s(["Indicator",0,ae,"Root",0,aa],634617);var af=a.i(634617),af=af,ag=a.i(322809);function ah({className:a,...b}){return(0,d.jsx)(af.Root,{"data-slot":"checkbox",className:(0,g.cn)("peer relative flex size-4 shrink-0 items-center justify-center rounded-lg border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",a),...b,children:(0,d.jsx)(af.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none [&>svg]:size-3.5",children:(0,d.jsx)(ag.CheckIcon,{})})})}a.s([],443440),a.i(443440);let ai=e.createContext(void 0),aj=((c={}).checked="data-checked",c.unchecked="data-unchecked",c.disabled="data-disabled",c.readonly="data-readonly",c.required="data-required",c.valid="data-valid",c.invalid="data-invalid",c.touched="data-touched",c.dirty="data-dirty",c.filled="data-filled",c.focused="data-focused",c),ak={...K.fieldValidityMapping,checked:a=>a?{[aj.checked]:""}:{[aj.unchecked]:""}};var al=a.i(140295);let am=e.forwardRef(function(a,b){let{checked:c,className:f,defaultChecked:g,"aria-labelledby":h,form:i,id:j,inputRef:k,name:l,nativeButton:m=!1,onCheckedChange:n,readOnly:o=!1,required:p=!1,disabled:q=!1,render:r,uncheckedValue:s,value:t,style:u,...v}=a,{clearErrors:w}=(0,T.useFormContext)(),{state:x,setTouched:y,setDirty:z,validityData:A,setFilled:B,setFocused:H,shouldValidateOnChange:J,validationMode:K,disabled:L,name:S,validation:W}=(0,Q.useFieldRootContext)(),{labelId:X}=(0,U.useLabelableContext)(),Y=L||q,aa=S??l,ab=(0,E.useStableCallback)(n),ac=e.useRef(null),ad=(0,G.useMergedRefs)(ac,k,W.inputRef),ae=e.useRef(null),af=(0,N.useBaseUiId)(),ag=(0,al.useLabelableId)({id:j,implicit:!1,controlRef:ae}),ah=m?void 0:ag,[aj,am]=(0,D.useControlled)({controlled:c,default:!!g,name:"Switch",state:"checked"});(0,R.useRegisterFieldControl)(ae,{id:af,value:aj}),(0,F.useIsoLayoutEffect)(()=>{ac.current&&B(ac.current.checked)},[ac,B]),(0,_.useValueChanged)(aj,()=>{w(aa),z(aj!==A.initialValue),B(aj),J()?W.commit(aj):W.commit(aj,!0)});let{getButtonProps:an,buttonRef:ao}=(0,P.useButton)({disabled:Y,native:m}),ap=V(h,X,ac,!m,ah),aq=e.useMemo(()=>(0,O.mergeProps)({checked:aj,disabled:Y,form:i,id:ah,name:aa,required:p,style:aa?I.visuallyHiddenInput:I.visuallyHidden,tabIndex:-1,type:"checkbox","aria-hidden":!0,ref:ad,onChange(a){if(a.nativeEvent.defaultPrevented)return;if(o)return void a.preventDefault();let b=a.currentTarget.checked,c=(0,Z.createChangeEventDetails)($.REASONS.none,a.nativeEvent);ab?.(b,c),c.isCanceled||am(b)},onFocus(){ae.current?.focus()}},W.getInputValidationProps,void 0!==t?{value:t}:C.EMPTY_OBJECT),[aj,Y,i,ad,ah,aa,ab,o,p,am,W,t]),ar=e.useMemo(()=>({...x,checked:aj,disabled:Y,readOnly:o,required:p}),[x,aj,Y,o,p]),as=(0,M.useRenderElement)("span",a,{state:ar,ref:[b,ae,ao],props:[{id:m?ag:af,role:"switch","aria-checked":aj,"aria-readonly":o||void 0,"aria-required":p||void 0,"aria-labelledby":ap,onFocus(){Y||H(!0)},onBlur(){let a=ac.current;a&&!Y&&(y(!0),H(!1),"onBlur"===K&&W.commit(a.checked))},onClick(a){o||Y||(a.preventDefault(),ac.current?.dispatchEvent(new PointerEvent("click",{bubbles:!0,shiftKey:a.shiftKey,ctrlKey:a.ctrlKey,altKey:a.altKey,metaKey:a.metaKey})))}},W.getValidationProps,v,an],stateAttributesMapping:ak});return(0,d.jsxs)(ai.Provider,{value:ar,children:[as,!aj&&aa&&void 0!==s&&(0,d.jsx)("input",{type:"hidden",form:i,name:aa,value:s}),(0,d.jsx)("input",{...aq,suppressHydrationWarning:!0})]})}),an=e.forwardRef(function(a,b){let{render:c,className:d,style:f,...g}=a,{state:h}=(0,Q.useFieldRootContext)(),i=function(){let a=e.useContext(ai);if(void 0===a)throw Error((0,X.default)(63));return a}(),j={...h,...i};return(0,M.useRenderElement)("span",a,{state:j,ref:b,stateAttributesMapping:ak,props:g})});a.s(["Root",0,am,"Thumb",0,an],795013);var ao=a.i(795013),ao=ao;function ap({className:a,size:b="default",...c}){return(0,d.jsx)(ao.Root,{"data-slot":"switch","data-size":b,className:(0,g.cn)("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",a),...c,children:(0,d.jsx)(ao.Thumb,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"})})}var aq=a.i(626806);function ar(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)([...aq.NOTIFICATION_EVENTS]),[g,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(!1);(0,e.useEffect)(()=>{i((0,aq.isNotificationSupported)()),b((0,aq.getNotificationEnabled)()),f((0,aq.getNotificationEvents)()),(0,aq.isNotificationSupported)()&&k("denied"===Notification.permission)},[]);let l=async a=>{if(!a){b(!1),(0,aq.setNotificationEnabled)(!1);return}await (0,aq.requestNotificationPermission)()?(b(!0),(0,aq.setNotificationEnabled)(!0)):(k(!0),h.toast.error("Notification permission denied. Please enable it in browser settings."))};return g?(0,d.jsx)("div",{className:"space-y-6",children:(0,d.jsxs)("section",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-medium",children:"Browser Notifications"}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"space-y-0.5",children:[(0,d.jsx)("p",{className:"text-sm",children:"Enable notifications"}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Get notified when tasks finish while the tab is in the background"})]}),(0,d.jsx)(ap,{checked:a,onCheckedChange:l,disabled:j&&!a})]}),j&&!a&&(0,d.jsx)("p",{className:"text-xs text-destructive",children:"Notification permission was denied. Please allow it in your browser settings."}),a&&(0,d.jsxs)("div",{className:"space-y-2 pl-0.5",children:[(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Notify me when:"}),aq.NOTIFICATION_EVENTS.map(a=>(0,d.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer select-none",children:[(0,d.jsx)(ah,{checked:c.includes(a),onCheckedChange:()=>{f(b=>{let c=b.includes(a)?b.filter(b=>b!==a):[...b,a];return(0,aq.setNotificationEvents)(c),c})}}),aq.NOTIFICATION_EVENT_LABELS[a]]},a))]})]})]})}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Your browser does not support notifications."})}var as=a.i(752792),at=a.i(439882),au=a.i(464830);let av=(0,y.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var aw=a.i(918768),ax=a.i(292948);let ay=(0,y.default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);var az=a.i(385539);let aA=(0,y.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);function aB({icon:a,label:b,value:c,sub:e}){return(0,d.jsx)(at.Card,{size:"sm",children:(0,d.jsxs)(at.CardContent,{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,d.jsx)(a,{className:"size-4"})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,d.jsx)("p",{className:"text-2xl font-semibold leading-none tracking-tight",children:c}),e&&(0,d.jsx)(au.Badge,{variant:"secondary",className:"text-[10px] px-1.5 h-4 font-normal",children:e})]}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground truncate",children:b})]})]})})}function aC({agents:a,runtimes:b,activeTaskCounts:c,overview:e}){let f=new Map;for(let a of b){let b=a.daemon_id??a.id;f.set(b,f.get(b)||"online"===a.status)}let g=f.size,h=[...f.values()].filter(Boolean).length,i=Object.values(c).reduce((a,b)=>a+b,0),j=a.filter(a=>{let c=b.find(b=>b.id===a.runtime_id);return c?.status==="online"}).length;return(0,d.jsxs)("div",{className:"grid gap-3 grid-cols-2 sm:grid-cols-3 lg:grid-cols-6",children:[(0,d.jsx)(aB,{icon:az.Monitor,label:"Machines",value:`${h}/${g}`,sub:"online"}),(0,d.jsx)(aB,{icon:av,label:"Agents",value:a.length,sub:`${j} online`}),(0,d.jsx)(aB,{icon:ay,label:"Members",value:e.members.length,sub:e.pending_invites>0?`${e.pending_invites} pending`:void 0}),(0,d.jsx)(aB,{icon:aA,label:"Active Tasks",value:i,sub:e.task_stats.queued>0?`${e.task_stats.queued} queued`:void 0}),(0,d.jsx)(aB,{icon:ax.Send,label:"Emails Sent",value:e.email_stats.outbound,sub:`${e.email_stats.unread} unread`}),(0,d.jsx)(aB,{icon:aw.Mail,label:"Custom Emails",value:e.email_accounts.length})]})}function aD({overview:a}){let{completed:b,failed:c,cancelled:e,queued:f,stale:g}=a.task_stats,h=b+c,i=h>0?(c/h*100).toFixed(1):"0";return(0,d.jsxs)(at.Card,{children:[(0,d.jsx)(at.CardHeader,{children:(0,d.jsx)(at.CardTitle,{children:"Task Health (Today)"})}),(0,d.jsx)(at.CardContent,{children:(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,d.jsx)(aE,{label:"Completed",value:b}),(0,d.jsx)(aE,{label:"Failed",value:c,className:c>0?"text-destructive":void 0}),(0,d.jsx)(aE,{label:"Cancelled",value:e}),(0,d.jsx)(aE,{label:"Failure Rate",value:`${i}%`,className:Number(i)>10?"text-destructive":void 0}),(0,d.jsx)(aE,{label:"Queue Backlog",value:f,className:f>10?"text-amber-500":void 0}),(0,d.jsx)(aE,{label:"Stale Tasks",value:g,className:g>0?"text-destructive":void 0})]})})]})}function aE({label:a,value:b,className:c}){return(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:`text-xl font-semibold ${c??""}`,children:b}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:a})]})}var aF=a.i(525132);function aG({overview:a,agents:b}){let{inbound:c,outbound:e,unread:f,rejected:g}=a.email_stats,h=new Map(b.map(a=>[a.id,a.name]));return(0,d.jsxs)(at.Card,{children:[(0,d.jsx)(at.CardHeader,{children:(0,d.jsx)(at.CardTitle,{children:"Email Summary"})}),(0,d.jsxs)(at.CardContent,{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-xl font-semibold",children:c}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Received"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-xl font-semibold",children:e}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Sent"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:`text-xl font-semibold ${f>0?"text-primary":""}`,children:f}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Unread"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:`text-xl font-semibold ${g>0?"text-amber-500":""}`,children:g}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Untrust"})]})]}),a.email_accounts.length>0&&(0,d.jsxs)("div",{className:"space-y-2 pt-2 border-t border-border/50",children:[(0,d.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Custom Mailboxes"}),a.email_accounts.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 text-xs",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,d.jsxs)(aF.Tooltip,{children:[(0,d.jsx)(aF.TooltipTrigger,{render:(0,d.jsx)("span",{className:`size-1.5 shrink-0 rounded-full ${"active"===a.status?"bg-emerald-500":"bg-destructive"}`})}),(0,d.jsx)(aF.TooltipContent,{side:"top",children:"active"===a.status?"Active":`Error: ${a.error_message||"inactive"}`})]}),(0,d.jsx)("span",{className:"truncate",children:a.email_address})]}),(0,d.jsx)("span",{className:"text-muted-foreground shrink-0",children:h.get(a.agent_id)??"—"})]},a.id))]})]})]})}var aH=a.i(578894);function aI({runtimes:a,agents:b}){let c=(0,i.useRouter)(),{slug:e}=(0,j.useWorkspace)(),f=new Map;for(let b of a){let a=b.daemon_id??b.id;f.has(a)||f.set(a,{runtimes:[],deviceInfo:b.device_info??""}),f.get(a).runtimes.push(b)}let g=[...f.entries()];return 0===g.length?(0,d.jsxs)(at.Card,{children:[(0,d.jsxs)(at.CardHeader,{children:[(0,d.jsx)(at.CardTitle,{children:"Machines"}),(0,d.jsx)(at.CardAction,{children:(0,d.jsx)("button",{type:"button",onClick:()=>c.push(`/w/${e}/runtimes`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,d.jsx)(aH.ArrowUpRight,{className:"size-4"})})})]}),(0,d.jsx)(at.CardContent,{children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"No machines connected."})})]}):(0,d.jsxs)(at.Card,{children:[(0,d.jsx)(at.CardHeader,{children:(0,d.jsx)(at.CardTitle,{children:"Machines"})}),(0,d.jsx)(at.CardContent,{className:"space-y-3",children:g.map(([a,c])=>{let e=c.runtimes.some(a=>"online"===a.status),f=c.runtimes.map(a=>a.last_seen_at).filter(Boolean).sort().reverse()[0],g=b.filter(a=>c.runtimes.some(b=>b.id===a.runtime_id)),h=c.runtimes.some(a=>a.pending_update_version),i=c.runtimes.find(a=>a.pending_update_version)?.pending_update_version;return(0,d.jsxs)("div",{className:"flex items-start gap-3 text-xs",children:[(0,d.jsxs)(aF.Tooltip,{children:[(0,d.jsx)(aF.TooltipTrigger,{render:(0,d.jsx)("span",{className:`mt-1 size-2 shrink-0 rounded-full ${e?"bg-emerald-500":"bg-muted-foreground/30"}`})}),(0,d.jsx)(aF.TooltipContent,{side:"top",children:e?"Online":"Offline"})]}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-medium truncate",children:c.deviceInfo||a.slice(0,12)}),h&&(0,d.jsxs)(aF.Tooltip,{children:[(0,d.jsx)(aF.TooltipTrigger,{render:(0,d.jsx)("span",{children:(0,d.jsx)(au.Badge,{variant:"outline",className:"text-[10px] px-1.5 py-0 text-amber-500 border-amber-500/30",children:"update"})})}),(0,d.jsxs)(aF.TooltipContent,{side:"top",children:["Pending update to v",i]})]})]}),(0,d.jsxs)("div",{className:"text-muted-foreground mt-0.5",children:[g.length>0?g.map(a=>a.name).join(", "):"No agents"," · ",function(a){if(!a)return"never";let b=Math.floor((Date.now()-new Date(a).getTime())/1e3);if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);return d<24?`${d}h ago`:`${Math.floor(d/24)}d ago`}(f??null)]})]})]},a)})})]})}function aJ({overview:a}){let b=(0,i.useRouter)(),{slug:c}=(0,j.useWorkspace)(),{members:e,pending_invites:f}=a;return(0,d.jsxs)(at.Card,{children:[(0,d.jsxs)(at.CardHeader,{children:[(0,d.jsx)(at.CardAction,{children:(0,d.jsx)("button",{type:"button",onClick:()=>b.push(`/w/${c}/settings`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,d.jsx)(aH.ArrowUpRight,{className:"size-4"})})}),(0,d.jsxs)(at.CardTitle,{children:["Team",f>0&&(0,d.jsxs)("span",{className:"ml-2 text-xs text-muted-foreground font-normal",children:["(",f," pending invite",f>1?"s":"",")"]})]})]}),(0,d.jsx)(at.CardContent,{className:"p-0",children:(0,d.jsx)("div",{className:"divide-y divide-border/50",children:[...e].sort((a,b)=>"owner"===a.role?-1:+("owner"===b.role)).map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2.5",children:[a.image?(0,d.jsx)("img",{src:a.image,alt:a.name,className:"size-7 rounded-full shrink-0"}):(0,d.jsx)("div",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-secondary text-xs font-medium",children:(a.name||a.email).charAt(0).toUpperCase()}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate block",children:a.name||a.email}),a.name&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate block",children:a.email})]}),(0,d.jsx)(au.Badge,{variant:"owner"===a.role?"default":"secondary",className:"text-[10px] px-1.5 py-0 shrink-0",children:a.role})]},a.id))})})]})}function aK(){let{agents:a,runtimes:b,loading:c,activeTaskCounts:f}=(0,as.useAgentContext)(),{workspaceId:g}=(0,j.useWorkspace)(),[h,i]=(0,e.useState)(null),[k,m]=(0,e.useState)(!1);return((0,e.useEffect)(()=>{if(c)return;let a=!1;return m(!0),(0,l.getWorkspaceOverview)(g).then(b=>{a||i(b)}).catch(()=>{}).finally(()=>{a||m(!1)}),()=>{a=!0}},[c,g]),k||!h)?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(p.Skeleton,{className:"h-44 rounded-xl"}),(0,d.jsx)(p.Skeleton,{className:"h-44 rounded-xl"}),(0,d.jsx)(p.Skeleton,{className:"h-44 rounded-xl"}),(0,d.jsx)(p.Skeleton,{className:"h-44 rounded-xl"})]}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(aC,{agents:a,runtimes:b,activeTaskCounts:f,overview:h}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(aD,{overview:h}),(0,d.jsx)(aG,{overview:h,agents:a})]}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(aI,{runtimes:b,agents:a}),(0,d.jsx)(aJ,{overview:h})]})]})}let aL=[{id:"general",label:"General"},{id:"instruction",label:"Global Instruction"},{id:"notifications",label:"Notifications"},{id:"members",label:"Members"},{id:"usages",label:"Usages"}];a.s(["default",0,function(){let[a,b]=(0,e.useState)("general");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"flex items-center justify-between border-b border-border/50 px-3 md:px-5 py-2.5 gap-3",children:(0,d.jsx)("div",{className:"flex items-center gap-3 min-w-0",children:(0,d.jsx)("h1",{className:"text-sm font-medium",children:"Settings"})})}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,d.jsx)("nav",{className:"w-48 shrink-0 border-r border-border/50 py-3 px-2 hidden md:block",children:aL.map(c=>(0,d.jsx)("button",{onClick:()=>b(c.id),className:(0,g.cn)("w-full rounded-md px-2.5 py-1.5 text-left text-sm transition-colors",a===c.id?"bg-accent text-foreground font-medium":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:c.label},c.id))}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,d.jsx)("div",{className:"px-4 pt-2 md:hidden",children:(0,d.jsx)(f.Tabs,{className:"items-center",value:a,onValueChange:a=>b(a),children:(0,d.jsx)(f.TabsList,{className:"h-auto gap-1",children:aL.map(a=>(0,d.jsx)(f.TabsTrigger,{value:a.id,children:a.label},a.id))})})}),(0,d.jsx)("div",{className:(0,g.cn)("flex-1 overflow-y-auto thin-scrollbar","instruction"!==a&&"px-5 py-5"),children:"instruction"===a?(0,d.jsx)(u,{}):"usages"===a?(0,d.jsx)(aK,{}):(0,d.jsxs)("div",{className:"mx-auto max-w-md",children:["general"===a&&(0,d.jsx)(r,{}),"notifications"===a&&(0,d.jsx)(ar,{}),"members"===a&&(0,d.jsx)(B,{})]})})]})]})]})}],294526)}];
2
2
 
3
3
  //# sourceMappingURL=src_web_src_app_%28app%29_w_%5Bslug%5D_settings_page_tsx_0fdcupy._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[582148,a=>{"use strict";a.s(["WorkspaceShell",()=>aB,"useSidebarTrigger",()=>aA],582148);var b=a.i(749314),c=a.i(437199),d=a.i(207058),e=a.i(752792),f=a.i(506180),g=a.i(831893),h=a.i(242292),i=a.i(75118),j=a.i(385539),k=a.i(790090);let l=(0,k.default)("sun-moon",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715",key:"xlf6rm"}],["path",{d:"M16 12a4 4 0 0 0-4-4",key:"6vsxu"}],["path",{d:"m19 5-1.256 1.256",key:"1yg6a6"}],["path",{d:"M20 12h2",key:"1q8mjw"}]]);var m=a.i(911057),n=a.i(348634);let o=(0,k.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),p=(0,k.default)("arrow-left-right",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]),q=(0,k.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var r=a.i(249453),s=a.i(929201),t=a.i(993532);let u=(0,k.default)("ungroup",[["rect",{width:"8",height:"6",x:"5",y:"4",rx:"1",key:"nzclkv"}],["rect",{width:"8",height:"6",x:"11",y:"14",rx:"1",key:"4tytwb"}]]),v=(0,k.default)("arrow-right-to-line",[["path",{d:"M17 12H3",key:"8awo09"}],["path",{d:"m11 18 6-6-6-6",key:"8c2y43"}],["path",{d:"M21 5v14",key:"nzette"}]]);var w=a.i(25668),x=a.i(525132),y=a.i(615640),z=a.i(454607),A=a.i(867561),B=a.i(869267),C=a.i(166198);function D(){let{data:a,isPending:e}=(0,z.useSession)(),f=(0,d.useRouter)(),[g,h]=(0,c.useState)(!1);(0,c.useEffect)(()=>{h(!0)},[]);let i=a?.user;if(!g||e||!i)return(0,b.jsx)(w.Skeleton,{className:"size-10 rounded-xl"});let j=(i.name||i.email||"?").charAt(0).toUpperCase();return(0,b.jsxs)(A.DropdownMenu,{children:[(0,b.jsx)(A.DropdownMenuTrigger,{render:(0,b.jsx)("button",{type:"button",title:i.name??i.email??"Account",className:"flex items-center justify-center size-10 rounded-xl text-muted-foreground hover:text-foreground hover:bg-accent transition-colors duration-200 cursor-pointer"}),children:(0,b.jsx)(C.User,{className:"size-4"})}),(0,b.jsxs)(A.DropdownMenuContent,{className:"min-w-52 rounded-lg",side:"right",align:"end",sideOffset:8,children:[(0,b.jsx)(A.DropdownMenuGroup,{children:(0,b.jsx)(A.DropdownMenuLabel,{className:"p-0 font-normal",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 text-left text-sm",children:[(0,b.jsx)("div",{className:"flex items-center justify-center size-7 rounded-full bg-primary text-primary-foreground text-xs font-medium shrink-0",children:j}),(0,b.jsxs)("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:i.name??"User"}),(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:i.email})]})]})})}),(0,b.jsx)(A.DropdownMenuSeparator,{}),(0,b.jsx)(A.DropdownMenuGroup,{children:(0,b.jsxs)(A.DropdownMenuItem,{onClick:async()=>{await (0,z.signOut)(),f.push("/sign-in")},children:[(0,b.jsx)(B.LogOut,{className:"size-4"}),"Log out"]})})]})]})}var E=a.i(764190);a.i(735132);var F=a.i(325848),G=a.i(253260),H=a.i(914211),I=a.i(892365);let J=a=>{let{transform:b}=a;return{...b,x:0}};function K(a,b,c){let d=a.slice();return d.splice(c<0?d.length+c:c,0,d.splice(b,1)[0]),d}function L(a){return null!==a&&a>=0}let M=a=>{let{rects:b,activeIndex:c,overIndex:d,index:e}=a,f=K(b,d,c),g=b[e],h=f[e];return h&&g?{x:h.left-g.left,y:h.top-g.top,scaleX:h.width/g.width,scaleY:h.height/g.height}:null},N={scaleX:1,scaleY:1},O=a=>{var b,c,d,e;let f,g,h,{activeIndex:i,activeNodeRect:j,index:k,rects:l,overIndex:m}=a,n=null!=(b=l[i])?b:j;if(!n)return null;if(k===i){let a=l[m];return a?{x:0,y:i<m?a.top+a.height-(n.top+n.height):a.top-n.top,...N}:null}let o=(c=l,d=k,e=i,f=c[d],g=c[d-1],h=c[d+1],f?e<d?g?f.top-(g.top+g.height):h?h.top-(f.top+f.height):0:h?h.top-(f.top+f.height):g?f.top-(g.top+g.height):0:0);return k>i&&k<=m?{x:0,y:-n.height-o,...N}:k<i&&k>=m?{x:0,y:n.height+o,...N}:{x:0,y:0,...N}},P="Sortable",Q=c.default.createContext({activeIndex:-1,containerId:P,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:M,disabled:{draggable:!1,droppable:!1}});function R(a){let{children:b,id:d,items:e,strategy:f=M,disabled:g=!1}=a,{active:h,dragOverlay:i,droppableRects:j,over:k,measureDroppableContainers:l}=(0,H.useDndContext)(),m=(0,I.useUniqueId)(P,d),n=null!==i.rect,o=(0,c.useMemo)(()=>e.map(a=>"object"==typeof a&&"id"in a?a.id:a),[e]),p=null!=h,q=h?o.indexOf(h.id):-1,r=k?o.indexOf(k.id):-1,s=(0,c.useRef)(o),t=!function(a,b){if(a===b)return!0;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}(o,s.current),u=-1!==r&&-1===q||t,v="boolean"==typeof g?{draggable:g,droppable:g}:g;(0,I.useIsomorphicLayoutEffect)(()=>{t&&p&&l(o)},[t,o,p,l]),(0,c.useEffect)(()=>{s.current=o},[o]);let w=(0,c.useMemo)(()=>({activeIndex:q,containerId:m,disabled:v,disableTransforms:u,items:o,overIndex:r,useDragOverlay:n,sortedRects:o.reduce((a,b,c)=>{let d=j.get(b);return d&&(a[c]=d),a},Array(o.length)),strategy:f}),[q,m,v.draggable,v.droppable,u,o,r,j,n,f]);return c.default.createElement(Q.Provider,{value:w},b)}let S=a=>{let{id:b,items:c,activeIndex:d,overIndex:e}=a;return K(c,d,e).indexOf(b)},T=a=>{let{containerId:b,isSorting:c,wasDragging:d,index:e,items:f,newIndex:g,previousItems:h,previousContainerId:i,transition:j}=a;return!!j&&!!d&&(h===f||e!==g)&&(!!c||g!==e&&b===i)},U={duration:200,easing:"ease"},V="transform",W=I.CSS.Transition.toString({property:V,duration:0,easing:"linear"}),X={roleDescription:"sortable"};function Y(a){var b,d,e,f;let{animateLayoutChanges:g=T,attributes:h,disabled:i,data:j,getNewIndex:k=S,id:l,strategy:m,resizeObserverConfig:n,transition:o=U}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:x}=(0,c.useContext)(Q),y=(b=i,d=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(e=null==b?void 0:b.draggable)?e:d.draggable,droppable:null!=(f=null==b?void 0:b.droppable)?f:d.droppable}),z=p.indexOf(l),A=(0,c.useMemo)(()=>({sortable:{containerId:q,index:z,items:p},...j}),[q,j,z,p]),B=(0,c.useMemo)(()=>p.slice(p.indexOf(l)),[p,l]),{rect:C,node:D,isOver:E,setNodeRef:F}=(0,H.useDroppable)({id:l,data:A,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:B,...n}}),{active:G,activatorEvent:J,activeNodeRect:K,attributes:M,setNodeRef:N,listeners:O,isDragging:P,over:R,setActivatorNodeRef:Y,transform:Z}=(0,H.useDraggable)({id:l,data:A,attributes:{...X,...h},disabled:y.draggable}),$=(0,I.useCombinedRefs)(F,N),_=!!G,aa=_&&!t&&L(r)&&L(v),ab=!w&&P,ac=ab&&aa?Z:null,ad=aa?null!=ac?ac:(null!=m?m:x)({rects:u,activeNodeRect:K,activeIndex:r,overIndex:v,index:z}):null,ae=L(r)&&L(v)?k({id:l,items:p,activeIndex:r,overIndex:v}):z,af=null==G?void 0:G.id,ag=(0,c.useRef)({activeId:af,items:p,newIndex:ae,containerId:q}),ah=p!==ag.current.items,ai=g({active:G,containerId:q,isDragging:P,isSorting:_,id:l,index:z,items:p,newIndex:ag.current.newIndex,previousItems:ag.current.items,previousContainerId:ag.current.containerId,transition:o,wasDragging:null!=ag.current.activeId}),aj=function(a){let{disabled:b,index:d,node:e,rect:f}=a,[g,h]=(0,c.useState)(null),i=(0,c.useRef)(d);return(0,I.useIsomorphicLayoutEffect)(()=>{if(!b&&d!==i.current&&e.current){let a=f.current;if(a){let b=(0,H.getClientRect)(e.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&h(c)}}d!==i.current&&(i.current=d)},[b,d,e,f]),(0,c.useEffect)(()=>{g&&h(null)},[g]),g}({disabled:!ai,index:z,node:D,rect:C});return(0,c.useEffect)(()=>{_&&ag.current.newIndex!==ae&&(ag.current.newIndex=ae),q!==ag.current.containerId&&(ag.current.containerId=q),p!==ag.current.items&&(ag.current.items=p)},[_,ae,q,p]),(0,c.useEffect)(()=>{if(af===ag.current.activeId)return;if(null!=af&&null==ag.current.activeId){ag.current.activeId=af;return}let a=setTimeout(()=>{ag.current.activeId=af},50);return()=>clearTimeout(a)},[af]),{active:G,activeIndex:r,attributes:M,data:A,rect:C,index:z,newIndex:ae,items:p,isOver:E,isSorting:_,isDragging:P,listeners:O,node:D,overIndex:v,over:R,setNodeRef:$,setActivatorNodeRef:Y,setDroppableNodeRef:F,setDraggableNodeRef:N,transform:null!=aj?aj:ad,transition:aj||ah&&ag.current.newIndex===z?W:(!ab||(0,I.isKeyboardEvent)(J))&&o&&(_||ai)?I.CSS.Transition.toString({...o,property:V}):void 0}}H.KeyboardCode.Down,H.KeyboardCode.Right,H.KeyboardCode.Up,H.KeyboardCode.Left;var Z=a.i(135733);let $={folders:[]},_=(0,k.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),aa=(0,k.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var ab=a.i(781418),ac=a.i(722393);function ad({agent:a,isActive:d,isPinned:e,isOnline:f,taskCount:g,onClick:h,onPin:j,onUnpin:k,extraContextMenuItems:l}){let m,[n,o]=(0,c.useState)(!1);return(0,b.jsxs)(ac.Popover,{open:n,onOpenChange:(a,b)=>{a&&"trigger-press"===b.reason||o(a)},children:[(0,b.jsxs)(E.ContextMenu,{children:[(0,b.jsxs)(ac.PopoverTrigger,{openOnHover:!0,delay:10,render:(0,b.jsx)(E.ContextMenuTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{o(!1),h()},className:(0,i.cn)("relative flex shrink-0 items-center justify-center size-10 rounded-xl text-sm font-medium transition-all duration-200 cursor-pointer",d?"ring-2 ring-primary shadow-sm":"ring-0 bg-secondary text-secondary-foreground hover:bg-accent")})}),children:[(m=(0,F.parseAvatarUrl)(a.avatar_url))?(0,b.jsx)(G.AnimatedAvatar,{config:m,size:40,className:"rounded-xl",isHovered:!1}):a.name.charAt(0).toUpperCase(),(0,b.jsx)("span",{className:(0,i.cn)("absolute bottom-0 right-0 size-2 rounded-full ring-2 ring-background",f?"bg-status-online":"bg-status-offline")})]}),(0,b.jsxs)(E.ContextMenuContent,{children:[e?(0,b.jsxs)(E.ContextMenuItem,{onClick:k,children:[(0,b.jsx)(aa,{className:"size-3.5 mr-1.5"}),"Unpin"]}):(0,b.jsxs)(E.ContextMenuItem,{onClick:j,children:[(0,b.jsx)(_,{className:"size-3.5 mr-1.5"}),"Pin to top"]}),l]})]}),(0,b.jsx)(ac.PopoverContent,{side:"right",className:"w-fit max-w-80",children:(0,b.jsx)(ab.AgentPreviewCard,{agent:a,isOnline:f,activeTaskCount:g})})]})}function ae({folder:a,agents:c,isActive:d,onClick:e}){let f=a.agentIds.map(a=>c.find(b=>b.id===a)).filter(Boolean),g=f.slice(0,3),h=f.length-g.length;return(0,b.jsxs)("button",{type:"button",onClick:e,className:(0,i.cn)("relative flex shrink-0 items-center justify-center size-10 rounded-xl transition-all duration-200 cursor-pointer","bg-secondary/50 border border-border/30",d?"ring-2 ring-primary shadow-sm":"hover:bg-accent"),children:[(0,b.jsx)("div",{className:"relative flex items-center justify-center",style:{width:30,height:20},children:g.map((a,c)=>{let d=(0,F.parseAvatarUrl)(a.avatar_url);return(0,b.jsx)("div",{className:"absolute rounded-full overflow-hidden ring-1 ring-background",style:{width:20,height:20,left:6*c,zIndex:c+1},children:d?(0,b.jsx)(G.AnimatedAvatar,{config:d,size:20,className:"rounded-full",isHovered:!1}):(0,b.jsx)("div",{className:"flex items-center justify-center size-full bg-muted text-[8px] font-medium",children:a.name.charAt(0).toUpperCase()})},a.id)})}),h>0&&(0,b.jsxs)("span",{className:"absolute bottom-0 right-0 flex items-center justify-center min-w-3.5 h-3.5 rounded-full bg-muted text-muted-foreground text-[8px] font-bold ring-1 ring-background",children:["+",h]})]})}function af({folder:a,agents:c,isActive:d,isMergeTarget:e,dragActiveId:f,onExpand:g,nodeRefCallback:h}){let{attributes:i,listeners:j,setNodeRef:k,transform:l,transition:m,isDragging:n}=Y({id:a.id}),o={transform:I.CSS.Transform.toString(l),transition:m,opacity:n?.5:1,zIndex:n?10:void 0};return(0,b.jsx)("div",{ref:a=>{k(a),h?.(a)},style:o,...i,...j,className:"transition-all duration-200",children:(0,b.jsx)(ae,{folder:e&&f?{...a,agentIds:[...a.agentIds,f]}:a,agents:c,isActive:d,onClick:g})})}function ag({id:a,children:c}){let{attributes:d,listeners:e,setNodeRef:f,transform:g,transition:h,isDragging:i}=Y({id:a}),j={transform:I.CSS.Transform.toString(g),transition:h,opacity:i?.5:1,zIndex:i?10:void 0};return(0,b.jsx)("div",{ref:f,style:j,...d,...e,children:c})}function ah({folder:a,agents:d,activeAgentId:e,isOnline:f,taskCounts:g,anchorRef:h,onAgentClick:i,onRemoveFromFolder:j,onPinAgent:k,onReorder:l,onClose:m}){let n=(0,c.useRef)(null),[o,p]=(0,c.useState)(null),q=(0,c.useCallback)(()=>{if(!h)return;let a=h.getBoundingClientRect();p({left:a.right+8,top:a.top})},[h]);(0,c.useEffect)(()=>{q()},[q]),(0,c.useEffect)(()=>{function a(a){let b=a.target;n.current&&!n.current.contains(b)&&h&&!h.contains(b)&&m()}function b(a){"Escape"===a.key&&m()}let c=h?.closest("[class*='overflow']")??window;return document.addEventListener("mousedown",a),document.addEventListener("keydown",b),window.addEventListener("resize",q),c.addEventListener("scroll",q,{passive:!0}),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",b),window.removeEventListener("resize",q),c.removeEventListener("scroll",q)}},[h,m,q]);let r=(0,H.useSensors)((0,H.useSensor)(H.PointerSensor,{activationConstraint:{distance:5}})),s=a.agentIds.map(a=>d.find(b=>b.id===a)).filter(Boolean);return h&&o?(0,b.jsx)("div",{ref:n,className:"fixed z-50 bg-popover border rounded-xl shadow-md p-1.5 animate-in fade-in-0 zoom-in-95",style:{left:o.left,top:o.top},children:(0,b.jsx)(H.DndContext,{sensors:r,collisionDetection:H.closestCenter,modifiers:[J],onDragEnd:function(b){let{active:c,over:d}=b;if(!d||c.id===d.id)return;let e=a.agentIds.indexOf(c.id),f=a.agentIds.indexOf(d.id);l(K(a.agentIds,e,f))},children:(0,b.jsx)(R,{items:a.agentIds,strategy:O,children:(0,b.jsx)("div",{className:"flex flex-col gap-1",children:s.map(a=>(0,b.jsx)(ag,{id:a.id,children:(0,b.jsx)(ad,{agent:a,isActive:e===a.id,isPinned:!1,isOnline:f,taskCount:g[a.id]??0,onClick:()=>{i(a.id),m()},onPin:()=>{k(a.id),m()},onUnpin:()=>{},extraContextMenuItems:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(E.ContextMenuSeparator,{}),(0,b.jsxs)(E.ContextMenuItem,{onClick:()=>j(a.id),children:[(0,b.jsx)(aa,{className:"size-3.5 mr-1.5"}),"Remove from group"]})]})})},a.id))})})})}):null}function ai({id:a,children:c}){let{attributes:d,listeners:e,setNodeRef:f,transform:g,transition:h,isDragging:i}=Y({id:a}),j={transform:I.CSS.Transform.toString(g),transition:h,opacity:i?.5:1,zIndex:i?10:void 0};return(0,b.jsx)("div",{ref:f,style:j,...d,...e,children:c})}function aj({onNavigate:a}={}){let k,z=(0,d.useRouter)(),A=(0,d.usePathname)(),B=(0,d.useSearchParams)(),{agents:C,runtimes:I,loading:L,pins:M,unpinnedOrder:N,handlePinAgent:P,handleUnpinAgent:Q,handleReorderPins:S,handleReorderUnpinned:T}=(0,e.useAgentContext)(),{slug:U,workspaceId:V}=(0,f.useWorkspace)(),{resolvedTheme:W,setTheme:X}=(0,y.useTheme)(),{activeTaskCounts:Y}=(0,e.useAgentContext)(),{count:_}=(0,g.useInboxCount)(),{folders:aa,expandedFolderId:ab,setExpandedFolderId:ac,createFolder:ag,addToFolder:ak,removeFromFolder:al,dissolveFolder:am,reorderInFolder:an,cleanupStaleAgents:ao,getTopLevelItems:ap,removeAgentFromAnyFolder:aq,mergeFolders:ar}=function(a){let[b,d]=(0,Z.useLocalStorage)(`agent-sidebar-folders:${a}`,$),[e,f]=(0,c.useState)(null),g=b.folders,h=(0,c.useCallback)(a=>g.find(b=>b.agentIds.includes(a))??null,[g]),i=(0,c.useCallback)(a=>{if(a.length<2)return;let b=crypto.randomUUID();d(c=>{let d=new Set(c.folders.flatMap(a=>a.agentIds)),e=a.filter(a=>!d.has(a));return e.length<2?c:{folders:[...c.folders,{id:b,agentIds:e}]}}),f(b)},[d]),j=(0,c.useCallback)((a,b)=>{d(c=>c.folders.some(a=>a.agentIds.includes(b))?c:{folders:c.folders.map(c=>c.id===a?{...c,agentIds:[...c.agentIds,b]}:c)})},[d]),k=(0,c.useCallback)((a,b)=>{d(c=>({folders:c.folders.map(c=>c.id===a?{...c,agentIds:c.agentIds.filter(a=>a!==b)}:c).filter(a=>a.agentIds.length>1)}))},[d]),l=(0,c.useCallback)(a=>{d(b=>({folders:b.folders.filter(b=>b.id!==a)})),e===a&&f(null)},[d,e]),m=(0,c.useCallback)((a,b)=>{d(c=>({folders:c.folders.map(c=>c.id===a?{...c,agentIds:b}:c)}))},[d]),n=(0,c.useCallback)(a=>{let b=new Set(a);d(a=>{let c=a.folders.map(a=>({...a,agentIds:a.agentIds.filter(a=>b.has(a))})).filter(a=>a.agentIds.length>1);return c.length!==a.folders.length||a.folders.some(a=>a.agentIds.some(a=>!b.has(a)))?{folders:c}:a})},[d]),o=(0,c.useCallback)(a=>{let b=new Map;for(let a of g)for(let c of a.agentIds)b.set(c,a);let c=new Set,d=[];for(let e of a){let a=b.get(e);a?c.has(a.id)||(c.add(a.id),d.push({type:"folder",folder:a})):d.push({type:"agent",id:e})}return d},[g]),p=(0,c.useCallback)((a,b)=>{d(c=>{let d=c.folders.find(b=>b.id===a);return d?{folders:c.folders.map(a=>a.id===b?{...a,agentIds:[...a.agentIds,...d.agentIds]}:a).filter(b=>b.id!==a)}:c})},[d]);return{folders:g,expandedFolderId:e,setExpandedFolderId:f,createFolder:i,addToFolder:j,removeFromFolder:k,dissolveFolder:l,reorderInFolder:m,cleanupStaleAgents:n,getFolderForAgent:h,getTopLevelItems:o,removeAgentFromAnyFolder:(0,c.useCallback)(a=>{d(b=>{let c=b.folders.find(b=>b.agentIds.includes(a));return c?{folders:b.folders.map(b=>b.id===c.id?{...b,agentIds:b.agentIds.filter(b=>b!==a)}:b).filter(a=>a.agentIds.length>1)}:b})},[d]),mergeFolders:p}}(V),[as,at]=(0,c.useState)(!1),[au,av]=(0,c.useState)(new Set),aw=C.filter(a=>M.has(a.id)).sort((a,b)=>M.get(a.id).position-M.get(b.id).position),ax=C.filter(a=>!M.has(a.id)).sort((a,b)=>{let c=N.get(a.id),d=N.get(b.id);return void 0!==c&&void 0!==d?c-d:void 0!==c?-1:void 0!==d?1:a.name.localeCompare(b.name)}),ay=ap(ax.map(a=>a.id));(0,c.useEffect)(()=>{C.length>0&&ao(C.map(a=>a.id))},[C,ao]);let[az,aA]=(0,c.useState)(null),[aB,aC]=(0,c.useState)(null),[aD,aE]=(0,c.useState)(!1),aF=(0,c.useRef)(null),aG=(0,c.useRef)(null);(0,c.useEffect)(()=>()=>{aF.current&&clearTimeout(aF.current)},[]);let aH=(0,c.useRef)(new Map),aI=(0,H.useSensors)((0,H.useSensor)(H.PointerSensor,{activationConstraint:{distance:5}})),aJ=ay.map(a=>"agent"===a.type?a.id:a.folder.id);function aK(){aF.current&&(clearTimeout(aF.current),aF.current=null),aG.current=null,aC(null),aE(!1)}let aL=(0,c.useCallback)(a=>{aq(a),P(a)},[aq,P]),aM=`/w/${U}`,aN=A===`${aM}/home`,aO=A===`${aM}/runtimes`,aP=A===`${aM}/calendar`,aQ=A.startsWith(`${aM}/unread`),aR=A.startsWith(`${aM}/issues`),aS=A===`${aM}/settings`,aT=A===`${aM}/agents/new`,aU=B.get("agent"),aV=A.match(/^\/w\/[^/]+\/agents\/([^/]+)/),aW=aU??aV?.[1]??null,aX=b=>{z.push(`${aM}/agents/${b}`),a?.()},aY=I.some(a=>"online"===a.status),[aZ,a$]=(0,c.useState)(!1),a_=(0,c.useRef)(!1),a0=(0,c.useRef)(null);(0,c.useEffect)(()=>()=>{a0.current&&clearTimeout(a0.current)},[]);let a1=(0,c.useCallback)(()=>{a_.current||(a_.current=!0,a$(!0),a0.current=setTimeout(()=>{a_.current=!1,a$(!1)},60*Math.max(0,aw.length+ax.length-1)+250))},[aw.length,ax.length]),a2=az?C.find(a=>a.id===az):null,a3=az?aa.find(a=>a.id===az):null,a4=(a,c,d)=>(0,b.jsx)("div",{className:(0,i.cn)(aZ&&"sidebar-agent-pop"),style:aZ?{animationDelay:`${60*c}ms`}:void 0,children:(0,b.jsx)(ad,{agent:a,isActive:aW===a.id,isPinned:M.has(a.id),isOnline:aY,taskCount:Y[a.id]??0,onClick:()=>aX(a.id),onPin:()=>aL(a.id),onUnpin:()=>Q(a.id),extraContextMenuItems:d})}),a5=(0,c.useCallback)(()=>ac(null),[ac]),a6=ab?aa.find(a=>a.id===ab)??null:null;return(0,b.jsxs)("nav",{className:(0,i.cn)("flex h-full w-14 flex-col items-center pt-1 pb-2 gap-0.5",aZ&&"relative z-10"),children:[(0,b.jsx)("div",{className:"pb-1.5 mb-1",children:(0,b.jsx)("div",{className:"flex shrink-0 items-center justify-center size-8 [&>button]:pointer-events-none cursor-pointer active:scale-90 transition-transform",onClick:a1,children:(0,b.jsx)(h.Logo,{size:"sm",iconOnly:!0})})}),(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1.5 pb-1.5 border-b border-border/50 mb-1",children:[(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/home`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aN&&"bg-accent text-foreground")}),children:(0,b.jsx)(q,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Home"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsxs)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/unread`),a?.()},className:(0,i.cn)("relative flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aQ&&"bg-accent text-foreground")}),children:[(0,b.jsx)(s.Inbox,{className:"size-4"}),_>0&&(0,b.jsx)("span",{className:"absolute top-1 right-1 flex items-center justify-center min-w-3.5 h-3.5 rounded-full bg-primary text-primary-foreground text-[9px] font-bold px-0.5",children:_>99?"99+":_})]}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Unread"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/issues`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aR&&"bg-accent text-foreground")}),children:(0,b.jsx)(r.CircleDot,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Issues"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/calendar`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aP&&"bg-accent text-foreground")}),children:(0,b.jsx)(n.CalendarDays,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Calendar"})]})]}),(0,b.jsxs)("div",{className:(0,i.cn)("flex flex-1 w-full flex-col items-center gap-1.5 py-1 scrollbar-none",aZ?"overflow-visible":"overflow-y-auto"),children:[L?(0,b.jsx)(w.Skeleton,{className:"size-10 rounded-xl"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(H.DndContext,{sensors:aI,collisionDetection:H.closestCenter,modifiers:[J],onDragEnd:function(a){let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=aw.findIndex(a=>a.id===b.id),e=aw.findIndex(a=>a.id===c.id);S(K(aw,d,e).map(a=>a.id))},children:(0,b.jsx)(R,{items:aw.map(a=>a.id),strategy:O,children:aw.map((a,c)=>(0,b.jsx)(ai,{id:a.id,children:a4(a,c)},a.id))})}),aw.length>0&&ax.length>0&&(0,b.jsx)("div",{className:"w-6 border-t border-border/50"}),(0,b.jsxs)(H.DndContext,{sensors:aI,collisionDetection:H.closestCenter,modifiers:[J],onDragStart:function(a){aA(a.active.id),ac(null)},onDragOver:function(a){let{over:b}=a;if(!b)return void aK();let c=b.id;c===az?aK():aG.current!==c&&(aK(),aG.current=c,aF.current=setTimeout(()=>{aE(!0),aC(c)},300))},onDragEnd:function(a){let{active:b,over:c}=a;if(aK(),aA(null),!c||b.id===c.id)return;let d=b.id,e=c.id;if(aB===e){var f,g;f=d,g=e,aa.find(a=>a.id===g)?aa.find(a=>a.id===f)?ar(f,g):(aq(f),ak(g,f)):aa.find(a=>a.id===f)?ak(f,g):ag([g,f]),aC(null);return}let h=aJ.indexOf(d),i=aJ.indexOf(e);if(-1===h||-1===i)return;let j=K(ay,h,i),k=[];for(let a of j)"agent"===a.type?k.push(a.id):k.push(...a.folder.agentIds);T(k)},onDragCancel:function(){aK(),aA(null)},children:[(0,b.jsx)(R,{items:aJ,strategy:aD?void 0:O,children:ay.map((a,c)=>{let d;if("folder"===a.type){let c=a.folder,d=c.agentIds.includes(aW??"");return(0,b.jsxs)(E.ContextMenu,{children:[(0,b.jsx)(E.ContextMenuTrigger,{render:(0,b.jsx)("div",{}),children:(0,b.jsx)(af,{folder:c,agents:C,isActive:d,isMergeTarget:aB===c.id,dragActiveId:az,onExpand:()=>ac(ab===c.id?null:c.id),nodeRefCallback:a=>aH.current.set(c.id,a)})}),(0,b.jsx)(E.ContextMenuContent,{children:(0,b.jsxs)(E.ContextMenuItem,{onClick:()=>am(c.id),children:[(0,b.jsx)(u,{className:"size-3.5 mr-1.5"}),"Ungroup agents"]})})]},c.id)}if(as){let d=C.find(b=>b.id===a.id);if(!d)return null;let e=au.has(d.id);return(0,b.jsxs)("div",{className:"relative cursor-pointer",onClick:()=>{var a;return a=d.id,void av(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},children:[(0,b.jsx)("div",{className:(0,i.cn)("transition-all duration-150",e&&"ring-2 ring-primary rounded-xl"),children:a4(d,aw.length+c)}),e&&(0,b.jsx)("span",{className:"absolute -top-0.5 -right-0.5 size-3 rounded-full bg-primary ring-2 ring-background"})]},d.id)}let e=C.find(b=>b.id===a.id);return e?(0,b.jsx)(ai,{id:e.id,children:aB===e.id&&az?(0,b.jsx)(ae,{folder:{id:"merge-preview",agentIds:[e.id,az]},agents:C,isActive:!1,onClick:()=>{}}):a4(e,aw.length+c,(d=e.id,(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(E.ContextMenuSeparator,{}),(0,b.jsxs)(E.ContextMenuItem,{onClick:()=>{av(new Set([d])),at(!0)},children:[(0,b.jsx)(t.Folder,{className:"size-3.5 mr-1.5"}),"Create group"]}),aa.length>0&&(0,b.jsx)(b.Fragment,{children:aa.map(a=>{let c=a.agentIds.map(a=>C.find(b=>b.id===a)).filter(Boolean),e=c.slice(0,2).map(a=>a.name).join(", ");return(0,b.jsxs)(E.ContextMenuItem,{onClick:()=>ak(a.id,d),children:[(0,b.jsx)(v,{className:"size-3.5 mr-1.5"}),"Move to ",e,c.length>2?"…":""]},a.id)})})]})))},e.id):null})}),(0,b.jsx)(H.DragOverlay,{children:a2?(0,b.jsx)("div",{className:"opacity-80",children:(k=(0,F.parseAvatarUrl)(a2.avatar_url))?(0,b.jsx)(G.AnimatedAvatar,{config:k,size:40,className:"rounded-xl",isHovered:!1}):(0,b.jsx)("div",{className:"flex items-center justify-center size-10 rounded-xl bg-secondary text-sm font-medium",children:a2.name.charAt(0).toUpperCase()})}):a3?(0,b.jsx)("div",{className:"opacity-80",children:(0,b.jsx)(ae,{folder:a3,agents:C,isActive:!1,onClick:()=>{}})}):null})]}),as&&(0,b.jsxs)("div",{className:"flex flex-col gap-1 w-full px-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{au.size>=2&&ag(Array.from(au)),at(!1),av(new Set)},disabled:au.size<2,className:"flex items-center justify-center h-7 rounded-lg bg-primary text-primary-foreground text-xs font-medium disabled:opacity-40 cursor-pointer disabled:cursor-not-allowed",children:["Done (",au.size,")"]}),(0,b.jsx)("button",{type:"button",onClick:()=>{at(!1),av(new Set)},className:"flex items-center justify-center h-7 rounded-lg bg-secondary text-secondary-foreground text-xs cursor-pointer hover:bg-accent",children:"Cancel"})]})]}),!L&&0===C.length&&I.some(a=>"online"===a.status)?(0,b.jsxs)(x.Tooltip,{open:!0,children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/agents/new`),a?.()},className:(0,i.cn)("relative flex shrink-0 items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","border border-dashed border-primary/50 text-primary","hover:border-primary hover:bg-primary/10","animate-pulse",aT&&"border-solid border-primary bg-primary/10 animate-none")}),children:(0,b.jsx)(m.Plus,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",sideOffset:8,children:"Create your first agent"})]}):(0,b.jsx)("button",{type:"button",title:"New agent",onClick:()=>{z.push(`${aM}/agents/new`),a?.()},className:(0,i.cn)("flex shrink-0 items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","border border-dashed border-foreground/15 text-muted-foreground","hover:border-foreground/30 hover:text-foreground hover:bg-accent",aT&&"border-solid border-foreground/25 bg-accent text-foreground"),children:(0,b.jsx)(m.Plus,{className:"size-4"})})]}),a6&&(0,b.jsx)(ah,{folder:a6,agents:C,activeAgentId:aW,isOnline:aY,taskCounts:Y,anchorRef:aH.current.get(a6.id)??null,onAgentClick:aX,onRemoveFromFolder:a=>al(a6.id,a),onPinAgent:aL,onReorder:a=>an(a6.id,a),onClose:a5}),(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1 pt-2 border-t border-border/50 mt-1",children:[(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/runtimes`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aO&&"bg-accent text-foreground")}),children:(0,b.jsx)(j.Monitor,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Runtimes"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>X("dark"===W?"light":"dark"),className:"flex items-center justify-center size-10 rounded-xl text-muted-foreground hover:text-foreground hover:bg-accent transition-colors duration-200 cursor-pointer"}),children:(0,b.jsx)(l,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Toggle theme"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/settings`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aS&&"bg-accent text-foreground")}),children:(0,b.jsx)(o,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Settings"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push("/workspaces"),a?.()},className:"flex items-center justify-center size-10 rounded-xl text-muted-foreground hover:text-foreground hover:bg-accent transition-colors duration-200 cursor-pointer"}),children:(0,b.jsx)(p,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Switch workspace"})]}),(0,b.jsx)(D,{})]})]})}function ak(){let a=(0,d.useRouter)(),c=(0,d.usePathname)(),g=aA(),{slug:j}=(0,f.useWorkspace)(),{agents:k,pins:l,unpinnedOrder:m,runtimes:o,loading:p}=(0,e.useAgentContext)(),s=c===`/w/${j}/home`,t=c.includes("/calendar"),u=c.includes("/issues"),v=c.match(/^\/w\/[^/]+\/agents\/([^/]+)/),x=v?.[1]??null,y=[...k.filter(a=>l.has(a.id)).sort((a,b)=>l.get(a.id).position-l.get(b.id).position),...k.filter(a=>!l.has(a.id)).sort((a,b)=>{let c=m.get(a.id),d=m.get(b.id);return void 0!==c&&void 0!==d?c-d:void 0!==c?-1:void 0!==d?1:a.name.localeCompare(b.name)})];return(0,b.jsxs)("div",{className:"h-10 flex items-center gap-2 px-2 shrink-0",children:[g&&(0,b.jsx)("div",{role:"button",tabIndex:0,"aria-label":"Open sidebar",onClick:g,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),g())},className:"shrink-0 cursor-pointer transition-opacity hover:opacity-70 [&>button]:pointer-events-none",children:(0,b.jsx)(h.Logo,{size:"sm",iconOnly:!0})}),(0,b.jsx)("button",{onClick:()=>a.push(`/w/${j}/home`),"aria-label":"Home",className:(0,i.cn)("shrink-0 p-1 rounded-md transition-colors",s?"text-foreground bg-muted":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(q,{className:"size-4"})}),(0,b.jsx)("button",{onClick:()=>a.push(`/w/${j}/calendar`),"aria-label":"Calendar",className:(0,i.cn)("shrink-0 p-1 rounded-md transition-colors",t?"text-foreground bg-muted":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(n.CalendarDays,{className:"size-4"})}),(0,b.jsx)("button",{onClick:()=>a.push(`/w/${j}/issues`),"aria-label":"Issues",className:(0,i.cn)("shrink-0 p-1 rounded-md transition-colors",u?"text-foreground bg-muted":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(r.CircleDot,{className:"size-4"})}),(0,b.jsx)("div",{className:"flex-1 overflow-x-auto flex items-center gap-1.5 py-1 px-0.5 scrollbar-none",children:p?(0,b.jsx)(w.Skeleton,{className:"size-7 rounded-full"}):y.map(c=>{let d=o.find(a=>a.id===c.runtime_id),e=d?.status==="online",f=x===c.id,g=(0,F.parseAvatarUrl)(c.avatar_url);return(0,b.jsxs)("button",{onClick:()=>a.push(`/w/${j}/agents/${c.id}`),"aria-label":c.name,className:(0,i.cn)("shrink-0 relative rounded-full transition-all",f&&"ring-2 ring-primary"),children:[(0,b.jsx)("div",{className:"size-7",children:g?(0,b.jsx)(G.AnimatedAvatar,{config:g,size:28,className:"rounded-full",isHovered:!1}):(0,b.jsx)("div",{className:"size-7 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium",children:c.name.charAt(0).toUpperCase()})}),(0,b.jsx)("span",{className:(0,i.cn)("absolute -bottom-0.5 -right-0.5 size-2 rounded-full border border-background",e?"bg-emerald-500":"bg-muted-foreground/40")})]},c.id)})})]})}var al=a.i(567264),am=a.i(586220),an=a.i(7455),ao=a.i(588339);a.i(974936);var ap=a.i(997445),aq=a.i(432340),ar=a.i(732254),as=a.i(464830);let at=(0,k.default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var au=a.i(461794);let av=(0,k.default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);var aw=a.i(921584);let ax="npx @alook/cli@latest daemon stop && npx @alook/cli@latest daemon start";function ay(){let{runtimes:a,workspaceId:d}=(0,e.useAgentContext)(),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(new Set),[j,k]=(0,c.useState)(!1),l=(0,c.useRef)(null);if((0,c.useEffect)(()=>{(0,ao.getMinCliVersion)().then(a=>g(a.min_cli_version)).catch(()=>{})},[]),(0,c.useEffect)(()=>()=>{l.current&&clearTimeout(l.current)},[]),!f)return null;let m=a.filter(a=>{if("online"!==a.status)return!1;let b=a.metadata?.cli_version;return"string"!=typeof b||!b||!(0,ap.semverGte)(b,f)}),n=new Map;for(let a of m){let b=a.daemon_id??a.id;n.has(b)||n.set(b,a)}if(0===n.size)return null;let o=async a=>{i(b=>new Set(b).add(a.id)),l.current||(l.current=setTimeout(()=>{k(!0)},5e3));try{await (0,ao.triggerRuntimeUpdate)(a.id,d)}catch{i(b=>{let c=new Set(b);return c.delete(a.id),c})}};return(0,b.jsx)(aq.Dialog,{open:!0,modal:!0,disablePointerDismissal:!0,onOpenChange:()=>{},children:(0,b.jsxs)(aq.DialogContent,{showCloseButton:!1,children:[(0,b.jsxs)(aq.DialogHeader,{children:[(0,b.jsxs)(aq.DialogTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)(at,{className:"size-5 text-amber-500"}),"Runtime Update Required"]}),(0,b.jsxs)(aq.DialogDescription,{children:["The following machine(s) are running an outdated CLI version (minimum required: v",f,"). Please update to continue."]})]}),(0,b.jsx)("div",{className:"space-y-3 mt-2",children:[...n.entries()].map(([a,c])=>{let d=c.metadata?.cli_version,e=h.has(c.id);return(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-emerald-500"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium truncate",children:c.device_info||a.slice(0,12)}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground flex items-center gap-2 mt-0.5",children:[(0,b.jsxs)("span",{children:["v",d||"unknown"]}),(0,b.jsxs)(as.Badge,{variant:"outline",className:"text-[10px] px-1.5 py-0 text-amber-500 border-amber-500/30",children:["requires v",f]})]})]})]}),(0,b.jsxs)(ar.Button,{size:"sm",variant:"outline",disabled:e,onClick:()=>o(c),children:[(0,b.jsx)(au.RefreshCw,{className:`size-3.5 ${e?"animate-spin":""}`}),e?"Updating...":"Update"]})]},a)})}),j&&(0,b.jsxs)("div",{className:"mt-3 rounded-md bg-muted/50 border border-dashed p-2.5 text-xs text-muted-foreground",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-medium text-foreground mb-1",children:[(0,b.jsx)(av,{className:"size-3"}),"Update taking too long?"]}),(0,b.jsx)("p",{className:"mb-1",children:"Run this command on the machine to update manually:"}),(0,b.jsx)("code",{className:"block rounded bg-background px-2 py-1 font-mono text-[11px] cursor-pointer hover:bg-background/80 transition-colors",title:"Click to copy",onClick:()=>{navigator.clipboard.writeText(ax),aw.toast.success("Copied to clipboard")},children:ax})]})]})})}let az=(0,c.createContext)(null);function aA(){return(0,c.useContext)(az)}function aB({children:a}){let d=(0,am.useIsMobile)(),[e,f]=(0,c.useState)(!1);return d?(0,b.jsx)(az.Provider,{value:()=>f(!0),children:(0,b.jsxs)("div",{className:"flex flex-col h-dvh overflow-hidden relative",children:[(0,b.jsx)(al.GradientBackground,{}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 px-2 pb-2 pt-2 flex flex-col",children:[(0,b.jsx)(ak,{}),(0,b.jsx)("main",{className:"flex-1 min-h-0 rounded-xl bg-card/80 backdrop-blur-xl shadow-lg ring-1 ring-border/40 overflow-hidden flex flex-col",children:a})]}),(0,b.jsx)(an.Sheet,{open:e,onOpenChange:f,children:(0,b.jsx)(an.SheetContent,{side:"left",showCloseButton:!1,style:{width:56},className:"p-0",children:(0,b.jsx)(aj,{onNavigate:()=>f(!1)})})}),(0,b.jsx)(ay,{})]})}):(0,b.jsxs)("div",{className:"flex h-dvh overflow-hidden relative",children:[(0,b.jsx)(al.GradientBackground,{}),(0,b.jsx)(aj,{}),(0,b.jsx)("div",{className:"flex-1 flex flex-col min-w-0 pt-2 pr-2 pb-2",children:(0,b.jsx)("main",{className:"flex-1 min-h-0 rounded-xl bg-card/80 backdrop-blur-xl shadow-lg ring-1 ring-border/40 overflow-hidden flex flex-col",children:a})}),(0,b.jsx)(ay,{})]})}}];
1
+ module.exports=[582148,a=>{"use strict";a.s(["WorkspaceShell",()=>aB,"useSidebarTrigger",()=>aA],582148);var b=a.i(749314),c=a.i(437199),d=a.i(207058),e=a.i(752792),f=a.i(506180),g=a.i(831893),h=a.i(242292),i=a.i(75118),j=a.i(385539),k=a.i(790090);let l=(0,k.default)("sun-moon",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715",key:"xlf6rm"}],["path",{d:"M16 12a4 4 0 0 0-4-4",key:"6vsxu"}],["path",{d:"m19 5-1.256 1.256",key:"1yg6a6"}],["path",{d:"M20 12h2",key:"1q8mjw"}]]);var m=a.i(911057),n=a.i(348634);let o=(0,k.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),p=(0,k.default)("arrow-left-right",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]),q=(0,k.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var r=a.i(249453),s=a.i(929201),t=a.i(993532);let u=(0,k.default)("ungroup",[["rect",{width:"8",height:"6",x:"5",y:"4",rx:"1",key:"nzclkv"}],["rect",{width:"8",height:"6",x:"11",y:"14",rx:"1",key:"4tytwb"}]]),v=(0,k.default)("arrow-right-to-line",[["path",{d:"M17 12H3",key:"8awo09"}],["path",{d:"m11 18 6-6-6-6",key:"8c2y43"}],["path",{d:"M21 5v14",key:"nzette"}]]);var w=a.i(25668),x=a.i(525132),y=a.i(615640),z=a.i(454607),A=a.i(867561),B=a.i(869267),C=a.i(166198);function D(){let{data:a,isPending:e}=(0,z.useSession)(),f=(0,d.useRouter)(),[g,h]=(0,c.useState)(!1);(0,c.useEffect)(()=>{h(!0)},[]);let i=a?.user;if(!g||e||!i)return(0,b.jsx)(w.Skeleton,{className:"size-10 rounded-xl"});let j=(i.name||i.email||"?").charAt(0).toUpperCase();return(0,b.jsxs)(A.DropdownMenu,{children:[(0,b.jsx)(A.DropdownMenuTrigger,{render:(0,b.jsx)("button",{type:"button",title:i.name??i.email??"Account",className:"flex items-center justify-center size-10 rounded-xl text-muted-foreground hover:text-foreground hover:bg-accent transition-colors duration-200 cursor-pointer"}),children:(0,b.jsx)(C.User,{className:"size-4"})}),(0,b.jsxs)(A.DropdownMenuContent,{className:"min-w-52 rounded-lg",side:"right",align:"end",sideOffset:8,children:[(0,b.jsx)(A.DropdownMenuGroup,{children:(0,b.jsx)(A.DropdownMenuLabel,{className:"p-0 font-normal",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 text-left text-sm",children:[(0,b.jsx)("div",{className:"flex items-center justify-center size-7 rounded-full bg-primary text-primary-foreground text-xs font-medium shrink-0",children:j}),(0,b.jsxs)("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:i.name??"User"}),(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:i.email})]})]})})}),(0,b.jsx)(A.DropdownMenuSeparator,{}),(0,b.jsx)(A.DropdownMenuGroup,{children:(0,b.jsxs)(A.DropdownMenuItem,{onClick:async()=>{await (0,z.signOut)(),f.push("/sign-in")},children:[(0,b.jsx)(B.LogOut,{className:"size-4"}),"Log out"]})})]})]})}var E=a.i(764190);a.i(735132);var F=a.i(325848),G=a.i(253260),H=a.i(914211),I=a.i(892365);let J=a=>{let{transform:b}=a;return{...b,x:0}};function K(a,b,c){let d=a.slice();return d.splice(c<0?d.length+c:c,0,d.splice(b,1)[0]),d}function L(a){return null!==a&&a>=0}let M=a=>{let{rects:b,activeIndex:c,overIndex:d,index:e}=a,f=K(b,d,c),g=b[e],h=f[e];return h&&g?{x:h.left-g.left,y:h.top-g.top,scaleX:h.width/g.width,scaleY:h.height/g.height}:null},N={scaleX:1,scaleY:1},O=a=>{var b,c,d,e;let f,g,h,{activeIndex:i,activeNodeRect:j,index:k,rects:l,overIndex:m}=a,n=null!=(b=l[i])?b:j;if(!n)return null;if(k===i){let a=l[m];return a?{x:0,y:i<m?a.top+a.height-(n.top+n.height):a.top-n.top,...N}:null}let o=(c=l,d=k,e=i,f=c[d],g=c[d-1],h=c[d+1],f?e<d?g?f.top-(g.top+g.height):h?h.top-(f.top+f.height):0:h?h.top-(f.top+f.height):g?f.top-(g.top+g.height):0:0);return k>i&&k<=m?{x:0,y:-n.height-o,...N}:k<i&&k>=m?{x:0,y:n.height+o,...N}:{x:0,y:0,...N}},P="Sortable",Q=c.default.createContext({activeIndex:-1,containerId:P,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:M,disabled:{draggable:!1,droppable:!1}});function R(a){let{children:b,id:d,items:e,strategy:f=M,disabled:g=!1}=a,{active:h,dragOverlay:i,droppableRects:j,over:k,measureDroppableContainers:l}=(0,H.useDndContext)(),m=(0,I.useUniqueId)(P,d),n=null!==i.rect,o=(0,c.useMemo)(()=>e.map(a=>"object"==typeof a&&"id"in a?a.id:a),[e]),p=null!=h,q=h?o.indexOf(h.id):-1,r=k?o.indexOf(k.id):-1,s=(0,c.useRef)(o),t=!function(a,b){if(a===b)return!0;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}(o,s.current),u=-1!==r&&-1===q||t,v="boolean"==typeof g?{draggable:g,droppable:g}:g;(0,I.useIsomorphicLayoutEffect)(()=>{t&&p&&l(o)},[t,o,p,l]),(0,c.useEffect)(()=>{s.current=o},[o]);let w=(0,c.useMemo)(()=>({activeIndex:q,containerId:m,disabled:v,disableTransforms:u,items:o,overIndex:r,useDragOverlay:n,sortedRects:o.reduce((a,b,c)=>{let d=j.get(b);return d&&(a[c]=d),a},Array(o.length)),strategy:f}),[q,m,v.draggable,v.droppable,u,o,r,j,n,f]);return c.default.createElement(Q.Provider,{value:w},b)}let S=a=>{let{id:b,items:c,activeIndex:d,overIndex:e}=a;return K(c,d,e).indexOf(b)},T=a=>{let{containerId:b,isSorting:c,wasDragging:d,index:e,items:f,newIndex:g,previousItems:h,previousContainerId:i,transition:j}=a;return!!j&&!!d&&(h===f||e!==g)&&(!!c||g!==e&&b===i)},U={duration:200,easing:"ease"},V="transform",W=I.CSS.Transition.toString({property:V,duration:0,easing:"linear"}),X={roleDescription:"sortable"};function Y(a){var b,d,e,f;let{animateLayoutChanges:g=T,attributes:h,disabled:i,data:j,getNewIndex:k=S,id:l,strategy:m,resizeObserverConfig:n,transition:o=U}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:x}=(0,c.useContext)(Q),y=(b=i,d=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(e=null==b?void 0:b.draggable)?e:d.draggable,droppable:null!=(f=null==b?void 0:b.droppable)?f:d.droppable}),z=p.indexOf(l),A=(0,c.useMemo)(()=>({sortable:{containerId:q,index:z,items:p},...j}),[q,j,z,p]),B=(0,c.useMemo)(()=>p.slice(p.indexOf(l)),[p,l]),{rect:C,node:D,isOver:E,setNodeRef:F}=(0,H.useDroppable)({id:l,data:A,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:B,...n}}),{active:G,activatorEvent:J,activeNodeRect:K,attributes:M,setNodeRef:N,listeners:O,isDragging:P,over:R,setActivatorNodeRef:Y,transform:Z}=(0,H.useDraggable)({id:l,data:A,attributes:{...X,...h},disabled:y.draggable}),$=(0,I.useCombinedRefs)(F,N),_=!!G,aa=_&&!t&&L(r)&&L(v),ab=!w&&P,ac=ab&&aa?Z:null,ad=aa?null!=ac?ac:(null!=m?m:x)({rects:u,activeNodeRect:K,activeIndex:r,overIndex:v,index:z}):null,ae=L(r)&&L(v)?k({id:l,items:p,activeIndex:r,overIndex:v}):z,af=null==G?void 0:G.id,ag=(0,c.useRef)({activeId:af,items:p,newIndex:ae,containerId:q}),ah=p!==ag.current.items,ai=g({active:G,containerId:q,isDragging:P,isSorting:_,id:l,index:z,items:p,newIndex:ag.current.newIndex,previousItems:ag.current.items,previousContainerId:ag.current.containerId,transition:o,wasDragging:null!=ag.current.activeId}),aj=function(a){let{disabled:b,index:d,node:e,rect:f}=a,[g,h]=(0,c.useState)(null),i=(0,c.useRef)(d);return(0,I.useIsomorphicLayoutEffect)(()=>{if(!b&&d!==i.current&&e.current){let a=f.current;if(a){let b=(0,H.getClientRect)(e.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&h(c)}}d!==i.current&&(i.current=d)},[b,d,e,f]),(0,c.useEffect)(()=>{g&&h(null)},[g]),g}({disabled:!ai,index:z,node:D,rect:C});return(0,c.useEffect)(()=>{_&&ag.current.newIndex!==ae&&(ag.current.newIndex=ae),q!==ag.current.containerId&&(ag.current.containerId=q),p!==ag.current.items&&(ag.current.items=p)},[_,ae,q,p]),(0,c.useEffect)(()=>{if(af===ag.current.activeId)return;if(null!=af&&null==ag.current.activeId){ag.current.activeId=af;return}let a=setTimeout(()=>{ag.current.activeId=af},50);return()=>clearTimeout(a)},[af]),{active:G,activeIndex:r,attributes:M,data:A,rect:C,index:z,newIndex:ae,items:p,isOver:E,isSorting:_,isDragging:P,listeners:O,node:D,overIndex:v,over:R,setNodeRef:$,setActivatorNodeRef:Y,setDroppableNodeRef:F,setDraggableNodeRef:N,transform:null!=aj?aj:ad,transition:aj||ah&&ag.current.newIndex===z?W:(!ab||(0,I.isKeyboardEvent)(J))&&o&&(_||ai)?I.CSS.Transition.toString({...o,property:V}):void 0}}H.KeyboardCode.Down,H.KeyboardCode.Right,H.KeyboardCode.Up,H.KeyboardCode.Left;var Z=a.i(135733);let $={folders:[]},_=(0,k.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),aa=(0,k.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var ab=a.i(781418),ac=a.i(722393);function ad({agent:a,isActive:d,isPinned:e,isOnline:f,taskCount:g,onClick:h,onPin:j,onUnpin:k,extraContextMenuItems:l,hidePin:m}){let n,[o,p]=(0,c.useState)(!1);return(0,b.jsxs)(ac.Popover,{open:o,onOpenChange:(a,b)=>{a&&"trigger-press"===b.reason||p(a)},children:[(0,b.jsxs)(E.ContextMenu,{children:[(0,b.jsxs)(ac.PopoverTrigger,{openOnHover:!0,delay:10,render:(0,b.jsx)(E.ContextMenuTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{p(!1),h()},className:(0,i.cn)("relative flex shrink-0 items-center justify-center size-10 rounded-xl text-sm font-medium transition-all duration-200 cursor-pointer",d?"ring-2 ring-primary shadow-sm":"ring-0 bg-secondary text-secondary-foreground hover:bg-accent")})}),children:[(n=(0,F.parseAvatarUrl)(a.avatar_url))?(0,b.jsx)(G.AnimatedAvatar,{config:n,size:40,className:"rounded-xl",isHovered:!1}):a.name.charAt(0).toUpperCase(),(0,b.jsx)("span",{className:(0,i.cn)("absolute bottom-0 right-0 size-2 rounded-full ring-2 ring-background",f?"bg-status-online":"bg-status-offline")})]}),(0,b.jsxs)(E.ContextMenuContent,{children:[!m&&(e?(0,b.jsxs)(E.ContextMenuItem,{onClick:k,children:[(0,b.jsx)(aa,{className:"size-3.5 mr-1.5"}),"Unpin"]}):(0,b.jsxs)(E.ContextMenuItem,{onClick:j,children:[(0,b.jsx)(_,{className:"size-3.5 mr-1.5"}),"Pin to top"]})),l]})]}),(0,b.jsx)(ac.PopoverContent,{side:"right",className:"w-fit max-w-80",children:(0,b.jsx)(ab.AgentPreviewCard,{agent:a,isOnline:f,activeTaskCount:g})})]})}function ae({folder:a,agents:c,isActive:d,onClick:e}){let f=a.agentIds.map(a=>c.find(b=>b.id===a)).filter(Boolean),g=f.slice(0,3),h=f.length-g.length;return(0,b.jsxs)("button",{type:"button",onClick:e,className:(0,i.cn)("relative flex shrink-0 items-center justify-center size-10 rounded-xl transition-all duration-200 cursor-pointer","bg-secondary/50 border border-border/30",d?"ring-2 ring-primary shadow-sm":"hover:bg-accent"),children:[(0,b.jsx)("div",{className:"relative flex items-center justify-center",style:{width:30,height:20},children:g.map((a,c)=>{let d=(0,F.parseAvatarUrl)(a.avatar_url);return(0,b.jsx)("div",{className:"absolute rounded-full overflow-hidden ring-1 ring-background",style:{width:20,height:20,left:6*c,zIndex:c+1},children:d?(0,b.jsx)(G.AnimatedAvatar,{config:d,size:20,className:"rounded-full",isHovered:!1}):(0,b.jsx)("div",{className:"flex items-center justify-center size-full bg-muted text-[8px] font-medium",children:a.name.charAt(0).toUpperCase()})},a.id)})}),h>0&&(0,b.jsxs)("span",{className:"absolute bottom-0 right-0 flex items-center justify-center min-w-3.5 h-3.5 rounded-full bg-muted text-muted-foreground text-[8px] font-bold ring-1 ring-background",children:["+",h]})]})}function af({folder:a,agents:c,isActive:d,isMergeTarget:e,dragActiveId:f,onExpand:g,nodeRefCallback:h}){let{attributes:i,listeners:j,setNodeRef:k,transform:l,transition:m,isDragging:n}=Y({id:a.id}),o={transform:I.CSS.Transform.toString(l),transition:m,opacity:n?.5:1,zIndex:n?10:void 0};return(0,b.jsx)("div",{ref:a=>{k(a),h?.(a)},style:o,...i,...j,className:"transition-all duration-200",children:(0,b.jsx)(ae,{folder:e&&f?{...a,agentIds:[...a.agentIds,f]}:a,agents:c,isActive:d,onClick:g})})}function ag({id:a,children:c}){let{attributes:d,listeners:e,setNodeRef:f,transform:g,transition:h,isDragging:i}=Y({id:a}),j={transform:I.CSS.Transform.toString(g),transition:h,opacity:i?.5:1,zIndex:i?10:void 0};return(0,b.jsx)("div",{ref:f,style:j,...d,...e,children:c})}function ah({folder:a,agents:d,activeAgentId:e,isOnline:f,taskCounts:g,anchorRef:h,onAgentClick:i,onRemoveFromFolder:j,onPinAgent:k,onReorder:l,onClose:m}){let n=(0,c.useRef)(null),[o,p]=(0,c.useState)(null),q=(0,c.useCallback)(()=>{if(!h)return;let a=h.getBoundingClientRect();p({left:a.right+8,top:a.top})},[h]);(0,c.useEffect)(()=>{q()},[q]),(0,c.useEffect)(()=>{function a(a){let b=a.target;!n.current||n.current.contains(b)||!h||h.contains(b)||b.closest?.('[data-slot="context-menu-content"]')||m()}function b(a){"Escape"===a.key&&m()}let c=h?.closest("[class*='overflow']")??window;return document.addEventListener("mousedown",a),document.addEventListener("keydown",b),window.addEventListener("resize",q),c.addEventListener("scroll",q,{passive:!0}),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",b),window.removeEventListener("resize",q),c.removeEventListener("scroll",q)}},[h,m,q]);let r=(0,H.useSensors)((0,H.useSensor)(H.PointerSensor,{activationConstraint:{distance:5}})),s=a.agentIds.map(a=>d.find(b=>b.id===a)).filter(Boolean);return h&&o?(0,b.jsx)("div",{ref:n,className:"fixed z-50 bg-popover border rounded-xl shadow-md p-1.5 animate-in fade-in-0 zoom-in-95",style:{left:o.left,top:o.top},children:(0,b.jsx)(H.DndContext,{sensors:r,collisionDetection:H.closestCenter,modifiers:[J],onDragEnd:function(b){let{active:c,over:d}=b;if(!d||c.id===d.id)return;let e=a.agentIds.indexOf(c.id),f=a.agentIds.indexOf(d.id);l(K(a.agentIds,e,f))},children:(0,b.jsx)(R,{items:a.agentIds,strategy:O,children:(0,b.jsx)("div",{className:"flex flex-col gap-1",children:s.map(a=>(0,b.jsx)(ag,{id:a.id,children:(0,b.jsx)(ad,{agent:a,isActive:e===a.id,isPinned:!1,isOnline:f,taskCount:g[a.id]??0,hidePin:!0,onClick:()=>{i(a.id),m()},onPin:()=>{k(a.id),m()},onUnpin:()=>{},extraContextMenuItems:(0,b.jsxs)(E.ContextMenuItem,{onClick:()=>j(a.id),children:[(0,b.jsx)(aa,{className:"size-3.5 mr-1.5"}),"Remove from group"]})})},a.id))})})})}):null}function ai({id:a,children:c}){let{attributes:d,listeners:e,setNodeRef:f,transform:g,transition:h,isDragging:i}=Y({id:a}),j={transform:I.CSS.Transform.toString(g),transition:h,opacity:i?.5:1,zIndex:i?10:void 0};return(0,b.jsx)("div",{ref:f,style:j,...d,...e,children:c})}function aj({onNavigate:a}={}){let k,z=(0,d.useRouter)(),A=(0,d.usePathname)(),B=(0,d.useSearchParams)(),{agents:C,runtimes:I,loading:L,pins:M,unpinnedOrder:N,handlePinAgent:P,handleUnpinAgent:Q,handleReorderPins:S,handleReorderUnpinned:T}=(0,e.useAgentContext)(),{slug:U,workspaceId:V}=(0,f.useWorkspace)(),{resolvedTheme:W,setTheme:X}=(0,y.useTheme)(),{activeTaskCounts:Y}=(0,e.useAgentContext)(),{count:_}=(0,g.useInboxCount)(),{folders:aa,expandedFolderId:ab,setExpandedFolderId:ac,createFolder:ag,addToFolder:ak,removeFromFolder:al,dissolveFolder:am,reorderInFolder:an,cleanupStaleAgents:ao,getTopLevelItems:ap,removeAgentFromAnyFolder:aq,mergeFolders:ar}=function(a){let[b,d]=(0,Z.useLocalStorage)(`agent-sidebar-folders:${a}`,$),[e,f]=(0,c.useState)(null),g=b.folders,h=(0,c.useCallback)(a=>g.find(b=>b.agentIds.includes(a))??null,[g]),i=(0,c.useCallback)(a=>{if(a.length<2)return;let b=crypto.randomUUID();d(c=>{let d=new Set(c.folders.flatMap(a=>a.agentIds)),e=a.filter(a=>!d.has(a));return e.length<2?c:{folders:[...c.folders,{id:b,agentIds:e}]}}),f(b)},[d]),j=(0,c.useCallback)((a,b)=>{d(c=>c.folders.some(a=>a.agentIds.includes(b))?c:{folders:c.folders.map(c=>c.id===a?{...c,agentIds:[...c.agentIds,b]}:c)})},[d]),k=(0,c.useCallback)((a,b)=>{d(c=>({folders:c.folders.map(c=>c.id===a?{...c,agentIds:c.agentIds.filter(a=>a!==b)}:c).filter(a=>a.agentIds.length>1)}))},[d]),l=(0,c.useCallback)(a=>{d(b=>({folders:b.folders.filter(b=>b.id!==a)})),e===a&&f(null)},[d,e]),m=(0,c.useCallback)((a,b)=>{d(c=>({folders:c.folders.map(c=>c.id===a?{...c,agentIds:b}:c)}))},[d]),n=(0,c.useCallback)(a=>{let b=new Set(a);d(a=>{let c=a.folders.map(a=>({...a,agentIds:a.agentIds.filter(a=>b.has(a))})).filter(a=>a.agentIds.length>1);return c.length!==a.folders.length||a.folders.some(a=>a.agentIds.some(a=>!b.has(a)))?{folders:c}:a})},[d]),o=(0,c.useCallback)(a=>{let b=new Map;for(let a of g)for(let c of a.agentIds)b.set(c,a);let c=new Set,d=[];for(let e of a){let a=b.get(e);a?c.has(a.id)||(c.add(a.id),d.push({type:"folder",folder:a})):d.push({type:"agent",id:e})}return d},[g]),p=(0,c.useCallback)((a,b)=>{d(c=>{let d=c.folders.find(b=>b.id===a);return d?{folders:c.folders.map(a=>a.id===b?{...a,agentIds:[...a.agentIds,...d.agentIds]}:a).filter(b=>b.id!==a)}:c})},[d]);return{folders:g,expandedFolderId:e,setExpandedFolderId:f,createFolder:i,addToFolder:j,removeFromFolder:k,dissolveFolder:l,reorderInFolder:m,cleanupStaleAgents:n,getFolderForAgent:h,getTopLevelItems:o,removeAgentFromAnyFolder:(0,c.useCallback)(a=>{d(b=>{let c=b.folders.find(b=>b.agentIds.includes(a));return c?{folders:b.folders.map(b=>b.id===c.id?{...b,agentIds:b.agentIds.filter(b=>b!==a)}:b).filter(a=>a.agentIds.length>1)}:b})},[d]),mergeFolders:p}}(V),[as,at]=(0,c.useState)(!1),[au,av]=(0,c.useState)(new Set),aw=C.filter(a=>M.has(a.id)).sort((a,b)=>M.get(a.id).position-M.get(b.id).position),ax=C.filter(a=>!M.has(a.id)).sort((a,b)=>{let c=N.get(a.id),d=N.get(b.id);return void 0!==c&&void 0!==d?c-d:void 0!==c?-1:void 0!==d?1:a.name.localeCompare(b.name)}),ay=ap(ax.map(a=>a.id));(0,c.useEffect)(()=>{C.length>0&&ao(C.map(a=>a.id))},[C,ao]);let[az,aA]=(0,c.useState)(null),[aB,aC]=(0,c.useState)(null),[aD,aE]=(0,c.useState)(!1),aF=(0,c.useRef)(null),aG=(0,c.useRef)(null);(0,c.useEffect)(()=>()=>{aF.current&&clearTimeout(aF.current)},[]);let aH=(0,c.useRef)(new Map),aI=(0,H.useSensors)((0,H.useSensor)(H.PointerSensor,{activationConstraint:{distance:5}})),aJ=ay.map(a=>"agent"===a.type?a.id:a.folder.id);function aK(){aF.current&&(clearTimeout(aF.current),aF.current=null),aG.current=null,aC(null),aE(!1)}let aL=(0,c.useCallback)(a=>{aq(a),P(a)},[aq,P]),aM=`/w/${U}`,aN=A===`${aM}/home`,aO=A===`${aM}/runtimes`,aP=A===`${aM}/calendar`,aQ=A.startsWith(`${aM}/unread`),aR=A.startsWith(`${aM}/issues`),aS=A===`${aM}/settings`,aT=A===`${aM}/agents/new`,aU=B.get("agent"),aV=A.match(/^\/w\/[^/]+\/agents\/([^/]+)/),aW=aU??aV?.[1]??null,aX=b=>{z.push(`${aM}/agents/${b}`),a?.()},aY=I.some(a=>"online"===a.status),[aZ,a$]=(0,c.useState)(!1),a_=(0,c.useRef)(!1),a0=(0,c.useRef)(null);(0,c.useEffect)(()=>()=>{a0.current&&clearTimeout(a0.current)},[]);let a1=(0,c.useCallback)(()=>{a_.current||(a_.current=!0,a$(!0),a0.current=setTimeout(()=>{a_.current=!1,a$(!1)},60*Math.max(0,aw.length+ax.length-1)+250))},[aw.length,ax.length]),a2=az?C.find(a=>a.id===az):null,a3=az?aa.find(a=>a.id===az):null,a4=(a,c,d)=>(0,b.jsx)("div",{className:(0,i.cn)(aZ&&"sidebar-agent-pop"),style:aZ?{animationDelay:`${60*c}ms`}:void 0,children:(0,b.jsx)(ad,{agent:a,isActive:aW===a.id,isPinned:M.has(a.id),isOnline:aY,taskCount:Y[a.id]??0,onClick:()=>aX(a.id),onPin:()=>aL(a.id),onUnpin:()=>Q(a.id),extraContextMenuItems:d})}),a5=(0,c.useCallback)(()=>ac(null),[ac]),a6=ab?aa.find(a=>a.id===ab)??null:null;return(0,b.jsxs)("nav",{className:(0,i.cn)("flex h-full w-14 flex-col items-center pt-1 pb-2 gap-0.5",aZ&&"relative z-10"),children:[(0,b.jsx)("div",{className:"pb-1.5 mb-1",children:(0,b.jsx)("div",{className:"flex shrink-0 items-center justify-center size-8 [&>button]:pointer-events-none cursor-pointer active:scale-90 transition-transform",onClick:a1,children:(0,b.jsx)(h.Logo,{size:"sm",iconOnly:!0})})}),(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1.5 pb-1.5 border-b border-border/50 mb-1",children:[(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/home`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aN&&"bg-accent text-foreground")}),children:(0,b.jsx)(q,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Home"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsxs)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/unread`),a?.()},className:(0,i.cn)("relative flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aQ&&"bg-accent text-foreground")}),children:[(0,b.jsx)(s.Inbox,{className:"size-4"}),_>0&&(0,b.jsx)("span",{className:"absolute top-1 right-1 flex items-center justify-center min-w-3.5 h-3.5 rounded-full bg-primary text-primary-foreground text-[9px] font-bold px-0.5",children:_>99?"99+":_})]}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Unread"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/issues`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aR&&"bg-accent text-foreground")}),children:(0,b.jsx)(r.CircleDot,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Issues"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/calendar`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aP&&"bg-accent text-foreground")}),children:(0,b.jsx)(n.CalendarDays,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Calendar"})]})]}),(0,b.jsxs)("div",{className:(0,i.cn)("flex flex-1 w-full flex-col items-center gap-1.5 py-1 scrollbar-none",aZ?"overflow-visible":"overflow-y-auto"),children:[L?(0,b.jsx)(w.Skeleton,{className:"size-10 rounded-xl"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(H.DndContext,{sensors:aI,collisionDetection:H.closestCenter,modifiers:[J],onDragEnd:function(a){let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=aw.findIndex(a=>a.id===b.id),e=aw.findIndex(a=>a.id===c.id);S(K(aw,d,e).map(a=>a.id))},children:(0,b.jsx)(R,{items:aw.map(a=>a.id),strategy:O,children:aw.map((a,c)=>(0,b.jsx)(ai,{id:a.id,children:a4(a,c)},a.id))})}),aw.length>0&&ax.length>0&&(0,b.jsx)("div",{className:"w-6 border-t border-border/50"}),(0,b.jsxs)(H.DndContext,{sensors:aI,collisionDetection:H.closestCenter,modifiers:[J],onDragStart:function(a){aA(a.active.id),ac(null)},onDragOver:function(a){let{over:b}=a;if(!b)return void aK();let c=b.id;c===az?aK():aG.current!==c&&(aK(),aG.current=c,aF.current=setTimeout(()=>{aE(!0),aC(c)},300))},onDragEnd:function(a){let{active:b,over:c}=a;if(aK(),aA(null),!c||b.id===c.id)return;let d=b.id,e=c.id;if(aB===e){var f,g;f=d,g=e,aa.find(a=>a.id===g)?aa.find(a=>a.id===f)?ar(f,g):(aq(f),ak(g,f)):aa.find(a=>a.id===f)?ak(f,g):ag([g,f]),aC(null);return}let h=aJ.indexOf(d),i=aJ.indexOf(e);if(-1===h||-1===i)return;let j=K(ay,h,i),k=[];for(let a of j)"agent"===a.type?k.push(a.id):k.push(...a.folder.agentIds);T(k)},onDragCancel:function(){aK(),aA(null)},children:[(0,b.jsx)(R,{items:aJ,strategy:aD?void 0:O,children:ay.map((a,c)=>{let d;if("folder"===a.type){let c=a.folder,d=c.agentIds.includes(aW??"");return(0,b.jsxs)(E.ContextMenu,{children:[(0,b.jsx)(E.ContextMenuTrigger,{render:(0,b.jsx)("div",{}),children:(0,b.jsx)(af,{folder:c,agents:C,isActive:d,isMergeTarget:aB===c.id,dragActiveId:az,onExpand:()=>ac(ab===c.id?null:c.id),nodeRefCallback:a=>aH.current.set(c.id,a)})}),(0,b.jsx)(E.ContextMenuContent,{children:(0,b.jsxs)(E.ContextMenuItem,{onClick:()=>am(c.id),children:[(0,b.jsx)(u,{className:"size-3.5 mr-1.5"}),"Ungroup agents"]})})]},c.id)}if(as){let d=C.find(b=>b.id===a.id);if(!d)return null;let e=au.has(d.id);return(0,b.jsxs)("div",{className:"relative cursor-pointer",onClick:()=>{var a;return a=d.id,void av(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},children:[(0,b.jsx)("div",{className:(0,i.cn)("transition-all duration-150",e&&"ring-2 ring-primary rounded-xl"),children:a4(d,aw.length+c)}),e&&(0,b.jsx)("span",{className:"absolute -top-0.5 -right-0.5 size-3 rounded-full bg-primary ring-2 ring-background"})]},d.id)}let e=C.find(b=>b.id===a.id);return e?(0,b.jsx)(ai,{id:e.id,children:aB===e.id&&az?(0,b.jsx)(ae,{folder:{id:"merge-preview",agentIds:[e.id,az]},agents:C,isActive:!1,onClick:()=>{}}):a4(e,aw.length+c,(d=e.id,(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(E.ContextMenuSeparator,{}),(0,b.jsxs)(E.ContextMenuItem,{onClick:()=>{av(new Set([d])),at(!0)},children:[(0,b.jsx)(t.Folder,{className:"size-3.5 mr-1.5"}),"Create group"]}),aa.length>0&&(0,b.jsx)(b.Fragment,{children:aa.map(a=>{let c=a.agentIds.map(a=>C.find(b=>b.id===a)).filter(Boolean),e=c.slice(0,2).map(a=>a.name).join(", ");return(0,b.jsxs)(E.ContextMenuItem,{onClick:()=>ak(a.id,d),children:[(0,b.jsx)(v,{className:"size-3.5 mr-1.5"}),"Move to ",e,c.length>2?"…":""]},a.id)})})]})))},e.id):null})}),(0,b.jsx)(H.DragOverlay,{children:a2?(0,b.jsx)("div",{className:"opacity-80",children:(k=(0,F.parseAvatarUrl)(a2.avatar_url))?(0,b.jsx)(G.AnimatedAvatar,{config:k,size:40,className:"rounded-xl",isHovered:!1}):(0,b.jsx)("div",{className:"flex items-center justify-center size-10 rounded-xl bg-secondary text-sm font-medium",children:a2.name.charAt(0).toUpperCase()})}):a3?(0,b.jsx)("div",{className:"opacity-80",children:(0,b.jsx)(ae,{folder:a3,agents:C,isActive:!1,onClick:()=>{}})}):null})]}),as&&(0,b.jsxs)("div",{className:"flex flex-col gap-1 w-full px-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{au.size>=2&&ag(Array.from(au)),at(!1),av(new Set)},disabled:au.size<2,className:"flex items-center justify-center h-7 rounded-lg bg-primary text-primary-foreground text-xs font-medium disabled:opacity-40 cursor-pointer disabled:cursor-not-allowed",children:["Done (",au.size,")"]}),(0,b.jsx)("button",{type:"button",onClick:()=>{at(!1),av(new Set)},className:"flex items-center justify-center h-7 rounded-lg bg-secondary text-secondary-foreground text-xs cursor-pointer hover:bg-accent",children:"Cancel"})]})]}),!L&&0===C.length&&I.some(a=>"online"===a.status)?(0,b.jsxs)(x.Tooltip,{open:!0,children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/agents/new`),a?.()},className:(0,i.cn)("relative flex shrink-0 items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","border border-dashed border-primary/50 text-primary","hover:border-primary hover:bg-primary/10","animate-pulse",aT&&"border-solid border-primary bg-primary/10 animate-none")}),children:(0,b.jsx)(m.Plus,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",sideOffset:8,children:"Create your first agent"})]}):(0,b.jsx)("button",{type:"button",title:"New agent",onClick:()=>{z.push(`${aM}/agents/new`),a?.()},className:(0,i.cn)("flex shrink-0 items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","border border-dashed border-foreground/15 text-muted-foreground","hover:border-foreground/30 hover:text-foreground hover:bg-accent",aT&&"border-solid border-foreground/25 bg-accent text-foreground"),children:(0,b.jsx)(m.Plus,{className:"size-4"})})]}),a6&&(0,b.jsx)(ah,{folder:a6,agents:C,activeAgentId:aW,isOnline:aY,taskCounts:Y,anchorRef:aH.current.get(a6.id)??null,onAgentClick:aX,onRemoveFromFolder:a=>al(a6.id,a),onPinAgent:aL,onReorder:a=>an(a6.id,a),onClose:a5}),(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1 pt-2 border-t border-border/50 mt-1",children:[(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/runtimes`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aO&&"bg-accent text-foreground")}),children:(0,b.jsx)(j.Monitor,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Runtimes"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>X("dark"===W?"light":"dark"),className:"flex items-center justify-center size-10 rounded-xl text-muted-foreground hover:text-foreground hover:bg-accent transition-colors duration-200 cursor-pointer"}),children:(0,b.jsx)(l,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Toggle theme"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push(`${aM}/settings`),a?.()},className:(0,i.cn)("flex items-center justify-center size-10 rounded-xl transition-colors duration-200 cursor-pointer","text-muted-foreground hover:text-foreground hover:bg-accent",aS&&"bg-accent text-foreground")}),children:(0,b.jsx)(o,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Settings"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>{z.push("/workspaces"),a?.()},className:"flex items-center justify-center size-10 rounded-xl text-muted-foreground hover:text-foreground hover:bg-accent transition-colors duration-200 cursor-pointer"}),children:(0,b.jsx)(p,{className:"size-4"})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:"Switch workspace"})]}),(0,b.jsx)(D,{})]})]})}function ak(){let a=(0,d.useRouter)(),c=(0,d.usePathname)(),g=aA(),{slug:j}=(0,f.useWorkspace)(),{agents:k,pins:l,unpinnedOrder:m,runtimes:o,loading:p}=(0,e.useAgentContext)(),s=c===`/w/${j}/home`,t=c.includes("/calendar"),u=c.includes("/issues"),v=c.match(/^\/w\/[^/]+\/agents\/([^/]+)/),x=v?.[1]??null,y=[...k.filter(a=>l.has(a.id)).sort((a,b)=>l.get(a.id).position-l.get(b.id).position),...k.filter(a=>!l.has(a.id)).sort((a,b)=>{let c=m.get(a.id),d=m.get(b.id);return void 0!==c&&void 0!==d?c-d:void 0!==c?-1:void 0!==d?1:a.name.localeCompare(b.name)})];return(0,b.jsxs)("div",{className:"h-10 flex items-center gap-2 px-2 shrink-0",children:[g&&(0,b.jsx)("div",{role:"button",tabIndex:0,"aria-label":"Open sidebar",onClick:g,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),g())},className:"shrink-0 cursor-pointer transition-opacity hover:opacity-70 [&>button]:pointer-events-none",children:(0,b.jsx)(h.Logo,{size:"sm",iconOnly:!0})}),(0,b.jsx)("button",{onClick:()=>a.push(`/w/${j}/home`),"aria-label":"Home",className:(0,i.cn)("shrink-0 p-1 rounded-md transition-colors",s?"text-foreground bg-muted":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(q,{className:"size-4"})}),(0,b.jsx)("button",{onClick:()=>a.push(`/w/${j}/calendar`),"aria-label":"Calendar",className:(0,i.cn)("shrink-0 p-1 rounded-md transition-colors",t?"text-foreground bg-muted":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(n.CalendarDays,{className:"size-4"})}),(0,b.jsx)("button",{onClick:()=>a.push(`/w/${j}/issues`),"aria-label":"Issues",className:(0,i.cn)("shrink-0 p-1 rounded-md transition-colors",u?"text-foreground bg-muted":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(r.CircleDot,{className:"size-4"})}),(0,b.jsx)("div",{className:"flex-1 overflow-x-auto flex items-center gap-1.5 py-1 px-0.5 scrollbar-none",children:p?(0,b.jsx)(w.Skeleton,{className:"size-7 rounded-full"}):y.map(c=>{let d=o.find(a=>a.id===c.runtime_id),e=d?.status==="online",f=x===c.id,g=(0,F.parseAvatarUrl)(c.avatar_url);return(0,b.jsxs)("button",{onClick:()=>a.push(`/w/${j}/agents/${c.id}`),"aria-label":c.name,className:(0,i.cn)("shrink-0 relative rounded-full transition-all",f&&"ring-2 ring-primary"),children:[(0,b.jsx)("div",{className:"size-7",children:g?(0,b.jsx)(G.AnimatedAvatar,{config:g,size:28,className:"rounded-full",isHovered:!1}):(0,b.jsx)("div",{className:"size-7 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium",children:c.name.charAt(0).toUpperCase()})}),(0,b.jsx)("span",{className:(0,i.cn)("absolute -bottom-0.5 -right-0.5 size-2 rounded-full border border-background",e?"bg-emerald-500":"bg-muted-foreground/40")})]},c.id)})})]})}var al=a.i(567264),am=a.i(586220),an=a.i(7455),ao=a.i(588339);a.i(974936);var ap=a.i(997445),aq=a.i(432340),ar=a.i(732254),as=a.i(464830);let at=(0,k.default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var au=a.i(461794);let av=(0,k.default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);var aw=a.i(921584);let ax="npx @alook/cli@latest daemon stop && npx @alook/cli@latest daemon start";function ay(){let{runtimes:a,workspaceId:d}=(0,e.useAgentContext)(),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(new Set),[j,k]=(0,c.useState)(!1),l=(0,c.useRef)(null);if((0,c.useEffect)(()=>{(0,ao.getMinCliVersion)().then(a=>g(a.min_cli_version)).catch(()=>{})},[]),(0,c.useEffect)(()=>()=>{l.current&&clearTimeout(l.current)},[]),!f)return null;let m=a.filter(a=>{if("online"!==a.status)return!1;let b=a.metadata?.cli_version;return"string"!=typeof b||!b||!(0,ap.semverGte)(b,f)}),n=new Map;for(let a of m){let b=a.daemon_id??a.id;n.has(b)||n.set(b,a)}if(0===n.size)return null;let o=async a=>{i(b=>new Set(b).add(a.id)),l.current||(l.current=setTimeout(()=>{k(!0)},5e3));try{await (0,ao.triggerRuntimeUpdate)(a.id,d)}catch{i(b=>{let c=new Set(b);return c.delete(a.id),c})}};return(0,b.jsx)(aq.Dialog,{open:!0,modal:!0,disablePointerDismissal:!0,onOpenChange:()=>{},children:(0,b.jsxs)(aq.DialogContent,{showCloseButton:!1,children:[(0,b.jsxs)(aq.DialogHeader,{children:[(0,b.jsxs)(aq.DialogTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)(at,{className:"size-5 text-amber-500"}),"Runtime Update Required"]}),(0,b.jsxs)(aq.DialogDescription,{children:["The following machine(s) are running an outdated CLI version (minimum required: v",f,"). Please update to continue."]})]}),(0,b.jsx)("div",{className:"space-y-3 mt-2",children:[...n.entries()].map(([a,c])=>{let d=c.metadata?.cli_version,e=h.has(c.id);return(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-emerald-500"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium truncate",children:c.device_info||a.slice(0,12)}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground flex items-center gap-2 mt-0.5",children:[(0,b.jsxs)("span",{children:["v",d||"unknown"]}),(0,b.jsxs)(as.Badge,{variant:"outline",className:"text-[10px] px-1.5 py-0 text-amber-500 border-amber-500/30",children:["requires v",f]})]})]})]}),(0,b.jsxs)(ar.Button,{size:"sm",variant:"outline",disabled:e,onClick:()=>o(c),children:[(0,b.jsx)(au.RefreshCw,{className:`size-3.5 ${e?"animate-spin":""}`}),e?"Updating...":"Update"]})]},a)})}),j&&(0,b.jsxs)("div",{className:"mt-3 rounded-md bg-muted/50 border border-dashed p-2.5 text-xs text-muted-foreground",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-medium text-foreground mb-1",children:[(0,b.jsx)(av,{className:"size-3"}),"Update taking too long?"]}),(0,b.jsx)("p",{className:"mb-1",children:"Run this command on the machine to update manually:"}),(0,b.jsx)("code",{className:"block rounded bg-background px-2 py-1 font-mono text-[11px] cursor-pointer hover:bg-background/80 transition-colors",title:"Click to copy",onClick:()=>{navigator.clipboard.writeText(ax),aw.toast.success("Copied to clipboard")},children:ax})]})]})})}let az=(0,c.createContext)(null);function aA(){return(0,c.useContext)(az)}function aB({children:a}){let d=(0,am.useIsMobile)(),[e,f]=(0,c.useState)(!1);return d?(0,b.jsx)(az.Provider,{value:()=>f(!0),children:(0,b.jsxs)("div",{className:"flex flex-col h-dvh overflow-hidden relative",children:[(0,b.jsx)(al.GradientBackground,{}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 px-2 pb-2 pt-2 flex flex-col",children:[(0,b.jsx)(ak,{}),(0,b.jsx)("main",{className:"flex-1 min-h-0 rounded-xl bg-card/80 backdrop-blur-xl shadow-lg ring-1 ring-border/40 overflow-hidden flex flex-col",children:a})]}),(0,b.jsx)(an.Sheet,{open:e,onOpenChange:f,children:(0,b.jsx)(an.SheetContent,{side:"left",showCloseButton:!1,style:{width:56},className:"p-0",children:(0,b.jsx)(aj,{onNavigate:()=>f(!1)})})}),(0,b.jsx)(ay,{})]})}):(0,b.jsxs)("div",{className:"flex h-dvh overflow-hidden relative",children:[(0,b.jsx)(al.GradientBackground,{}),(0,b.jsx)(aj,{}),(0,b.jsx)("div",{className:"flex-1 flex flex-col min-w-0 pt-2 pr-2 pb-2",children:(0,b.jsx)("main",{className:"flex-1 min-h-0 rounded-xl bg-card/80 backdrop-blur-xl shadow-lg ring-1 ring-border/40 overflow-hidden flex flex-col",children:a})}),(0,b.jsx)(ay,{})]})}}];
2
2
 
3
3
  //# sourceMappingURL=src_web_src_components_workspace-shell_tsx_0479plk._.js.map
@@ -61,7 +61,7 @@ When done, structure your reply:
61
61
  - **Status:** DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT
62
62
  - **Summary:** Key findings in 2-3 sentences.
63
63
  - **Evidence:** Specific references with links/paths.
64
- - **Recommendation:** What action to take next.`}]},{id:"indie-hacker-ship-crew",name:"Indie Hacker Ship Crew",category:"Developer",icon:"🚀",description:"Build features, handle user feedback emails, write docs, and manage releases for your indie product.",longDescription:"Ship faster as a solo founder. Your leader manages the product backlog and user communications, your engineer writes code and runs tests, and your assistant handles user feedback emails, drafts documentation, and manages release announcements. Think of it as a tiny startup team that never sleeps.",tags:["indie hacker","SaaS","product","shipping"],features:["Feature implementation from spec to deployed code","User feedback email processing and prioritization","Documentation writing and maintenance","Release notes and announcement drafting","Bug fix triage from user reports","Deployment coordination and monitoring"],useCases:[{title:"Solo founders",description:"Multiply your output by delegating implementation, docs, and user comms to your AI crew."},{title:"Weekend projects",description:"Keep your side project moving forward even when you only have a few hours per week."},{title:"Early-stage startups",description:"Move fast before you can afford to hire, with AI handling the repetitive work."}],baseScenario:"software-dev",members:[{role:"leader",description:"Manages product backlog, user comms, and coordinates shipping",instructions:`You are the product lead for an indie hacker's product. You coordinate between building features, responding to users, and shipping releases.
64
+ - **Recommendation:** What action to take next.`}]},{id:"indie-hacker-ship-crew",name:"Indie Hacker Ship Crew",category:"Developer",icon:"🚀",description:"Build features, handle user feedback emails, write docs, and manage releases for your indie product.",longDescription:"Ship faster as a solo founder. Your leader manages the product backlog and user communications, your engineer writes code and runs tests, and your assistant handles user feedback emails, drafts documentation, and manages release announcements. Think of it as a tiny startup team that never sleeps.",tags:["indie hacker","SaaS","product","shipping"],features:["Feature implementation from spec to deployed code","User feedback email processing and prioritization","Documentation writing and maintenance","Release notes and announcement drafting","Bug fix triage from user reports","Deployment coordination and monitoring"],useCases:[{title:"Solo founders",description:"Multiply your output by delegating implementation, docs, and user comms to your AI company."},{title:"Weekend projects",description:"Keep your side project moving forward even when you only have a few hours per week."},{title:"Early-stage startups",description:"Move fast before you can afford to hire, with AI handling the repetitive work."}],baseScenario:"software-dev",members:[{role:"leader",description:"Manages product backlog, user comms, and coordinates shipping",instructions:`You are the product lead for an indie hacker's product. You coordinate between building features, responding to users, and shipping releases.
65
65
 
66
66
  ## Core Principle
67
67
  Keep the product moving forward. Prioritize ruthlessly, ship quickly, and ensure users feel heard.
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/36j5LIYm2caTV9Ksu2QBr/_buildManifest.js",
11
- "static/36j5LIYm2caTV9Ksu2QBr/_ssgManifest.js",
12
- "static/36j5LIYm2caTV9Ksu2QBr/_clientMiddlewareManifest.js"
10
+ "static/YGJyWNUCWhOqpFg-fDYKo/_buildManifest.js",
11
+ "static/YGJyWNUCWhOqpFg-fDYKo/_ssgManifest.js",
12
+ "static/YGJyWNUCWhOqpFg-fDYKo/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/002w8zenjl89m.js",
@@ -25,7 +25,7 @@
25
25
  "wasm": [],
26
26
  "assets": [],
27
27
  "env": {
28
- "__NEXT_BUILD_ID": "36j5LIYm2caTV9Ksu2QBr",
28
+ "__NEXT_BUILD_ID": "YGJyWNUCWhOqpFg-fDYKo",
29
29
  "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "U7TQ0gdBcrB3sWfvD3feBIb8m9hXxGuJ0Z/EqXbbr0U=",
30
30
  "__NEXT_PREVIEW_MODE_ID": "b962cd5decf6d124a463dd43140b8310",
31
31
  "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "53de9b225a6b182096dee24e8e3423765c5e15a16bae007be14f56fa668c0f3a",