@runfusion/fusion 0.54.0 → 0.55.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.
Files changed (135) hide show
  1. package/dist/bin.js +3384 -768
  2. package/dist/client/.vite/manifest.json +283 -251
  3. package/dist/client/assets/AgentDetailView-B_VfFSlt.js +18 -0
  4. package/dist/client/assets/{AgentDetailView-BzSyldiW.css → AgentDetailView-D7UY2Tup.css} +1 -1
  5. package/dist/client/assets/{AgentPermissionPolicyEditor-D2AQ6swg.js → AgentPermissionPolicyEditor-QZhz41AU.js} +1 -1
  6. package/dist/client/assets/{AgentsView-DwEFPKuN.js → AgentsView-hkhJ8SUq.js} +6 -6
  7. package/dist/client/assets/ChatView-B4WnXLYA.js +6 -0
  8. package/dist/client/assets/{CommandCenter-BABqoSkg.js → CommandCenter-B3fAajUO.js} +16 -16
  9. package/dist/client/assets/{DevServerView-DlgOzRdC.js → DevServerView-BR0ngFBw.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-BwMSmxYS.js → DirectoryPicker-BiS41Hca.js} +1 -1
  11. package/dist/client/assets/DocumentsView-BnRvIUpa.js +1 -0
  12. package/dist/client/assets/{EvalsView-CQBNrO5n.js → EvalsView-Bvx18QyC.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-2SDqP2lc.js → ExperimentalAgentOnboardingModal-CKGJcfXI.js} +1 -1
  14. package/dist/client/assets/{GoalsView-BgkX-_SB.js → GoalsView-Bj1yVIiv.js} +1 -1
  15. package/dist/client/assets/{InsightsView-CJY4eZcO.js → InsightsView-DBX8DI60.js} +2 -2
  16. package/dist/client/assets/{MemoryView-5Crtfanz.js → MemoryView-CqkRH2fa.js} +1 -1
  17. package/dist/client/assets/{PiExtensionsManager-COmzskVa.js → PiExtensionsManager-BMMmGWe2.js} +2 -2
  18. package/dist/client/assets/PluginManager-C1bdfN2W.js +1 -0
  19. package/dist/client/assets/{PullRequestView-DAHh0FVM.js → PullRequestView-D0CsXWLl.js} +2 -2
  20. package/dist/client/assets/{ResearchView-cSUka3sd.js → ResearchView-CVgmXAlj.js} +1 -1
  21. package/dist/client/assets/{SecretsView-ChFAfFRY.js → SecretsView-Bv_gw5Ix.js} +1 -1
  22. package/dist/client/assets/{SessionTerminal-D4R3ScvQ.css → SessionTerminal-BvK8A98c.css} +1 -1
  23. package/dist/client/assets/{SessionTerminal-CtQKDaqI.js → SessionTerminal-VLdVV3Ji.js} +1 -1
  24. package/dist/client/assets/{SettingsModal-BzZNPNIh.css → SettingsModal-4t8rV7rh.css} +1 -1
  25. package/dist/client/assets/{SettingsModal-pAz_hOoN.js → SettingsModal-D7YgojbV.js} +1 -1
  26. package/dist/client/assets/SettingsModal-gcrh5EOG.js +21 -0
  27. package/dist/client/assets/SetupWizardModal-DvmTlFP_.js +2 -0
  28. package/dist/client/assets/{ShadcnColorPicker-CsfgWpf6.js → ShadcnColorPicker-DM2fqGwl.js} +1 -1
  29. package/dist/client/assets/{SkillsView-BSUplEYb.js → SkillsView-Bb-JTo99.js} +1 -1
  30. package/dist/client/assets/{TodoView-DhBseLvM.js → TodoView-bV-7deOh.js} +1 -1
  31. package/dist/client/assets/{WorkflowNodeEditor-Bi12CNif.js → WorkflowNodeEditor-Ui1q_fFI.js} +3 -3
  32. package/dist/client/assets/{agentSkills-qVb0x_G3.js → agentSkills-DGFyuKuP.js} +1 -1
  33. package/dist/client/assets/{app-DczBmsP4.js → app--OM-ul6R.js} +3 -3
  34. package/dist/client/assets/{app-BhtYYxin.js → app-BCvqf8qq.js} +3 -3
  35. package/dist/client/assets/app-BZqqEiWR.js +13 -0
  36. package/dist/client/assets/{app-5S4z84u5.js → app-DQeH1UDD.js} +3 -3
  37. package/dist/client/assets/{app-Cts0__Vx.js → app-FiYwRatp.js} +3 -3
  38. package/dist/client/assets/{app-_GFUqcMK.js → app-rGdYcsAA.js} +3 -3
  39. package/dist/client/assets/{architectureDiagram-3BPJPVTR-DEt4eIEQ.js → architectureDiagram-3BPJPVTR-DP7vOyXY.js} +1 -1
  40. package/dist/client/assets/{blockDiagram-GPEHLZMM-CJuX0UM_.js → blockDiagram-GPEHLZMM-Di9v1pV8.js} +1 -1
  41. package/dist/client/assets/{c4Diagram-AAUBKEIU-a46Lm113.js → c4Diagram-AAUBKEIU-Dvb8RSfr.js} +1 -1
  42. package/dist/client/assets/channel-C5g9M3Sk.js +1 -0
  43. package/dist/client/assets/{chunk-2J33WTMH-iBhwyS0c.js → chunk-2J33WTMH-gLcAuGjI.js} +1 -1
  44. package/dist/client/assets/{chunk-4BX2VUAB-C7lS5wER.js → chunk-4BX2VUAB-B-B0wjkx.js} +1 -1
  45. package/dist/client/assets/{chunk-55IACEB6-CQ6YOncn.js → chunk-55IACEB6-XUDeC0Co.js} +1 -1
  46. package/dist/client/assets/{chunk-727SXJPM-CveMaMKK.js → chunk-727SXJPM-1eebiGA2.js} +1 -1
  47. package/dist/client/assets/{chunk-AQP2D5EJ-DErjGUEk.js → chunk-AQP2D5EJ-D9VOB5QS.js} +1 -1
  48. package/dist/client/assets/{chunk-FMBD7UC4-DXUvEFfJ.js → chunk-FMBD7UC4-EFNFEaAz.js} +1 -1
  49. package/dist/client/assets/{chunk-ND2GUHAM-w5RqSj1J.js → chunk-ND2GUHAM-CbeQailD.js} +1 -1
  50. package/dist/client/assets/{chunk-QZHKN3VN-CAi0lJ7V.js → chunk-QZHKN3VN-D55N6EBz.js} +1 -1
  51. package/dist/client/assets/classDiagram-4FO5ZUOK-B-wdlvD6.js +1 -0
  52. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B-wdlvD6.js +1 -0
  53. package/dist/client/assets/{cose-bilkent-S5V4N54A-Ck2h4uV5.js → cose-bilkent-S5V4N54A-B0zbhkX3.js} +1 -1
  54. package/dist/client/assets/createLucideIcon-CshVyKO4.js +21 -0
  55. package/dist/client/assets/{dagre-BM42HDAG-BCRTXNj6.js → dagre-BM42HDAG-BL6peXwl.js} +1 -1
  56. package/dist/client/assets/dashboard-view-Bsdq3OM4.css +1 -0
  57. package/dist/client/assets/dashboard-view-CS1H5SQN.js +1 -0
  58. package/dist/client/assets/dashboard-view-DafOfnxI.js +1 -0
  59. package/dist/client/assets/{dashboard-view-D9rF_PCq.js → dashboard-view-Db3n_W85.js} +1320 -1335
  60. package/dist/client/assets/{diagram-2AECGRRQ-DTTk-DYO.js → diagram-2AECGRRQ-cYKwSHk7.js} +1 -1
  61. package/dist/client/assets/{diagram-5GNKFQAL-jDc9kMi2.js → diagram-5GNKFQAL-DHIwTGuM.js} +1 -1
  62. package/dist/client/assets/{diagram-KO2AKTUF-CcLmzlGr.js → diagram-KO2AKTUF-DfHBJ4aX.js} +1 -1
  63. package/dist/client/assets/{diagram-LMA3HP47-DCW8XKQj.js → diagram-LMA3HP47-pWhYmB6Z.js} +1 -1
  64. package/dist/client/assets/{diagram-OG6HWLK6-wbbKquPs.js → diagram-OG6HWLK6-GzWqbi_m.js} +1 -1
  65. package/dist/client/assets/{erDiagram-TEJ5UH35-Fo933Mo7.js → erDiagram-TEJ5UH35-CCVm5eiR.js} +1 -1
  66. package/dist/client/assets/{flowDiagram-I6XJVG4X-Dfum7HZP.js → flowDiagram-I6XJVG4X-CUTdnU6S.js} +1 -1
  67. package/dist/client/assets/{folder-open-B8vOwFeP.js → folder-open-DOCy9GVC.js} +1 -1
  68. package/dist/client/assets/{ganttDiagram-6RSMTGT7-BzEBCn01.js → ganttDiagram-6RSMTGT7-CW4ENJaC.js} +1 -1
  69. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CgovghHs.js → gitGraphDiagram-PVQCEYII-QXXMfSzp.js} +1 -1
  70. package/dist/client/assets/index-B6ttSchA.js +1336 -0
  71. package/dist/client/assets/index-CPE2Kwra.css +1 -0
  72. package/dist/client/assets/{infoDiagram-5YYISTIA-BzpU4Wys.js → infoDiagram-5YYISTIA-CZyHbj0n.js} +1 -1
  73. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-cpp5pozu.js → ishikawaDiagram-YF4QCWOH-Dea84lqZ.js} +1 -1
  74. package/dist/client/assets/{journeyDiagram-JHISSGLW-BVjcw6oo.js → journeyDiagram-JHISSGLW-Db2iKGU5.js} +1 -1
  75. package/dist/client/assets/{kanban-definition-UN3LZRKU-4unAhBzo.js → kanban-definition-UN3LZRKU-CB9loIqR.js} +1 -1
  76. package/dist/client/assets/loader-circle-CMNcxXXr.js +16 -0
  77. package/dist/client/assets/{mermaid.core-DzIyUj9t.js → mermaid.core-CoQ8aCb0.js} +4 -4
  78. package/dist/client/assets/{mindmap-definition-RKZ34NQL-Be_yfVir.js → mindmap-definition-RKZ34NQL-JPb2wF-K.js} +1 -1
  79. package/dist/client/assets/{pieDiagram-4H26LBE5-Cfnw2aji.js → pieDiagram-4H26LBE5-pdZzOreP.js} +1 -1
  80. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BFlC-_Uo.js → quadrantDiagram-W4KKPZXB-Dh9Ids90.js} +1 -1
  81. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DpVPzCOx.js → requirementDiagram-4Y6WPE33-BVPOSvHU.js} +1 -1
  82. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DM-gKKP0.js → sankeyDiagram-5OEKKPKP-BqSMUpsx.js} +1 -1
  83. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DjhZCZhd.js → sequenceDiagram-3UESZ5HK-B8nepQ6X.js} +1 -1
  84. package/dist/client/assets/{shield-alert-DCfkjjYc.js → shield-alert-CtSaIQNY.js} +1 -1
  85. package/dist/client/assets/{stateDiagram-AJRCARHV-BCA96rdI.js → stateDiagram-AJRCARHV-CQv9RdRp.js} +1 -1
  86. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-DHds08RS.js → stateDiagram-v2-BHNVJYJU-BZ_mlvie.js} +1 -1
  87. package/dist/client/assets/{timeline-definition-PNZ67QCA-CHW2OQRw.js → timeline-definition-PNZ67QCA-CAjwM-Z5.js} +1 -1
  88. package/dist/client/assets/{upload-EJc5PJPz.js → upload-0_pT1euA.js} +1 -1
  89. package/dist/client/assets/{users-C-e-99Vp.js → users--1B6mnm8.js} +1 -1
  90. package/dist/client/assets/{vennDiagram-CIIHVFJN-shGh4eBY.js → vennDiagram-CIIHVFJN-BO3Um3rH.js} +1 -1
  91. package/dist/client/assets/{wardley-L42UT6IY-l0RGrVhn.js → wardley-L42UT6IY-BzqJcqDA.js} +1 -1
  92. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-C-USmO8A.js → wardleyDiagram-YWT4CUSO-Bctxc6_5.js} +1 -1
  93. package/dist/client/assets/{xychartDiagram-2RQKCTM6-CHX9Umta.js → xychartDiagram-2RQKCTM6-CgDuiMFR.js} +1 -1
  94. package/dist/client/assets/zoom-out-DzDzWQt1.js +21 -0
  95. package/dist/client/index.html +13 -4
  96. package/dist/client/version.json +1 -1
  97. package/dist/droid-cli/package.json +1 -1
  98. package/dist/extension.js +2066 -271
  99. package/dist/pi-claude-cli/package.json +1 -1
  100. package/dist/plugin-sdk/index.d.ts +61 -1
  101. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  102. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  103. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  104. package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +70 -25
  105. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  106. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  107. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  108. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  109. package/dist/plugins/fusion-plugin-linear-import/bundled.js +658 -0
  110. package/dist/plugins/fusion-plugin-linear-import/manifest.json +48 -0
  111. package/dist/plugins/fusion-plugin-linear-import/package.json +11 -0
  112. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  113. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  114. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  115. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  116. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  117. package/package.json +2 -1
  118. package/skill/fusion/SKILL.md +2 -2
  119. package/skill/fusion/references/engine-tools.md +1 -0
  120. package/skill/fusion/references/extension-tools.md +81 -0
  121. package/skill/fusion/references/fusion-capabilities.md +7 -0
  122. package/dist/client/assets/AgentDetailView-BJditQat.js +0 -18
  123. package/dist/client/assets/ChatView-B4bjPXFN.js +0 -6
  124. package/dist/client/assets/DocumentsView-BfaRXFg5.js +0 -1
  125. package/dist/client/assets/PluginManager-CGWXqZMa.js +0 -1
  126. package/dist/client/assets/SettingsModal-BYaotQ2o.js +0 -21
  127. package/dist/client/assets/SetupWizardModal-eHZHi8VP.js +0 -2
  128. package/dist/client/assets/app-B1VYocx2.js +0 -13
  129. package/dist/client/assets/channel-BGI9APMr.js +0 -1
  130. package/dist/client/assets/classDiagram-4FO5ZUOK-g6hCcufy.js +0 -1
  131. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-g6hCcufy.js +0 -1
  132. package/dist/client/assets/dashboard-view-BfLJ60Kd.js +0 -1
  133. package/dist/client/assets/index-BjELA24x.js +0 -1336
  134. package/dist/client/assets/index-DwGW7OJh.css +0 -1
  135. package/dist/client/assets/zoom-out-NWbVkreR.js +0 -41
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-DzIyUj9t.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as t,C as e}from"./chunk-727SXJPM-CveMaMKK.js";import{_ as i}from"./mermaid.core-DzIyUj9t.js";import"./vendor-reactflow-CnI7NMXG.js";import"./chunk-FMBD7UC4-DXUvEFfJ.js";import"./chunk-ND2GUHAM-w5RqSj1J.js";import"./chunk-55IACEB6-CQ6YOncn.js";import"./chunk-2J33WTMH-iBhwyS0c.js";import"./index-BjELA24x.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";import"./step-yuy0qJer.js";var k={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{k as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as t,C as e}from"./chunk-727SXJPM-CveMaMKK.js";import{_ as i}from"./mermaid.core-DzIyUj9t.js";import"./vendor-reactflow-CnI7NMXG.js";import"./chunk-FMBD7UC4-DXUvEFfJ.js";import"./chunk-ND2GUHAM-w5RqSj1J.js";import"./chunk-55IACEB6-CQ6YOncn.js";import"./chunk-2J33WTMH-iBhwyS0c.js";import"./index-BjELA24x.js";import"./vendor-react-SZ_qB27O.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";import"./step-yuy0qJer.js";var k={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{k as diagram};
@@ -1 +0,0 @@
1
- import{r as t,j as H}from"./vendor-react-SZ_qB27O.js";import{dI as ve,dJ as Ye,dx as _e,dy as Xe,dK as je}from"./index-BjELA24x.js";import{Z as $e,a as Ge,M as We,R as Le}from"./zoom-out-NWbVkreR.js";import"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-CnI7NMXG.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";const xe=4,we=300,Fe=24;function Ue({taskId:r,position:i,scale:o,canDrag:a,onPositionChange:d,onDragStateChange:c,onDragEnd:x,onDoubleTap:b}){const[I,z]=t.useState(!1),M=t.useRef(null),T=t.useRef(i),E=t.useRef(!1),n=t.useRef(null),m=t.useRef(!1);T.current=i,m.current=I;const l=t.useCallback(()=>{n.current=null},[]),P=t.useCallback(u=>{M.current=null,z(!1),m.current=!1,u&&(c?.(!1),x?.(),E.current=!0,l())},[x,c,l]),N=t.useCallback(u=>{if(!u.isPrimary)return;if(u.defaultPrevented){l();return}const S=Date.now();n.current&&S-n.current.timeStamp>we&&l(),a&&u.stopPropagation();const p=u.currentTarget;a&&typeof p.setPointerCapture=="function"&&p.setPointerCapture(u.pointerId),M.current={pointerId:u.pointerId,pointerType:u.pointerType,startPointer:{x:u.clientX,y:u.clientY},startPosition:T.current,defaultPrevented:u.defaultPrevented,movedBeyondThreshold:!1}},[a,l]),v=t.useCallback(u=>{const S=M.current;if(!S||S.pointerId!==u.pointerId)return;a&&u.stopPropagation();const p=u.clientX-S.startPointer.x,U=u.clientY-S.startPointer.y,_=Math.hypot(p,U);if(_>=xe&&(S.movedBeyondThreshold=!0),!a){S.movedBeyondThreshold&&l();return}if(!m.current&&_>=xe&&(z(!0),m.current=!0,c?.(!0),l()),_<xe)return;const re=o>0?o:1;d(r,{x:S.startPosition.x+p/re,y:S.startPosition.y+U/re})},[a,c,d,l,o,r]),G=t.useCallback((u,S)=>{if(!b||S.defaultPrevented||S.movedBeyondThreshold)return Date.now()-(n.current?.timeStamp??0)>we&&l(),!1;if(S.pointerType==="mouse")return l(),!1;const p={timeStamp:Date.now(),point:{x:S.startPointer.x,y:S.startPointer.y}},U=n.current;return!U||p.timeStamp-U.timeStamp>we||Math.hypot(p.point.x-U.point.x,p.point.y-U.point.y)>Fe?(n.current=p,!1):(E.current=!0,l(),b(),!0)},[b,l]),Z=t.useCallback(u=>{const S=M.current;if(!S||S.pointerId!==u.pointerId)return;a&&u.stopPropagation(),a&&typeof u.currentTarget.hasPointerCapture=="function"&&u.currentTarget.hasPointerCapture(u.pointerId)&&typeof u.currentTarget.releasePointerCapture=="function"&&u.currentTarget.releasePointerCapture(u.pointerId);const p=m.current;!p&&G(u,S)&&u.preventDefault(),P(p)},[a,P,G]),W=t.useCallback(u=>{const S=M.current;!S||S.pointerId!==u.pointerId||(a&&u.stopPropagation(),a&&typeof u.currentTarget.hasPointerCapture=="function"&&u.currentTarget.hasPointerCapture(u.pointerId)&&typeof u.currentTarget.releasePointerCapture=="function"&&u.currentTarget.releasePointerCapture(u.pointerId),l(),P(m.current))},[a,P,l]),Y=t.useCallback(u=>{E.current&&(E.current=!1,u.preventDefault(),u.stopPropagation())},[]);return t.useMemo(()=>({isDragging:I,onPointerDown:N,onPointerMove:v,onPointerUp:Z,onPointerCancel:W,onClickCapture:Y}),[I,Y,W,N,v,Z])}const Be=new Set(["planning","researching","executing","finalizing","merging","merging-fix"]);function Ze(r){return r?r.charAt(0).toUpperCase()+r.slice(1):"Executing"}function Ke({style:r,position:i,scale:o,isSelected:a=!1,isHighlighted:d=!1,isDimmed:c=!1,onMouseEnter:x,onMouseLeave:b,onClick:I,onNodePositionChange:z,onNodeDragStateChange:M,onNodeDragEnd:T,...E}){const{task:n,globalPaused:m,taskStuckTimeoutMs:l,lastFetchTimeMs:P,onOpenDetail:N}=E,v=n.status==="failed",G=n.paused===!0,Z=ve(n,l,P),W=n.column==="triage"&&n.status==="awaiting-approval",Y=!m&&!v&&!G&&!Z&&!W&&(n.column==="in-progress"||Be.has(n.status)),u=typeof n.currentStep=="number"&&n.currentStep>=0&&Array.isArray(n.steps)&&n.currentStep<n.steps.length,S=n.column==="in-review",p=Ue({taskId:n.id,position:i,scale:o,canDrag:a,onPositionChange:z,onDragStateChange:M,onDragEnd:T,onDoubleTap:()=>N(n)});return H.jsxs("div",{className:`graph-task-node${a?" graph-node--draggable graph-task-node--selected":""}${p.isDragging?" graph-node--dragging":""}${d?" graph-task-node--highlighted graph-node--highlighted":""}${c?" graph-task-node--dimmed graph-node--dimmed":""}${Y?" graph-task-node--active":""}${S?" graph-task-node--in-review":""}`,style:r,draggable:!1,"data-testid":`graph-task-node-${n.id}`,"data-current-step":Y&&u?String(n.currentStep):void 0,onMouseEnter:x,onMouseLeave:b,onClick:I,onDoubleClick:U=>{U.defaultPrevented||N(n)},onClickCapture:p.onClickCapture,onPointerDown:p.onPointerDown,onPointerMove:p.onPointerMove,onPointerUp:p.onPointerUp,onPointerCancel:p.onPointerCancel,children:[Y?H.jsx("div",{className:"graph-task-active-indicator",children:H.jsx("span",{className:"graph-task-active-indicator-text",children:Ze(n.status)})}):null,H.jsx(Ye,{...E,onOpenDetail:()=>{},disableDrag:!0})]})}function Ve({zoom:r,onZoomIn:i,onZoomOut:o,onFitToGraph:a,onResetView:d}){return H.jsxs("div",{className:"graph-toolbar","data-testid":"graph-toolbar",children:[H.jsx("button",{className:"btn btn-icon",title:"Zoom in (Ctrl+=)","aria-label":"Zoom in",onClick:i,children:H.jsx($e,{size:16})}),H.jsx("button",{className:"btn btn-icon",title:"Zoom out (Ctrl+-)","aria-label":"Zoom out",onClick:o,children:H.jsx(Ge,{size:16})}),H.jsxs("div",{className:"graph-toolbar__zoom-label","aria-live":"polite",children:[Math.round(r*100),"%"]}),H.jsx("button",{className:"btn btn-icon",title:"Fit to graph (Ctrl+Shift+F)","aria-label":"Fit to graph",onClick:a,children:H.jsx(We,{size:16})}),H.jsx("button",{className:"btn btn-icon",title:"Reset view (Ctrl+0)","aria-label":"Reset view",onClick:d,children:H.jsx(Le,{size:16})})]})}const qe=280,Je=100;function Qe({edges:r,positions:i,nodeWidth:o=qe,nodeHeight:a=Je,nodeHeights:d,highlightedEdgeIds:c}){const x=!!(c&&c.size>0);return H.jsxs("svg",{className:"dependency-graph-edges","aria-hidden":"true",children:[H.jsx("defs",{children:H.jsx("marker",{id:"dependency-graph-arrowhead",markerWidth:"10",markerHeight:"7",refX:"10",refY:"3.5",orient:"auto",markerUnits:"strokeWidth",children:H.jsx("path",{d:"M 0 0 L 10 3.5 L 0 7 z",style:{fill:"var(--border)"}})})}),r.map(b=>{const I=i.get(b.source),z=i.get(b.target);if(!I||!z)return null;const M=`${b.source}->${b.target}`,T=x&&(c?.has(M)??!1),E=I.x+o/2,n=I.y+(d?.get(b.source)??a),m=z.x+o/2,l=z.y,P=n+(l-n)/2;return H.jsx("path",{"data-testid":"dependency-edge","data-edge-id":M,className:`dependency-graph-edge${T?" graph-edge--highlighted":""}${x&&!T?" graph-edge--dimmed":""}`,d:`M ${E} ${n} C ${E} ${P}, ${m} ${P}, ${m} ${l}`,fill:"none",markerEnd:"url(#dependency-graph-arrowhead)",style:{opacity:x&&!T?.15:1,stroke:T?"var(--todo)":"var(--border)",strokeWidth:T?"var(--space-xs)":"var(--btn-border-width)",transition:"opacity var(--transition-fast), stroke var(--transition-fast), stroke-width var(--transition-fast)"}},M)})]})}const et=new Set(["triage","todo","in-progress","in-review"]);function tt(r){return r.filter(i=>et.has(i.column))}const nt={nodeWidth:280,nodeHeight:100,horizontalGap:40,verticalGap:80,orientation:"vertical"};function ke(r,i){const o={...nt,...i},a=r.nodes.map(n=>n.task.id);if(a.length===0)return new Map;const d=new Map,c=new Map;for(const n of a)c.set(n,0),d.set(n,[]);for(const n of r.edges)!c.has(n.source)||!c.has(n.target)||(d.get(n.target)?.push(n.source),c.set(n.source,(c.get(n.source)??0)+1));const x=a.filter(n=>(c.get(n)??0)===0),b=[];for(;x.length>0;){const n=x.shift();b.push(n);for(const m of d.get(n)??[]){const l=(c.get(m)??0)-1;c.set(m,l),l===0&&x.push(m)}}for(const n of a)b.includes(n)||b.push(n);const I=new Map;for(const n of b){const m=r.edges.filter(P=>P.source===n).map(P=>P.target);let l=0;for(const P of m)l=Math.max(l,(I.get(P)??0)+1);I.set(n,l)}const z=new Map;for(const n of a){const m=I.get(n)??0,l=z.get(m)??[];l.push(n),z.set(m,l)}const M=new Map,T=Array.from(z.keys()).sort((n,m)=>n-m),E=new Map;if(o.orientation==="vertical"){let n=0;for(const m of T){E.set(m,n);const l=z.get(m)??[],P=Math.max(o.nodeHeight,...l.map(N=>o.measuredHeights?.get(N)??o.nodeHeight));n+=P+o.verticalGap}}for(const n of T){const m=z.get(n)??[];if(m.sort(),o.orientation==="horizontal"){const G=-(m.reduce((Y,u)=>Y+(o.measuredHeights?.get(u)??o.nodeHeight),0)+Math.max(0,m.length-1)*o.verticalGap)/2,Z=n*(o.nodeWidth+o.horizontalGap);let W=G;for(const Y of m)M.set(Y,{x:Z,y:W}),W+=(o.measuredHeights?.get(Y)??o.nodeHeight)+o.verticalGap;continue}const N=-(m.length*o.nodeWidth+Math.max(0,m.length-1)*o.horizontalGap)/2;m.forEach((v,G)=>{const Z=N+G*(o.nodeWidth+o.horizontalGap),W=E.get(n)??n*(o.nodeHeight+o.verticalGap);M.set(v,{x:Z,y:W})})}return M}function rt(r){return t.useMemo(()=>{const i=r.map(d=>({task:d})),o=new Set(r.map(d=>d.id)),a=r.flatMap(d=>(d.dependencies??[]).filter(c=>o.has(c)).map(c=>({source:d.id,target:c})));return{nodes:i,edges:a}},[r])}const ue=.1,le=3,De=40,ot=200;function te(r,i,o){return Math.min(o,Math.max(i,r))}function st(r){if(!(r instanceof HTMLElement))return!1;const i=r.tagName.toLowerCase();return r.isContentEditable||i==="input"||i==="textarea"||i==="select"}function it(){const[r,i]=t.useState({x:0,y:0}),[o,a]=t.useState(1),[d,c]=t.useState(!1),x=t.useRef(r),b=t.useRef(o),I=t.useRef(null),z=t.useRef(null),M=t.useRef(new Map),T=t.useRef(null),E=t.useRef({minX:0,minY:0,maxX:0,maxY:0});t.useEffect(()=>{x.current=r},[r]),t.useEffect(()=>{b.current=o},[o]),t.useEffect(()=>()=>{I.current!==null&&window.clearTimeout(I.current)},[]);const n=t.useMemo(()=>`translate(${r.x}px, ${r.y}px) scale(${o})`,[r.x,r.y,o]),m=t.useMemo(()=>Math.round(o*100),[o]),l=t.useCallback(s=>{if(!s){I.current!==null&&(window.clearTimeout(I.current),I.current=null),c(!1);return}c(!0),I.current!==null&&window.clearTimeout(I.current),I.current=window.setTimeout(()=>{c(!1),I.current=null},ot)},[]),P=t.useCallback((s,h,w,k=b.current)=>{const C=E.current;if(C.maxX<=C.minX||C.maxY<=C.minY)return{x:te(s.x,-h,h),y:te(s.y,-w,w)};const X=h-C.maxX*k,A=-C.minX*k,j=w-C.maxY*k,B=-C.minY*k,oe=X>A?(X+A)/2:te(s.x,X,A),q=j>B?(j+B)/2:te(s.y,j,B);return{x:oe,y:q}},[]),N=t.useCallback((s,h,w,k)=>{const C=b.current,X=x.current,A=te(s,ue,le),j=A/C,B=P({x:h.x-(h.x-X.x)*j,y:h.y-(h.y-X.y)*j},w,k,A);a(A),i(B)},[P]),v=t.useCallback((s,h,w,k)=>{l(!1);const C=k??{x:h/2,y:w/2};N(b.current*s,C,h,w)},[l,N]),G=t.useCallback((s,h)=>{if(s&&h){v(1.2,s,h);return}a(w=>te(w+.1,ue,le))},[v]),Z=t.useCallback((s,h)=>{if(s&&h){v(1/1.2,s,h);return}a(w=>te(w-.1,ue,le))},[v]),W=t.useCallback(()=>{l(!0),i({x:0,y:0}),a(1)},[l]),Y=t.useCallback((s,h,w,k)=>{if(l(!0),s.size===0){i({x:0,y:0}),a(1);return}const C=k?.nodeWidth??280,X=k?.nodeHeight??100,A=Array.from(s.entries()),j=Math.min(...A.map(([,ee])=>ee.x)),B=Math.min(...A.map(([,ee])=>ee.y)),oe=Math.max(...A.map(([,ee])=>ee.x+C)),q=Math.max(...A.map(([ee,me])=>me.y+(k?.measuredHeights?.get(ee)??X))),L=Math.max(1,oe-j),J=Math.max(1,q-B),Q=Math.max(1,h-De*2),pe=Math.max(1,w-De*2),se=te(Math.min(Q/L,pe/J),ue,le),de=(h-L*se)/2-j*se,he=(w-J*se)/2-B*se;a(se),i(P({x:de,y:he},h,w,se))},[P,l]),u=t.useCallback((s,h)=>{if(M.current.set(s,h),M.current.size===2){const[w,k]=Array.from(M.current.values());T.current={distance:Math.hypot(w.x-k.x,w.y-k.y),zoom:b.current,pan:x.current,midpoint:{x:(w.x+k.x)/2,y:(w.y+k.y)/2}},z.current=null;return}z.current={start:h,panStart:x.current}},[]),S=t.useCallback((s,h,w,k)=>{if(M.current.has(s)&&M.current.set(s,h),M.current.size===2&&T.current){l(!1);const[A,j]=Array.from(M.current.values()),oe=Math.hypot(A.x-j.x,A.y-j.y)/Math.max(1,T.current.distance),q={x:(A.x+j.x)/2,y:(A.y+j.y)/2},L=te(T.current.zoom*oe,ue,le),J=L/T.current.zoom,Q=P({x:q.x-(T.current.midpoint.x-T.current.pan.x)*J,y:q.y-(T.current.midpoint.y-T.current.pan.y)*J},w,k);a(L),i(Q);return}const C=z.current;if(!C)return;l(!1);const X={x:C.panStart.x+(h.x-C.start.x),y:C.panStart.y+(h.y-C.start.y)};i(P(X,w,k))},[P,l]),p=t.useCallback(s=>{if(M.current.delete(s),M.current.size<2&&(T.current=null),M.current.size===1){const[h]=Array.from(M.current.values());z.current={start:h,panStart:x.current};return}M.current.size===0&&(z.current=null)},[]),U=t.useCallback((s,h,w,k)=>{l(!1);const C={x:x.current.x-s,y:x.current.y-h};i(P(C,w,k))},[P,l]),_=t.useCallback((s,h,w,k)=>{const C=s<0?1.1:.9;l(!1),N(b.current*C,h,w,k)},[l,N]),re=t.useCallback(s=>{E.current=s},[]),V=t.useCallback((s,h,w,k,C)=>{if(st(s.target))return;const X=s.metaKey||s.ctrlKey;if(s.key==="Escape"){s.preventDefault(),W();return}if(X){if(s.key==="="||s.key==="+"){s.preventDefault(),v(1.2,h,w);return}if(s.key==="-"){s.preventDefault(),v(1/1.2,h,w);return}if(s.key==="0"){s.preventDefault(),W();return}(s.key==="f"||s.key==="F")&&s.shiftKey&&(s.preventDefault(),Y(k,h,w,C))}},[Y,W,v]);return{pan:r,zoom:o,zoomPercent:m,transform:n,transitioning:d,zoomIn:G,zoomOut:Z,resetView:W,fitToGraph:Y,setAnimate:l,onPointerDown:u,onPointerMove:S,onPointerUp:p,onWheelPan:U,onWheelZoom:_,handleKeyDown:V,setGraphBounds:re}}function at(r){const{upstreamMap:i,downstreamMap:o}=t.useMemo(()=>{const d=new Map,c=new Map;for(const x of r)d.set(x.id,new Set(x.dependencies??[])),c.has(x.id)||c.set(x.id,new Set);for(const x of r)for(const b of x.dependencies??[])c.has(b)||c.set(b,new Set),c.get(b)?.add(x.id);return{upstreamMap:d,downstreamMap:c}},[r]);return{getChain:t.useCallback(d=>{if(!i.has(d)&&!o.has(d))return new Set;const c=new Set([d]),x=(b,I)=>{const z=[b],M=new Set([b]);for(;z.length>0;){const T=z.shift();if(!T)continue;const E=I.get(T);if(E)for(const n of E)M.has(n)||(M.add(n),c.add(n),z.push(n))}};return x(d,i),x(d,o),c},[o,i])}}const Me="fusion-plugin-dependency-graph:positions";function fe(r){if(!r||typeof r!="object")return!1;const i=r;return typeof i.x=="number"&&Number.isFinite(i.x)&&typeof i.y=="number"&&Number.isFinite(i.y)}function ct(r){const i=_e(Me,r);if(!i)return{};try{const o=JSON.parse(i);if(!o||typeof o!="object")return{};const a={};for(const[d,c]of Object.entries(o))fe(c)&&(a[d]=c);return a}catch{return{}}}function ut(r,i,o){const a={};for(const[d,c]of Object.entries(r))i.has(d)&&fe(c)&&(a[d]=c);Xe(Me,JSON.stringify(a),o)}function lt(r){je(Me,r)}function dt(r,i,o){const a={};for(const[d,c]of Object.entries(r))o.has(d)&&fe(c)&&(a[d]=c);for(const[d,c]of Object.entries(i))o.has(d)&&fe(c)&&(a[d]=c);return a}function ft(r,i){const o={};for(const[a,d]of Object.entries(r))i.has(a)&&(o[a]=d);return o}function pt({projectId:r,visibleTaskIds:i}){const[o,a]=t.useState(null);t.useEffect(()=>{a(ct(r))},[r]);const d=t.useCallback(x=>{ut(x,i,r),a(ft(x,i))},[r,i]),c=t.useCallback(()=>{lt(r),a(null)},[r]);return{savedPositions:o,persistPositions:d,clearSavedPositions:c}}const ce=280,ne=100,ht=768,Re=4;function mt({tasks:r,projectId:i,onOpenTaskDetail:o,onOpenDetail:a,addToast:d,globalPaused:c,onUpdateTask:x,onArchiveTask:b,onUnarchiveTask:I,onDeleteTask:z,onRetryTask:M,onOpenDetailWithTab:T,taskStuckTimeoutMs:E,onOpenMission:n,onMoveTask:m,lastFetchTimeMs:l,workflowStepNameLookup:P}){const N=t.useRef(null),v=t.useRef(null),G=t.useRef(!1),Z=t.useRef(new Map),[W,Y]=t.useState(null),[u,S]=t.useState(null),[p,U]=t.useState({width:0,height:0}),[_,re]=t.useState(new Map),V=t.useMemo(()=>tt(r),[r]),s=rt(V),{getChain:h}=at(V),w=W??u,k=t.useMemo(()=>w?h(w):new Set,[w,h]),C=t.useMemo(()=>{const e=p.width||(typeof window<"u"?window.innerWidth:0);return(p.height||(typeof window<"u"?window.innerHeight:0))>e||e<ht?"horizontal":"vertical"},[p.height,p.width]),X=t.useMemo(()=>({nodeWidth:ce,nodeHeight:ne,horizontalGap:40,verticalGap:80,orientation:C,measuredHeights:_}),[_,C]),A=t.useMemo(()=>ke(s,X),[s,X]),j=t.useMemo(()=>new Set(V.map(e=>e.id)),[V]),{savedPositions:B,persistPositions:oe,clearSavedPositions:q}=pt({projectId:i,visibleTaskIds:j}),[L,J]=t.useState(A),[Q,pe]=t.useState(!1);t.useEffect(()=>{const e={};for(const[g,D]of A.entries())e[g]=D;const f=B?dt(e,B,j):e;J(new Map(Object.entries(f)))},[A,B,j]),t.useEffect(()=>{const e=N.current;if(!e)return;const f=(D,O)=>{U(y=>y.width===D&&y.height===O?y:{width:D,height:O})};if(typeof ResizeObserver>"u"){f(e.clientWidth||(typeof window<"u"?window.innerWidth:0),e.clientHeight||(typeof window<"u"?window.innerHeight:0));return}f(e.clientWidth,e.clientHeight);const g=new ResizeObserver(D=>{const O=D[0];O&&f(O.contentRect.width,O.contentRect.height)});return g.observe(e),()=>g.disconnect()},[]),t.useEffect(()=>{const e=N.current;if(!e)return;const f=new Set(s.nodes.map(y=>y.task.id)),g=new Map;for(const y of f){const R=e.querySelector(`[data-testid="graph-task-node-${y}"]`);R&&g.set(y,R)}Z.current=g,re(y=>{let R=!1;const $=new Map;for(const[K,ae]of y.entries()){if(!f.has(K)){R=!0;continue}$.set(K,ae)}return R?$:y});const D=(y,R)=>{re($=>{const K=$.get(y);if(K!==void 0&&Math.abs(K-R)<1)return $;const ae=new Map($);return ae.set(y,R),ae})};for(const[y,R]of g.entries())D(y,R.offsetHeight||ne);if(typeof ResizeObserver>"u")return;const O=new ResizeObserver(y=>{for(const R of y){const $=R.target,K=Array.from(g.entries()).find(([,ae])=>ae===$)?.[0];K&&D(K,$.offsetHeight||ne)}});for(const y of g.values())O.observe(y);return()=>O.disconnect()},[s.nodes,L,p.height,p.width]);const{transform:se,zoom:de,transitioning:he,zoomIn:ee,zoomOut:me,resetView:Ie,fitToGraph:ge,onPointerDown:He,onPointerMove:ze,onPointerUp:be,onWheelPan:Ne,onWheelZoom:Oe,handleKeyDown:Ee,setGraphBounds:Pe}=it(),F=t.useMemo(()=>{const e=Array.from(L.values());if(e.length===0)return{minX:0,minY:0,maxX:0,maxY:0,width:0,height:0};const f=Math.min(...e.map(y=>y.x)),g=Math.min(...e.map(y=>y.y)),D=Math.max(...e.map(y=>y.x+ce)),O=Math.max(...Array.from(L.entries()).map(([y,R])=>R.y+(_.get(y)??ne)));return{minX:f,minY:g,maxX:D,maxY:O,width:Math.max(0,D-f),height:Math.max(0,O-g)}},[_,L]),ie=t.useMemo(()=>{if(L.size===0)return L;const e=new Map;for(const[f,g]of L.entries())e.set(f,{x:g.x-F.minX,y:g.y-F.minY});return e},[F.minX,F.minY,L]);t.useEffect(()=>{Pe({minX:0,minY:0,maxX:F.width,maxY:F.height})},[F.height,F.width,Pe]);const Se=t.useMemo(()=>Array.from(ie.keys()).sort().join("|"),[ie]),ye=t.useMemo(()=>[Se,p.width,p.height,F.width,F.height,Array.from(_.entries()).sort(([e],[f])=>e.localeCompare(f)).map(([e,f])=>`${e}:${Math.round(f)}`).join("|")].join("::"),[F.height,F.width,Se,_,p.height,p.width]),Te=t.useRef(null);t.useEffect(()=>{if(V.length===0||ie.size===0)return;const e=N.current;if(!e)return;const f=e.clientWidth||p.width,g=e.clientHeight||p.height;if(f===0||g===0||Te.current===ye)return;let D=0,O=0;const y=()=>{const R=N.current;if(!R)return;const $=R.clientWidth||p.width,K=R.clientHeight||p.height;$===0||K===0||(ge(ie,$,K,{nodeWidth:ce,nodeHeight:ne,measuredHeights:_}),Te.current=ye)};return typeof requestAnimationFrame=="function"?D=requestAnimationFrame(()=>{O=requestAnimationFrame(y)}):y(),()=>{D&&cancelAnimationFrame(D),O&&cancelAnimationFrame(O)}},[V.length,ye,ge,_,ie,p.height,p.width]);const Ce=t.useCallback(()=>{q();const e=ke(s,X);J(e)},[q,s,X]),Ae=t.useCallback(()=>{const e={};for(const[f,g]of L.entries())e[f]=g;oe(e)},[oe,L]);return H.jsxs("section",{className:"dependency-graph","data-testid":"dependency-graph",children:[H.jsx("div",{ref:N,className:"dependency-graph__viewport",onPointerDown:e=>{Q||(v.current={x:e.clientX,y:e.clientY},G.current=!1,He(e.pointerId,{x:e.clientX,y:e.clientY}))},onPointerMove:e=>{if(Q)return;const f=N.current;if(!f)return;const g=v.current;if(g){const D=Math.abs(e.clientX-g.x),O=Math.abs(e.clientY-g.y);(D>Re||O>Re)&&(G.current=!0)}ze(e.pointerId,{x:e.clientX,y:e.clientY},f.clientWidth,f.clientHeight)},onPointerUp:e=>{Q||be(e.pointerId),v.current=null},onPointerCancel:e=>{Q||be(e.pointerId),v.current=null,G.current=!1},onWheel:e=>{e.preventDefault();const f=N.current;if(f){if(e.ctrlKey||e.metaKey){const g=f.getBoundingClientRect();Oe(e.deltaY,{x:e.clientX-g.left,y:e.clientY-g.top},f.clientWidth,f.clientHeight);return}Ne(e.deltaX,e.deltaY,f.clientWidth,f.clientHeight)}},onKeyDown:e=>{const f=N.current;f&&Ee(e,f.clientWidth,f.clientHeight,ie,{nodeWidth:ce,nodeHeight:ne,measuredHeights:_})},tabIndex:0,onClick:()=>{G.current||Q||S(null)},children:V.length===0?H.jsx("div",{className:"dependency-graph__empty",children:"No active tasks to display in graph view."}):H.jsxs("div",{className:`graph-canvas-transform${he?" graph-canvas-transform--animate":""}`,style:{transform:se,width:`${F.width}px`,height:`${F.height}px`},children:[H.jsx(Qe,{edges:s.edges,positions:ie,nodeWidth:ce,nodeHeight:ne,nodeHeights:_,highlightedEdgeIds:k.size>0?new Set(s.edges.filter(e=>k.has(e.source)&&k.has(e.target)).map(e=>`${e.source}->${e.target}`)):void 0}),H.jsx("div",{className:"dependency-graph__nodes-layer",children:s.nodes.map(e=>{const f=ie.get(e.task.id);return f?H.jsx(Ke,{task:e.task,projectId:i,isSelected:u===e.task.id,style:{minHeight:`${ne}px`,left:`${f.x}px`,top:`${f.y}px`},position:f,scale:de,onNodePositionChange:(g,D)=>{J(O=>{const y={x:D.x+F.minX,y:D.y+F.minY},R=O.get(g);if(R&&R.x===y.x&&R.y===y.y)return O;const $=new Map(O);return $.set(g,y),$})},onNodeDragStateChange:pe,onNodeDragEnd:Ae,isHighlighted:k.size>0&&k.has(e.task.id),isDimmed:k.size>0&&!k.has(e.task.id),onOpenDetail:a??(g=>o?.(g.id)),addToast:d??(()=>{}),globalPaused:c,onUpdateTask:x,onArchiveTask:b,onUnarchiveTask:I,onDeleteTask:z,onRetryTask:M,onOpenDetailWithTab:T,taskStuckTimeoutMs:E,onOpenMission:n,onMoveTask:m,lastFetchTimeMs:l,workflowStepNameLookup:P,onMouseEnter:()=>Y(e.task.id),onMouseLeave:()=>Y(null),onClick:g=>{g.stopPropagation(),G.current=!1,S(D=>D===e.task.id?null:e.task.id)}},e.task.id):null})})]})}),H.jsx(Ve,{zoom:de,onZoomIn:()=>{const e=N.current;e&&ee(e.clientWidth,e.clientHeight)},onZoomOut:()=>{const e=N.current;e&&me(e.clientWidth,e.clientHeight)},onFitToGraph:()=>{Ce();const e=N.current;if(!e)return;const f=ke(s,X),g=new Map,D=Array.from(f.values()),O=D.length>0?Math.min(...D.map(R=>R.x)):0,y=D.length>0?Math.min(...D.map(R=>R.y)):0;for(const[R,$]of f.entries())g.set(R,{x:$.x-O,y:$.y-y});ge(g,e.clientWidth,e.clientHeight,{nodeWidth:ce,nodeHeight:ne,measuredHeights:_})},onResetView:()=>{Ce(),Ie()}})]})}function gt(r){return new Map((r??[]).map(i=>[i.id,i.name]))}function St({context:r}){return t.createElement(mt,{tasks:r?.tasks??[],projectId:r?.projectId,workflowStepNameLookup:gt(r?.workflowSteps),onOpenDetail:r?.openTaskDetail})}export{mt as DependencyGraph,St as DependencyGraphDashboardView,St as default};