@runfusion/fusion 0.31.0 → 0.32.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.
- package/dist/bin.js +78395 -59001
- package/dist/client/.vite/manifest.json +549 -0
- package/dist/client/assets/{AgentDetailView-Dx7T1-gM.js → AgentDetailView-CnFf_eBZ.js} +3 -3
- package/dist/client/assets/{AgentPermissionPolicyEditor-Cbd6SG_T.css → AgentPermissionPolicyEditor-CGxjOr6G.css} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor-Ia7QkynK.js → AgentPermissionPolicyEditor-Cmkt9Z01.js} +2 -2
- package/dist/client/assets/{AgentsView-DBbdPWV-.js → AgentsView-LkVv9hph.js} +3 -3
- package/dist/client/assets/ChatView-DYjECCRG.js +1 -0
- package/dist/client/assets/{DevServerView-DotHOFZt.js → DevServerView-D7legPr1.js} +1 -1
- package/dist/client/assets/{DevServerView-DlZpuAnj.css → DevServerView-VTQY28P7.css} +1 -1
- package/dist/client/assets/{DirectoryPicker-CIj3ZGKv.js → DirectoryPicker-DctpCNrd.js} +1 -1
- package/dist/client/assets/DocumentsView-DORp5JjC.js +1 -0
- package/dist/client/assets/EvalsView-CYVJ1pbc.js +1 -0
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-U7fXDhhN.js → ExperimentalAgentOnboardingModal-BULVNAiq.js} +1 -1
- package/dist/client/assets/GoalsView-Cg136Jcn.css +1 -0
- package/dist/client/assets/GoalsView-bmpZKOI_.js +1 -0
- package/dist/client/assets/{InsightsView-B0J4mhzV.css → InsightsView-C9-mqVvf.css} +1 -1
- package/dist/client/assets/InsightsView-mmtem0RU.js +11 -0
- package/dist/client/assets/{MemoryView-D-HLtRrr.js → MemoryView-HVpO1fCH.js} +2 -2
- package/dist/client/assets/{NodesView-w3ms-XX2.js → NodesView-CM0eoCP8.js} +3 -3
- package/dist/client/assets/{PiExtensionsManager-DFAZAfNn.js → PiExtensionsManager-Cyfas2VT.js} +2 -2
- package/dist/client/assets/{PluginManager-DN1VG7Qm.js → PluginManager-C7QDE3Lk.js} +1 -1
- package/dist/client/assets/ReliabilityView-C1C1j1SD.js +1 -0
- package/dist/client/assets/ReliabilityView-D9AsVv5l.css +1 -0
- package/dist/client/assets/ResearchView-Bn2WxwnQ.js +1 -0
- package/dist/client/assets/SecretsView-BFhVwJu6.css +1 -0
- package/dist/client/assets/SecretsView-DgrrgzFc.js +1 -0
- package/dist/client/assets/SettingsModal-BCZrCLl3.js +31 -0
- package/dist/client/assets/{SettingsModal-sp7SNwS9.css → SettingsModal-BZBV2kLr.css} +1 -1
- package/dist/client/assets/{SettingsModal-1Y8N6MkL.css → SettingsModal-DZrJ5PFH.css} +1 -1
- package/dist/client/assets/{SettingsModal-BRRPoxku.js → SettingsModal-YCJM5is3.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-B4eA3bpz.js → SetupWizardModal-BT-mj3VD.js} +1 -1
- package/dist/client/assets/{SkillsView-DZIfZoF5.js → SkillsView-Db7dYpqd.js} +1 -1
- package/dist/client/assets/{StashRecoveryView-mKXYsqam.js → StashRecoveryView-CSYYcWux.js} +1 -1
- package/dist/client/assets/TodoView-zqCqfy26.js +6 -0
- package/dist/client/assets/{dashboard-view-DOY8-BIx.js → dashboard-view-PpcsMDvN.js} +1 -1
- package/dist/client/assets/{folder-open-C_fxRMq1.js → folder-open-mxsFQlAX.js} +1 -1
- package/dist/client/assets/index-Ba-F8c1g.js +732 -0
- package/dist/client/assets/index-D4HhaIOp.css +1 -0
- package/dist/client/assets/{upload-xjku_93-.js → upload-j7JjaJzG.js} +1 -1
- package/dist/client/assets/{users-CbALDtDk.js → users-DZ_0WcB6.js} +1 -1
- package/dist/client/index.html +15 -27
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +51638 -35198
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/skill/fusion/SKILL.md +1 -1
- package/skill/fusion/references/cli-commands.md +1 -1
- package/skill/fusion/references/engine-tools.md +1 -0
- package/skill/fusion/references/extension-tools.md +12 -2
- package/skill/fusion/references/fusion-capabilities.md +3 -2
- package/skill/fusion/workflows/task-management.md +1 -1
- package/dist/client/assets/ChatView-DYpoWnCc.js +0 -1
- package/dist/client/assets/DocumentsView-Dt27gDYa.js +0 -1
- package/dist/client/assets/EvalsView-HfWTc8Uv.js +0 -1
- package/dist/client/assets/InsightsView-C8bsAlMv.js +0 -11
- package/dist/client/assets/ReliabilityView-D0Rtd7pX.css +0 -1
- package/dist/client/assets/ReliabilityView-DAuqE-zi.js +0 -1
- package/dist/client/assets/ResearchView-YoxEFtNB.js +0 -1
- package/dist/client/assets/SettingsModal-B86XhYB1.js +0 -31
- package/dist/client/assets/TodoView-C6sLLEQu.js +0 -6
- package/dist/client/assets/index-DTFPgu6_.js +0 -695
- package/dist/client/assets/index-DdvAZIzj.css +0 -1
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{r as d,j as e}from"./vendor-react-K0fH_qHe.js";import{c as wt,cd as Ct,ce as St,cf as At,cg as $t,ch as Et,ci as Dt,cj as Ft,ck as Tt,v as Mt,i as Ot,z as G,cl as lt,L as Rt,J as Pt,bt as H,X as Q,cm as ut,aY as mt,Y as bt,ae as Ut,a as _t,at as Kt,B as pt}from"./index-DTFPgu6_.js";import"./vendor-xterm-DzcZoU0P.js";import"./vendor-codemirror-jBKmHyH0.js";/**
|
|
2
|
-
* @license lucide-react v1.7.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const Bt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]],Yt=wt("circle-plus",Bt);function zt(k){const{items:l,...x}=k;return x}function ht(k){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`${k}-${crypto.randomUUID()}`:`${k}-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function Jt(k={}){const{projectId:l,addToast:x}=k,[I,N]=d.useState([]),[g,L]=d.useState([]),[Y,F]=d.useState(!0),[S,j]=d.useState(null),[$,E]=d.useState(null),[y,f]=d.useState([]),C=d.useRef($);C.current=$,d.useEffect(()=>{let s=!1;async function c(){F(!0),j(null);try{const r=await Tt(l);if(s)return;f(r),N(r.map(zt));const m=C.current&&r.some(i=>i.id===C.current)?C.current:r[0]?.id??null;E(m),L(m?r.find(i=>i.id===m)?.items??[]:[])}catch(r){if(s)return;f([]),N([]),L([]),E(null),j(r instanceof Error?r.message:"Failed to load todo lists")}finally{s||F(!1)}}return c(),()=>{s=!0}},[l]),d.useEffect(()=>{if(!$){L([]);return}const s=y.find(c=>c.id===$);L(s?.items??[])},[y,$]);const z=d.useCallback(async s=>{const c=I,r=y,m=new Date().toISOString(),i={id:ht("temp-list"),projectId:l??"",title:s,createdAt:m,updatedAt:m};j(null),N(n=>[...n,i]),f(n=>[...n,{...i,items:[]}]);try{const n=await Ct(s,l);N(a=>a.map(o=>o.id===i.id?n:o)),f(a=>a.map(o=>o.id===i.id?{...n,items:[]}:o)),C.current||E(n.id)}catch(n){N(c),f(r),j(n instanceof Error?n.message:"Failed to create list"),x?.("Failed to create todo list","error")}},[x,y,I,l]),J=d.useCallback(async(s,c)=>{const r=I,m=y;j(null),N(i=>i.map(n=>n.id===s?{...n,title:c}:n)),f(i=>i.map(n=>n.id===s?{...n,title:c}:n));try{const i=await St(s,c,l);N(n=>n.map(a=>a.id===s?i:a)),f(n=>n.map(a=>a.id===s?{...i,items:a.items}:a))}catch(i){N(r),f(m),j(i instanceof Error?i.message:"Failed to rename list"),x?.("Failed to rename todo list","error")}},[x,y,I,l]),V=d.useCallback(async s=>{const c=I,r=y,m=C.current,i=m===s?I.find(n=>n.id!==s)?.id??null:m;j(null),N(n=>n.filter(a=>a.id!==s)),f(n=>n.filter(a=>a.id!==s)),m===s&&E(i);try{await At(s,l)}catch(n){N(c),f(r),E(m),j(n instanceof Error?n.message:"Failed to delete list"),x?.("Failed to delete todo list","error")}},[x,y,I,l]),T=d.useCallback(async s=>{const c=C.current;if(!c)return;const r=g,m=y,i=new Date().toISOString(),n=g.reduce((o,u)=>Math.max(o,u.sortOrder),-1),a={id:ht("temp-item"),listId:c,text:s,completed:!1,completedAt:null,createdAt:i,updatedAt:i,sortOrder:n+1};j(null),L(o=>[...o,a]),f(o=>o.map(u=>u.id===c?{...u,items:[...u.items,a]}:u));try{const o=await $t(c,s,l);L(u=>u.map(h=>h.id===a.id?o:h)),f(u=>u.map(h=>h.id===c?{...h,items:h.items.map(D=>D.id===a.id?o:D)}:h))}catch(o){L(r),f(m),j(o instanceof Error?o.message:"Failed to create item"),x?.("Failed to create todo item","error")}},[x,g,y,l]),w=d.useCallback(async(s,c)=>{const r=g.find(o=>o.id===s);if(!r)return;const m=g,i=y,n=c.completed??r.completed,a={...r,...c,completed:n,completedAt:n?r.completedAt??new Date().toISOString():null,updatedAt:new Date().toISOString()};j(null),L(o=>o.map(u=>u.id===s?a:u)),f(o=>o.map(u=>u.id===a.listId?{...u,items:u.items.map(h=>h.id===s?a:h)}:u));try{const o=await Et(s,c,l);L(u=>u.map(h=>h.id===s?o:h)),f(u=>u.map(h=>h.id===o.listId?{...h,items:h.items.map(D=>D.id===s?o:D)}:h))}catch(o){L(m),f(i),j(o instanceof Error?o.message:"Failed to update item"),x?.("Failed to update todo item","error")}},[x,g,y,l]),_=d.useCallback(async s=>{const c=g.find(r=>r.id===s);c&&await w(s,{completed:!c.completed})},[g,w]),A=d.useCallback(async s=>{const c=g,r=y;j(null),L(m=>m.filter(i=>i.id!==s)),f(m=>m.map(i=>({...i,items:i.items.filter(n=>n.id!==s)})));try{await Dt(s,l)}catch(m){L(c),f(r),j(m instanceof Error?m.message:"Failed to delete item"),x?.("Failed to delete todo item","error")}},[x,g,y,l]),M=d.useCallback(async s=>{const c=C.current;if(!c)return;const r=g,m=y,i=new Map(g.map(a=>[a.id,a])),n=s.map((a,o)=>{const u=i.get(a);return u?{...u,sortOrder:o}:null}).filter(a=>a!==null);j(null),L(n),f(a=>a.map(o=>o.id===c?{...o,items:n}:o));try{await Ft(c,s,l)}catch(a){L(r),f(m),j(a instanceof Error?a.message:"Failed to reorder items"),x?.("Failed to reorder todo items","error")}},[x,g,y,l]);return{lists:I,items:g,loading:Y,error:S,selectedListId:$,setSelectedListId:E,createList:z,renameList:J,deleteList:V,createItem:T,updateItem:w,toggleItem:_,deleteItem:A,reorderItems:M}}function Vt(k){return[...k].sort((l,x)=>l.sortOrder-x.sortOrder)}function Qt({projectId:k,addToast:l,onPlanningMode:x,onTaskCreated:I,mobileKeyboardActive:N=!1}){const{lists:g,items:L,loading:Y,error:F,selectedListId:S,setSelectedListId:j,createList:$,renameList:E,deleteList:y,createItem:f,updateItem:C,toggleItem:z,deleteItem:J,reorderItems:V}=Jt({projectId:k,addToast:(t,p)=>{if(p==="success"||p==="error"||p==="info"||p===void 0){l(t,p);return}l(t,"info")}}),[T,w]=d.useState(null),[_,A]=d.useState(""),[M,s]=d.useState(null),[c,r]=d.useState(""),[m,i]=d.useState(""),[n,a]=d.useState(!1),[o,u]=d.useState(""),[h,D]=d.useState([]),[ft,W]=d.useState(!1),[X,O]=d.useState(!1),[Z,R]=d.useState(null),q=d.useRef(null),{confirm:xt}=Mt(),tt=d.useMemo(()=>g.find(t=>t.id===S)??null,[g,S]),K=d.useMemo(()=>Vt(L.filter(t=>t.listId===S)),[L,S]);function et(){w(null),A(""),i(""),a(!1)}function B(){s(null),r(""),u("")}function gt(t){et(),B(),j(t)}const vt=d.useCallback(async()=>{W(!0);try{const t=await Ot(void 0,k);D(t),O(!0)}catch(t){l(`Failed to load agents: ${G(t)}`,"error"),O(!1),R(null)}finally{W(!1)}},[k,l]);d.useEffect(()=>{w(null),A(""),i(""),a(!1),s(null),r(""),u(""),O(!1),R(null)},[S]),d.useEffect(()=>{if(!X)return;const t=p=>{q.current&&!q.current.contains(p.target)&&(O(!1),R(null))};return document.addEventListener("mousedown",t),()=>{document.removeEventListener("mousedown",t)}},[X]);function jt(t){B(),w(t.id),A(t.title),a(!1)}async function st(){if(!T)return;const t=_.trim();if(!t){w(null),A("");return}await E(T,t),w(null),A("")}function nt(){w(null),A("")}function at(t){et(),s(t.id),r(t.text)}async function it(){if(!M)return;const t=c.trim();if(!t){s(null),r("");return}await C(M,{text:t}),s(null),r("")}function ot(){s(null),r("")}async function dt(){const t=m.trim();t&&(await $(t),i(""),a(!1))}async function rt(){if(!S)return;const t=o.trim();t&&(await f(t),u(""))}async function yt(t){await xt({title:"Delete List",message:"Delete this list and all its items?",danger:!0})&&await y(t)}async function Lt(t){await J(t)}async function ct(t,p){const v=K.map(U=>U.id),b=v.findIndex(U=>U===t);if(b<0)return;const P=p==="up"?b-1:b+1;P<0||P>=v.length||([v[b],v[P]]=[v[P],v[b]],await V(v))}const kt=d.useCallback(async t=>{try{const p={description:t.text,column:"triage",source:{sourceType:"dashboard_ui"}},v=await lt(p,k);I?.(v),l(`Created ${v.id} from todo`,"success")}catch(p){l(`Failed to create task: ${G(p)}`,"error")}},[k,l,I]),It=d.useCallback(async(t,p)=>{try{const v={description:t.text,column:"triage",assignedAgentId:p,source:{sourceType:"dashboard_ui"}},b=await lt(v,k);I?.(b);const U=h.find(Nt=>Nt.id===p)?.name??p;l(`Created ${b.id} and assigned to ${U}`,"success"),O(!1),R(null)}catch(v){l(`Failed to create and assign task: ${G(v)}`,"error")}},[k,l,h,I]);return Y?e.jsx("div",{className:"todo-view",children:e.jsxs("div",{className:"todo-loading",children:[e.jsx(Rt,{className:"todo-loading-icon","aria-hidden":"true"}),e.jsx("p",{children:"Loading todos..."})]})}):e.jsx("div",{className:`todo-view${N?" todo-view--mobile-keyboard-active":""}`,"data-testid":"todo-view-root",children:e.jsxs("div",{className:"todo-view-layout",children:[e.jsxs("aside",{className:"todo-view-sidebar","aria-label":"Todo lists sidebar",children:[e.jsxs("div",{className:"todo-sidebar-header",children:[e.jsx("h3",{className:"todo-sidebar-title",children:"Lists"}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-add-list-btn",onClick:()=>{B(),a(!0),w(null)},"aria-label":"Add list","data-testid":"add-list-button",children:e.jsx(Pt,{})})]}),n&&e.jsxs("div",{className:"todo-list-item",children:[e.jsx("input",{className:"input todo-inline-edit-input",placeholder:"New list title",value:m,onChange:t=>i(t.target.value),onKeyDown:t=>{t.key==="Enter"&&dt(),t.key==="Escape"&&(i(""),a(!1))},autoFocus:!0,"data-testid":"new-list-input"}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{dt()},"aria-label":"Save list",children:e.jsx(H,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{i(""),a(!1)},"aria-label":"Cancel list",children:e.jsx(Q,{})})]}),g.length===0&&!n?e.jsxs("div",{className:"todo-empty-state",children:[e.jsx(ut,{"aria-hidden":"true"}),e.jsx("p",{children:"No todo lists yet. Create one to get started."}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>{B(),a(!0)},children:"Create List"})]}):e.jsx("div",{className:"todo-list-items",role:"list","aria-label":"Todo lists",children:g.map(t=>{const p=t.id===S,v=t.id===T;return e.jsx("div",{className:`todo-list-item${p?" todo-list-item--active":""}`,role:"listitem",children:v?e.jsxs(e.Fragment,{children:[e.jsx("input",{className:"input todo-inline-edit-input",value:_,onChange:b=>A(b.target.value),onKeyDown:b=>{b.key==="Enter"&&st(),b.key==="Escape"&&nt()},autoFocus:!0,"data-testid":`rename-list-input-${t.id}`}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{st()},"aria-label":"Save list rename",children:e.jsx(H,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:nt,"aria-label":"Cancel list rename",children:e.jsx(Q,{})})]}):e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"todo-list-select-btn",onClick:()=>gt(t.id),"aria-label":`Select list ${t.title}`,"aria-current":p?"true":void 0,"data-testid":`todo-list-${t.id}`,children:e.jsx("span",{className:"todo-list-item-name",children:t.title})}),e.jsxs("div",{className:"todo-list-item-actions",children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{jt(t)},"aria-label":`Rename ${t.title}`,"data-testid":`rename-list-button-${t.id}`,children:e.jsx(mt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-danger todo-icon-btn",onClick:()=>{yt(t.id)},"aria-label":`Delete ${t.title}`,"data-testid":`delete-list-button-${t.id}`,children:e.jsx(bt,{})})]})]})},t.id)})})]}),e.jsxs("section",{className:"todo-view-main","aria-label":"Todo items",children:[F&&e.jsxs("div",{className:"todo-error-banner",role:"alert",children:[e.jsx("span",{className:"todo-error-message",children:F}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>window.location.reload(),children:"Retry"})]}),tt?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"todo-items-header",children:e.jsx("h3",{children:tt.title})}),e.jsxs("div",{className:"todo-add-item-row",children:[e.jsx("input",{className:"input",placeholder:"Add a todo item",value:o,onChange:t=>u(t.target.value),onKeyDown:t=>{t.key==="Enter"&&rt(),t.key==="Escape"&&u("")},"data-testid":"new-item-input"}),e.jsx("button",{type:"button",className:"btn btn-primary",onClick:()=>{rt()},children:"Add"})]}),K.length===0?e.jsx("div",{className:"todo-empty-state",children:e.jsx("p",{children:"No items in this list. Add one above."})}):e.jsx("div",{className:"todo-items-list",children:K.map((t,p)=>{const v=t.id===M;return e.jsxs("div",{className:"todo-item","data-testid":`todo-item-${t.id}`,children:[e.jsxs("div",{className:"todo-item-main-row",children:[e.jsx("input",{type:"checkbox",checked:t.completed,onChange:()=>{z(t.id)},className:"todo-item-checkbox","aria-label":`Toggle ${t.text}`,"data-testid":`toggle-item-${t.id}`}),v?e.jsx("input",{className:"input todo-inline-edit-input",value:c,onChange:b=>r(b.target.value),onKeyDown:b=>{b.key==="Enter"&&it(),b.key==="Escape"&&ot()},autoFocus:!0,"data-testid":`edit-item-input-${t.id}`}):e.jsx("button",{type:"button",className:`todo-item-text${t.completed?" todo-item-text--completed":""}`,onClick:()=>at(t),children:t.text})]}),e.jsx("div",{className:"todo-item-actions","data-testid":`todo-item-actions-${t.id}`,children:v?e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{it()},"aria-label":"Save item edit",children:e.jsx(H,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:ot,"aria-label":"Cancel item edit",children:e.jsx(Q,{})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"todo-item-reorder-btns",children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-item-reorder-btn",onClick:()=>{ct(t.id,"up")},disabled:p===0,"aria-label":`Move ${t.text} up`,"data-testid":`move-up-${t.id}`,children:e.jsx(Ut,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-item-reorder-btn",onClick:()=>{ct(t.id,"down")},disabled:p===K.length-1,"aria-label":`Move ${t.text} down`,"data-testid":`move-down-${t.id}`,children:e.jsx(_t,{})})]}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{x?.(t.text)},"aria-label":`Start planning from ${t.text}`,"data-testid":`planning-from-${t.id}`,children:e.jsx(Kt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{kt(t)},"aria-label":`Create task from ${t.text}`,"data-testid":`create-task-from-${t.id}`,children:e.jsx(Yt,{})}),e.jsxs("div",{className:"todo-agent-picker-trigger",ref:Z===t.id?q:void 0,children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{R(t.id),vt()},"aria-label":`Assign ${t.text} to agent`,"data-testid":`assign-agent-for-${t.id}`,children:e.jsx(pt,{})}),X&&Z===t.id&&e.jsx("div",{className:"todo-agent-picker-dropdown",onMouseDown:b=>{b.preventDefault()},children:ft?e.jsx("div",{className:"todo-agent-picker-loading",children:"Loading agents..."}):h.length>0?h.map(b=>e.jsxs("button",{type:"button",className:"todo-agent-picker-item",onClick:()=>{It(t,b.id)},children:[e.jsx(pt,{}),e.jsx("span",{children:b.name}),e.jsx("span",{className:"todo-agent-picker-role",children:b.role})]},b.id)):e.jsx("div",{className:"todo-agent-picker-empty",children:"No agents available"})})]}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>at(t),"aria-label":`Edit ${t.text}`,"data-testid":`edit-item-${t.id}`,children:e.jsx(mt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-danger todo-icon-btn",onClick:()=>{Lt(t.id)},"aria-label":`Delete ${t.text}`,"data-testid":`delete-item-${t.id}`,children:e.jsx(bt,{})})]})})]},t.id)})})]}):e.jsxs("div",{className:"todo-empty-state",children:[e.jsx(ut,{"aria-hidden":"true"}),e.jsx("p",{children:"Select a list from the sidebar"})]})]})]})})}export{Qt as TodoView};
|