@mndrk/agx 2.0.25 → 2.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ffbc2e98._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0ff7c687._.js +2 -4
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_e1769638._.js +2 -4
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +3 -3
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/10b0642440302e99.css +2 -0
- package/cloud-runtime/standalone/.next/static/chunks/4c01a5f19f9e775e.js +8 -0
- package/cloud-runtime/standalone/.next/static/chunks/{da434b1ad885d636.js → 651c7c97d3bd77e0.js} +2 -4
- package/cloud-runtime/standalone/.next/static/chunks/661090206d8bae9b.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{2acd153dc5252e88.js → 99174504a201d23e.js} +2 -4
- package/cloud-runtime/standalone/.next/static/chunks/{64f812259cf8c243.js → b5bd2eb6e0c7f71a.js} +4 -6
- package/cloud-runtime/standalone/app/globals.css +25 -22
- package/cloud-runtime/standalone/components/ActionToolbar.tsx +25 -0
- package/cloud-runtime/standalone/components/IconButton.tsx +35 -0
- package/cloud-runtime/standalone/components/ProjectCard.tsx +2 -2
- package/cloud-runtime/standalone/components/TaskCard.tsx +2 -4
- package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +4 -5
- package/cloud-runtime/standalone/components/chat-ui/FileMentionPopoverItem.tsx +2 -2
- package/cloud-runtime/standalone/components/chat-ui/MessageList.tsx +46 -43
- package/cloud-runtime/standalone/styles/workspaceSidebar.css +2 -0
- package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/9d50c2514f72d926.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/bd6c5b5b4fbd6413.css +0 -2
- package/cloud-runtime/standalone/.next/static/chunks/eab1c7d0246592f8.js +0 -8
- /package/cloud-runtime/standalone/.next/static/{HOfhTqGoYN6GjsW9CCf3t → AB08MY3MKLsqeJYL8OZ2g}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{HOfhTqGoYN6GjsW9CCf3t → AB08MY3MKLsqeJYL8OZ2g}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{HOfhTqGoYN6GjsW9CCf3t → AB08MY3MKLsqeJYL8OZ2g}/_ssgManifest.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
module.exports=[7704,a=>{a.v({fileMentionFadeIn:"FileMentionPopover-module__1CTxzW__fileMentionFadeIn",popover:"FileMentionPopover-module__1CTxzW__popover"})},24610,a=>{"use strict";var b=a.i(90944),c=a.i(72131);function d(a){return`threadId=${encodeURIComponent(a)}`}function e(a){return`workspaceId=${encodeURIComponent(a)}`}var f=a.i(4301),g=a.i(95348),h=a.i(86976),i=a.i(38246),j=a.i(15682),k=a.i(20138),l=a.i(94125);function m(){return(0,b.jsxs)("span",{className:"inline-flex items-center gap-[3px] ml-1",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})}function n({participantId:a,participantName:c,participantColor:d,content:e}){let f=(0,l.stripMarkers)(e),g=f.length>0;return(0,b.jsxs)("div",{className:"flex gap-4 py-4 group transition-colors animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,b.jsx)(i.default,{href:`/agents/${a}`,className:"w-9 h-9 rounded-full bg-[var(--muted)] overflow-hidden shrink-0 shadow-sm border border-[var(--border)] hover:ring-2 hover:ring-blue-300 transition-shadow",children:(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(a,36,d),alt:"",className:"w-full h-full object-cover"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2 mb-1",children:[(0,b.jsx)(i.default,{href:`/agents/${a}`,className:"font-bold text-[15px] hover:underline",style:{color:d},children:c}),(0,b.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-[var(--muted-foreground)] font-bold opacity-0 group-hover:opacity-100 transition-opacity",children:"Streaming"})]}),(0,b.jsx)("div",{className:"text-[15px] text-[var(--foreground)] leading-relaxed min-h-[1.5rem] flex items-center",children:g?(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)(j.Markdown,{content:f}),(0,b.jsx)("span",{className:"inline-flex items-baseline ml-0.5",children:(0,b.jsx)("span",{className:"w-1 h-1 rounded-full bg-indigo-400 animate-[pulse-dot_1.4s_ease-in-out_infinite]"})})]}):(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[var(--muted-foreground)] italic",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:"working"}),(0,b.jsx)(m,{})]})})]})]})}var o=a.i(60137);let p=(0,o.default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var q=a.i(84505);function r({attachments:a,compact:c=!1}){if(0===a.length)return null;let d=a.filter(a=>a.mimeType.startsWith("image/")),e=a.filter(a=>!a.mimeType.startsWith("image/")),f=c?"max-w-[120px]":"max-w-[240px]",g=c?"max-h-[90px]":"max-h-[180px]";return(0,b.jsxs)("div",{className:"mt-2 space-y-2",children:[d.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:d.map(a=>(0,b.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"block rounded-lg overflow-hidden border border-[var(--border)] hover:border-[var(--border)] transition-colors",children:(0,b.jsx)("img",{src:a.url,alt:a.filename,className:`${f} ${g} object-cover`,loading:"lazy"})},a.id))}),e.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.map(a=>{var d;return(0,b.jsxs)("a",{href:a.url,download:a.filename,className:`inline-flex items-center gap-1.5 rounded-md border border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:border-[var(--border)] transition-colors ${c?"px-2 py-0.5 text-[11px]":"px-2.5 py-1 text-xs"}`,children:[(0,b.jsx)(p,{className:`text-[var(--muted-foreground)] shrink-0 ${c?"w-3 h-3":"w-3.5 h-3.5"}`}),(0,b.jsx)("span",{className:`truncate ${c?"max-w-[100px]":"max-w-[150px]"}`,children:a.filename}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0",children:(d=a.size)<1024?`${d}B`:d<1048576?`${(d/1024).toFixed(0)}KB`:`${(d/1048576).toFixed(1)}MB`}),(0,b.jsx)(q.Download,{className:`text-[var(--muted-foreground)] shrink-0 ${c?"w-2.5 h-2.5":"w-3 h-3"}`})]},a.id)})})]})}var s=a.i(1027);let t=(0,o.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var u=a.i(5784),v=a.i(50522),w=a.i(15618),x=a.i(33508);let y=(0,o.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var z=a.i(5151),A=a.i(33441);let B=process.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741";async function C(){let a=await fetch(`${B}/api/projects`);if(!a.ok){if(503===a.status)throw Error("SCHEMA_NOT_READY");throw Error(`Failed to list projects: ${a.status}`)}let b=await a.json();return b.projects??b}async function D(a,b){let c=await fetch(`${B}/api/projects`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a,description:b})});if(!c.ok)throw Error(`Failed to create project: ${c.status}`);return c.json()}async function E(a,b){let c=await fetch(`${B}/api/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:a,...b})});if(!c.ok)throw Error(`Failed to create task: ${c.status}`);let d=await c.json(),e=d.task??d;return d.id&&!e.id&&(e.id=d.id),e}async function F(a){let b=await fetch(`${B}/api/tasks/${a}`);if(!b.ok)return null;let c=await b.json();return c.task??c}async function G(a,b,c,d){let e=[],f={...d},g=new Map((function(a){let b=new Set(a.map(a=>a.id)),c=new Map;for(let d of a)c.set(d.id,(d.dependsOn||[]).filter(a=>b.has(a)));let d=[],e=new Set,f=new Set;for(let b of a)!function b(g){if(!e.has(g)&&!f.has(g)){for(let a of(f.add(g),c.get(g)||[]))b(a);f.delete(g),e.add(g),d.push(a.find(a=>a.id===g))}}(b.id);return d})(a).map(a=>[a.id,a]));for(;g.size>0;){let a=[];for(let b of g.values())(b.dependsOn||[]).every(a=>!g.has(a)||f[a])&&a.push(b);0===a.length&&a.push(...g.values());let c=await Promise.allSettled(a.map(async a=>{let c=f[a.id];if(c&&await F(c))return{task:a,remoteId:c};let d=(a.dependsOn||[]).map(a=>f[a]).filter(Boolean),e=await E(a.description,{title:a.title,project_id:b,depends_on:d.length>0?d:void 0});return{task:a,remoteId:e.id}}));for(let b of c)if("fulfilled"===b.status){let{task:a,remoteId:c}=b.value;f[a.id]=c,e.push({clientTaskId:a.id,remoteTaskId:c,status:"created"}),g.delete(a.id)}else{let d=a[c.indexOf(b)];e.push({clientTaskId:d.id,status:"failed",error:b.reason instanceof Error?b.reason.message:"Unknown error"}),g.delete(d.id)}}return{buildId:c,projectId:b,results:e}}let H=(0,o.default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);var I=a.i(96101),J=a.i(73570);function K({onSelect:a,onClose:d}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!0),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(!1);(0,c.useEffect)(()=>{(async()=>{try{let a=await C();f(a)}catch(a){a instanceof Error&&"SCHEMA_NOT_READY"===a.message?j("agx-cloud database not ready. Run migrations first."):j("Failed to load projects. Is agx-cloud running?")}finally{h(!1)}})()},[]);let q=(0,c.useCallback)(async()=>{let b=m.trim();if(b){l(!0);try{let c=await D(b);a(c.id,c.name)}catch(a){j("Failed to create project")}finally{l(!1)}}},[m,a]);return(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/20 backdrop-blur-sm",children:(0,b.jsxs)("div",{className:"bg-[var(--app-shell-elevated)] rounded-2xl shadow-xl border border-[var(--app-shell-border)] w-full max-w-sm mx-4 overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-[var(--app-shell-border)]",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(I.FolderOpen,{className:"w-4 h-4 text-[var(--app-shell-muted)]"}),(0,b.jsx)("h3",{className:"text-sm font-bold text-[var(--foreground)]",children:"Select Project"})]}),(0,b.jsx)("button",{type:"button",onClick:d,className:"p-1 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] rounded-md hover:bg-[var(--app-shell-subtle)]",children:(0,b.jsx)(x.X,{className:"w-4 h-4"})})]}),(0,b.jsxs)("div",{className:"p-4 max-h-64 overflow-y-auto",children:[g&&(0,b.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,b.jsx)(H,{className:"w-5 h-5 text-[var(--app-shell-muted)] animate-spin"})}),i&&(0,b.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-amber-50 rounded-lg text-amber-700 text-xs font-medium",children:[(0,b.jsx)(J.AlertTriangle,{className:"w-4 h-4 shrink-0"}),i]}),!g&&!i&&0===e.length&&(0,b.jsx)("p",{className:"text-xs text-[var(--app-shell-muted)] text-center py-4",children:"No projects found. Create one below."}),!g&&e.map(c=>(0,b.jsxs)("button",{type:"button",onClick:()=>a(c.id,c.name),className:"w-full text-left px-3 py-2.5 rounded-lg hover:bg-[var(--app-shell-subtle)] transition-colors flex items-center gap-3 group",children:[(0,b.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--app-shell-subtle)] flex items-center justify-center shrink-0",children:(0,b.jsx)(I.FolderOpen,{className:"w-4 h-4 text-[var(--app-shell-muted)] group-hover:text-[var(--foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)] truncate",children:c.name}),c.description&&(0,b.jsx)("div",{className:"text-[11px] text-[var(--app-shell-muted)] truncate",children:c.description})]})]},c.id))]}),(0,b.jsx)("div",{className:"px-4 pb-4 pt-2 border-t border-[var(--app-shell-border)]",children:o?(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),onKeyDown:a=>"Enter"===a.key&&q(),placeholder:"Project name",autoFocus:!0,className:"flex-1 h-8 px-3 text-sm bg-[var(--input)] border border-[var(--app-shell-border)] rounded-lg outline-none focus:ring-1 focus:ring-[var(--ring)] text-[var(--foreground)]"}),(0,b.jsx)("button",{type:"button",onClick:q,disabled:k||!m.trim(),className:"h-8 px-3 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-lg disabled:opacity-40",children:k?"…":"Create"}),(0,b.jsx)("button",{type:"button",onClick:()=>p(!1),className:"h-8 px-2 text-[var(--app-shell-muted)] hover:text-[var(--foreground)]",children:(0,b.jsx)(x.X,{className:"w-3.5 h-3.5"})})]}):(0,b.jsxs)("button",{type:"button",onClick:()=>p(!0),className:"flex items-center gap-1.5 text-xs font-bold text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(w.Plus,{className:"w-3.5 h-3.5"}),"Create new project"]})})]})})}function L({draft:a,onUpdate:d,onBuild:e,building:f}){let[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(!1),m=(0,c.useCallback)(()=>{let b=a.tasks.map((a,b)=>{let c=`${b+1}. **${a.title}**`;return a.description&&"Add description..."!==a.description&&(c+=`
|
|
2
2
|
${a.description.replace(/\n/g,"\n ")}`),c}).join("\n");navigator.clipboard.writeText(b).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},[a.tasks]),n=(0,c.useCallback)((b,c)=>{let e=a.tasks.map(a=>a.id===b?{...a,...c}:a);d({...a,tasks:e,revision:a.revision+1})},[a,d]),o=(0,c.useCallback)(b=>{let c=a.tasks.filter(a=>a.id!==b);d({...a,tasks:c,revision:a.revision+1})},[a,d]),p=(0,c.useCallback)(()=>{let b={id:crypto.randomUUID(),title:"New task",description:"Add description..."};d({...a,tasks:[...a.tasks,b],revision:a.revision+1})},[a,d]),q=(0,c.useCallback)(()=>{j(!0)},[]),r=(0,c.useCallback)((b,c)=>{j(!1),e(a,b,c)},[a,e]),B="idle"===a.buildStatus||!a.buildStatus;return(0,b.jsxs)("div",{className:"mt-6 p-4 bg-[var(--app-shell-subtle)]/80 rounded-2xl border border-[var(--border)] shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(s.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,b.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Tasks"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:[a.tasks.length," task",1!==a.tasks.length?"s":""]}),a.tasks.length>0&&(0,b.jsx)("button",{type:"button",onClick:m,className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] transition-colors",title:"Copy as markdown",children:k?(0,b.jsx)(A.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,b.jsx)(z.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,b.jsx)("div",{className:"space-y-1 mb-4",children:a.tasks.map(a=>{let c=g===a.id;return(0,b.jsxs)("div",{className:"group",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 py-1.5 px-2 rounded-lg hover:bg-[var(--app-shell-subtle)] transition-colors",children:[B&&(0,b.jsx)(t,{className:"w-3.5 h-3.5 text-[var(--app-shell-soft-text)] opacity-0 group-hover:opacity-100 cursor-grab shrink-0"}),(0,b.jsx)("button",{type:"button",onClick:()=>h(c?null:a.id),className:"shrink-0 text-[var(--app-shell-muted)] hover:text-[var(--foreground)]",children:c?(0,b.jsx)(u.ChevronDown,{className:"w-3.5 h-3.5"}):(0,b.jsx)(v.ChevronRight,{className:"w-3.5 h-3.5"})}),B?(0,b.jsx)("input",{type:"text",value:a.title,onChange:b=>n(a.id,{title:b.target.value}),className:"flex-1 text-xs font-semibold text-[var(--foreground)] bg-transparent border-none outline-none focus:ring-0 p-0"}):(0,b.jsx)("span",{className:"flex-1 text-xs font-semibold text-[var(--foreground)]",children:a.title}),B&&(0,b.jsx)("button",{type:"button",onClick:()=>o(a.id),className:"shrink-0 text-[var(--app-shell-soft-text)] hover:text-rose-500 opacity-0 group-hover:opacity-100 transition-all",children:(0,b.jsx)(x.X,{className:"w-3.5 h-3.5"})})]}),c&&(0,b.jsx)("div",{className:"ml-9 mr-2 mb-2",children:B?(0,b.jsx)("textarea",{value:a.description,onChange:b=>n(a.id,{description:b.target.value}),rows:4,className:"w-full text-xs text-[var(--muted-foreground)] bg-[var(--input)] border border-[var(--app-shell-border)] rounded-lg p-2 outline-none focus:ring-1 focus:ring-[var(--ring)] resize-y"}):(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] whitespace-pre-wrap",children:a.description})})]},a.id)})}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[B&&(0,b.jsxs)("button",{type:"button",onClick:p,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-bold text-[var(--app-shell-muted)] hover:text-[var(--foreground)] rounded-full border border-dashed border-[var(--app-shell-border)] hover:border-[var(--app-shell-border-strong)] transition-all",children:[(0,b.jsx)(w.Plus,{className:"w-3 h-3"}),"Add task"]}),(0,b.jsx)("div",{className:"flex-1"}),B&&(0,b.jsxs)("button",{type:"button",onClick:q,disabled:f||0===a.tasks.length,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,b.jsx)(y,{className:"w-3 h-3"}),f?"Pushing…":"Push to agx"]})]}),i&&(0,b.jsx)(K,{onSelect:r,onClose:()=>j(!1)})]})}let M=new Set(["completed","done","failed","blocked"]);var N=a.i(67453),O=a.i(65151);let P=(0,o.default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);var Q=a.i(62722);let R={queued:(0,b.jsx)(O.Circle,{className:"w-4 h-4 text-[var(--muted-foreground)]"}),pending:(0,b.jsx)(O.Circle,{className:"w-4 h-4 text-[var(--muted-foreground)]"}),in_progress:(0,b.jsx)(H,{className:"w-4 h-4 text-blue-500 animate-spin"}),running:(0,b.jsx)(H,{className:"w-4 h-4 text-blue-500 animate-spin"}),blocked:(0,b.jsx)(P,{className:"w-4 h-4 text-amber-500"}),completed:(0,b.jsx)(N.CheckCircle2,{className:"w-4 h-4 text-emerald-500"}),done:(0,b.jsx)(N.CheckCircle2,{className:"w-4 h-4 text-emerald-500"}),failed:(0,b.jsx)(Q.XCircle,{className:"w-4 h-4 text-rose-500"})};function S({draft:a,onPush:d,pushing:e}){let[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(!1),j=(0,c.useCallback)(()=>{let b=a.tasks.map((a,b)=>`${b+1}. **${a.title}**${a.description?`
|
|
3
|
-
${a.description.replace(/\n/g,"\n ")}`:""}`).join("\n");navigator.clipboard.writeText(b).then(()=>{i(!0),setTimeout(()=>i(!1),1500)})},[a.tasks]),{tasks:k,error:l}=function({projectId:a,enabled:b,interval:d=3e4}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(null),i=(0,c.useRef)(0),j=(0,c.useRef)([]),k=(0,c.useCallback)(async()=>{if(a&&"undefined"!==a)try{let b=process.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741",c=await fetch(`${b}/api/tasks?project=${a}`);if(!c.ok)throw Error(`Poll failed: ${c.status}`);let d=await c.json(),e=d.tasks??d;j.current=e,f(e),h(null)}catch(a){h(a instanceof Error?a.message:"Poll failed")}},[a]);return(0,c.useEffect)(()=>{if(!b||!a)return;i.current=Date.now(),k();let c=setInterval(()=>{Date.now()-i.current>18e5||j.current.length>0&&j.current.every(a=>M.has(a.status))?clearInterval(c):k()},d);return()=>clearInterval(c)},[b,a,d,k]),{tasks:e,error:g,refetch:k}}({projectId:a.projectId??null,enabled:!!a.projectId&&"done"===a.buildStatus}),m=new Map;if(a.builtTaskIds)for(let[b,c]of Object.entries(a.builtTaskIds)){let a=k.find(a=>a.id===c);a&&m.set(b,a)}let n=a.tasks.filter(a=>{let b=m.get(a.id);return b&&("completed"===b.status||"done"===b.status)}).length,o=a.tasks.length>0?n/a.tasks.length:0,p=(0,c.useCallback)(()=>{a.projectId&&a.projectName?d?.(a,a.projectId,a.projectName):g(!0)},[a,d]),q=(0,c.useCallback)((b,c)=>{g(!1),d?.(a,b,c)},[a,d]);a.tasks.some(b=>!a.builtTaskIds?.[b.id]);let r=a.tasks.some(a=>{let b=m.get(a.id);return b&&"queued"!==b.status&&"pending"!==b.status});return(0,b.jsxs)("div",{className:"mt-6 p-4 bg-[var(--app-shell-subtle)]/80 rounded-2xl border border-[var(--border)] shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(s.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,b.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Tasks"}),a.projectName&&(0,b.jsxs)("span",{className:"text-[10px] font-semibold text-[var(--muted-foreground)]",children:["· ",a.projectName]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:[n,"/",a.tasks.length," Complete"]}),a.tasks.length>0&&(0,b.jsx)("button",{type:"button",onClick:j,className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] transition-colors",title:"Copy as markdown",children:h?(0,b.jsx)(A.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,b.jsx)(z.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,b.jsx)("div",{className:"space-y-3 mb-4",children:a.tasks.map(a=>{let c=m.get(a.id),d=c?.status||"queued",e=R[d]||R.queued;return(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[e,(0,b.jsx)("span",{className:"text-xs font-semibold text-[var(--muted-foreground)]",children:a.title})]},a.id)})}),(0,b.jsx)("div",{className:"h-1.5 w-full bg-[var(--muted)] rounded-full overflow-hidden",children:(0,b.jsx)("div",{className:"h-full bg-emerald-500 rounded-full shadow-[0_0_8px_rgba(16,185,129,0.4)] transition-all duration-500",style:{width:`${Math.round(100*o)}%`}})}),d&&!r&&(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-3",children:["partial_failure"===a.buildStatus&&(0,b.jsx)("span",{className:"text-[11px] text-amber-600 font-semibold",children:"Some tasks failed to push."}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)("button",{type:"button",onClick:p,disabled:e,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,b.jsx)(y,{className:"w-3 h-3"}),e?"Pushing…":"Push to agx"]})]}),l&&(0,b.jsxs)("div",{className:"mt-2 text-[11px] text-amber-600 font-medium",children:["Status polling error: ",l]}),f&&(0,b.jsx)(K,{onSelect:q,onClose:()=>g(!1)})]})}var T=a.i(63588),U=a.i(2835),V=a.i(81560),W=a.i(46842),X=a.i(41710);let Y=(0,o.default)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]),Z=(0,o.default)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),$=(0,o.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),_=(0,o.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]),aa=[{value:"active",label:"Active",color:"#f59e0b"},{value:"paused",label:"Paused",color:"#f97316"},{value:"in-review",label:"In Review",color:"#6b7280"},{value:"done",label:"Done",color:"#3b82f6"},{value:"archived",label:"Archived",color:"#9ca3af"}],ab=new Set(["done","in-review","archived"]),ac="<!-- thread-summary -->";function ad({messages:a,streaming:d,participants:e,onOpenThread:f,onCopyThread:g,onAddToChat:h,onDeleteThreadRoot:m,onSummarize:o,onCreateTasks:p,onUpdateTaskDraft:q,onBuildTasks:s,summarizingThreads:t,extractingTasks:u,buildingDrafts:v,taskDrafts:w,deletingThreadRootId:x,highlightedMessageId:y,onUpdateMessageThreadStatus:A,onUpdateMessageOutcomeNote:B,shipModeThreads:C}){let D=(0,c.useRef)(new Map),[E,F]=(0,c.useState)(null),[G,I]=(0,c.useState)("active"),J=Object.fromEntries(e.map(a=>[a.id,a])),K=(0,c.useMemo)(()=>[...a.filter(a=>!a.rootMessageId)].reverse(),[a]),M={active:new Set(["active"]),paused:new Set(["paused"]),"in-review":new Set(["in-review"]),done:new Set(["done"]),archived:new Set(["archived"])},N=(0,c.useMemo)(()=>K.filter(a=>M[G].has(a.threadStatus??"active")),[K,G]),O=(0,c.useMemo)(()=>({active:K.filter(a=>M.active.has(a.threadStatus??"active")).length,paused:K.filter(a=>M.paused.has(a.threadStatus??"active")).length,"in-review":K.filter(a=>M["in-review"].has(a.threadStatus??"active")).length,done:K.filter(a=>M.done.has(a.threadStatus??"active")).length,archived:K.filter(a=>M.archived.has(a.threadStatus??"active")).length}),[K]),P=(0,c.useMemo)(()=>(function(a){let b=new Map;for(let c of a){let a=c.rootMessageId;if(!a)continue;let d=b.get(a);d||(d={rootMessageId:a,replyCount:0,participants:[],lastActivityAt:0,allReplies:[]},b.set(a,d)),d.replyCount++,d.lastActivityAt=Math.max(d.lastActivityAt,c.timestamp),d.lastReply=c,d.allReplies.push(c),c.participantId&&!d.participants.includes(c.participantId)?d.participants.push(c.participantId):c.participantId||d.participants.includes("user")||d.participants.push("user")}for(let a of b.values())a.allReplies.sort((a,b)=>a.timestamp-b.timestamp);return b})(a),[a]),Q=(0,c.useCallback)((a,b)=>{b?D.current.set(a,b):D.current.delete(a)},[]),R=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!y){R.current=null;return}if(y===R.current)return;R.current=y;let a=D.current.get(y);a&&a.scrollIntoView({behavior:"smooth",block:"center"})},[y,a]),(0,b.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[K.length>0&&(0,b.jsx)("div",{className:"flex items-center justify-center gap-1 p-1 rounded-lg w-fit mx-auto border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] mb-4",children:[{key:"active",label:"Active"},{key:"paused",label:"Paused"},{key:"in-review",label:"In Review"},{key:"done",label:"Done"},{key:"archived",label:"Archived"}].map(a=>{let c=O[a.key],d=G===a.key;return(0,b.jsxs)("button",{type:"button",onClick:()=>I(a.key),className:`px-3 py-1.5 text-xs font-bold rounded-md transition-all ${d?"bg-[var(--app-shell-surface)] text-[var(--foreground)] shadow-sm":"text-[var(--app-shell-muted)] hover:text-[var(--foreground)]"}`,children:[a.label,c>0&&(0,b.jsx)("span",{className:`ml-1.5 text-[10px] ${d?"opacity-60":"opacity-50"}`,children:c})]},a.key)})}),0===K.length&&0===Object.keys(d).length&&(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-32 space-y-3",children:[(0,b.jsx)(T.MessageSquare,{className:"h-6 w-6",strokeWidth:1.5}),(0,b.jsx)("span",{className:"text-sm font-medium tracking-wide",children:"Start a thread"})]}),K.length>0&&0===N.length&&(0,b.jsx)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-16 space-y-2",children:(0,b.jsxs)("span",{className:"text-sm font-medium",children:["No ",G," threads"]})}),N.map(a=>{let c,e=a.participantId?J[a.participantId]:null,y=P.get(a.id),B=x===a.id,D=y?.allReplies.find(a=>a.content.startsWith(ac)),G=D?D.content.slice(ac.length).trim():null,I=a.threadStatus??"active",K=ab.has(I),M=aa.find(a=>a.value===I)??aa[0],N=Object.values(d).some(b=>b.rootMessageId===a.id);if(K){let c;return(0,b.jsx)("div",{ref:b=>Q(a.id,b),"data-message-id":a.id,className:`max-w-2xl mx-auto bg-[var(--app-shell-subtle)] rounded-xl border border-[var(--app-shell-border)] mb-3 group transition-all hover:border-[var(--app-shell-border-strong)] relative cursor-pointer ${E===a.id?"z-50":""}`,onClick:()=>f?.(a.id),children:(0,b.jsxs)("div",{className:"px-4 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(U.Hash,{className:"w-3.5 h-3.5 text-[var(--app-shell-muted)] shrink-0"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--app-shell-muted)] truncate flex-1",children:(0,l.stripMarkers)(a.content.split("\n")[0])}),C?.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium shrink-0",title:"Ship Mode active",children:[(0,b.jsx)(_,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),N&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium shrink-0",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]}),a.outcomeNote&&(0,b.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)] truncate max-w-[200px]",children:a.outcomeNote}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)] shrink-0",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a.timestamp)}),A&&(c=E===a.id,(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),F(c?null:a.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-elevated)]",style:{borderColor:M.color+"40",color:M.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:M.color}}),M.label]}),c&&(0,b.jsx)("div",{className:"absolute top-full right-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:a=>a.stopPropagation(),children:aa.map(c=>(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${c.value===I?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:b=>{b.stopPropagation(),A(a.id,c.value),F(null)},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:c.color}}),c.label]},c.value))})]})),y&&y.replyCount>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] shrink-0",children:[y.replyCount," replies"]})]}),(G||w?.[a.id])&&(0,b.jsxs)("div",{className:"mt-1.5 pl-6 flex flex-col gap-1",children:[G&&(0,b.jsx)("div",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed prose prose-sm prose-neutralmax-w-none",children:(0,b.jsx)(j.Markdown,{content:G,isUser:!1})}),w?.[a.id]&&w[a.id].tasks.length>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] flex items-center gap-1",children:[(0,b.jsx)(Y,{className:"w-3 h-3"}),w[a.id].tasks.length," ",1===w[a.id].tasks.length?"task":"tasks"]})]})]})},a.id)}return(0,b.jsxs)("div",{className:`max-w-2xl mx-auto bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-sm mb-6 group transition-all hover:border-[var(--card-hover-border)] relative ${E===a.id?"z-50":""}`,children:[(g||h||m)&&(0,b.jsxs)("div",{className:"absolute top-4 right-4 z-10 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[h&&(0,b.jsx)("button",{type:"button",onClick:()=>h(a.id),className:"p-1.5 text-[var(--app-shell-muted)] hover:bg-[var(--primary-muted)] hover:text-[var(--primary)] rounded-md transition-colors",title:"Mention in chat",children:(0,b.jsx)($,{className:"w-3.5 h-3.5"})}),(0,b.jsx)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText(a.id)},className:"p-1.5 text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] rounded-md transition-colors",title:"Copy message ID",children:(0,b.jsx)(Z,{className:"w-3.5 h-3.5"})}),g&&(0,b.jsx)("button",{type:"button",onClick:()=>g(a.id),className:"p-1.5 text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] rounded-md transition-colors",title:"Copy thread as markdown",children:(0,b.jsx)(z.Copy,{className:"w-3.5 h-3.5"})}),m&&(0,b.jsx)("button",{type:"button",onClick:()=>m(a.id),disabled:B,className:"p-1.5 text-[var(--app-shell-muted)] hover:bg-[var(--destructive-muted)] hover:text-[var(--destructive)] rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Delete this thread",children:B?(0,b.jsx)(H,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)(V.Trash2,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"p-5",children:(0,b.jsxs)("div",{ref:b=>Q(a.id,b),"data-message-id":a.id,className:"flex flex-col",children:[(0,b.jsxs)("div",{className:"flex gap-3 mb-4",children:["user"!==a.role&&(0,b.jsx)(i.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"w-10 h-10 rounded-full bg-[var(--app-shell-subtle)] overflow-hidden border border-[var(--app-shell-border)] shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-[var(--ring)] transition-shadow",children:e?(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(e.id,40,e.color),alt:e.name,className:"w-full h-full object-cover"}):(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(a.participantId||"assistant",40),alt:a.participantId||"Assistant",className:"w-full h-full object-cover"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 pt-0.5",children:["user"!==a.role&&(0,b.jsx)("div",{className:"flex items-center gap-2 mb-0.5",children:(0,b.jsx)(i.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",children:e?.name||a.participantId||"Assistant"})}),(0,b.jsxs)("div",{className:"cursor-pointer group/msg-title mb-1",onClick:()=>f?.(a.id),children:[(0,b.jsx)("h3",{className:"text-lg font-bold text-[var(--foreground)] leading-tight group-hover/msg-title:text-[var(--primary)] transition-colors line-clamp-1",children:(0,l.stripMarkers)(a.content.split("\n")[0])}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)]",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(a.timestamp)}),A&&(c=E===a.id,(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),F(c?null:a.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-subtle)]",style:{borderColor:M.color+"40",color:M.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:M.color}}),M.label]}),c&&(0,b.jsx)("div",{className:"absolute top-full left-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:a=>a.stopPropagation(),children:aa.map(c=>(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${c.value===I?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:b=>{b.stopPropagation(),A(a.id,c.value),F(null)},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:c.color}}),c.label]},c.value))})]})),C?.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium",title:"Ship Mode active",children:[(0,b.jsx)(_,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),N&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]})]}),(a.content.length>80||a.content.includes("\n"))&&(0,b.jsx)("div",{className:"mt-2 text-[15px] text-[var(--muted-foreground)] leading-relaxed line-clamp-3",children:(0,b.jsx)(j.Markdown,{content:(0,l.stripMarkers)(a.content.split("\n").slice(1).join("\n").trimStart()),isUser:"user"===a.role})})]})]})]}),a.attachments&&a.attachments.length>0&&(0,b.jsx)("div",{className:`mb-4 ${"user"!==a.role?"ml-[52px]":""}`,children:(0,b.jsx)(r,{attachments:a.attachments,compact:!0})}),G&&(0,b.jsx)("div",{className:"mb-4 text-sm text-[var(--muted-foreground)] leading-relaxed",children:(0,b.jsx)(j.Markdown,{content:G,isUser:!1})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mt-2",children:[o&&y&&y.replyCount>0&&(0,b.jsxs)("button",{type:"button",onClick:()=>o(a.id),disabled:t?.has(a.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--card-bg)] border border-[var(--card-border)] rounded-full text-xs font-bold text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors shadow-sm disabled:opacity-50",children:[t?.has(a.id)?(0,b.jsx)(H,{className:"w-3.5 h-3.5 animate-spin text-[var(--app-shell-muted)]"}):(0,b.jsx)(X.Clock,{className:"w-3.5 h-3.5 text-[var(--app-shell-muted)]"}),t?.has(a.id)?"Summarizing…":"Summarize"]}),p&&y&&y.replyCount>0&&(0,b.jsxs)("button",{type:"button",onClick:()=>p(a.id),disabled:u?.has(a.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--card-bg)] border border-[var(--card-border)] rounded-full text-xs font-bold text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors shadow-sm disabled:opacity-50",children:[u?.has(a.id)?(0,b.jsx)(H,{className:"w-3.5 h-3.5 animate-spin text-[var(--app-shell-muted)]"}):(0,b.jsx)(Y,{className:"w-3.5 h-3.5 text-[var(--app-shell-muted)]"}),u?.has(a.id)?"Extracting…":w?.[a.id]?"Re-extract tasks":"Create tasks"]}),y&&y.replyCount>0&&f&&(0,b.jsxs)("button",{type:"button",onClick:()=>f(a.id),className:"flex items-center gap-2 px-3 py-1.5 bg-[var(--app-shell-subtle)] border border-[var(--app-shell-border)] rounded-full text-xs font-bold text-[var(--app-shell-muted)] hover:bg-[var(--item-hover-bg)] transition-colors",children:[(0,b.jsx)("div",{className:"flex -space-x-1.5",children:y.participants.slice(0,3).map(a=>{if("user"===a)return(0,b.jsx)("div",{className:"w-4 h-4 rounded-full bg-[var(--app-shell-subtle)] flex items-center justify-center ring-1 ring-[var(--card-bg)]",children:(0,b.jsx)(W.User,{className:"w-2.5 h-2.5 text-[var(--app-shell-muted)]"})},"user");let c=J[a];return c?(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(a,16,c.color),alt:c.name,className:"w-4 h-4 rounded-full ring-1 ring-[var(--card-bg)]"},a):(0,b.jsx)("div",{className:"w-4 h-4 rounded-full bg-[var(--app-shell-subtle)] ring-1 ring-[var(--card-bg)]"},a)})}),(0,b.jsxs)("span",{children:[y.replyCount," replies"]})]})]}),w?.[a.id]&&(w[a.id].builtTaskIds&&Object.keys(w[a.id].builtTaskIds).length>0?(0,b.jsx)(S,{draft:w[a.id],onPush:(b,c,d)=>s?.(a.id,b,c,d),pushing:v?.has(w[a.id].draftId)}):(0,b.jsx)(L,{draft:w[a.id],onUpdate:b=>q?.(a.id,b),onBuild:(b,c,d)=>s?.(a.id,b,c,d),building:v?.has(w[a.id].draftId)})),u?.has(a.id)&&(0,b.jsxs)("div",{className:"mt-4 flex items-center gap-2 text-xs text-[var(--app-shell-muted)]",children:[(0,b.jsx)(H,{className:"w-3.5 h-3.5 animate-spin"}),(0,b.jsx)("span",{children:"Extracting tasks…"})]})]})}),Object.entries(d).filter(([,b])=>b.rootMessageId===a.id).map(([a,c])=>{let d=J[a];return(0,b.jsx)("div",{className:"px-6 pb-4",children:(0,b.jsx)(n,{participantId:a,participantName:d?.name||a,participantColor:d?.color||"#888",content:c.content})},`streaming-${a}`)})]})]},a.id)})]})})}let ae=(0,o.default)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);var af=a.i(8406);let ag={ack:{symbol:"👍",label:"Acknowledged"},working:{symbol:"🔄",label:"Working"},done:{symbol:"✅",label:"Done"},clarify:{symbol:"❓",label:"Needs clarification"},blocked:{symbol:"⛔",label:"Blocked"}};function ah({type:a,count:c,participantIds:d}){let e=ag[a],f=d.join(", "),g=f?`${e.label}: ${f}`:e.label;return(0,b.jsxs)("span",{title:g,className:"inline-flex items-center gap-1 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-2 py-0.5 text-xs text-[var(--foreground)]",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:e.symbol}),(0,b.jsx)("span",{className:"tabular-nums",children:c})]})}function ai({reactions:a}){if(!a||0===a.length)return null;let c=[...a].sort((a,b)=>b.count!==a.count?b.count-a.count:a.type.localeCompare(b.type));return(0,b.jsx)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:c.map(a=>(0,b.jsx)(ah,{type:a.type,count:a.count,participantIds:a.participantIds},a.type))})}function aj({messages:a,streaming:d,participants:e,rootMessageId:f,onClose:g,onCopyThread:h,onAddToChat:m,onDeleteThreadRoot:n,highlightedMessageId:o,renderReplyComposer:p,activeProcesses:q=[]}){let s=(0,c.useRef)(null),t=(0,c.useRef)(new Map),u=Object.fromEntries(e.map(a=>[a.id,a])),v=(0,c.useMemo)(()=>{let b=a.find(a=>a.id===f),c=a.filter(a=>a.rootMessageId===f).sort((a,b)=>a.timestamp-b.timestamp);return b?[b,...c]:c},[a,f]),w=(0,c.useRef)(null),x=(0,c.useRef)(!1),y=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=w.current;if(!a)return;let b=()=>{let{scrollTop:b,scrollHeight:c,clientHeight:d}=a;x.current=c-b-d>80};return a.addEventListener("scroll",b,{passive:!0}),()=>a.removeEventListener("scroll",b)},[]),(0,c.useEffect)(()=>{if(o&&o!==y.current){y.current=o;let a=t.current.get(o);a&&a.scrollIntoView({behavior:"smooth",block:"center"})}else o||x.current||(y.current=null,s.current?.scrollIntoView({behavior:"smooth"}))},[o,v,d]),(0,b.jsxs)("div",{className:"flex flex-col h-full overflow-hidden bg-[var(--app-shell-bg)] transition-colors",children:[q.length>0&&(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] backdrop-blur-md transition-colors",children:[(0,b.jsxs)("div",{className:"inline-flex items-center gap-2 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsx)(af.Sparkles,{className:"h-3.5 w-3.5 text-indigo-500",strokeWidth:1.75}),(0,b.jsx)("span",{className:"uppercase tracking-[0.16em]",children:"Working"})]}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:q.map(a=>{let c=u[a.agentId];return(0,b.jsxs)("div",{className:"relative",title:`${c?.name||a.agentId} — ${a.state}`,children:[(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(a.agentId,24,c?.color),alt:c?.name||a.agentId,className:"w-6 h-6 rounded-full border-2 border-[var(--app-shell-surface)] shadow-sm"}),(0,b.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 bg-green-400 rounded-full border-2 border-[var(--app-shell-surface)] animate-pulse"})]},a.agentId)})})]}),(0,b.jsx)("div",{ref:w,className:"flex-1 overflow-y-auto p-4 md:p-8 space-y-6 chat-scrollbar",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto space-y-8 pb-4",children:[v.map(a=>{let c,d="user"===a.role,e=a.participantId?u[a.participantId]:null;return(0,b.jsxs)("div",{ref:b=>{var c;return c=a.id,void(b?t.current.set(c,b):t.current.delete(c))},"data-message-id":a.id,className:"group relative flex gap-4 ",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-1",children:d?(0,b.jsx)("div",{className:"w-9 h-9 bg-[var(--app-shell-subtle)] rounded-full flex items-center justify-center text-[var(--app-shell-muted)] shadow-sm",children:(0,b.jsx)(W.User,{className:"w-5 h-5"})}):(0,b.jsx)(i.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,b.jsx)("img",{src:e?(0,k.agentAvatarUrl)(e.id,36,e.color):(0,k.agentAvatarUrl)(a.participantId||"assistant",36),alt:e?.name||a.participantId||"Assistant",className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,b.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[d?(0,b.jsx)("span",{className:"font-bold text-sm text-[var(--foreground)]",children:"You"}):(0,b.jsx)(i.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:e?.color?{color:e.color}:void 0,children:e?.name||a.participantId||"Assistant"}),void 0===a.rootMessageId&&a.id===f&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] rounded font-mono uppercase",children:"ROOT"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:(c=a.timestamp,new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(c))})]}),(0,b.jsxs)("div",{className:`rounded-2xl p-4 text-[15px] leading-relaxed transition-all shadow-sm border ${d?"bg-[var(--app-shell-subtle)] text-[var(--foreground)] border-[var(--app-shell-border)]":"bg-[var(--app-shell-surface)] text-[var(--foreground)] border-[var(--app-shell-border)] hover:shadow-md hover:border-[var(--app-shell-border-strong)]"} ${a.id===o?"ring-2 ring-[var(--ring)]":""}`,children:[(0,b.jsx)(j.Markdown,{content:(0,l.stripMarkers)(a.content),isUser:d}),a.attachments&&a.attachments.length>0&&(0,b.jsx)(r,{attachments:a.attachments}),a.reactions&&a.reactions.length>0&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(ai,{reactions:a.reactions})})]}),(0,b.jsxs)("div",{className:"absolute top-4 right-4 opacity-0 group-hover:opacity-100 transition-opacity flex items-center gap-1 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-xl shadow-sm p-1 z-10 backdrop-blur-sm",children:[a.id===f&&(0,b.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(a.id)},className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded transition-colors",title:"Copy message ID",children:(0,b.jsx)(Z,{size:14})}),a.id===f&&h&&(0,b.jsx)("button",{onClick:()=>h(a.id),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded transition-colors",title:"Copy Thread",children:(0,b.jsx)(ae,{size:14})}),(0,b.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(a.content)},className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded transition-colors",title:"Copy as Markdown",children:(0,b.jsx)(z.Copy,{size:14})}),a.id===f&&n&&(0,b.jsx)("button",{onClick:()=>n(a.id),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--destructive)] hover:bg-[var(--destructive-muted)] rounded transition-colors",title:"Delete Thread",children:(0,b.jsx)(V.Trash2,{size:14})})]})]})]},a.id)}),Object.entries(d).filter(([,a])=>a.rootMessageId===f).map(([a,c])=>{let d=u[a],e=c.content.trim().length>0;return(0,b.jsxs)("div",{className:"flex gap-4 group relative",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,b.jsx)(i.default,{href:`/agents/${d?.id||a}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,b.jsx)("img",{src:d?(0,k.agentAvatarUrl)(d.id,36,d.color):(0,k.agentAvatarUrl)(a,36),alt:d?.name||a,className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,b.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(i.default,{href:`/agents/${d?.id||a}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:d?.color?{color:d.color}:void 0,children:d?.name||a}),!e&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]}),e&&(0,b.jsx)("div",{className:"rounded-2xl p-4 text-[15px] leading-relaxed shadow-sm border bg-[var(--app-shell-surface)] text-[var(--foreground)] border-[var(--app-shell-border)]",children:(0,b.jsx)(j.Markdown,{content:(0,l.stripMarkers)(c.content),isUser:!1})})]})]},`streaming-${a}`)}),(0,b.jsx)("div",{ref:s,className:"h-4"})]})}),(0,b.jsx)("div",{className:"z-20",children:p(f)})]})}var ak=a.i(82434);let al=(0,o.default)("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);function am({query:a,results:c,total:d,participants:e,threadTitleById:f,isLoading:g,error:h,onSelectResult:j,headerSlot:l}){let m=Object.fromEntries(e.map(a=>[a.id,a]));return(0,b.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[l?(0,b.jsx)("div",{className:"sticky top-0 z-20 bg-[var(--app-shell-subtle)]/70 backdrop-blur-md pt-4 pb-6 px-4 -mx-4 border-b border-transparent transition-colors",children:(0,b.jsx)("div",{className:"max-w-2xl mx-auto",children:l})}):null,(0,b.jsxs)("div",{className:"mb-4 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Search results"}),(0,b.jsx)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:g?"Searching…":`${d} result${1===d?"":"s"} for "${a}"`}),h?(0,b.jsx)("div",{className:"mt-2 text-sm text-rose-600",children:h}):null]}),g||h||0!==c.length?null:(0,b.jsxs)("div",{className:"mt-20 flex flex-col items-center justify-center space-y-2 text-[var(--app-shell-muted)]",children:[(0,b.jsx)(al,{className:"h-6 w-6",strokeWidth:1.5}),(0,b.jsx)("p",{className:"text-sm font-medium",children:"No matching messages"})]}),(0,b.jsx)("div",{className:"space-y-3 pb-6",children:c.map(a=>{var c;let d=a.participantId?m[a.participantId]:null,e=f[a.threadId]||"Untitled thread",g="user"===a.role?"You":d?.name||a.participantId||"Assistant";return(0,b.jsxs)("button",{type:"button",onClick:()=>j(a),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] p-4 text-left transition hover:border-[var(--border)] hover:shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("div",{className:"flex h-8 w-8 items-center justify-center overflow-hidden rounded-full bg-[var(--muted)]",children:"user"===a.role?(0,b.jsx)(W.User,{className:"h-4 w-4 text-[var(--foreground)]"}):d?(0,b.jsx)(i.default,{href:`/agents/${d.id}`,onClick:a=>a.stopPropagation(),className:"h-full w-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(d.id,32,d.color),alt:"",className:"h-full w-full object-cover"})}):(0,b.jsx)(ak.Bot,{className:"h-4 w-4 text-[var(--foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0",children:["user"!==a.role&&d?(0,b.jsx)(i.default,{href:`/agents/${d.id}`,onClick:a=>a.stopPropagation(),className:"truncate text-sm font-semibold text-[var(--foreground)] hover:underline block",children:g}):(0,b.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:g}),(0,b.jsx)("p",{className:"truncate text-xs text-[var(--muted-foreground)]",children:e})]})]}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:(c=a.timestamp,new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(c))})]}),(0,b.jsx)("p",{className:"text-sm leading-relaxed text-[var(--foreground)]",children:function(a){let c=a.split(/(<\/?mark>)/g),d=!1,e=[];for(let[a,f]of c.entries()){if("<mark>"===f){d=!0;continue}if("</mark>"===f){d=!1;continue}f&&e.push(d?(0,b.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5",children:f},`${a}-mark`):(0,b.jsx)("span",{children:f},`${a}-text`))}return e}(a.snippet)})]},`${a.threadId}-${a.messageId}`)})})]})})}var an=a.i(13872),ao=a.i(28977),ap=a.i(9345);let aq=/^[A-Za-z0-9_\-:]*$/,ar={id:"all",name:"All",provider:"claude",model:null,color:"#6B7280"};function as(a,b,c){return c?a.startsWith(c)?3:b.startsWith(c)?2:a.includes(c)?1:null:0}let at=/^[a-zA-Z0-9_-]*$/,au=new Set(["image/jpeg","image/png","image/gif","image/webp","image/svg+xml","application/pdf","text/plain","text/csv","text/markdown","application/json","application/zip","application/gzip","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation"]),av=new Set([".exe",".bat",".cmd",".com",".msi",".scr",".pif",".vbs",".vbe",".js",".jse",".ws",".wsf",".wsc",".wsh",".ps1",".ps2",".psc1",".psc2",".reg",".inf",".lnk",".dll",".sys",".drv"]),aw=[{path:`${process.env.HOME??"~"}/Code`,relativePath:"~/Code",type:"folder"},{path:`${process.env.HOME??"~"}/Projects`,relativePath:"~/Projects",type:"folder"},{path:`${process.env.HOME??"~"}/Desktop`,relativePath:"~/Desktop",type:"folder"},{path:`${process.env.HOME??"~"}/Documents`,relativePath:"~/Documents",type:"folder"},{path:`${process.env.HOME??"~"}/Downloads`,relativePath:"~/Downloads",type:"folder"}];function ax(a,b){let c=function(a,b){let c=a.trim().replace(/\/+$/,"");if("~"===c)return"~";if(c.startsWith("~/")||c.startsWith("/"))return c;let d=c.replace(/^\/+/,"");return"@~"===b?`~/${d}`:`/${d}`}(a,b.trigger);if(c.startsWith("~/")||c.startsWith("/")){let d=a.trim().startsWith("~/")||a.trim().startsWith("/")||"~"===a.trim()?null:function(a){if(!a.query.endsWith("/"))return null;let b=a.query.replace(/^\/+/,"").replace(/\/+$/,"");return"@~"===a.trigger?b?`~/${b}`:"~":b?`/${b}`:"/"}(b);if(d){let a=c.replace(/^~\/|^\//,"");return"~"===d?`~/${a}`:"/"===d?`/${a}`:`${d}/${a}`}}return c}async function ay(a){let b;if(0===a.length)return[];let c=a.map(a=>a.path);try{let d=await fetch("/api/file-read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:c})});if(!d.ok){let b=(await d.json().catch(()=>({}))).error??`HTTP ${d.status}`;return a.map(a=>({type:"file",path:a.path,label:a.label,content:null,error:b}))}b=(await d.json()).results}catch(c){let b=c instanceof Error?c.message:"Failed to fetch file contents";return a.map(a=>({type:"file",path:a.path,label:a.label,content:null,error:b}))}let d=new Map(b.map(a=>[a.path,a]));return a.map(a=>{let b=d.get(a.path);return{type:"file",path:a.path,label:a.label,content:b?.content??null,error:b?.error}})}async function az(a){let b=await ay(a),c=0===b.length?"":b.map(a=>a.error||null===a.content?`<file path="${a.path}" error="${a.error??"unreadable"}" />`:`<file path="${a.path}">
|
|
3
|
+
${a.description.replace(/\n/g,"\n ")}`:""}`).join("\n");navigator.clipboard.writeText(b).then(()=>{i(!0),setTimeout(()=>i(!1),1500)})},[a.tasks]),{tasks:k,error:l}=function({projectId:a,enabled:b,interval:d=3e4}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(null),i=(0,c.useRef)(0),j=(0,c.useRef)([]),k=(0,c.useCallback)(async()=>{if(a&&"undefined"!==a)try{let b=process.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741",c=await fetch(`${b}/api/tasks?project=${a}`);if(!c.ok)throw Error(`Poll failed: ${c.status}`);let d=await c.json(),e=d.tasks??d;j.current=e,f(e),h(null)}catch(a){h(a instanceof Error?a.message:"Poll failed")}},[a]);return(0,c.useEffect)(()=>{if(!b||!a)return;i.current=Date.now(),k();let c=setInterval(()=>{Date.now()-i.current>18e5||j.current.length>0&&j.current.every(a=>M.has(a.status))?clearInterval(c):k()},d);return()=>clearInterval(c)},[b,a,d,k]),{tasks:e,error:g,refetch:k}}({projectId:a.projectId??null,enabled:!!a.projectId&&"done"===a.buildStatus}),m=new Map;if(a.builtTaskIds)for(let[b,c]of Object.entries(a.builtTaskIds)){let a=k.find(a=>a.id===c);a&&m.set(b,a)}let n=a.tasks.filter(a=>{let b=m.get(a.id);return b&&("completed"===b.status||"done"===b.status)}).length,o=a.tasks.length>0?n/a.tasks.length:0,p=(0,c.useCallback)(()=>{a.projectId&&a.projectName?d?.(a,a.projectId,a.projectName):g(!0)},[a,d]),q=(0,c.useCallback)((b,c)=>{g(!1),d?.(a,b,c)},[a,d]);a.tasks.some(b=>!a.builtTaskIds?.[b.id]);let r=a.tasks.some(a=>{let b=m.get(a.id);return b&&"queued"!==b.status&&"pending"!==b.status});return(0,b.jsxs)("div",{className:"mt-6 p-4 bg-[var(--app-shell-subtle)]/80 rounded-2xl border border-[var(--border)] shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(s.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,b.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Tasks"}),a.projectName&&(0,b.jsxs)("span",{className:"text-[10px] font-semibold text-[var(--muted-foreground)]",children:["· ",a.projectName]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:[n,"/",a.tasks.length," Complete"]}),a.tasks.length>0&&(0,b.jsx)("button",{type:"button",onClick:j,className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] transition-colors",title:"Copy as markdown",children:h?(0,b.jsx)(A.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,b.jsx)(z.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,b.jsx)("div",{className:"space-y-3 mb-4",children:a.tasks.map(a=>{let c=m.get(a.id),d=c?.status||"queued",e=R[d]||R.queued;return(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[e,(0,b.jsx)("span",{className:"text-xs font-semibold text-[var(--muted-foreground)]",children:a.title})]},a.id)})}),(0,b.jsx)("div",{className:"h-1.5 w-full bg-[var(--muted)] rounded-full overflow-hidden",children:(0,b.jsx)("div",{className:"h-full bg-emerald-500 rounded-full shadow-[0_0_8px_rgba(16,185,129,0.4)] transition-all duration-500",style:{width:`${Math.round(100*o)}%`}})}),d&&!r&&(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-3",children:["partial_failure"===a.buildStatus&&(0,b.jsx)("span",{className:"text-[11px] text-amber-600 font-semibold",children:"Some tasks failed to push."}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)("button",{type:"button",onClick:p,disabled:e,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,b.jsx)(y,{className:"w-3 h-3"}),e?"Pushing…":"Push to agx"]})]}),l&&(0,b.jsxs)("div",{className:"mt-2 text-[11px] text-amber-600 font-medium",children:["Status polling error: ",l]}),f&&(0,b.jsx)(K,{onSelect:q,onClose:()=>g(!1)})]})}let T=(0,c.forwardRef)(({children:a,className:c="",...d},e)=>{let f=`absolute top-4 right-4 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity duration-200 bg-white border border-gray-200 shadow-md dark:shadow-lg dark:bg-gray-900 dark:border-gray-800 rounded-lg p-1 ${c}`.trim();return(0,b.jsx)("div",{ref:e,className:f,...d,children:a})});T.displayName="ActionToolbar";let U=()=>(0,b.jsx)("div",{className:"w-px h-4 bg-gray-200 dark:bg-gray-800 mx-1"}),V=(0,c.forwardRef)(({className:a="",variant:c="neutral",size:d="md",children:e,...f},g)=>{let h=`inline-flex items-center justify-center rounded-md transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:pointer-events-none ${({sm:"p-1 w-6 h-6",md:"p-1.5 w-8 h-8",lg:"p-2 w-10 h-10"})[d]} ${({neutral:"text-gray-500 hover:text-gray-900 hover:bg-gray-100 dark:text-gray-400 dark:hover:text-white dark:hover:bg-gray-800",ghost:"text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]",primary:"text-[var(--primary)] hover:text-[var(--primary-foreground)] hover:bg-[var(--primary-hover)]",destructive:"text-gray-500 hover:text-red-600 hover:bg-red-50 dark:text-gray-400 dark:hover:text-red-400 dark:hover:bg-red-400/10"})[c]} ${a}`.trim();return(0,b.jsx)("button",{ref:g,className:h,...f,children:e})});V.displayName="IconButton";var W=a.i(63588),X=a.i(2835),Y=a.i(81560),Z=a.i(46842),$=a.i(41710);let _=(0,o.default)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]),aa=(0,o.default)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),ab=(0,o.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),ac=(0,o.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]),ad=[{value:"active",label:"Active",color:"#f59e0b"},{value:"paused",label:"Paused",color:"#f97316"},{value:"in-review",label:"In Review",color:"#6b7280"},{value:"done",label:"Done",color:"#3b82f6"},{value:"archived",label:"Archived",color:"#9ca3af"}],ae=new Set(["done","in-review","archived"]),af="<!-- thread-summary -->";function ag({messages:a,streaming:d,participants:e,onOpenThread:f,onCopyThread:g,onAddToChat:h,onDeleteThreadRoot:m,onSummarize:o,onCreateTasks:p,onUpdateTaskDraft:q,onBuildTasks:s,summarizingThreads:t,extractingTasks:u,buildingDrafts:v,taskDrafts:w,deletingThreadRootId:x,highlightedMessageId:y,onUpdateMessageThreadStatus:A,onUpdateMessageOutcomeNote:B,shipModeThreads:C}){let D=(0,c.useRef)(new Map),[E,F]=(0,c.useState)(null),[G,I]=(0,c.useState)("active"),J=Object.fromEntries(e.map(a=>[a.id,a])),K=(0,c.useMemo)(()=>[...a.filter(a=>!a.rootMessageId)].reverse(),[a]),M={active:new Set(["active"]),paused:new Set(["paused"]),"in-review":new Set(["in-review"]),done:new Set(["done"]),archived:new Set(["archived"])},N=(0,c.useMemo)(()=>K.filter(a=>M[G].has(a.threadStatus??"active")),[K,G]),O=(0,c.useMemo)(()=>({active:K.filter(a=>M.active.has(a.threadStatus??"active")).length,paused:K.filter(a=>M.paused.has(a.threadStatus??"active")).length,"in-review":K.filter(a=>M["in-review"].has(a.threadStatus??"active")).length,done:K.filter(a=>M.done.has(a.threadStatus??"active")).length,archived:K.filter(a=>M.archived.has(a.threadStatus??"active")).length}),[K]),P=(0,c.useMemo)(()=>(function(a){let b=new Map;for(let c of a){let a=c.rootMessageId;if(!a)continue;let d=b.get(a);d||(d={rootMessageId:a,replyCount:0,participants:[],lastActivityAt:0,allReplies:[]},b.set(a,d)),d.replyCount++,d.lastActivityAt=Math.max(d.lastActivityAt,c.timestamp),d.lastReply=c,d.allReplies.push(c),c.participantId&&!d.participants.includes(c.participantId)?d.participants.push(c.participantId):c.participantId||d.participants.includes("user")||d.participants.push("user")}for(let a of b.values())a.allReplies.sort((a,b)=>a.timestamp-b.timestamp);return b})(a),[a]),Q=(0,c.useCallback)((a,b)=>{b?D.current.set(a,b):D.current.delete(a)},[]),R=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!y){R.current=null;return}if(y===R.current)return;R.current=y;let a=D.current.get(y);a&&a.scrollIntoView({behavior:"smooth",block:"center"})},[y,a]),(0,b.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[K.length>0&&(0,b.jsx)("div",{className:"flex items-center justify-center gap-1 p-1 rounded-lg w-fit mx-auto border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] mb-4",children:[{key:"active",label:"Active"},{key:"paused",label:"Paused"},{key:"in-review",label:"In Review"},{key:"done",label:"Done"},{key:"archived",label:"Archived"}].map(a=>{let c=O[a.key],d=G===a.key;return(0,b.jsxs)("button",{type:"button",onClick:()=>I(a.key),className:`px-3 py-1.5 text-xs font-bold rounded-md transition-all ${d?"bg-[var(--app-shell-surface)] text-[var(--foreground)] shadow-sm":"text-[var(--app-shell-muted)] hover:text-[var(--foreground)]"}`,children:[a.label,c>0&&(0,b.jsx)("span",{className:`ml-1.5 text-[10px] ${d?"opacity-60":"opacity-50"}`,children:c})]},a.key)})}),0===K.length&&0===Object.keys(d).length&&(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-32 space-y-3",children:[(0,b.jsx)(W.MessageSquare,{className:"h-6 w-6",strokeWidth:1.5}),(0,b.jsx)("span",{className:"text-sm font-medium tracking-wide",children:"Start a thread"})]}),K.length>0&&0===N.length&&(0,b.jsx)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-16 space-y-2",children:(0,b.jsxs)("span",{className:"text-sm font-medium",children:["No ",G," threads"]})}),N.map(a=>{let c,e=a.participantId?J[a.participantId]:null,y=P.get(a.id),B=x===a.id,D=y?.allReplies.find(a=>a.content.startsWith(af)),G=D?D.content.slice(af.length).trim():null,I=a.threadStatus??"active",K=ae.has(I),M=ad.find(a=>a.value===I)??ad[0],N=Object.values(d).some(b=>b.rootMessageId===a.id);if(K){let c;return(0,b.jsx)("div",{ref:b=>Q(a.id,b),"data-message-id":a.id,className:`max-w-2xl mx-auto bg-[var(--app-shell-subtle)] rounded-xl border border-[var(--app-shell-border)] mb-3 group transition-all hover:border-[var(--app-shell-border-strong)] relative cursor-pointer ${E===a.id?"z-50":""}`,onClick:()=>f?.(a.id),children:(0,b.jsxs)("div",{className:"px-4 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(X.Hash,{className:"w-3.5 h-3.5 text-[var(--app-shell-muted)] shrink-0"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--app-shell-muted)] truncate flex-1",children:(0,l.stripMarkers)(a.content.split("\n")[0])}),C?.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium shrink-0",title:"Ship Mode active",children:[(0,b.jsx)(ac,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),N&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium shrink-0",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]}),a.outcomeNote&&(0,b.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)] truncate max-w-[200px]",children:a.outcomeNote}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)] shrink-0",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a.timestamp)}),A&&(c=E===a.id,(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),F(c?null:a.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-elevated)]",style:{borderColor:M.color+"40",color:M.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:M.color}}),M.label]}),c&&(0,b.jsx)("div",{className:"absolute top-full right-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:a=>a.stopPropagation(),children:ad.map(c=>(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${c.value===I?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:b=>{b.stopPropagation(),A(a.id,c.value),F(null)},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:c.color}}),c.label]},c.value))})]})),y&&y.replyCount>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] shrink-0",children:[y.replyCount," replies"]})]}),(G||w?.[a.id])&&(0,b.jsxs)("div",{className:"mt-1.5 pl-6 flex flex-col gap-1",children:[G&&(0,b.jsx)("div",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed prose prose-sm prose-neutralmax-w-none",children:(0,b.jsx)(j.Markdown,{content:G,isUser:!1})}),w?.[a.id]&&w[a.id].tasks.length>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] flex items-center gap-1",children:[(0,b.jsx)(_,{className:"w-3 h-3"}),w[a.id].tasks.length," ",1===w[a.id].tasks.length?"task":"tasks"]})]})]})},a.id)}return(0,b.jsxs)("div",{className:`max-w-2xl mx-auto surface-card mb-6 group relative ${E===a.id?"z-50":""}`,children:[(g||h||m)&&(0,b.jsxs)(T,{className:"z-10",children:[h&&(0,b.jsx)(V,{type:"button",variant:"primary",size:"sm",onClick:()=>h(a.id),title:"Mention in chat",children:(0,b.jsx)(ab,{className:"w-3.5 h-3.5"})}),(0,b.jsx)(V,{type:"button",variant:"neutral",size:"sm",onClick:()=>{navigator.clipboard.writeText(a.id)},title:"Copy message ID",children:(0,b.jsx)(aa,{className:"w-3.5 h-3.5"})}),g&&(0,b.jsx)(V,{type:"button",variant:"neutral",size:"sm",onClick:()=>g(a.id),title:"Copy thread as markdown",children:(0,b.jsx)(z.Copy,{className:"w-3.5 h-3.5"})}),m&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(U,{}),(0,b.jsx)(V,{type:"button",variant:"destructive",size:"sm",onClick:()=>m(a.id),disabled:B,title:"Delete this thread",children:B?(0,b.jsx)(H,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)(Y.Trash2,{className:"w-3.5 h-3.5"})})]})]}),(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"p-5",children:(0,b.jsxs)("div",{ref:b=>Q(a.id,b),"data-message-id":a.id,className:"flex flex-col",children:[(0,b.jsxs)("div",{className:"flex gap-3 mb-4",children:["user"!==a.role&&(0,b.jsx)(i.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"w-10 h-10 rounded-full bg-[var(--app-shell-subtle)] overflow-hidden border border-[var(--app-shell-border)] shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-[var(--ring)] transition-shadow",children:e?(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(e.id,40,e.color),alt:e.name,className:"w-full h-full object-cover"}):(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(a.participantId||"assistant",40),alt:a.participantId||"Assistant",className:"w-full h-full object-cover"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 pt-0.5",children:["user"!==a.role&&(0,b.jsx)("div",{className:"flex items-center gap-2 mb-0.5",children:(0,b.jsx)(i.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",children:e?.name||a.participantId||"Assistant"})}),(0,b.jsxs)("div",{className:"cursor-pointer group/msg-title mb-1",onClick:()=>f?.(a.id),children:[(0,b.jsx)("h3",{className:"text-lg font-bold text-[var(--foreground)] leading-tight group-hover/msg-title:text-[var(--primary)] transition-colors line-clamp-1",children:(0,l.stripMarkers)(a.content.split("\n")[0])}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)]",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(a.timestamp)}),A&&(c=E===a.id,(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),F(c?null:a.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-subtle)]",style:{borderColor:M.color+"40",color:M.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:M.color}}),M.label]}),c&&(0,b.jsx)("div",{className:"absolute top-full left-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:a=>a.stopPropagation(),children:ad.map(c=>(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${c.value===I?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:b=>{b.stopPropagation(),A(a.id,c.value),F(null)},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:c.color}}),c.label]},c.value))})]})),C?.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium",title:"Ship Mode active",children:[(0,b.jsx)(ac,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),N&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]})]}),(a.content.length>80||a.content.includes("\n"))&&(0,b.jsx)("div",{className:"mt-2 text-[15px] text-[var(--muted-foreground)] leading-relaxed line-clamp-3",children:(0,b.jsx)(j.Markdown,{content:(0,l.stripMarkers)(a.content.split("\n").slice(1).join("\n").trimStart()),isUser:"user"===a.role})})]})]})]}),a.attachments&&a.attachments.length>0&&(0,b.jsx)("div",{className:`mb-4 ${"user"!==a.role?"ml-[52px]":""}`,children:(0,b.jsx)(r,{attachments:a.attachments,compact:!0})}),G&&(0,b.jsx)("div",{className:"mb-4 text-sm text-[var(--muted-foreground)] leading-relaxed",children:(0,b.jsx)(j.Markdown,{content:G,isUser:!1})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-2 mt-2 border-t border-[var(--card-border)]",children:[o&&y&&y.replyCount>0&&(0,b.jsxs)("button",{type:"button",onClick:()=>o(a.id),disabled:t?.has(a.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[t?.has(a.id)?(0,b.jsx)(H,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,b.jsx)($.Clock,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),t?.has(a.id)?"Summarizing…":"Summarize"]}),p&&y&&y.replyCount>0&&(0,b.jsxs)("button",{type:"button",onClick:()=>p(a.id),disabled:u?.has(a.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[u?.has(a.id)?(0,b.jsx)(H,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,b.jsx)(_,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),u?.has(a.id)?"Extracting…":w?.[a.id]?"Re-extract tasks":"Create tasks"]}),y&&y.replyCount>0&&f&&(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>f(a.id),children:[(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:[y.replyCount," replies"]}),(0,b.jsx)("div",{className:"flex -space-x-2",children:y.participants.slice(0,3).map(a=>{if("user"===a)return(0,b.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] flex items-center justify-center z-10",children:(0,b.jsx)(Z.User,{className:"w-3 h-3 text-[var(--muted-foreground)]"})},"user");let c=J[a];return c?(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(a,24,c.color),alt:c.name,className:"w-6 h-6 rounded-full border-2 border-[var(--card-bg)] object-cover z-10"},a):(0,b.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] z-10"},a)})})]})]}),w?.[a.id]&&(w[a.id].builtTaskIds&&Object.keys(w[a.id].builtTaskIds).length>0?(0,b.jsx)(S,{draft:w[a.id],onPush:(b,c,d)=>s?.(a.id,b,c,d),pushing:v?.has(w[a.id].draftId)}):(0,b.jsx)(L,{draft:w[a.id],onUpdate:b=>q?.(a.id,b),onBuild:(b,c,d)=>s?.(a.id,b,c,d),building:v?.has(w[a.id].draftId)})),u?.has(a.id)&&(0,b.jsxs)("div",{className:"mt-4 flex items-center gap-2 text-xs text-[var(--app-shell-muted)]",children:[(0,b.jsx)(H,{className:"w-3.5 h-3.5 animate-spin"}),(0,b.jsx)("span",{children:"Extracting tasks…"})]})]})}),Object.entries(d).filter(([,b])=>b.rootMessageId===a.id).map(([a,c])=>{let d=J[a];return(0,b.jsx)("div",{className:"px-6 pb-4",children:(0,b.jsx)(n,{participantId:a,participantName:d?.name||a,participantColor:d?.color||"#888",content:c.content})},`streaming-${a}`)})]})]},a.id)})]})})}let ah=(0,o.default)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);var ai=a.i(8406);let aj={ack:{symbol:"👍",label:"Acknowledged"},working:{symbol:"🔄",label:"Working"},done:{symbol:"✅",label:"Done"},clarify:{symbol:"❓",label:"Needs clarification"},blocked:{symbol:"⛔",label:"Blocked"}};function ak({type:a,count:c,participantIds:d}){let e=aj[a],f=d.join(", "),g=f?`${e.label}: ${f}`:e.label;return(0,b.jsxs)("span",{title:g,className:"inline-flex items-center gap-1 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-2 py-0.5 text-xs text-[var(--foreground)]",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:e.symbol}),(0,b.jsx)("span",{className:"tabular-nums",children:c})]})}function al({reactions:a}){if(!a||0===a.length)return null;let c=[...a].sort((a,b)=>b.count!==a.count?b.count-a.count:a.type.localeCompare(b.type));return(0,b.jsx)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:c.map(a=>(0,b.jsx)(ak,{type:a.type,count:a.count,participantIds:a.participantIds},a.type))})}function am({messages:a,streaming:d,participants:e,rootMessageId:f,onClose:g,onCopyThread:h,onAddToChat:m,onDeleteThreadRoot:n,highlightedMessageId:o,renderReplyComposer:p,activeProcesses:q=[]}){let s=(0,c.useRef)(null),t=(0,c.useRef)(new Map),u=Object.fromEntries(e.map(a=>[a.id,a])),v=(0,c.useMemo)(()=>{let b=a.find(a=>a.id===f),c=a.filter(a=>a.rootMessageId===f).sort((a,b)=>a.timestamp-b.timestamp);return b?[b,...c]:c},[a,f]),w=(0,c.useRef)(null),x=(0,c.useRef)(!1),y=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=w.current;if(!a)return;let b=()=>{let{scrollTop:b,scrollHeight:c,clientHeight:d}=a;x.current=c-b-d>80};return a.addEventListener("scroll",b,{passive:!0}),()=>a.removeEventListener("scroll",b)},[]),(0,c.useEffect)(()=>{if(o&&o!==y.current){y.current=o;let a=t.current.get(o);a&&a.scrollIntoView({behavior:"smooth",block:"center"})}else o||x.current||(y.current=null,s.current?.scrollIntoView({behavior:"smooth"}))},[o,v,d]),(0,b.jsxs)("div",{className:"flex flex-col h-full overflow-hidden bg-[var(--app-shell-bg)] transition-colors",children:[q.length>0&&(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] backdrop-blur-md transition-colors",children:[(0,b.jsxs)("div",{className:"inline-flex items-center gap-2 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsx)(ai.Sparkles,{className:"h-3.5 w-3.5 text-indigo-500",strokeWidth:1.75}),(0,b.jsx)("span",{className:"uppercase tracking-[0.16em]",children:"Working"})]}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:q.map(a=>{let c=u[a.agentId];return(0,b.jsxs)("div",{className:"relative",title:`${c?.name||a.agentId} — ${a.state}`,children:[(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(a.agentId,24,c?.color),alt:c?.name||a.agentId,className:"w-6 h-6 rounded-full border-2 border-[var(--app-shell-surface)] shadow-sm"}),(0,b.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 bg-green-400 rounded-full border-2 border-[var(--app-shell-surface)] animate-pulse"})]},a.agentId)})})]}),(0,b.jsx)("div",{ref:w,className:"flex-1 overflow-y-auto p-4 md:p-8 space-y-6 chat-scrollbar",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto space-y-8 pb-4",children:[v.map(a=>{let c,d="user"===a.role,e=a.participantId?u[a.participantId]:null;return(0,b.jsxs)("div",{ref:b=>{var c;return c=a.id,void(b?t.current.set(c,b):t.current.delete(c))},"data-message-id":a.id,className:"group relative flex gap-4 ",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-1",children:d?(0,b.jsx)("div",{className:"w-9 h-9 bg-[var(--app-shell-subtle)] rounded-full flex items-center justify-center text-[var(--app-shell-muted)] shadow-sm",children:(0,b.jsx)(Z.User,{className:"w-5 h-5"})}):(0,b.jsx)(i.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,b.jsx)("img",{src:e?(0,k.agentAvatarUrl)(e.id,36,e.color):(0,k.agentAvatarUrl)(a.participantId||"assistant",36),alt:e?.name||a.participantId||"Assistant",className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,b.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[d?(0,b.jsx)("span",{className:"font-bold text-sm text-[var(--foreground)]",children:"You"}):(0,b.jsx)(i.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:e?.color?{color:e.color}:void 0,children:e?.name||a.participantId||"Assistant"}),void 0===a.rootMessageId&&a.id===f&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] rounded font-mono uppercase",children:"ROOT"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:(c=a.timestamp,new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(c))})]}),(0,b.jsxs)("div",{className:`rounded-2xl p-4 text-[15px] leading-relaxed transition-all shadow-sm border ${d?"bg-[var(--app-shell-subtle)] text-[var(--foreground)] border-[var(--app-shell-border)]":"bg-[var(--app-shell-surface)] text-[var(--foreground)] border-[var(--app-shell-border)] hover:shadow-md hover:border-[var(--app-shell-border-strong)]"} ${a.id===o?"ring-2 ring-[var(--ring)]":""}`,children:[(0,b.jsx)(j.Markdown,{content:(0,l.stripMarkers)(a.content),isUser:d}),a.attachments&&a.attachments.length>0&&(0,b.jsx)(r,{attachments:a.attachments}),a.reactions&&a.reactions.length>0&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(al,{reactions:a.reactions})})]}),(0,b.jsxs)("div",{className:"absolute top-4 right-4 opacity-0 group-hover:opacity-100 transition-opacity flex items-center gap-1 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-xl shadow-sm p-1 z-10 backdrop-blur-sm",children:[a.id===f&&(0,b.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(a.id)},className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded transition-colors",title:"Copy message ID",children:(0,b.jsx)(aa,{size:14})}),a.id===f&&h&&(0,b.jsx)("button",{onClick:()=>h(a.id),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded transition-colors",title:"Copy Thread",children:(0,b.jsx)(ah,{size:14})}),(0,b.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(a.content)},className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded transition-colors",title:"Copy as Markdown",children:(0,b.jsx)(z.Copy,{size:14})}),a.id===f&&n&&(0,b.jsx)("button",{onClick:()=>n(a.id),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--destructive)] hover:bg-[var(--destructive-muted)] rounded transition-colors",title:"Delete Thread",children:(0,b.jsx)(Y.Trash2,{size:14})})]})]})]},a.id)}),Object.entries(d).filter(([,a])=>a.rootMessageId===f).map(([a,c])=>{let d=u[a],e=c.content.trim().length>0;return(0,b.jsxs)("div",{className:"flex gap-4 group relative",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,b.jsx)(i.default,{href:`/agents/${d?.id||a}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,b.jsx)("img",{src:d?(0,k.agentAvatarUrl)(d.id,36,d.color):(0,k.agentAvatarUrl)(a,36),alt:d?.name||a,className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,b.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(i.default,{href:`/agents/${d?.id||a}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:d?.color?{color:d.color}:void 0,children:d?.name||a}),!e&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]}),e&&(0,b.jsx)("div",{className:"rounded-2xl p-4 text-[15px] leading-relaxed shadow-sm border bg-[var(--app-shell-surface)] text-[var(--foreground)] border-[var(--app-shell-border)]",children:(0,b.jsx)(j.Markdown,{content:(0,l.stripMarkers)(c.content),isUser:!1})})]})]},`streaming-${a}`)}),(0,b.jsx)("div",{ref:s,className:"h-4"})]})}),(0,b.jsx)("div",{className:"z-20",children:p(f)})]})}var an=a.i(82434);let ao=(0,o.default)("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);function ap({query:a,results:c,total:d,participants:e,threadTitleById:f,isLoading:g,error:h,onSelectResult:j,headerSlot:l}){let m=Object.fromEntries(e.map(a=>[a.id,a]));return(0,b.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[l?(0,b.jsx)("div",{className:"sticky top-0 z-20 bg-[var(--app-shell-subtle)]/70 backdrop-blur-md pt-4 pb-6 px-4 -mx-4 border-b border-transparent transition-colors",children:(0,b.jsx)("div",{className:"max-w-2xl mx-auto",children:l})}):null,(0,b.jsxs)("div",{className:"mb-4 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Search results"}),(0,b.jsx)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:g?"Searching…":`${d} result${1===d?"":"s"} for "${a}"`}),h?(0,b.jsx)("div",{className:"mt-2 text-sm text-rose-600",children:h}):null]}),g||h||0!==c.length?null:(0,b.jsxs)("div",{className:"mt-20 flex flex-col items-center justify-center space-y-2 text-[var(--app-shell-muted)]",children:[(0,b.jsx)(ao,{className:"h-6 w-6",strokeWidth:1.5}),(0,b.jsx)("p",{className:"text-sm font-medium",children:"No matching messages"})]}),(0,b.jsx)("div",{className:"space-y-3 pb-6",children:c.map(a=>{var c;let d=a.participantId?m[a.participantId]:null,e=f[a.threadId]||"Untitled thread",g="user"===a.role?"You":d?.name||a.participantId||"Assistant";return(0,b.jsxs)("button",{type:"button",onClick:()=>j(a),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] p-4 text-left transition hover:border-[var(--border)] hover:shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("div",{className:"flex h-8 w-8 items-center justify-center overflow-hidden rounded-full bg-[var(--muted)]",children:"user"===a.role?(0,b.jsx)(Z.User,{className:"h-4 w-4 text-[var(--foreground)]"}):d?(0,b.jsx)(i.default,{href:`/agents/${d.id}`,onClick:a=>a.stopPropagation(),className:"h-full w-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,b.jsx)("img",{src:(0,k.agentAvatarUrl)(d.id,32,d.color),alt:"",className:"h-full w-full object-cover"})}):(0,b.jsx)(an.Bot,{className:"h-4 w-4 text-[var(--foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0",children:["user"!==a.role&&d?(0,b.jsx)(i.default,{href:`/agents/${d.id}`,onClick:a=>a.stopPropagation(),className:"truncate text-sm font-semibold text-[var(--foreground)] hover:underline block",children:g}):(0,b.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:g}),(0,b.jsx)("p",{className:"truncate text-xs text-[var(--muted-foreground)]",children:e})]})]}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:(c=a.timestamp,new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(c))})]}),(0,b.jsx)("p",{className:"text-sm leading-relaxed text-[var(--foreground)]",children:function(a){let c=a.split(/(<\/?mark>)/g),d=!1,e=[];for(let[a,f]of c.entries()){if("<mark>"===f){d=!0;continue}if("</mark>"===f){d=!1;continue}f&&e.push(d?(0,b.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5",children:f},`${a}-mark`):(0,b.jsx)("span",{children:f},`${a}-text`))}return e}(a.snippet)})]},`${a.threadId}-${a.messageId}`)})})]})})}var aq=a.i(13872),ar=a.i(28977),as=a.i(9345);let at=/^[A-Za-z0-9_\-:]*$/,au={id:"all",name:"All",provider:"claude",model:null,color:"#6B7280"};function av(a,b,c){return c?a.startsWith(c)?3:b.startsWith(c)?2:a.includes(c)?1:null:0}let aw=/^[a-zA-Z0-9_-]*$/,ax=new Set(["image/jpeg","image/png","image/gif","image/webp","image/svg+xml","application/pdf","text/plain","text/csv","text/markdown","application/json","application/zip","application/gzip","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation"]),ay=new Set([".exe",".bat",".cmd",".com",".msi",".scr",".pif",".vbs",".vbe",".js",".jse",".ws",".wsf",".wsc",".wsh",".ps1",".ps2",".psc1",".psc2",".reg",".inf",".lnk",".dll",".sys",".drv"]),az=[{path:`${process.env.HOME??"~"}/Code`,relativePath:"~/Code",type:"folder"},{path:`${process.env.HOME??"~"}/Projects`,relativePath:"~/Projects",type:"folder"},{path:`${process.env.HOME??"~"}/Desktop`,relativePath:"~/Desktop",type:"folder"},{path:`${process.env.HOME??"~"}/Documents`,relativePath:"~/Documents",type:"folder"},{path:`${process.env.HOME??"~"}/Downloads`,relativePath:"~/Downloads",type:"folder"}];function aA(a,b){let c=function(a,b){let c=a.trim().replace(/\/+$/,"");if("~"===c)return"~";if(c.startsWith("~/")||c.startsWith("/"))return c;let d=c.replace(/^\/+/,"");return"@~"===b?`~/${d}`:`/${d}`}(a,b.trigger);if(c.startsWith("~/")||c.startsWith("/")){let d=a.trim().startsWith("~/")||a.trim().startsWith("/")||"~"===a.trim()?null:function(a){if(!a.query.endsWith("/"))return null;let b=a.query.replace(/^\/+/,"").replace(/\/+$/,"");return"@~"===a.trigger?b?`~/${b}`:"~":b?`/${b}`:"/"}(b);if(d){let a=c.replace(/^~\/|^\//,"");return"~"===d?`~/${a}`:"/"===d?`/${a}`:`${d}/${a}`}}return c}async function aB(a){let b;if(0===a.length)return[];let c=a.map(a=>a.path);try{let d=await fetch("/api/file-read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:c})});if(!d.ok){let b=(await d.json().catch(()=>({}))).error??`HTTP ${d.status}`;return a.map(a=>({type:"file",path:a.path,label:a.label,content:null,error:b}))}b=(await d.json()).results}catch(c){let b=c instanceof Error?c.message:"Failed to fetch file contents";return a.map(a=>({type:"file",path:a.path,label:a.label,content:null,error:b}))}let d=new Map(b.map(a=>[a.path,a]));return a.map(a=>{let b=d.get(a.path);return{type:"file",path:a.path,label:a.label,content:b?.content??null,error:b?.error}})}async function aC(a){let b=await aB(a),c=0===b.length?"":b.map(a=>a.error||null===a.content?`<file path="${a.path}" error="${a.error??"unreadable"}" />`:`<file path="${a.path}">
|
|
4
4
|
${a.content}
|
|
5
|
-
</file>`).join("\n\n")+"\n\n";return{fileContextBlocks:b,contextPrefix:c}}var aA=a.i(83489);let aB=aA.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c="parallel"===a.attrs.mode;return["span",(0,aA.mergeAttributes)(b,{"data-participant-mention":"","data-id":a.attrs.id,"data-mode":a.attrs.mode,class:c?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${c?"@@":"@"}${a.attrs.name}`]}}),aC=aA.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,aA.mergeAttributes)(b,{"data-project-mention":"","data-id":a.attrs.id,"data-slug":a.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${a.attrs.name}`]}),aD=aA.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c=a.attrs.relativePath||a.attrs.path;return["span",(0,aA.mergeAttributes)(b,{"data-file-mention":"","data-path":a.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${c}`]}}),aE=aA.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,aA.mergeAttributes)(b,{"data-thread-mention":"","data-thread-id":a.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${a.attrs.title}`]});function aF(a){let{state:b}=a,{$from:c}=b.selection,d=c.depth,e=-1;for(let a=d;a>=0;a--)if("paragraph"===c.node(a).type.name){e=a;break}if(-1===e)return null;let f=c.node(e),g=c.start(e),h=c.pos-g,i="",j=0,k=!1;return f.forEach((a,b)=>{let c=b+a.nodeSize;if(a.isText){let d=a.text??"";!k&&h>=b&&h<=c&&(j=i.length+(h-b),k=!0),i+=d}else if(a.isAtom){let d=aG(a);!k&&h>=b&&h<=c&&(j=i.length+d.length,k=!0),i+=d}}),k||(j=i.length),{text:i,cursorPos:j,blockStart:g}}function aG(a){switch(a.type.name){case"participantMention":{let b="parallel"===a.attrs.mode?"@@":"@";return`${b}${a.attrs.name}`}case"fileMention":{let b=a.attrs.relativePath||a.attrs.path;return`@${b}`}case"threadMention":{let b=(a.attrs.threadId??"").slice(0,8);return`@#${b}`}default:return""}}function aH(a,b,c,d){let{state:e}=a,f=e.doc.resolve(b),g=f.depth,h=null,i=b;for(let a=g;a>=0;a--){let b=f.node(a);if("paragraph"===b.type.name){h=b,i=f.start(a);break}}h||(h=e.doc.resolve(b).parent,i=b);let j=0,k=null,l=null;return(h.forEach((a,b)=>{let e=i+b,f=a.nodeSize;if(a.isText){let b=a.text??"",f=j+b.length;null===k&&c>=j&&c<=f&&(k=e+(c-j)),null===l&&d>=j&&d<=f&&(l=e+(d-j)),j=f}else if(a.isAtom){let b=aG(a),g=j+b.length;null===k&&c>=j&&c<=g&&(k=e),null===l&&d>=j&&d<=g&&(l=e+f),j=g}}),null===k&&c>=j&&(k=i+h.content.size),null===l&&d>=j&&(l=i+h.content.size),null===k||null===l)?null:{from:k,to:l}}let aI=(0,o.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);var aJ=a.i(60246);function aK({isOpen:a,suggestions:d,activeIndex:e,listboxId:f,optionIdPrefix:g,onSelect:h}){let i=(0,c.useRef)([]);if((0,c.useEffect)(()=>{a&&i.current[e]?.scrollIntoView({block:"nearest"})},[e,a]),!a||0===d.length)return null;let j=new Set;return(0,b.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,b.jsx)("div",{role:"listbox",id:f,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:d.map((a,c)=>{let d=c===e,f="project-group"===a.kind?`project-group-${a.project.id}`:"project"===a.kind?`project-${a.project.id}`:a.participant.id,k=a.group,l=null;if(k&&!j.has(k)&&(j.add(k),l=(0,b.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0",children:k})),"project-group"===a.kind)return(0,b.jsxs)("div",{children:[l,(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${f}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(aJ.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,b.jsx)("span",{className:"font-medium",children:a.project.name}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[a.project.agents.length," agent",1!==a.project.agents.length?"s":""]})]})})]},f);if("project"===a.kind)return(0,b.jsxs)("div",{children:[l,(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${f}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(aI,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,b.jsx)("span",{className:"font-medium",children:a.project.name}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.project.slug})]})})]},f);let m=a.participant;return(0,b.jsxs)("div",{children:[l,(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${m.id}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${k?" pl-6":""}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:m.color},"aria-hidden":!0}),(0,b.jsx)("span",{className:"font-medium",children:m.name}),"all"===m.id?(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):m.model&&(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:m.model})]})})]},f)})})})}function aL({isOpen:a,commands:d,activeIndex:e,listboxId:f,optionIdPrefix:g,onSelect:h}){let i=(0,c.useRef)([]);return((0,c.useEffect)(()=>{a&&i.current[e]?.scrollIntoView({block:"nearest"})},[e,a]),a&&0!==d.length)?(0,b.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,b.jsx)("div",{role:"listbox",id:f,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:d.map((a,c)=>{let d=c===e;return(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${a.name.slice(1)}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium font-mono",children:a.name}),a.aliases&&a.aliases.length>0&&(0,b.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",a.aliases.join(", "),")"]}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.description})]})},a.name)})})}):null}var aM=a.i(92e3);let aN=(0,o.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var aO=a.i(92596);function aP({suggestion:a,isActive:c,optionId:d,onSelect:e,onAttachContents:f,itemRef:g}){let h="folder"===a.type,i="contents"===a.attachMode,j=function(a){if(!a)return null;let b=Math.floor((Date.now()-a)/864e5);return 0===b?"Today":1===b?"Yesterday":b<7?`${b}d ago`:b<30?`${Math.floor(b/7)}w ago`:b<365?`${Math.floor(b/30)}mo ago`:`${Math.floor(b/365)}y ago`}(a.modifiedAt),k=a.relativePath??a.path;return(0,b.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors ${c?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:h?c?(0,b.jsx)(I.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,b.jsx)(aO.Folder,{className:"h-4 w-4 text-amber-400"}):(0,b.jsx)(aN,{className:"h-4 w-4"})}),(0,b.jsxs)("button",{type:"button",role:"option",id:d,"aria-selected":c,ref:g,className:"min-w-0 flex-1 text-left",onMouseDown:a=>a.preventDefault(),onClick:()=>e(a),tabIndex:-1,children:[(0,b.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,b.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:k}),j&&(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:j})]}),h&&a.manifest&&(0,b.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[a.manifest.childCount," items ·"," ",a.manifest.sizeSummary,i?(0,b.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,b.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),h&&!i&&(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${k}`,onMouseDown:a=>a.preventDefault(),onClick:()=>f(a),tabIndex:-1,children:"Attach contents"}),h&&i&&(0,b.jsx)("span",{className:"shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]",children:"full tree"})]})}var aQ=a.i(7704);function aR({isOpen:a,suggestions:d,activeIndex:e,isLoading:f,error:g,listboxId:h,optionIdPrefix:i,onSelect:j,onAttachContents:k}){let l=(0,c.useRef)([]),m=(0,c.useRef)(null),[n,o]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{a&&l.current[e]?.scrollIntoView({block:"nearest"})},[e,a]),(0,c.useEffect)(()=>{a&&m.current&&o(m.current.getBoundingClientRect().top<280)},[a]),!a)return null;let p=d.length>0?`${i}-${e}`:void 0;return(0,b.jsx)("div",{ref:m,className:`${n?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${aQ.default.popover}`,children:(0,b.jsxs)("div",{role:"listbox",id:h,"aria-label":"File suggestions","aria-activedescendant":p,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[g&&!f&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,b.jsx)(aM.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,b.jsx)("span",{children:g})]}),!g&&f&&0===d.length&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite","aria-label":"Searching for files",children:[(0,b.jsx)(H,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,b.jsx)("span",{children:"Searching…"})]}),!g&&!f&&0===d.length&&(0,b.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!g&&f&&d.length>0&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]",children:[(0,b.jsx)(H,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,b.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),d.length>0&&d.map((a,c)=>(0,b.jsx)(aP,{suggestion:a,isActive:c===e,optionId:`${i}-${c}`,onSelect:j,onAttachContents:k,itemRef:a=>{l.current[c]=a}},a.path))]})})}function aS({isOpen:a,suggestions:c,activeIndex:d,listboxId:e,optionIdPrefix:f,onSelect:g}){return a&&0!==c.length?(0,b.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-[var(--app-shell-elevated)] rounded-xl shadow-xl border border-[var(--app-shell-border)] overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:e,children:[(0,b.jsx)("div",{className:"px-3 py-2 bg-[var(--app-shell-subtle)] border-b border-[var(--app-shell-border)] text-[11px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Reference Discussion"}),(0,b.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:c.map((a,c)=>{let e=c===d;return(0,b.jsxs)("button",{role:"option",id:`${f}-${c}`,"aria-selected":e,onClick:()=>g(a),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${e?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${e?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,b.jsx)(T.MessageSquare,{size:14,strokeWidth:2.5})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:`text-sm font-semibold truncate ${e?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:a.title}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,b.jsxs)("span",{className:`text-xs ${e?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[a.replies.length," replies"]}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,b.jsx)(X.Clock,{size:10}),function(a){if(!a)return"";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return d<24?`${d}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(a.lastActivityAt)]})]})]})]},a.rootMessageId)})})]}):null}var aT=a.i(69520);let aU=(0,o.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);function aV({attachments:a,onRemove:c,onRetry:d}){return 0===a.length?null:(0,b.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:a.map(a=>{var e;let f=a.mimeType.startsWith("image/"),g="failed"===a.status,h="uploading"===a.status;return(0,b.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${g?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[f&&a.previewUrl?(0,b.jsx)("img",{src:a.previewUrl,alt:a.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,b.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:f?(0,b.jsx)(aU,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,b.jsx)(p,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,b.jsx)("div",{className:"truncate font-medium",children:a.filename}),g&&a.error?(0,b.jsx)("div",{className:"truncate text-[10px] text-red-500",children:a.error}):(0,b.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(e=a.size)<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(0)}KB`:`${(e/1048576).toFixed(1)}MB`})]}),h&&(0,b.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,b.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${a.progress}%`}})}),(0,b.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[g&&(0,b.jsx)("button",{type:"button",onClick:()=>d(a.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,b.jsx)(aT.RefreshCw,{className:"w-3 h-3"})}),(0,b.jsx)("button",{type:"button",onClick:()=>c(a.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,b.jsx)(x.X,{className:"w-3 h-3"})})]})]},a.id)})})}function aW({onDrop:a,children:d}){let[e,f]=(0,c.useState)(!1),g={current:0},h=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),g.current++,a.dataTransfer.types.includes("Files")&&f(!0)},[]),i=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),j=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),g.current--,0===g.current&&f(!1)},[]),k=(0,c.useCallback)(b=>{b.preventDefault(),b.stopPropagation(),g.current=0,f(!1),b.dataTransfer.files.length>0&&a(b.dataTransfer.files)},[a]);return(0,b.jsxs)("div",{className:"relative",onDragEnter:h,onDragOver:i,onDragLeave:j,onDrop:k,children:[d,e&&(0,b.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,b.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}let aX=(0,o.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);function aY(a,b,c,d,e){if(!a)return;let f=aH(a,b,c,d);f&&a.chain().focus().deleteRange(f).insertContent(e).insertContent(" ").run()}function aZ({onSend:a,onStop:d,loading:e,participants:f,projects:g=[],projectGroups:h=[],messages:i=[],commands:j,placeholder:k="Message — @name to mention, /search, /summarize",workspaceRoots:l=[],onConfigureRoots:m,pendingThreadInsert:n,onClearPendingThread:o,autoMode:p=!1,onAutoModeChange:q}){let[r,s]=(0,c.useState)(10),[t,u]=(0,c.useState)(null),v=(0,c.useRef)(null),w=(0,c.useRef)(!1),x=(0,c.useCallback)(()=>{v.current?.click()},[]),[y,z]=(0,c.useState)([]),A=function({participants:a,projectGroups:b=[],projects:d=[],maxSuggestions:e=6}){let[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(0),[j,k]=(0,c.useState)(!1),l=null!==f&&!j,m=f?.query??"",n=(0,c.useMemo)(()=>(function(a,b,c,d=[],e=[]){let f=b.toLowerCase(),g=new Map(a.map(a=>[a.id,a])),h=new Set;for(let a of d)for(let b of a.agents)h.add(b.agent_id);let i=[];for(let a of(null!==as("all","all",f)&&i.push({kind:"agent",participant:ar,group:""}),d)){let b=as(a.name.toLowerCase(),a.id.toLowerCase(),f),c=[];for(let b of a.agents){let a=g.get(b.agent_id);if(!a)continue;let d=as(a.name.toLowerCase(),a.id.toLowerCase(),f);null!==d&&c.push({participant:a,score:d})}(null!==b||c.length>0)&&(null!==b&&i.push({kind:"project-group",project:a,group:a.name}),(null!==b&&f?a.agents.map(a=>g.get(a.agent_id)).filter(a=>!!a).map(a=>({participant:a,score:0})):c).sort((a,b)=>a.participant.name.localeCompare(b.participant.name)).forEach(({participant:b})=>{i.push({kind:"agent",participant:b,group:a.name})}))}for(let a of e)null!==as(a.name.toLowerCase(),a.slug.toLowerCase(),f)&&i.push({kind:"project",project:a,group:"Projects"});let j=[];for(let b of a){if(h.has(b.id))continue;let a=as(b.name.toLowerCase(),b.id.toLowerCase(),f);null!==a&&j.push({participant:b,score:a})}return j.sort((a,b)=>a.participant.name.localeCompare(b.participant.name)).forEach(({participant:a})=>{i.push({kind:"agent",participant:a,group:""})}),i.slice(0,c)})(a,m,e,b,d),[a,m,e,b,d]),o=(0,c.useCallback)((a,b)=>{let c=function(a,b){if(b<0||b>a.length)return null;let c=b;for(;c>0&&!/\s/.test(a[c-1]);)c--;let d=a.slice(c,b);if(!d.startsWith("@")||d.startsWith("@@@")||d.startsWith("@#"))return null;let e=d.startsWith("@@"),f=d.slice(e?2:1);return aq.test(f)?{startIndex:c,endIndex:b,query:f.toLowerCase(),mode:e?"parallel":"sequential",isParallel:e}:null}(a,b);g(a=>((a?.startIndex!==c?.startIndex||a?.isParallel!==c?.isParallel||a?.query!==c?.query)&&i(0),c))},[]),p=(0,c.useCallback)((a,b)=>{j||o(a,b)},[j,o]),q=(0,c.useCallback)(a=>{if(!l||0===n.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),i(a=>a<n.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),i(a=>a>0?a-1:n.length-1),!0;case"Enter":case"Tab":return a.preventDefault(),!0;case"Escape":return a.preventDefault(),g(null),!0;default:return!1}},[l,n.length]),r=(0,c.useCallback)(a=>{if(!f)return null;let b="project-group"===a.kind||"project"===a.kind?a.project.name:a.participant.name,c=f.isParallel?"@@":"@";return{text:`${c}${b} `,startIndex:f.startIndex,endIndex:f.endIndex}},[f]),s=(0,c.useCallback)(()=>{g(null),i(0)},[]);return{isOpen:l,query:m,filteredSuggestions:n,activeIndex:h,token:f,isComposing:j,handleInput:p,handleKeyDown:q,selectSuggestion:r,close:s,startComposition:(0,c.useCallback)(()=>{k(!0)},[]),endComposition:(0,c.useCallback)((a,b)=>{k(!1),o(a,b)},[o])}}({participants:f,projectGroups:h,projects:g,maxSuggestions:8}),B=function({commands:a,maxSuggestions:b=6}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(0),h=null!==d,i=d?.query??"",j=(0,c.useMemo)(()=>{let c;return(c=i.toLowerCase())?a.filter(a=>!!a.name.slice(1).toLowerCase().startsWith(c)||(a.aliases?.some(a=>a.toLowerCase().startsWith(c))??!1)).slice(0,b):a.slice(0,b)},[a,i,b]),k=(0,c.useCallback)((a,b)=>{let c=function(a,b){if(b<0||b>a.length||!a.startsWith("/"))return null;let c=a.slice(0,b);if(/\s/.test(c))return null;let d=c.slice(1);return at.test(d)?{startIndex:0,endIndex:b,query:d.toLowerCase()}:null}(a,b);e(a=>(a?.query!==c?.query&&g(0),c))},[]),l=(0,c.useCallback)(a=>{if(!h||0===j.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),g(a=>a<j.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),g(a=>a>0?a-1:j.length-1),!0;case"Enter":case"Tab":return a.preventDefault(),!0;case"Escape":return a.preventDefault(),e(null),!0;default:return!1}},[h,j.length]),m=(0,c.useCallback)(a=>!!d&&(a.execute(),e(null),g(0),!0),[d]);return{isOpen:h,query:i,filteredCommands:j,activeIndex:f,token:d,handleInput:k,handleKeyDown:l,selectCommand:m,close:(0,c.useCallback)(()=>{e(null),g(0)},[])}}({commands:j,maxSuggestions:6}),C=function({maxSuggestions:a=8,debounceMs:b=150}={}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(0),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(null),n=(0,c.useRef)(null),o=(0,c.useRef)(null),p=(0,c.useRef)(null),q=null!==d,r=(0,c.useCallback)(async(b,c)=>{n.current&&n.current.abort();let d=new AbortController;n.current=d,k(!0),m(null);try{let e=b.endsWith("/"),f=e?"*":b,h=new URLSearchParams({q:f,limit:String(a),includeFolders:"1"});if(e){let a="@~"===c?`${process.env.HOME??"~"}/${b.slice(0,-1)}`:`/${b.slice(0,-1)}`;h.set("root",a)}else"@~"===c&&h.set("root",process.env.HOME??"~");let j=await fetch(`/api/file-search?${h.toString()}`,{signal:d.signal});if(!j.ok){let a=await j.json().catch(()=>({}));throw Error(a.error??`HTTP ${j.status}`)}let k=await j.json();g(k.files.map(a=>({...a,attachMode:"folder"===a.type?"manifest":void 0}))),i(0)}catch(a){if("AbortError"===a.name)return;m(a.message??"Search failed"),g([])}finally{k(!1)}},[a]),s=(0,c.useCallback)((c,d)=>{if(null!==o.current&&clearTimeout(o.current),c!==p.current){if(c.length<3){n.current&&(n.current.abort(),n.current=null),p.current=c,k(!1),m(null),g(aw.slice(0,a).map(a=>({...a,attachMode:"manifest"}))),i(0);return}o.current=setTimeout(()=>{p.current=c,r(c,d)},b)}},[b,r,a]);(0,c.useEffect)(()=>()=>{null!==o.current&&clearTimeout(o.current),n.current&&n.current.abort()},[]);let t=(0,c.useCallback)((a,b)=>{let c=function(a,b){if(b<2||b>a.length)return null;let c=b;for(;c>0&&!/\s/.test(a[c-1]);)c--;let d=a.slice(c,b);if(!d.startsWith("@/")&&!d.startsWith("@~"))return null;let e=d.slice(0,2);return{startIndex:c,endIndex:b,query:d.slice(2),trigger:e}}(a,b);e(a=>((a?.startIndex!==c?.startIndex||a?.query!==c?.query||a?.trigger!==c?.trigger)&&null===c&&(null!==o.current&&clearTimeout(o.current),n.current&&(n.current.abort(),n.current=null),p.current=null,g([]),k(!1),m(null)),c)),c&&s(c.query,c.trigger)},[s]),u=(0,c.useCallback)(a=>{if(!q||0===f.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),i(a=>a<f.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),i(a=>a>0?a-1:f.length-1),!0;case"Enter":return a.preventDefault(),!0;case"Tab":return!0;case"Escape":return a.preventDefault(),e(null),g([]),!0;default:return!1}},[q,f.length]),v=(0,c.useCallback)(a=>{if(!d)return null;let b=ax(a.relativePath??a.path,d),c="folder"===a.type?"/":"",f=`@${b}${c} `;return e(null),g([]),{text:f,startIndex:d.startIndex,endIndex:d.endIndex}},[d]),w=(0,c.useCallback)(a=>{if(!d||"folder"!==a.type)return null;let b=ax(a.relativePath??a.path,d),c=b.startsWith("~/")?"@~":"@/",f=b.slice(1),g=`@${b}/`,h=d.startIndex+g.length,i=`${f}/`;return e({startIndex:d.startIndex,endIndex:h,query:i,trigger:c}),p.current=null,s(i,c),{text:g,startIndex:d.startIndex,endIndex:d.endIndex}},[d,s]),x=(0,c.useCallback)(a=>{g(b=>b.map(b=>b.path===a.path?{...b,attachMode:"contents"}:b))},[]);return{isOpen:q,token:d,suggestions:f,activeIndex:h,isLoading:j,error:l,handleInput:t,handleKeyDown:u,selectSuggestion:v,drillDown:w,close:(0,c.useCallback)(()=>{e(null),g([]),i(0)},[]),onAttachContents:x}}({maxSuggestions:8}),D=function({messages:a,maxSuggestions:b=5}){let[d,e]=(0,c.useState)(!1),[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(0),[j,k]=(0,c.useState)([]),[l,m]=(0,c.useState)(null),n=(0,c.useRef)([]);(0,c.useEffect)(()=>{let b=a.filter(a=>!a.rootMessageId),c=new Map;a.forEach(a=>{if(a.rootMessageId){let b=c.get(a.rootMessageId)||[];b.push(a),c.set(a.rootMessageId,b)}}),n.current=b.map(a=>{let b=c.get(a.id)||[],d=[a,...b],e=Math.max(...d.map(a=>a.timestamp)),f=a.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",g=[...new Set(d.map(a=>a.participantId||"user"))];return{rootMessageId:a.id,title:f,rootMessage:a,replies:b,participantIds:g,lastActivityAt:e}}).sort((a,b)=>b.lastActivityAt-a.lastActivityAt)},[a]);let o=(0,c.useCallback)((a,c)=>{let d=a.slice(0,c).match(/@#([^@#\s]*)$/);if(d){e(!0);let a=d[1].toLowerCase();g(a),m(d.index),i(0),k(n.current.filter(b=>b.title.toLowerCase().includes(a)).slice(0,b))}else e(!1),m(null)},[b]),p=(0,c.useCallback)(a=>!!d&&0!==j.length&&("ArrowDown"===a.key?(a.preventDefault(),i(a=>(a+1)%j.length),!0):"ArrowUp"===a.key?(a.preventDefault(),i(a=>(a-1+j.length)%j.length),!0):"Escape"===a.key&&(a.preventDefault(),e(!1),!0)),[d,j.length]),q=(0,c.useCallback)(a=>null===l?null:{startIndex:l,endIndex:l+2+f.length,text:""},[l,f]);return{isOpen:d,suggestions:j,activeIndex:h,handleInput:o,handleKeyDown:p,selectSuggestion:q,close:(0,c.useCallback)(()=>{e(!1),m(null)},[]),exportDiscussion:(0,c.useCallback)(async a=>{let b=[];try{let a=await fetch("/api/participants");a.ok&&(b=await a.json())}catch(a){console.warn("Failed to fetch participants for export",a)}let c=await fetch("/api/thread-export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a.rootMessageId,title:a.title,messages:[a.rootMessage,...a.replies],participants:b})});if(!c.ok)throw Error(`Export failed: ${await c.text()}`);return await c.json()},[])}}({messages:i,maxSuggestions:8}),E=function(){let[a,b]=(0,c.useState)([]),d=(0,c.useRef)(new Map),e=(0,c.useCallback)(a=>{let c=new XMLHttpRequest;d.current.set(a.id,c);let e=new FormData;e.append("file",a.file),c.upload.onprogress=c=>{if(c.lengthComputable){let d=Math.round(c.loaded/c.total*100);b(b=>b.map(b=>b.id===a.id?{...b,progress:d}:b))}},c.onload=()=>{if(d.current.delete(a.id),c.status>=200&&c.status<300)try{let d=JSON.parse(c.responseText),e=d.attachments?.[0];if(e)return void b(b=>b.map(b=>b.id===a.id?{...b,status:"uploaded",progress:100,serverId:e.id}:b))}catch{}let e=(()=>{try{return JSON.parse(c.responseText)?.error||"Upload failed"}catch{return"Upload failed"}})();b(b=>b.map(b=>b.id===a.id?{...b,status:"failed",error:e}:b))},c.onerror=()=>{d.current.delete(a.id),b(b=>b.map(b=>b.id===a.id?{...b,status:"failed",error:"Network error"}:b))},c.open("POST","/api/upload"),c.send(e)},[]),f=(0,c.useCallback)(c=>{let d=Array.from(c),f=function(a){let b=a.reduce((a,b)=>a+b.size,0);if(b>0x3200000){let a=(b/1048576).toFixed(1);return{file:"(total)",reason:`Total attachment size (${a}MB) exceeds 50MB limit`}}return null}([...a.map(a=>({name:a.filename,size:a.size,type:a.mimeType})),...d.map(a=>({name:a.name,size:a.size,type:a.type}))]);if(f)return void alert(f.reason);let g=[];for(let a of d){let b=function(a){let b=a.name.includes(".")?"."+a.name.split(".").pop().toLowerCase():"";if(av.has(b))return{file:a.name,reason:`File type "${b}" is not allowed`};if(a.type&&!au.has(a.type))return{file:a.name,reason:`File type "${a.type}" is not supported`};if(!a.type&&!au.has("application/octet-stream"),a.size>0xa00000){let b=(a.size/1048576).toFixed(1);return{file:a.name,reason:`File is too large (${b}MB). Maximum is 10MB`}}return 0===a.size?{file:a.name,reason:"File is empty"}:null}({name:a.name,size:a.size,type:a.type});if(b){g.push({id:crypto.randomUUID(),file:a,filename:a.name,mimeType:a.type,size:a.size,previewUrl:null,progress:0,status:"failed",error:b.reason});continue}let c=a.type.startsWith("image/")?URL.createObjectURL(a):null,d={id:crypto.randomUUID(),file:a,filename:a.name,mimeType:a.type||"application/octet-stream",size:a.size,previewUrl:c,progress:0,status:"uploading"};g.push(d)}for(let a of(b(a=>[...a,...g]),g))"uploading"===a.status&&e(a)},[a,e]),g=(0,c.useCallback)(a=>{b(b=>{let c=b.find(b=>b.id===a);c?.previewUrl&&URL.revokeObjectURL(c.previewUrl);let e=d.current.get(a);return e&&(e.abort(),d.current.delete(a)),c?.serverId&&fetch(`/api/upload/${c.serverId}`,{method:"DELETE"}).catch(()=>{}),b.filter(b=>b.id!==a)})},[]),h=(0,c.useCallback)(a=>{b(b=>{let c=b.find(b=>b.id===a);if(!c||"failed"!==c.status)return b;let d=b.map(b=>b.id===a?{...b,status:"uploading",error:void 0,progress:0}:b),f=d.find(b=>b.id===a);return setTimeout(()=>e(f),0),d})},[e]),i=(0,c.useCallback)(()=>{b(a=>{for(let b of a){b.previewUrl&&URL.revokeObjectURL(b.previewUrl);let a=d.current.get(b.id);a&&a.abort()}return d.current.clear(),[]})},[]),j=0===a.length||a.every(a=>"uploaded"===a.status||"failed"===a.status),k=a.some(a=>"uploaded"===a.status),l=a.filter(a=>"uploaded"===a.status&&a.serverId);return{staged:a,stageFiles:f,remove:g,retry:h,clear:i,canSend:j,hasUploaded:k,attachmentIds:l.map(a=>a.serverId),getAttachmentMetas:(0,c.useCallback)(()=>l.map(a=>({id:a.serverId,filename:a.filename,mimeType:a.mimeType,size:a.size,status:"uploaded",url:`/api/attachments/${a.serverId}`})),[l])}}(),F=function(){let[a,b]=(0,c.useState)([]),d=(0,c.useCallback)((a,c,d)=>{b(b=>b.find(b=>b.path===a)?b.map(b=>b.path===a?{...b,label:c,attachMode:d??b.attachMode}:b):[...b,{kind:"file-path",id:crypto.randomUUID(),path:a,label:c,attachMode:d}])},[]);return{filePaths:a,addFilePath:d,removeFilePath:(0,c.useCallback)(a=>{b(b=>b.filter(b=>b.id!==a))},[]),clearFilePaths:(0,c.useCallback)(()=>{b([])},[]),hasFilePaths:a.length>0}}();(0,c.useEffect)(()=>{t&&!f.some(a=>a.id===t)&&u(null)},[f,t]);let G=(0,an.useEditor)({immediatelyRender:!1,extensions:[ao.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),ap.default.configure({placeholder:k}),aB,aC,aD,aE],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handlePaste:(a,b)=>{let c=b.clipboardData?.files;return!!c&&c.length>0&&(b.preventDefault(),E.stageFiles(c),!0)},handleDOMEvents:{compositionstart:()=>(w.current=!0,A.startComposition(),!1),compositionend:(a,b)=>(w.current=!1,setTimeout(()=>{if(!G)return;let a=aF(G);a&&A.endComposition(a.text,a.cursorPos)},0),!1)},handleKeyDown:(a,b)=>{if("Tab"===b.key||"Enter"===b.key&&!b.shiftKey){if(B.isOpen&&B.filteredCommands.length>0){b.preventDefault();let a=B.filteredCommands[B.activeIndex];return a&&M(a),!0}if(C.isOpen&&C.suggestions.length>0){b.preventDefault();let a=C.suggestions[C.activeIndex];return a&&("folder"===a.type?K(a):J(a)),!0}if(D.isOpen&&D.suggestions.length>0){b.preventDefault();let a=D.suggestions[D.activeIndex];return a&&L(a),!0}if(A.isOpen&&A.filteredSuggestions.length>0){b.preventDefault();let a=A.filteredSuggestions[A.activeIndex];return a&&I(a),!0}}let c={key:b.key,preventDefault:()=>b.preventDefault()};return!!(B.isOpen&&B.handleKeyDown(c)||C.isOpen&&C.handleKeyDown(c)||D.isOpen&&D.handleKeyDown(c)||A.handleKeyDown(c))||"Enter"===b.key&&!b.shiftKey&&(b.preventDefault(),N(),!0)}},onUpdate:({editor:a})=>{if(w.current)return;let b=aF(a);b&&(A.handleInput(b.text,b.cursorPos),B.handleInput(b.text,b.cursorPos),C.handleInput(b.text,b.cursorPos),D.handleInput(b.text,b.cursorPos))},onBlur:()=>{A.close(),B.close(),C.close(),D.close()}});(0,c.useEffect)(()=>{if(!n||!G)return;let{title:a,threadId:b,messages:c}=n;G.chain().focus().insertContent({type:"threadMention",attrs:{threadId:b,title:a}}).insertContent(" ").run();let d=c[0];if(d){let e={rootMessageId:b,title:a,rootMessage:d,replies:c.slice(1),participantIds:[...new Set(c.map(a=>a.participantId||"user"))],lastActivityAt:Math.max(...c.map(a=>a.timestamp))};D.exportDiscussion(e).then(a=>z(b=>[...b,a])).catch(a=>console.error("Failed to export discussion for Add to chat:",a))}o?.()},[n]);let H=(0,c.useCallback)(()=>{if(!G)return;let a=aF(G);a&&A.handleInput(a.text,a.cursorPos)},[G,A]),I=(0,c.useCallback)(a=>{if(!G)return;let b=A.selectSuggestion(a);if(!b)return;let c=aF(G);if(!c)return;let d=b.text.startsWith("@@"),e="project-group"===a.kind?{type:"participantMention",attrs:{id:a.project.id,name:a.project.name,mode:d?"parallel":"sequential",kind:"project"}}:"project"===a.kind?{type:"projectMention",attrs:{id:a.project.id,slug:a.project.slug,name:a.project.name}}:{type:"participantMention",attrs:{id:a.participant.id,name:a.participant.name,mode:d?"parallel":"sequential",kind:"agent"}};aY(G,c.blockStart,b.startIndex,b.endIndex,e),A.close()},[G,A]),J=(0,c.useCallback)(a=>{if(!G)return;let b=C.selectSuggestion(a);if(!b)return;let c=aF(G);if(!c)return;let d={type:"fileMention",attrs:{path:a.path,relativePath:a.relativePath??a.path,trigger:C.token?.trigger??"@/",attachMode:a.attachMode}};aY(G,c.blockStart,b.startIndex,b.endIndex,d),F.addFilePath(a.path,a.relativePath??a.path,a.attachMode)},[G,C,F]),K=(0,c.useCallback)(a=>{if(!G)return;let b=aF(G);if(!b)return;let c=C.drillDown(a);if(!c)return;let d=aH(G,b.blockStart,c.startIndex,c.endIndex);d&&G.chain().focus().deleteRange(d).insertContent(c.text).run()},[G,C]),L=(0,c.useCallback)(async a=>{if(!G)return;let b=D.selectSuggestion(a);if(!b)return;let c=aF(G);if(!c)return;let d={type:"threadMention",attrs:{threadId:a.rootMessageId,title:a.title}};aY(G,c.blockStart,b.startIndex,b.endIndex,d);try{let b=await D.exportDiscussion(a);z(a=>[...a,b])}catch(a){console.error("Failed to export discussion:",a)}},[G,D]),M=(0,c.useCallback)(a=>{B.selectCommand(a),G&&G.commands.clearContent()},[B,G]),N=(0,c.useCallback)(async()=>{if(!G)return;let b=(function(a){if(!a.content)return"";let b=[];for(let c of a.content)c.type,b.push(function(a){if(!a.content)return"";let b="";for(let c of a.content)switch(c.type){case"text":b+=c.text??"";break;case"participantMention":{let a=c.attrs??{},d="parallel"===a.mode?"@@":"@";b+=`${d}${a.name}`;break}case"projectMention":{let a=c.attrs??{},d=String(a.slug??"").trim();d?b+=`@~project:${d}`:a.name&&(b+=`@${a.name}`);break}case"fileMention":{let a=c.attrs??{},d=a.relativePath||a.path;b+=`@${d}`;break}case"threadMention":{let a=((c.attrs??{}).threadId??"").slice(0,8);b+=`@#${a}`;break}default:"hardBreak"===c.type&&(b+="\n")}return b}(c));return b.join("\n")})(G.getJSON()).trim();if(!b&&!E.hasUploaded&&!F.hasFilePaths||!E.canSend)return;if(b){let a=j.find(a=>a.name===b||a.aliases?.some(a=>`/${a}`===b));if(a){a.execute(),G.commands.clearContent(),B.close(),A.close();return}}let c=b||"(attached files)";if(y.length>0){let a=y.map(a=>`- "${a.title}" — ${a.summary} (full transcript: ${a.filePath})`).join("\n");c=`Referenced threads:
|
|
5
|
+
</file>`).join("\n\n")+"\n\n";return{fileContextBlocks:b,contextPrefix:c}}var aD=a.i(83489);let aE=aD.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c="parallel"===a.attrs.mode;return["span",(0,aD.mergeAttributes)(b,{"data-participant-mention":"","data-id":a.attrs.id,"data-mode":a.attrs.mode,class:c?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${c?"@@":"@"}${a.attrs.name}`]}}),aF=aD.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,aD.mergeAttributes)(b,{"data-project-mention":"","data-id":a.attrs.id,"data-slug":a.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${a.attrs.name}`]}),aG=aD.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c=a.attrs.relativePath||a.attrs.path;return["span",(0,aD.mergeAttributes)(b,{"data-file-mention":"","data-path":a.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${c}`]}}),aH=aD.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,aD.mergeAttributes)(b,{"data-thread-mention":"","data-thread-id":a.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${a.attrs.title}`]});function aI(a){let{state:b}=a,{$from:c}=b.selection,d=c.depth,e=-1;for(let a=d;a>=0;a--)if("paragraph"===c.node(a).type.name){e=a;break}if(-1===e)return null;let f=c.node(e),g=c.start(e),h=c.pos-g,i="",j=0,k=!1;return f.forEach((a,b)=>{let c=b+a.nodeSize;if(a.isText){let d=a.text??"";!k&&h>=b&&h<=c&&(j=i.length+(h-b),k=!0),i+=d}else if(a.isAtom){let d=aJ(a);!k&&h>=b&&h<=c&&(j=i.length+d.length,k=!0),i+=d}}),k||(j=i.length),{text:i,cursorPos:j,blockStart:g}}function aJ(a){switch(a.type.name){case"participantMention":{let b="parallel"===a.attrs.mode?"@@":"@";return`${b}${a.attrs.name}`}case"fileMention":{let b=a.attrs.relativePath||a.attrs.path;return`@${b}`}case"threadMention":{let b=(a.attrs.threadId??"").slice(0,8);return`@#${b}`}default:return""}}function aK(a,b,c,d){let{state:e}=a,f=e.doc.resolve(b),g=f.depth,h=null,i=b;for(let a=g;a>=0;a--){let b=f.node(a);if("paragraph"===b.type.name){h=b,i=f.start(a);break}}h||(h=e.doc.resolve(b).parent,i=b);let j=0,k=null,l=null;return(h.forEach((a,b)=>{let e=i+b,f=a.nodeSize;if(a.isText){let b=a.text??"",f=j+b.length;null===k&&c>=j&&c<=f&&(k=e+(c-j)),null===l&&d>=j&&d<=f&&(l=e+(d-j)),j=f}else if(a.isAtom){let b=aJ(a),g=j+b.length;null===k&&c>=j&&c<=g&&(k=e),null===l&&d>=j&&d<=g&&(l=e+f),j=g}}),null===k&&c>=j&&(k=i+h.content.size),null===l&&d>=j&&(l=i+h.content.size),null===k||null===l)?null:{from:k,to:l}}let aL=(0,o.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);var aM=a.i(60246);function aN({isOpen:a,suggestions:d,activeIndex:e,listboxId:f,optionIdPrefix:g,onSelect:h}){let i=(0,c.useRef)([]);if((0,c.useEffect)(()=>{a&&i.current[e]?.scrollIntoView({block:"nearest"})},[e,a]),!a||0===d.length)return null;let j=new Set;return(0,b.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,b.jsx)("div",{role:"listbox",id:f,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:d.map((a,c)=>{let d=c===e,f="project-group"===a.kind?`project-group-${a.project.id}`:"project"===a.kind?`project-${a.project.id}`:a.participant.id,k=a.group,l=null;if(k&&!j.has(k)&&(j.add(k),l=(0,b.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0",children:k})),"project-group"===a.kind)return(0,b.jsxs)("div",{children:[l,(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${f}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(aM.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,b.jsx)("span",{className:"font-medium",children:a.project.name}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[a.project.agents.length," agent",1!==a.project.agents.length?"s":""]})]})})]},f);if("project"===a.kind)return(0,b.jsxs)("div",{children:[l,(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${f}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(aL,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,b.jsx)("span",{className:"font-medium",children:a.project.name}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.project.slug})]})})]},f);let m=a.participant;return(0,b.jsxs)("div",{children:[l,(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${m.id}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${k?" pl-6":""}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:m.color},"aria-hidden":!0}),(0,b.jsx)("span",{className:"font-medium",children:m.name}),"all"===m.id?(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):m.model&&(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:m.model})]})})]},f)})})})}function aO({isOpen:a,commands:d,activeIndex:e,listboxId:f,optionIdPrefix:g,onSelect:h}){let i=(0,c.useRef)([]);return((0,c.useEffect)(()=>{a&&i.current[e]?.scrollIntoView({block:"nearest"})},[e,a]),a&&0!==d.length)?(0,b.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,b.jsx)("div",{role:"listbox",id:f,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:d.map((a,c)=>{let d=c===e;return(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${a.name.slice(1)}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium font-mono",children:a.name}),a.aliases&&a.aliases.length>0&&(0,b.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",a.aliases.join(", "),")"]}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.description})]})},a.name)})})}):null}var aP=a.i(92e3);let aQ=(0,o.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var aR=a.i(92596);function aS({suggestion:a,isActive:c,optionId:d,onSelect:e,onAttachContents:f,itemRef:g}){let h="folder"===a.type,i="contents"===a.attachMode,j=function(a){if(!a)return null;let b=Math.floor((Date.now()-a)/864e5);return 0===b?"Today":1===b?"Yesterday":b<7?`${b}d ago`:b<30?`${Math.floor(b/7)}w ago`:b<365?`${Math.floor(b/30)}mo ago`:`${Math.floor(b/365)}y ago`}(a.modifiedAt),k=a.relativePath??a.path;return(0,b.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${c?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:h?c?(0,b.jsx)(I.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,b.jsx)(aR.Folder,{className:"h-4 w-4 text-amber-400"}):(0,b.jsx)(aQ,{className:"h-4 w-4"})}),(0,b.jsxs)("button",{type:"button",role:"option",id:d,"aria-selected":c,ref:g,className:"min-w-0 flex-1 text-left",onMouseDown:a=>a.preventDefault(),onClick:()=>e(a),tabIndex:-1,children:[(0,b.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,b.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:k}),j&&(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:j})]}),h&&a.manifest&&(0,b.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[a.manifest.childCount," items ·"," ",a.manifest.sizeSummary,i?(0,b.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,b.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),h&&!i&&(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors duration-200",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${k}`,onMouseDown:a=>a.preventDefault(),onClick:()=>f(a),tabIndex:-1,children:"Attach contents"}),h&&i&&(0,b.jsx)("span",{className:"shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]",children:"full tree"})]})}var aT=a.i(7704);function aU({isOpen:a,suggestions:d,activeIndex:e,isLoading:f,error:g,listboxId:h,optionIdPrefix:i,onSelect:j,onAttachContents:k}){let l=(0,c.useRef)([]),m=(0,c.useRef)(null),[n,o]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{a&&l.current[e]?.scrollIntoView({block:"nearest"})},[e,a]),(0,c.useEffect)(()=>{a&&m.current&&o(m.current.getBoundingClientRect().top<280)},[a]),!a)return null;let p=d.length>0?`${i}-${e}`:void 0;return(0,b.jsx)("div",{ref:m,className:`${n?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${aT.default.popover}`,children:(0,b.jsxs)("div",{role:"listbox",id:h,"aria-label":"File suggestions","aria-activedescendant":p,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[g&&!f&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,b.jsx)(aP.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,b.jsx)("span",{children:g})]}),!g&&f&&0===d.length&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite","aria-label":"Searching for files",children:[(0,b.jsx)(H,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,b.jsx)("span",{children:"Searching…"})]}),!g&&!f&&0===d.length&&(0,b.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!g&&f&&d.length>0&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]",children:[(0,b.jsx)(H,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,b.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),d.length>0&&d.map((a,c)=>(0,b.jsx)(aS,{suggestion:a,isActive:c===e,optionId:`${i}-${c}`,onSelect:j,onAttachContents:k,itemRef:a=>{l.current[c]=a}},a.path))]})})}function aV({isOpen:a,suggestions:c,activeIndex:d,listboxId:e,optionIdPrefix:f,onSelect:g}){return a&&0!==c.length?(0,b.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-[var(--app-shell-elevated)] rounded-xl shadow-xl border border-[var(--app-shell-border)] overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:e,children:[(0,b.jsx)("div",{className:"px-3 py-2 bg-[var(--app-shell-subtle)] border-b border-[var(--app-shell-border)] text-[11px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Reference Discussion"}),(0,b.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:c.map((a,c)=>{let e=c===d;return(0,b.jsxs)("button",{role:"option",id:`${f}-${c}`,"aria-selected":e,onClick:()=>g(a),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${e?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${e?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,b.jsx)(W.MessageSquare,{size:14,strokeWidth:2.5})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:`text-sm font-semibold truncate ${e?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:a.title}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,b.jsxs)("span",{className:`text-xs ${e?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[a.replies.length," replies"]}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,b.jsx)($.Clock,{size:10}),function(a){if(!a)return"";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return d<24?`${d}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(a.lastActivityAt)]})]})]})]},a.rootMessageId)})})]}):null}var aW=a.i(69520);let aX=(0,o.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);function aY({attachments:a,onRemove:c,onRetry:d}){return 0===a.length?null:(0,b.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:a.map(a=>{var e;let f=a.mimeType.startsWith("image/"),g="failed"===a.status,h="uploading"===a.status;return(0,b.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${g?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[f&&a.previewUrl?(0,b.jsx)("img",{src:a.previewUrl,alt:a.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,b.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:f?(0,b.jsx)(aX,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,b.jsx)(p,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,b.jsx)("div",{className:"truncate font-medium",children:a.filename}),g&&a.error?(0,b.jsx)("div",{className:"truncate text-[10px] text-red-500",children:a.error}):(0,b.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(e=a.size)<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(0)}KB`:`${(e/1048576).toFixed(1)}MB`})]}),h&&(0,b.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,b.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${a.progress}%`}})}),(0,b.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[g&&(0,b.jsx)("button",{type:"button",onClick:()=>d(a.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,b.jsx)(aW.RefreshCw,{className:"w-3 h-3"})}),(0,b.jsx)("button",{type:"button",onClick:()=>c(a.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,b.jsx)(x.X,{className:"w-3 h-3"})})]})]},a.id)})})}function aZ({onDrop:a,children:d}){let[e,f]=(0,c.useState)(!1),g={current:0},h=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),g.current++,a.dataTransfer.types.includes("Files")&&f(!0)},[]),i=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),j=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),g.current--,0===g.current&&f(!1)},[]),k=(0,c.useCallback)(b=>{b.preventDefault(),b.stopPropagation(),g.current=0,f(!1),b.dataTransfer.files.length>0&&a(b.dataTransfer.files)},[a]);return(0,b.jsxs)("div",{className:"relative",onDragEnter:h,onDragOver:i,onDragLeave:j,onDrop:k,children:[d,e&&(0,b.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,b.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}let a$=(0,o.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);function a_(a,b,c,d,e){if(!a)return;let f=aK(a,b,c,d);f&&a.chain().focus().deleteRange(f).insertContent(e).insertContent(" ").run()}function a0({onSend:a,onStop:d,loading:e,participants:f,projects:g=[],projectGroups:h=[],messages:i=[],commands:j,placeholder:k="Message — @name to mention, /search, /summarize",workspaceRoots:l=[],onConfigureRoots:m,pendingThreadInsert:n,onClearPendingThread:o,autoMode:p=!1,onAutoModeChange:q}){let[r,s]=(0,c.useState)(10),[t,u]=(0,c.useState)(null),v=(0,c.useRef)(null),w=(0,c.useRef)(!1),x=(0,c.useCallback)(()=>{v.current?.click()},[]),[y,z]=(0,c.useState)([]),A=function({participants:a,projectGroups:b=[],projects:d=[],maxSuggestions:e=6}){let[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(0),[j,k]=(0,c.useState)(!1),l=null!==f&&!j,m=f?.query??"",n=(0,c.useMemo)(()=>(function(a,b,c,d=[],e=[]){let f=b.toLowerCase(),g=new Map(a.map(a=>[a.id,a])),h=new Set;for(let a of d)for(let b of a.agents)h.add(b.agent_id);let i=[];for(let a of(null!==av("all","all",f)&&i.push({kind:"agent",participant:au,group:""}),d)){let b=av(a.name.toLowerCase(),a.id.toLowerCase(),f),c=[];for(let b of a.agents){let a=g.get(b.agent_id);if(!a)continue;let d=av(a.name.toLowerCase(),a.id.toLowerCase(),f);null!==d&&c.push({participant:a,score:d})}(null!==b||c.length>0)&&(null!==b&&i.push({kind:"project-group",project:a,group:a.name}),(null!==b&&f?a.agents.map(a=>g.get(a.agent_id)).filter(a=>!!a).map(a=>({participant:a,score:0})):c).sort((a,b)=>a.participant.name.localeCompare(b.participant.name)).forEach(({participant:b})=>{i.push({kind:"agent",participant:b,group:a.name})}))}for(let a of e)null!==av(a.name.toLowerCase(),a.slug.toLowerCase(),f)&&i.push({kind:"project",project:a,group:"Projects"});let j=[];for(let b of a){if(h.has(b.id))continue;let a=av(b.name.toLowerCase(),b.id.toLowerCase(),f);null!==a&&j.push({participant:b,score:a})}return j.sort((a,b)=>a.participant.name.localeCompare(b.participant.name)).forEach(({participant:a})=>{i.push({kind:"agent",participant:a,group:""})}),i.slice(0,c)})(a,m,e,b,d),[a,m,e,b,d]),o=(0,c.useCallback)((a,b)=>{let c=function(a,b){if(b<0||b>a.length)return null;let c=b;for(;c>0&&!/\s/.test(a[c-1]);)c--;let d=a.slice(c,b);if(!d.startsWith("@")||d.startsWith("@@@")||d.startsWith("@#"))return null;let e=d.startsWith("@@"),f=d.slice(e?2:1);return at.test(f)?{startIndex:c,endIndex:b,query:f.toLowerCase(),mode:e?"parallel":"sequential",isParallel:e}:null}(a,b);g(a=>((a?.startIndex!==c?.startIndex||a?.isParallel!==c?.isParallel||a?.query!==c?.query)&&i(0),c))},[]),p=(0,c.useCallback)((a,b)=>{j||o(a,b)},[j,o]),q=(0,c.useCallback)(a=>{if(!l||0===n.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),i(a=>a<n.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),i(a=>a>0?a-1:n.length-1),!0;case"Enter":case"Tab":return a.preventDefault(),!0;case"Escape":return a.preventDefault(),g(null),!0;default:return!1}},[l,n.length]),r=(0,c.useCallback)(a=>{if(!f)return null;let b="project-group"===a.kind||"project"===a.kind?a.project.name:a.participant.name,c=f.isParallel?"@@":"@";return{text:`${c}${b} `,startIndex:f.startIndex,endIndex:f.endIndex}},[f]),s=(0,c.useCallback)(()=>{g(null),i(0)},[]);return{isOpen:l,query:m,filteredSuggestions:n,activeIndex:h,token:f,isComposing:j,handleInput:p,handleKeyDown:q,selectSuggestion:r,close:s,startComposition:(0,c.useCallback)(()=>{k(!0)},[]),endComposition:(0,c.useCallback)((a,b)=>{k(!1),o(a,b)},[o])}}({participants:f,projectGroups:h,projects:g,maxSuggestions:8}),B=function({commands:a,maxSuggestions:b=6}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(0),h=null!==d,i=d?.query??"",j=(0,c.useMemo)(()=>{let c;return(c=i.toLowerCase())?a.filter(a=>!!a.name.slice(1).toLowerCase().startsWith(c)||(a.aliases?.some(a=>a.toLowerCase().startsWith(c))??!1)).slice(0,b):a.slice(0,b)},[a,i,b]),k=(0,c.useCallback)((a,b)=>{let c=function(a,b){if(b<0||b>a.length||!a.startsWith("/"))return null;let c=a.slice(0,b);if(/\s/.test(c))return null;let d=c.slice(1);return aw.test(d)?{startIndex:0,endIndex:b,query:d.toLowerCase()}:null}(a,b);e(a=>(a?.query!==c?.query&&g(0),c))},[]),l=(0,c.useCallback)(a=>{if(!h||0===j.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),g(a=>a<j.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),g(a=>a>0?a-1:j.length-1),!0;case"Enter":case"Tab":return a.preventDefault(),!0;case"Escape":return a.preventDefault(),e(null),!0;default:return!1}},[h,j.length]),m=(0,c.useCallback)(a=>!!d&&(a.execute(),e(null),g(0),!0),[d]);return{isOpen:h,query:i,filteredCommands:j,activeIndex:f,token:d,handleInput:k,handleKeyDown:l,selectCommand:m,close:(0,c.useCallback)(()=>{e(null),g(0)},[])}}({commands:j,maxSuggestions:6}),C=function({maxSuggestions:a=8,debounceMs:b=150}={}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(0),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(null),n=(0,c.useRef)(null),o=(0,c.useRef)(null),p=(0,c.useRef)(null),q=null!==d,r=(0,c.useCallback)(async(b,c)=>{n.current&&n.current.abort();let d=new AbortController;n.current=d,k(!0),m(null);try{let e=b.endsWith("/"),f=e?"*":b,h=new URLSearchParams({q:f,limit:String(a),includeFolders:"1"});if(e){let a="@~"===c?`${process.env.HOME??"~"}/${b.slice(0,-1)}`:`/${b.slice(0,-1)}`;h.set("root",a)}else"@~"===c&&h.set("root",process.env.HOME??"~");let j=await fetch(`/api/file-search?${h.toString()}`,{signal:d.signal});if(!j.ok){let a=await j.json().catch(()=>({}));throw Error(a.error??`HTTP ${j.status}`)}let k=await j.json();g(k.files.map(a=>({...a,attachMode:"folder"===a.type?"manifest":void 0}))),i(0)}catch(a){if("AbortError"===a.name)return;m(a.message??"Search failed"),g([])}finally{k(!1)}},[a]),s=(0,c.useCallback)((c,d)=>{if(null!==o.current&&clearTimeout(o.current),c!==p.current){if(c.length<3){n.current&&(n.current.abort(),n.current=null),p.current=c,k(!1),m(null),g(az.slice(0,a).map(a=>({...a,attachMode:"manifest"}))),i(0);return}o.current=setTimeout(()=>{p.current=c,r(c,d)},b)}},[b,r,a]);(0,c.useEffect)(()=>()=>{null!==o.current&&clearTimeout(o.current),n.current&&n.current.abort()},[]);let t=(0,c.useCallback)((a,b)=>{let c=function(a,b){if(b<2||b>a.length)return null;let c=b;for(;c>0&&!/\s/.test(a[c-1]);)c--;let d=a.slice(c,b);if(!d.startsWith("@/")&&!d.startsWith("@~"))return null;let e=d.slice(0,2);return{startIndex:c,endIndex:b,query:d.slice(2),trigger:e}}(a,b);e(a=>((a?.startIndex!==c?.startIndex||a?.query!==c?.query||a?.trigger!==c?.trigger)&&null===c&&(null!==o.current&&clearTimeout(o.current),n.current&&(n.current.abort(),n.current=null),p.current=null,g([]),k(!1),m(null)),c)),c&&s(c.query,c.trigger)},[s]),u=(0,c.useCallback)(a=>{if(!q||0===f.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),i(a=>a<f.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),i(a=>a>0?a-1:f.length-1),!0;case"Enter":return a.preventDefault(),!0;case"Tab":return!0;case"Escape":return a.preventDefault(),e(null),g([]),!0;default:return!1}},[q,f.length]),v=(0,c.useCallback)(a=>{if(!d)return null;let b=aA(a.relativePath??a.path,d),c="folder"===a.type?"/":"",f=`@${b}${c} `;return e(null),g([]),{text:f,startIndex:d.startIndex,endIndex:d.endIndex}},[d]),w=(0,c.useCallback)(a=>{if(!d||"folder"!==a.type)return null;let b=aA(a.relativePath??a.path,d),c=b.startsWith("~/")?"@~":"@/",f=b.slice(1),g=`@${b}/`,h=d.startIndex+g.length,i=`${f}/`;return e({startIndex:d.startIndex,endIndex:h,query:i,trigger:c}),p.current=null,s(i,c),{text:g,startIndex:d.startIndex,endIndex:d.endIndex}},[d,s]),x=(0,c.useCallback)(a=>{g(b=>b.map(b=>b.path===a.path?{...b,attachMode:"contents"}:b))},[]);return{isOpen:q,token:d,suggestions:f,activeIndex:h,isLoading:j,error:l,handleInput:t,handleKeyDown:u,selectSuggestion:v,drillDown:w,close:(0,c.useCallback)(()=>{e(null),g([]),i(0)},[]),onAttachContents:x}}({maxSuggestions:8}),D=function({messages:a,maxSuggestions:b=5}){let[d,e]=(0,c.useState)(!1),[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(0),[j,k]=(0,c.useState)([]),[l,m]=(0,c.useState)(null),n=(0,c.useRef)([]);(0,c.useEffect)(()=>{let b=a.filter(a=>!a.rootMessageId),c=new Map;a.forEach(a=>{if(a.rootMessageId){let b=c.get(a.rootMessageId)||[];b.push(a),c.set(a.rootMessageId,b)}}),n.current=b.map(a=>{let b=c.get(a.id)||[],d=[a,...b],e=Math.max(...d.map(a=>a.timestamp)),f=a.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",g=[...new Set(d.map(a=>a.participantId||"user"))];return{rootMessageId:a.id,title:f,rootMessage:a,replies:b,participantIds:g,lastActivityAt:e}}).sort((a,b)=>b.lastActivityAt-a.lastActivityAt)},[a]);let o=(0,c.useCallback)((a,c)=>{let d=a.slice(0,c).match(/@#([^@#\s]*)$/);if(d){e(!0);let a=d[1].toLowerCase();g(a),m(d.index),i(0),k(n.current.filter(b=>b.title.toLowerCase().includes(a)).slice(0,b))}else e(!1),m(null)},[b]),p=(0,c.useCallback)(a=>!!d&&0!==j.length&&("ArrowDown"===a.key?(a.preventDefault(),i(a=>(a+1)%j.length),!0):"ArrowUp"===a.key?(a.preventDefault(),i(a=>(a-1+j.length)%j.length),!0):"Escape"===a.key&&(a.preventDefault(),e(!1),!0)),[d,j.length]),q=(0,c.useCallback)(a=>null===l?null:{startIndex:l,endIndex:l+2+f.length,text:""},[l,f]);return{isOpen:d,suggestions:j,activeIndex:h,handleInput:o,handleKeyDown:p,selectSuggestion:q,close:(0,c.useCallback)(()=>{e(!1),m(null)},[]),exportDiscussion:(0,c.useCallback)(async a=>{let b=[];try{let a=await fetch("/api/participants");a.ok&&(b=await a.json())}catch(a){console.warn("Failed to fetch participants for export",a)}let c=await fetch("/api/thread-export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a.rootMessageId,title:a.title,messages:[a.rootMessage,...a.replies],participants:b})});if(!c.ok)throw Error(`Export failed: ${await c.text()}`);return await c.json()},[])}}({messages:i,maxSuggestions:8}),E=function(){let[a,b]=(0,c.useState)([]),d=(0,c.useRef)(new Map),e=(0,c.useCallback)(a=>{let c=new XMLHttpRequest;d.current.set(a.id,c);let e=new FormData;e.append("file",a.file),c.upload.onprogress=c=>{if(c.lengthComputable){let d=Math.round(c.loaded/c.total*100);b(b=>b.map(b=>b.id===a.id?{...b,progress:d}:b))}},c.onload=()=>{if(d.current.delete(a.id),c.status>=200&&c.status<300)try{let d=JSON.parse(c.responseText),e=d.attachments?.[0];if(e)return void b(b=>b.map(b=>b.id===a.id?{...b,status:"uploaded",progress:100,serverId:e.id}:b))}catch{}let e=(()=>{try{return JSON.parse(c.responseText)?.error||"Upload failed"}catch{return"Upload failed"}})();b(b=>b.map(b=>b.id===a.id?{...b,status:"failed",error:e}:b))},c.onerror=()=>{d.current.delete(a.id),b(b=>b.map(b=>b.id===a.id?{...b,status:"failed",error:"Network error"}:b))},c.open("POST","/api/upload"),c.send(e)},[]),f=(0,c.useCallback)(c=>{let d=Array.from(c),f=function(a){let b=a.reduce((a,b)=>a+b.size,0);if(b>0x3200000){let a=(b/1048576).toFixed(1);return{file:"(total)",reason:`Total attachment size (${a}MB) exceeds 50MB limit`}}return null}([...a.map(a=>({name:a.filename,size:a.size,type:a.mimeType})),...d.map(a=>({name:a.name,size:a.size,type:a.type}))]);if(f)return void alert(f.reason);let g=[];for(let a of d){let b=function(a){let b=a.name.includes(".")?"."+a.name.split(".").pop().toLowerCase():"";if(ay.has(b))return{file:a.name,reason:`File type "${b}" is not allowed`};if(a.type&&!ax.has(a.type))return{file:a.name,reason:`File type "${a.type}" is not supported`};if(!a.type&&!ax.has("application/octet-stream"),a.size>0xa00000){let b=(a.size/1048576).toFixed(1);return{file:a.name,reason:`File is too large (${b}MB). Maximum is 10MB`}}return 0===a.size?{file:a.name,reason:"File is empty"}:null}({name:a.name,size:a.size,type:a.type});if(b){g.push({id:crypto.randomUUID(),file:a,filename:a.name,mimeType:a.type,size:a.size,previewUrl:null,progress:0,status:"failed",error:b.reason});continue}let c=a.type.startsWith("image/")?URL.createObjectURL(a):null,d={id:crypto.randomUUID(),file:a,filename:a.name,mimeType:a.type||"application/octet-stream",size:a.size,previewUrl:c,progress:0,status:"uploading"};g.push(d)}for(let a of(b(a=>[...a,...g]),g))"uploading"===a.status&&e(a)},[a,e]),g=(0,c.useCallback)(a=>{b(b=>{let c=b.find(b=>b.id===a);c?.previewUrl&&URL.revokeObjectURL(c.previewUrl);let e=d.current.get(a);return e&&(e.abort(),d.current.delete(a)),c?.serverId&&fetch(`/api/upload/${c.serverId}`,{method:"DELETE"}).catch(()=>{}),b.filter(b=>b.id!==a)})},[]),h=(0,c.useCallback)(a=>{b(b=>{let c=b.find(b=>b.id===a);if(!c||"failed"!==c.status)return b;let d=b.map(b=>b.id===a?{...b,status:"uploading",error:void 0,progress:0}:b),f=d.find(b=>b.id===a);return setTimeout(()=>e(f),0),d})},[e]),i=(0,c.useCallback)(()=>{b(a=>{for(let b of a){b.previewUrl&&URL.revokeObjectURL(b.previewUrl);let a=d.current.get(b.id);a&&a.abort()}return d.current.clear(),[]})},[]),j=0===a.length||a.every(a=>"uploaded"===a.status||"failed"===a.status),k=a.some(a=>"uploaded"===a.status),l=a.filter(a=>"uploaded"===a.status&&a.serverId);return{staged:a,stageFiles:f,remove:g,retry:h,clear:i,canSend:j,hasUploaded:k,attachmentIds:l.map(a=>a.serverId),getAttachmentMetas:(0,c.useCallback)(()=>l.map(a=>({id:a.serverId,filename:a.filename,mimeType:a.mimeType,size:a.size,status:"uploaded",url:`/api/attachments/${a.serverId}`})),[l])}}(),F=function(){let[a,b]=(0,c.useState)([]),d=(0,c.useCallback)((a,c,d)=>{b(b=>b.find(b=>b.path===a)?b.map(b=>b.path===a?{...b,label:c,attachMode:d??b.attachMode}:b):[...b,{kind:"file-path",id:crypto.randomUUID(),path:a,label:c,attachMode:d}])},[]);return{filePaths:a,addFilePath:d,removeFilePath:(0,c.useCallback)(a=>{b(b=>b.filter(b=>b.id!==a))},[]),clearFilePaths:(0,c.useCallback)(()=>{b([])},[]),hasFilePaths:a.length>0}}();(0,c.useEffect)(()=>{t&&!f.some(a=>a.id===t)&&u(null)},[f,t]);let G=(0,aq.useEditor)({immediatelyRender:!1,extensions:[ar.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),as.default.configure({placeholder:k}),aE,aF,aG,aH],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handlePaste:(a,b)=>{let c=b.clipboardData?.files;return!!c&&c.length>0&&(b.preventDefault(),E.stageFiles(c),!0)},handleDOMEvents:{compositionstart:()=>(w.current=!0,A.startComposition(),!1),compositionend:(a,b)=>(w.current=!1,setTimeout(()=>{if(!G)return;let a=aI(G);a&&A.endComposition(a.text,a.cursorPos)},0),!1)},handleKeyDown:(a,b)=>{if("Tab"===b.key||"Enter"===b.key&&!b.shiftKey){if(B.isOpen&&B.filteredCommands.length>0){b.preventDefault();let a=B.filteredCommands[B.activeIndex];return a&&M(a),!0}if(C.isOpen&&C.suggestions.length>0){b.preventDefault();let a=C.suggestions[C.activeIndex];return a&&("folder"===a.type?K(a):J(a)),!0}if(D.isOpen&&D.suggestions.length>0){b.preventDefault();let a=D.suggestions[D.activeIndex];return a&&L(a),!0}if(A.isOpen&&A.filteredSuggestions.length>0){b.preventDefault();let a=A.filteredSuggestions[A.activeIndex];return a&&I(a),!0}}let c={key:b.key,preventDefault:()=>b.preventDefault()};return!!(B.isOpen&&B.handleKeyDown(c)||C.isOpen&&C.handleKeyDown(c)||D.isOpen&&D.handleKeyDown(c)||A.handleKeyDown(c))||"Enter"===b.key&&!b.shiftKey&&(b.preventDefault(),N(),!0)}},onUpdate:({editor:a})=>{if(w.current)return;let b=aI(a);b&&(A.handleInput(b.text,b.cursorPos),B.handleInput(b.text,b.cursorPos),C.handleInput(b.text,b.cursorPos),D.handleInput(b.text,b.cursorPos))},onBlur:()=>{A.close(),B.close(),C.close(),D.close()}});(0,c.useEffect)(()=>{if(!n||!G)return;let{title:a,threadId:b,messages:c}=n;G.chain().focus().insertContent({type:"threadMention",attrs:{threadId:b,title:a}}).insertContent(" ").run();let d=c[0];if(d){let e={rootMessageId:b,title:a,rootMessage:d,replies:c.slice(1),participantIds:[...new Set(c.map(a=>a.participantId||"user"))],lastActivityAt:Math.max(...c.map(a=>a.timestamp))};D.exportDiscussion(e).then(a=>z(b=>[...b,a])).catch(a=>console.error("Failed to export discussion for Add to chat:",a))}o?.()},[n]);let H=(0,c.useCallback)(()=>{if(!G)return;let a=aI(G);a&&A.handleInput(a.text,a.cursorPos)},[G,A]),I=(0,c.useCallback)(a=>{if(!G)return;let b=A.selectSuggestion(a);if(!b)return;let c=aI(G);if(!c)return;let d=b.text.startsWith("@@"),e="project-group"===a.kind?{type:"participantMention",attrs:{id:a.project.id,name:a.project.name,mode:d?"parallel":"sequential",kind:"project"}}:"project"===a.kind?{type:"projectMention",attrs:{id:a.project.id,slug:a.project.slug,name:a.project.name}}:{type:"participantMention",attrs:{id:a.participant.id,name:a.participant.name,mode:d?"parallel":"sequential",kind:"agent"}};a_(G,c.blockStart,b.startIndex,b.endIndex,e),A.close()},[G,A]),J=(0,c.useCallback)(a=>{if(!G)return;let b=C.selectSuggestion(a);if(!b)return;let c=aI(G);if(!c)return;let d={type:"fileMention",attrs:{path:a.path,relativePath:a.relativePath??a.path,trigger:C.token?.trigger??"@/",attachMode:a.attachMode}};a_(G,c.blockStart,b.startIndex,b.endIndex,d),F.addFilePath(a.path,a.relativePath??a.path,a.attachMode)},[G,C,F]),K=(0,c.useCallback)(a=>{if(!G)return;let b=aI(G);if(!b)return;let c=C.drillDown(a);if(!c)return;let d=aK(G,b.blockStart,c.startIndex,c.endIndex);d&&G.chain().focus().deleteRange(d).insertContent(c.text).run()},[G,C]),L=(0,c.useCallback)(async a=>{if(!G)return;let b=D.selectSuggestion(a);if(!b)return;let c=aI(G);if(!c)return;let d={type:"threadMention",attrs:{threadId:a.rootMessageId,title:a.title}};a_(G,c.blockStart,b.startIndex,b.endIndex,d);try{let b=await D.exportDiscussion(a);z(a=>[...a,b])}catch(a){console.error("Failed to export discussion:",a)}},[G,D]),M=(0,c.useCallback)(a=>{B.selectCommand(a),G&&G.commands.clearContent()},[B,G]),N=(0,c.useCallback)(async()=>{if(!G)return;let b=(function(a){if(!a.content)return"";let b=[];for(let c of a.content)c.type,b.push(function(a){if(!a.content)return"";let b="";for(let c of a.content)switch(c.type){case"text":b+=c.text??"";break;case"participantMention":{let a=c.attrs??{},d="parallel"===a.mode?"@@":"@";b+=`${d}${a.name}`;break}case"projectMention":{let a=c.attrs??{},d=String(a.slug??"").trim();d?b+=`@~project:${d}`:a.name&&(b+=`@${a.name}`);break}case"fileMention":{let a=c.attrs??{},d=a.relativePath||a.path;b+=`@${d}`;break}case"threadMention":{let a=((c.attrs??{}).threadId??"").slice(0,8);b+=`@#${a}`;break}default:"hardBreak"===c.type&&(b+="\n")}return b}(c));return b.join("\n")})(G.getJSON()).trim();if(!b&&!E.hasUploaded&&!F.hasFilePaths||!E.canSend)return;if(b){let a=j.find(a=>a.name===b||a.aliases?.some(a=>`/${a}`===b));if(a){a.execute(),G.commands.clearContent(),B.close(),A.close();return}}let c=b||"(attached files)";if(y.length>0){let a=y.map(a=>`- "${a.title}" — ${a.summary} (full transcript: ${a.filePath})`).join("\n");c=`Referenced threads:
|
|
6
6
|
${a}
|
|
7
7
|
|
|
8
|
-
${c}`}if(F.hasFilePaths){let a=await az(F.filePaths);a.contextPrefix&&(c=a.contextPrefix+c)}let d=E.attachmentIds.length>0?E.attachmentIds:void 0,e=d?E.getAttachmentMetas():void 0;a(c,r,d,e,t??void 0),G.commands.clearContent(),u(null),z([]),E.clear(),F.clearFilePaths(),A.close(),B.close(),D.close()},[G,r,A,B,j,a,E,F,y,D]),O=A.isOpen&&A.filteredSuggestions.length>0;B.isOpen&&B.filteredCommands.length,C.isOpen&&C.suggestions.length,D.isOpen&&D.suggestions.length,O&&A.filteredSuggestions[A.activeIndex];let P=E.staged.some(a=>"uploading"===a.status),Q=!G||G.isEmpty,R=`${Math.max(12,Math.min(100,Math.round(r/50*100)))}%`,S=f.find(a=>a.id===t)??null;return(0,b.jsx)("div",{className:"pb-6",children:(0,b.jsx)("div",{className:"max-w-3xl mx-auto",children:(0,b.jsx)(aW,{onDrop:E.stageFiles,children:(0,b.jsxs)("div",{className:"bg-[var(--app-shell-elevated)] rounded-2xl border border-[var(--app-shell-border)] shadow-[0_8px_30px_rgb(0,0,0,0.12)] dark:shadow-[0_8px_30px_rgb(0,0,0,0.5)] transition-all duration-300",children:[q&&(0,b.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${p?"border-orange-200/50 dark:border-orange-500/30":"border-[var(--app-shell-border)]"}`,children:[(0,b.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${p?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:p?"shipBgSweep 4s ease-in-out infinite":"none"}}),p&&(0,b.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((a,c)=>(0,b.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*c}%`,right:"-10%",width:`${20+c%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+c%3*.1,animation:`shipSpeedLine ${.8+c%4*.3}s ${.1*c}s ease-in-out infinite`}},c))}),(0,b.jsx)("div",{className:"relative px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${p?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:p?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,b.jsx)(_,{size:14})}),(0,b.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${p?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,b.jsx)("span",{className:`text-xs transition-colors duration-300 ${p?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,b.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${p?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:p?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>q(!p),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${p?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${p?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,b.jsxs)("div",{className:"p-1.5 focus-within:ring-4 focus-within:ring-[var(--app-shell-border-strong)] transition-all",children:[E.staged.length>0&&(0,b.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,b.jsx)(aV,{attachments:E.staged,onRemove:E.remove,onRetry:E.retry})}),(0,b.jsxs)("div",{className:"flex items-end gap-2 p-2 relative",children:[(0,b.jsx)("button",{type:"button",onClick:x,className:"p-2.5 text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)] rounded-xl transition-all shrink-0","aria-label":"Attach file",title:"Attach file",children:(0,b.jsx)(aX,{className:"h-5 w-5",strokeWidth:1.75})}),(0,b.jsx)("input",{ref:v,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&a.target.files.length>0&&(E.stageFiles(a.target.files),a.target.value="")}}),(0,b.jsxs)("div",{className:"flex-1 relative",onClick:H,children:[(0,b.jsx)(an.EditorContent,{editor:G,className:"composer-editor"}),(0,b.jsx)(aK,{isOpen:A.isOpen&&!B.isOpen,suggestions:A.filteredSuggestions,activeIndex:A.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:I}),(0,b.jsx)(aL,{isOpen:B.isOpen,commands:B.filteredCommands,activeIndex:B.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:M}),(0,b.jsx)(aR,{isOpen:C.isOpen,suggestions:C.suggestions,activeIndex:C.activeIndex,isLoading:C.isLoading,error:C.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:a=>{"folder"===a.type?K(a):J(a)},onAttachContents:C.onAttachContents}),(0,b.jsx)(aS,{isOpen:D.isOpen&&!B.isOpen&&!C.isOpen,suggestions:D.suggestions,activeIndex:D.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:L})]}),e?(0,b.jsx)("button",{type:"button",onClick:d,className:"h-10 px-4 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] rounded-xl font-bold text-sm hover:opacity-90 shadow-sm flex items-center gap-2 transition-all shrink-0",children:"Stop"}):(0,b.jsxs)("button",{type:"button",onClick:N,disabled:Q&&!E.hasUploaded&&!F.hasFilePaths||P,className:"h-10 px-4 bg-[var(--primary)] text-[var(--primary-foreground)] rounded-xl font-bold text-sm hover:bg-[var(--primary-hover)] disabled:opacity-50 disabled:cursor-not-allowed shadow-md flex items-center gap-2 transition-all shrink-0",children:["Send",(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,b.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]}),(0,b.jsxs)("div",{className:"px-4 pb-2.5 pt-1 flex items-center justify-between border-t border-[var(--app-shell-border)] mt-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[10px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Turns"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"h-1.5 w-14 bg-[var(--app-shell-border)] rounded-full overflow-hidden",children:(0,b.jsx)("div",{className:"h-full rounded-full transition-all duration-500 bg-[var(--primary)]",style:{width:R}})}),(0,b.jsx)("select",{value:r,onChange:a=>s(Number(a.target.value)),className:"bg-transparent border-none outline-none text-xs font-semibold text-[var(--app-shell-muted)] cursor-pointer appearance-none hover:text-[var(--primary)] transition-colors",children:[1,3,5,10,20,50].map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]})]}),(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===f.length?(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):f.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":t===a.id,onClick:()=>u(b=>b===a.id?null:a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),u(b=>b===a.id?null:a.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${t===a.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:a.name,children:[(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"w-full h-full rounded-full object-cover"}),e&&(0,b.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2 h-2 bg-emerald-400 border border-[var(--app-shell-elevated)] rounded-full"})]},a.id))})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[var(--app-shell-muted)]",children:[S&&(0,b.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:S.name})]}),(0,b.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-tight",children:e?"Working":"Ready"}),(0,b.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${e?"bg-amber-400 animate-pulse":"bg-emerald-400"}`})]})]})]})]})})})})}var a$=a.i(55672);let a_={activeParticipantIdsByThread:{}};function a0(a,b){let c=a.trim();if(c)({...a_}).activeParticipantIdsByThread[c]=function(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();!a||b.has(a)||(b.add(a),c.push(a))}return c}(b)}let a1={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,hasCompletedFirstRun:!1,fileIgnorePatterns:[]};function a2(a){return a&&"object"==typeof a?{threadSidebarVisible:"boolean"==typeof a.threadSidebarVisible?a.threadSidebarVisible:a1.threadSidebarVisible,workspaceRoots:Array.isArray(a.workspaceRoots)?a.workspaceRoots.filter(a=>"string"==typeof a):a1.workspaceRoots,homeSearchConsent:"boolean"==typeof a.homeSearchConsent?a.homeSearchConsent:a1.homeSearchConsent,hasCompletedFirstRun:"boolean"==typeof a.hasCompletedFirstRun?a.hasCompletedFirstRun:a1.hasCompletedFirstRun,fileIgnorePatterns:Array.isArray(a.fileIgnorePatterns)?a.fileIgnorePatterns.filter(a=>"string"==typeof a):a1.fileIgnorePatterns}:a1}let a3="/api/userPreferences";function a4(a){return a.json().then(a=>a&&"object"==typeof a?a2(a.preferences??a):a2(a)).catch(()=>a2(null))}function a5(a){return a.statusText||`Failed to reach ${a3} (${a.status})`}async function a6(){let a=await fetch(a3,{cache:"no-store"});if(!a.ok)throw Error(a5(a));return a4(a)}async function a7(a){let b=await fetch(a3,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:a})});if(!b.ok)throw Error(a5(b));return a4(b)}var a8=a.i(56196),a9=a.i(87532),ba=a.i(13749);let bb=(0,o.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),bc=(0,o.default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),bd=(0,o.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),be=(0,o.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);function bf({logs:a,participants:d,onClear:e,open:f,onToggle:g}){let[h,i]=(0,c.useState)(420),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)(!1),n=(0,c.useRef)(0),o=(0,c.useRef)(0),p=Object.fromEntries(d.map(a=>[a.id,a]));(0,c.useEffect)(()=>{f&&l.current?.scrollIntoView({behavior:"smooth"})},[a.length,f]);let q=(0,c.useCallback)(a=>{a.preventDefault(),m.current=!0,n.current=a.clientX,o.current=h,a.target.setPointerCapture(a.pointerId)},[h]),r=(0,c.useCallback)(a=>{if(!m.current)return;let b=n.current-a.clientX;i(Math.max(280,Math.min(o.current+b,.6*window.innerWidth)))},[]),s=(0,c.useCallback)(()=>{m.current=!1},[]);if(!f)return null;let t=j?a.filter(a=>a.participantId===j):a;return(0,b.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,b.jsx)("div",{onPointerDown:q,onPointerMove:r,onPointerUp:s,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,b.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,b.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:h},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,b.jsxs)("select",{value:j||"",onChange:a=>k(a.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:e,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,b.jsx)("button",{onClick:g,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[t.map((a,c)=>{let d=p[a.participantId]?.name||a.participantId,e=p[a.participantId]?.color||"#888",f="stderr"===a.stream;return(0,b.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(a.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,b.jsx)("span",{className:"shrink-0",style:{color:e},children:d}),(0,b.jsx)("span",{className:f?"text-red-400":"text-[var(--muted-foreground)]",children:a.line})]},c)}),(0,b.jsx)("div",{ref:l})]})]})]})}function bg(){let[a,d]=(0,c.useState)("unknown"),[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(""),[j,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void d("unknown");let b=await a.json();d("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);f(c),h(new Date().toLocaleTimeString())}catch{d("unknown"),f([])}},[]);return(0,c.useEffect)(()=>{l();let a=setInterval(l,3e4);return()=>clearInterval(a)},[l]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),children:[(0,b.jsx)(i.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,b.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===a?"bg-emerald-400":"degraded"===a?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===a?"animate-pulse":""}`})}),j&&(0,b.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[e.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:e.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("span",{className:"ok"===a.status?"text-emerald-600":"error"===a.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===a.status?"Healthy":"error"===a.status?a.detail||"Error":"Unavailable"})]},a.name))}):(0,b.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),g&&(0,b.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",g]})]})]})}function bh(a,b=!1){return(b?a.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():a).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}function bi(a,b,c){let d=new Set(a.map(a=>a.id)),e=c?b.find(a=>a.thread_ids?.includes(c)):b[0],f=e?e.agents.map(a=>a.agent_id).filter(a=>d.has(a)):[];if(0===f.length)return a.map(a=>a.id);let g=new Set(f);return[...f,...a.map(a=>a.id).filter(a=>!g.has(a))]}function bj(a,b,c){let d=Object.fromEntries(b.map(a=>[a.id,a])),e=[];for(let b of a){let a="user"===b.role?"You":b.participantId?d[b.participantId]?.name||b.participantId:"Assistant",c=bh(b.content,"user"!==b.role);c&&(e.push(`**${a}:**`),e.push(""),e.push(c),e.push(""))}if(c){let a=function(a){if(0===a.tasks.length)return"";let b=new Map(a.tasks.map(a=>[a.id,a.title.trim()])),c=["## Draft Tasks",""];return a.projectName&&c.push(`Project: ${a.projectName}`),a.buildStatus&&c.push(`Build status: ${a.buildStatus.replaceAll("_"," ")}`),(a.projectName||a.buildStatus)&&c.push(""),a.tasks.forEach((d,e)=>{let f=bh(d.title)||`Task ${e+1}`,g=bh(d.description),h=(d.dependsOn||[]).map(a=>b.get(a)?.trim()).filter(a=>!!a),i=a.builtTaskIds?.[d.id];c.push(`${e+1}. [ ] **${f}**`),g&&c.push(g),h.length>0&&c.push(`Depends on: ${h.join(", ")}`),i&&c.push(`agx task id: \`${i}\``),c.push("")}),c.join("\n").trim()}(c);a&&e.push(a)}return e.join("\n").trim()}function bk({projectSlug:a,initialThreadId:i,initialRootMessageId:j}={}){let{threads:k,activeThreadId:l,selectThread:m,createThread:n,deleteThread:o,updateThreadMessages:p,isCreating:q,deletingThreadId:r,renamingThreadId:s,isLoading:t,isRestoringActiveThread:u,renameThread:v,updateThreadStatus:w,updateThreadOutcomeNote:x,updateMessageThreadStatus:y,updateMessageOutcomeNote:z}=(0,g.useThreadState)(i),{messages:A,setMessages:B,logs:C,sendMessage:D,loadHistory:E,clearLogs:F,stop:H,stopThread:I}=function(a){let[b,f]=(0,c.useState)([]),[g,h]=(0,c.useState)([]),i=(0,c.useRef)(a),j=(0,c.useRef)(a);i.current=a,j.current!==a&&(j.current=a,f([]),h([]));let k=(0,c.useCallback)(async a=>{let b=a?.trim()||i.current?.trim();if(!b){f([]),h([]);return}let c=d(b);try{let[a,d]=await Promise.all([fetch(`/api/history?${c}`),fetch(`/api/logs?${e(b)}`)]);if(i.current!==b)return;a.ok&&f(await a.json()),d.ok&&h(await d.json())}catch{}},[]),l=(0,c.useCallback)(async a=>{let b=a?.trim()||i.current?.trim();if(!b){f([]),h([]);return}let c=d(b);await Promise.all([fetch(`/api/history?${c}`,{method:"DELETE"}),fetch(`/api/logs?${e(b)}`,{method:"DELETE"})]),i.current===b&&(f([]),h([]))},[]),m=(0,c.useCallback)(async(a,b=10,c,d,e,g,h,j)=>{let k=c?.trim()||i.current?.trim();if(!k)return;let l=Date.now(),m=crypto.randomUUID(),n={id:m,role:"user",participantId:null,content:a,timestamp:l,rootMessageId:d||null,parentMessageId:d||null,depth:+!!d,...g&&g.length>0?{attachments:g}:{}};f(a=>[...a,n]);try{await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:k,prompt:a,maxRounds:b,userMessageId:m,rootMessageId:d||void 0,attachmentIds:e?.length?e:void 0,activeParticipantIds:Array.isArray(h)?h:void 0,projectSlug:j?.trim()||void 0})})}catch{}return m},[]),n=(0,c.useCallback)(async()=>{let a=i.current?.trim();if(a)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]),o=(0,c.useCallback)(async a=>{let b=i.current?.trim();if(b)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(b)}&threadId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]);return{messages:b,setMessages:f,logs:g,sendMessage:m,loadHistory:k,clearHistory:l,clearLogs:(0,c.useCallback)(async a=>{let b=a?.trim()||i.current?.trim();b?(await fetch(`/api/logs?${e(b)}`,{method:"DELETE"}).catch(()=>{}),i.current===b&&h([])):h([])},[]),stop:n,stopThread:o}}(l),{activeAgents:J,processes:K,streaming:L,poll:M}=(0,f.useProcessPolling)(l?{workspaceId:l}:null,{messages:A,setMessages:B}),N=J.size>0,O=(0,c.useCallback)(async()=>{await H(),await M()},[H,M]),P=(0,c.useCallback)(async a=>{await I(a),await M()},[I,M]),{projects:Q,createProject:R,deleteProject:S,addAgent:T,removeAgent:U,reorderAgents:V}=(0,a8.useProjectsWithAgents)(),{projects:W,updateProject:X}=(0,a8.useProjects)(),[Y,Z]=(0,c.useState)([]),[$,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)([]),[ac,ae]=(0,c.useState)(!1),[af,ag]=(0,c.useState)(()=>"light"),[ah,ai]=(0,c.useState)(!1);(0,c.useEffect)(()=>{ai((0,a$.loadWorkspaceSidebarVisible)())},[]),(0,c.useEffect)(()=>{},[af]);let[ak,al]=(0,c.useState)(!1),[an,ao]=(0,c.useState)(new Set),[ap,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(j??null),at=ar?an.has(ar):ap;(0,c.useEffect)(()=>{if(!ar)return;let a=!1,b=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(ar)}`).then(a=>a.json()).then(b=>{a||ao(a=>{let c=a.has(ar);if(b.active&&!c){let b=new Set(a);return b.add(ar),b}if(!b.active&&c){let b=new Set(a);return b.delete(ar),b}return a})}).catch(()=>{})};b();let c=setInterval(b,1e4);return()=>{a=!0,clearInterval(c)}},[ar]),(0,c.useEffect)(()=>{let a=!1,b=()=>{fetch("/api/schedules").then(a=>a.json()).then(b=>{!a&&b.activeRootMessageIds&&ao(a=>{let c=new Set(b.activeRootMessageIds);for(let b of a)c.add(b);return c.size===a.size&&[...c].every(b=>a.has(b))?a:c})}).catch(()=>{})};b();let c=setInterval(b,15e3);return()=>{a=!0,clearInterval(c)}},[]),(0,c.useEffect)(()=>{ar?window.history.replaceState(null,"",`/thread/${ar}`):window.history.replaceState(null,"","/")},[ar,l]),(0,c.useEffect)(()=>{j&&(async()=>{try{let a=await fetch(`/api/messages/${j}`);if(!a.ok)return;let{threadId:b}=await a.json();b&&m(b)}catch{}})()},[j,m]);let[au,av]=(0,c.useState)(""),[aw,ax]=(0,c.useState)([]),[ay,az]=(0,c.useState)(0),[aA,aB]=(0,c.useState)(!1),[aC,aD]=(0,c.useState)(null),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)(new Set),[aI,aJ]=(0,c.useState)(null),[aK,aL]=(0,c.useState)({}),aM=(0,c.useCallback)(a=>{aL(b=>{let c="function"==typeof a?a(b):a;if(l)for(let[a,d]of Object.entries(c))b[a]!==d&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:l,messageId:a,draft:d})}).catch(()=>{});return c})},[l]),[aN,aO]=(0,c.useState)(new Set),[aP,aQ]=(0,c.useState)(new Set),aR=(0,c.useRef)(null),aS=(0,c.useRef)(null),aT=(0,c.useRef)(null),aU=(0,c.useRef)(""),aV=(0,c.useCallback)(async(a=!1)=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();if(!Array.isArray(b))return;Z(b)}finally{a&&_(!0)}},[]),aW=(0,c.useCallback)(async a=>{try{await a7({threadSidebarVisible:a})}catch(a){console.error("Unable to persist thread sidebar preference",a)}},[a7]),aX=(0,c.useCallback)(a=>{(0,a$.persistWorkspaceSidebarVisible)(a),aW(a)},[aW]),aY=au.trim(),a1=aY.length>0,a2=(0,c.useMemo)(()=>Object.fromEntries(k.map(a=>[a.id,a.title?.trim()||"Untitled thread"])),[k]),a3=(0,c.useMemo)(()=>{if(!ar)return[];let a=new Set([A.find(a=>a.id===ar),...A.filter(a=>a.rootMessageId===ar)].filter(Boolean).map(a=>a.participantId).filter(Boolean));return Object.keys(L).forEach(b=>{L[b].rootMessageId===ar&&a.add(b)}),Y.filter(b=>a.has(b.id))},[ar,A,L,Y]),a4=(0,c.useMemo)(()=>{let a=new Map(Y.map(a=>[a.id,a]));return aa.map(b=>a.get(b)).filter(Boolean)},[Y,aa]),a5=(0,c.useMemo)(()=>W.map(a=>({id:a.id,name:a.name,slug:a.slug})),[W]),bh=(0,c.useMemo)(()=>{if(!ar)return 0;let a=[A.find(a=>a.id===ar),...A.filter(a=>a.rootMessageId===ar)].filter(Boolean);return 0===a.length?0:Math.max(...a.map(a=>a.timestamp))},[ar,A]),bl=(0,c.useMemo)(()=>{if(!ar)return"";let a=A.find(a=>a.id===ar);if(!a)return"Thread";let b=a.content.trim();return b.length>60?b.slice(0,60)+"...":b},[ar,A]),bm=(0,c.useCallback)(()=>{av(""),ax([]),az(0),aD(null),aB(!1)},[]);(0,c.useCallback)(()=>{let a=bj(A,Y);navigator.clipboard.writeText(a).then(()=>{ae(!0),setTimeout(()=>ae(!1),2e3)})},[A,Y]);let[bn,bo]=(0,c.useState)(null),bp=(0,c.useCallback)(a=>{let b=A.find(b=>b.id===a);if(!b)return;let c=[b,...A.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)];bo({title:b.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:a,messages:c})},[A]),bq=(0,c.useCallback)(a=>{let b=bj([A.find(b=>b.id===a),...A.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)].filter(Boolean),Y,aK[a]);navigator.clipboard.writeText(b).catch(a=>console.error("Failed to copy thread",a))},[A,Y,aK]);(0,c.useEffect)(()=>{aV(!0)},[aV]);let br=(0,c.useMemo)(()=>{if(!$)return[];let a=new Set(Y.map(a=>a.id)),b=new Set;for(let c of A)"assistant"===c.role&&c.participantId&&(a.has(c.participantId)||b.add(c.participantId));for(let c of Object.keys(L))a.has(c)||b.add(c);return Array.from(b).sort()},[A,Y,$,L]);(0,c.useEffect)(()=>{if(!$)return;let a=br.join("|");if(!a){aU.current="";return}aU.current!==a&&(aU.current=a,aV(!1))},[$,aV,br]),(0,c.useEffect)(()=>{if(!$)return;let a=bi(Y,Q,l);if(!l)return void ab(a);let b=function(a){let b=a.trim();if(!b)return null;let c={...a_};return b in c.activeParticipantIdsByThread?[...c.activeParticipantIdsByThread[b]]:null}(l);if(null===b)return void ab(a);let c=function(a,b){if(null===b)return a;let c=new Set(b);return a.filter(a=>c.has(a))}(a,b);(c.length!==b.length||c.some((a,c)=>b[c]!==a))&&a0(l,c),ab(c)},[l,Y,$,Q]),(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await a6();if(a)return;ai(a=>a===b.threadSidebarVisible?a:((0,a$.persistWorkspaceSidebarVisible)(b.threadSidebarVisible),b.threadSidebarVisible))}catch(a){console.error("Failed to load user preferences",a)}})(),()=>{a=!0}},[a6,a$.persistWorkspaceSidebarVisible]),(0,c.useEffect)(()=>{t||q||0!==k.length||n({id:"global",title:"General"})},[t,q,k.length,n]),(0,c.useEffect)(()=>()=>{aT.current&&window.clearTimeout(aT.current)},[]),(0,c.useEffect)(()=>{let a=a=>{if((a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()){a.preventDefault(),aR.current?.focus(),aR.current?.select();return}"Escape"===a.key&&aY&&bm()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[bm,aY]),(0,c.useEffect)(()=>{if(!aY){ax([]),az(0),aD(null),aB(!1);return}let a=!1;aB(!0);let b=window.setTimeout(()=>{(async()=>{try{let b=new URLSearchParams({q:aY,limit:"20",offset:"0"}),c=await fetch(`/api/search?${b.toString()}`),d=await c.json().catch(()=>null);if(a)return;if(!c.ok){let a=d&&"object"==typeof d&&"error"in d?String(d.error):"Search failed";ax([]),az(0),aD(a);return}ax(Array.isArray(d.results)?d.results:[]),az("number"==typeof d.total?d.total:0),aD(null)}catch(b){if(a)return;console.error("Search request failed",b),ax([]),az(0),aD("Search failed")}finally{a||aB(!1)}})()},300);return()=>{a=!0,window.clearTimeout(b)}},[aY]);let bs=(0,c.useRef)(null);(0,c.useEffect)(()=>{null!==bs.current&&bs.current!==l&&(O(),aS.current?(as(aS.current),aS.current=null):as(null)),bs.current=l,l&&(E(l),fetch(`/api/task-drafts?threadId=${encodeURIComponent(l)}`).then(a=>a.json()).then(a=>{a.drafts&&Object.keys(a.drafts).length>0?aL(a.drafts):aL({})}).catch(()=>aL({})))},[l,E,O]),(0,c.useEffect)(()=>{l&&p(l,A)},[l,A,p]);let bt=(0,c.useCallback)((b,c,d=10,e)=>{if(!l||0===a4.length)return;let f=a4.map(a=>a.id);D(c,d,l,b,void 0,void 0,e&&f.includes(e)?[e,...f.filter(a=>a!==e)]:f,a)},[l,D,a4,a]),bu=(0,c.useCallback)(async a=>{if(l){if(0===a4.length)return void window.alert("Enable at least one agent in this project.");aH(b=>new Set(b).add(a));try{let b=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:l,rootMessageId:a,activeParticipantIds:a4.map(a=>a.id)})});b.ok?await E(l):console.error("Summarize failed:",await b.text())}catch(a){console.error("Summarize error:",a)}finally{aH(b=>{let c=new Set(b);return c.delete(a),c})}}},[l,E,a4]),bv=(0,c.useCallback)(async a=>{if(l){if(0===a4.length)return void window.alert("Enable at least one agent in this project.");aO(b=>new Set(b).add(a));try{let b=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:l,rootMessageId:a,activeParticipantIds:a4.map(a=>a.id)})});if(b.ok){let c=await b.json(),d={draftId:crypto.randomUUID(),revision:0,tasks:c.tasks,buildStatus:"idle"};aM(b=>({...b,[a]:d}))}else console.error("Task extraction failed:",await b.text())}catch(a){console.error("Task extraction error:",a)}finally{aO(b=>{let c=new Set(b);return c.delete(a),c})}}},[l,a4]),bw=(0,c.useCallback)((a,b)=>{aM(c=>({...c,[a]:b}))},[]),bx=(0,c.useCallback)(async(a,b,c,d)=>{if(l){aQ(a=>new Set(a).add(b.draftId)),aM(e=>({...e,[a]:{...b,buildStatus:"building",projectId:c,projectName:d}}));try{let d=crypto.randomUUID(),e=await G(b.tasks,c,d,b.builtTaskIds),f={...b.builtTaskIds},g=!1;for(let a of e.results)"created"===a.status&&a.remoteTaskId?f[a.clientTaskId]=a.remoteTaskId:g=!0;aM(b=>({...b,[a]:{...b[a],buildId:d,buildStatus:g?"partial_failure":"done",builtTaskIds:f}}))}catch(b){console.error("Build error:",b),aM(b=>({...b,[a]:{...b[a],buildStatus:"partial_failure"}}))}finally{aQ(a=>{let c=new Set(a);return c.delete(b.draftId),c})}}},[l]),by=(0,c.useCallback)(()=>{if(!l)return;let a=(()=>{if(ar)return ar;let a=new Set(A.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=A.length-1;b>=0;b-=1){let c=A[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bv(a):console.warn("No thread with replies available to extract tasks from")},[l,bv,A,ar]);(0,c.useCallback)(a=>{as(a)},[]);let bz=(0,c.useCallback)(a=>{as(a)},[]),bA=(0,c.useCallback)(a=>{let b=a?.trim()??"";b&&av(b),requestAnimationFrame(()=>{aR.current?.focus(),b||aR.current?.select()})},[]),bB=(0,c.useCallback)(()=>{if(!l)return;let a=(()=>{if(ar)return ar;let a=new Set(A.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=A.length-1;b>=0;b-=1){let c=A[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bu(a):console.warn("No thread with replies available to summarize")},[l,bu,A,ar]),bC=(0,c.useCallback)(async(b,c,d,e,f)=>{let g=b.match(/^\/search(?:\s+([\s\S]+))?$/i);if(g)return void bA(g[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(b))return void bB();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(b)||/^\/create(?:\s+[\s\S]+)?$/i.test(b))return void by();at&&ar&&(ao(a=>{let b=new Set(a);return b.delete(ar),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:ar})}).catch(a=>console.error("Failed to deactivate schedule:",a)));let h=l;h||(h=(await n()).id);let i=a4.map(a=>a.id);if(0===i.length)return void window.alert("Enable at least one agent in this project.");let j=f&&i.includes(f)?[f,...i.filter(a=>a!==f)]:i;if(ar)return void await D(b,c,h,ar,d,e,j,a);let k=await D(b,c,h,null,d,e,j,a);ap&&k&&(aq(!1),ao(a=>{let b=new Set(a);return b.add(k),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:k})}).catch(a=>console.error("Failed to activate schedule for new thread:",a)))},[l,at,ap,n,bA,bB,ar,a4,D,a]),bD=(0,c.useCallback)(async a=>{if(!ar)return void aq(a);ao(b=>{let c=new Set(b);return a?c.add(ar):c.delete(ar),c});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a?"activate":"stop",rootMessageId:ar})})}catch(a){console.error("Failed to toggle autonomous schedule:",a)}},[ar]),bE=(0,c.useCallback)(a=>{let b=a.rootMessageId||a.messageId;a.threadId!==l?(aS.current=b,m(a.threadId)):as(b),aF(null),window.requestAnimationFrame(()=>{aF(a.messageId),aT.current&&window.clearTimeout(aT.current),aT.current=window.setTimeout(()=>{aF(b=>b===a.messageId?null:b)},2e3)}),bm()},[l,bm,m]),bF=(0,c.useCallback)(async a=>{O(),await o(a)},[o,O]),bG=(0,c.useCallback)(async a=>{if(l&&a&&window.confirm("Delete this thread and all of its replies?")){aJ(a),P(a);try{let b=new URLSearchParams({threadId:l,rootMessageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message thread",await c.text());as(b=>b===a?null:b),aF(null);let d=A.filter(b=>b.id!==a&&b.rootMessageId!==a);p(l,d),await E(l)}catch(a){console.error("Failed to delete message thread",a)}finally{aJ(b=>b===a?null:b)}}},[l,E,A,P,p]),bH=(0,c.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>bA()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>bB()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>by()}],[bA,bB,by]),bI=(0,c.useMemo)(()=>l?Q.filter(a=>a.thread_ids?.includes(l)):Q,[Q,l]),bJ=(0,c.useCallback)(a=>(0,b.jsx)(aZ,{onSend:(b,c,d,e,f)=>bt(a,b,c,f),onStop:()=>P(a),loading:Object.values(L).some(b=>b.rootMessageId===a),participants:a4,projectGroups:bI,projects:a5,messages:A,commands:bH,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:at,onAutoModeChange:bD}),[bt,P,L,a4,bI,a5,bH,A,at,bD]),bK=(0,c.useCallback)(()=>{ai(a=>{let b=!a;return aX(b),b})},[aX]),bL=async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok){let a=await b.json();Z(b=>b.map(b=>b.id===a.id?a:b))}},bM=(0,c.useCallback)((a,b)=>{ab(c=>{let d=bi(Y,Q,l);if(!new Set(d).has(a))return c;let e=new Set(c);b?e.add(a):e.delete(a);let f=d.filter(a=>e.has(a));return l&&a0(l,f),f})},[l,Y,Q]),bN=(0,c.useCallback)(a=>{let b=Q.find(b=>b.id===a);if(!b||l&&!b.thread_ids?.includes(l))return;let c=b.agents.map(a=>a.agent_id);ab(c),l&&a0(l,c)},[Q,l]),bO=(0,c.useCallback)(()=>{ag(a=>"dark"===a?"light":"dark")},[]),bP=()=>(0,b.jsx)("button",{type:"button",onClick:bO,"aria-label":"dark"===af?"Switch to light theme":"Switch to dark theme",title:"dark"===af?"Switch to light theme":"Switch to dark theme",className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:"dark"===af?(0,b.jsx)(be,{className:"h-4 w-4",strokeWidth:1.75}):(0,b.jsx)(bd,{className:"h-4 w-4",strokeWidth:1.75})}),bQ=(0,b.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:!ah&&(0,b.jsx)("button",{type:"button",onClick:bK,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(bc,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,b.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,b.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,b.jsx)(a9.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:2}),(0,b.jsx)("input",{ref:aR,type:"text",value:au,onChange:a=>av(a.target.value),onKeyDown:a=>{"Escape"===a.key&&bm()},placeholder:"Search messages…",className:"h-9 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),aY?(0,b.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:aA?"…":ay}),(0,b.jsx)("button",{type:"button",onClick:bm,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,b.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[bP(),(0,b.jsx)(bg,{}),ar&&(0,b.jsx)("button",{type:"button",onClick:()=>al(!ak),"aria-label":ak?"Hide logs":`Show logs${C.length>0?` (${C.length})`:""}`,"aria-pressed":ak,title:ak?"Hide logs":`Show logs${C.length>0?` (${C.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ak?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(bb,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,b.jsxs)("div",{className:"flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]",children:[(0,b.jsx)(h.WorkspaceSidebar,{threads:k,participants:Y,activeThreadId:l,isLoading:t,isRestoringActiveThread:u,isCreating:q,deletingThreadId:r,renamingThreadId:s,onSelectThread:m,onCreateThread:n,onRenameThread:v,onDeleteThread:bF,activeParticipantIds:aa,onToggleParticipantActive:bM,visible:ah,onToggle:bK,projects:Q,onCreateProject:R,onUpdateProject:X,onDeleteProject:S,onAddAgentToProject:T,onRemoveAgentFromProject:U,onReorderProjectAgents:V,onUpdateParticipant:bL,onSelectProject:bN}),(0,b.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:u?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,b.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[ar?(0,b.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,b.jsx)("button",{onClick:()=>as(null),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-indigo-500 hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,b.jsx)(ba.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,b.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:bl}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsxs)("span",{className:"opacity-80",children:[a3.length," agents"]}),(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsxs)("span",{className:"opacity-80",children:["Updated ",function(a){if(!a)return"recently";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";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`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(bh)]})]})]}),(0,b.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:a3.map(a=>(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]",title:a.name},a.id))}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[bP(),(0,b.jsx)(bg,{}),(0,b.jsx)("button",{type:"button",onClick:()=>al(!ak),"aria-label":ak?"Hide logs":`Show logs${C.length>0?` (${C.length})`:""}`,"aria-pressed":ak,title:ak?"Hide logs":`Show logs${C.length>0?` (${C.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ak?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(bb,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):bQ,a1?(0,b.jsx)(am,{query:aY,results:aw,total:ay,participants:Y,threadTitleById:a2,isLoading:aA,error:aC,onSelectResult:bE}):ar?(0,b.jsx)(aj,{messages:A,streaming:L,participants:Y,rootMessageId:ar,onClose:()=>as(null),onCopyThread:bq,onAddToChat:bp,onDeleteThreadRoot:bG,highlightedMessageId:aE||void 0,renderReplyComposer:bJ,activeProcesses:K.filter(a=>["spawning","running"].includes(a.state)&&a.threadId===ar)}):(0,b.jsx)(ad,{messages:A,streaming:L,participants:Y,onOpenThread:bz,onCopyThread:bq,onAddToChat:bp,onDeleteThreadRoot:bG,onSummarize:bu,onCreateTasks:bv,onUpdateTaskDraft:bw,onBuildTasks:bx,summarizingThreads:aG,extractingTasks:aN,buildingDrafts:aP,taskDrafts:aK,deletingThreadRootId:aI,highlightedMessageId:aE,shipModeThreads:an,onUpdateMessageThreadStatus:l?(a,b)=>{B(c=>c.map(c=>c.id===a?{...c,threadStatus:b}:c)),y(l,a,b),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:b})})}:void 0,onUpdateMessageOutcomeNote:l?(a,b)=>{B(c=>c.map(c=>c.id===a?{...c,outcomeNote:b}:c)),z(l,a,b);let c=A.find(b=>b.id===a);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:c?.threadStatus??null,outcomeNote:b})})}:void 0}),!a1&&!ar&&(0,b.jsx)(aZ,{onSend:bC,onStop:O,loading:N,participants:a4,projects:a5,projectGroups:bI,messages:A,commands:bH,pendingThreadInsert:bn,onClearPendingThread:()=>bo(null),autoMode:at,onAutoModeChange:bD})]})})}),j&&(0,b.jsx)(bf,{logs:C,participants:Y,onClear:()=>void F(l),open:ak,onToggle:()=>al(!1)})]})}a.s(["ChatContainer",()=>bk],24610)}];
|
|
8
|
+
${c}`}if(F.hasFilePaths){let a=await aC(F.filePaths);a.contextPrefix&&(c=a.contextPrefix+c)}let d=E.attachmentIds.length>0?E.attachmentIds:void 0,e=d?E.getAttachmentMetas():void 0;a(c,r,d,e,t??void 0),G.commands.clearContent(),z([]),E.clear(),F.clearFilePaths(),A.close(),B.close(),D.close()},[G,r,A,B,j,a,E,F,y,D]),O=A.isOpen&&A.filteredSuggestions.length>0;B.isOpen&&B.filteredCommands.length,C.isOpen&&C.suggestions.length,D.isOpen&&D.suggestions.length,O&&A.filteredSuggestions[A.activeIndex];let P=E.staged.some(a=>"uploading"===a.status),Q=!G||G.isEmpty,R=`${Math.max(12,Math.min(100,Math.round(r/50*100)))}%`,S=f.find(a=>a.id===t)??null;return(0,b.jsx)("div",{className:"pb-6",children:(0,b.jsx)("div",{className:"max-w-3xl mx-auto",children:(0,b.jsx)(aZ,{onDrop:E.stageFiles,children:(0,b.jsxs)("div",{className:"bg-white border border-gray-200 shadow-sm focus-within:border-gray-300 focus-within:ring-1 focus-within:ring-gray-300 dark:bg-gray-900 dark:border-gray-800 dark:shadow-lg dark:focus-within:border-gray-600 dark:focus-within:ring-gray-600 transition-all flex flex-col rounded-2xl",children:[q&&(0,b.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${p?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,b.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${p?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:p?"shipBgSweep 4s ease-in-out infinite":"none"}}),p&&(0,b.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((a,c)=>(0,b.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*c}%`,right:"-10%",width:`${20+c%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+c%3*.1,animation:`shipSpeedLine ${.8+c%4*.3}s ${.1*c}s ease-in-out infinite`}},c))}),(0,b.jsx)("div",{className:"relative px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${p?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:p?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,b.jsx)(ac,{size:14})}),(0,b.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${p?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,b.jsx)("span",{className:`text-xs transition-colors duration-300 ${p?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,b.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${p?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:p?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>q(!p),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${p?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${p?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,b.jsxs)("div",{className:"p-1.5 transition-all",children:[E.staged.length>0&&(0,b.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,b.jsx)(aY,{attachments:E.staged,onRemove:E.remove,onRetry:E.retry})}),(0,b.jsxs)("div",{className:"flex items-end gap-2 p-2 relative",children:[(0,b.jsx)("button",{type:"button",onClick:x,className:"p-2.5 text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)] rounded-xl transition-all shrink-0","aria-label":"Attach file",title:"Attach file",children:(0,b.jsx)(a$,{className:"h-5 w-5",strokeWidth:1.75})}),(0,b.jsx)("input",{ref:v,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&a.target.files.length>0&&(E.stageFiles(a.target.files),a.target.value="")}}),(0,b.jsxs)("div",{className:"flex-1 relative",onClick:H,children:[(0,b.jsx)(aq.EditorContent,{editor:G,className:"composer-editor"}),(0,b.jsx)(aN,{isOpen:A.isOpen&&!B.isOpen,suggestions:A.filteredSuggestions,activeIndex:A.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:I}),(0,b.jsx)(aO,{isOpen:B.isOpen,commands:B.filteredCommands,activeIndex:B.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:M}),(0,b.jsx)(aU,{isOpen:C.isOpen,suggestions:C.suggestions,activeIndex:C.activeIndex,isLoading:C.isLoading,error:C.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:a=>{"folder"===a.type?K(a):J(a)},onAttachContents:C.onAttachContents}),(0,b.jsx)(aV,{isOpen:D.isOpen&&!B.isOpen&&!C.isOpen,suggestions:D.suggestions,activeIndex:D.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:L})]}),e?(0,b.jsx)("button",{type:"button",onClick:d,className:"h-10 px-4 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] rounded-xl font-bold text-sm hover:opacity-90 shadow-sm flex items-center gap-2 transition-all shrink-0",children:"Stop"}):(0,b.jsxs)("button",{type:"button",onClick:N,disabled:Q&&!E.hasUploaded&&!F.hasFilePaths||P,className:"h-10 px-4 bg-[var(--primary)] text-[var(--primary-foreground)] rounded-xl font-bold text-sm hover:bg-[var(--primary-hover)] disabled:opacity-50 disabled:cursor-not-allowed shadow-md flex items-center gap-2 transition-all shrink-0",children:["Send",(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,b.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]}),(0,b.jsxs)("div",{className:"px-4 pb-2.5 pt-1 flex items-center justify-between border-t border-gray-100 dark:border-gray-800/60 mt-1 transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[10px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Turns"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"h-1.5 w-14 bg-[var(--app-shell-border)] rounded-full overflow-hidden",children:(0,b.jsx)("div",{className:"h-full rounded-full transition-all duration-500 bg-[var(--primary)]",style:{width:R}})}),(0,b.jsx)("select",{value:r,onChange:a=>s(Number(a.target.value)),className:"bg-transparent border-none outline-none text-xs font-semibold text-[var(--app-shell-muted)] cursor-pointer appearance-none hover:text-[var(--primary)] transition-colors",children:[1,3,5,10,20,50].map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]})]}),(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===f.length?(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):f.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":t===a.id,onClick:()=>u(b=>b===a.id?null:a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),u(b=>b===a.id?null:a.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${t===a.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:a.name,children:[(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"w-full h-full rounded-full object-cover"}),e&&(0,b.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2 h-2 bg-emerald-400 border border-[var(--app-shell-elevated)] rounded-full"})]},a.id))})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[var(--app-shell-muted)]",children:[S&&(0,b.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:S.name})]}),(0,b.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-tight",children:e?"Working":"Ready"}),(0,b.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${e?"bg-amber-400 animate-pulse":"bg-emerald-400"}`})]})]})]})]})})})})}var a1=a.i(55672);let a2={activeParticipantIdsByThread:{}};function a3(a,b){let c=a.trim();if(c)({...a2}).activeParticipantIdsByThread[c]=function(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();!a||b.has(a)||(b.add(a),c.push(a))}return c}(b)}let a4={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,hasCompletedFirstRun:!1,fileIgnorePatterns:[]};function a5(a){return a&&"object"==typeof a?{threadSidebarVisible:"boolean"==typeof a.threadSidebarVisible?a.threadSidebarVisible:a4.threadSidebarVisible,workspaceRoots:Array.isArray(a.workspaceRoots)?a.workspaceRoots.filter(a=>"string"==typeof a):a4.workspaceRoots,homeSearchConsent:"boolean"==typeof a.homeSearchConsent?a.homeSearchConsent:a4.homeSearchConsent,hasCompletedFirstRun:"boolean"==typeof a.hasCompletedFirstRun?a.hasCompletedFirstRun:a4.hasCompletedFirstRun,fileIgnorePatterns:Array.isArray(a.fileIgnorePatterns)?a.fileIgnorePatterns.filter(a=>"string"==typeof a):a4.fileIgnorePatterns}:a4}let a6="/api/userPreferences";function a7(a){return a.json().then(a=>a&&"object"==typeof a?a5(a.preferences??a):a5(a)).catch(()=>a5(null))}function a8(a){return a.statusText||`Failed to reach ${a6} (${a.status})`}async function a9(){let a=await fetch(a6,{cache:"no-store"});if(!a.ok)throw Error(a8(a));return a7(a)}async function ba(a){let b=await fetch(a6,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:a})});if(!b.ok)throw Error(a8(b));return a7(b)}var bb=a.i(56196),bc=a.i(87532),bd=a.i(13749);let be=(0,o.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),bf=(0,o.default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),bg=(0,o.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),bh=(0,o.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);function bi({logs:a,participants:d,onClear:e,open:f,onToggle:g}){let[h,i]=(0,c.useState)(420),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)(!1),n=(0,c.useRef)(0),o=(0,c.useRef)(0),p=Object.fromEntries(d.map(a=>[a.id,a]));(0,c.useEffect)(()=>{f&&l.current?.scrollIntoView({behavior:"smooth"})},[a.length,f]);let q=(0,c.useCallback)(a=>{a.preventDefault(),m.current=!0,n.current=a.clientX,o.current=h,a.target.setPointerCapture(a.pointerId)},[h]),r=(0,c.useCallback)(a=>{if(!m.current)return;let b=n.current-a.clientX;i(Math.max(280,Math.min(o.current+b,.6*window.innerWidth)))},[]),s=(0,c.useCallback)(()=>{m.current=!1},[]);if(!f)return null;let t=j?a.filter(a=>a.participantId===j):a;return(0,b.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,b.jsx)("div",{onPointerDown:q,onPointerMove:r,onPointerUp:s,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,b.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,b.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:h},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,b.jsxs)("select",{value:j||"",onChange:a=>k(a.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:e,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,b.jsx)("button",{onClick:g,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[t.map((a,c)=>{let d=p[a.participantId]?.name||a.participantId,e=p[a.participantId]?.color||"#888",f="stderr"===a.stream;return(0,b.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(a.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,b.jsx)("span",{className:"shrink-0",style:{color:e},children:d}),(0,b.jsx)("span",{className:f?"text-red-400":"text-[var(--muted-foreground)]",children:a.line})]},c)}),(0,b.jsx)("div",{ref:l})]})]})]})}function bj(){let[a,d]=(0,c.useState)("unknown"),[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(""),[j,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void d("unknown");let b=await a.json();d("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);f(c),h(new Date().toLocaleTimeString())}catch{d("unknown"),f([])}},[]);return(0,c.useEffect)(()=>{l();let a=setInterval(l,3e4);return()=>clearInterval(a)},[l]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),children:[(0,b.jsx)(i.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,b.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===a?"bg-emerald-400":"degraded"===a?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===a?"animate-pulse":""}`})}),j&&(0,b.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[e.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:e.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("span",{className:"ok"===a.status?"text-emerald-600":"error"===a.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===a.status?"Healthy":"error"===a.status?a.detail||"Error":"Unavailable"})]},a.name))}):(0,b.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),g&&(0,b.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",g]})]})]})}function bk(a,b=!1){return(b?a.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():a).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}function bl(a,b,c){let d=new Set(a.map(a=>a.id)),e=c?b.find(a=>a.thread_ids?.includes(c)):b[0],f=e?e.agents.map(a=>a.agent_id).filter(a=>d.has(a)):[];if(0===f.length)return a.map(a=>a.id);let g=new Set(f);return[...f,...a.map(a=>a.id).filter(a=>!g.has(a))]}function bm(a,b,c){let d=Object.fromEntries(b.map(a=>[a.id,a])),e=[];for(let b of a){let a="user"===b.role?"You":b.participantId?d[b.participantId]?.name||b.participantId:"Assistant",c=bk(b.content,"user"!==b.role);c&&(e.push(`**${a}:**`),e.push(""),e.push(c),e.push(""))}if(c){let a=function(a){if(0===a.tasks.length)return"";let b=new Map(a.tasks.map(a=>[a.id,a.title.trim()])),c=["## Draft Tasks",""];return a.projectName&&c.push(`Project: ${a.projectName}`),a.buildStatus&&c.push(`Build status: ${a.buildStatus.replaceAll("_"," ")}`),(a.projectName||a.buildStatus)&&c.push(""),a.tasks.forEach((d,e)=>{let f=bk(d.title)||`Task ${e+1}`,g=bk(d.description),h=(d.dependsOn||[]).map(a=>b.get(a)?.trim()).filter(a=>!!a),i=a.builtTaskIds?.[d.id];c.push(`${e+1}. [ ] **${f}**`),g&&c.push(g),h.length>0&&c.push(`Depends on: ${h.join(", ")}`),i&&c.push(`agx task id: \`${i}\``),c.push("")}),c.join("\n").trim()}(c);a&&e.push(a)}return e.join("\n").trim()}function bn({projectSlug:a,initialThreadId:i,initialRootMessageId:j}={}){let{threads:k,activeThreadId:l,selectThread:m,createThread:n,deleteThread:o,updateThreadMessages:p,isCreating:q,deletingThreadId:r,renamingThreadId:s,isLoading:t,isRestoringActiveThread:u,renameThread:v,updateThreadStatus:w,updateThreadOutcomeNote:x,updateMessageThreadStatus:y,updateMessageOutcomeNote:z}=(0,g.useThreadState)(i),{messages:A,setMessages:B,logs:C,sendMessage:D,loadHistory:E,clearLogs:F,stop:H,stopThread:I}=function(a){let[b,f]=(0,c.useState)([]),[g,h]=(0,c.useState)([]),i=(0,c.useRef)(a),j=(0,c.useRef)(a);i.current=a,j.current!==a&&(j.current=a,f([]),h([]));let k=(0,c.useCallback)(async a=>{let b=a?.trim()||i.current?.trim();if(!b){f([]),h([]);return}let c=d(b);try{let[a,d]=await Promise.all([fetch(`/api/history?${c}`),fetch(`/api/logs?${e(b)}`)]);if(i.current!==b)return;a.ok&&f(await a.json()),d.ok&&h(await d.json())}catch{}},[]),l=(0,c.useCallback)(async a=>{let b=a?.trim()||i.current?.trim();if(!b){f([]),h([]);return}let c=d(b);await Promise.all([fetch(`/api/history?${c}`,{method:"DELETE"}),fetch(`/api/logs?${e(b)}`,{method:"DELETE"})]),i.current===b&&(f([]),h([]))},[]),m=(0,c.useCallback)(async(a,b=10,c,d,e,g,h,j)=>{let k=c?.trim()||i.current?.trim();if(!k)return;let l=Date.now(),m=crypto.randomUUID(),n={id:m,role:"user",participantId:null,content:a,timestamp:l,rootMessageId:d||null,parentMessageId:d||null,depth:+!!d,...g&&g.length>0?{attachments:g}:{}};f(a=>[...a,n]);try{await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:k,prompt:a,maxRounds:b,userMessageId:m,rootMessageId:d||void 0,attachmentIds:e?.length?e:void 0,activeParticipantIds:Array.isArray(h)?h:void 0,projectSlug:j?.trim()||void 0})})}catch{}return m},[]),n=(0,c.useCallback)(async()=>{let a=i.current?.trim();if(a)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]),o=(0,c.useCallback)(async a=>{let b=i.current?.trim();if(b)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(b)}&threadId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]);return{messages:b,setMessages:f,logs:g,sendMessage:m,loadHistory:k,clearHistory:l,clearLogs:(0,c.useCallback)(async a=>{let b=a?.trim()||i.current?.trim();b?(await fetch(`/api/logs?${e(b)}`,{method:"DELETE"}).catch(()=>{}),i.current===b&&h([])):h([])},[]),stop:n,stopThread:o}}(l),{activeAgents:J,processes:K,streaming:L,poll:M}=(0,f.useProcessPolling)(l?{workspaceId:l}:null,{messages:A,setMessages:B}),N=J.size>0,O=(0,c.useCallback)(async()=>{await H(),await M()},[H,M]),P=(0,c.useCallback)(async a=>{await I(a),await M()},[I,M]),{projects:Q,createProject:R,deleteProject:S,addAgent:T,removeAgent:U,reorderAgents:V}=(0,bb.useProjectsWithAgents)(),{projects:W,updateProject:X}=(0,bb.useProjects)(),[Y,Z]=(0,c.useState)([]),[$,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)([]),[ac,ad]=(0,c.useState)(!1),[ae,af]=(0,c.useState)(()=>"light"),[ah,ai]=(0,c.useState)(!1);(0,c.useEffect)(()=>{ai((0,a1.loadWorkspaceSidebarVisible)())},[]),(0,c.useEffect)(()=>{},[ae]);let[aj,ak]=(0,c.useState)(!1),[al,an]=(0,c.useState)(new Set),[ao,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(j??null),at=ar?al.has(ar):ao;(0,c.useEffect)(()=>{if(!ar)return;let a=!1,b=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(ar)}`).then(a=>a.json()).then(b=>{a||an(a=>{let c=a.has(ar);if(b.active&&!c){let b=new Set(a);return b.add(ar),b}if(!b.active&&c){let b=new Set(a);return b.delete(ar),b}return a})}).catch(()=>{})};b();let c=setInterval(b,1e4);return()=>{a=!0,clearInterval(c)}},[ar]),(0,c.useEffect)(()=>{let a=!1,b=()=>{fetch("/api/schedules").then(a=>a.json()).then(b=>{!a&&b.activeRootMessageIds&&an(a=>{let c=new Set(b.activeRootMessageIds);for(let b of a)c.add(b);return c.size===a.size&&[...c].every(b=>a.has(b))?a:c})}).catch(()=>{})};b();let c=setInterval(b,15e3);return()=>{a=!0,clearInterval(c)}},[]),(0,c.useEffect)(()=>{ar?window.history.replaceState(null,"",`/thread/${ar}`):window.history.replaceState(null,"","/")},[ar,l]),(0,c.useEffect)(()=>{j&&(async()=>{try{let a=await fetch(`/api/messages/${j}`);if(!a.ok)return;let{threadId:b}=await a.json();b&&m(b)}catch{}})()},[j,m]);let[au,av]=(0,c.useState)(""),[aw,ax]=(0,c.useState)([]),[ay,az]=(0,c.useState)(0),[aA,aB]=(0,c.useState)(!1),[aC,aD]=(0,c.useState)(null),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)(new Set),[aI,aJ]=(0,c.useState)(null),[aK,aL]=(0,c.useState)({}),aM=(0,c.useCallback)(a=>{aL(b=>{let c="function"==typeof a?a(b):a;if(l)for(let[a,d]of Object.entries(c))b[a]!==d&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:l,messageId:a,draft:d})}).catch(()=>{});return c})},[l]),[aN,aO]=(0,c.useState)(new Set),[aP,aQ]=(0,c.useState)(new Set),aR=(0,c.useRef)(null),aS=(0,c.useRef)(null),aT=(0,c.useRef)(null),aU=(0,c.useRef)(""),aV=(0,c.useCallback)(async(a=!1)=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();if(!Array.isArray(b))return;Z(b)}finally{a&&_(!0)}},[]),aW=(0,c.useCallback)(async a=>{try{await ba({threadSidebarVisible:a})}catch(a){console.error("Unable to persist thread sidebar preference",a)}},[ba]),aX=(0,c.useCallback)(a=>{(0,a1.persistWorkspaceSidebarVisible)(a),aW(a)},[aW]),aY=au.trim(),aZ=aY.length>0,a$=(0,c.useMemo)(()=>Object.fromEntries(k.map(a=>[a.id,a.title?.trim()||"Untitled thread"])),[k]),a_=(0,c.useMemo)(()=>{if(!ar)return[];let a=new Set([A.find(a=>a.id===ar),...A.filter(a=>a.rootMessageId===ar)].filter(Boolean).map(a=>a.participantId).filter(Boolean));return Object.keys(L).forEach(b=>{L[b].rootMessageId===ar&&a.add(b)}),Y.filter(b=>a.has(b.id))},[ar,A,L,Y]),a4=(0,c.useMemo)(()=>{let a=new Map(Y.map(a=>[a.id,a]));return aa.map(b=>a.get(b)).filter(Boolean)},[Y,aa]),a5=(0,c.useMemo)(()=>W.map(a=>({id:a.id,name:a.name,slug:a.slug})),[W]),a6=(0,c.useMemo)(()=>{if(!ar)return 0;let a=[A.find(a=>a.id===ar),...A.filter(a=>a.rootMessageId===ar)].filter(Boolean);return 0===a.length?0:Math.max(...a.map(a=>a.timestamp))},[ar,A]),a7=(0,c.useMemo)(()=>{if(!ar)return"";let a=A.find(a=>a.id===ar);if(!a)return"Thread";let b=a.content.trim();return b.length>60?b.slice(0,60)+"...":b},[ar,A]),a8=(0,c.useCallback)(()=>{av(""),ax([]),az(0),aD(null),aB(!1)},[]);(0,c.useCallback)(()=>{let a=bm(A,Y);navigator.clipboard.writeText(a).then(()=>{ad(!0),setTimeout(()=>ad(!1),2e3)})},[A,Y]);let[bk,bo]=(0,c.useState)(null),bp=(0,c.useCallback)(a=>{let b=A.find(b=>b.id===a);if(!b)return;let c=[b,...A.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)];bo({title:b.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:a,messages:c})},[A]),bq=(0,c.useCallback)(a=>{let b=bm([A.find(b=>b.id===a),...A.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)].filter(Boolean),Y,aK[a]);navigator.clipboard.writeText(b).catch(a=>console.error("Failed to copy thread",a))},[A,Y,aK]);(0,c.useEffect)(()=>{aV(!0)},[aV]);let br=(0,c.useMemo)(()=>{if(!$)return[];let a=new Set(Y.map(a=>a.id)),b=new Set;for(let c of A)"assistant"===c.role&&c.participantId&&(a.has(c.participantId)||b.add(c.participantId));for(let c of Object.keys(L))a.has(c)||b.add(c);return Array.from(b).sort()},[A,Y,$,L]);(0,c.useEffect)(()=>{if(!$)return;let a=br.join("|");if(!a){aU.current="";return}aU.current!==a&&(aU.current=a,aV(!1))},[$,aV,br]),(0,c.useEffect)(()=>{if(!$)return;let a=bl(Y,Q,l);if(!l)return void ab(a);let b=function(a){let b=a.trim();if(!b)return null;let c={...a2};return b in c.activeParticipantIdsByThread?[...c.activeParticipantIdsByThread[b]]:null}(l);if(null===b)return void ab(a);let c=function(a,b){if(null===b)return a;let c=new Set(b);return a.filter(a=>c.has(a))}(a,b);(c.length!==b.length||c.some((a,c)=>b[c]!==a))&&a3(l,c),ab(c)},[l,Y,$,Q]),(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await a9();if(a)return;ai(a=>a===b.threadSidebarVisible?a:((0,a1.persistWorkspaceSidebarVisible)(b.threadSidebarVisible),b.threadSidebarVisible))}catch(a){console.error("Failed to load user preferences",a)}})(),()=>{a=!0}},[a9,a1.persistWorkspaceSidebarVisible]),(0,c.useEffect)(()=>{t||q||0!==k.length||n({id:"global",title:"General"})},[t,q,k.length,n]),(0,c.useEffect)(()=>()=>{aT.current&&window.clearTimeout(aT.current)},[]),(0,c.useEffect)(()=>{let a=a=>{if((a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()){a.preventDefault(),aR.current?.focus(),aR.current?.select();return}"Escape"===a.key&&aY&&a8()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[a8,aY]),(0,c.useEffect)(()=>{if(!aY){ax([]),az(0),aD(null),aB(!1);return}let a=!1;aB(!0);let b=window.setTimeout(()=>{(async()=>{try{let b=new URLSearchParams({q:aY,limit:"20",offset:"0"}),c=await fetch(`/api/search?${b.toString()}`),d=await c.json().catch(()=>null);if(a)return;if(!c.ok){let a=d&&"object"==typeof d&&"error"in d?String(d.error):"Search failed";ax([]),az(0),aD(a);return}ax(Array.isArray(d.results)?d.results:[]),az("number"==typeof d.total?d.total:0),aD(null)}catch(b){if(a)return;console.error("Search request failed",b),ax([]),az(0),aD("Search failed")}finally{a||aB(!1)}})()},300);return()=>{a=!0,window.clearTimeout(b)}},[aY]);let bs=(0,c.useRef)(null);(0,c.useEffect)(()=>{null!==bs.current&&bs.current!==l&&(O(),aS.current?(as(aS.current),aS.current=null):as(null)),bs.current=l,l&&(E(l),fetch(`/api/task-drafts?threadId=${encodeURIComponent(l)}`).then(a=>a.json()).then(a=>{a.drafts&&Object.keys(a.drafts).length>0?aL(a.drafts):aL({})}).catch(()=>aL({})))},[l,E,O]),(0,c.useEffect)(()=>{l&&p(l,A)},[l,A,p]);let bt=(0,c.useCallback)((b,c,d=10,e)=>{if(!l||0===a4.length)return;let f=a4.map(a=>a.id);D(c,d,l,b,void 0,void 0,e&&f.includes(e)?[e,...f.filter(a=>a!==e)]:f,a)},[l,D,a4,a]),bu=(0,c.useCallback)(async a=>{if(l){if(0===a4.length)return void window.alert("Enable at least one agent in this project.");aH(b=>new Set(b).add(a));try{let b=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:l,rootMessageId:a,activeParticipantIds:a4.map(a=>a.id)})});b.ok?await E(l):console.error("Summarize failed:",await b.text())}catch(a){console.error("Summarize error:",a)}finally{aH(b=>{let c=new Set(b);return c.delete(a),c})}}},[l,E,a4]),bv=(0,c.useCallback)(async a=>{if(l){if(0===a4.length)return void window.alert("Enable at least one agent in this project.");aO(b=>new Set(b).add(a));try{let b=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:l,rootMessageId:a,activeParticipantIds:a4.map(a=>a.id)})});if(b.ok){let c=await b.json(),d={draftId:crypto.randomUUID(),revision:0,tasks:c.tasks,buildStatus:"idle"};aM(b=>({...b,[a]:d}))}else console.error("Task extraction failed:",await b.text())}catch(a){console.error("Task extraction error:",a)}finally{aO(b=>{let c=new Set(b);return c.delete(a),c})}}},[l,a4]),bw=(0,c.useCallback)((a,b)=>{aM(c=>({...c,[a]:b}))},[]),bx=(0,c.useCallback)(async(a,b,c,d)=>{if(l){aQ(a=>new Set(a).add(b.draftId)),aM(e=>({...e,[a]:{...b,buildStatus:"building",projectId:c,projectName:d}}));try{let d=crypto.randomUUID(),e=await G(b.tasks,c,d,b.builtTaskIds),f={...b.builtTaskIds},g=!1;for(let a of e.results)"created"===a.status&&a.remoteTaskId?f[a.clientTaskId]=a.remoteTaskId:g=!0;aM(b=>({...b,[a]:{...b[a],buildId:d,buildStatus:g?"partial_failure":"done",builtTaskIds:f}}))}catch(b){console.error("Build error:",b),aM(b=>({...b,[a]:{...b[a],buildStatus:"partial_failure"}}))}finally{aQ(a=>{let c=new Set(a);return c.delete(b.draftId),c})}}},[l]),by=(0,c.useCallback)(()=>{if(!l)return;let a=(()=>{if(ar)return ar;let a=new Set(A.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=A.length-1;b>=0;b-=1){let c=A[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bv(a):console.warn("No thread with replies available to extract tasks from")},[l,bv,A,ar]);(0,c.useCallback)(a=>{as(a)},[]);let bz=(0,c.useCallback)(a=>{as(a)},[]),bA=(0,c.useCallback)(a=>{let b=a?.trim()??"";b&&av(b),requestAnimationFrame(()=>{aR.current?.focus(),b||aR.current?.select()})},[]),bB=(0,c.useCallback)(()=>{if(!l)return;let a=(()=>{if(ar)return ar;let a=new Set(A.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=A.length-1;b>=0;b-=1){let c=A[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bu(a):console.warn("No thread with replies available to summarize")},[l,bu,A,ar]),bC=(0,c.useCallback)(async(b,c,d,e,f)=>{let g=b.match(/^\/search(?:\s+([\s\S]+))?$/i);if(g)return void bA(g[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(b))return void bB();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(b)||/^\/create(?:\s+[\s\S]+)?$/i.test(b))return void by();at&&ar&&(an(a=>{let b=new Set(a);return b.delete(ar),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:ar})}).catch(a=>console.error("Failed to deactivate schedule:",a)));let h=l;h||(h=(await n()).id);let i=a4.map(a=>a.id);if(0===i.length)return void window.alert("Enable at least one agent in this project.");let j=f&&i.includes(f)?[f,...i.filter(a=>a!==f)]:i;if(ar)return void await D(b,c,h,ar,d,e,j,a);let k=await D(b,c,h,null,d,e,j,a);ao&&k&&(aq(!1),an(a=>{let b=new Set(a);return b.add(k),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:k})}).catch(a=>console.error("Failed to activate schedule for new thread:",a)))},[l,at,ao,n,bA,bB,ar,a4,D,a]),bD=(0,c.useCallback)(async a=>{if(!ar)return void aq(a);an(b=>{let c=new Set(b);return a?c.add(ar):c.delete(ar),c});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a?"activate":"stop",rootMessageId:ar})})}catch(a){console.error("Failed to toggle autonomous schedule:",a)}},[ar]),bE=(0,c.useCallback)(a=>{let b=a.rootMessageId||a.messageId;a.threadId!==l?(aS.current=b,m(a.threadId)):as(b),aF(null),window.requestAnimationFrame(()=>{aF(a.messageId),aT.current&&window.clearTimeout(aT.current),aT.current=window.setTimeout(()=>{aF(b=>b===a.messageId?null:b)},2e3)}),a8()},[l,a8,m]),bF=(0,c.useCallback)(async a=>{O(),await o(a)},[o,O]),bG=(0,c.useCallback)(async a=>{if(l&&a&&window.confirm("Delete this thread and all of its replies?")){aJ(a),P(a);try{let b=new URLSearchParams({threadId:l,rootMessageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message thread",await c.text());as(b=>b===a?null:b),aF(null);let d=A.filter(b=>b.id!==a&&b.rootMessageId!==a);p(l,d),await E(l)}catch(a){console.error("Failed to delete message thread",a)}finally{aJ(b=>b===a?null:b)}}},[l,E,A,P,p]),bH=(0,c.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>bA()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>bB()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>by()}],[bA,bB,by]),bI=(0,c.useMemo)(()=>l?Q.filter(a=>a.thread_ids?.includes(l)):Q,[Q,l]),bJ=(0,c.useCallback)(a=>(0,b.jsx)(a0,{onSend:(b,c,d,e,f)=>bt(a,b,c,f),onStop:()=>P(a),loading:Object.values(L).some(b=>b.rootMessageId===a),participants:a4,projectGroups:bI,projects:a5,messages:A,commands:bH,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:at,onAutoModeChange:bD}),[bt,P,L,a4,bI,a5,bH,A,at,bD]),bK=(0,c.useCallback)(()=>{ai(a=>{let b=!a;return aX(b),b})},[aX]),bL=async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok){let a=await b.json();Z(b=>b.map(b=>b.id===a.id?a:b))}},bM=(0,c.useCallback)((a,b)=>{ab(c=>{let d=bl(Y,Q,l);if(!new Set(d).has(a))return c;let e=new Set(c);b?e.add(a):e.delete(a);let f=d.filter(a=>e.has(a));return l&&a3(l,f),f})},[l,Y,Q]),bN=(0,c.useCallback)(a=>{let b=Q.find(b=>b.id===a);if(!b||l&&!b.thread_ids?.includes(l))return;let c=b.agents.map(a=>a.agent_id);ab(c),l&&a3(l,c)},[Q,l]),bO=(0,c.useCallback)(()=>{af(a=>"dark"===a?"light":"dark")},[]),bP=()=>(0,b.jsx)("button",{type:"button",onClick:bO,"aria-label":"dark"===ae?"Switch to light theme":"Switch to dark theme",title:"dark"===ae?"Switch to light theme":"Switch to dark theme",className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:"dark"===ae?(0,b.jsx)(bh,{className:"h-4 w-4",strokeWidth:1.75}):(0,b.jsx)(bg,{className:"h-4 w-4",strokeWidth:1.75})}),bQ=(0,b.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:!ah&&(0,b.jsx)("button",{type:"button",onClick:bK,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(bf,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,b.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,b.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,b.jsx)(bc.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:2}),(0,b.jsx)("input",{ref:aR,type:"text",value:au,onChange:a=>av(a.target.value),onKeyDown:a=>{"Escape"===a.key&&a8()},placeholder:"Search messages…",className:"h-9 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),aY?(0,b.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:aA?"…":ay}),(0,b.jsx)("button",{type:"button",onClick:a8,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,b.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[bP(),(0,b.jsx)(bj,{}),ar&&(0,b.jsx)("button",{type:"button",onClick:()=>ak(!aj),"aria-label":aj?"Hide logs":`Show logs${C.length>0?` (${C.length})`:""}`,"aria-pressed":aj,title:aj?"Hide logs":`Show logs${C.length>0?` (${C.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${aj?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(be,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,b.jsxs)("div",{className:"flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]",children:[(0,b.jsx)(h.WorkspaceSidebar,{threads:k,participants:Y,activeThreadId:l,isLoading:t,isRestoringActiveThread:u,isCreating:q,deletingThreadId:r,renamingThreadId:s,onSelectThread:m,onCreateThread:n,onRenameThread:v,onDeleteThread:bF,activeParticipantIds:aa,onToggleParticipantActive:bM,visible:ah,onToggle:bK,projects:Q,onCreateProject:R,onUpdateProject:X,onDeleteProject:S,onAddAgentToProject:T,onRemoveAgentFromProject:U,onReorderProjectAgents:V,onUpdateParticipant:bL,onSelectProject:bN}),(0,b.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:u?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,b.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[ar?(0,b.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,b.jsx)("button",{onClick:()=>as(null),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-indigo-500 hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,b.jsx)(bd.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,b.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:a7}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsxs)("span",{className:"opacity-80",children:[a_.length," agents"]}),(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsxs)("span",{className:"opacity-80",children:["Updated ",function(a){if(!a)return"recently";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";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`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(a6)]})]})]}),(0,b.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:a_.map(a=>(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]",title:a.name},a.id))}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[bP(),(0,b.jsx)(bj,{}),(0,b.jsx)("button",{type:"button",onClick:()=>ak(!aj),"aria-label":aj?"Hide logs":`Show logs${C.length>0?` (${C.length})`:""}`,"aria-pressed":aj,title:aj?"Hide logs":`Show logs${C.length>0?` (${C.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${aj?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(be,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):bQ,aZ?(0,b.jsx)(ap,{query:aY,results:aw,total:ay,participants:Y,threadTitleById:a$,isLoading:aA,error:aC,onSelectResult:bE}):ar?(0,b.jsx)(am,{messages:A,streaming:L,participants:Y,rootMessageId:ar,onClose:()=>as(null),onCopyThread:bq,onAddToChat:bp,onDeleteThreadRoot:bG,highlightedMessageId:aE||void 0,renderReplyComposer:bJ,activeProcesses:K.filter(a=>["spawning","running"].includes(a.state)&&a.threadId===ar)}):(0,b.jsx)(ag,{messages:A,streaming:L,participants:Y,onOpenThread:bz,onCopyThread:bq,onAddToChat:bp,onDeleteThreadRoot:bG,onSummarize:bu,onCreateTasks:bv,onUpdateTaskDraft:bw,onBuildTasks:bx,summarizingThreads:aG,extractingTasks:aN,buildingDrafts:aP,taskDrafts:aK,deletingThreadRootId:aI,highlightedMessageId:aE,shipModeThreads:al,onUpdateMessageThreadStatus:l?(a,b)=>{B(c=>c.map(c=>c.id===a?{...c,threadStatus:b}:c)),y(l,a,b),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:b})})}:void 0,onUpdateMessageOutcomeNote:l?(a,b)=>{B(c=>c.map(c=>c.id===a?{...c,outcomeNote:b}:c)),z(l,a,b);let c=A.find(b=>b.id===a);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:c?.threadStatus??null,outcomeNote:b})})}:void 0}),!aZ&&!ar&&(0,b.jsx)(a0,{onSend:bC,onStop:O,loading:N,participants:a4,projects:a5,projectGroups:bI,messages:A,commands:bH,pendingThreadInsert:bk,onClearPendingThread:()=>bo(null),autoMode:at,onAutoModeChange:bD})]})})}),j&&(0,b.jsx)(bi,{logs:C,participants:Y,onClear:()=>void F(l),open:aj,onToggle:()=>ak(!1)})]})}a.s(["ChatContainer",()=>bn],24610)}];
|
|
9
9
|
|
|
10
10
|
//# sourceMappingURL=components_chat-ui_bfeda794._.js.map
|