@co0ontty/wand 4.80.1 → 4.81.0

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.
@@ -14,7 +14,7 @@ ${e.map(n=>n.savedPath).join(`
14
14
  `).length>la}var _t="\u6211",hn="\uFF08\u8FD9\u6761\u6D88\u606F\u6CA1\u6709\u6B63\u6587\uFF09",as="\u70B9\u51FB\u5C55\u5F00";function Pt(e,t,n=0){return e==="notice"?"notice":e==="user"?"bubble":ma(t)||n>0?"document":"bubble"}function ns(e){let t=e.split(`
15
15
  `),n=t.length>la,a=t.slice(0,la).join(`
16
16
  `);return a.length>ca&&(a=a.slice(0,ca).trimEnd(),n=!0),n?`${a}\u2026`:a}function vn(e){let t=e?.avatar??"";return t.startsWith("data:image/")?{kind:"upload",src:t}:e&&(e.id||e.name)?{kind:"cat",coat:(0,it.memberCoatIndex)({id:e.id,name:e.name,avatar:t})}:{kind:"brand"}}var rs=/[\s((、「【《,,。;;::!!??]/,ss=["**","__","~~","*","_"],is=/[\s((、「【《,,。;;::!!??))」】》、.\]}]/;function os(e,t,n=e){let a=[...new Set(t.map(u=>u.trim()).filter(Boolean))].sort((u,v)=>v.length-u.length);if(!e||a.length===0)return e?[{text:e}]:[];let m=n!==e&&e.endsWith("\u2026")&&n.startsWith(e.slice(0,-1))?e.length-1:e.length,s=[],c=0;for(;c<n.length;){let u=c===0||rs.test(n[c-1]),v=u?ss.find(S=>n.startsWith(`${S}@`,c)):void 0,w=v?c+v.length:c;if((u||v)&&n[w]==="@"){let S=a.find(b=>n.startsWith(b,w+1));if(S){let b=w+1+S.length,f=v?n.startsWith(v,b):!1,I=f?b+v.length:b;if((!v||f)&&(I===n.length||is.test(n[I]))&&I<=m){s.push({start:w,end:b}),c=I;continue}}}c++}let d=[],i=0;for(let u of s)u.start>i&&d.push({text:e.slice(i,u.start)}),d.push({text:e.slice(u.start,u.end),mention:!0}),i=u.end;return i<e.length&&d.push({text:e.slice(i)}),d}var Lt=[];function Wt({text:e,names:t,source:n}){return(0,l.jsx)(l.Fragment,{children:os(e,t,n).map((a,r)=>a.mention?(0,l.jsx)("span",{className:"team-chat-mention",title:a.text,children:a.text},`mention#${r}`):(0,l.jsx)(x.Fragment,{children:a.text},`plain#${r}`))})}function ds({path:e}){let[t,n]=x.useState(!1),a=e.split("/").at(-1)?.replace(/^\d{13}-[0-9a-f]{8}-/,"")||e,r=Dr(e)&&!t;return(0,l.jsx)("button",{type:"button",className:"team-chat-attachment","data-image":r||void 0,title:`\u9884\u89C8 ${a}`,onClick:()=>{mn.filePreviewController.open(e)},children:r?(0,l.jsx)("img",{src:`/api/file-raw?path=${encodeURIComponent(e)}`,alt:a,loading:"lazy",onError:()=>n(!0)}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(Fe.WandIcon,{name:"file",size:18}),(0,l.jsx)("span",{children:a})]})})}function bn({paths:e}){return e.length?(0,l.jsx)("div",{className:"team-chat-attachments","aria-label":"\u6D88\u606F\u9644\u4EF6",children:e.map((t,n)=>(0,l.jsx)(ds,{path:t},`${t}#${n}`))}):null}function wn({spec:e,size:t="md"}){return(0,l.jsx)("span",{className:"team-chat-avatar","data-kind":e.kind,"data-size":t,"aria-hidden":"true",children:e.kind==="upload"?(0,l.jsx)("img",{className:"team-chat-avatar-upload",src:e.src,alt:""}):e.kind==="cat"?(0,l.jsx)(it.PixelCat,{coat:e.coat}):(0,l.jsx)(Fe.WandBrandMark,{className:"team-chat-avatar-brand"})})}function $t({shape:e,text:t,assignments:n,names:a,onExpand:r}){let m=gn(t),s=m.paths.length&&m.body.trim()==="\u8BF7\u67E5\u770B\u9644\u4EF6\u3002"?"":m.body,c=ma(s),d=n??[];return(0,l.jsxs)("div",{className:e==="document"?"team-chat-doc":"chat-message-bubble team-chat-bubble","data-shape":e,children:[(0,l.jsx)(bn,{paths:m.paths}),s.trim()?c?(0,l.jsx)("p",{className:"team-chat-preview",children:(0,l.jsx)(Wt,{text:ns(s),names:a,source:s})}):(0,l.jsx)("pre",{className:e==="document"?"team-chat-doc-text":"team-chat-bubble-text",children:(0,l.jsx)(Wt,{text:s,names:a})}):d.length===0&&m.paths.length===0?(0,l.jsx)("p",{className:"team-chat-preview team-chat-msg-empty",children:hn}):null,d.length>0?(0,l.jsx)("ol",{className:"team-chat-plan-list",children:d.map((i,u)=>(0,l.jsxs)("li",{children:[(0,l.jsxs)("span",{className:"team-chat-mention",children:["@",i.member]}),(0,l.jsx)("span",{className:"team-chat-plan-title",children:i.title}),i.note?(0,l.jsx)("small",{className:"team-chat-plan-basis",children:i.note}):null]},`${i.member}#${u}`))}):null,c&&r?(0,l.jsx)("button",{type:"button",className:"team-chat-expand","aria-haspopup":"dialog",onClick:r,children:as}):null]})}function Ot({kind:e,side:t,shape:n,status:a,avatar:r,name:m,sessionId:s,chip:c,badge:d,clock:i,onOpenSession:u,children:v,footer:w,presentationId:S,arriving:b=!1,onArrivalEnd:f}){return(0,l.jsxs)("div",{className:"chat-message assistant team-chat-msg","data-presentation-id":S,"data-arriving":b||void 0,onAnimationEnd:f,"data-kind":e,"data-side":t,"data-shape":n,"data-status":a,children:[(0,l.jsx)(wn,{spec:r}),(0,l.jsxs)("div",{className:"team-chat-msg-content",children:[(0,l.jsxs)("div",{className:"team-chat-msg-head",children:[s&&u?(0,l.jsx)("button",{type:"button",className:"avatar-name chat-author-link",title:"\u67E5\u770B\u8FD9\u4E2A\u6210\u5458\u7684\u4F1A\u8BDD",onClick:()=>u(s),children:m}):(0,l.jsx)("span",{className:"avatar-name",children:m}),c,d?(0,l.jsx)("span",{className:"chat-author-badge",children:d}):null,i?(0,l.jsx)("span",{className:"chat-message-time",children:i}):null]}),v,w]})]})}function ls({text:e,previewClassName:t,bodyClassName:n}){let a=ma(e),[r,m]=x.useState(!1),s=!a||r;return(0,l.jsxs)(l.Fragment,{children:[a&&!s?(0,l.jsx)("p",{className:t,children:e}):null,(0,l.jsx)("div",{className:n,"data-open":s||void 0,inert:!s,children:(0,l.jsx)("div",{className:`${n}-inner`,children:(0,l.jsx)("pre",{className:`${n}-text`,children:e})})}),a?(0,l.jsx)("button",{type:"button",className:"team-chat-expand","aria-expanded":s,onClick:()=>m(c=>!c),children:s?"\u6536\u8D77":"\u5C55\u5F00\u5168\u6587"}):null]})}function cs({detail:e}){let{run:t}=e;return(0,l.jsxs)("section",{className:"team-chat-goal",children:[(0,l.jsxs)("header",{className:"team-chat-goal-head",children:[(0,l.jsx)("span",{className:"team-chat-goal-label",children:"\u4E3B\u4EFB\u52A1"}),(0,l.jsxs)("span",{className:"team-chat-goal-meta",children:[t.stepsUsed,"/",t.stepLimit," \u6B65 \xB7 ",Le(e).name]})]}),(0,l.jsx)(ls,{text:t.objective,previewClassName:"team-chat-goal-preview",bodyClassName:"team-chat-goal-body"})]})}function ms({turn:e,step:t,names:n,onOpenSession:a,onExpandDoc:r,presentationId:m,arriving:s,onArrivalEnd:c}){let d=e.author,i=fn(_e(e)),u=i?i.body:_e(e),v=Bt(e),w=t?.status??(i?.ok===!1?"failed":i?"done":void 0),S=Pt("step",u,0),b=d?.name??"\u6210\u5458",f=vn(d),I=i?`${i.ok?"\u2705":"\u274C"} ${i.title}`:"";return(0,l.jsx)(Ot,{kind:"step",side:"start",shape:S,status:w,avatar:f,name:b,sessionId:d?.sessionId??null,chip:i?(0,l.jsx)("span",{className:"team-chat-step-chip","data-ok":i.ok||void 0,children:I}):null,clock:v,onOpenSession:a,presentationId:m,arriving:s,onArrivalEnd:c,children:(0,l.jsx)($t,{shape:S,text:u,names:n,onExpand:R=>r(R.currentTarget,{text:u,name:b,clock:v,typeLabel:Jr(i),chip:I,avatar:f,side:"start",mentionNames:[...n]})})})}function ps({turn:e,names:t,onOpenSession:n,onExpandDoc:a,presentationId:r,arriving:m,onArrivalEnd:s}){let c=e.author,d=Bt(e),i=_e(e),{head:u,assignments:v}=ts(i),w=Pt("leader",u,v.length),S=c?.name??"\u8D1F\u8D23\u4EBA",b=vn(c);return(0,l.jsx)(Ot,{kind:"leader",side:"start",shape:w,avatar:b,name:S,sessionId:c?.sessionId??null,badge:"\u8D1F\u8D23\u4EBA",clock:d,onOpenSession:n,presentationId:r,arriving:m,onArrivalEnd:s,children:(0,l.jsx)($t,{shape:w,text:u,assignments:v,names:t,onExpand:f=>a(f.currentTarget,{text:i,name:S,clock:d,typeLabel:"\u8D1F\u8D23\u4EBA\u6D3E\u5DE5",avatar:b,side:"start",mentionNames:[...t]})})})}var yn=24,rn="\u5DF2\u5F00\u59CB\uFF0C\u7B49\u5F85\u7B2C\u4E00\u6BB5\u8F93\u51FA\u2026",us={working:"\u5DE5\u4F5C\u4E2D",needs_input:"\u7B49\u5F85\u56DE\u7B54",needs_permission:"\u7B49\u5F85\u6388\u6743",done:"\u5DF2\u5B8C\u6210",failed:"\u5931\u8D25"};function gs(e){return e&&us[e]||""}function fs(e,t,n,a=yn){return t-(e+n)<=a}function xn(e,t=yn){return fs(e.scrollTop,e.scrollHeight,e.clientHeight,t)}function hs(e){let t=new Set,n=[];for(let a of e)t.has(a.stepId)||(t.add(a.stepId),n.push(a));return n.sort((a,r)=>a.seq-r.seq)}var vs=6;function bs(e){return e>0?`\u5DF2\u7701\u7565\u524D\u9762 ${e} \u5B57`:""}function sn(e,t,n=Date.now()){let a=hs(t),r=new Set(a.map(s=>s.stepId)),m=e.filter(s=>!r.has(s.step.stepId)).map(s=>({...s,leaving:!0,leavingSince:s.leaving?s.leavingSince:n}));return[...a.map(s=>({step:s,leaving:!1,leavingSince:0})),...m].sort((s,c)=>s.step.seq-c.step.seq)}function on(e,t){return e.filter(n=>!(n.leaving&&n.step.stepId===t))}var ws="--motion-quick-exit";function ys(e){let t=e.trim(),n=/^(\d+(?:\.\d+)?)ms$/.exec(t);if(n)return Math.round(Number(n[1]));let a=/^(\d+(?:\.\d+)?)s$/.exec(t);return a?Math.round(Number(a[1])*1e3):null}function dn(){return typeof window>"u"?null:ys(getComputedStyle(document.documentElement).getPropertyValue(ws))}function xs(e,t,n){let a=e.filter(r=>!r.leaving||t-r.leavingSince<n);return a.length===e.length?e:a}function ks({row:e,title:t,memberName:n,state:a,onOpenSession:r,onRetire:m}){let s=e.step,c=x.useRef(null),d=x.useRef(!0),i=x.useRef(null),[u,v]=x.useState(!1),w=gs(a??s.state),S=Bt({createdAt:s.updatedAt,completedAt:s.updatedAt}),b=bs(s.omittedChars),f=s.text.trim().split(`
17
- `).filter(Boolean).at(-1)||rn;x.useEffect(()=>{let R=c.current;u&&R&&d.current&&(R.scrollTop=R.scrollHeight)},[u,s.text]);let I=()=>{r&&(window.getSelection()?.toString()||r(s.sessionId))};return(0,l.jsxs)("div",{className:"team-chat-live-row","data-leaving":e.leaving||void 0,onAnimationEnd:R=>{e.leaving&&R.target===R.currentTarget&&m(s.stepId)},children:[(0,l.jsxs)("div",{className:"team-chat-live-head",children:[(0,l.jsx)("span",{className:"team-chat-live-name",title:n,children:n}),(0,l.jsxs)("span",{className:"team-chat-live-chip",children:["#",s.seq,t?` ${t}`:""]}),w?(0,l.jsx)("span",{className:"team-chat-live-state","data-state":s.state,children:w}):null,S?(0,l.jsx)("span",{className:"chat-message-time",children:S}):null]}),(0,l.jsxs)("button",{type:"button",className:"team-chat-live-summary","aria-expanded":u,onClick:()=>v(R=>!R),children:[(0,l.jsx)("span",{children:f}),(0,l.jsx)("small",{children:u?"\u6536\u8D77\u8F93\u51FA":"\u5C55\u5F00\u8F93\u51FA"})]}),(0,l.jsx)("div",{className:"team-chat-live-body","data-open":u||void 0,inert:!u,children:(0,l.jsx)("div",{className:"team-chat-live-body-inner",children:(0,l.jsxs)("div",{className:"team-chat-live-card",role:"button",tabIndex:0,title:"\u67E5\u770B\u8FD9\u4E2A\u6210\u5458\u7684\u4F1A\u8BDD","aria-label":`\u6253\u5F00${n}\u6B63\u5728\u8F93\u51FA\u7684\u4F1A\u8BDD`,onPointerDown:R=>{i.current={x:R.clientX,y:R.clientY}},onClick:R=>{let k=i.current;k&&Math.hypot(R.clientX-k.x,R.clientY-k.y)>vs||I()},onKeyDown:R=>{R.key!=="Enter"&&R.key!==" "||(R.preventDefault(),I())},children:[b?(0,l.jsx)("p",{className:"team-chat-live-omitted",children:b}):null,(0,l.jsx)("pre",{className:"team-chat-live-text",ref:c,onScroll:R=>{d.current=xn(R.currentTarget)},children:s.text||rn})]})})})]})}function Je(e){let t=e.content.map(a=>a.type==="text"?["text",a.text]:null);if(t.some(a=>a===null))return null;let n=e.author;return JSON.stringify([e.role,e.notice??null,e.createdAt??null,e.completedAt??null,n?[n.id??null,n.name??null,n.leader??null,n.sessionId??null,n.provider??null,n.model??null,n.thinkingEffort??null,n.avatar??null]:null,t])}function ln(e,t){for(let n=0;n<=e.length-t.length;n++)if(t.every((a,r)=>e[n+r]===a))return n;return-1}function kn(e,t){if(e.length===0)return[...t];if(t.length===0)return e;let n=e.map(Je),a=t.map(Je);if(n.includes(null)||a.includes(null))return e;let r=n,m=a,s=ln(m,r);if(s>=0)return s+e.length<t.length?[...t]:e;if(ln(r,m)>=0)return e;let c=0;for(let d=1;d<=Math.min(e.length,t.length);d++)if(r.slice(-d).every((i,u)=>i===m[u])){if(c>0)return e;c=d}return c>0?[...e,...t.slice(c)].slice(-Da):e}function xt(e,t){if(!e||e.run.id!==t.run.id)return t;let n=Date.parse(e.run.updatedAt??""),a=Date.parse(t.run.updatedAt??""),r=v=>v.steps.filter(w=>w.status==="done"||w.status==="failed"||w.status==="skipped").length,m=e.run.status==="done"||e.run.status==="failed"||e.run.status==="stopped",s=t.run.status==="done"||t.run.status==="failed"||t.run.status==="stopped",d=Number.isFinite(n)&&Number.isFinite(a)&&a<n||a===n&&(m&&!s||t.steps.length<e.steps.length||r(t)<r(e)||t.run.stepsUsed<e.run.stepsUsed)?e:t,i=Date.parse(e.displayTeam?.updatedAt??"")>Date.parse(t.displayTeam?.updatedAt??"")?e.displayTeam:t.displayTeam,u=t.chatTitle===void 0||Date.parse(e.chatTitleUpdatedAt??"")>Date.parse(t.chatTitleUpdatedAt??"")?e:t;return{...d,...i?{displayTeam:i}:{},...u.chatTitle!==void 0?{chatTitle:u.chatTitle,chatTitleUpdatedAt:u.chatTitleUpdatedAt}:{},chatTurns:kn(e.chatTurns,t.chatTurns)}}function Ts(e,t){let n=null;for(let a=1;a<=Math.min(e.length,t.length);a++)if(e.slice(-a).every((r,m)=>r.fingerprint!==null&&r.fingerprint===t[m])){if(n!==null)return null;n=a}return n}function Rs(e,t,n){let a=e?.scope===t?e.rows:[],r=n.map(Je),m=e?.scope===t?e.nextId:0,s=()=>`turn-${++m}`;if(a.length===n.length&&a.every((b,f)=>b.fingerprint!==null&&b.fingerprint===r[f]))return{scope:t,nextId:m,candidates:[],rows:n.map((b,f)=>({...a[f],turn:b}))};let d=Ts(a,r),i=new Map,u=new Map;for(let b of a)b.fingerprint!==null&&i.set(b.fingerprint,(i.get(b.fingerprint)??0)+1);for(let b of r)b!==null&&u.set(b,(u.get(b)??0)+1);let v=[],w=[],S=a.length?Date.parse(a.at(-1).turn.createdAt??""):-1/0;for(let b=0;b<n.length;b++){let f=r[b],I=d!==null&&b<d?a[a.length-d+b]:void 0,R=f!==null&&(i.get(f)??0)<=1&&u.get(f)===1,k=I&&f!==null&&i.get(f)===u.get(f)&&n.every((O,P)=>r[P]!==f||d!==null&&P<d&&a[a.length-d+P]?.fingerprint===f),E=I&&(R||k)?I:R?a.find(O=>O.fingerprint===f):void 0,g=E?.presentationId??s();v.push({turn:n[b],fingerprint:f,presentationId:g});let N=Date.parse(n[b].createdAt??"");!E&&R&&(a.length===0&&e?.scope===t||d!==null&&b>=d)&&Number.isFinite(N)&&(a.length===0||Number.isFinite(S)&&N>=S)&&w.push(g)}return{scope:t,rows:v,nextId:m,candidates:w}}function As({layer:e,onExited:t}){let n=e.ownerId,a=gn(e.text);return x.useEffect(()=>()=>t(n),[n,t]),(0,l.jsxs)("div",{className:"team-chat-doc-layer",children:[(0,l.jsxs)("div",{className:"team-chat-doc-layer-meta",children:[(0,l.jsx)(wn,{spec:e.avatar,size:"sm"}),(0,l.jsx)("span",{className:"team-chat-doc-layer-name",children:e.name}),e.chip?(0,l.jsx)("span",{className:"team-chat-step-chip",children:e.chip}):null,e.clock?(0,l.jsx)("span",{className:"chat-message-time",children:e.clock}):null]}),(0,l.jsx)(bn,{paths:a.paths}),(0,l.jsx)("pre",{className:"team-chat-doc-layer-text",tabIndex:0,"data-wand-autofocus":!0,children:a.body.trim()?(0,l.jsx)(Wt,{text:a.body,names:e.mentionNames}):hn})]})}function cn(e,t,n,a){return n?.scope!==t?!1:e.startsWith("local#")?a.some(r=>`local#${r.sentAt}`===e):n.rows.some(r=>r.presentationId===e)}function ot({detail:e,onChange:t,onOpenSession:n,details:a,staleRun:r=!1}){let{run:m,chatTurns:s,steps:c}=e,[d,i]=x.useState([]),[u,v]=x.useState(""),[w,S]=x.useState(""),[b,f]=x.useState("message"),[I,R]=x.useState(!1),[k,E]=x.useState(!1),g=x.useRef(null),N=x.useRef(null),O=x.useRef(null),P=x.useRef(null),ee=x.useRef(null),me=x.useRef(null),V=x.useRef(!1),M=x.useRef(0),[H,W]=x.useState([]),[L,j]=x.useState(!1),[Y,ke]=x.useState(null),[We,Ve]=x.useState({scope:"",ids:new Set}),K=Or(m),pe=m.chatSessionId,mt=x.useCallback(()=>Me.teamChatComposer.revision(pe),[pe]);x.useSyncExternalStore(Me.teamChatComposer.subscribe,mt,mt);let pt=Me.teamChatComposer.read(pe),$e=pt.text,ne=pt.attachments,J=x.useRef({scope:K,runId:m.id,epoch:0});x.useLayoutEffect(()=>{let p=J.current;J.current={scope:K,runId:m.id,epoch:p.epoch+(p.scope===K?0:1)}},[K,m.id]);let Ee=x.useRef(e);x.useLayoutEffect(()=>{Ee.current=e},[e]);let ut=x.useRef(null),Q=x.useMemo(()=>Rs(ut.current,K,s),[K,s]);x.useLayoutEffect(()=>{ut.current=Q},[Q]);let gt=x.useId(),Ye=x.useId(),Ce=x.useRef(null),ft=x.useRef(null),At=x.useRef({projection:Q,local:d});x.useLayoutEffect(()=>{At.current={projection:Q,local:d}},[Q,d]);let St=x.useRef(null),T=x.useRef(null),U=x.useRef(K),de=x.useRef(K),fe=x.useRef(!0),Jt=x.useRef(""),Qt=x.useRef(null),Oe=x.useRef(!0),Nt=Le(e),Zt=x.useMemo(()=>[...new Set([...Nt.members.map(p=>p.name),...m.team.members.map(p=>p.name),...s.map(p=>p.author?.name).filter(p=>!!p)])],[Nt,m.team,s]),ea=r?"\u6B63\u5728\u63A5\u5165\u65B0\u4E00\u8F6E\uFF0C\u52A0\u8F7D\u5B8C\u6210\u540E\u53EF\u53D1\u9001":Vr(m.status),Aa=m.status==="running",ta=Kr(m.status,!!$e.trim()||ne.length>0,w),Et=w!=="",aa=ta==="stop",yr=Et||r||ta==="blocked",xr=w==="send"?"sending":aa?"running":"idle",Sa=w==="send"?b==="upload"?"\u4E0A\u4F20\u4E2D\u2026":"\u53D1\u9001\u4E2D\u2026":w==="stop"?"\u505C\u6B62\u4E2D\u2026":aa?"\u505C\u6B62\u56E2\u961F":"\u53D1\u9001\u6D88\u606F",Na=u?"\u64CD\u4F5C\u5931\u8D25":w==="send"?b==="upload"?"\u4E0A\u4F20\u4E2D\u2026":"\u53D1\u9001\u4E2D\u2026":w==="stop"?"\u505C\u6B62\u4E2D\u2026":"Enter \u53D1\u9001 \xB7 Shift+Enter \u6362\u884C";x.useLayoutEffect(()=>{let p=P.current;p&&an(p)},[$e,pe]),x.useLayoutEffect(()=>{let p=P.current,A=p?.parentElement;if(!p||!A)return;let D=-1,C=new ResizeObserver(([$])=>{let le=$?.contentRect.width??A.getBoundingClientRect().width;le<=0||Math.abs(le-D)<.5||(D=le,an(p))});return C.observe(A),()=>C.disconnect()},[pe]),x.useEffect(()=>{if(!k)return;let p=D=>{let C=D.target;C&&(ee.current?.contains(C)||me.current?.contains(C))||E(!1)},A=D=>{D.key==="Escape"&&(D.preventDefault(),D.stopPropagation(),E(!1),ee.current?.focus())};return document.addEventListener("pointerdown",p),document.addEventListener("keydown",A),()=>{document.removeEventListener("pointerdown",p),document.removeEventListener("keydown",A)}},[k]),x.useLayoutEffect(()=>{if(!k)return;let p=g.current,A=ee.current,D=me.current;if(!p||!A||!D)return;let C=()=>{let le=p.getBoundingClientRect(),he=A.getBoundingClientRect();D.style.left=`${Math.max(0,he.left-le.left)}px`,D.style.bottom=`${Math.max(0,le.bottom-he.top+8)}px`};C();let $=new ResizeObserver(C);return $.observe(p),$.observe(A),window.addEventListener("resize",C),()=>{$.disconnect(),window.removeEventListener("resize",C)}},[k,ne.length,pe,ea]),x.useEffect(()=>{E(!1)},[pe]);let ht=x.useCallback(()=>{ke(p=>p?.phase!=="open"?p:(Qt.current=`${p.scope}/${p.ownerId}`,{...p,phase:"closing"}))},[]),kr=x.useCallback(p=>{Qt.current===`${Jt.current}/${p}`&&(Qt.current=null,ke(A=>A?.ownerId===p&&A.phase==="closing"?null:A),queueMicrotask(()=>{if(!fe.current)return;let A=At.current;(cn(p,Jt.current,A.projection,A.local)&&ft.current?.isConnected?ft.current:Ce.current)?.focus({preventScroll:!0})}))},[]);x.useEffect(()=>(fe.current=!0,()=>{fe.current=!1}),[]),x.useEffect(()=>{de.current!==K&&(de.current=K,i([]),v(""),S(""),Oe.current=!0)},[K]),x.useEffect(()=>{j(!1),ht()},[m.id,ht]),x.useEffect(()=>{i(p=>ia(p,s))},[s,K]),x.useLayoutEffect(()=>{Y?.phase==="open"&&(cn(Y.ownerId,Y.scope,Q,d)||ht())},[Y,K,Q,d,ht]),x.useEffect(()=>{let p=window.matchMedia("(prefers-reduced-motion: reduce)"),A=()=>Ve($=>$.ids.size?{scope:$.scope,ids:new Set}:$),D=()=>{document.visibilityState!=="visible"&&A()},C=()=>{p.matches&&A()};return document.addEventListener("visibilitychange",D),window.addEventListener("pagehide",A),p.addEventListener("change",C),D(),C(),()=>{document.removeEventListener("visibilitychange",D),window.removeEventListener("pagehide",A),p.removeEventListener("change",C)}},[]),x.useLayoutEffect(()=>{if(St.current===Q)return;St.current=Q;let p=Ce.current;if(!p)return;if(U.current!==K&&(T.current=null,Oe.current=!0,U.current=K),Oe.current)p.scrollTop=p.scrollHeight;else if(T.current){let D=[...p.children].find(C=>C.dataset.presentationId===T.current?.id);D&&(p.scrollTop+=D.getBoundingClientRect().top-p.getBoundingClientRect().top-T.current.offset)}let A=new Set;if(Oe.current&&document.visibilityState==="visible"&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches){let D=p.getBoundingClientRect();for(let C of Q.candidates){let $=[...p.children].find(le=>le.dataset.presentationId===C);$&&$.getBoundingClientRect().bottom>D.top&&$.getBoundingClientRect().top<D.bottom&&A.add(C)}}Ve(D=>({scope:K,ids:new Set([...(D.scope===K?[...D.ids]:[]).filter(C=>Q.rows.some($=>$.presentationId===C)),...A])}))},[Q,K]),x.useEffect(()=>{if(W([]),!Aa)return;let p=!0;yt.aiTeamsRepository.live(m.id).then(D=>{p&&W(sn([],D.steps))},()=>{});let A=yt.aiTeamsRepository.subscribeAiTeamStepLive(D=>{!p||D.runId!==m.id||W(C=>sn(C,D.steps))});return()=>{p=!1,A()}},[m.id,Aa]),x.useEffect(()=>{let p=dn();if(p===null)return;let A=Date.now(),D=H.filter(C=>C.leaving).map(C=>window.setTimeout(()=>W($=>on($,C.step.stepId)),Math.max(0,C.leavingSince+p-A)));return()=>{for(let C of D)window.clearTimeout(C)}},[H]),x.useEffect(()=>{let p=dn();if(p===null)return;let A=()=>{document.visibilityState==="visible"&&W(D=>xs(D,Date.now(),p))};return document.addEventListener("visibilitychange",A),()=>document.removeEventListener("visibilitychange",A)},[]),x.useEffect(()=>{let p=Ce.current;!p||!Oe.current||(p.scrollTop=p.scrollHeight)},[Q.rows.at(-1)?.presentationId,d.length,H.length]);let Ct=(p,A,D)=>{if(Y)return;let C=p.getBoundingClientRect(),$=C.top+C.height/2<window.innerHeight/2?"top":"bottom";ft.current=p,Jt.current=K,ke({...D,ownerId:A,scope:K,half:$,phase:"open"})},It=p=>{if(!pe)return;let A=Array.from(p),D=Math.max(0,5-Me.teamChatComposer.read(pe).attachments.length);A.length>D&&v("\u4E00\u6B21\u6700\u591A\u6DFB\u52A0 5 \u4E2A\u9644\u4EF6\u3002");for(let[C,$]of A.slice(0,D).entries()){if($.size>10*1024*1024){v(`\u6587\u4EF6\u8D85\u8FC7 10 MB\uFF1A${$.name||"\u56FE\u7247"}`);continue}let le=$.type.startsWith("image/"),he=$.name&&$.name!=="blob"?$.name:`image-${Date.now()}-${C+1}.${$.type.split("/")[1]||"png"}`;Me.teamChatComposer.edit(pe,{addAttachment:{file:$,name:he,size:$.size,previewUrl:le?URL.createObjectURL($):null}})}},Ea=async()=>{let p=$e.trim(),A=m.chatSessionId;if(!p&&!ne.length||!A||Et||r)return;let D=K,C=J.current.epoch,$=()=>J.current.scope===D&&J.current.epoch===C,le=s.map(Je).filter(ue=>ue!==null);S("send"),v(""),Oe.current=!0;let he=ne.length?"upload":"message";f(he);try{await Me.teamChatComposer.submit(A,p,async ue=>{let Ie=[];if(ue.attachments.length){let ae=new FormData;for(let Be of ue.attachments)ae.append("files",Be.file,Be.name);if(Ie=(await(0,Ge.requestJson)(_r(A),{method:"POST",body:ae})).files,!Array.isArray(Ie)||Ie.length!==ue.attachments.length)throw new Error("\u9644\u4EF6\u4E0A\u4F20\u7ED3\u679C\u4E0D\u5B8C\u6574\uFF0C\u8BF7\u91CD\u8BD5\u3002")}if(!$())throw new Error("\u5DF2\u5207\u6362\u7FA4\u804A\uFF0C\u539F\u6D88\u606F\u5DF2\u4FDD\u7559\u3002");let nt=Lr(Ie,ue.text.trim()),rt=Date.now();he="message",f(he),i(ae=>[...ae,{local:!0,text:nt,sentAt:rt,unconfirmed:!1,accepted:!1,knownFingerprints:le}]);let re;try{re=await(0,Ge.requestJson)(zr(A),(0,Ge.jsonBody)(Mr(nt)))}catch(ae){let Re=nn(ae);throw $()&&i(Be=>Re?Be.filter(vt=>vt.sentAt!==rt):Be.map(vt=>vt.sentAt===rt?{...vt,unconfirmed:!0}:vt)),!Re&&ae&&typeof ae=="object"&&Object.assign(ae,{__wandAmbiguousDelivery:!0}),ae}if(!$())return;let be=Wr(re,nt,le);i(ae=>ia(ae.map(Re=>Re.sentAt===rt?{...Re,accepted:!0,ackFingerprint:be??void 0}:Re),Ee.current.chatTurns));let ze=null;try{let ae=J.current.runId,Re=await yt.aiTeamsRepository.detail(ae);if(!$())return;if(J.current.runId===ae&&Ee.current.run.id===ae){let Be=xt(Ee.current,{...Ee.current,chatTurns:Re.chatTurns});t(Be),ze=Be.chatTurns}else ze=kn(Ee.current.chatTurns,Re.chatTurns)}catch{if(!$())return;ze=null}i(ae=>ia(ae,ze))})}catch(ue){if(!$())return;v(he==="upload"?(0,Dt.failureMessage)(ue,"\u9644\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF0C\u6587\u4EF6\u548C\u6587\u5B57\u5DF2\u4FDD\u7559\u3002"):nn(ue)?(0,Dt.failureMessage)(ue,"\u53D1\u9001\u5931\u8D25\uFF0C\u5185\u5BB9\u5DF2\u653E\u56DE\u8F93\u5165\u6846\u3002"):"\u9001\u8FBE\u72B6\u6001\u672A\u77E5\uFF0C\u8BF7\u5148\u67E5\u770B\u7FA4\u804A\u8BB0\u5F55\uFF0C\u907F\u514D\u91CD\u590D\u53D1\u9001\u3002")}finally{$()&&S("")}},Ca=async()=>{if(!da(m.status)||Et||r)return;let p=K,A=m.id,D=J.current.epoch;S("stop"),v("");try{let C=await yt.aiTeamsRepository.stop(A);J.current.scope===p&&J.current.epoch===D&&J.current.runId===A&&t(xt(Ee.current,C))}catch(C){J.current.scope===p&&J.current.epoch===D&&J.current.runId===A&&v((0,Dt.failureMessage)(C,"\u505C\u6B62\u5931\u8D25\u3002"))}finally{J.current.scope===p&&J.current.epoch===D&&S("")}};return(0,l.jsxs)("div",{className:"task-board-team-chat",children:[(0,l.jsxs)("button",{type:"button",className:"team-chat-context","aria-expanded":L,"aria-controls":gt,onClick:()=>j(p=>!p),children:[(0,l.jsx)("span",{className:"team-chat-context-label",children:"\u7FA4\u516C\u544A"}),(0,l.jsx)("span",{className:"team-chat-context-title",title:m.objective,children:m.objective.split(`
17
+ `).filter(Boolean).at(-1)||rn;x.useEffect(()=>{let R=c.current;u&&R&&d.current&&(R.scrollTop=R.scrollHeight)},[u,s.text]);let I=()=>{r&&(window.getSelection()?.toString()||r(s.sessionId))};return(0,l.jsxs)("div",{className:"team-chat-live-row","data-leaving":e.leaving||void 0,onAnimationEnd:R=>{e.leaving&&R.target===R.currentTarget&&m(s.stepId)},children:[(0,l.jsxs)("div",{className:"team-chat-live-head",children:[(0,l.jsx)("span",{className:"team-chat-live-name",title:n,children:n}),(0,l.jsxs)("span",{className:"team-chat-live-chip",children:["#",s.seq,t?` ${t}`:""]}),w?(0,l.jsx)("span",{className:"team-chat-live-state","data-state":s.state,children:w}):null,S?(0,l.jsx)("span",{className:"chat-message-time",children:S}):null]}),(0,l.jsxs)("button",{type:"button",className:"team-chat-live-summary","aria-expanded":u,onClick:()=>v(R=>!R),children:[(0,l.jsx)("span",{children:f}),(0,l.jsx)("small",{children:u?"\u6536\u8D77\u8F93\u51FA":"\u5C55\u5F00\u8F93\u51FA"})]}),(0,l.jsx)("div",{className:"team-chat-live-body","data-open":u||void 0,inert:!u,children:(0,l.jsx)("div",{className:"team-chat-live-body-inner",children:(0,l.jsxs)("div",{className:"team-chat-live-card",role:"button",tabIndex:0,title:"\u67E5\u770B\u8FD9\u4E2A\u6210\u5458\u7684\u4F1A\u8BDD","aria-label":`\u6253\u5F00${n}\u6B63\u5728\u8F93\u51FA\u7684\u4F1A\u8BDD`,onPointerDown:R=>{i.current={x:R.clientX,y:R.clientY}},onClick:R=>{let k=i.current;k&&Math.hypot(R.clientX-k.x,R.clientY-k.y)>vs||I()},onKeyDown:R=>{R.key!=="Enter"&&R.key!==" "||(R.preventDefault(),I())},children:[b?(0,l.jsx)("p",{className:"team-chat-live-omitted",children:b}):null,(0,l.jsx)("pre",{className:"team-chat-live-text",ref:c,onScroll:R=>{d.current=xn(R.currentTarget)},children:s.text||rn})]})})})]})}function Je(e){let t=e.content.map(a=>a.type==="text"?["text",a.text]:null);if(t.some(a=>a===null))return null;let n=e.author;return JSON.stringify([e.role,e.notice??null,e.createdAt??null,e.completedAt??null,n?[n.id??null,n.name??null,n.leader??null,n.sessionId??null,n.provider??null,n.model??null,n.thinkingEffort??null,n.avatar??null]:null,t])}function ln(e,t){for(let n=0;n<=e.length-t.length;n++)if(t.every((a,r)=>e[n+r]===a))return n;return-1}function kn(e,t){if(e.length===0)return[...t];if(t.length===0)return e;let n=e.map(Je),a=t.map(Je);if(n.includes(null)||a.includes(null))return e;let r=n,m=a,s=ln(m,r);if(s>=0)return s+e.length<t.length?[...t]:e;if(ln(r,m)>=0)return e;let c=0;for(let d=1;d<=Math.min(e.length,t.length);d++)if(r.slice(-d).every((i,u)=>i===m[u])){if(c>0)return e;c=d}return c>0?[...e,...t.slice(c)].slice(-Da):e}function xt(e,t){if(!e||e.run.id!==t.run.id)return t;let n=Date.parse(e.run.updatedAt??""),a=Date.parse(t.run.updatedAt??""),r=v=>v.steps.filter(w=>w.status==="done"||w.status==="failed"||w.status==="skipped").length,m=e.run.status==="done"||e.run.status==="failed"||e.run.status==="stopped",s=t.run.status==="done"||t.run.status==="failed"||t.run.status==="stopped",d=Number.isFinite(n)&&Number.isFinite(a)&&a<n||a===n&&(m&&!s||t.steps.length<e.steps.length||r(t)<r(e)||t.run.stepsUsed<e.run.stepsUsed)?e:t,i=Date.parse(e.displayTeam?.updatedAt??"")>Date.parse(t.displayTeam?.updatedAt??"")?e.displayTeam:t.displayTeam,u=t.chatTitle===void 0||Date.parse(e.chatTitleUpdatedAt??"")>Date.parse(t.chatTitleUpdatedAt??"")?e:t;return{...d,...i?{displayTeam:i}:{},...u.chatTitle!==void 0?{chatTitle:u.chatTitle,chatTitleUpdatedAt:u.chatTitleUpdatedAt}:{},chatTurns:kn(e.chatTurns,t.chatTurns)}}function Ts(e,t){let n=null;for(let a=1;a<=Math.min(e.length,t.length);a++)if(e.slice(-a).every((r,m)=>r.fingerprint!==null&&r.fingerprint===t[m])){if(n!==null)return null;n=a}return n}function Rs(e,t,n){let a=e?.scope===t?e.rows:[],r=n.map(Je),m=e?.scope===t?e.nextId:0,s=()=>`turn-${++m}`;if(a.length===n.length&&a.every((b,f)=>b.fingerprint!==null&&b.fingerprint===r[f]))return{scope:t,nextId:m,candidates:[],rows:n.map((b,f)=>({...a[f],turn:b}))};let d=Ts(a,r),i=new Map,u=new Map;for(let b of a)b.fingerprint!==null&&i.set(b.fingerprint,(i.get(b.fingerprint)??0)+1);for(let b of r)b!==null&&u.set(b,(u.get(b)??0)+1);let v=[],w=[],S=a.length?Date.parse(a.at(-1).turn.createdAt??""):-1/0;for(let b=0;b<n.length;b++){let f=r[b],I=d!==null&&b<d?a[a.length-d+b]:void 0,R=f!==null&&(i.get(f)??0)<=1&&u.get(f)===1,k=I&&f!==null&&i.get(f)===u.get(f)&&n.every((O,P)=>r[P]!==f||d!==null&&P<d&&a[a.length-d+P]?.fingerprint===f),E=I&&(R||k)?I:R?a.find(O=>O.fingerprint===f):void 0,g=E?.presentationId??s();v.push({turn:n[b],fingerprint:f,presentationId:g});let N=Date.parse(n[b].createdAt??"");!E&&R&&(a.length===0&&e?.scope===t||d!==null&&b>=d)&&Number.isFinite(N)&&(a.length===0||Number.isFinite(S)&&N>=S)&&w.push(g)}return{scope:t,rows:v,nextId:m,candidates:w}}function As({layer:e,onExited:t}){let n=e.ownerId,a=gn(e.text);return x.useEffect(()=>()=>t(n),[n,t]),(0,l.jsxs)("div",{className:"team-chat-doc-layer",children:[(0,l.jsxs)("div",{className:"team-chat-doc-layer-meta",children:[(0,l.jsx)(wn,{spec:e.avatar,size:"sm"}),(0,l.jsx)("span",{className:"team-chat-doc-layer-name",children:e.name}),e.chip?(0,l.jsx)("span",{className:"team-chat-step-chip",children:e.chip}):null,e.clock?(0,l.jsx)("span",{className:"chat-message-time",children:e.clock}):null]}),(0,l.jsx)(bn,{paths:a.paths}),(0,l.jsx)("pre",{className:"team-chat-doc-layer-text",tabIndex:0,"data-wand-autofocus":!0,children:a.body.trim()?(0,l.jsx)(Wt,{text:a.body,names:e.mentionNames}):hn})]})}function cn(e,t,n,a){return n?.scope!==t?!1:e.startsWith("local#")?a.some(r=>`local#${r.sentAt}`===e):n.rows.some(r=>r.presentationId===e)}function ot({detail:e,onChange:t,onOpenSession:n,details:a,staleRun:r=!1}){let{run:m,chatTurns:s,steps:c}=e,[d,i]=x.useState([]),[u,v]=x.useState(""),[w,S]=x.useState(""),[b,f]=x.useState("message"),[I,R]=x.useState(!1),[k,E]=x.useState(!1),g=x.useRef(null),N=x.useRef(null),O=x.useRef(null),P=x.useRef(null),ee=x.useRef(null),me=x.useRef(null),V=x.useRef(!1),M=x.useRef(0),[H,W]=x.useState([]),[L,j]=x.useState(!1),[Y,ke]=x.useState(null),[We,Ve]=x.useState({scope:"",ids:new Set}),K=Or(m),pe=m.chatSessionId,mt=x.useCallback(()=>Me.teamChatComposer.revision(pe),[pe]);x.useSyncExternalStore(Me.teamChatComposer.subscribe,mt,mt);let pt=Me.teamChatComposer.read(pe),$e=pt.text,ne=pt.attachments,J=x.useRef({scope:K,runId:m.id,epoch:0});x.useLayoutEffect(()=>{let p=J.current;J.current={scope:K,runId:m.id,epoch:p.epoch+(p.scope===K?0:1)}},[K,m.id]);let Ee=x.useRef(e);x.useLayoutEffect(()=>{Ee.current=e},[e]);let ut=x.useRef(null),Q=x.useMemo(()=>Rs(ut.current,K,s),[K,s]);x.useLayoutEffect(()=>{ut.current=Q},[Q]);let gt=x.useId(),Ye=x.useId(),Ce=x.useRef(null),ft=x.useRef(null),At=x.useRef({projection:Q,local:d});x.useLayoutEffect(()=>{At.current={projection:Q,local:d}},[Q,d]);let St=x.useRef(null),T=x.useRef(null),U=x.useRef(K),de=x.useRef(K),fe=x.useRef(!0),Jt=x.useRef(""),Qt=x.useRef(null),Oe=x.useRef(!0),Nt=Le(e),Zt=x.useMemo(()=>[...new Set([...Nt.members.map(p=>p.name),...m.team.members.map(p=>p.name),...s.map(p=>p.author?.name).filter(p=>!!p)])],[Nt,m.team,s]),ea=r?"\u6B63\u5728\u63A5\u5165\u65B0\u4E00\u8F6E\uFF0C\u52A0\u8F7D\u5B8C\u6210\u540E\u53EF\u53D1\u9001":Vr(m.status),Aa=m.status==="running",ta=Kr(m.status,!!$e.trim()||ne.length>0,w),Et=w!=="",aa=ta==="stop",yr=Et||r||ta==="blocked",xr=w==="send"?"sending":aa?"running":"idle",Sa=w==="send"?b==="upload"?"\u4E0A\u4F20\u4E2D\u2026":"\u53D1\u9001\u4E2D\u2026":w==="stop"?"\u505C\u6B62\u4E2D\u2026":aa?"\u505C\u6B62\u56E2\u961F":"\u53D1\u9001\u6D88\u606F",Na=u?"\u64CD\u4F5C\u5931\u8D25":w==="send"?b==="upload"?"\u4E0A\u4F20\u4E2D\u2026":"\u53D1\u9001\u4E2D\u2026":w==="stop"?"\u505C\u6B62\u4E2D\u2026":"Enter \u53D1\u9001 \xB7 Shift+Enter \u6362\u884C";x.useLayoutEffect(()=>{let p=P.current;p&&an(p)},[$e,pe]),x.useLayoutEffect(()=>{let p=P.current,A=p?.parentElement;if(!p||!A)return;let D=-1,C=new ResizeObserver(([$])=>{let le=$?.contentRect.width??A.getBoundingClientRect().width;le<=0||Math.abs(le-D)<.5||(D=le,an(p))});return C.observe(A),()=>C.disconnect()},[pe]),x.useEffect(()=>{if(!k)return;let p=D=>{let C=D.target;C&&(ee.current?.contains(C)||me.current?.contains(C))||E(!1)},A=D=>{D.key==="Escape"&&(D.preventDefault(),D.stopPropagation(),E(!1),ee.current?.focus())};return document.addEventListener("pointerdown",p),document.addEventListener("keydown",A),()=>{document.removeEventListener("pointerdown",p),document.removeEventListener("keydown",A)}},[k]),x.useLayoutEffect(()=>{if(!k)return;let p=g.current,A=ee.current,D=me.current;if(!p||!A||!D)return;let C=()=>{let le=p.getBoundingClientRect(),he=A.getBoundingClientRect();D.style.left=`${Math.max(0,he.left-le.left)}px`,D.style.bottom=`${Math.max(0,le.bottom-he.top+8)}px`};C();let $=new ResizeObserver(C);return $.observe(p),$.observe(A),window.addEventListener("resize",C),()=>{$.disconnect(),window.removeEventListener("resize",C)}},[k,ne.length,pe,ea]),x.useEffect(()=>{E(!1)},[pe]);let ht=x.useCallback(()=>{ke(p=>p?.phase!=="open"?p:(Qt.current=`${p.scope}/${p.ownerId}`,{...p,phase:"closing"}))},[]),kr=x.useCallback(p=>{Qt.current===`${Jt.current}/${p}`&&(Qt.current=null,ke(A=>A?.ownerId===p&&A.phase==="closing"?null:A),queueMicrotask(()=>{if(!fe.current)return;let A=At.current;(cn(p,Jt.current,A.projection,A.local)&&ft.current?.isConnected?ft.current:Ce.current)?.focus({preventScroll:!0})}))},[]);x.useEffect(()=>(fe.current=!0,()=>{fe.current=!1}),[]),x.useEffect(()=>{de.current!==K&&(de.current=K,i([]),v(""),S(""),Oe.current=!0)},[K]),x.useEffect(()=>{j(!1),ht()},[m.id,ht]),x.useEffect(()=>{i(p=>ia(p,s))},[s,K]),x.useLayoutEffect(()=>{Y?.phase==="open"&&(cn(Y.ownerId,Y.scope,Q,d)||ht())},[Y,K,Q,d,ht]),x.useEffect(()=>{let p=window.matchMedia("(prefers-reduced-motion: reduce)"),A=()=>Ve($=>$.ids.size?{scope:$.scope,ids:new Set}:$),D=()=>{document.visibilityState!=="visible"&&A()},C=()=>{p.matches&&A()};return document.addEventListener("visibilitychange",D),window.addEventListener("pagehide",A),p.addEventListener("change",C),D(),C(),()=>{document.removeEventListener("visibilitychange",D),window.removeEventListener("pagehide",A),p.removeEventListener("change",C)}},[]),x.useLayoutEffect(()=>{if(St.current===Q)return;St.current=Q;let p=Ce.current;if(!p)return;if(U.current!==K&&(T.current=null,Oe.current=!0,U.current=K),Oe.current)p.scrollTop=p.scrollHeight;else if(T.current){let D=[...p.children].find(C=>C.dataset.presentationId===T.current?.id);D&&(p.scrollTop+=D.getBoundingClientRect().top-p.getBoundingClientRect().top-T.current.offset)}let A=new Set;if(Oe.current&&document.visibilityState==="visible"&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches){let D=p.getBoundingClientRect();for(let C of Q.candidates){let $=[...p.children].find(le=>le.dataset.presentationId===C);$&&$.getBoundingClientRect().bottom>D.top&&$.getBoundingClientRect().top<D.bottom&&A.add(C)}}Ve(D=>({scope:K,ids:new Set([...(D.scope===K?[...D.ids]:[]).filter(C=>Q.rows.some($=>$.presentationId===C)),...A])}))},[Q,K]),x.useEffect(()=>{if(W([]),!Aa)return;let p=!0;yt.aiTeamsRepository.live(m.id).then(D=>{p&&W(sn([],D.steps))},()=>{});let A=yt.aiTeamsRepository.subscribeAiTeamStepLive(D=>{!p||D.runId!==m.id||W(C=>sn(C,D.steps))});return()=>{p=!1,A()}},[m.id,Aa]),x.useEffect(()=>{let p=dn();if(p===null)return;let A=Date.now(),D=H.filter(C=>C.leaving).map(C=>window.setTimeout(()=>W($=>on($,C.step.stepId)),Math.max(0,C.leavingSince+p-A)));return()=>{for(let C of D)window.clearTimeout(C)}},[H]),x.useEffect(()=>{let p=dn();if(p===null)return;let A=()=>{document.visibilityState==="visible"&&W(D=>xs(D,Date.now(),p))};return document.addEventListener("visibilitychange",A),()=>document.removeEventListener("visibilitychange",A)},[]),x.useEffect(()=>{let p=Ce.current;!p||!Oe.current||(p.scrollTop=p.scrollHeight)},[Q.rows.at(-1)?.presentationId,d.length,H.length]);let Ct=(p,A,D)=>{if(Y)return;let C=p.getBoundingClientRect(),$=C.top+C.height/2<window.innerHeight/2?"top":"bottom";ft.current=p,Jt.current=K,ke({...D,ownerId:A,scope:K,half:$,phase:"open"})},It=p=>{if(!pe)return;let A=Array.from(p),D=Math.max(0,5-Me.teamChatComposer.read(pe).attachments.length);A.length>D&&v("\u4E00\u6B21\u6700\u591A\u6DFB\u52A0 5 \u4E2A\u9644\u4EF6\u3002");for(let[C,$]of A.slice(0,D).entries()){if($.size>10*1024*1024){v(`\u6587\u4EF6\u8D85\u8FC7 10 MB\uFF1A${$.name||"\u56FE\u7247"}`);continue}let le=$.type.startsWith("image/"),he=$.name&&$.name!=="blob"?$.name:`image-${Date.now()}-${C+1}.${$.type.split("/")[1]||"png"}`;Me.teamChatComposer.edit(pe,{addAttachment:{file:$,name:he,size:$.size,previewUrl:le?URL.createObjectURL($):null}})}},Ea=async()=>{let p=$e.trim(),A=m.chatSessionId;if(!p&&!ne.length||!A||Et||r)return;let D=K,C=J.current.epoch,$=()=>J.current.scope===D&&J.current.epoch===C,le=s.map(Je).filter(ue=>ue!==null);S("send"),v(""),Oe.current=!0;let he=ne.length?"upload":"message";f(he);try{await Me.teamChatComposer.submit(A,p,async ue=>{let Ie=[];if(ue.attachments.length){let ae=new FormData;for(let Be of ue.attachments)ae.append("files",Be.file,Be.name);if(Ie=(await(0,Ge.requestJson)(_r(A),{method:"POST",body:ae})).files,!Array.isArray(Ie)||Ie.length!==ue.attachments.length)throw new Error("\u9644\u4EF6\u4E0A\u4F20\u7ED3\u679C\u4E0D\u5B8C\u6574\uFF0C\u8BF7\u91CD\u8BD5\u3002")}if(!$())throw new Error("\u5DF2\u5207\u6362\u7FA4\u804A\uFF0C\u539F\u6D88\u606F\u5DF2\u4FDD\u7559\u3002");let nt=Lr(Ie,ue.text.trim()),rt=Date.now();he="message",f(he),i(ae=>[...ae,{local:!0,text:nt,sentAt:rt,unconfirmed:!1,accepted:!1,knownFingerprints:le}]);let re;try{re=await(0,Ge.requestJson)(zr(A),{...(0,Ge.jsonBody)(Mr(nt)),headers:{"content-type":"application/json","X-Wand-Tool-Projection":"compact"}})}catch(ae){let Re=nn(ae);throw $()&&i(Be=>Re?Be.filter(vt=>vt.sentAt!==rt):Be.map(vt=>vt.sentAt===rt?{...vt,unconfirmed:!0}:vt)),!Re&&ae&&typeof ae=="object"&&Object.assign(ae,{__wandAmbiguousDelivery:!0}),ae}if(!$())return;let be=Wr(re,nt,le);i(ae=>ia(ae.map(Re=>Re.sentAt===rt?{...Re,accepted:!0,ackFingerprint:be??void 0}:Re),Ee.current.chatTurns));let ze=null;try{let ae=J.current.runId,Re=await yt.aiTeamsRepository.detail(ae);if(!$())return;if(J.current.runId===ae&&Ee.current.run.id===ae){let Be=xt(Ee.current,{...Ee.current,chatTurns:Re.chatTurns});t(Be),ze=Be.chatTurns}else ze=kn(Ee.current.chatTurns,Re.chatTurns)}catch{if(!$())return;ze=null}i(ae=>ia(ae,ze))})}catch(ue){if(!$())return;v(he==="upload"?(0,Dt.failureMessage)(ue,"\u9644\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF0C\u6587\u4EF6\u548C\u6587\u5B57\u5DF2\u4FDD\u7559\u3002"):nn(ue)?(0,Dt.failureMessage)(ue,"\u53D1\u9001\u5931\u8D25\uFF0C\u5185\u5BB9\u5DF2\u653E\u56DE\u8F93\u5165\u6846\u3002"):"\u9001\u8FBE\u72B6\u6001\u672A\u77E5\uFF0C\u8BF7\u5148\u67E5\u770B\u7FA4\u804A\u8BB0\u5F55\uFF0C\u907F\u514D\u91CD\u590D\u53D1\u9001\u3002")}finally{$()&&S("")}},Ca=async()=>{if(!da(m.status)||Et||r)return;let p=K,A=m.id,D=J.current.epoch;S("stop"),v("");try{let C=await yt.aiTeamsRepository.stop(A);J.current.scope===p&&J.current.epoch===D&&J.current.runId===A&&t(xt(Ee.current,C))}catch(C){J.current.scope===p&&J.current.epoch===D&&J.current.runId===A&&v((0,Dt.failureMessage)(C,"\u505C\u6B62\u5931\u8D25\u3002"))}finally{J.current.scope===p&&J.current.epoch===D&&S("")}};return(0,l.jsxs)("div",{className:"task-board-team-chat",children:[(0,l.jsxs)("button",{type:"button",className:"team-chat-context","aria-expanded":L,"aria-controls":gt,onClick:()=>j(p=>!p),children:[(0,l.jsx)("span",{className:"team-chat-context-label",children:"\u7FA4\u516C\u544A"}),(0,l.jsx)("span",{className:"team-chat-context-title",title:m.objective,children:m.objective.split(`
18
18
  `)[0]||"\u67E5\u770B\u672C\u6B21\u4EFB\u52A1"}),(0,l.jsx)("span",{className:"team-chat-context-action",children:L?"\u6536\u8D77":"\u8BE6\u60C5"})]}),(0,l.jsx)("div",{id:gt,className:"team-chat-details","data-open":L||void 0,inert:!L,children:(0,l.jsxs)("div",{className:"team-chat-details-inner",children:[(0,l.jsx)(cs,{detail:e}),(0,l.jsx)(Hr,{detail:e,onOpenSession:n}),a]})}),(0,l.jsxs)("div",{className:"task-board-team-chat-list",ref:Ce,tabIndex:-1,onScroll:p=>{if(p.currentTarget!==Ce.current)return;let A=p.currentTarget;if(Oe.current=xn(p.currentTarget),Oe.current){T.current=null;return}let D=A.getBoundingClientRect(),C=[...A.children].find($=>$.dataset.presentationId&&$.getBoundingClientRect().bottom>D.top);C?.dataset.presentationId&&(T.current={id:C.dataset.presentationId,offset:C.getBoundingClientRect().top-D.top})},children:[s.length+d.length+H.length===0?(0,l.jsx)("p",{className:"task-board-team-run-detail",children:"\u7FA4\u804A\u8FD8\u6CA1\u6709\u6D88\u606F\u3002"}):null,Q.rows.map(({turn:p,presentationId:A},D)=>{let C=Br(p,Nt),$=Xr(C),le=Yr(C,Q.rows[D-1]?.turn),he=re=>(0,l.jsxs)(x.Fragment,{children:[le?(0,l.jsx)("time",{className:"team-chat-time-marker",dateTime:C.createdAt,children:le}):null,re]},A),ue=We.scope===K&&We.ids.has(A),Ie=re=>{re.target===re.currentTarget&&re.animationName==="wand-team-msg-in"&&Ve(be=>be.scope===K&&be.ids.has(A)?{scope:K,ids:new Set([...be.ids].filter(ze=>ze!==A))}:be)};if($==="notice")return he((0,l.jsx)("div",{className:"chat-message chat-notice","data-presentation-id":A,"data-arriving":ue||void 0,onAnimationEnd:Ie,children:(0,l.jsxs)("div",{className:"chat-notice-line",title:[C.author?.name,_e(C)].filter(Boolean).join(" "),children:[C.author?.name?(0,l.jsx)("span",{className:"chat-notice-author",children:C.author.name}):null,(0,l.jsx)("span",{className:"chat-notice-text",children:(0,l.jsx)(Wt,{text:_e(C),names:Zt})})]})}));if($==="user"){let re=_e(C),be=Bt(C),ze=Pt("user",re,0);return he((0,l.jsx)(Ot,{presentationId:A,kind:"user",side:"end",shape:ze,avatar:{kind:"brand"},name:_t,clock:be,arriving:ue,onArrivalEnd:Ie,children:(0,l.jsx)($t,{shape:ze,text:re,names:Lt,onExpand:ae=>Ct(ae.currentTarget,A,{text:re,name:_t,clock:be,typeLabel:"\u6211\u7684\u6D88\u606F",avatar:{kind:"brand"},side:"end",mentionNames:Lt})})}))}if($==="leader")return he((0,l.jsx)(ps,{presentationId:A,turn:C,names:Zt,arriving:ue,onArrivalEnd:Ie,onOpenSession:n,onExpandDoc:(re,be)=>Ct(re,A,be)}));let nt=fn(_e(C)),rt=nt?c.find(re=>re.kind==="work"&&re.title===nt.title):void 0;return he((0,l.jsx)(ms,{presentationId:A,turn:C,step:rt,names:Zt,arriving:ue,onArrivalEnd:Ie,onOpenSession:n,onExpandDoc:(re,be)=>Ct(re,A,be)}))}),H.map(p=>(0,l.jsx)(ks,{row:p,title:c.find(A=>A.id===p.step.stepId)?.title??"",memberName:Nt.members.find(A=>A.id===p.step.memberId)?.name??p.step.memberName,state:e.memberStates[p.step.sessionId],onOpenSession:n,onRetire:A=>W(D=>on(D,A))},p.step.stepId)),d.map(p=>{let A=Pt("user",p.text,0);return(0,l.jsx)(Ot,{kind:"user",side:"end",shape:A,avatar:{kind:"brand"},name:_t,footer:p.unconfirmed?(0,l.jsx)("small",{className:"wand-team-chat-unconfirmed",children:"\u672A\u786E\u8BA4"}):null,children:(0,l.jsx)($t,{shape:A,text:p.text,names:Lt,onExpand:D=>Ct(D.currentTarget,`local#${p.sentAt}`,{text:p.text,name:_t,clock:"",typeLabel:"\u6211\u7684\u6D88\u606F",avatar:{kind:"brand"},side:"end",mentionNames:Lt})})},`local#${p.sentAt}`)})]}),m.chatSessionId?(0,l.jsxs)("div",{ref:g,className:"task-board-team-chat-input","data-dragging":I||void 0,onDragOver:p=>{p.dataTransfer.types.includes("Files")&&(p.preventDefault(),R(!0))},onDragLeave:p=>{p.currentTarget.contains(p.relatedTarget)||R(!1)},onDrop:p=>{p.dataTransfer.files.length&&(p.preventDefault(),R(!1),It(p.dataTransfer.files))},children:[ea?(0,l.jsx)("p",{className:"task-board-team-chat-hint",children:ea}):null,(0,l.jsx)("div",{className:"input-composer-row",children:(0,l.jsxs)("div",{className:`input-composer${$e.trim()?" has-text":""}${w==="send"?" in-flight":""}${I?" drag-over":""}`,role:"group","aria-label":"\u6D88\u606F\u7F16\u8F91\u5668",children:[ne.length?(0,l.jsx)(un.ComposerAttachmentList,{items:ne.map((p,A)=>({index:A,name:p.name,previewUrl:p.previewUrl??null,sizeLabel:p.size<1024?`${p.size} B`:p.size<1024*1024?`${(p.size/1024).toFixed(1)} KB`:`${(p.size/(1024*1024)).toFixed(1)} MB`})),onRemove:p=>Me.teamChatComposer.edit(pe,{removeAttachment:p})}):null,(0,l.jsxs)("div",{className:"composer-main-row team-chat-compose-main",children:[(0,l.jsx)("div",{className:"composer-input-wrap",children:(0,l.jsx)("textarea",{ref:P,className:"input-textarea",rows:1,value:$e,placeholder:qr,"aria-label":"\u7FA4\u804A\u6D88\u606F",onChange:p=>Me.teamChatComposer.edit(pe,{text:p.currentTarget.value}),onCompositionStart:()=>{M.current++,V.current=!0},onCompositionEnd:()=>{let p=M.current;window.setTimeout(()=>{p===M.current&&(V.current=!1)},0)},onKeyDown:p=>{p.key!=="Enter"||p.shiftKey||p.altKey||p.ctrlKey||p.metaKey||p.nativeEvent.isComposing||p.keyCode===229||V.current||(p.preventDefault(),Ea())},onPaste:p=>{p.clipboardData.files.length&&(p.preventDefault(),It(p.clipboardData.files))}})}),(0,l.jsxs)("div",{className:"composer-actions-left",role:"group","aria-label":"\u6DFB\u52A0\u5185\u5BB9",children:[(0,l.jsx)("button",{ref:ee,type:"button",className:"btn-circle btn-circle-action composer-attach-trigger",title:"\u66F4\u591A","aria-label":"\u66F4\u591A\u64CD\u4F5C","aria-haspopup":"dialog","aria-controls":Ye,"aria-expanded":k,onClick:()=>E(p=>!p),children:(0,l.jsx)(Fe.WandIcon,{name:"plus",size:18,strokeWidth:2.2})}),(0,l.jsx)("input",{ref:N,type:"file",accept:"image/*",multiple:!0,hidden:!0,tabIndex:-1,"aria-label":"\u9009\u62E9\u56FE\u7247",onChange:p=>{p.currentTarget.files&&It(p.currentTarget.files),p.currentTarget.value="",P.current?.focus()}}),(0,l.jsx)("input",{ref:O,type:"file",multiple:!0,hidden:!0,tabIndex:-1,"aria-label":"\u9009\u62E9\u9644\u4EF6",onChange:p=>{p.currentTarget.files&&It(p.currentTarget.files),p.currentTarget.value="",P.current?.focus()}}),(0,l.jsx)("div",{className:"composer-status-row",children:(0,l.jsx)("span",{className:"composer-status-line",role:u?"alert":"status","aria-live":u?"assertive":"polite","data-tone":u?"failed":w?"sending":void 0,title:Na,children:Na})})]}),(0,l.jsxs)("div",{className:"composer-actions-right",role:"group","aria-label":"\u53D1\u9001\u4E0E\u505C\u6B62",children:[ta==="send-and-stop"?(0,l.jsx)("button",{type:"button",className:"btn-circle btn-circle-action team-chat-stop-action",disabled:Et||r,title:"\u505C\u6B62\u56E2\u961F","aria-label":"\u505C\u6B62\u56E2\u961F",onClick:()=>{Ca()},children:(0,l.jsx)(Fe.WandIcon,{name:"stop",size:16})}):null,(0,l.jsxs)("button",{type:"button",className:"btn-circle btn-circle-send","data-phase":xr,disabled:yr,title:Sa,"aria-label":Sa,onClick:()=>{aa?Ca():Ea()},children:[(0,l.jsx)("span",{className:"composer-send-glyph composer-send-glyph-arrow","aria-hidden":"true",children:(0,l.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,l.jsx)("path",{d:"M12 19V5"}),(0,l.jsx)("path",{d:"m6 11 6-6 6 6"})]})}),(0,l.jsx)("span",{className:"composer-send-glyph composer-send-glyph-stop","aria-hidden":"true",children:(0,l.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"currentColor",children:(0,l.jsx)("rect",{x:"3",y:"3",width:"10",height:"10",rx:"2"})})}),(0,l.jsx)("span",{className:"composer-send-glyph composer-send-glyph-sending","aria-hidden":"true",children:(0,l.jsx)("span",{className:"composer-send-spinner"})})]})]})]})]})}),(0,l.jsxs)("div",{ref:me,id:Ye,role:"dialog","aria-label":"\u66F4\u591A\u64CD\u4F5C","aria-modal":"false","aria-hidden":!k,inert:!k,className:`composer-plus-popover${k?"":" hidden"}`,children:[(0,l.jsx)(oa.ComposerPopoverAction,{icon:"image",label:"\u4E0A\u4F20\u56FE\u7247",onClick:()=>{E(!1),N.current?.click()}}),(0,l.jsx)(oa.ComposerPopoverAction,{icon:"paperclip",label:"\u4E0A\u4F20\u9644\u4EF6",onClick:()=>{E(!1),O.current?.click()}})]}),u?(0,l.jsx)("p",{className:"task-board-team-error",role:"alert",children:u}):null]}):(0,l.jsx)("p",{className:"task-board-team-run-detail",children:"\u8FD9\u6B21\u8FD0\u884C\u6CA1\u6709\u7FA4\u804A\u4F1A\u8BDD\uFF0C\u53EA\u80FD\u5728\u65F6\u95F4\u7EBF\u91CC\u770B\u3002"}),(0,l.jsx)(Fe.WandDialogSurface,{open:Y?.phase==="open",onOpenChange:p=>{p||ht()},title:Y?.name??"",description:Y?[Y.clock,Y.typeLabel].filter(Boolean).join(" \xB7 "):void 0,className:["wand-ui-dialog-content","wand-team-chat-doc-dialog",Y?.side==="end"?"wand-doc-dx-end":"wand-doc-dx-start",Y?.half==="top"?"wand-doc-dy-top":"wand-doc-dy-bottom"].join(" "),testId:"team-chat-doc-dialog",closeLabel:"\u5173\u95ED",children:Y?(0,l.jsx)(As,{layer:Y,onExited:kr}):null})]})}var Sn=y(bt()),Nn=y(Xe()),En=y(Mt()),Ft=y(Rn()),ye=y(Se()),h=y(se()),Tt={running:{label:"\u8FDB\u884C\u4E2D",tone:"info"},awaiting_approval:{label:"\u7B49\u4F60\u6279\u51C6\u8BA1\u5212",tone:"warning"},waiting_user:{label:"\u7B49\u4F60\u56DE\u590D",tone:"warning"},done:{label:"\u5DF2\u5B8C\u6210",tone:"success"},failed:{label:"\u5931\u8D25",tone:"neutral"},stopped:{label:"\u5DF2\u505C\u6B62",tone:"neutral"}},Ss={queued:"\u6392\u961F",running:"\u8FDB\u884C\u4E2D",done:"\u5B8C\u6210",failed:"\u5931\u8D25",skipped:"\u8DF3\u8FC7"},Cn={needs_input:"\u7B49\u5F85\u56DE\u7B54",needs_permission:"\u7B49\u5F85\u6388\u6743"},Ns=["running","awaiting_approval","waiting_user"];function Es(){let[e,t]=Z.useState(""),[n,a]=Z.useState(null),r=Z.useRef(null);Z.useEffect(()=>()=>{r.current!==null&&window.clearTimeout(r.current)},[]);let m=Z.useCallback(async(s,c)=>{t(s),a(null);let d=!0;try{await c()}catch{d=!1}finally{t("")}a({key:s,ok:d}),r.current!==null&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{r.current=null,a(null)},d?Ft.MOTION_DWELL_SENT_MS:Ft.MOTION_DWELL_FAILED_MS)},[]);return{pending:e,flash:n,run:m}}function dt({id:e,state:t,label:n,pendingLabel:a,kind:r="ghost",disabled:m,onClick:s}){let c=t.flash?.key===e?t.flash:null,d=t.pending===e;return(0,h.jsx)(ye.WandButton,{kind:r,size:"small","aria-busy":d||void 0,"aria-live":"polite",disabled:m||!!t.pending,onClick:()=>{t.run(e,s)},children:d?a:c?c.ok?"\u5DF2\u5B8C\u6210":"\u5931\u8D25":n})}function pa(e,t){return e.status==="running"?t&&Cn[t]?"waiting":"working":e.status==="done"?"done":e.status==="failed"?"failed":"idle"}function Cs(e,t,n){let a=t.filter(s=>s.memberId===e.id),r=a.find(s=>s.status==="running");if(r)return pa(r,r.sessionId?n[r.sessionId]:void 0);let m=[...a].reverse().find(s=>s.status!=="queued"&&s.status!=="skipped");return m?pa(m,void 0):"idle"}function Is({step:e,steps:t,member:n,memberState:a,open:r,onToggle:m,onOpenSession:s,onComplete:c,actions:d}){let i=n?.name??(e.kind==="leader"?"\u8D1F\u8D23\u4EBA":e.memberId),[u,v]=Z.useState(""),[w,S]=Z.useState(!1),b=e.dispatchInfo?.skipped??[],f=a?Cn[a]:void 0,I=e.kind==="work"&&e.status==="running",R=e.status==="queued"?e.dependsOn.map(k=>t.find(E=>E.id===k)).filter(k=>!!k&&k.status!=="done").map(k=>`#${k.seq}`):[];return(0,h.jsxs)("li",{className:"task-board-team-step","data-status":e.status,"data-kind":e.kind,"data-open":r||void 0,children:[n?(0,h.jsx)(kt.TeamAvatar,{member:n,size:"sm",state:pa(e,a)}):(0,h.jsx)("span",{}),(0,h.jsxs)("div",{className:"task-board-team-step-card",children:[(0,h.jsxs)("button",{type:"button",className:"task-board-team-step-head","aria-expanded":r,onClick:m,children:[(0,h.jsxs)("span",{className:"task-board-team-step-title",children:[(0,h.jsxs)("small",{children:[i," \xB7 #",e.seq]}),(0,h.jsx)("strong",{children:e.title||(e.kind==="leader"?"\u8D1F\u8D23\u4EBA\u51B3\u7B56":"\u6210\u5458\u6B65\u9AA4")})]}),(0,h.jsx)("span",{className:"task-board-team-step-status",children:f??(R.length?`\u7B49\u5F85 ${R.join("\u3001")}`:Ss[e.status])}),(0,h.jsx)(ye.WandIcon,{name:"chevronDown",size:14})]}),e.report&&!r?(0,h.jsx)("p",{className:"task-board-team-step-preview",children:e.report}):null,(0,h.jsx)("div",{className:"task-board-team-step-body",inert:!r,children:(0,h.jsxs)("div",{className:"task-board-team-step-inner",children:[e.instructions?(0,h.jsxs)("section",{children:[(0,h.jsx)("h4",{children:e.kind==="leader"?"\u53D1\u7ED9\u8D1F\u8D23\u4EBA":"\u4EFB\u52A1\u8BF4\u660E"}),(0,h.jsx)("pre",{children:e.instructions})]}):null,e.report?(0,h.jsxs)("section",{children:[(0,h.jsx)("h4",{children:e.kind==="leader"?"\u8D1F\u8D23\u4EBA\u8BF4\u660E":"\u62A5\u544A"}),(0,h.jsx)("pre",{children:e.report})]}):null,(0,h.jsxs)("p",{className:"task-board-team-step-meta",children:["\u62A5\u544A\u6587\u4EF6\uFF1A",(0,h.jsx)("code",{children:e.reportPath})]}),e.sessionId&&s?(0,h.jsx)("div",{className:"task-board-native-editor-actions",children:(0,h.jsxs)(ye.WandButton,{kind:"ghost",size:"small",onClick:()=>s(e.sessionId),children:[(0,h.jsx)(ye.WandIcon,{name:"terminal",size:14,slot:"start"}),"\u6253\u5F00\u4F1A\u8BDD"]})}):null,I?(0,h.jsxs)("div",{className:"task-board-team-manual",children:[(0,h.jsx)("textarea",{className:"resize-none task-board-detail-body",rows:3,value:u,placeholder:"\u6210\u5458\u6CA1\u6709\u5199\u62A5\u544A\u6587\u4EF6\u65F6\uFF0C\u5728\u8FD9\u91CC\u8865\u4E00\u6BB5\u7ED3\u679C\u518D\u624B\u52A8\u5B8C\u6210","aria-label":"\u624B\u52A8\u5B8C\u6210\u7684\u62A5\u544A",onChange:k=>v(k.currentTarget.value)}),(0,h.jsx)(dt,{id:`complete-${e.id}`,state:d,label:"\u624B\u52A8\u5B8C\u6210\u6B64\u6B65",pendingLabel:"\u63D0\u4EA4\u4E2D\u2026",onClick:()=>c(u)})]}):null]})}),b.length?(0,h.jsxs)("div",{className:"task-board-team-step-skips","data-open":w||void 0,children:[(0,h.jsxs)("button",{type:"button",className:"task-board-team-step-skip-head","aria-expanded":w,onClick:()=>S(k=>!k),children:[(0,h.jsx)(ye.WandIcon,{name:"warning",size:13}),(0,h.jsxs)("span",{children:["\u5907\u7528\u5019\u9009 ",b.map(k=>k.candidate).join("\u3001")," \u6CA1\u7528\u4E0A"]}),(0,h.jsx)(ye.WandIcon,{name:"chevronDown",size:14})]}),(0,h.jsx)("div",{className:"task-board-team-step-skip-body",inert:!w,children:(0,h.jsx)("ul",{className:"task-board-team-step-skip-inner",children:b.map(k=>(0,h.jsxs)("li",{children:[(0,h.jsxs)("strong",{children:["\u5019\u9009 ",k.candidate," \xB7 ",(0,Nn.issueAgentProviderLabel)(k.agent.provider)]}),(0,h.jsx)("span",{children:k.reason})]},k.candidate))})})]}):null]})]})}var An=[{value:"chat",label:"\u7FA4\u804A"},{value:"timeline",label:"\u65F6\u95F4\u7EBF"},{value:"members",label:"\u6309\u6210\u5458"}];function ua({detail:e,onChange:t,onOpenSession:n}){let{run:a,steps:r,memberStates:m}=e,s=Es(),[c,d]=Z.useState(""),[i,u]=Z.useState(""),[v,w]=Z.useState("chat"),[S,b]=Z.useState(""),[f,I]=Z.useState(""),R=Tt[a.status],k=Ns.includes(a.status),E=a.stepsUsed>=a.stepLimit,g=a.status==="awaiting_approval"||a.status==="waiting_user",N=Le(e),O=[...N.members].sort((M,H)=>Number(H.isLeader)-Number(M.isLeader));Z.useEffect(()=>{b(""),I("")},[a.id,a.status]);let P=M=>async()=>{I("");try{t(await M()),b("")}catch(H){throw I((0,Sn.failureMessage)(H,"\u64CD\u4F5C\u5931\u8D25\u3002")),H}},ee=M=>(0,h.jsx)(Is,{step:M,steps:r,member:N.members.find(H=>H.id===M.memberId),memberState:M.sessionId?m[M.sessionId]:void 0,open:c===M.id,onToggle:()=>d(H=>H===M.id?"":M.id),onOpenSession:n,onComplete:H=>P(()=>we.aiTeamsRepository.completeStep(a.id,M.id,H))(),actions:s},M.id),me=i?r.filter(M=>M.memberId===i):r,V=i?"timeline":v;return(0,h.jsxs)("div",{className:"task-board-team-run","data-status":a.status,children:[(0,h.jsxs)("div",{className:"task-board-team-run-head",children:[(0,h.jsx)("span",{className:"task-board-team-run-kicker",children:"\u56E2\u961F\u8FD0\u884C"}),(0,h.jsx)(kt.TeamAvatarStack,{members:N.members,size:"sm"}),(0,h.jsx)("strong",{children:N.name}),(0,h.jsx)(ye.WandBadge,{tone:R.tone,children:R.label}),(0,h.jsxs)("small",{children:["\u6B65\u6570 ",a.stepsUsed,"/",a.stepLimit]}),a.chatSessionId?(0,h.jsx)(ye.WandButton,{kind:"secondary",size:"small",onClick:()=>En.taskBoardController.open("","","teamchat",a.id),children:"\u6253\u5F00\u7FA4\u804A"}):null,k?(0,h.jsx)(dt,{id:"stop",state:s,kind:"danger",label:"\u505C\u6B62",pendingLabel:"\u505C\u6B62\u4E2D\u2026",onClick:P(()=>we.aiTeamsRepository.stop(a.id))}):null]}),(0,h.jsx)("div",{className:"task-board-team-roster",role:"group","aria-label":"\u6210\u5458",children:O.map(M=>{let H=r.filter(L=>L.memberId===M.id&&L.status!=="skipped"),W=H.filter(L=>L.status==="done").length;return(0,h.jsxs)("button",{type:"button",className:"task-board-team-roster-item","aria-pressed":i===M.id,title:i===M.id?"\u663E\u793A\u5168\u90E8\u6210\u5458":`\u53EA\u770B${M.name}`,onClick:()=>u(L=>L===M.id?"":M.id),children:[(0,h.jsx)(kt.TeamAvatar,{member:M,state:Cs(M,r,m),showProvider:!0}),(0,h.jsx)("span",{children:M.name}),(0,h.jsx)("small",{children:H.length?`${W}/${H.length}`:"\u5F85\u547D"})]},M.id)})}),g||a.statusDetail?(0,h.jsxs)("div",{className:"task-board-team-banner","data-attention":g||void 0,children:[a.statusDetail?(0,h.jsx)("p",{children:a.statusDetail}):null,g?(0,h.jsxs)("div",{className:"task-board-team-respond",children:[(0,h.jsx)("textarea",{className:"resize-none task-board-detail-body",rows:3,value:S,placeholder:a.status==="awaiting_approval"?"\u9000\u56DE\u65F6\u5199\u4E0B\u4FEE\u6539\u610F\u89C1":"\u56DE\u590D\u8D1F\u8D23\u4EBA\u7684\u95EE\u9898\u6216\u8865\u5145\u8981\u6C42","aria-label":a.status==="awaiting_approval"?"\u9000\u56DE\u610F\u89C1":"\u56DE\u590D\u8D1F\u8D23\u4EBA",onChange:M=>b(M.currentTarget.value)}),(0,h.jsx)("div",{className:"task-board-native-editor-actions",children:a.status==="awaiting_approval"?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(dt,{id:"reject",state:s,label:"\u9000\u56DE\u91CD\u505A",pendingLabel:"\u9000\u56DE\u4E2D\u2026",disabled:!S.trim(),onClick:P(()=>we.aiTeamsRepository.reject(a.id,S))}),(0,h.jsx)(dt,{id:"approve",state:s,kind:"primary",label:"\u6279\u51C6\u8BA1\u5212",pendingLabel:"\u6279\u51C6\u4E2D\u2026",onClick:P(()=>we.aiTeamsRepository.approve(a.id))})]}):(0,h.jsxs)(h.Fragment,{children:[E?(0,h.jsx)(dt,{id:"continue",state:s,label:"\u8FFD\u52A0 10 \u6B65\u7EE7\u7EED",pendingLabel:"\u7EE7\u7EED\u4E2D\u2026",onClick:P(()=>we.aiTeamsRepository.continueRun(a.id,10))}):null,(0,h.jsx)(dt,{id:"reply",state:s,kind:"primary",label:"\u53D1\u9001\u56DE\u590D",pendingLabel:"\u53D1\u9001\u4E2D\u2026",disabled:!S.trim(),onClick:P(()=>we.aiTeamsRepository.reply(a.id,S))})]})})]}):null]}):null,f?(0,h.jsx)("p",{className:"task-board-team-error",role:"alert",children:f}):null,i?null:(0,h.jsx)(ye.WandStretchTabs,{tabs:An,value:v,ariaLabel:"\u8FD0\u884C\u89C6\u56FE",className:"task-board-team-views",onValueChange:w}),(0,h.jsx)("div",{className:"task-board-team-views-stack",children:An.map(M=>(0,h.jsxs)("div",{className:"task-board-team-view","data-view":M.value,"data-hidden":V!==M.value||void 0,inert:V!==M.value,children:[M.value==="chat"?(0,h.jsx)(ot,{detail:e,onChange:t,onOpenSession:n}):null,M.value==="timeline"?(0,h.jsx)("ol",{className:"task-board-team-steps",children:me.map(ee)}):null,M.value==="members"?(0,h.jsx)("div",{className:"task-board-team-groups",children:O.map(H=>{let W=r.filter(L=>L.memberId===H.id);return(0,h.jsxs)("section",{className:"task-board-team-group",children:[(0,h.jsxs)("header",{children:[(0,h.jsx)("strong",{children:H.name}),(0,h.jsx)("small",{children:H.duty})]}),W.length?(0,h.jsx)("ol",{className:"task-board-team-steps",children:W.map(ee)}):(0,h.jsx)("p",{className:"task-board-team-run-detail",children:"\u8FD8\u6CA1\u6709\u5206\u5230\u6B65\u9AA4\u3002"})]},H.id)})}):null]},M.value))})]})}function In({taskId:e,refreshKey:t=0,onOpenSession:n}){let[a,r]=Z.useState(null),m=a?.run.id??"",s=Z.useCallback(async()=>{try{let c=await we.aiTeamsRepository.runsForTask(e);r(c[0]?await we.aiTeamsRepository.detail(c[0].id):null)}catch{}},[e]);return Z.useEffect(()=>{r(null)},[e]),Z.useEffect(()=>{s()},[s,t]),Z.useEffect(()=>(0,we.subscribeAiTeamRunChanges)(c=>{(c.taskId===e||c.runId===m)&&s()}),[m,s,e]),Z.useEffect(()=>(0,we.subscribeAiTeamDefinitionChanges)(c=>{c===a?.run.teamId&&s()}),[a?.run.teamId,s]),a?(0,h.jsx)("section",{className:"task-board-team","aria-label":"AI \u56E2\u961F",children:(0,h.jsx)(ua,{detail:a,onChange:r,onOpenSession:n})}):null}var rr=y(sa()),Ra=y(ga()),Yt=y(_n()),ie=y(Dn()),sr=y(fa()),F=y(Se()),ce=y(st()),xe=y(wt());var Qe=y(Ae()),Rt=y(Se());var Wn=y(Xe());function Ht(e){return e===0?"\u9996\u9009":`\u5907\u7528 ${e+1}`}function ha(e){if(e.length>=4)return e;let t=e[e.length-1];return[...e,t?{...t}:(0,Wn.createDefaultIssueAgent)()]}function va(e,t,n){return e.map((a,r)=>r===t?{...n}:a)}function ba(e,t){return e.length<=1?e:e.filter((n,a)=>a!==t)}function wa(e,t,n){let a=t+n;if(a<0||a>=e.length)return e;let r=[...e],m=r[t];return r[t]=r[a],r[a]=m,r}function jt(e){let t=new Set,n=[];return e.forEach((a,r)=>{let m=Ma(a);t.has(m)?n.push(r):t.add(m)}),n}function je(e){if(e.length===0)return"\u81F3\u5C11\u4FDD\u7559 1 \u4E2A\u6267\u884C\u5019\u9009\u3002";if(e.length>4)return`\u6267\u884C\u5019\u9009\u6700\u591A ${4} \u4E2A\u3002`;let t=jt(e);return t.length>0?`\u5019\u9009\u300C${Ht(t[0])}\u300D\u4E0E\u66F4\u9760\u524D\u7684\u914D\u7F6E\u76F8\u540C\uFF0C\u6539\u4E00\u9879\u5373\u53EF\u3002`:""}var Bn=y(On());var G=y(se());function zs({id:e,agent:t,index:n,total:a,catalog:r,providerOptions:m,disabled:s,duplicate:c,ariaPrefix:d,structuredOnly:i=!1,onChange:u,onMove:v,onRemove:w}){let S=Qe.useRef(null),b=Ht(n);return(0,G.jsx)("div",{ref:S,"data-candidate-id":e,className:"wand-team-candidate","data-candidate-index":n,"data-duplicate":c||void 0,children:(0,G.jsxs)("div",{className:"wand-team-candidate-inner",children:[(0,G.jsx)("span",{className:"wand-team-candidate-tag",children:b}),(0,G.jsx)("div",{className:"wand-ai-team-member-agent",children:(0,G.jsx)(Bn.AgentFields,{agent:t,disabled:s,catalog:r,providerOptions:m,ariaPrefix:`${d} ${b}`,showKind:!i,onChange:f=>u(i?{...f,kind:"structured"}:f)})}),(0,G.jsxs)("div",{className:"wand-team-candidate-tools",children:[(0,G.jsx)("button",{type:"button",className:"wand-team-candidate-tool","data-tool":"up",title:"\u4E0A\u79FB","aria-label":`\u628A${b}\u4E0A\u79FB`,disabled:s||n===0,onClick:()=>v(-1),children:(0,G.jsx)(Rt.WandIcon,{name:"chevronUp",size:14})}),(0,G.jsx)("button",{type:"button",className:"wand-team-candidate-tool","data-tool":"down",title:"\u4E0B\u79FB","aria-label":`\u628A${b}\u4E0B\u79FB`,disabled:s||n===a-1,onClick:()=>v(1),children:(0,G.jsx)(Rt.WandIcon,{name:"chevronDown",size:14})}),(0,G.jsx)("button",{type:"button",className:"wand-team-candidate-tool","data-tool":"remove",title:a<=1?"\u81F3\u5C11\u8981\u4FDD\u7559 1 \u4E2A\u5019\u9009":"\u5220\u9664\u8BE5\u5019\u9009","aria-label":`\u5220\u9664${b}`,disabled:s||a<=1,onClick:w,children:(0,G.jsx)(Rt.WandIcon,{name:"close",size:14})})]})]})})}function lt({agents:e,label:t,catalog:n,providerOptions:a,disabled:r,structuredOnly:m=!1,onChange:s}){let c=Qe.useRef(null),d=Qe.useRef(new Map),i=Qe.useRef([]);for(;i.current.length<e.length;)i.current.push(`c_${Math.random().toString(36).slice(2,9)}`);i.current.length>e.length&&(i.current=i.current.slice(0,e.length)),Qe.useLayoutEffect(()=>{let f=c.current;if(!f)return;let I=Array.from(f.children).filter(E=>E instanceof HTMLElement&&E.hasAttribute("data-candidate-id")),R=new Map;I.forEach(E=>{let g=E.getAttribute("data-candidate-id");g&&R.set(g,E.getBoundingClientRect().top)});let k=typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;I.forEach(E=>{let g=E.getAttribute("data-candidate-id");if(!g)return;let N=d.current.get(g),O=R.get(g);if(N!==void 0&&O!==void 0&&N!==O){if(k){E.style.transform="",E.style.transition="";return}let P=N-O;E.style.transform=`translateY(${P}px)`,E.style.transition="none",requestAnimationFrame(()=>{E.style.transition="transform var(--motion-normal) var(--ease-in-out-smooth)",E.style.transform=""})}}),d.current=R});let u=jt(e),v=je(e),w=()=>{let f=ha(e);f!==e&&(i.current.push(`c_${Math.random().toString(36).slice(2,9)}`),s(f))},S=f=>{e.length<=1||(i.current.splice(f,1),s(ba(e,f)))},b=(f,I)=>{let R=f+I;if(R<0||R>=e.length)return;let k=i.current[f];i.current[f]=i.current[R],i.current[R]=k,s(wa(e,f,I))};return(0,G.jsxs)("div",{ref:c,className:"wand-team-candidates",role:"group","aria-label":`${t} \u7684\u6267\u884C\u5019\u9009`,children:[(0,G.jsxs)("header",{className:"wand-team-candidates-head",children:[(0,G.jsx)("span",{children:"\u6267\u884C\u5019\u9009"}),(0,G.jsxs)("small",{children:["\u9996\u9009\u4E0D\u53EF\u7528\u65F6\u6309\u987A\u5E8F\u81EA\u52A8\u964D\u7EA7\uFF0C\u6700\u591A ",4," \u4E2A"]})]}),e.map((f,I)=>{let R=i.current[I]||`row-${I}`;return(0,G.jsx)(zs,{id:R,agent:f,index:I,total:e.length,catalog:n,providerOptions:a,disabled:r,duplicate:u.includes(I),ariaPrefix:t,structuredOnly:m,onChange:k=>s(va(e,I,k)),onMove:k=>b(I,k),onRemove:()=>S(I)},R)}),(0,G.jsxs)("div",{className:"wand-team-candidates-foot",children:[(0,G.jsxs)("button",{type:"button",className:"wand-team-candidate-add",disabled:r||e.length>=4,title:e.length>=4?`\u5DF2\u7ECF\u5230 ${4} \u4E2A\u5019\u9009\u4E0A\u9650`:"\u5728\u672B\u5C3E\u52A0\u4E00\u4E2A\u5907\u7528\u5019\u9009",onClick:w,children:[(0,G.jsx)(Rt.WandIcon,{name:"plus",size:14}),(0,G.jsx)("span",{children:"\u6DFB\u52A0\u5019\u9009"})]}),v?(0,G.jsx)("small",{className:"wand-team-candidate-error",role:"alert",children:v}):null]})]})}var et=y(Ae());var Ke=y(Se());var Ze=y(Ae());var De=y(Se());var jn=y(Ae()),Ue=y(st()),Un=y(Hn()),Ut=y(Se());var ve=y(se());function ya({employee:e,size:t="md",className:n=""}){let a=e.avatar?.startsWith("data:image/")?e.avatar:"",r=`wand-team-avatar ${n}`.trim();return(0,ve.jsx)("span",{className:r,"data-size":t,title:e.name,children:(0,ve.jsx)("span",{className:"wand-team-avatar-face",children:a?(0,ve.jsx)("img",{src:a,alt:""}):(0,ve.jsx)(Ue.PixelCat,{coat:(0,Ue.memberCoatIndex)(e)})})})}function qt({avatar:e,name:t,disabled:n,onChange:a}){let r=jn.useRef(null),m=(0,Ue.memberCoatIndex)({id:"custom",name:t,avatar:e}),s=c=>{let d=c.target.files?.[0];d&&(0,Ue.shrinkAvatarImage)(d,La).then(i=>{a(i)}).catch(i=>{console.error("\u7F29\u5C0F\u5934\u50CF\u5931\u8D25",i)})};return(0,ve.jsxs)("div",{className:"wand-team-avatar-picker",role:"group","aria-label":"\u5458\u5DE5\u5934\u50CF",children:[(0,ve.jsx)(ya,{employee:{id:"preview",name:t,avatar:e},size:"lg"}),Un.CAT_COATS.map((c,d)=>(0,ve.jsx)("button",{type:"button",className:"wand-team-coat",title:c.name,"aria-label":c.name,"aria-pressed":!e.startsWith("data:")&&m===d,disabled:n,onClick:()=>a(`cat:${d}`),children:(0,ve.jsx)(Ue.PixelCat,{coat:d})},c.name)),(0,ve.jsx)("button",{type:"button",className:"wand-team-coat is-upload",title:"\u4E0A\u4F20\u5934\u50CF\u56FE\u7247","aria-label":"\u4E0A\u4F20\u5934\u50CF\u56FE\u7247","aria-pressed":e.startsWith("data:"),disabled:n,onClick:()=>r.current?.click(),children:(0,ve.jsx)(Ut.WandIcon,{name:"image",size:14})}),(0,ve.jsx)("input",{ref:r,type:"file",accept:"image/*",hidden:!0,onChange:s}),e?(0,ve.jsx)(Ut.WandButton,{kind:"ghost",size:"small",disabled:n,onClick:()=>a(""),children:"\u91CD\u7F6E"}):null]})}var qn=y(Xe());var B=y(se());function Kn({employee:e,catalog:t,providerOptions:n,onSave:a,onArchive:r,onUnarchive:m,onDelete:s}){let[c,d]=Ze.useState(!1),[i,u]=Ze.useState(e),[v,w]=Ze.useState(!1),[S,b]=Ze.useState(null);Ze.useEffect(()=>{u(e)},[e]);let f=()=>{c?(u(e),b(null),d(!1)):d(!0)},I=async()=>{let g=i.agents.some(N=>N.kind!=="structured")?"\u7845\u57FA\u5458\u5DE5\u53EA\u80FD\u4F7F\u7528\u7ED3\u6784\u5316\u5019\u9009\u3002":je(i.agents);if(g){b(g);return}if(!i.name.trim()){b("\u5458\u5DE5\u540D\u5B57\u4E0D\u80FD\u4E3A\u7A7A\u3002");return}try{w(!0),b(null),await a(i),d(!1)}catch(N){b(N instanceof Error?N.message:String(N))}finally{w(!1)}},R=!!e.archivedAt,k=zt(e);return(0,B.jsxs)("article",{className:`wand-team-member wand-employee-card${R?" is-archived":""}${k?" is-system":""}`,"data-open":c||void 0,children:[(0,B.jsxs)("button",{type:"button",className:"wand-team-member-head","aria-expanded":c,onClick:f,children:[(0,B.jsx)(ya,{employee:e,size:"lg"}),(0,B.jsxs)("span",{className:"wand-team-member-copy",children:[(0,B.jsxs)("strong",{children:[e.name,k?(0,B.jsx)("em",{className:"wand-employee-system-tag",children:ra}):null,R?(0,B.jsx)("em",{className:"wand-employee-archived-tag",children:"\u5DF2\u5F52\u6863"}):null]}),(0,B.jsx)("small",{children:e.duty||"\u8FD8\u6CA1\u5199\u804C\u8D23"}),(0,B.jsxs)("span",{className:"wand-team-member-agent",children:[e.agents[0]?(0,qn.issueAgentProviderModelLine)(e.agents[0],t):"\u672A\u914D\u7F6E\u5019\u9009",e.agents.length>1?` (+${e.agents.length-1} \u4E2A\u5907\u7528)`:null]})]}),(0,B.jsx)(De.WandIcon,{name:"chevronDown",size:14})]}),(0,B.jsx)("div",{className:"wand-team-member-body",inert:!c,children:(0,B.jsxs)("div",{className:"wand-team-member-inner",children:[k?(0,B.jsxs)("div",{className:"wand-employee-system-note",role:"note",children:[(0,B.jsx)("strong",{children:ra}),(0,B.jsx)("span",{children:"Wand \u5185\u7F6E\u5458\u5DE5\uFF1A\u540D\u5B57\u3001\u804C\u8D23\u4E0E\u89D2\u8272\u8BBE\u5B9A\u7531\u670D\u52A1\u7AEF\u56FA\u5B9A\uFF0C\u4E0D\u53EF\u4FEE\u6539\u3001\u4E0D\u53EF\u5220\u9664\uFF1BWand \u81EA\u5DF1\u7684 AI \u8C03\u7528\uFF08Commit\u3001\u6807\u9898\u3001\u63D0\u793A\u8BCD\u4F18\u5316\uFF09\u90FD\u6309\u4E0B\u9762\u7684\u5019\u9009\u94FE\u6267\u884C\u3002"})]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)("div",{className:"wand-settings-field",children:[(0,B.jsx)("label",{className:"wand-settings-label",htmlFor:`employee-${e.id}-name`,children:"\u540D\u5B57"}),(0,B.jsx)("input",{id:`employee-${e.id}-name`,type:"text",className:"wand-settings-input",value:i.name,placeholder:"\u5458\u5DE5\u540D\u5B57",disabled:v,onChange:g=>u({...i,name:g.target.value})})]}),(0,B.jsx)(qt,{avatar:i.avatar,name:i.name,disabled:v,onChange:g=>u({...i,avatar:g})}),(0,B.jsxs)("div",{className:"wand-settings-field",children:[(0,B.jsx)("label",{className:"wand-settings-label",htmlFor:`employee-${e.id}-duty`,children:"\u804C\u8D23"}),(0,B.jsx)("textarea",{id:`employee-${e.id}-duty`,className:"wand-settings-input resize-none",rows:2,value:i.duty,placeholder:"\u4E00\u53E5\u8BDD\u804C\u8D23\uFF1A\u5728\u4FA7\u680F\u3001\u9009\u62E9\u5668\u548C\u7F72\u540D\u4E2D\u663E\u793A",disabled:v,onChange:g=>u({...i,duty:g.target.value})})]}),(0,B.jsxs)("div",{className:"wand-settings-field",children:[(0,B.jsx)("label",{className:"wand-settings-label",htmlFor:`employee-${e.id}-prompt`,children:"\u89D2\u8272\u8BBE\u5B9A (Prompt)"}),(0,B.jsx)("textarea",{id:`employee-${e.id}-prompt`,className:"wand-settings-input resize-none",rows:4,value:i.prompt,placeholder:"\u8BBE\u5B9A\u89D2\u8272\u7684\u4E13\u4E1A\u80FD\u529B\u3001\u884C\u4E3A\u5B88\u5219\u4E0E\u4EA4\u4ED8\u4E60\u60EF\uFF08\u521B\u5EFA\u4F1A\u8BDD\u65F6\u4F5C\u4E3A\u7CFB\u7EDF\u63D0\u793A\u751F\u6548\uFF09",disabled:v,onChange:g=>u({...i,prompt:g.target.value})})]})]}),(0,B.jsx)(lt,{agents:i.agents,label:i.name||"\u5458\u5DE5",catalog:t,providerOptions:n,disabled:v,structuredOnly:!0,onChange:g=>u({...i,agents:g})}),S?(0,B.jsx)("div",{className:"wand-team-candidate-error",role:"alert",children:S}):null,(0,B.jsxs)("div",{className:"wand-team-member-actions",children:[(0,B.jsx)(De.WandButton,{kind:"primary",size:"small",disabled:v,onClick:I,children:"\u4FDD\u5B58\u4FEE\u6539"}),(0,B.jsx)(De.WandButton,{kind:"ghost",size:"small",disabled:v,onClick:f,children:"\u53D6\u6D88"}),k?null:R?(0,B.jsx)(De.WandButton,{kind:"ghost",size:"small",disabled:v,onClick:m,children:"\u6062\u590D"}):(0,B.jsx)(De.WandButton,{kind:"ghost",size:"small",disabled:v,onClick:r,children:"\u5F52\u6863"}),k?null:(0,B.jsxs)(De.WandButton,{kind:"ghost",size:"small",disabled:v,onClick:s,children:[(0,B.jsx)(De.WandIcon,{name:"trash",size:14,slot:"start"}),"\u5220\u9664"]})]})]})})]})}var Te=y(Ae()),Pe=y(Se());var Yn=y(Xe()),ka=y(xa()),q=y(se());function Xn({catalog:e,providerOptions:t,onSave:n,onCancel:a}){let[r,m]=Te.useState(""),[s,c]=Te.useState(!1),[d,i]=Te.useState(""),[u,v]=Te.useState(""),[w,S]=Te.useState(""),[b,f]=Te.useState(""),[I,R]=Te.useState(()=>[{...(0,Yn.createDefaultIssueAgent)(),kind:"structured"}]),[k,E]=Te.useState(!1),[g,N]=Te.useState(!1),[O,P]=Te.useState(null),ee=W=>W instanceof Error?W.message:String(W),me=()=>{if(!d.trim())return P("\u5458\u5DE5\u540D\u5B57\u4E0D\u80FD\u4E3A\u7A7A\uFF1B\u4E5F\u53EF\u4EE5\u7559\u7A7A\u8BA9 AI \u6309\u671F\u671B\u751F\u6210\u3002"),null;let W=I.some(L=>L.kind!=="structured")?"\u7845\u57FA\u5458\u5DE5\u53EA\u80FD\u4F7F\u7528\u7ED3\u6784\u5316\u5019\u9009\u3002":je(I);return W?(P(W),null):{name:d,duty:u,prompt:w,avatar:b,agents:I}},V=async()=>{if(s&&d.trim()){let W=me();if(!W)return;try{E(!0),P(null),await n(W)}catch(L){P(ee(L))}finally{E(!1)}return}if(!r.trim()){P("\u5148\u8BF4\u8BF4\u4F60\u5BF9\u8FD9\u4F4D\u5458\u5DE5\u7684\u671F\u671B\u5427\u3002");return}try{E(!0),P(null);let W=await ka.siliconEmployeesRepository.draft(r);await n({name:W.name,duty:W.duty,prompt:W.prompt,avatar:"",agents:[W.agent]})}catch(W){P(ee(W))}finally{E(!1)}},M=async()=>{if(!r.trim()){P("\u5148\u5728\u4E0A\u9762\u5199\u4E0B\u4F60\u7684\u671F\u671B\uFF0C\u518D\u8BA9 AI \u8D77\u8349\u3002");return}try{N(!0),P(null);let W=await ka.siliconEmployeesRepository.draft(r);i(W.name),v(W.duty),S(W.prompt),f(""),R([W.agent])}catch(W){P(ee(W))}finally{N(!1)}},H=s&&d.trim().length>0;return(0,q.jsx)("div",{className:"wand-team-member wand-employee-card is-new","data-open":"true",children:(0,q.jsx)("div",{className:"wand-team-member-body",children:(0,q.jsxs)("div",{className:"wand-team-member-inner",children:[(0,q.jsxs)("div",{className:"wand-settings-field",children:[(0,q.jsx)("label",{className:"wand-settings-label",htmlFor:"new-employee-expectation",children:"\u60F3\u8981\u4EC0\u4E48\u6837\u7684\u5458\u5DE5"}),(0,q.jsx)("textarea",{id:"new-employee-expectation",className:"wand-settings-input resize-none",rows:3,value:r,placeholder:"\u8BF4\u8BF4\u4F60\u7684\u671F\u671B\uFF1A\u8BA9\u5B83\u8D1F\u8D23\u4EC0\u4E48\u3001\u9700\u8981\u4EC0\u4E48\u4E13\u957F\u3001\u5E0C\u671B\u5B83\u600E\u4E48\u4EA4\u4ED8\u2026\u2026",disabled:k,autoFocus:!0,onChange:W=>m(W.target.value)}),(0,q.jsx)("p",{className:"wand-employee-hint",children:H?"\u5C06\u6309\u4E0B\u9762\u586B\u597D\u7684\u914D\u7F6E\u521B\u5EFA\u3002":"AI \u4F1A\u6309\u4F60\u7684\u671F\u671B\u914D\u597D\u540D\u5B57\u3001\u804C\u8D23\u3001\u89D2\u8272\u8BBE\u5B9A\u548C\u6267\u884C\u5DE5\u5177\u3002"})]}),(0,q.jsx)("div",{className:"wand-employee-advanced-toggle","data-open":s||void 0,children:(0,q.jsxs)(Pe.WandButton,{kind:"ghost",size:"small","aria-expanded":s,disabled:k,onClick:()=>c(W=>!W),children:[(0,q.jsx)(Pe.WandIcon,{name:"sliders",size:14,slot:"start"}),"\u9AD8\u7EA7\u914D\u7F6E",(0,q.jsx)(Pe.WandIcon,{name:"chevronDown",size:14,slot:"end"})]})}),(0,q.jsx)("section",{className:"wand-employee-advanced","data-open":s||void 0,"aria-hidden":!s,inert:!s,children:(0,q.jsxs)("div",{className:"wand-employee-advanced-inner",children:[(0,q.jsxs)("div",{className:"wand-settings-field",children:[(0,q.jsx)("label",{className:"wand-settings-label",htmlFor:"new-employee-name",children:"\u540D\u5B57"}),(0,q.jsx)("input",{id:"new-employee-name",type:"text",className:"wand-settings-input",value:d,placeholder:"\u5458\u5DE5\u540D\u5B57",disabled:k||g,onChange:W=>i(W.target.value)})]}),(0,q.jsx)(qt,{avatar:b,name:d,disabled:k||g,onChange:f}),(0,q.jsxs)("div",{className:"wand-settings-field",children:[(0,q.jsx)("label",{className:"wand-settings-label",htmlFor:"new-employee-duty",children:"\u804C\u8D23"}),(0,q.jsx)("textarea",{id:"new-employee-duty",className:"wand-settings-input resize-none",rows:2,value:u,placeholder:"\u4E00\u53E5\u8BDD\u804C\u8D23\uFF1A\u5728\u4FA7\u680F\u3001\u9009\u62E9\u5668\u548C\u7F72\u540D\u4E2D\u663E\u793A",disabled:k||g,onChange:W=>v(W.target.value)})]}),(0,q.jsxs)("div",{className:"wand-settings-field",children:[(0,q.jsx)("label",{className:"wand-settings-label",htmlFor:"new-employee-prompt",children:"\u89D2\u8272\u8BBE\u5B9A (Prompt)"}),(0,q.jsx)("textarea",{id:"new-employee-prompt",className:"wand-settings-input resize-none",rows:4,value:w,placeholder:"\u8BBE\u5B9A\u89D2\u8272\u7684\u4E13\u4E1A\u80FD\u529B\u3001\u884C\u4E3A\u5B88\u5219\u4E0E\u4EA4\u4ED8\u4E60\u60EF\uFF08\u521B\u5EFA\u4F1A\u8BDD\u65F6\u4F5C\u4E3A\u7CFB\u7EDF\u63D0\u793A\u751F\u6548\uFF09",disabled:k||g,onChange:W=>S(W.target.value)})]}),(0,q.jsx)(lt,{agents:I,label:d||"\u65B0\u5458\u5DE5",catalog:e,providerOptions:t,disabled:k||g,structuredOnly:!0,onChange:R}),(0,q.jsx)("div",{className:"wand-employee-advanced-tools",children:(0,q.jsxs)(Pe.WandButton,{kind:"ghost",size:"small",disabled:k||g,onClick:()=>{M()},children:[(0,q.jsx)(Pe.WandIcon,{name:"spark",size:14,slot:"start"}),g?"\u751F\u6210\u4E2D\u2026":"\u6309\u671F\u671B\u751F\u6210"]})})]})}),O?(0,q.jsx)("div",{className:"wand-team-candidate-error",role:"alert",children:O}):null,(0,q.jsxs)("div",{className:"wand-team-member-actions",children:[(0,q.jsx)(Pe.WandButton,{kind:"primary",size:"small",className:"wand-employee-create-submit","aria-busy":k||void 0,disabled:k,onClick:()=>{V()},children:k?"\u6B63\u5728\u521B\u5EFA\u2026":"\u521B\u5EFA\u5458\u5DE5"}),(0,q.jsx)(Pe.WandButton,{kind:"ghost",size:"small",disabled:k,onClick:a,children:"\u53D6\u6D88"})]})]})})})}var qe=y(xa()),Gn=y(ga()),te=y(se());function Jn({catalog:e,providerOptions:t}){let{employees:n,loading:a,error:r,reload:m}=(0,qe.useSiliconEmployees)({includeArchived:!0}),[s,c]=et.useState(""),[d,i]=et.useState(!1),[u,v]=et.useState(!1),[w,S]=et.useState(""),b=et.useMemo(()=>n.filter(g=>{if(!d&&g.archivedAt)return!1;if(!s.trim())return!0;let N=s.toLowerCase();return g.name.toLowerCase().includes(N)||g.duty.toLowerCase().includes(N)||g.prompt.toLowerCase().includes(N)}),[n,d,s]),f=async g=>{await qe.siliconEmployeesRepository.create(g),v(!1),m()},I=async(g,N)=>{let O=n.find(ee=>ee.id===g);if(!O)return;let P=zt(O)?O:N;await qe.siliconEmployeesRepository.update(g,{name:P.name??O.name,duty:P.duty??O.duty,prompt:P.prompt??O.prompt,avatar:P.avatar??O.avatar,agents:N.agents??O.agents}),m()},R=async g=>{try{S(""),await qe.siliconEmployeesRepository.archive(g),m()}catch(N){S(N instanceof Error?N.message:"\u5F52\u6863\u5458\u5DE5\u5931\u8D25\u3002")}},k=async g=>{try{S(""),await qe.siliconEmployeesRepository.unarchive(g),m()}catch(N){S(N instanceof Error?N.message:"\u6062\u590D\u5458\u5DE5\u5931\u8D25\u3002")}},E=async g=>{let N=n.find(P=>P.id===g);if(!N)return;let O=await Gn.wandOverlay.dialog({title:`\u5220\u9664\u5458\u5DE5\u300C${N.name}\u300D\uFF1F`,description:"\u5458\u5DE5\u914D\u7F6E\u5C06\u88AB\u5220\u9664\uFF1B\u5DF2\u6709\u4F1A\u8BDD\u4E0E\u5386\u53F2\u6D88\u606F\u4F1A\u4FDD\u7559\u3002",actions:[{label:"\u53D6\u6D88",value:!1,autoFocus:!0},{label:"\u5220\u9664\u5458\u5DE5",value:!0,kind:"danger"}]});if(!(O.dismissed===!0||!O.action))try{S(""),await qe.siliconEmployeesRepository.remove(g),m()}catch(P){S(P instanceof Error?P.message:"\u5220\u9664\u5458\u5DE5\u5931\u8D25\u3002")}};return(0,te.jsxs)("div",{className:"wand-teams-list wand-employee-list",children:[(0,te.jsxs)("header",{className:"wand-teams-toolbar",children:[(0,te.jsx)("div",{className:"wand-teams-toolbar-search",children:(0,te.jsx)(Ke.WandSearchField,{value:s,label:"\u641C\u7D22\u5458\u5DE5\u540D\u5B57\u3001\u804C\u8D23\u6216 Prompt",placeholder:"\u641C\u7D22\u5458\u5DE5\u540D\u5B57\u3001\u804C\u8D23\u6216 Prompt\u2026",onValueChange:c})}),(0,te.jsxs)("div",{className:"wand-teams-toolbar-actions",children:[(0,te.jsxs)("label",{className:"wand-employee-filter-toggle",children:[(0,te.jsx)("input",{type:"checkbox",checked:d,onChange:g=>i(g.target.checked)}),(0,te.jsx)("span",{children:"\u663E\u793A\u5F52\u6863"})]}),(0,te.jsxs)(Ke.WandButton,{kind:"primary",disabled:u,onClick:()=>v(!0),children:[(0,te.jsx)(Ke.WandIcon,{name:"plus",size:14,slot:"start"}),"\u65B0\u5EFA\u5458\u5DE5"]})]})]}),r?(0,te.jsx)("div",{className:"wand-team-candidate-error",role:"alert",children:r}):null,w?(0,te.jsx)("div",{className:"wand-team-candidate-error",role:"alert",children:w}):null,(0,te.jsxs)("div",{className:"wand-team-members",children:[u?(0,te.jsx)(Xn,{catalog:e,providerOptions:t,onSave:f,onCancel:()=>v(!1)}):null,a&&n.length===0?(0,te.jsx)("p",{className:"wand-teams-empty",role:"status",children:"\u6B63\u5728\u52A0\u8F7D\u5458\u5DE5\u5217\u8868\u2026"}):null,!a&&b.length===0&&!u?(0,te.jsxs)("div",{className:"wand-teams-empty",children:[(0,te.jsx)("p",{children:s?"\u6CA1\u6709\u5339\u914D\u7684\u5458\u5DE5":"\u8FD8\u6CA1\u6709\u7845\u57FA\u5458\u5DE5\u3002\u521B\u5EFA\u4E00\u4E2A\u89D2\u8272\uFF0C\u5E76\u4E3A\u5B83\u914D\u7F6E\u4E13\u5C5E\u7684\u6267\u884C\u5DE5\u5177\u94FE\u5427\uFF01"}),s?null:(0,te.jsxs)(Ke.WandButton,{kind:"primary",onClick:()=>v(!0),children:[(0,te.jsx)(Ke.WandIcon,{name:"plus",size:14,slot:"start"}),"\u521B\u5EFA\u4F60\u7684\u7B2C\u4E00\u4E2A\u7845\u57FA\u5458\u5DE5"]})]}):null,b.map(g=>(0,te.jsx)(Kn,{employee:g,catalog:e,providerOptions:t,onSave:N=>I(g.id,N),onArchive:()=>R(g.id),onUnarchive:()=>k(g.id),onDelete:()=>E(g.id)},g.id))]})]})}var o=y(se()),er="__new__",_s=["awaiting_approval","waiting_user"],Ls=[{id:"dev",name:"\u5F00\u53D1\u4E09\u4EBA\u7EC4",summary:"\u8D1F\u8D23\u4EBA\u62C6\u89E3\u4E0E\u9A8C\u6536\uFF0C\u4E00\u4EBA\u5B9E\u73B0\uFF0C\u4E00\u4EBA\u5BA1\u67E5",instructions:"\u5BA1\u67E5\u8005\u53EA\u8BFB\u4EE3\u7801\uFF0C\u95EE\u9898\u5199\u8FDB\u62A5\u544A\uFF0C\u7531\u8D1F\u8D23\u4EBA\u51B3\u5B9A\u662F\u5426\u8FD4\u5DE5\u3002",members:[{name:"\u8D1F\u8D23\u4EBA",isLeader:!0,duty:"\u62C6\u89E3\u4EFB\u52A1\u3001\u5206\u6D3E\u6B65\u9AA4\uFF0C\u5BA1\u9605\u62A5\u544A\u5E76\u51B3\u5B9A\u4E0B\u4E00\u6B65\u6216\u5B8C\u6210\u3002"},{name:"\u5B9E\u73B0\u8005",duty:"\u6309\u6B65\u9AA4\u6539\u4EE3\u7801\u5E76\u81EA\u6D4B\uFF0C\u62A5\u544A\u5199\u6E05\u6539\u52A8\u4E0E\u9A8C\u8BC1\u65B9\u5F0F\u3002"},{name:"\u5BA1\u67E5\u8005",duty:"\u5BA1\u67E5\u6539\u52A8\u4E0E\u6D4B\u8BD5\uFF0C\u6307\u51FA\u95EE\u9898\u548C\u98CE\u9669\uFF0C\u4E0D\u76F4\u63A5\u4FEE\u6539\u3002"}]},{id:"bugfix",name:"\u4FEE Bug \u4E8C\u4EBA\u7EC4",summary:"\u8D1F\u8D23\u4EBA\u5B9A\u4F4D\u4E0E\u9A8C\u8BC1\uFF0C\u4E00\u4EBA\u4FEE\u590D",instructions:"\u5148\u590D\u73B0\u518D\u4FEE\uFF0C\u4FEE\u590D\u9644\u4E0A\u9A8C\u8BC1\u6B65\u9AA4\u3002",members:[{name:"\u8D1F\u8D23\u4EBA",isLeader:!0,duty:"\u590D\u73B0\u5E76\u5B9A\u4F4D\u6839\u56E0\uFF0C\u5199\u6E05\u4FEE\u6539\u8303\u56F4\uFF0C\u4FEE\u5B8C\u540E\u9A8C\u8BC1\u3002"},{name:"\u4FEE\u590D\u8005",duty:"\u6309\u5B9A\u4F4D\u4FEE\u6539\u4EE3\u7801\uFF0C\u8865\u56DE\u5F52\u6D4B\u8BD5\uFF0C\u62A5\u544A\u9644\u9A8C\u8BC1\u8F93\u51FA\u3002"}]},{id:"research",name:"\u8C03\u7814\u52A0\u8BC4\u5BA1",summary:"\u4E24\u4EBA\u5E76\u884C\u8C03\u7814\u4E0D\u540C\u65B9\u5411\uFF0C\u8D1F\u8D23\u4EBA\u6C47\u603B",instructions:"\u8C03\u7814\u5458\u53EF\u540C\u65F6\u5F00\u59CB\uFF0C\u53EA\u8BFB\u4E0D\u6539\u6587\u4EF6\u3002",members:[{name:"\u8D1F\u8D23\u4EBA",isLeader:!0,duty:"\u62C6\u51FA\u4E92\u4E0D\u91CD\u53E0\u7684\u8C03\u7814\u65B9\u5411\uFF0C\u6C47\u603B\u7ED3\u8BBA\u7ED9\u51FA\u5EFA\u8BAE\u3002"},{name:"\u8C03\u7814\u5458\u7532",duty:"\u6309\u5206\u6D3E\u7684\u65B9\u5411\u8C03\u7814\uFF0C\u7ED3\u8BBA\u9644\u51FA\u5904\u3002"},{name:"\u8C03\u7814\u5458\u4E59",duty:"\u6309\u5206\u6D3E\u7684\u65B9\u5411\u8C03\u7814\uFF0C\u7ED3\u8BBA\u9644\u51FA\u5904\u3002"}]},{id:"blank",name:"\u7A7A\u767D\u56E2\u961F",summary:"\u4E00\u4F4D\u8D1F\u8D23\u4EBA\u52A0\u4E00\u4F4D\u6210\u5458\uFF0C\u81EA\u5DF1\u5199\u804C\u8D23",instructions:"",members:[{name:"\u8D1F\u8D23\u4EBA",isLeader:!0,duty:""},{name:"\u6210\u5458",duty:""}]}];function tr(e,t){return{name:e.id==="blank"?"":e.name,description:e.summary,instructions:e.instructions,requirePlanApproval:!0,maxSteps:30,members:e.members.map((n,a)=>({id:"",name:n.name,duty:n.duty,isLeader:!!n.isLeader,agents:[{...t}],agent:{...t},avatar:`cat:${a%ce.CAT_COATS.length}`}))}}function ir(e){return{name:e.name,description:e.description,instructions:e.instructions,requirePlanApproval:e.requirePlanApproval,maxSteps:e.maxSteps,members:e.members.map(t=>({...t,agent:{...t.agent}}))}}function Ds(e){return[...e].sort((t,n)=>Number(n.isLeader)-Number(t.isLeader))}function Ps(e){let t=[];e.length<2&&t.push(`\u81F3\u5C11\u8981\u6709 ${2} \u4F4D\u6210\u5458\u3002`),e.length>8&&t.push(`\u6700\u591A ${8} \u4F4D\u6210\u5458\u3002`);let n=e.filter(a=>a.isLeader).length;return n!==1&&t.push(`\u8D1F\u8D23\u4EBA\u8981\u6070\u597D 1 \u4F4D\uFF0C\u5F53\u524D ${n} \u4F4D\u3002`),e.forEach((a,r)=>{let m=je(na(a));m&&t.push(`${a.name||`\u6210\u5458 ${r+1}`}\uFF1A${m}`)}),t}function Ws({member:e,disabled:t,onChange:n}){let a=z.useRef(null),[r,m]=z.useState(""),s=e.avatar??"",c=(0,ce.memberCoatIndex)(e);return(0,o.jsxs)("div",{className:"wand-team-avatar-picker",role:"group","aria-label":"\u5934\u50CF",children:[ce.CAT_COATS.map((d,i)=>(0,o.jsx)("button",{type:"button",className:"wand-team-coat",title:d.name,"aria-label":d.name,"aria-pressed":!s.startsWith("data:")&&c===i,disabled:t,onClick:()=>n(`cat:${i}`),children:(0,o.jsx)(ce.PixelCat,{coat:i})},d.name)),(0,o.jsx)("button",{type:"button",className:"wand-team-coat is-upload",title:"\u4E0A\u4F20\u56FE\u7247","aria-label":"\u4E0A\u4F20\u5934\u50CF\u56FE\u7247","aria-pressed":s.startsWith("data:"),disabled:t,onClick:()=>a.current?.click(),children:s.startsWith("data:")?(0,o.jsx)("img",{src:s,alt:""}):(0,o.jsx)(F.WandIcon,{name:"image",size:14})}),(0,o.jsx)("input",{ref:a,type:"file",accept:"image/png,image/jpeg,image/webp",hidden:!0,onChange:d=>{let i=d.currentTarget.files?.[0];d.currentTarget.value="",i&&(m(""),(0,ce.shrinkAvatarImage)(i,_a).then(n).catch(u=>m((0,ct.failureMessage)(u,"\u56FE\u7247\u5904\u7406\u5931\u8D25\u3002"))))}}),r?(0,o.jsx)("small",{className:"wand-team-avatar-error",role:"alert",children:r}):null]})}function $s({member:e,index:t,open:n,catalog:a,providerOptions:r,disabled:m,canRemove:s,onToggle:c,onChange:d,onRemove:i}){let u=e.name||`\u6210\u5458 ${t+1}`,v=na(e),w=S=>{d({agents:S,agent:{...S[0]}})};return(0,o.jsxs)("article",{className:"wand-team-member","data-leader":e.isLeader||void 0,"data-open":n||void 0,children:[(0,o.jsxs)("button",{type:"button",className:"wand-team-member-head","aria-expanded":n,onClick:c,children:[(0,o.jsx)(ce.TeamAvatar,{member:e,size:"lg",showProvider:!0}),(0,o.jsxs)("span",{className:"wand-team-member-copy",children:[(0,o.jsxs)("strong",{children:[u,e.isLeader?(0,o.jsx)("em",{children:"\u8D1F\u8D23\u4EBA"}):null]}),(0,o.jsx)("small",{children:e.duty||"\u8FD8\u6CA1\u5199\u804C\u8D23"}),(0,o.jsx)("span",{className:"wand-team-member-agent",children:(0,Ne.issueAgentProviderModelLine)(e.agent,a)})]}),(0,o.jsx)(F.WandIcon,{name:"chevronDown",size:14})]}),(0,o.jsx)("div",{className:"wand-team-member-body",inert:!n,children:(0,o.jsxs)("div",{className:"wand-team-member-inner",children:[(0,o.jsx)(ie.SettingsField,{label:"\u540D\u5B57",htmlFor:`team-member-${t}-name`,children:(0,o.jsx)(ie.SettingsTextInput,{id:`team-member-${t}-name`,value:e.name,placeholder:"\u6210\u5458\u540D\u5B57",disabled:m,onChange:S=>d({name:S})})}),(0,o.jsx)(Ws,{member:e,disabled:m,onChange:S=>d({avatar:S})}),(0,o.jsx)("textarea",{className:"wand-settings-input wand-ai-team-duty resize-none",rows:3,value:e.duty,placeholder:"\u804C\u8D23\uFF1A\u8FD9\u4F4D\u6210\u5458\u8D1F\u8D23\u4EC0\u4E48\u3001\u4EA4\u4ED8\u4EC0\u4E48","aria-label":`${u}\u7684\u804C\u8D23`,disabled:m,onChange:S=>d({duty:S.currentTarget.value})}),(0,o.jsx)(lt,{agents:v,label:u,catalog:a,providerOptions:r,disabled:m,onChange:w}),(0,o.jsxs)("div",{className:"wand-team-member-actions",children:[e.isLeader?null:(0,o.jsx)(F.WandButton,{kind:"ghost",size:"small",disabled:m,onClick:()=>d({isLeader:!0}),children:"\u8BBE\u4E3A\u8D1F\u8D23\u4EBA"}),(0,o.jsxs)(F.WandButton,{kind:"ghost",size:"small",disabled:m||!s,onClick:i,children:[(0,o.jsx)(F.WandIcon,{name:"trash",size:14,slot:"start"}),"\u79FB\u9664"]})]})]})})]})}function ar({team:e,initial:t,catalog:n,providerOptions:a,defaultAgent:r,onSaved:m,onDeleted:s,onDirtyChange:c}){let[d,i]=z.useState(t),[u,v]=z.useState(-1),[w,S]=z.useState(!1),[b,f]=z.useState(!1),[I,R]=z.useState(""),[k,E]=z.useState("info"),g=w||b,N=`ai-team-${e?.id??"new"}`,O=d.members.findIndex(L=>L.isLeader),P=JSON.stringify(t),ee=z.useMemo(()=>JSON.stringify(d)!==P,[d,P]);z.useEffect(()=>{c?.(ee)},[ee,c]);let me=(L,j)=>{i(Y=>({...Y,members:Y.members.map((ke,We)=>We===L?{...ke,...j}:j.isLeader?{...ke,isLeader:!1}:ke)}))},V=L=>{v(-1),i(j=>{let Y=j.members.filter((ke,We)=>We!==L);return!Y.some(ke=>ke.isLeader)&&Y[0]&&(Y[0]={...Y[0],isLeader:!0}),{...j,members:Y}})};async function M(){let L=Ps(d.members);if(L.length>0){R(L[0]),E("error");return}S(!0),R("");try{let j=e?await xe.aiTeamsRepository.update(e.id,d):await xe.aiTeamsRepository.create(d);i(ir(j)),R(e?"\u5DF2\u4FDD\u5B58\u3002":"\u56E2\u961F\u5DF2\u521B\u5EFA\u3002"),E("success"),m(j,!e)}catch(j){R((0,ct.failureMessage)(j,"\u4FDD\u5B58\u56E2\u961F\u5931\u8D25\u3002")),E("error")}finally{S(!1)}}async function H(){if(!e)return;let L=await Ra.wandOverlay.dialog({title:`\u5220\u9664\u56E2\u961F\u300C${e.name}\u300D\uFF1F`,description:"\u5DF2\u7ECF\u5F00\u59CB\u7684\u8FD0\u884C\u4E0D\u53D7\u5F71\u54CD\uFF0C\u4F1A\u6309\u542F\u52A8\u65F6\u7684\u56E2\u961F\u5FEB\u7167\u7EE7\u7EED\u3002",actions:[{label:"\u53D6\u6D88",value:!1,autoFocus:!0},{label:"\u5220\u9664\u56E2\u961F",value:!0,kind:"danger"}]});if(!(L.dismissed===!0||!L.action)){f(!0);try{await xe.aiTeamsRepository.remove(e.id),s(e.id)}catch(j){return R((0,ct.failureMessage)(j,"\u5220\u9664\u56E2\u961F\u5931\u8D25\u3002")),E("error"),!1}finally{f(!1)}}}let W=L=>(0,o.jsx)($s,{member:d.members[L],index:L,open:u===L,catalog:n,providerOptions:a,disabled:g,canRemove:d.members.length>2,onToggle:()=>v(j=>j===L?-1:L),onChange:j=>me(L,j),onRemove:()=>V(L)},L);return(0,o.jsxs)("div",{className:"wand-team-editor",children:[(0,o.jsxs)("section",{className:"wand-team-section","aria-label":"\u6210\u5458",children:[(0,o.jsxs)("header",{className:"wand-team-section-head",children:[(0,o.jsx)("h3",{children:"\u6210\u5458"}),(0,o.jsxs)("small",{children:[d.members.length,"/",8," \xB7 \u70B9\u6210\u5458\u5361\u5C55\u5F00\u7F16\u8F91"]})]}),(0,o.jsxs)("div",{className:"wand-team-org",children:[O>=0?(0,o.jsx)("div",{className:"wand-team-org-leader",children:W(O)}):null,(0,o.jsxs)("div",{className:"wand-team-org-members",children:[d.members.map((L,j)=>L.isLeader?null:W(j)),(0,o.jsxs)("button",{type:"button",className:"wand-team-member-add",disabled:g||d.members.length>=8,onClick:()=>{i(L=>({...L,members:[...L.members,{id:"",name:"",duty:"",agents:[{...r}],agent:{...r},isLeader:!1,avatar:`cat:${L.members.length%ce.CAT_COATS.length}`}]})),v(d.members.length)},children:[(0,o.jsx)(F.WandIcon,{name:"plus",size:16}),(0,o.jsx)("span",{children:"\u6DFB\u52A0\u6210\u5458"})]})]})]})]}),(0,o.jsxs)("section",{className:"wand-team-section","aria-label":"\u534F\u4F5C\u8BBE\u7F6E",children:[(0,o.jsx)("header",{className:"wand-team-section-head",children:(0,o.jsx)("h3",{children:"\u534F\u4F5C\u8BBE\u7F6E"})}),(0,o.jsxs)("div",{className:"wand-ai-team-editor-grid",children:[(0,o.jsx)(ie.SettingsField,{label:"\u56E2\u961F\u540D",htmlFor:`${N}-name`,children:(0,o.jsx)(ie.SettingsTextInput,{id:`${N}-name`,value:d.name,placeholder:"\u4F8B\u5982\uFF1A\u5168\u6808\u5C0F\u7EC4",disabled:g,onChange:L=>i(j=>({...j,name:L}))})}),(0,o.jsx)(ie.SettingsField,{label:"\u6B65\u6570\u4E0A\u9650",htmlFor:`${N}-steps`,hint:`\u8D1F\u8D23\u4EBA\u8F6E\u6B21\u4E0E\u6210\u5458\u6B65\u9AA4\u5408\u8BA1\uFF0C${5}\u2013${200}`,children:(0,o.jsx)(ie.SettingsTextInput,{id:`${N}-steps`,type:"number",min:5,max:200,value:d.maxSteps,disabled:g,onChange:L=>i(j=>({...j,maxSteps:Number(L)}))})})]}),(0,o.jsx)(ie.SettingsField,{label:"\u7B80\u4ECB",htmlFor:`${N}-description`,children:(0,o.jsx)(ie.SettingsTextInput,{id:`${N}-description`,value:d.description,placeholder:"\u53EF\u9009\uFF1A\u8FD9\u4E2A\u56E2\u961F\u64C5\u957F\u4EC0\u4E48",disabled:g,onChange:L=>i(j=>({...j,description:L}))})}),(0,o.jsx)(ie.SettingsField,{label:"\u534F\u4F5C\u6307\u4EE4",htmlFor:`${N}-instructions`,hint:"\u5199\u8FDB\u8D1F\u8D23\u4EBA\u548C\u6BCF\u4F4D\u6210\u5458\u7684\u63D0\u793A\u8BCD\uFF1A\u5206\u5DE5\u7EA6\u5B9A\u3001\u5DE5\u4F5C\u8981\u6C42\u3001\u6CE8\u610F\u4E8B\u9879\u3002",children:(0,o.jsx)("textarea",{id:`${N}-instructions`,className:"wand-settings-input wand-ai-team-duty resize-none",rows:4,value:d.instructions,placeholder:"\u4F8B\u5982\uFF1A\u5148\u8BFB AGENTS.md\uFF1B\u6539\u52A8\u5FC5\u987B\u9644\u6D4B\u8BD5\uFF1B\u4E0D\u8981\u52A8 migrations \u76EE\u5F55\u3002",disabled:g,onChange:L=>{let j=L.currentTarget.value;i(Y=>({...Y,instructions:j}))}})}),(0,o.jsx)(ie.SettingsToggle,{label:"\u8BA1\u5212\u9700\u8981\u6211\u6279\u51C6",description:"\u8D1F\u8D23\u4EBA\u7ED9\u51FA\u7B2C\u4E00\u4EFD\u8BA1\u5212\u540E\u5148\u505C\u4E0B\uFF0C\u7B49\u4F60\u6279\u51C6\u6216\u9000\u56DE\u518D\u5F00\u59CB\u6267\u884C\u3002",checked:d.requirePlanApproval,disabled:g,onCheckedChange:L=>i(j=>({...j,requirePlanApproval:L}))})]}),(0,o.jsxs)("div",{className:"wand-ai-team-editor-footer",children:[e?(0,o.jsx)(ie.SettingsActionButton,{kind:"danger",size:"small",pending:b,pendingLabel:"\u5220\u9664\u4E2D\u2026",errorLabel:"\u5220\u9664\u5931\u8D25",disabled:w,onClick:H,children:"\u5220\u9664\u56E2\u961F"}):null,(0,o.jsx)(ie.SettingsSaveBar,{label:e?"\u4FDD\u5B58\u56E2\u961F":"\u521B\u5EFA\u56E2\u961F",pending:w,disabled:b,onSave:()=>{M()},status:I,tone:k})]})]})}function or(e){return e.filter(t=>t.kind!=="global")}function Os(e){return or(e)[0]?.id??""}function Bs({teamId:e,teamName:t,projects:n,projectsLoaded:a,openRequest:r=0,onStarted:m}){let s=or(n),[c,d]=z.useState(r>0),[i,u]=z.useState(!1),[v,w]=z.useState(""),[S,b]=z.useState(""),[f,I]=z.useState("idle"),[R,k]=z.useState(""),E=z.useRef(null),g=z.useRef(null),N="wand-team-start-project-menu-"+z.useId(),O=S||Os(n),P=f==="sending"||f==="sent";z.useEffect(()=>{r>0?(d(!0),u(!1)):(d(!1),u(!1))},[r]);function ee(){f!=="sending"&&(d(!1),u(!1),f==="failed"&&k(""))}z.useLayoutEffect(()=>{if(!c||i)return;let V=0,M=requestAnimationFrame(()=>{V=requestAnimationFrame(()=>{u(!0),g.current?.focus()})});return()=>{cancelAnimationFrame(M),cancelAnimationFrame(V)}},[c,i]),z.useEffect(()=>{if(!c)return;let V=M=>{E.current?.contains(M.target)||M.target instanceof Element&&M.target.closest(".wand-ui-select-content")?.classList.contains(N)||ee()};return window.addEventListener("pointerdown",V,!0),()=>window.removeEventListener("pointerdown",V,!0)},[c,f,N]);async function me(){if(P)return;let V=v.trim();if(!(!V||!O)){I("sending"),k("");try{let M=await xe.aiTeamsRepository.startDirect(e,{note:V,workspaceId:O});I("sent"),k(`${t}\u5DF2\u5F00\u5DE5\uFF0C\u6B63\u5728\u6253\u5F00\u7FA4\u804A\u2026`),await xe.aiTeamsRepository.settle("success"),m(M),d(!1),u(!1),I("idle"),k(""),w("")}catch(M){I("failed"),k((0,ct.failureMessage)(M,"\u5F00\u5DE5\u5931\u8D25\uFF0C\u8BF7\u6362\u4E2A\u9879\u76EE\u6216\u7A0D\u540E\u518D\u8BD5\u3002")),await xe.aiTeamsRepository.settle("error"),I("idle")}}}return(0,o.jsxs)("div",{ref:E,onKeyDown:V=>{V.key==="Escape"&&(V.stopPropagation(),ee())},children:[(0,o.jsx)("div",{className:"wand-team-member-actions",children:(0,o.jsxs)(F.WandButton,{className:"task-board-create-button",kind:"ghost",size:"small","aria-pressed":c,disabled:P,onClick:()=>c?ee():d(!0),children:[(0,o.jsx)(F.WandIcon,{name:"plus",slot:"start",className:"wand-teams-create-icon"}),(0,o.jsx)("span",{children:"\u76F4\u63A5\u5F00\u5DE5"})]})}),(0,o.jsx)("div",{className:"wand-team-candidate-slot","data-collapsed":!i||void 0,children:(0,o.jsx)("div",{className:"wand-team-member-inner",inert:!c,children:(0,o.jsxs)("div",{className:"wand-team-candidates",children:[s.length===0?a?(0,o.jsx)("p",{className:"wand-new-session-error",role:"alert",children:"\u8FD8\u6CA1\u6709\u53EF\u5F00\u5DE5\u7684\u9879\u76EE\uFF0C\u5148\u5728\u5DE5\u4F5C\u533A\u521B\u5EFA\u4E00\u4E2A\u9879\u76EE\u3002"}):(0,o.jsx)("p",{className:"wand-team-empty-line",children:"\u6B63\u5728\u52A0\u8F7D\u9879\u76EE\u2026"}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ie.SettingsField,{label:"\u9879\u76EE",children:(0,o.jsx)(F.WandSelect,{ariaLabel:"\u5F00\u5DE5\u9879\u76EE",className:"wand-settings-input",contentClassName:N,value:O,disabled:P,searchable:!0,searchPlaceholder:"\u641C\u7D22\u9879\u76EE",options:s.map(V=>({value:V.id,label:`${V.name} \xB7 ${V.cwd}`})),onValueChange:b})}),(0,o.jsx)(ie.SettingsField,{label:"\u5F00\u5DE5\u8BF4\u660E",htmlFor:`team-start-note-${e}`,hint:"\u4F1A\u5EFA\u4E00\u5F20\u4EFB\u52A1\u5361\uFF0C\u5E76\u628A\u8FD9\u6BB5\u8BF4\u660E\u4EA4\u7ED9\u8D1F\u8D23\u4EBA\u3002",children:(0,o.jsx)("textarea",{id:`team-start-note-${e}`,ref:g,className:"wand-settings-input wand-ai-team-duty resize-none",rows:2,value:v,placeholder:"\u4F8B\u5982\uFF1A\u628A\u8BBE\u7F6E\u9875\u7684\u6A21\u578B\u4E0B\u62C9\u6362\u6210\u53EF\u641C\u7D22\u7684\u9009\u62E9\u5668\uFF0C\u5E76\u8865\u5355\u6D4B\u3002",disabled:P,onChange:V=>w(V.currentTarget.value)})})]}),R?(0,o.jsx)("p",{className:f==="failed"?"wand-new-session-error":"wand-new-session-field-hint",role:f==="failed"?"alert":"status",children:R}):null,c&&s.length>0?(0,o.jsx)("div",{className:"wand-team-member-actions",children:(0,o.jsx)(F.WandButton,{kind:"primary",size:"small",disabled:P||!v.trim()||!O,onClick:()=>{me()},children:f==="sending"?"\u6B63\u5728\u5F00\u5DE5\u2026":f==="sent"?"\u5DF2\u5F00\u5DE5":"\u5F00\u5DE5"})}):null]})})})]})}function Fs({runs:e,focusRunId:t,onOpenSession:n}){let[a,r]=z.useState(""),[m,s]=z.useState(null),c=z.useCallback(async d=>{try{s(await xe.aiTeamsRepository.detail(d))}catch{s(null)}},[]);return z.useEffect(()=>{t&&r(t)},[t]),z.useEffect(()=>{a&&c(a)},[c,a]),z.useEffect(()=>(0,xe.subscribeAiTeamRunChanges)(d=>{d.runId===a&&c(a)}),[c,a]),e===null?(0,o.jsx)("p",{className:"wand-team-empty-line",children:"\u6B63\u5728\u52A0\u8F7D\u8FD0\u884C\u8BB0\u5F55\u2026"}):e.length===0?(0,o.jsx)("p",{className:"wand-team-empty-line",children:"\u8FD8\u6CA1\u6709\u8FD0\u884C\u8FC7\u3002\u7528\u56E2\u961F\u5361\u4E0B\u9762\u7684\u300C\u76F4\u63A5\u5F00\u5DE5\u300D\uFF0C\u6216\u5728\u4EFB\u52A1\u770B\u677F\u6D3E\u53D1\u4EFB\u52A1\u65F6\u4ECE\u300CCLI \u5DE5\u5177\u300D\u91CC\u9009\u8FD9\u4E2A\u56E2\u961F\u3002"}):(0,o.jsx)("ol",{className:"wand-team-runs",children:e.map(d=>{let i=a===d.id,u=Tt[d.status];return(0,o.jsxs)("li",{className:"wand-team-run","data-open":i||void 0,children:[(0,o.jsxs)("button",{type:"button",className:"wand-team-run-head","aria-expanded":i,onClick:()=>{s(null),r(v=>v===d.id?"":d.id)},children:[(0,o.jsx)("span",{className:"wand-team-run-id",children:d.taskIdentifier}),(0,o.jsx)("strong",{children:d.taskTitle||d.objective.split(`
19
19
  `)[0]}),(0,o.jsx)(F.WandBadge,{tone:u.tone,children:u.label}),(0,o.jsx)("small",{children:new Date(d.updatedAt).toLocaleString([],{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"})}),(0,o.jsx)(F.WandIcon,{name:"chevronDown",size:14})]}),(0,o.jsx)("div",{className:"wand-team-run-body",inert:!i,children:(0,o.jsx)("div",{className:"wand-team-run-inner",children:i&&m?.run.id===d.id?(0,o.jsx)(ua,{detail:m,onChange:s,onOpenSession:n}):i?(0,o.jsx)("p",{className:"wand-team-empty-line",children:"\u6B63\u5728\u52A0\u8F7D\u2026"}):null})})]},d.id)})})}var nr=[{value:"members",label:"\u6210\u5458\u4E0E\u8BBE\u7F6E"},{value:"runs",label:"\u8FD0\u884C\u8BB0\u5F55"}],Hs=[{value:"all",label:"\u5168\u90E8"},{value:"running",label:"\u8FD0\u884C\u4E2D"},{value:"attention",label:"\u5F85\u4F60\u5904\u7406"}],js=[{value:"employees",label:"\u5458\u5DE5"},{value:"teams",label:"\u56E2\u961F"}];function dr({sidebarOpen:e=!1,onBack:t,onOpenSidebar:n,onOpenSession:a}){let r=z.useSyncExternalStore(tt.taskBoardStore.subscribe,tt.taskBoardStore.getSnapshot,tt.taskBoardStore.getSnapshot),m=(0,Yt.useProviderUsage)(!0),s=m===null?null:(0,Yt.sortProviderOptions)(Ne.ISSUE_AGENT_PROVIDERS,m,T=>T.value).map(T=>({value:T.value,label:T.label})),[c,d]=z.useState(null),[i,u]=z.useState("employees"),[v,w]=z.useState([]),[S,b]=z.useState(""),[f,I]=z.useState(null),[R,k]=z.useState(()=>(0,Ne.createDefaultIssueAgent)()),[E,g]=z.useState(""),[N,O]=z.useState(null),[P,ee]=z.useState(""),[me,V]=z.useState("all"),[M,H]=z.useState("members"),[W,L]=z.useState([]),[j,Y]=z.useState(!1),[ke,We]=z.useState("");z.useEffect(()=>{r.page!=="teams"||!r.teamId||(u("teams"),g(window.matchMedia("(max-width: 760px)").matches?"":r.teamId))},[r.page,r.teamId,r.revision]);let Ve=z.useCallback(async()=>{try{let T=await xe.aiTeamsRepository.list();d(T),b(""),g(U=>U||(window.matchMedia("(max-width: 760px)").matches?"":T[0]?.id??""))}catch(T){b((0,ct.failureMessage)(T,"\u56E2\u961F\u5217\u8868\u52A0\u8F7D\u5931\u8D25\u3002"))}},[]),K=z.useCallback(async()=>{try{w(await xe.aiTeamsRepository.runs({limit:200}))}catch{}},[]);z.useEffect(()=>(Ve(),K(),Kt.taskBoardRepository.models().then(T=>I((0,Ne.normalizeIssueModelCatalog)(T))).catch(()=>I(null)),Kt.taskBoardRepository.agentDefaults().then(k).catch(()=>{}),Kt.taskBoardRepository.workspaces().then(T=>{L(T),Y(!0)}).catch(()=>Y(!0)),(0,rr.subscribeWandModelCatalog)(I)),[K,Ve]),z.useEffect(()=>(0,xe.subscribeAiTeamRunChanges)(()=>{K()}),[K]),z.useEffect(()=>{let T=U=>{if(!(U.key!=="Escape"||U.defaultPrevented||U.target?.closest("input, textarea, [contenteditable='true'], [role='dialog']"))){if(E){Ce();return}t?t():tt.taskBoardController.close()}};return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},[t,E]);let pe=T=>v.filter(U=>U.teamId===T),mt=T=>{let U=pe(T);return U.some(de=>_s.includes(de.status))?"attention":U.some(de=>de.status==="running")?"running":"idle"},pt=P.trim().toLowerCase(),$e=(c??[]).filter(T=>me!=="all"&&mt(T.id)!==me?!1:pt?[T.name,T.description,...T.members.map(U=>U.name)].some(U=>U.toLowerCase().includes(pt)):!0),ne=c?.find(T=>T.id===E)??null,J=E===er,Ee=J||!!ne,ut=async()=>{await Ye()&&(Q.current=!1,O(null),g(er))},Q=z.useRef(!1),gt=z.useCallback(T=>{Q.current=T},[]),Ye=async()=>{if(!Q.current)return!0;let T=await Ra.wandOverlay.dialog({title:"\u653E\u5F03\u672A\u4FDD\u5B58\u7684\u56E2\u961F\u6539\u52A8\uFF1F",description:"\u540D\u79F0\u3001\u6210\u5458\u548C\u5404\u81EA\u7684 CLI / \u6A21\u578B / \u6267\u884C\u6A21\u5F0F\u6539\u52A8\u8FD8\u6CA1\u4FDD\u5B58\uFF0C\u79BB\u5F00\u540E\u56DE\u5230\u4E0A\u6B21\u4FDD\u5B58\u7684\u5185\u5BB9\u3002",actions:[{label:"\u7EE7\u7EED\u7F16\u8F91",value:!1,autoFocus:!0},{label:"\u653E\u5F03\u6539\u52A8",value:!0,kind:"danger"}]});return T.dismissed===!1&&T.action===!0},Ce=async()=>{await Ye()&&(Q.current=!1,g(""))},ft=async T=>{T!==E&&await Ye()&&(Q.current=!1,g(T))},At=async()=>{await Ye()&&(Q.current=!1,O(null))},St=(T,U)=>{K();let de=U.run.chatSessionId;if(de&&a){a(de);return}We(U.run.id),g(T),H("runs")};return(0,o.jsxs)("section",{className:"task-board-native-page wand-teams-page","aria-label":"\u7845\u57FA\u5458\u5DE5\u4E0E AI \u56E2\u961F","data-detail":Ee||void 0,children:[(0,o.jsxs)("header",{className:"task-board-workspace-header",children:[(0,o.jsxs)("div",{className:"task-board-kicker",children:[n?(0,o.jsx)(F.WandIconButton,{className:"task-board-icon-button","aria-label":e?"\u5173\u95ED\u4EFB\u52A1\u5217\u8868":"\u6253\u5F00\u4EFB\u52A1",onClick:n,children:(0,o.jsx)(sr.SidebarToggleIcon,{open:e,size:16})}):null,ne?null:(0,o.jsx)(F.WandIconButton,{className:"task-board-icon-button","aria-label":"\u8FD4\u56DE\u5DE5\u4F5C\u533A",title:"\u8FD4\u56DE\u5DE5\u4F5C\u533A",onClick:()=>t?t():tt.taskBoardController.close(),children:(0,o.jsx)(F.WandIcon,{name:"chevronLeft"})}),(0,o.jsx)("div",{className:"task-board-heading-copy",children:i==="teams"&&ne?(0,o.jsx)(F.WandBreadcrumb,{variant:"title",ariaLabel:"AI \u56E2\u961F\u5BFC\u822A",items:[{label:"AI \u56E2\u961F",onNavigate:()=>{Ce()}},{label:ne.name}]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("h1",{children:i==="employees"?"\u7845\u57FA\u5458\u5DE5":"AI \u56E2\u961F"}),(0,o.jsx)("p",{children:i==="employees"?"\u5B9A\u4E49\u4E13\u5C5E\u89D2\u8272\u4E0E\u5DE5\u5177\u94FE\u964D\u7EA7\u987A\u5E8F\uFF0C\u4EE5\u5BF9\u8BDD\u65B9\u5F0F\u534F\u4F5C\u5B8C\u6210\u5DE5\u4F5C\u3002":"\u8D1F\u8D23\u4EBA\u62C6\u89E3\u5206\u6D3E\uFF0C\u6210\u5458\u5404\u7528\u81EA\u5DF1\u7684 CLI \u534F\u4F5C\u5B8C\u6210\u3002"})]})})]}),(0,o.jsxs)("div",{className:"task-board-header-actions",style:{display:"flex",alignItems:"center",gap:"12px"},children:[(0,o.jsx)(F.WandStretchTabs,{tabs:js,value:i,ariaLabel:"\u5207\u6362\u5458\u5DE5\u6216\u56E2\u961F",onValueChange:T=>u(T)}),i==="teams"?(0,o.jsxs)(F.WandButton,{className:"task-board-create-button",kind:"primary",size:"small","aria-pressed":J,onClick:()=>J?void Ce():void ut(),children:[(0,o.jsx)(F.WandIcon,{name:"plus",slot:"start",className:"wand-teams-create-icon"}),(0,o.jsx)("span",{children:"\u65B0\u5EFA\u56E2\u961F"})]}):null]})]}),i==="employees"?(0,o.jsx)("div",{className:"wand-teams-layout wand-employees-layout",children:(0,o.jsx)(Jn,{catalog:f,providerOptions:s})}):(0,o.jsxs)("div",{className:"wand-teams-layout",children:[(0,o.jsxs)("aside",{className:"wand-teams-list","aria-label":"\u56E2\u961F\u5217\u8868",children:[(0,o.jsx)(F.WandSearchField,{value:P,onValueChange:ee,label:"\u641C\u7D22\u56E2\u961F\u6216\u6210\u5458"}),(0,o.jsx)(F.WandStretchTabs,{tabs:Hs,value:me,ariaLabel:"\u6309\u72B6\u6001\u7B5B\u9009",onValueChange:T=>V(T)}),S?(0,o.jsxs)("div",{className:"task-board-native-banner is-error",role:"alert",children:[(0,o.jsx)("span",{children:S}),(0,o.jsx)(F.WandButton,{kind:"ghost",size:"small",onClick:()=>{Ve()},children:"\u91CD\u65B0\u52A0\u8F7D"})]}):null,(0,o.jsxs)("div",{className:"wand-teams-cards",children:[$e.map(T=>{let U=mt(T.id),de=[...new Set(T.members.map(fe=>fe.agent.provider))];return(0,o.jsxs)("div",{children:[(0,o.jsxs)("button",{type:"button",className:"wand-teams-card","aria-pressed":E===T.id,"data-state":U,onClick:()=>{ft(T.id)},children:[(0,o.jsx)(ce.TeamAvatarStack,{members:T.members,max:4}),(0,o.jsxs)("span",{className:"wand-teams-card-copy",children:[(0,o.jsx)("strong",{children:T.name}),(0,o.jsx)("small",{children:T.description||Ds(T.members).map(fe=>fe.name).join(" \xB7 ")})]}),(0,o.jsx)("span",{className:"wand-teams-card-meta",children:U==="attention"?(0,o.jsx)(F.WandBadge,{tone:"warning",children:"\u5F85\u4F60\u5904\u7406"}):U==="running"?(0,o.jsx)(F.WandBadge,{tone:"info",children:"\u8FD0\u884C\u4E2D"}):(0,o.jsxs)("small",{children:[T.members.length," \u4EBA \xB7 ",de.map(Ne.issueAgentProviderLabel).join(" / ")]})})]}),(0,o.jsx)(Bs,{teamId:T.id,teamName:T.name,projects:W,projectsLoaded:j,openRequest:r.teamId===T.id?r.revision:0,onStarted:fe=>St(T.id,fe)})]},T.id)}),c!==null&&$e.length===0?(0,o.jsxs)("div",{className:"wand-teams-empty",children:[(0,o.jsx)("p",{children:c.length===0?"\u8FD8\u6CA1\u6709\u56E2\u961F\u3002":"\u6CA1\u6709\u5339\u914D\u7684\u56E2\u961F\u3002"}),c.length===0?(0,o.jsx)(F.WandButton,{kind:"soft",size:"small",onClick:()=>{ut()},children:"\u4ECE\u6A21\u677F\u521B\u5EFA"}):null]}):null]})]}),(0,o.jsx)("div",{className:"wand-teams-detail",children:J&&!N?(0,o.jsxs)("div",{className:"wand-teams-templates",children:[(0,o.jsxs)("header",{className:"wand-team-section-head",children:[(0,o.jsx)("h3",{children:"\u4ECE\u6A21\u677F\u5F00\u59CB"}),(0,o.jsx)("small",{children:"\u521B\u5EFA\u524D\u8FD8\u80FD\u4FEE\u6539"})]}),(0,o.jsx)("div",{className:"wand-teams-template-grid",children:Ls.map(T=>{let U=tr(T,R);return(0,o.jsxs)("button",{type:"button",className:"wand-teams-template",onClick:()=>O(T),children:[(0,o.jsx)(ce.TeamAvatarStack,{members:U.members,size:"md"}),(0,o.jsx)("strong",{children:T.name}),(0,o.jsx)("small",{children:T.summary})]},T.id)})})]}):J&&N?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"wand-teams-detail-head",children:[(0,o.jsx)(F.WandIconButton,{className:"task-board-icon-button","aria-label":"\u6362\u4E00\u4E2A\u6A21\u677F",onClick:()=>{At()},children:(0,o.jsx)(F.WandIcon,{name:"chevronLeft"})}),(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:"\u65B0\u5EFA\u56E2\u961F"}),(0,o.jsxs)("p",{children:["\u6A21\u677F\uFF1A",N.name]})]})]}),(0,o.jsx)(ar,{team:null,initial:tr(N,R),catalog:f,providerOptions:s,defaultAgent:R,onDirtyChange:gt,onSaved:T=>{d(U=>[T,...U??[]]),g(T.id),H("members")},onDeleted:()=>{}})]}):ne?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"wand-teams-detail-head",children:[(0,o.jsx)(ce.TeamAvatarStack,{members:ne.members,size:"md",max:6}),(0,o.jsx)("div",{children:(0,o.jsx)("p",{children:ne.description||`${ne.members.length} \u4F4D\u6210\u5458`})})]}),(0,o.jsx)(F.WandStretchTabs,{tabs:nr,value:M,ariaLabel:"\u56E2\u961F\u8BE6\u60C5",onValueChange:H}),(0,o.jsx)("div",{className:"wand-teams-detail-stack",children:nr.map(T=>(0,o.jsx)("div",{className:"wand-teams-detail-pane","data-hidden":M!==T.value||void 0,inert:M!==T.value,children:T.value==="runs"?(0,o.jsx)(Fs,{runs:c===null?null:pe(ne.id),focusRunId:ke,onOpenSession:a}):(0,o.jsx)(ar,{team:ne,initial:ir(ne),catalog:f,providerOptions:s,defaultAgent:R,onDirtyChange:gt,onSaved:U=>d(de=>(de??[]).map(fe=>fe.id===U.id?U:fe)),onDeleted:U=>{Q.current=!1,g(""),d(de=>(de??[]).filter(fe=>fe.id!==U))}},ne.id)},T.value))})]}):(0,o.jsxs)("div",{className:"wand-teams-empty is-detail",children:[(0,o.jsx)(F.WandIcon,{name:"parallel",size:28}),(0,o.jsx)("p",{children:"\u9009\u4E00\u4E2A\u56E2\u961F\uFF0C\u6216\u65B0\u5EFA\u4E00\u4E2A\u3002"})]})},J?`new-${N?.id??""}`:E)]})]})}var oe=y(Ae()),pr=y(bt());var Xt=y(Mt()),ur=y(fa()),gr=y(cr()),ge=y(Se()),Gt=y(st()),at=y(wt());var _=y(se()),mr={queued:"\u6392\u961F",running:"\u8FDB\u884C\u4E2D",done:"\u5B8C\u6210",failed:"\u5931\u8D25",skipped:"\u8DF3\u8FC7"};async function Us(e){let t=e.run.chatSessionId;if(!t)return null;try{let a=(await at.aiTeamsRepository.runsForChat(e.run.taskId,t))[0];return a&&a.id!==e.run.id?a.id:null}catch{return null}}function qs(e){return e==="running"?"working":e==="done"?"done":e==="failed"?"failed":"idle"}function Ks({detail:e,onOpenSession:t}){let[n,a]=oe.useState(()=>new Set),r=e.steps.filter(c=>c.kind==="work"),m=r.filter(c=>c.status==="done").length,s=c=>{a(d=>{let i=new Set(d);return i.has(c)?i.delete(c):i.add(c),i})};return(0,_.jsx)("section",{className:"wand-team-work-tasks","aria-label":"\u5DE5\u4F5C\u4EFB\u52A1",children:(0,_.jsxs)("div",{className:"wand-team-work-tasks-inner",children:[(0,_.jsxs)("header",{className:"wand-team-work-tasks-head",children:[(0,_.jsx)("h2",{children:"\u5DE5\u4F5C\u4EFB\u52A1"}),(0,_.jsx)("small",{children:r.length?`${m}/${r.length} \u5B8C\u6210`:"\u7B49\u5F85\u6D3E\u5DE5"})]}),r.length?(0,_.jsx)("ol",{className:"wand-team-work-list",children:r.map(c=>{let d=Le(e).members.find(u=>u.id===c.memberId),i=n.has(c.id);return(0,_.jsxs)("li",{className:"wand-team-work-item","data-status":c.status,"data-open":i||void 0,children:[(0,_.jsxs)("button",{type:"button",className:"wand-team-work-head","aria-expanded":i,onClick:()=>s(c.id),children:[(0,_.jsxs)("span",{className:"wand-team-work-seq",children:["#",c.seq]}),(0,_.jsx)("span",{className:"wand-team-work-title",children:c.title||"\u6210\u5458\u6B65\u9AA4"}),(0,_.jsx)("span",{className:"wand-team-work-status",children:mr[c.status]}),(0,_.jsx)(ge.WandIcon,{name:"chevronDown",size:14})]}),(0,_.jsx)("div",{className:"wand-team-work-body","data-open":i||void 0,inert:!i,children:(0,_.jsxs)("div",{className:"wand-team-work-body-inner",children:[(0,_.jsxs)("div",{className:"wand-team-work-member",children:[d?(0,_.jsx)(Gt.TeamAvatar,{member:d,size:"sm",state:qs(c.status)}):null,(0,_.jsx)("span",{className:"wand-team-work-member-name",children:d?.name??c.memberId}),d?.duty?(0,_.jsx)("small",{className:"wand-team-work-member-duty",children:d.duty}):null]}),(0,_.jsxs)("dl",{className:"wand-team-work-meta",children:[(0,_.jsxs)("div",{children:[(0,_.jsx)("dt",{children:"\u72B6\u6001"}),(0,_.jsx)("dd",{children:mr[c.status]})]}),c.reportPath?(0,_.jsxs)("div",{children:[(0,_.jsx)("dt",{children:"\u62A5\u544A\u6587\u4EF6"}),(0,_.jsx)("dd",{children:(0,_.jsx)("code",{children:c.reportPath})})]}):null]}),c.report?(0,_.jsx)("p",{className:"wand-team-work-report",children:c.report}):null,c.sessionId&&t?(0,_.jsxs)(ge.WandButton,{kind:"ghost",size:"small",onClick:()=>t(c.sessionId),children:[(0,_.jsx)(ge.WandIcon,{name:"terminal",size:14,slot:"start"}),"\u6253\u5F00\u4F1A\u8BDD"]}):null]})})]},c.id)})}):(0,_.jsx)("p",{className:"wand-team-empty-line",children:"\u8D1F\u8D23\u4EBA\u8FD8\u6CA1\u6709\u6D3E\u53D1\u5DE5\u4F5C\u4EFB\u52A1\u3002"})]})})}function fr({runId:e,sidebarOpen:t=!1,onBack:n,onOpenSidebar:a,onOpenSession:r}){let[m,s]=oe.useState(null),[c,d]=oe.useState(""),i=oe.useRef(e);i.current=e;let u=oe.useRef(0),v=oe.useRef(""),w=m&&(m.run.id===e||v.current===e)?m:null,S=!!w&&w.run.id!==e,b=w?.run.taskId??"";oe.useEffect(()=>()=>{u.current++},[]);let f=oe.useCallback(async()=>{let E=++u.current;if(!e){d("\u6CA1\u6709\u8981\u6253\u5F00\u7684\u7FA4\u804A\u3002");return}d("");try{let g=await at.aiTeamsRepository.detail(e);if(E!==u.current||i.current!==e)return;let N=await Us(g);if(E!==u.current||i.current!==e)return;if(N){v.current=N,Xt.taskBoardController.open("","","teamchat",N);return}s(O=>xt(O,g)),v.current="",d("")}catch(g){if(E!==u.current||i.current!==e)return;let N=(0,pr.failureMessage)(g,"\u7FA4\u804A\u52A0\u8F7D\u5931\u8D25\u3002");d(v.current===e?`\u65B0\u4E00\u8F6E\u52A0\u8F7D\u5931\u8D25\uFF0C\u5F53\u524D\u663E\u793A\u4E0A\u4E00\u8F6E\u8BB0\u5F55\u3002${N}`:N)}},[e]);oe.useEffect(()=>{v.current!==e&&(v.current="",s(null)),d(""),f()},[f]),oe.useEffect(()=>(0,at.subscribeAiTeamRunChanges)(E=>{(E.runId===e||b&&E.taskId===b)&&f()}),[f,e,b]),oe.useEffect(()=>(0,at.subscribeAiTeamDefinitionChanges)(E=>{E===w?.run.teamId&&f()}),[f,w?.run.teamId]),oe.useEffect(()=>(0,gr.subscribeTaskChanges)(()=>{f()}),[f]);let I=oe.useCallback(E=>{E.run.id===i.current&&s(g=>xt(g,E))},[]),R=oe.useCallback(()=>{n?n():Xt.taskBoardController.close()},[n]);oe.useEffect(()=>{let E=g=>{g.key!=="Escape"||g.defaultPrevented||g.target?.closest("input, textarea, [contenteditable='true'], [role='dialog']")||R()};return window.addEventListener("keydown",E),()=>window.removeEventListener("keydown",E)},[R]);let k=w&&!S?Tt[w.run.status]:null;return(0,_.jsxs)("section",{className:"task-board-native-page wand-team-chat-page","aria-label":"\u7FA4\u804A",children:[(0,_.jsxs)("header",{className:"task-board-workspace-header",children:[(0,_.jsxs)("div",{className:"task-board-kicker",children:[a?(0,_.jsx)(ge.WandIconButton,{className:"task-board-icon-button","aria-label":t?"\u5173\u95ED\u4EFB\u52A1\u5217\u8868":"\u6253\u5F00\u4EFB\u52A1",onClick:a,children:(0,_.jsx)(ur.SidebarToggleIcon,{open:t,size:16})}):null,(0,_.jsx)(ge.WandIconButton,{className:"task-board-icon-button","aria-label":"\u8FD4\u56DE\u4E0A\u4E00\u4F1A\u8BDD",title:"\u8FD4\u56DE\u4E0A\u4E00\u4F1A\u8BDD",onClick:R,children:(0,_.jsx)(ge.WandIcon,{name:"chevronLeft"})}),w?(0,_.jsx)("span",{className:"wand-team-chat-heading-avatar","aria-hidden":"true",children:(0,_.jsx)(Gt.TeamAvatarStack,{members:Le(w).members,max:2,size:"sm"})}):null,(0,_.jsxs)("div",{className:"task-board-heading-copy",children:[(0,_.jsx)(ge.WandBreadcrumb,{variant:"title",className:"wand-team-chat-crumb",ariaLabel:"\u7FA4\u804A\u5BFC\u822A",items:[{label:"\u4EFB\u52A1\u770B\u677F",onNavigate:()=>Xt.taskBoardController.open("","","board")},{label:w?.chatTitle||"\u4EFB\u52A1\u5904\u7406\u7FA4"}]}),(0,_.jsx)("p",{children:S?c?"\u4E0A\u4E00\u8F6E\u8BB0\u5F55 \xB7 \u65B0\u4E00\u8F6E\u52A0\u8F7D\u5931\u8D25":"\u4E0A\u4E00\u8F6E\u8BB0\u5F55 \xB7 \u6B63\u5728\u63A5\u5165\u65B0\u4E00\u8F6E\u2026":w?`${Le(w).members.length} \u4F4D\u6210\u5458 \xB7 \u56E2\u961F\u7FA4\u804A`:c||"\u6B63\u5728\u52A0\u8F7D\u7FA4\u804A\u2026"})]})]}),w&&k?(0,_.jsx)("div",{className:"task-board-header-actions wand-team-chat-head-meta",children:(0,_.jsx)(ge.WandBadge,{tone:k.tone,children:k.label})}):null]}),c?(0,_.jsxs)("div",{className:"task-board-native-banner is-error",role:"alert",children:[(0,_.jsx)("span",{children:c}),e?(0,_.jsx)(ge.WandButton,{kind:"ghost",size:"small",onClick:()=>{f()},children:"\u91CD\u65B0\u52A0\u8F7D"}):null]}):null,(0,_.jsx)("div",{className:"wand-team-chat-body",children:w?(0,_.jsx)(ot,{detail:w,staleRun:S,onChange:I,onOpenSession:r,details:(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(Ks,{detail:w,onOpenSession:r}),w.run.chatSessionId&&r?(0,_.jsx)(ge.WandButton,{kind:"ghost",size:"small",onClick:()=>r(w.run.chatSessionId),children:"\u67E5\u770B\u5B8C\u6574\u4F1A\u8BDD\u8BB0\u5F55"}):null]})}):c?null:(0,_.jsx)("p",{className:"wand-team-empty-line",children:"\u6B63\u5728\u52A0\u8F7D\u2026"})})]})}var hr=__wandCssTextPool[0];var wr=y(br(),1);(0,wr.installStyleSheet)("wand-ai-teams-styles",hr);globalThis.__wandAiTeamsChunk={AiTeamsPage:dr,TaskTeamRunPanel:In,TeamChatView:ot,TeamChatPage:fr};})();
20
20