@runfusion/fusion 0.74.0-beta.1 → 0.74.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +399 -25
- package/dist/child-process-worker.js +396 -22
- package/dist/client/.vite/manifest.json +256 -256
- package/dist/client/assets/{AgentDetailView-Bopzxiqb.js → AgentDetailView-DH4Cn5iG.js} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor-i5N7rUlL.js → AgentPermissionPolicyEditor-BycC7HhP.js} +1 -1
- package/dist/client/assets/{AgentsView-M3GoJDHH.js → AgentsView-Dkij8Sm8.js} +3 -3
- package/dist/client/assets/{ChatView-CqiyA9Kt.js → ChatView-DAsZY1We.js} +1 -1
- package/dist/client/assets/{CommandCenter-CAvMGKhl.js → CommandCenter-jTzBo-pg.js} +1 -1
- package/dist/client/assets/{DevServerView-wqM6h3nV.js → DevServerView-CxlacYJp.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-C8OyXCE-.js → DirectoryPicker-DsCk3Nsw.js} +1 -1
- package/dist/client/assets/{DocumentsView-CjNMZQi8.js → DocumentsView-8EI6KNBY.js} +1 -1
- package/dist/client/assets/{EvalsView-BVlbuB5t.js → EvalsView-kYnaIk11.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-CIwCg8sq.js → ExperimentalAgentOnboardingModal-ce6DROKD.js} +1 -1
- package/dist/client/assets/{GoalsView-Cnw2igil.js → GoalsView-BVlTtw-u.js} +1 -1
- package/dist/client/assets/{InsightsView-D7GmD-Kx.js → InsightsView-BKQeROkb.js} +1 -1
- package/dist/client/assets/{MemoryView-BlqkfIE5.js → MemoryView-DCzTnxsV.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-EC94zLMq.js → PiExtensionsManager-C94HwDz5.js} +1 -1
- package/dist/client/assets/{PluginManager-pYyCD3uh.js → PluginManager-C3DegklW.js} +1 -1
- package/dist/client/assets/{PullRequestView-BAb0vVhu.js → PullRequestView-CrE89UL7.js} +1 -1
- package/dist/client/assets/{ReportModal-COmReivA.js → ReportModal-BD1ZUDdV.js} +1 -1
- package/dist/client/assets/{ResearchView-DLMo4rFw.js → ResearchView-eMiRw1EM.js} +1 -1
- package/dist/client/assets/{SecretsView-w_O8NLfw.js → SecretsView-6qK8Idb7.js} +1 -1
- package/dist/client/assets/{SessionTerminal-CSPi-qWE.js → SessionTerminal-DtFLyUaK.js} +1 -1
- package/dist/client/assets/SettingsModal-BTfZlghk.css +1 -0
- package/dist/client/assets/{SettingsModal-wilrGXvE.js → SettingsModal-BkOSlfyr.js} +1 -1
- package/dist/client/assets/{SettingsModal-C9bVvYQq.js → SettingsModal-DSq-_qwo.js} +4 -4
- package/dist/client/assets/{SettingsTextareaRow-Bd7_SxVv.js → SettingsTextareaRow-Btyx5kaR.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-sPs6Lw3a.js → SetupWizardModal-Blhx-dRt.js} +2 -2
- package/dist/client/assets/{SkillsView-B9PvYS8t.js → SkillsView-DGE5kYc3.js} +1 -1
- package/dist/client/assets/{TodoView-Df0SD_JT.js → TodoView-YSGI7ATd.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-B3kFD-S0.js → WorkflowNodeEditor-CZiEThu2.js} +1 -1
- package/dist/client/assets/{agent-import-generation-OXfU1-D1.js → agent-import-generation-DQeNZMAm.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-B_8zk4ag.js → architectureDiagram-3BPJPVTR-DhaJNKa4.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-CpDKBJkO.js → blockDiagram-GPEHLZMM-pKpg7gJU.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-D3wtfGzI.js → c4Diagram-AAUBKEIU-DVPXKJnr.js} +1 -1
- package/dist/client/assets/channel-xFBfK0sX.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-DS9sHIMv.js → chunk-2J33WTMH-CHt90T5z.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-B-xW6cfi.js → chunk-4BX2VUAB-DsWFYy0a.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-Ddxf-sPU.js → chunk-55IACEB6-D8XiXEo8.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-Bv_Z1w57.js → chunk-727SXJPM-DlUYBn_Y.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DYHYN43E.js → chunk-AQP2D5EJ-BSdPOr9q.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-wuuFvvBk.js → chunk-FMBD7UC4-B9IAeBld.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-DfVRkVZo.js → chunk-ND2GUHAM-CmxnYQrR.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-D0t6ryuh.js → chunk-QZHKN3VN-Dxp6Po_j.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BFBVD968.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BFBVD968.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-DVlKqNFJ.js → cose-bilkent-S5V4N54A-BNl3bhpS.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-DTtiGxz-.js → dagre-BM42HDAG-DFs7WCcz.js} +1 -1
- package/dist/client/assets/{dashboard-view-DH99T6VJ.js → dashboard-view-DnoTcnIo.js} +1 -1
- package/dist/client/assets/{dashboard-view-D-nDgSmP.js → dashboard-view-ZGxLEL9r.js} +1 -1
- package/dist/client/assets/{dashboard-view-CLjYqvE9.js → dashboard-view-vc8kgLMs.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-Tv-YxCWk.js → diagram-2AECGRRQ-C2PVozvu.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-DlAAPkGu.js → diagram-5GNKFQAL-DFJ5b9H8.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-DisatTBB.js → diagram-KO2AKTUF-D335CW-c.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CDrUxjzW.js → diagram-LMA3HP47-DSfhroAW.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-BQ34a4Ej.js → diagram-OG6HWLK6-8iGveM-Z.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-s-YHwAEU.js → erDiagram-TEJ5UH35-Xc56MEEi.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-EpXzmG2d.js → flowDiagram-I6XJVG4X-DjCU9WbD.js} +1 -1
- package/dist/client/assets/{folder-open-DN86xUly.js → folder-open-BRrB44UX.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-Dk2WaoX8.js → ganttDiagram-6RSMTGT7-CXQE1bea.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CjchnKW0.js → gitGraphDiagram-PVQCEYII--mrSABLC.js} +1 -1
- package/dist/client/assets/{index-aGZ3DHQw.js → index-C2xsZoNG.js} +8 -8
- package/dist/client/assets/{infoDiagram-5YYISTIA-CiU-twoj.js → infoDiagram-5YYISTIA-CTS_nljP.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BvylyUKK.js → ishikawaDiagram-YF4QCWOH-CpV5x3gk.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-Ca6z84KB.js → journeyDiagram-JHISSGLW-BK2QCMnt.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-DXbw2-s-.js → kanban-definition-UN3LZRKU-B4srpspY.js} +1 -1
- package/dist/client/assets/{mermaid.core-DkS33D12.js → mermaid.core-B8DVAt21.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-BgXuWPDD.js → mindmap-definition-RKZ34NQL-CsmmiPpA.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-CnOzTN6U.js → pieDiagram-4H26LBE5-BahLDqf4.js} +1 -1
- package/dist/client/assets/{puzzle-Dxl1kcLF.js → puzzle-BFPQsuIa.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DI3s1u95.js → quadrantDiagram-W4KKPZXB-Bo3u0wTU.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-Ck97mo-W.js → requirementDiagram-4Y6WPE33-DYkYsz7d.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Z3w8NJac.js → sankeyDiagram-5OEKKPKP-BCbh0BSY.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DLGtWgfy.js → sequenceDiagram-3UESZ5HK-C2AP9GlE.js} +1 -1
- package/dist/client/assets/{shield-alert-BCGxgBpM.js → shield-alert-tlZOi02c.js} +1 -1
- package/dist/client/assets/{standing-instructions-template-CUE6ItG6.js → standing-instructions-template-C0Rzv9Mr.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-C6Zl2EJW.js → stateDiagram-AJRCARHV-CARkH0ug.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-BA77mDAW.js → stateDiagram-v2-BHNVJYJU-C2He043y.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-D9Cp15Hm.js → timeline-definition-PNZ67QCA-MvbYneEM.js} +1 -1
- package/dist/client/assets/{upload-2jCicylS.js → upload-DWK0F17Z.js} +1 -1
- package/dist/client/assets/{users-C1TTGAfX.js → users-1AkDfM14.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-BwFSh6Tr.js → vennDiagram-CIIHVFJN-DOjzzLqc.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-CQknAo24.js → wardley-L42UT6IY-Di70vhu2.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-Dwc8f8bd.js → wardleyDiagram-YWT4CUSO-nK6ARhDv.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-CPkeHv8g.js → xychartDiagram-2RQKCTM6-C7_y76B7.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/client/version.json +1 -1
- package/dist/extension.js +399 -25
- package/package.json +1 -1
- package/dist/client/assets/SettingsModal-CMLHZBhX.css +0 -1
- package/dist/client/assets/channel-BLzjKIVz.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DkwPy8u9.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DkwPy8u9.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as a,j as e}from"./vendor-react-SZ_qB27O.js";import{c as Ss,bO as Qs,bP as Xs,bQ as ea,bR as ta,L as G,bS as kt,R as At,bM as ds,Z as sa,bu as zt,bT as ks,x as ct,C as Cs,g as ws,bU as aa,bV as na,bW as ia,aa as Rs,bX as ra,aV as la,bY as oa,bp as U,bZ as ca,b_ as Ms,b$ as As,c0 as da,bo as wt,c1 as It,bc as Ct,bt as Fs,al as Ps,c2 as Bt,bJ as Rt,c3 as us,c4 as Xe,c5 as ua,X as Ts,aG as dt,c6 as ma,bs as Es,c7 as Ls,c8 as ga,Y as ha,u as fa,c9 as Ds,aQ as Hs,bv as Zt,ca as pa,cb as ms,cc as ba,cd as xa,ce as Yt,cf as zs,cg as va,d as ja,ch as ya,h as Is,ci as Bs,b2 as Na,am as fe,cj as Os,ck as gs,cl as hs,cm as Sa,cn as ka,co as Ca,cp as wa,cq as Ft,p as Pt,j as Tt,r as Et,az as $s,cr as Ra,cs as Ma,aJ as Aa,ct as Ot,cu as Fa,cv as Pa,bH as Ta,cw as Ea,cx as $t,cy as La,cz as Da,bL as Ha,aI as za,cA as Kt,y as Ia,cB as Ba,cC as Oa,cD as $a,cE as _a,cF as Ua,aA as _s,cG as Va,cH as Wa,cI as Ja,cJ as Ga,cK as qa}from"./index-
|
|
1
|
+
import{r as a,j as e}from"./vendor-react-SZ_qB27O.js";import{c as Ss,bO as Qs,bP as Xs,bQ as ea,bR as ta,L as G,bS as kt,R as At,bM as ds,Z as sa,bu as zt,bT as ks,x as ct,C as Cs,g as ws,bU as aa,bV as na,bW as ia,aa as Rs,bX as ra,aV as la,bY as oa,bp as U,bZ as ca,b_ as Ms,b$ as As,c0 as da,bo as wt,c1 as It,bc as Ct,bt as Fs,al as Ps,c2 as Bt,bJ as Rt,c3 as us,c4 as Xe,c5 as ua,X as Ts,aG as dt,c6 as ma,bs as Es,c7 as Ls,c8 as ga,Y as ha,u as fa,c9 as Ds,aQ as Hs,bv as Zt,ca as pa,cb as ms,cc as ba,cd as xa,ce as Yt,cf as zs,cg as va,d as ja,ch as ya,h as Is,ci as Bs,b2 as Na,am as fe,cj as Os,ck as gs,cl as hs,cm as Sa,cn as ka,co as Ca,cp as wa,cq as Ft,p as Pt,j as Tt,r as Et,az as $s,cr as Ra,cs as Ma,aJ as Aa,ct as Ot,cu as Fa,cv as Pa,bH as Ta,cw as Ea,cx as $t,cy as La,cz as Da,bL as Ha,aI as za,cA as Kt,y as Ia,cB as Ba,cC as Oa,cD as $a,cE as _a,cF as Ua,aA as _s,cG as Va,cH as Wa,cI as Ja,cJ as Ga,cK as qa}from"./index-C2xsZoNG.js";import{B as Ya,A as fs,a as Ka}from"./AgentPermissionPolicyEditor-BycC7HhP.js";import{u as Se}from"./vendor-i18n-GF3RlKbq.js";import{f as _t,S as Za,a as Qa}from"./standing-instructions-template-C0Rzv9Mr.js";import{ExperimentalAgentOnboardingModal as Xa}from"./ExperimentalAgentOnboardingModal-ce6DROKD.js";import"./vendor-codemirror-jBKmHyH0.js";import"./vendor-reactflow-9C3XTE7_.js";import"./vendor-xterm-BNq00GSj.js";/**
|
|
2
2
|
* @license lucide-react v1.7.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as B}from"./index-
|
|
1
|
+
import{c as B}from"./index-C2xsZoNG.js";import{r as h,j as e}from"./vendor-react-SZ_qB27O.js";import{u as F}from"./vendor-i18n-GF3RlKbq.js";/**
|
|
2
2
|
* @license lucide-react v1.7.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AgentDetailView-
|
|
2
|
-
import{c as na,bJ as ht,d9 as Cs,am as _t,Z as ws,bc as Ss,ch as Yt,da as As,c9 as Ua,db as Zt,aG as qt,ay as Rs,C as Ts,g as Wa,bv as Jt,cV as Ga,cu as Es,bH as _s,bo as Pt,dc as Ps,ac as Ms,ai as Is,B as Ls,al as Mt,dd as wa,cf as Hs,aI as Sa,bL as Ds,aj as Fs,ak as $s,de as zs,aH as Os,L as zt,aZ as jt,R as mt,X as Aa,df as Vs,dg as Bs,bw as kt,aa as Us,bq as Ot,aV as Ws,aW as Gs,bp as ie,c1 as Ie,dh as Ks,ct as Qe,cY as Xs,di as Ys,dj as Ra,V as Zs,dk as qs,P as Ta,dl as Js,c3 as Tt,c2 as Nt,x as Ea,dm as Qs,cD as en,dn as tn,dp as an,cb as _a,cx as dt,cw as yt,a2 as sn,ca as nn,cd as ln,dq as rn,ci as Pa,cc as on}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AgentDetailView-DH4Cn5iG.js","assets/vendor-react-SZ_qB27O.js","assets/index-C2xsZoNG.js","assets/vendor-i18n-GF3RlKbq.js","assets/vendor-codemirror-jBKmHyH0.js","assets/vendor-reactflow-9C3XTE7_.js","assets/vendor-reactflow-C5ap-Sga.css","assets/vendor-xterm-BNq00GSj.js","assets/vendor-xterm-LZoznX6r.css","assets/index-Dv-95s50.css","assets/AgentPermissionPolicyEditor-BycC7HhP.js","assets/AgentPermissionPolicyEditor-CXib-igK.css","assets/standing-instructions-template-C0Rzv9Mr.js","assets/standing-instructions-template-Ddi_4TIk.css","assets/ExperimentalAgentOnboardingModal-ce6DROKD.js","assets/ExperimentalAgentOnboardingModal-3ZEFv8sr.css","assets/AgentDetailView-CoeSgMXS.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{c as na,bJ as ht,d9 as Cs,am as _t,Z as ws,bc as Ss,ch as Yt,da as As,c9 as Ua,db as Zt,aG as qt,ay as Rs,C as Ts,g as Wa,bv as Jt,cV as Ga,cu as Es,bH as _s,bo as Pt,dc as Ps,ac as Ms,ai as Is,B as Ls,al as Mt,dd as wa,cf as Hs,aI as Sa,bL as Ds,aj as Fs,ak as $s,de as zs,aH as Os,L as zt,aZ as jt,R as mt,X as Aa,df as Vs,dg as Bs,bw as kt,aa as Us,bq as Ot,aV as Ws,aW as Gs,bp as ie,c1 as Ie,dh as Ks,ct as Qe,cY as Xs,di as Ys,dj as Ra,V as Zs,dk as qs,P as Ta,dl as Js,c3 as Tt,c2 as Nt,x as Ea,dm as Qs,cD as en,dn as tn,dp as an,cb as _a,cx as dt,cw as yt,a2 as sn,ca as nn,cd as ln,dq as rn,ci as Pa,cc as on}from"./index-C2xsZoNG.js";import{r as s,j as e,b as cn}from"./vendor-react-SZ_qB27O.js";import{u as Pe}from"./vendor-i18n-GF3RlKbq.js";import{c as Vt,s as dn,g as un,f as Ma}from"./agent-import-generation-DQeNZMAm.js";import{w as Ia,a as gn,f as mn}from"./standing-instructions-template-C0Rzv9Mr.js";import{ExperimentalAgentOnboardingModal as hn}from"./ExperimentalAgentOnboardingModal-ce6DROKD.js";import{U as Qt}from"./upload-DWK0F17Z.js";import{F as pn}from"./folder-open-BRrB44UX.js";import{O as Bt,i as La,r as bn}from"./agentsOrgChartLayout-BMvyuaLA.js";import"./vendor-codemirror-jBKmHyH0.js";import"./vendor-reactflow-9C3XTE7_.js";import"./vendor-xterm-BNq00GSj.js";/**
|
|
3
3
|
* @license lucide-react v1.7.0 - ISC
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the ISC license.
|
|
@@ -21,4 +21,4 @@ reportsTo: null
|
|
|
21
21
|
skills:
|
|
22
22
|
- review
|
|
23
23
|
---
|
|
24
|
-
Agent instructions go here...`),value:N,onChange:c=>{p("paste"),w([]),R(c.target.value),O(null)},rows:8,"aria-label":i("agents.manifestContent","Manifest content")})]}),e.jsx("p",{className:"agent-import-file-hint",children:i("agents.currentInput","Current input: {{method}}",{method:r})}),me&&e.jsxs("p",{className:"agent-dialog-error",children:[e.jsx(jt,{size:14}),me]})]}),v==="preview"&&e.jsxs("div",{className:"agent-import-preview",children:[e.jsxs("div",{className:"agent-import-company",children:[e.jsx("span",{className:"agent-import-company-label",children:i("agents.company","Company")}),e.jsx("span",{className:"agent-import-company-name",children:B})]}),T.length>0&&e.jsx("div",{className:"agent-import-result-warnings",children:T.map((c,y)=>e.jsxs("div",{className:"agent-import-result-warning",children:[e.jsx(jt,{size:12}),e.jsx("span",{children:c})]},y))}),e.jsxs("div",{className:"agent-import-count",children:[e.jsx(qt,{size:14}),e.jsx("span",{children:i("agents.agentsFound","{{count}} agent{{plural}} found",{count:$.length,plural:$.length!==1?"s":""})})]}),$.length>0&&e.jsxs("div",{className:"agent-import-selection-controls",children:[e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>z($.map(c=>c.name)),children:i("agents.selectAllAgents","Select all agents")}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>z([]),children:i("agents.clearAgents","Clear agents")})]}),$.length>0?e.jsx("div",{className:"agent-import-agent-list",children:$.map((c,y)=>e.jsxs("div",{className:"agent-import-agent-item",children:[e.jsx("label",{className:"checkbox-label",children:e.jsx("input",{type:"checkbox","aria-label":i("agents.selectAgent","Select agent {{name}}",{name:c.name}),checked:_.includes(c.name),onChange:()=>$e(c.name)})}),e.jsx("span",{className:"agent-import-agent-icon",children:c.icon||"🤖"}),e.jsxs("div",{className:"agent-import-agent-details",children:[e.jsx("span",{className:"agent-import-agent-name",children:c.name}),e.jsxs("span",{className:"agent-import-agent-meta",children:[c.title&&e.jsxs("span",{className:"agent-import-agent-title",children:[c.title," · "]}),e.jsx("span",{className:"agent-import-agent-role",children:c.role}),c.reportsTo&&e.jsx("span",{className:"agent-import-agent-reports",children:i("agents.importReportsTo"," · reports to {{agent}}",{agent:c.reportsTo})}),c.skills&&c.skills.length>0&&e.jsx("span",{className:"agent-import-agent-model",children:i("agents.importSkills"," · skills: {{skills}}",{skills:c.skills.join(", ")})})]}),c.instructionsText&&e.jsxs("span",{className:"agent-import-agent-instructions",children:[c.instructionsText.slice(0,100),c.instructionsText.length>100?"...":""]})]})]},y))}):e.jsx("p",{className:"agent-import-empty",children:i("agents.noAgentsFound","No agents found in the manifest.")}),M.length>0&&e.jsxs("div",{className:"agent-import-skills-section",children:[e.jsxs("div",{className:"agent-import-count",children:[e.jsx(qt,{size:14}),e.jsx("span",{children:i("agents.skillsFound","{{count}} skill{{plural}} found",{count:M.length,plural:M.length!==1?"s":""})})]}),e.jsxs("div",{className:"agent-import-selection-controls",children:[e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>H(M.map(c=>c.name)),children:i("agents.selectAllSkills","Select all skills")}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>H([]),children:i("agents.clearSkills","Clear skills")})]}),e.jsx("div",{className:"agent-import-skill-list",children:M.map((c,y)=>e.jsxs("div",{className:"agent-import-skill-item",children:[e.jsx("label",{className:"checkbox-label",children:e.jsx("input",{type:"checkbox","aria-label":i("agents.selectSkill","Select skill {{name}}",{name:c.name}),checked:Z.includes(c.name),onChange:()=>ze(c.name)})}),e.jsx("span",{className:"agent-import-skill-icon",children:"⚡"}),e.jsxs("div",{className:"agent-import-skill-details",children:[e.jsx("span",{className:"agent-import-skill-name",children:c.name}),c.description&&e.jsx("span",{className:"agent-import-skill-description",children:c.description})]})]},`${c.name}-${y}`))})]}),ce&&e.jsxs("p",{className:"agent-dialog-error",children:[e.jsx(jt,{size:14}),ce]})]}),v==="result"&&S&&e.jsxs("div",{className:"agent-import-result",children:[e.jsx("div",{className:"agent-import-result-icon",children:e.jsx(_t,{size:32})}),e.jsx("h3",{className:"agent-import-result-title",children:i("agents.importComplete","Import Complete")}),e.jsxs("p",{className:"agent-import-result-company",children:[i("agents.from","From")," ",e.jsx("strong",{children:S.companyName??"Unknown"})]}),e.jsxs("div",{className:"agent-import-result-stats",children:[S.created.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--success",children:e.jsx("span",{children:i("agents.resultCreated","{{count}} created",{count:S.created.length})})}),S.skipped.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--skipped",children:e.jsx("span",{children:i("agents.resultSkipped","{{count}} skipped (already exist)",{count:S.skipped.length})})}),S.errors.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--error",children:e.jsx("span",{children:i("agents.resultErrors","{{count}} error{{plural}}",{count:S.errors.length,plural:S.errors.length!==1?"s":""})})})]}),S.created.length>0&&e.jsx("div",{className:"agent-import-result-agents",children:S.created.map((c,y)=>e.jsxs("div",{className:"agent-import-result-agent",children:[e.jsx(_t,{size:12}),e.jsx("span",{children:c.name})]},y))}),S.errors.length>0&&e.jsx("div",{className:"agent-import-result-errors",children:S.errors.map((c,y)=>e.jsxs("div",{className:"agent-import-result-error",children:[e.jsx(Aa,{size:12}),e.jsxs("span",{children:[c.name,": ",c.error]})]},y))}),S.warnings&&S.warnings.length>0&&e.jsx("div",{className:"agent-import-result-warnings",children:S.warnings.map((c,y)=>e.jsxs("div",{className:"agent-import-result-warning",children:[e.jsx(jt,{size:12}),e.jsx("span",{children:c})]},y))}),S.skills&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"agent-import-result-divider"}),e.jsx("h4",{className:"agent-import-result-section-title",children:i("agents.skills","Skills")}),e.jsxs("div",{className:"agent-import-result-stats",children:[S.skills.imported.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--success",children:e.jsx("span",{children:i("agents.skillsImported","{{count}} skill{{plural}} imported",{count:S.skills.imported.length,plural:S.skills.imported.length!==1?"s":""})})}),S.skills.skipped.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--skipped",children:e.jsx("span",{children:i("agents.skillsSkipped","{{count}} skill{{plural}} skipped (already exist)",{count:S.skills.skipped.length,plural:S.skills.skipped.length!==1?"s":""})})}),S.skills.errors.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--error",children:e.jsx("span",{children:i("agents.skillsErrors","{{count}} skill{{plural}} error{{pluralError}}",{count:S.skills.errors.length,plural:S.skills.errors.length!==1?"s":"",pluralError:S.skills.errors.length!==1?"s":""})})}),S.skills.imported.length===0&&S.skills.skipped.length===0&&S.skills.errors.length===0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--skipped",children:e.jsx("span",{children:i("agents.noSkillsInPackage","No skills in package")})})]}),S.skills.imported.length>0&&e.jsx("div",{className:"agent-import-result-agents",children:S.skills.imported.map((c,y)=>e.jsxs("div",{className:"agent-import-result-agent",children:[e.jsx(_t,{size:12}),e.jsx("span",{children:c.name})]},y))}),S.skills.errors.length>0&&e.jsx("div",{className:"agent-import-result-errors",children:S.skills.errors.map((c,y)=>e.jsxs("div",{className:"agent-import-result-error",children:[e.jsx(Aa,{size:12}),e.jsxs("span",{children:[c.name,": ",c.error]})]},y))})]})]})]}),e.jsxs("div",{className:"agent-dialog-footer",children:[v==="preview"&&e.jsx("button",{className:"btn",onClick:()=>h("input"),disabled:oe,children:i("agents.back","Back")}),e.jsx("button",{className:"btn",onClick:Fe,disabled:oe,children:v==="result"?i("agents.close","Close"):i("agents.cancel","Cancel")}),v==="input"&&e.jsx("button",{className:"btn btn-task-create",onClick:()=>void le(),disabled:je||(r==="directory"?A.length===0:r==="browse"?!J:!N.trim()),children:je?e.jsxs(e.Fragment,{children:[e.jsx(zt,{size:14,className:"spin"}),i("agents.parsing","Parsing...")]}):i("agents.preview","Preview")}),v==="preview"&&e.jsx("button",{className:"btn btn-task-create",onClick:()=>void pe(),disabled:oe||ee===0&&W===0,children:oe?e.jsxs(e.Fragment,{children:[e.jsx(zt,{size:14,className:"spin"}),We]}):i("agents.importButton","Import {{label}}",{label:Me})})]})]})}):null}const Oa=s.lazy(()=>sn(()=>import("./AgentDetailView-Bopzxiqb.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])).then(n=>({default:n.AgentDetailView})));function In(n){return[{value:"triage",label:n("agents.roleTriage","Triage"),icon:"⊕"},{value:"executor",label:n("agents.roleExecutor","Executor"),icon:"▶"},{value:"reviewer",label:n("agents.roleReviewer","Reviewer"),icon:"⊙"},{value:"merger",label:n("agents.roleMerger","Merger"),icon:"⊞"},{value:"scheduler",label:n("agents.roleScheduler","Scheduler"),icon:"◷"},{value:"engineer",label:n("agents.roleEngineer","Engineer"),icon:"⎔"},{value:"custom",label:n("agents.roleCustom","Custom"),icon:"✦"}]}const Kt=[.1,.25,.5,1,2,3,5,10],Xt="__disabled__",Ln=.25,Hn=3,Et=16,gt=32,Va=320,Ka=260,Xa=520,Ya="kb-dashboard-agents-sidebar-width";function ea(n){return Math.max(Ka,Math.min(Xa,n))}function Ba(n){if(typeof window>"u")return Va;const o=kt(Ya,n),j=o?Number(o):NaN;return Number.isFinite(j)?ea(j):Va}function ta(n){switch(n){case"running":return"agent-badge--running";case"active":return"agent-badge--active";case"paused":return"agent-badge--paused";case"error":return"agent-badge--error";case"idle":default:return"agent-badge--idle"}}function aa(n,o){switch(o){case"running":return`${n}--running`;case"active":return`${n}--active`;case"paused":return`${n}--paused`;case"error":return`${n}--error`;case"idle":default:return`${n}--idle`}}function Dn(n){const o=n.runtimeConfig??{},j=typeof o.runtimeHint=="string"?o.runtimeHint:"";if(j)return{label:j,isRuntime:!0};const b=typeof o.modelProvider=="string"?o.modelProvider:"",a=typeof o.modelId=="string"?o.modelId:"";if(b&&a)return{label:`${b}/${a}`,isRuntime:!1};const i=typeof o.model=="string"?o.model:"";if(i.includes("/")){const v=i.indexOf("/");return{label:i.slice(v+1),isRuntime:!1}}return{label:null,isRuntime:!1}}function Za(n){return n.children.length===0?1:n.children.reduce((o,j)=>o+Za(j),0)}function sa(n,o,j){return n.state==="error"?{title:void 0,label:j("agents.healthError","Error")}:{title:o.reason??o.label,label:o.stateDerived?null:o.label}}function qa({agent:n,pending:o,onToggle:j}){const{t:b}=Pe("app");if(Ie(n))return null;const a=Qe(n),i=a?b("agents.disableHeartbeat","Disable heartbeat"):b("agents.enableHeartbeat","Enable heartbeat");return e.jsx("button",{type:"button",className:"btn btn-sm agent-heartbeat-toggle",disabled:o,"aria-pressed":a,"aria-label":b("agents.heartbeatActionForAgent","{{action}} for {{name}}",{action:i,name:n.name}),onClick:v=>{v.stopPropagation(),j(n)},children:o?b("agents.heartbeatUpdating","Updating heartbeat…"):i})}function Ja({node:n,onSelect:o,onToggleHeartbeat:j,isHeartbeatPending:b,getHealthStatus:a,selectedAgentId:i,registerNodeElement:v,linksRef:h}){const{t:r}=Pe("app"),{agent:p,children:N}=n,R=a(p),A=sa(p,R,r),w=ta(p.state),B=aa("org-chart-node-card",p.state),P=Za(n),$={"--org-chart-subtree-leaves":String(P)};return e.jsxs("div",{className:`org-chart-node${N.length>0?" org-chart-node--has-children":""}`,style:$,children:[e.jsxs("div",{ref:C=>v(p.id,C),"data-agent-id":p.id,className:`org-chart-node-card ${B}${i===p.id?" agent-card--selected":""}`,onClick:()=>o(p.id),role:"button",tabIndex:0,onKeyDown:C=>{(C.key==="Enter"||C.key===" ")&&(C.key===" "&&C.preventDefault(),o(p.id))},children:[e.jsxs("div",{className:"org-chart-node__header",children:[e.jsx("span",{className:"org-chart-node__icon",children:e.jsx(Mt,{agent:p,size:20})}),e.jsx("span",{className:"org-chart-node__name",children:p.name})]}),e.jsxs("div",{className:"org-chart-node__meta",children:[e.jsx("span",{className:`org-chart-node__badge ${w}`,children:p.state}),e.jsxs("span",{className:"org-chart-node__health",style:{color:R.color},title:A.title,children:[R.icon,A.label&&e.jsx("span",{className:"text-secondary",children:A.label})]})]})]}),e.jsx("div",{className:"org-chart-node__actions",children:e.jsx(qa,{agent:p,pending:b(p.id),onToggle:j})}),N.length>0&&e.jsx("div",{className:"org-chart-children",role:"group","aria-label":r("agents.orgChartEmployees","{{name}} employees",{name:p.name}),children:N.map(C=>(h.current.push({parentId:p.id,childId:C.agent.id}),e.jsx(Ja,{node:C,onSelect:o,onToggleHeartbeat:j,isHeartbeatPending:b,getHealthStatus:a,selectedAgentId:i,registerNodeElement:v,linksRef:h},C.agent.id)))})]})}function Fn({links:n,nodeElements:o,canvasRef:j,viewportRef:b,layoutMode:a,transform:i}){const[v,h]=s.useState([]);return s.useLayoutEffect(()=>{const r=j.current,p=b.current;if(!r||!p||n.length===0){h([]);return}const N=()=>{const A=r.getBoundingClientRect(),w=n.flatMap(({parentId:B,childId:P})=>{const $=o.get(B),C=o.get(P);if(!$||!C)return[];const M=$.getBoundingClientRect(),G=C.getBoundingClientRect(),T=(M.left-A.left)/i.scale,E=(M.top-A.top)/i.scale,_=(G.left-A.left)/i.scale,z=(G.top-A.top)/i.scale;if(a==="vertical"){const ue=T,me=E+M.height/i.scale/2,O=_,S=z+G.height/i.scale/2,V=ue-(ue-O)/2;return[`M ${ue} ${me} L ${V} ${me} L ${V} ${S} L ${O} ${S}`]}const Z=T+M.width/i.scale/2,H=E+M.height/i.scale,je=_+G.width/i.scale/2,se=z,oe=H+(se-H)/2;return[`M ${Z} ${H} L ${Z} ${oe} L ${je} ${oe} L ${je} ${se}`]});h(w)};N();const R=new ResizeObserver(N);return R.observe(r),R.observe(p),o.forEach(A=>R.observe(A)),()=>R.disconnect()},[j,a,n,o,i.scale,b]),e.jsx("svg",{className:"agent-org-chart-connectors","aria-hidden":"true",children:v.map((r,p)=>e.jsx("path",{d:r},`${p}-${r}`))})}function qn({addToast:n,projectId:o,onOpenTaskLogs:j,agentOnboardingEnabled:b=!1}){const{t:a}=Pe("app"),i=In(a),[v,h]=s.useState(!1),r=s.useRef(new Map),p=s.useRef(new Map),N=s.useRef(new Map),[R,A]=s.useState(new Set),w=s.useRef(null);s.useEffect(()=>{if(typeof IntersectionObserver>"u")return;const t=new IntersectionObserver(l=>{A(u=>{let g=!1;const x=new Set(u);for(const f of l){const L=p.current.get(f.target);L&&(f.isIntersecting?x.has(L)||(x.add(L),g=!0):x.has(L)&&(x.delete(L),g=!0))}return g?x:u})},{rootMargin:"200px"});return w.current=t,r.current.forEach(l=>t.observe(l)),()=>{t.disconnect(),w.current=null}},[]);const B=s.useCallback(t=>{const l=N.current.get(t);if(l)return l;const u=g=>{const x=r.current.get(t);x&&(w.current?.unobserve(x),p.current.delete(x)),g?(r.current.set(t,g),p.current.set(g,t),w.current?w.current.observe(g):A(f=>f.has(t)?f:new Set(f).add(t))):(r.current.delete(t),N.current.delete(t),A(f=>{if(!f.has(t))return f;const L=new Set(f);return L.delete(t),L}))};return N.current.set(t,u),u},[]),P=s.useCallback(t=>typeof IntersectionObserver>"u"?!0:R.has(t),[R]),C=Vs()==="mobile",[M,G]=s.useState(()=>Ba(o)),[T,E]=s.useState("all"),{agents:_,stats:z,isLoading:Z,loadAgents:H,refreshAgents:je}=Bs(o,{filterState:T,showSystemAgents:v}),[se,oe]=s.useState(!1),[ue,me]=s.useState(null),[O,S]=s.useState(!1),[V,ce]=s.useState(null),[Ne,Le]=s.useState(null),Be=C&&!!V,[Re,Ce]=s.useState("dashboard"),[ne,He]=s.useState(null),[J,he]=s.useState(!1),[U,ge]=s.useState(()=>{if(typeof window>"u")return"list";const t=kt("fn-agent-view",o);return t==="list"||t==="board"||t==="org"?t:"list"}),[ye,Q]=s.useState(()=>{if(typeof window>"u")return"auto";const t=kt(Bt,o);return La(t)?t:"auto"}),[Te,et]=s.useState([]),[De,Fe]=s.useState(!1),[Ue,pt]=s.useState(0),[we,le]=s.useState(!1),[pe,ee]=s.useState(!1),[W,Se]=s.useState(!1),[be,Me]=s.useState(!1),[We,$e]=s.useState(0),[ze,c]=s.useState(0),[y,D]=s.useState(0),[K,te]=s.useState(0),[I,Y]=s.useState({scale:1,x:0,y:0}),[Ge,Ct]=s.useState(!1),tt=s.useRef(null),Ae=s.useRef(null),at=s.useRef(null),st=s.useRef(new Map),Oe=s.useRef([]),de=s.useRef(new Map),Ee=s.useRef(null),nt=s.useRef(null),d=s.useRef(!1),{confirm:k}=Us(),xe=s.useRef(null),It=s.useId();s.useEffect(()=>{G(Ba(o))},[o]),s.useEffect(()=>{const t=kt("fn-agent-view",o);if(t==="list"||t==="board"||t==="org"){ge(t);return}ge("list")},[o]),s.useEffect(()=>{Ot("fn-agent-view",U,o)},[U,o]),s.useEffect(()=>{const t=kt(Bt,o);Q(La(t)?t:"auto")},[o]),s.useEffect(()=>{Ot(Bt,ye,o)},[ye,o]);const Ke=s.useCallback(t=>{try{Ot(Ya,String(t),o)}catch{}},[o]),Qa=s.useCallback(t=>{if(C)return;t.preventDefault(),t.stopPropagation();const l=t.currentTarget;typeof l.setPointerCapture=="function"&&l.setPointerCapture(t.pointerId);const u=t.clientX,g=M;let x=g;document.body.style.userSelect="none";const f=X=>{const re=X.clientX-u,q=ea(g+re);x=q,G(q)},L=X=>{typeof l.releasePointerCapture=="function"&&l.releasePointerCapture(X.pointerId),document.body.style.userSelect="",document.removeEventListener("pointermove",f),document.removeEventListener("pointerup",L),Ke(x)};document.addEventListener("pointermove",f),document.addEventListener("pointerup",L)},[C,Ke,M]),es=s.useCallback(t=>{if(C||t.key!=="ArrowLeft"&&t.key!=="ArrowRight")return;t.preventDefault();const l=t.shiftKey?50:10,u=t.key==="ArrowLeft"?-l:l,g=ea(M+u);G(g),Ke(g)},[C,Ke,M]),[ts,lt]=s.useState(null),as=s.useRef(null),[ss,rt]=s.useState(null),[Ve,la]=s.useState(new Set),[_e,ra]=s.useState(!1),[ia,it]=s.useState(null),[oa,Xe]=s.useState({}),[bt,ca]=s.useState(1),[da,ua]=s.useState(!1),[Ye,ga]=s.useState(new Set),[Lt,ot]=s.useState(new Map),wt=s.useRef(!0);s.useEffect(()=>(wt.current=!0,()=>{wt.current=!1}),[]),s.useEffect(()=>{Ws(o).then(t=>{wt.current&&ca(t.heartbeatMultiplier??1)}).catch(()=>{})},[o]);const ma=s.useCallback(async t=>{const l=Number.isFinite(t)&&t>0?t:1;ca(l),ua(!0);try{await Gs({heartbeatMultiplier:l},o),n(a("agents.heartbeatSpeedSet","Heartbeat speed set to ×{{value}}",{value:l.toFixed(1)}),"success")}catch(u){n(a("agents.heartbeatSpeedSaveFailed","Failed to save heartbeat multiplier: {{error}}",{error:ie(u)}),"error")}finally{wt.current&&ua(!1)}},[o,n]),St=s.useMemo(()=>Lt.size===0?_:_.map(t=>{const l=Lt.get(t.id);return l?{...t,state:l}:t}),[_,Lt]),xt=s.useMemo(()=>St.filter(t=>v||!Ie(t)),[St,v]),ns=s.useMemo(()=>St.filter(t=>t.state!=="active"&&t.state!=="running"?!1:v||!Ie(t)),[St,v]),Ze=s.useMemo(()=>{if(v)return Te;const t=l=>Ie(l.agent)?null:{...l,children:l.children.map(t).filter(u=>u!==null)};return Te.map(t).filter(l=>l!==null)},[Te,v]);s.useEffect(()=>{if(U!=="org")return;const t=Ae.current;if(!t)return;const l=()=>{pt(t.clientWidth)};l();const u=typeof ResizeObserver<"u"?new ResizeObserver(l):null;return u?.observe(t),window.addEventListener("resize",l),()=>{u?.disconnect(),window.removeEventListener("resize",l)}},[U,Ze.length]),s.useEffect(()=>{if(U!=="org")return;let t=!1;return Fe(!0),Ks(o,{includeEphemeral:v}).then(l=>{t||et(l)}).catch(l=>{t||(n(a("agents.orgChartLoadFailed","Failed to load org chart: {{error}}",{error:ie(l)}),"error"),et([]))}).finally(()=>{t||Fe(!1)}),()=>{t=!0}},[U,o,v,n]),s.useEffect(()=>{const t=setInterval(()=>{H()},3e4);return()=>{clearInterval(t)}},[H]),s.useEffect(()=>{if(!we)return;let t=!1;Me(!0),Pt(void 0,o).then(g=>{if(t)return;const x=g.filter(f=>!Ie(f));$e(x.filter(f=>f.state==="active"||f.state==="running").length),c(x.filter(f=>f.state==="paused").length),D(x.filter(f=>!Qe(f)).length),te(x.filter(f=>Qe(f)).length)}).catch(g=>{t||($e(0),c(0),D(0),te(0),n(a("agents.bulkActionsLoadFailed","Failed to load bulk agent actions: {{error}}",{error:ie(g)}),"error"))}).finally(()=>{t||Me(!1)});const l=g=>{const x=g.target;x&&(tt.current?.contains(x)||xe.current?.contains(x)||le(!1))},u=g=>{g.key==="Escape"&&(le(!1),xe.current?.focus())};return document.addEventListener("mousedown",l),document.addEventListener("touchstart",l),document.addEventListener("keydown",u),()=>{t=!0,document.removeEventListener("mousedown",l),document.removeEventListener("touchstart",l),document.removeEventListener("keydown",u)}},[n,we,o]);const ha=async t=>{if(!W){Se(!0);try{const u=(await Pt(void 0,o)).filter(m=>!Ie(m)),g=u.filter(m=>t==="paused"?m.state==="active"||m.state==="running":m.state==="paused"),x=u.length-g.length;if(g.length===0){n(t==="paused"?a("agents.noAgentsToPause","No agents eligible to pause"):a("agents.noAgentsToResume","No agents eligible to resume"),"error");return}if(!await k({title:t==="paused"?a("agents.pauseAllTitle","Pause All Agents"):a("agents.resumeAllTitle","Resume All Agents"),message:t==="paused"?a("agents.pauseAllConfirm",{count:g.length,defaultValue_one:"Pause {{count}} agent in this project?",defaultValue_other:"Pause {{count}} agents in this project?"}):a("agents.resumeAllConfirm",{count:g.length,defaultValue_one:"Resume {{count}} agent in this project?",defaultValue_other:"Resume {{count}} agents in this project?"}),danger:t==="paused"}))return;const L=await Promise.allSettled(g.map(m=>_a(m.id,t,o))),X=L.map((m,F)=>({result:m,agent:g[F]})).filter(m=>m.result.status==="rejected"),re=L.length-X.length,q=X.length,ve=t==="paused"?a("agents.pausedSummary",{count:re,skipped:x,defaultValue_one:"Paused {{count}} agent; skipped {{skipped}}",defaultValue_other:"Paused {{count}} agents; skipped {{skipped}}"}):a("agents.resumedSummary",{count:re,skipped:x,defaultValue_one:"Resumed {{count}} agent; skipped {{skipped}}",defaultValue_other:"Resumed {{count}} agents; skipped {{skipped}}"});if(q>0){const m=X.slice(0,3).map(({agent:F,result:ke})=>`${F.name||F.id}: ${ie(ke.reason)}`).join("; ");n(`${ve}; failed ${q}${m?` (${m})`:""}`,"error")}else n(ve,"success");await H()}catch(l){n(t==="paused"?a("agents.pauseAgentsFailed","Failed to pause agents: {{error}}",{error:ie(l)}):a("agents.resumeAgentsFailed","Failed to resume agents: {{error}}",{error:ie(l)}),"error")}finally{Se(!1)}}},pa=async t=>{if(!(_e||W||Ve.size>0)){ra(!0);try{const l=await Pt(void 0,o),g=l.filter(m=>!Ie(m)).filter(m=>Qe(m)!==t),x=l.length-g.length;if(g.length===0){n(t?a("agents.noHeartbeatsToEnable","No agent heartbeats need enabling"):a("agents.noHeartbeatsToDisable","No agent heartbeats need disabling"),"error");return}if(!await k({title:t?a("agents.enableAllHeartbeats","Enable all heartbeats"):a("agents.disableAllHeartbeats","Disable all heartbeats"),message:t?a("agents.enableAllHeartbeatsConfirm","Enable heartbeats for {{count}} project agents?",{count:g.length}):a("agents.disableAllHeartbeatsConfirm","Disable heartbeats for {{count}} project agents?",{count:g.length}),danger:!t}))return;const L=await Promise.allSettled(g.map(m=>dt(m.id,{runtimeConfig:yt(m,t)},o))),X=L.map((m,F)=>({result:m,agent:g[F]})).filter(m=>m.result.status==="rejected"),re=L.length-X.length,q=t?a("agents.enableHeartbeatsSummary","Enabled {{count}} heartbeats; skipped {{skipped}}",{count:re,skipped:x}):a("agents.disableHeartbeatsSummary","Disabled {{count}} heartbeats; skipped {{skipped}}",{count:re,skipped:x}),ve=X.slice(0,3).map(({agent:m,result:F})=>`${m.name||m.id}: ${ie(F.reason)}`).join("; ");n(X.length?`${q}; ${a("agents.bulkFailures","failed {{count}}",{count:X.length})}${ve?` (${ve})`:""}`:q,X.length?"error":"success"),await H()}catch(l){n(a("agents.heartbeatUpdateFailed","Failed to update heartbeat: {{error}}",{error:ie(l)}),"error")}finally{ra(!1)}}},ft=async(t,l)=>{if(!Ye.has(t)){ga(u=>new Set(u).add(t)),ot(u=>{const g=new Map(u);return g.set(t,l),g});try{await _a(t,l,o),n(a("agents.stateUpdated","Agent state updated to {{state}}",{state:l}),"success"),await H(),ot(u=>{const g=new Map(u);return g.delete(t),g})}catch(u){ot(g=>{const x=new Map(g);return x.delete(t),x}),n(a("agents.stateUpdateFailed","Failed to update state: {{error}}",{error:ie(u)}),"error")}finally{ga(u=>{const g=new Set(u);return g.delete(t),g})}}},ba=async(t,l)=>{if(await k({title:a("agents.deleteTitle","Delete Agent"),message:a("agents.deleteConfirm",'Delete agent "{{name}}"? This cannot be undone.',{name:l}),danger:!0}))try{await ln(t,o),n(a("agents.deleted",'Agent "{{name}}" deleted',{name:l}),"success"),await H()}catch(g){n(a("agents.deleteFailed","Failed to delete agent: {{error}}",{error:ie(g)}),"error")}},ls=async(t,l)=>{const u=_.find(g=>g.id===t);if(u){if(u.role===l){lt(null);return}try{await dt(t,{role:l},o),n(a("agents.roleUpdated","Agent role updated to {{role}}",{role:i.find(g=>g.value===l)?.label??l}),"success"),lt(null),H()}catch(g){n(a("agents.roleUpdateFailed","Failed to update role: {{error}}",{error:ie(g)}),"error")}}},rs=(t,l)=>{t.key==="Escape"&<(null)},is=async(t,l)=>{if(!(_e||Ve.has(t.id))){ia===t.id&&(it(null),Xe(u=>{const g={...u};return delete g[t.id],g})),rt(t.id);try{await dt(t.id,{runtimeConfig:{...yt(t,!0),heartbeatIntervalMs:l}},o),n(a("agents.heartbeatIntervalUpdated","Heartbeat interval updated to {{interval}} for {{name}}",{interval:Pa(l),name:t.name}),"success"),H()}catch(u){n(a("agents.heartbeatIntervalUpdateFailed","Failed to update heartbeat interval: {{error}}",{error:ie(u)}),"error")}finally{rt(null)}}},Ht=async(t,l)=>{if(!(Ie(t)||_e||Ve.has(t.id))){la(u=>new Set(u).add(t.id));try{await dt(t.id,{runtimeConfig:yt(t,l)},o),n(l?a("agents.heartbeatEnabledForAgent","Heartbeat enabled for {{name}}",{name:t.name}):a("agents.heartbeatDisabled","Heartbeat disabled for {{name}}",{name:t.name}),"success"),await H()}catch(u){n(a("agents.heartbeatUpdateFailed","Failed to update heartbeat: {{error}}",{error:ie(u)}),"error")}finally{la(u=>{const g=new Set(u);return g.delete(t.id),g})}}},os=t=>Ht(t,!1),xa=async t=>{if(_e||Ve.has(t.id))return;const l=oa[t.id]??"";if(l.trim()===""){n(a("agents.heartbeatEnterMinutes","Please enter a heartbeat interval in minutes"),"error");return}const u=Number(l);if(isNaN(u)){n(a("agents.heartbeatMustBeNumber","Heartbeat interval must be a valid number"),"error");return}if(u<=0){n(a("agents.heartbeatMustBePositive","Heartbeat interval must be greater than 0"),"error");return}if(u>=1&&u<5){rt(t.id);try{await dt(t.id,{runtimeConfig:{...yt(t,!0),heartbeatIntervalMs:rn}},o),n(a("agents.heartbeatClampedToMin",{count:u,defaultValue_one:"Heartbeat interval set to 5 minutes (minimum). {{count}} minute was below the 5-minute minimum.",defaultValue_other:"Heartbeat interval set to 5 minutes (minimum). {{count}} minutes was below the 5-minute minimum."}),"success"),it(null),Xe(x=>{const f={...x};return delete f[t.id],f}),H()}catch(x){n(a("agents.heartbeatIntervalUpdateFailed","Failed to update heartbeat interval: {{error}}",{error:ie(x)}),"error")}finally{rt(null)}return}const g=Math.round(u*6e4);rt(t.id);try{await dt(t.id,{runtimeConfig:{...yt(t,!0),heartbeatIntervalMs:g}},o),n(a("agents.heartbeatIntervalUpdated","Heartbeat interval updated to {{interval}} for {{name}}",{interval:Pa(g),name:t.name}),"success"),it(null),Xe(x=>{const f={...x};return delete f[t.id],f}),H()}catch(x){n(a("agents.heartbeatIntervalUpdateFailed","Failed to update heartbeat interval: {{error}}",{error:ie(x)}),"error")}finally{rt(null)}},cs=t=>{if(_e||Ve.has(t.id))return;const l=Yt(t.runtimeConfig?.heartbeatIntervalMs),u=Math.round(l/6e4);it(t.id),Xe(g=>({...g,[t.id]:String(u)}))},fe=s.useCallback((t,l)=>{ce(t),Ce(l?.initialTab??"dashboard"),He(l?.initialRunId??null),he(l?.preferActiveRun??!1)},[]),qe=s.useCallback(()=>{ce(null),Ce("dashboard"),He(null),he(!1)},[]),fa=s.useCallback(t=>{fe(t)},[fe]),ds=s.useCallback(t=>{Le(t),fe(t)},[fe]),us=s.useCallback(async({agentId:t,deleted:l})=>{await je(),l&&V===t&&qe()},[je,V,qe]),gs=s.useCallback(t=>{fe(t),C&&ee(!1)},[C,fe]),ms=async(t,l)=>{ot(u=>{const g=new Map(u);return g.set(t,"running"),g});try{await on(t,o,{source:"on_demand",triggerDetail:"Triggered from dashboard"}),n(a("agents.heartbeatRunStarted","Heartbeat run started for {{name}}",{name:l}),"success"),await H(),ot(u=>{const g=new Map(u);return g.delete(t),g})}catch(u){ot(g=>{const x=new Map(g);return x.delete(t),x}),n(a("agents.heartbeatRunFailed","Failed to start heartbeat run: {{error}}",{error:ie(u)}),"error")}},Je=s.useCallback(t=>Math.min(Hn,Math.max(Ln,t)),[]),ae=s.useCallback(t=>{const l=Ae.current,u=at.current?.querySelector(".agent-org-chart");if(!l||!u)return{...t,scale:Je(t.scale)};const g=Je(t.scale),x=u.scrollWidth*g,f=u.scrollHeight*g,L=l.clientWidth,X=l.clientHeight,re=Math.min(gt,L-x-gt),q=gt,ve=Math.min(gt,X-f-gt),m=gt;return{scale:g,x:Math.max(re,Math.min(q,t.x)),y:Math.max(ve,Math.min(m,t.y))}},[Je]),At=s.useCallback((t,l,u)=>{const g=Ae.current;g&&Y(x=>{const f=Je(t),L=g.getBoundingClientRect(),X=l-L.left,re=u-L.top,q=(X-x.x)/x.scale,ve=(re-x.y)/x.scale;return ae({scale:f,x:X-q*f,y:re-ve*f})})},[Je,ae]),ct=s.useCallback(()=>{const t=Ae.current,l=at.current?.querySelector(".agent-org-chart");if(!t||!l)return;const u=t.clientWidth,g=t.clientHeight,x=l.scrollWidth,f=l.scrollHeight;if(x<=0||f<=0)return;const L=Je(Math.min(u/x,g/f,1)),X=(u-x*L)/2,re=(g-f*L)/2;Y(ae({scale:L,x:X,y:re}))},[Je,ae]),Dt=s.useCallback(t=>{ge(t),t!=="org"&&Y({scale:1,x:0,y:0}),C&&V&&qe()},[qe,C,V]),va=t=>i.find(l=>l.value===t)?.label??t,Rt=s.useMemo(()=>bn({tree:Ze,availableWidth:Ue,preference:ye}),[Ze,ye,Ue]),ja=s.useCallback(t=>{Q(t),Y({scale:1,x:0,y:0})},[]);s.useEffect(()=>{Y({scale:1,x:0,y:0}),d.current=!1},[o,Rt]),s.useLayoutEffect(()=>{U!=="org"||De||Ze.length===0||d.current||(ct(),d.current=!0)},[U,Ze.length,ct,De]);const hs=s.useCallback((t,l)=>{l?st.current.set(t,l):st.current.delete(t)},[]),Na=s.useCallback(()=>e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"btn-icon touch-target",onClick:()=>Y(t=>ae({...t,scale:t.scale*.9})),"aria-label":a("agents.orgChartZoomOut","Zoom out org chart"),title:a("agents.zoomOut","Zoom out"),children:e.jsx(Nn,{size:16})}),e.jsxs("span",{className:"agent-org-chart-controls__zoom-label","aria-live":"polite",children:[Math.round(I.scale*100),"%"]}),e.jsx("button",{type:"button",className:"btn-icon touch-target",onClick:()=>Y(t=>ae({...t,scale:t.scale*1.1})),"aria-label":a("agents.orgChartZoomIn","Zoom in org chart"),title:a("agents.zoomIn","Zoom in"),children:e.jsx(vn,{size:16})}),e.jsxs("button",{type:"button",className:"btn touch-target btn-sm agent-org-chart-controls__fit-btn",onClick:ct,"aria-label":a("agents.orgChartFit","Fit org chart"),title:a("agents.orgChartFit","Fit org chart"),children:[e.jsx(Xs,{size:16}),a("agents.fit","Fit")]}),e.jsxs("button",{type:"button",className:"btn touch-target btn-sm",onClick:()=>Y(t=>ae({...t,x:0,y:0})),"aria-label":a("agents.orgChartCenter","Center org chart"),title:a("agents.orgChartCenter","Center org chart"),children:[e.jsx(Ys,{size:16}),a("agents.center","Center")]})]}),[ae,ct,I.scale]),ps=s.useCallback(t=>{if(!(t.ctrlKey||t.metaKey))return;t.preventDefault();const l=t.deltaY>0?.9:1.1;At(I.scale*l,t.clientX,t.clientY)},[I.scale,At]),bs=s.useCallback(t=>{if(t.target.closest(".org-chart-node-card"))return;if(t.currentTarget.setPointerCapture?.(t.pointerId),de.current.set(t.pointerId,{x:t.clientX,y:t.clientY}),de.current.size===1){Ee.current={x:t.clientX-I.x,y:t.clientY-I.y,pointerId:t.pointerId},Ct(!0);return}if(de.current.size===2){const u=Array.from(de.current.values()),g=u[0].x-u[1].x,x=u[0].y-u[1].y;nt.current={distance:Math.hypot(g,x),scale:I.scale,centerX:(u[0].x+u[1].x)/2,centerY:(u[0].y+u[1].y)/2},Ee.current=null}},[I.scale,I.x,I.y]),xs=s.useCallback(t=>{if(de.current.has(t.pointerId)){if(de.current.set(t.pointerId,{x:t.clientX,y:t.clientY}),de.current.size>=2){const l=Array.from(de.current.values()),u=nt.current;if(!u)return;const g=l[0].x-l[1].x,x=l[0].y-l[1].y,f=Math.hypot(g,x),L=u.scale*(f/u.distance);At(L,u.centerX,u.centerY);return}!Ee.current||Ee.current.pointerId!==t.pointerId||Y(l=>ae({...l,x:t.clientX-Ee.current.x,y:t.clientY-Ee.current.y}))}},[ae,At]),ya=s.useCallback(t=>{de.current.delete(t.pointerId),de.current.size<2&&(nt.current=null),de.current.size===0&&(Ee.current=null,Ct(!1))},[]),fs=s.useCallback(t=>{if(t.key==="ArrowLeft")Y(l=>ae({...l,x:l.x+Et}));else if(t.key==="ArrowRight")Y(l=>ae({...l,x:l.x-Et}));else if(t.key==="ArrowUp")Y(l=>ae({...l,y:l.y+Et}));else if(t.key==="ArrowDown")Y(l=>ae({...l,y:l.y-Et}));else if(t.key==="+"||t.key==="=")Y(l=>ae({...l,scale:l.scale*1.1}));else if(t.key==="-")Y(l=>ae({...l,scale:l.scale*.9}));else if(t.key==="0")ct();else if(t.key==="Home")Y({scale:1,x:0,y:0});else return;t.preventDefault()},[ae,ct]),ka=s.useCallback(()=>{const t=[{value:"horizontal",label:a("agents.layoutHorizontal","Horizontal"),icon:e.jsx(Ha,{size:16}),ariaLabel:a("agents.layoutHorizontalAria","Horizontal layout")},{value:"vertical",label:a("agents.layoutVertical","Vertical"),icon:e.jsx(Ra,{size:16}),ariaLabel:a("agents.layoutVerticalAria","Vertical layout")},{value:"auto",label:a("agents.layoutAuto","Auto"),icon:e.jsx(mt,{size:16}),ariaLabel:a("agents.layoutAutoAria","Automatic layout")}];return e.jsx("div",{className:"agent-org-chart-layout-toggle","data-testid":"agent-org-chart-layout-toggle",children:t.map(l=>{const u=ye===l.value;return e.jsxs("button",{type:"button",className:`btn-icon touch-target agent-org-chart-layout-toggle__button${u?" btn-icon--active":""}`,onClick:()=>ja(l.value),"aria-pressed":u,"aria-label":l.ariaLabel,title:l.ariaLabel,"data-layout-value":l.value,children:[l.icon,e.jsx("span",{className:"agent-org-chart-layout-toggle__text",children:l.label})]},l.value)})})},[ja,ye]),vs=t=>Array.isArray(t.metadata?.skills)?t.metadata.skills:[],Ft=t=>nn(t,bt),js=be||W||We===0,Ns=be||W||ze===0,ys=be||W||_e||y===0,ks=be||W||_e||K===0,Ca=Z&&_.length===0,vt=s.useCallback(()=>{oe(!0)},[]);return e.jsxs("div",{className:"agents-view",children:[e.jsx(Zs,{icon:Jt,title:a("agents.title","Agents"),actions:e.jsxs("div",{className:"agents-view-controls",children:[e.jsxs("div",{className:"view-toggle",children:[e.jsx("button",{className:`view-toggle-btn${U==="list"?" active":""}`,onClick:()=>Dt("list"),title:a("agents.listView","List view"),"aria-label":a("agents.listView","List view"),"aria-pressed":U==="list",children:e.jsx(Ra,{size:16})}),e.jsx("button",{className:`view-toggle-btn${U==="board"?" active":""}`,onClick:()=>Dt("board"),title:a("agents.boardView","Board view"),"aria-label":a("agents.boardView","Board view"),"aria-pressed":U==="board",children:e.jsx(ht,{size:16})}),e.jsx("button",{className:`view-toggle-btn${U==="org"?" active":""}`,onClick:()=>Dt("org"),title:a("agents.orgChartView","Org Chart view"),"aria-label":a("agents.orgChartView","Org Chart view"),"aria-pressed":U==="org",children:e.jsx(Ha,{size:16})})]}),e.jsxs("div",{className:`agents-view-primary-actions${we?" agents-view-primary-actions--controls-open":""}`,children:[e.jsx("button",{ref:xe,className:`btn-icon agent-controls-trigger${we?" agent-controls-trigger--active":""}`,onClick:()=>le(t=>!t),title:a("agents.controls","Controls"),"aria-label":a("agents.controls","Controls"),"aria-haspopup":"dialog","aria-expanded":we,"aria-controls":It,children:e.jsx(qs,{size:16})}),e.jsx("button",{className:"btn-icon",onClick:()=>void H(),title:a("agents.refresh","Refresh"),"aria-label":a("agents.refresh","Refresh"),children:e.jsx(mt,{size:16,className:Z?"spin":void 0})}),!C&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{className:"btn btn-sm agent-import-trigger",onClick:()=>{S(!0),le(!1)},"aria-label":a("agents.import","Import"),title:a("agents.import","Import"),children:[e.jsx(Qt,{size:16}),a("agents.import","Import")]}),e.jsxs("button",{className:"btn btn-task-create btn-sm",onClick:()=>{vt(),le(!1)},"aria-label":a("agents.newAgent","New Agent"),title:a("agents.newAgent","New Agent"),children:[e.jsx(Ta,{size:16}),a("agents.newAgent","New Agent")]})]}),we&&e.jsxs("div",{ref:tt,id:It,className:"agent-controls-panel agent-controls-panel--scrollable",role:"dialog","aria-label":a("agents.agentControls","Agent controls"),"aria-modal":"false",children:[e.jsx("div",{className:"agent-controls",children:e.jsxs("div",{className:"agent-controls-filters",children:[e.jsxs("div",{className:"agent-state-filter",children:[e.jsx(Js,{size:14}),e.jsxs("select",{className:"agent-state-filter-select",value:T,onChange:t=>E(t.target.value),"aria-label":a("agents.filterByState","Filter agents by state"),children:[e.jsx("option",{value:"all",children:a("agents.stateAll","All States")}),e.jsx("option",{value:"idle",children:a("agents.stateIdle","Idle")}),e.jsx("option",{value:"active",children:a("agents.stateActive","Active")}),e.jsx("option",{value:"running",children:a("agents.stateRunning","Running")}),e.jsx("option",{value:"paused",children:a("agents.statePaused","Paused")}),e.jsx("option",{value:"error",children:a("agents.stateError","Error")})]})]}),e.jsxs("label",{className:"checkbox-label agent-system-filter",children:[e.jsx("input",{type:"checkbox",checked:v,onChange:t=>h(t.target.checked),"aria-label":a("agents.showSystemAgents","Show system agents")}),a("agents.showSystemAgents","Show system agents")]})]})}),C&&e.jsxs("div",{className:"agent-controls-mobile-actions",children:[e.jsxs("button",{className:"btn btn-sm agent-import-trigger",onClick:()=>{S(!0),le(!1)},"aria-label":a("agents.import","Import"),title:a("agents.import","Import"),children:[e.jsx(Qt,{size:16}),a("agents.import","Import")]}),e.jsxs("button",{className:"btn btn-task-create btn-sm",onClick:()=>{vt(),le(!1)},"aria-label":a("agents.newAgent","New Agent"),title:a("agents.newAgent","New Agent"),children:[e.jsx(Ta,{size:16}),a("agents.newAgent","New Agent")]})]}),e.jsxs("div",{className:"agent-controls-bulk-actions",role:"menu","aria-label":a("agents.bulkAgentActions","Bulk agent actions"),children:[e.jsxs("button",{type:"button",className:"agent-detail-bulk-menu-item",role:"menuitem",disabled:js,onClick:()=>{le(!1),ha("paused")},children:[e.jsxs("span",{className:"agent-controls-bulk-actions__label",children:[e.jsx(Tt,{}),e.jsx("span",{children:a("agents.pauseAllAgents","Pause All Agents")})]}),e.jsx("span",{className:"agent-detail-bulk-menu-item-hint",children:be?a("agents.loadingEligibility","Loading eligibility…"):We===0?a("agents.noAgentsToPauseHint","No active or running project agents to pause"):a("agents.pauseCountHint",{count:We,defaultValue_one:"Pause {{count}} active/running agent",defaultValue_other:"Pause {{count}} active/running agents"})})]}),e.jsxs("button",{type:"button",className:"agent-detail-bulk-menu-item",role:"menuitem",disabled:ys,onClick:()=>{le(!1),pa(!0)},children:[e.jsxs("span",{className:"agent-controls-bulk-actions__label",children:[e.jsx(Nt,{}),e.jsx("span",{children:a("agents.enableAllHeartbeats","Enable all heartbeats")})]}),e.jsx("span",{className:"agent-detail-bulk-menu-item-hint",children:a("agents.enableHeartbeatsCountHint","Enable {{count}} disabled project heartbeats",{count:y})})]}),e.jsxs("button",{type:"button",className:"agent-detail-bulk-menu-item",role:"menuitem",disabled:ks,onClick:()=>{le(!1),pa(!1)},children:[e.jsxs("span",{className:"agent-controls-bulk-actions__label",children:[e.jsx(Tt,{}),e.jsx("span",{children:a("agents.disableAllHeartbeats","Disable all heartbeats")})]}),e.jsx("span",{className:"agent-detail-bulk-menu-item-hint",children:a("agents.disableHeartbeatsCountHint","Disable {{count}} enabled project heartbeats",{count:K})})]}),e.jsxs("button",{type:"button",className:"agent-detail-bulk-menu-item",role:"menuitem",disabled:Ns,onClick:()=>{le(!1),ha("active")},children:[e.jsxs("span",{className:"agent-controls-bulk-actions__label",children:[e.jsx(Nt,{}),e.jsx("span",{children:a("agents.resumeAllAgents","Resume All Agents")})]}),e.jsx("span",{className:"agent-detail-bulk-menu-item-hint",children:be?a("agents.loadingEligibility","Loading eligibility…"):ze===0?a("agents.noAgentsToResumeHint","No paused project agents to resume"):a("agents.resumeCountHint",{count:ze,defaultValue_one:"Resume {{count}} paused agent",defaultValue_other:"Resume {{count}} paused agents"})})]})]}),e.jsx("div",{className:"agent-global-controls agent-controls-actions",children:e.jsxs("div",{className:"heartbeat-multiplier-group",children:[e.jsxs("div",{className:"heartbeat-multiplier-controls",children:[e.jsx("label",{htmlFor:"globalHeartbeatMultiplier",className:"heartbeat-multiplier-label",children:a("agents.heartbeatSpeed","Heartbeat Speed")}),e.jsx("input",{id:"globalHeartbeatMultiplier",className:"heartbeat-multiplier-slider touch-target",type:"range",min:.1,max:10,step:.1,value:bt,onChange:t=>{const l=Number(t.target.value);ma(Number.isFinite(l)&&l>0?l:1)},disabled:da}),e.jsxs("span",{className:"heartbeat-multiplier-value",children:["×",bt.toFixed(1)]}),e.jsx("select",{className:"heartbeat-multiplier-preset",value:String(Kt.reduce((t,l)=>Math.abs(l-bt)<Math.abs(t-bt)?l:t,Kt[0])),onChange:t=>{const l=Number(t.target.value);ma(Number.isFinite(l)&&l>0?l:1)},disabled:da,"aria-label":a("agents.heartbeatSpeedPreset","Heartbeat speed preset"),children:Kt.map(t=>e.jsxs("option",{value:String(t),children:["×",t]},t))})]}),e.jsx("small",{className:"text-secondary",children:a("agents.heartbeatSpeedHint","Scales all agent heartbeat intervals. ×0.5 = twice as fast, ×2.0 = twice as slow. Default: ×1.0")})]})}),e.jsx(yn,{agents:xt})]})]})]})}),e.jsx(_n,{isOpen:se,onClose:()=>{oe(!1),me(null)},onCreated:()=>{oe(!1),me(null),H()},projectId:o,prefillDraft:ue,agentOnboardingEnabled:b,existingAgents:_,onPrefillDraft:me}),e.jsx(Mn,{isOpen:O,onClose:()=>S(!1),onImported:()=>void H(),projectId:o}),e.jsx(Tn,{stats:z,activeAgents:ns,projectId:o,isOpen:pe,onToggle:()=>ee(t=>!t),onSelectAgent:gs,onOpenTaskLogs:j}),U==="org"?e.jsx("div",{className:"agents-org-full-view",children:e.jsx("div",{className:"agents-view-content agents-view-content--org-full",children:V?e.jsxs("div",{className:"agents-org-detail-view","data-testid":"agents-org-detail-view",children:[e.jsx("button",{type:"button",className:"btn btn-sm agents-org-detail-back",onClick:qe,"aria-label":a("agents.backToOrgChart","Back to org chart"),children:a("agents.backToOrgChart","Back to org chart")}),e.jsx(s.Suspense,{fallback:null,children:e.jsx(Oa,{inline:!0,showInlineBackButton:!1,agentId:V,projectId:o,onClose:qe,addToast:n,onChildClick:fa,initialTab:Re,initialRunId:ne,preferActiveRun:J},V)})]}):Ca?e.jsxs("div",{className:"agents-view-loading",role:"status","aria-live":"polite",children:[e.jsx(mt,{size:18,className:"spin"}),e.jsx("span",{children:a("agents.loadingAgents","Loading agents...")})]}):e.jsxs("div",{className:"agent-org-chart-shell","data-testid":"agent-org-chart-shell",children:[C?e.jsxs("div",{className:"agent-org-chart-controls","data-testid":"agent-org-chart-controls",children:[ka(),Na()]}):e.jsxs("div",{className:"agent-org-chart-toolbar",children:[ka(),e.jsx("div",{className:"agent-org-chart-controls","data-testid":"agent-org-chart-controls",children:Na()})]}),e.jsx("div",{ref:Ae,className:"agent-org-chart-viewport","data-testid":"agent-org-chart-viewport",tabIndex:0,role:"region","aria-label":a("agents.orgChartCanvas","Org chart canvas"),onWheel:ps,onPointerDown:bs,onPointerMove:xs,onPointerUp:ya,onPointerCancel:ya,onKeyDown:fs,"data-panning":Ge?"true":"false",children:e.jsxs("div",{ref:at,className:`agent-org-chart-canvas agent-org-chart-canvas--zoom-${Math.round((I.scale??1)*100)}`,"data-panning":Ge?"true":"false",style:{transform:`translate(${I.x}px, ${I.y}px) scale(${I.scale})`},children:[e.jsx("div",{className:`agent-org-chart${Rt==="vertical"?" agent-org-chart--vertical":""}`,"data-testid":"agent-org-chart","data-layout-mode":Rt,children:De?e.jsxs("div",{className:"agent-org-chart__loading",role:"status","aria-live":"polite",children:[e.jsx(mt,{size:18,className:"spin"}),e.jsx("span",{children:a("agents.loadingOrgChart","Loading org chart...")})]}):Ze.length===0?e.jsx(Wt,{onCtaClick:vt}):(Oe.current=[],Ze.map(t=>e.jsx(Ja,{node:t,onSelect:ds,onToggleHeartbeat:l=>void Ht(l,!Qe(l)),isHeartbeatPending:l=>_e||Ve.has(l),getHealthStatus:Ft,selectedAgentId:Ne,registerNodeElement:hs,linksRef:Oe},t.agent.id)))}),e.jsx(Fn,{links:Oe.current,nodeElements:st.current,canvasRef:at,viewportRef:Ae,layoutMode:Rt,transform:I})]})})]})})}):e.jsxs("div",{className:"agents-split-layout",style:C?void 0:{gridTemplateColumns:`${M}px var(--space-sm) minmax(0, 1fr)`},children:[e.jsx("div",{className:`agents-split-sidebar${Be?" agents-split-sidebar--hidden-mobile":""}`,children:e.jsx("div",{className:"agents-view-content",children:Ca?e.jsxs("div",{className:"agents-view-loading",role:"status","aria-live":"polite",children:[e.jsx(mt,{size:18,className:"spin"}),e.jsx("span",{children:a("agents.loadingAgents","Loading agents...")})]}):U==="board"?e.jsx("div",{className:"agent-board",children:xt.length===0?e.jsx(Wt,{onCtaClick:vt}):xt.map(t=>{const l=Ft(t),u=sa(t,l,a),g=ta(t.state),x=aa("agent-board-card",t.state);return e.jsxs("div",{className:`agent-board-card ${x}${V===t.id?" agent-card--selected":""}`,children:[e.jsxs("div",{ref:B(`board:${t.id}`),className:"agent-board-clickable",onClick:()=>fe(t.id),role:"button",tabIndex:0,onKeyDown:f=>{(f.key==="Enter"||f.key===" ")&&(f.key===" "&&f.preventDefault(),fe(t.id))},children:[e.jsxs("div",{className:"agent-board-header",children:[e.jsx("span",{className:"agent-board-icon",children:e.jsx(Mt,{agent:t,size:20})}),e.jsx("span",{className:"agent-board-badge badge text-secondary",children:va(t.role)}),e.jsx("span",{className:`agent-board-badge badge ${g}`,children:t.state}),(t.pendingApprovalCount??0)>0?e.jsxs("span",{className:"agent-board-badge badge agent-approval-badge",title:a("agents.pendingApprovals","Pending approvals"),children:[e.jsx("span",{className:"status-dot status-dot--pending"}),t.pendingApprovalCount]}):null]}),e.jsx("div",{className:"agent-board-name",children:t.name}),e.jsx("div",{className:"agent-board-id",children:t.id}),t.taskId&&e.jsx(Zt,{taskId:t.taskId,isInViewport:P(`board:${t.id}`),projectId:o}),e.jsxs("div",{className:"agent-board-health",style:{color:l.color},title:u.title,children:[l.icon,u.label?` ${u.label}`:""]})]}),e.jsxs("div",{className:"agent-board-actions",children:[e.jsx(qa,{agent:t,pending:_e||Ve.has(t.id),onToggle:f=>void Ht(f,!Qe(f))}),(t.state==="idle"||t.state==="paused"||t.state==="error")&&e.jsx("button",{className:"btn btn-sm btn-danger",onClick:()=>void ba(t.id,t.name),title:a("agents.delete","Delete"),children:e.jsx(Ea,{size:14})})]})]},t.id)})}):e.jsx("div",{className:"agent-list",children:xt.length===0?e.jsx(Wt,{onCtaClick:vt}):xt.map(t=>{const l=Ft(t),u=sa(t,l,a),g=ta(t.state),x=aa("agent-card",t.state),f=Yt(t.runtimeConfig?.heartbeatIntervalMs),L=Qs(f),re=!Qe(t)?Xt:String(f),q=_e||ss===t.id||Ve.has(t.id),ve=Dn(t);return e.jsxs("div",{ref:B(`list:${t.id}`),className:`agent-card agent-card--clickable ${x}${V===t.id?" agent-card--selected":""}`,onClick:m=>{const F=m.target;if(F===m.currentTarget){fe(t.id);return}const ke=F.closest('button, select, input, [role="button"]');ke&&ke!==m.currentTarget||fe(t.id)},role:"button",tabIndex:0,onKeyDown:m=>{m.target===m.currentTarget&&(m.key==="Enter"||m.key===" ")&&(m.key===" "&&m.preventDefault(),fe(t.id))},"aria-label":a("agents.openDetails","Open details for {{name}}",{name:t.name}),children:[e.jsxs("div",{className:"agent-card-header",children:[e.jsxs("div",{className:"agent-info",children:[ts===t.id?e.jsx("select",{ref:as,className:"select agent-role-select",value:t.role,onChange:m=>void ls(t.id,m.target.value),onKeyDown:m=>rs(m,t.id),onBlur:()=>lt(null),autoFocus:!0,children:i.map(m=>e.jsxs("option",{value:m.value,children:[m.icon," ",m.label]},m.value))}):e.jsx("span",{className:"agent-icon agent-icon--clickable",onClick:m=>{m.stopPropagation(),lt(t.id)},title:a("agents.clickToChangeRole","Click to change role"),role:"button",tabIndex:0,onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.stopPropagation(),lt(t.id))},children:e.jsx(Mt,{agent:t,size:20})}),e.jsxs("div",{className:"agent-meta",children:[e.jsx("span",{className:"agent-name",children:t.name}),e.jsx("span",{className:"agent-id text-secondary",children:t.id})]}),e.jsx(Wa,{size:20,className:"agent-card-chevron"})]}),e.jsxs("div",{className:"agent-badges",children:[e.jsx("span",{className:`badge ${g}`,children:t.state}),e.jsxs("span",{className:"badge",style:{color:l.color},title:u.title,children:[l.icon,u.label?` ${u.label}`:""]}),e.jsx("span",{className:"badge text-secondary",children:va(t.role)}),(t.pendingApprovalCount??0)>0?e.jsxs("span",{className:"badge agent-approval-badge",title:a("agents.pendingApprovals","Pending approvals"),children:[e.jsx("span",{className:"status-dot status-dot--pending"}),t.pendingApprovalCount]}):null,(()=>{const m=vs(t);if(m.length===0)return null;const F=m.slice(0,2),ke=m.length-2;return e.jsxs(e.Fragment,{children:[F.map($t=>e.jsx("span",{className:"badge badge-skill",title:$t,children:mn($t)},$t)),ke>0&&e.jsxs("span",{className:"badge badge-skill",children:["+",ke]})]})})()]})]}),e.jsxs("div",{className:"agent-card-body",children:[e.jsxs("div",{className:"agent-model-runtime",children:[e.jsxs("span",{className:"text-secondary",children:[ve.isRuntime?a("agents.runtime","Runtime"):a("agents.model","Model"),":"]}),e.jsx("span",{className:"badge agent-model-runtime__value",title:ve.label??a("agents.auto","Auto"),children:ve.label??a("agents.auto","Auto")})]}),t.state==="error"&&t.lastError?e.jsx(en,{errorText:t.lastError,issueContext:{surface:"AgentsView list",agentId:t.id,agentName:t.name,agentState:t.state,taskId:t.taskId}}):null,t.taskId&&e.jsxs("div",{className:"agent-task",children:[e.jsx("span",{className:"text-secondary",children:a("agents.workingOn","Working on:")}),e.jsx("span",{className:"badge",children:e.jsx(Ua,{taskId:t.taskId,taskColumn:t.taskColumn})}),e.jsx(Zt,{taskId:t.taskId,isInViewport:P(`list:${t.id}`),projectId:o})]}),!Ie(t)&&e.jsxs("div",{className:"agent-heartbeat-control",children:[e.jsx("span",{className:"text-secondary",children:a("agents.heartbeat","Heartbeat:")}),ia===t.id?e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"text",inputMode:"numeric",pattern:"[0-9]*",className:"input agent-heartbeat-custom-input",value:oa[t.id]??"",onChange:m=>Xe(F=>({...F,[t.id]:m.target.value})),onKeyDown:m=>{m.key==="Enter"?xa(t):m.key==="Escape"&&(it(null),Xe(F=>{const ke={...F};return delete ke[t.id],ke}))},disabled:q,"aria-label":a("agents.customHeartbeatAria","Custom heartbeat interval in minutes for {{name}}",{name:t.name})}),e.jsx("span",{className:"text-secondary",children:a("agents.minutesUnit","min")}),e.jsx("button",{className:"btn btn-sm",onClick:()=>void xa(t),disabled:q,title:a("agents.saveCustomInterval","Save custom interval"),children:a("agents.save","Save")}),e.jsx("button",{className:"btn btn-sm",onClick:()=>{it(null),Xe(m=>{const F={...m};return delete F[t.id],F})},disabled:q,title:a("agents.cancelCustomInterval","Cancel custom interval"),children:a("agents.cancel","Cancel")})]}):e.jsx(e.Fragment,{children:e.jsxs("select",{className:"select agent-heartbeat-select",value:re,onChange:m=>{const F=m.target.value;F===Xt?os(t):F==="__custom__"?cs(t):is(t,Number(F))},disabled:q,"aria-label":a("agents.setHeartbeatAria","Set heartbeat interval for {{name}}",{name:t.name}),children:[e.jsx("option",{value:Xt,children:a("agents.heartbeatDisabledOption","Disabled")}),L.map(m=>e.jsx("option",{value:m.value,children:m.label},m.value)),tn.some(m=>m.value===f)&&e.jsx("option",{value:"__custom__",children:a("agents.customHeartbeatOption","Custom...")})]})}),q&&e.jsx("span",{className:"agent-heartbeat-saving text-secondary",children:a("agents.saving","Saving…")}),t.lastHeartbeatAt&&(()=>{const m=new Date(t.lastHeartbeatAt),F=new Date(m.getTime()+f),ke=t.state==="active"||t.state==="running";return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"agent-heartbeat-last text-secondary",title:m.toLocaleString(),children:a("agents.lastHeartbeatAt","Last: {{time}}",{time:m.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})}),ke&&e.jsx("span",{className:"agent-heartbeat-next text-secondary",title:F.toLocaleString(),children:a("agents.nextHeartbeatAt","Next: {{time}}",{time:F.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})})]})})()]})]}),e.jsxs("div",{className:"agent-card-actions",children:[e.jsxs("div",{className:"agent-card-actions-group agent-card-actions-group--primary",children:[t.state==="idle"&&e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"active"),disabled:Ye.has(t.id),title:a("agents.activate","Activate"),children:[e.jsx(Nt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.start","Start")})]}),t.state==="active"&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ms(t.id,t.name),disabled:Ye.has(t.id),title:a("agents.runNow","Run Now"),"aria-label":a("agents.runNowAria","Run now for {{name}}",{name:t.name}),children:[e.jsx(ht,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.runNow","Run Now")})]}),e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"paused"),disabled:Ye.has(t.id),title:a("agents.pause","Pause"),children:[e.jsx(Tt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.pause","Pause")})]})]}),t.state==="paused"&&e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"active"),disabled:Ye.has(t.id),title:a("agents.resume","Resume"),children:[e.jsx(Nt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.resume","Resume")})]}),t.state==="running"&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{className:"btn btn-sm",onClick:()=>fe(t.id,{initialTab:"runs",initialRunId:null,preferActiveRun:!0}),title:a("agents.viewLiveRun","View live run details"),"aria-label":a("agents.viewLiveRunAria","View live run details for {{name}}",{name:t.name}),children:[e.jsx(ht,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.running","Running")})]}),e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"paused"),disabled:Ye.has(t.id),title:a("agents.pause","Pause"),children:[e.jsx(Tt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.pause","Pause")})]})]}),t.state==="error"&&e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"active"),disabled:Ye.has(t.id),title:a("agents.retry","Retry"),children:[e.jsx(Nt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.retry","Retry")})]})]}),e.jsxs("div",{className:"agent-card-actions-group agent-card-actions-group--secondary",children:[e.jsxs("button",{className:"btn btn-sm agent-card-details-btn",onClick:()=>fe(t.id),title:a("agents.viewDetailsFor","View details for {{name}}",{name:t.name}),"aria-label":a("agents.viewDetailsFor","View details for {{name}}",{name:t.name}),children:[e.jsx(an,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.details","Details")})]}),(t.state==="idle"||t.state==="paused"||t.state==="error")&&e.jsxs("button",{className:"btn btn-sm btn-danger",onClick:()=>void ba(t.id,t.name),title:a("agents.delete","Delete"),children:[e.jsx(Ea,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.delete","Delete")})]})]})]})]},t.id)})})})}),!C&&e.jsx("div",{className:"agents-split-resize-handle","data-testid":"agents-sidebar-resize-handle",role:"separator","aria-orientation":"vertical","aria-valuemin":Ka,"aria-valuemax":Xa,"aria-valuenow":M,"aria-label":a("agents.resizeSidebar","Resize agents sidebar"),tabIndex:0,onPointerDown:Qa,onKeyDown:es}),e.jsx("div",{className:`agents-split-detail${C&&!V?" agents-split-detail--hidden-mobile":""}`,children:V?e.jsx(s.Suspense,{fallback:null,children:e.jsx(Oa,{inline:!0,showInlineBackButton:C,agentId:V,projectId:o,onClose:qe,addToast:n,onChildClick:fa,initialTab:Re,initialRunId:ne,preferActiveRun:J,onMutationSuccess:us},V)}):e.jsxs("div",{className:"agents-detail-empty-state",children:[e.jsx(Jt,{size:48}),e.jsx("h3",{children:a("agents.selectAnAgent","Select an agent")}),e.jsx("p",{children:a("agents.selectAgentHint","Choose an agent from the sidebar to view details")})]})})]})]})}export{qn as AgentsView};
|
|
24
|
+
Agent instructions go here...`),value:N,onChange:c=>{p("paste"),w([]),R(c.target.value),O(null)},rows:8,"aria-label":i("agents.manifestContent","Manifest content")})]}),e.jsx("p",{className:"agent-import-file-hint",children:i("agents.currentInput","Current input: {{method}}",{method:r})}),me&&e.jsxs("p",{className:"agent-dialog-error",children:[e.jsx(jt,{size:14}),me]})]}),v==="preview"&&e.jsxs("div",{className:"agent-import-preview",children:[e.jsxs("div",{className:"agent-import-company",children:[e.jsx("span",{className:"agent-import-company-label",children:i("agents.company","Company")}),e.jsx("span",{className:"agent-import-company-name",children:B})]}),T.length>0&&e.jsx("div",{className:"agent-import-result-warnings",children:T.map((c,y)=>e.jsxs("div",{className:"agent-import-result-warning",children:[e.jsx(jt,{size:12}),e.jsx("span",{children:c})]},y))}),e.jsxs("div",{className:"agent-import-count",children:[e.jsx(qt,{size:14}),e.jsx("span",{children:i("agents.agentsFound","{{count}} agent{{plural}} found",{count:$.length,plural:$.length!==1?"s":""})})]}),$.length>0&&e.jsxs("div",{className:"agent-import-selection-controls",children:[e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>z($.map(c=>c.name)),children:i("agents.selectAllAgents","Select all agents")}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>z([]),children:i("agents.clearAgents","Clear agents")})]}),$.length>0?e.jsx("div",{className:"agent-import-agent-list",children:$.map((c,y)=>e.jsxs("div",{className:"agent-import-agent-item",children:[e.jsx("label",{className:"checkbox-label",children:e.jsx("input",{type:"checkbox","aria-label":i("agents.selectAgent","Select agent {{name}}",{name:c.name}),checked:_.includes(c.name),onChange:()=>$e(c.name)})}),e.jsx("span",{className:"agent-import-agent-icon",children:c.icon||"🤖"}),e.jsxs("div",{className:"agent-import-agent-details",children:[e.jsx("span",{className:"agent-import-agent-name",children:c.name}),e.jsxs("span",{className:"agent-import-agent-meta",children:[c.title&&e.jsxs("span",{className:"agent-import-agent-title",children:[c.title," · "]}),e.jsx("span",{className:"agent-import-agent-role",children:c.role}),c.reportsTo&&e.jsx("span",{className:"agent-import-agent-reports",children:i("agents.importReportsTo"," · reports to {{agent}}",{agent:c.reportsTo})}),c.skills&&c.skills.length>0&&e.jsx("span",{className:"agent-import-agent-model",children:i("agents.importSkills"," · skills: {{skills}}",{skills:c.skills.join(", ")})})]}),c.instructionsText&&e.jsxs("span",{className:"agent-import-agent-instructions",children:[c.instructionsText.slice(0,100),c.instructionsText.length>100?"...":""]})]})]},y))}):e.jsx("p",{className:"agent-import-empty",children:i("agents.noAgentsFound","No agents found in the manifest.")}),M.length>0&&e.jsxs("div",{className:"agent-import-skills-section",children:[e.jsxs("div",{className:"agent-import-count",children:[e.jsx(qt,{size:14}),e.jsx("span",{children:i("agents.skillsFound","{{count}} skill{{plural}} found",{count:M.length,plural:M.length!==1?"s":""})})]}),e.jsxs("div",{className:"agent-import-selection-controls",children:[e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>H(M.map(c=>c.name)),children:i("agents.selectAllSkills","Select all skills")}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>H([]),children:i("agents.clearSkills","Clear skills")})]}),e.jsx("div",{className:"agent-import-skill-list",children:M.map((c,y)=>e.jsxs("div",{className:"agent-import-skill-item",children:[e.jsx("label",{className:"checkbox-label",children:e.jsx("input",{type:"checkbox","aria-label":i("agents.selectSkill","Select skill {{name}}",{name:c.name}),checked:Z.includes(c.name),onChange:()=>ze(c.name)})}),e.jsx("span",{className:"agent-import-skill-icon",children:"⚡"}),e.jsxs("div",{className:"agent-import-skill-details",children:[e.jsx("span",{className:"agent-import-skill-name",children:c.name}),c.description&&e.jsx("span",{className:"agent-import-skill-description",children:c.description})]})]},`${c.name}-${y}`))})]}),ce&&e.jsxs("p",{className:"agent-dialog-error",children:[e.jsx(jt,{size:14}),ce]})]}),v==="result"&&S&&e.jsxs("div",{className:"agent-import-result",children:[e.jsx("div",{className:"agent-import-result-icon",children:e.jsx(_t,{size:32})}),e.jsx("h3",{className:"agent-import-result-title",children:i("agents.importComplete","Import Complete")}),e.jsxs("p",{className:"agent-import-result-company",children:[i("agents.from","From")," ",e.jsx("strong",{children:S.companyName??"Unknown"})]}),e.jsxs("div",{className:"agent-import-result-stats",children:[S.created.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--success",children:e.jsx("span",{children:i("agents.resultCreated","{{count}} created",{count:S.created.length})})}),S.skipped.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--skipped",children:e.jsx("span",{children:i("agents.resultSkipped","{{count}} skipped (already exist)",{count:S.skipped.length})})}),S.errors.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--error",children:e.jsx("span",{children:i("agents.resultErrors","{{count}} error{{plural}}",{count:S.errors.length,plural:S.errors.length!==1?"s":""})})})]}),S.created.length>0&&e.jsx("div",{className:"agent-import-result-agents",children:S.created.map((c,y)=>e.jsxs("div",{className:"agent-import-result-agent",children:[e.jsx(_t,{size:12}),e.jsx("span",{children:c.name})]},y))}),S.errors.length>0&&e.jsx("div",{className:"agent-import-result-errors",children:S.errors.map((c,y)=>e.jsxs("div",{className:"agent-import-result-error",children:[e.jsx(Aa,{size:12}),e.jsxs("span",{children:[c.name,": ",c.error]})]},y))}),S.warnings&&S.warnings.length>0&&e.jsx("div",{className:"agent-import-result-warnings",children:S.warnings.map((c,y)=>e.jsxs("div",{className:"agent-import-result-warning",children:[e.jsx(jt,{size:12}),e.jsx("span",{children:c})]},y))}),S.skills&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"agent-import-result-divider"}),e.jsx("h4",{className:"agent-import-result-section-title",children:i("agents.skills","Skills")}),e.jsxs("div",{className:"agent-import-result-stats",children:[S.skills.imported.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--success",children:e.jsx("span",{children:i("agents.skillsImported","{{count}} skill{{plural}} imported",{count:S.skills.imported.length,plural:S.skills.imported.length!==1?"s":""})})}),S.skills.skipped.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--skipped",children:e.jsx("span",{children:i("agents.skillsSkipped","{{count}} skill{{plural}} skipped (already exist)",{count:S.skills.skipped.length,plural:S.skills.skipped.length!==1?"s":""})})}),S.skills.errors.length>0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--error",children:e.jsx("span",{children:i("agents.skillsErrors","{{count}} skill{{plural}} error{{pluralError}}",{count:S.skills.errors.length,plural:S.skills.errors.length!==1?"s":"",pluralError:S.skills.errors.length!==1?"s":""})})}),S.skills.imported.length===0&&S.skills.skipped.length===0&&S.skills.errors.length===0&&e.jsx("div",{className:"agent-import-result-stat agent-import-result-stat--skipped",children:e.jsx("span",{children:i("agents.noSkillsInPackage","No skills in package")})})]}),S.skills.imported.length>0&&e.jsx("div",{className:"agent-import-result-agents",children:S.skills.imported.map((c,y)=>e.jsxs("div",{className:"agent-import-result-agent",children:[e.jsx(_t,{size:12}),e.jsx("span",{children:c.name})]},y))}),S.skills.errors.length>0&&e.jsx("div",{className:"agent-import-result-errors",children:S.skills.errors.map((c,y)=>e.jsxs("div",{className:"agent-import-result-error",children:[e.jsx(Aa,{size:12}),e.jsxs("span",{children:[c.name,": ",c.error]})]},y))})]})]})]}),e.jsxs("div",{className:"agent-dialog-footer",children:[v==="preview"&&e.jsx("button",{className:"btn",onClick:()=>h("input"),disabled:oe,children:i("agents.back","Back")}),e.jsx("button",{className:"btn",onClick:Fe,disabled:oe,children:v==="result"?i("agents.close","Close"):i("agents.cancel","Cancel")}),v==="input"&&e.jsx("button",{className:"btn btn-task-create",onClick:()=>void le(),disabled:je||(r==="directory"?A.length===0:r==="browse"?!J:!N.trim()),children:je?e.jsxs(e.Fragment,{children:[e.jsx(zt,{size:14,className:"spin"}),i("agents.parsing","Parsing...")]}):i("agents.preview","Preview")}),v==="preview"&&e.jsx("button",{className:"btn btn-task-create",onClick:()=>void pe(),disabled:oe||ee===0&&W===0,children:oe?e.jsxs(e.Fragment,{children:[e.jsx(zt,{size:14,className:"spin"}),We]}):i("agents.importButton","Import {{label}}",{label:Me})})]})]})}):null}const Oa=s.lazy(()=>sn(()=>import("./AgentDetailView-DH4Cn5iG.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])).then(n=>({default:n.AgentDetailView})));function In(n){return[{value:"triage",label:n("agents.roleTriage","Triage"),icon:"⊕"},{value:"executor",label:n("agents.roleExecutor","Executor"),icon:"▶"},{value:"reviewer",label:n("agents.roleReviewer","Reviewer"),icon:"⊙"},{value:"merger",label:n("agents.roleMerger","Merger"),icon:"⊞"},{value:"scheduler",label:n("agents.roleScheduler","Scheduler"),icon:"◷"},{value:"engineer",label:n("agents.roleEngineer","Engineer"),icon:"⎔"},{value:"custom",label:n("agents.roleCustom","Custom"),icon:"✦"}]}const Kt=[.1,.25,.5,1,2,3,5,10],Xt="__disabled__",Ln=.25,Hn=3,Et=16,gt=32,Va=320,Ka=260,Xa=520,Ya="kb-dashboard-agents-sidebar-width";function ea(n){return Math.max(Ka,Math.min(Xa,n))}function Ba(n){if(typeof window>"u")return Va;const o=kt(Ya,n),j=o?Number(o):NaN;return Number.isFinite(j)?ea(j):Va}function ta(n){switch(n){case"running":return"agent-badge--running";case"active":return"agent-badge--active";case"paused":return"agent-badge--paused";case"error":return"agent-badge--error";case"idle":default:return"agent-badge--idle"}}function aa(n,o){switch(o){case"running":return`${n}--running`;case"active":return`${n}--active`;case"paused":return`${n}--paused`;case"error":return`${n}--error`;case"idle":default:return`${n}--idle`}}function Dn(n){const o=n.runtimeConfig??{},j=typeof o.runtimeHint=="string"?o.runtimeHint:"";if(j)return{label:j,isRuntime:!0};const b=typeof o.modelProvider=="string"?o.modelProvider:"",a=typeof o.modelId=="string"?o.modelId:"";if(b&&a)return{label:`${b}/${a}`,isRuntime:!1};const i=typeof o.model=="string"?o.model:"";if(i.includes("/")){const v=i.indexOf("/");return{label:i.slice(v+1),isRuntime:!1}}return{label:null,isRuntime:!1}}function Za(n){return n.children.length===0?1:n.children.reduce((o,j)=>o+Za(j),0)}function sa(n,o,j){return n.state==="error"?{title:void 0,label:j("agents.healthError","Error")}:{title:o.reason??o.label,label:o.stateDerived?null:o.label}}function qa({agent:n,pending:o,onToggle:j}){const{t:b}=Pe("app");if(Ie(n))return null;const a=Qe(n),i=a?b("agents.disableHeartbeat","Disable heartbeat"):b("agents.enableHeartbeat","Enable heartbeat");return e.jsx("button",{type:"button",className:"btn btn-sm agent-heartbeat-toggle",disabled:o,"aria-pressed":a,"aria-label":b("agents.heartbeatActionForAgent","{{action}} for {{name}}",{action:i,name:n.name}),onClick:v=>{v.stopPropagation(),j(n)},children:o?b("agents.heartbeatUpdating","Updating heartbeat…"):i})}function Ja({node:n,onSelect:o,onToggleHeartbeat:j,isHeartbeatPending:b,getHealthStatus:a,selectedAgentId:i,registerNodeElement:v,linksRef:h}){const{t:r}=Pe("app"),{agent:p,children:N}=n,R=a(p),A=sa(p,R,r),w=ta(p.state),B=aa("org-chart-node-card",p.state),P=Za(n),$={"--org-chart-subtree-leaves":String(P)};return e.jsxs("div",{className:`org-chart-node${N.length>0?" org-chart-node--has-children":""}`,style:$,children:[e.jsxs("div",{ref:C=>v(p.id,C),"data-agent-id":p.id,className:`org-chart-node-card ${B}${i===p.id?" agent-card--selected":""}`,onClick:()=>o(p.id),role:"button",tabIndex:0,onKeyDown:C=>{(C.key==="Enter"||C.key===" ")&&(C.key===" "&&C.preventDefault(),o(p.id))},children:[e.jsxs("div",{className:"org-chart-node__header",children:[e.jsx("span",{className:"org-chart-node__icon",children:e.jsx(Mt,{agent:p,size:20})}),e.jsx("span",{className:"org-chart-node__name",children:p.name})]}),e.jsxs("div",{className:"org-chart-node__meta",children:[e.jsx("span",{className:`org-chart-node__badge ${w}`,children:p.state}),e.jsxs("span",{className:"org-chart-node__health",style:{color:R.color},title:A.title,children:[R.icon,A.label&&e.jsx("span",{className:"text-secondary",children:A.label})]})]})]}),e.jsx("div",{className:"org-chart-node__actions",children:e.jsx(qa,{agent:p,pending:b(p.id),onToggle:j})}),N.length>0&&e.jsx("div",{className:"org-chart-children",role:"group","aria-label":r("agents.orgChartEmployees","{{name}} employees",{name:p.name}),children:N.map(C=>(h.current.push({parentId:p.id,childId:C.agent.id}),e.jsx(Ja,{node:C,onSelect:o,onToggleHeartbeat:j,isHeartbeatPending:b,getHealthStatus:a,selectedAgentId:i,registerNodeElement:v,linksRef:h},C.agent.id)))})]})}function Fn({links:n,nodeElements:o,canvasRef:j,viewportRef:b,layoutMode:a,transform:i}){const[v,h]=s.useState([]);return s.useLayoutEffect(()=>{const r=j.current,p=b.current;if(!r||!p||n.length===0){h([]);return}const N=()=>{const A=r.getBoundingClientRect(),w=n.flatMap(({parentId:B,childId:P})=>{const $=o.get(B),C=o.get(P);if(!$||!C)return[];const M=$.getBoundingClientRect(),G=C.getBoundingClientRect(),T=(M.left-A.left)/i.scale,E=(M.top-A.top)/i.scale,_=(G.left-A.left)/i.scale,z=(G.top-A.top)/i.scale;if(a==="vertical"){const ue=T,me=E+M.height/i.scale/2,O=_,S=z+G.height/i.scale/2,V=ue-(ue-O)/2;return[`M ${ue} ${me} L ${V} ${me} L ${V} ${S} L ${O} ${S}`]}const Z=T+M.width/i.scale/2,H=E+M.height/i.scale,je=_+G.width/i.scale/2,se=z,oe=H+(se-H)/2;return[`M ${Z} ${H} L ${Z} ${oe} L ${je} ${oe} L ${je} ${se}`]});h(w)};N();const R=new ResizeObserver(N);return R.observe(r),R.observe(p),o.forEach(A=>R.observe(A)),()=>R.disconnect()},[j,a,n,o,i.scale,b]),e.jsx("svg",{className:"agent-org-chart-connectors","aria-hidden":"true",children:v.map((r,p)=>e.jsx("path",{d:r},`${p}-${r}`))})}function qn({addToast:n,projectId:o,onOpenTaskLogs:j,agentOnboardingEnabled:b=!1}){const{t:a}=Pe("app"),i=In(a),[v,h]=s.useState(!1),r=s.useRef(new Map),p=s.useRef(new Map),N=s.useRef(new Map),[R,A]=s.useState(new Set),w=s.useRef(null);s.useEffect(()=>{if(typeof IntersectionObserver>"u")return;const t=new IntersectionObserver(l=>{A(u=>{let g=!1;const x=new Set(u);for(const f of l){const L=p.current.get(f.target);L&&(f.isIntersecting?x.has(L)||(x.add(L),g=!0):x.has(L)&&(x.delete(L),g=!0))}return g?x:u})},{rootMargin:"200px"});return w.current=t,r.current.forEach(l=>t.observe(l)),()=>{t.disconnect(),w.current=null}},[]);const B=s.useCallback(t=>{const l=N.current.get(t);if(l)return l;const u=g=>{const x=r.current.get(t);x&&(w.current?.unobserve(x),p.current.delete(x)),g?(r.current.set(t,g),p.current.set(g,t),w.current?w.current.observe(g):A(f=>f.has(t)?f:new Set(f).add(t))):(r.current.delete(t),N.current.delete(t),A(f=>{if(!f.has(t))return f;const L=new Set(f);return L.delete(t),L}))};return N.current.set(t,u),u},[]),P=s.useCallback(t=>typeof IntersectionObserver>"u"?!0:R.has(t),[R]),C=Vs()==="mobile",[M,G]=s.useState(()=>Ba(o)),[T,E]=s.useState("all"),{agents:_,stats:z,isLoading:Z,loadAgents:H,refreshAgents:je}=Bs(o,{filterState:T,showSystemAgents:v}),[se,oe]=s.useState(!1),[ue,me]=s.useState(null),[O,S]=s.useState(!1),[V,ce]=s.useState(null),[Ne,Le]=s.useState(null),Be=C&&!!V,[Re,Ce]=s.useState("dashboard"),[ne,He]=s.useState(null),[J,he]=s.useState(!1),[U,ge]=s.useState(()=>{if(typeof window>"u")return"list";const t=kt("fn-agent-view",o);return t==="list"||t==="board"||t==="org"?t:"list"}),[ye,Q]=s.useState(()=>{if(typeof window>"u")return"auto";const t=kt(Bt,o);return La(t)?t:"auto"}),[Te,et]=s.useState([]),[De,Fe]=s.useState(!1),[Ue,pt]=s.useState(0),[we,le]=s.useState(!1),[pe,ee]=s.useState(!1),[W,Se]=s.useState(!1),[be,Me]=s.useState(!1),[We,$e]=s.useState(0),[ze,c]=s.useState(0),[y,D]=s.useState(0),[K,te]=s.useState(0),[I,Y]=s.useState({scale:1,x:0,y:0}),[Ge,Ct]=s.useState(!1),tt=s.useRef(null),Ae=s.useRef(null),at=s.useRef(null),st=s.useRef(new Map),Oe=s.useRef([]),de=s.useRef(new Map),Ee=s.useRef(null),nt=s.useRef(null),d=s.useRef(!1),{confirm:k}=Us(),xe=s.useRef(null),It=s.useId();s.useEffect(()=>{G(Ba(o))},[o]),s.useEffect(()=>{const t=kt("fn-agent-view",o);if(t==="list"||t==="board"||t==="org"){ge(t);return}ge("list")},[o]),s.useEffect(()=>{Ot("fn-agent-view",U,o)},[U,o]),s.useEffect(()=>{const t=kt(Bt,o);Q(La(t)?t:"auto")},[o]),s.useEffect(()=>{Ot(Bt,ye,o)},[ye,o]);const Ke=s.useCallback(t=>{try{Ot(Ya,String(t),o)}catch{}},[o]),Qa=s.useCallback(t=>{if(C)return;t.preventDefault(),t.stopPropagation();const l=t.currentTarget;typeof l.setPointerCapture=="function"&&l.setPointerCapture(t.pointerId);const u=t.clientX,g=M;let x=g;document.body.style.userSelect="none";const f=X=>{const re=X.clientX-u,q=ea(g+re);x=q,G(q)},L=X=>{typeof l.releasePointerCapture=="function"&&l.releasePointerCapture(X.pointerId),document.body.style.userSelect="",document.removeEventListener("pointermove",f),document.removeEventListener("pointerup",L),Ke(x)};document.addEventListener("pointermove",f),document.addEventListener("pointerup",L)},[C,Ke,M]),es=s.useCallback(t=>{if(C||t.key!=="ArrowLeft"&&t.key!=="ArrowRight")return;t.preventDefault();const l=t.shiftKey?50:10,u=t.key==="ArrowLeft"?-l:l,g=ea(M+u);G(g),Ke(g)},[C,Ke,M]),[ts,lt]=s.useState(null),as=s.useRef(null),[ss,rt]=s.useState(null),[Ve,la]=s.useState(new Set),[_e,ra]=s.useState(!1),[ia,it]=s.useState(null),[oa,Xe]=s.useState({}),[bt,ca]=s.useState(1),[da,ua]=s.useState(!1),[Ye,ga]=s.useState(new Set),[Lt,ot]=s.useState(new Map),wt=s.useRef(!0);s.useEffect(()=>(wt.current=!0,()=>{wt.current=!1}),[]),s.useEffect(()=>{Ws(o).then(t=>{wt.current&&ca(t.heartbeatMultiplier??1)}).catch(()=>{})},[o]);const ma=s.useCallback(async t=>{const l=Number.isFinite(t)&&t>0?t:1;ca(l),ua(!0);try{await Gs({heartbeatMultiplier:l},o),n(a("agents.heartbeatSpeedSet","Heartbeat speed set to ×{{value}}",{value:l.toFixed(1)}),"success")}catch(u){n(a("agents.heartbeatSpeedSaveFailed","Failed to save heartbeat multiplier: {{error}}",{error:ie(u)}),"error")}finally{wt.current&&ua(!1)}},[o,n]),St=s.useMemo(()=>Lt.size===0?_:_.map(t=>{const l=Lt.get(t.id);return l?{...t,state:l}:t}),[_,Lt]),xt=s.useMemo(()=>St.filter(t=>v||!Ie(t)),[St,v]),ns=s.useMemo(()=>St.filter(t=>t.state!=="active"&&t.state!=="running"?!1:v||!Ie(t)),[St,v]),Ze=s.useMemo(()=>{if(v)return Te;const t=l=>Ie(l.agent)?null:{...l,children:l.children.map(t).filter(u=>u!==null)};return Te.map(t).filter(l=>l!==null)},[Te,v]);s.useEffect(()=>{if(U!=="org")return;const t=Ae.current;if(!t)return;const l=()=>{pt(t.clientWidth)};l();const u=typeof ResizeObserver<"u"?new ResizeObserver(l):null;return u?.observe(t),window.addEventListener("resize",l),()=>{u?.disconnect(),window.removeEventListener("resize",l)}},[U,Ze.length]),s.useEffect(()=>{if(U!=="org")return;let t=!1;return Fe(!0),Ks(o,{includeEphemeral:v}).then(l=>{t||et(l)}).catch(l=>{t||(n(a("agents.orgChartLoadFailed","Failed to load org chart: {{error}}",{error:ie(l)}),"error"),et([]))}).finally(()=>{t||Fe(!1)}),()=>{t=!0}},[U,o,v,n]),s.useEffect(()=>{const t=setInterval(()=>{H()},3e4);return()=>{clearInterval(t)}},[H]),s.useEffect(()=>{if(!we)return;let t=!1;Me(!0),Pt(void 0,o).then(g=>{if(t)return;const x=g.filter(f=>!Ie(f));$e(x.filter(f=>f.state==="active"||f.state==="running").length),c(x.filter(f=>f.state==="paused").length),D(x.filter(f=>!Qe(f)).length),te(x.filter(f=>Qe(f)).length)}).catch(g=>{t||($e(0),c(0),D(0),te(0),n(a("agents.bulkActionsLoadFailed","Failed to load bulk agent actions: {{error}}",{error:ie(g)}),"error"))}).finally(()=>{t||Me(!1)});const l=g=>{const x=g.target;x&&(tt.current?.contains(x)||xe.current?.contains(x)||le(!1))},u=g=>{g.key==="Escape"&&(le(!1),xe.current?.focus())};return document.addEventListener("mousedown",l),document.addEventListener("touchstart",l),document.addEventListener("keydown",u),()=>{t=!0,document.removeEventListener("mousedown",l),document.removeEventListener("touchstart",l),document.removeEventListener("keydown",u)}},[n,we,o]);const ha=async t=>{if(!W){Se(!0);try{const u=(await Pt(void 0,o)).filter(m=>!Ie(m)),g=u.filter(m=>t==="paused"?m.state==="active"||m.state==="running":m.state==="paused"),x=u.length-g.length;if(g.length===0){n(t==="paused"?a("agents.noAgentsToPause","No agents eligible to pause"):a("agents.noAgentsToResume","No agents eligible to resume"),"error");return}if(!await k({title:t==="paused"?a("agents.pauseAllTitle","Pause All Agents"):a("agents.resumeAllTitle","Resume All Agents"),message:t==="paused"?a("agents.pauseAllConfirm",{count:g.length,defaultValue_one:"Pause {{count}} agent in this project?",defaultValue_other:"Pause {{count}} agents in this project?"}):a("agents.resumeAllConfirm",{count:g.length,defaultValue_one:"Resume {{count}} agent in this project?",defaultValue_other:"Resume {{count}} agents in this project?"}),danger:t==="paused"}))return;const L=await Promise.allSettled(g.map(m=>_a(m.id,t,o))),X=L.map((m,F)=>({result:m,agent:g[F]})).filter(m=>m.result.status==="rejected"),re=L.length-X.length,q=X.length,ve=t==="paused"?a("agents.pausedSummary",{count:re,skipped:x,defaultValue_one:"Paused {{count}} agent; skipped {{skipped}}",defaultValue_other:"Paused {{count}} agents; skipped {{skipped}}"}):a("agents.resumedSummary",{count:re,skipped:x,defaultValue_one:"Resumed {{count}} agent; skipped {{skipped}}",defaultValue_other:"Resumed {{count}} agents; skipped {{skipped}}"});if(q>0){const m=X.slice(0,3).map(({agent:F,result:ke})=>`${F.name||F.id}: ${ie(ke.reason)}`).join("; ");n(`${ve}; failed ${q}${m?` (${m})`:""}`,"error")}else n(ve,"success");await H()}catch(l){n(t==="paused"?a("agents.pauseAgentsFailed","Failed to pause agents: {{error}}",{error:ie(l)}):a("agents.resumeAgentsFailed","Failed to resume agents: {{error}}",{error:ie(l)}),"error")}finally{Se(!1)}}},pa=async t=>{if(!(_e||W||Ve.size>0)){ra(!0);try{const l=await Pt(void 0,o),g=l.filter(m=>!Ie(m)).filter(m=>Qe(m)!==t),x=l.length-g.length;if(g.length===0){n(t?a("agents.noHeartbeatsToEnable","No agent heartbeats need enabling"):a("agents.noHeartbeatsToDisable","No agent heartbeats need disabling"),"error");return}if(!await k({title:t?a("agents.enableAllHeartbeats","Enable all heartbeats"):a("agents.disableAllHeartbeats","Disable all heartbeats"),message:t?a("agents.enableAllHeartbeatsConfirm","Enable heartbeats for {{count}} project agents?",{count:g.length}):a("agents.disableAllHeartbeatsConfirm","Disable heartbeats for {{count}} project agents?",{count:g.length}),danger:!t}))return;const L=await Promise.allSettled(g.map(m=>dt(m.id,{runtimeConfig:yt(m,t)},o))),X=L.map((m,F)=>({result:m,agent:g[F]})).filter(m=>m.result.status==="rejected"),re=L.length-X.length,q=t?a("agents.enableHeartbeatsSummary","Enabled {{count}} heartbeats; skipped {{skipped}}",{count:re,skipped:x}):a("agents.disableHeartbeatsSummary","Disabled {{count}} heartbeats; skipped {{skipped}}",{count:re,skipped:x}),ve=X.slice(0,3).map(({agent:m,result:F})=>`${m.name||m.id}: ${ie(F.reason)}`).join("; ");n(X.length?`${q}; ${a("agents.bulkFailures","failed {{count}}",{count:X.length})}${ve?` (${ve})`:""}`:q,X.length?"error":"success"),await H()}catch(l){n(a("agents.heartbeatUpdateFailed","Failed to update heartbeat: {{error}}",{error:ie(l)}),"error")}finally{ra(!1)}}},ft=async(t,l)=>{if(!Ye.has(t)){ga(u=>new Set(u).add(t)),ot(u=>{const g=new Map(u);return g.set(t,l),g});try{await _a(t,l,o),n(a("agents.stateUpdated","Agent state updated to {{state}}",{state:l}),"success"),await H(),ot(u=>{const g=new Map(u);return g.delete(t),g})}catch(u){ot(g=>{const x=new Map(g);return x.delete(t),x}),n(a("agents.stateUpdateFailed","Failed to update state: {{error}}",{error:ie(u)}),"error")}finally{ga(u=>{const g=new Set(u);return g.delete(t),g})}}},ba=async(t,l)=>{if(await k({title:a("agents.deleteTitle","Delete Agent"),message:a("agents.deleteConfirm",'Delete agent "{{name}}"? This cannot be undone.',{name:l}),danger:!0}))try{await ln(t,o),n(a("agents.deleted",'Agent "{{name}}" deleted',{name:l}),"success"),await H()}catch(g){n(a("agents.deleteFailed","Failed to delete agent: {{error}}",{error:ie(g)}),"error")}},ls=async(t,l)=>{const u=_.find(g=>g.id===t);if(u){if(u.role===l){lt(null);return}try{await dt(t,{role:l},o),n(a("agents.roleUpdated","Agent role updated to {{role}}",{role:i.find(g=>g.value===l)?.label??l}),"success"),lt(null),H()}catch(g){n(a("agents.roleUpdateFailed","Failed to update role: {{error}}",{error:ie(g)}),"error")}}},rs=(t,l)=>{t.key==="Escape"&<(null)},is=async(t,l)=>{if(!(_e||Ve.has(t.id))){ia===t.id&&(it(null),Xe(u=>{const g={...u};return delete g[t.id],g})),rt(t.id);try{await dt(t.id,{runtimeConfig:{...yt(t,!0),heartbeatIntervalMs:l}},o),n(a("agents.heartbeatIntervalUpdated","Heartbeat interval updated to {{interval}} for {{name}}",{interval:Pa(l),name:t.name}),"success"),H()}catch(u){n(a("agents.heartbeatIntervalUpdateFailed","Failed to update heartbeat interval: {{error}}",{error:ie(u)}),"error")}finally{rt(null)}}},Ht=async(t,l)=>{if(!(Ie(t)||_e||Ve.has(t.id))){la(u=>new Set(u).add(t.id));try{await dt(t.id,{runtimeConfig:yt(t,l)},o),n(l?a("agents.heartbeatEnabledForAgent","Heartbeat enabled for {{name}}",{name:t.name}):a("agents.heartbeatDisabled","Heartbeat disabled for {{name}}",{name:t.name}),"success"),await H()}catch(u){n(a("agents.heartbeatUpdateFailed","Failed to update heartbeat: {{error}}",{error:ie(u)}),"error")}finally{la(u=>{const g=new Set(u);return g.delete(t.id),g})}}},os=t=>Ht(t,!1),xa=async t=>{if(_e||Ve.has(t.id))return;const l=oa[t.id]??"";if(l.trim()===""){n(a("agents.heartbeatEnterMinutes","Please enter a heartbeat interval in minutes"),"error");return}const u=Number(l);if(isNaN(u)){n(a("agents.heartbeatMustBeNumber","Heartbeat interval must be a valid number"),"error");return}if(u<=0){n(a("agents.heartbeatMustBePositive","Heartbeat interval must be greater than 0"),"error");return}if(u>=1&&u<5){rt(t.id);try{await dt(t.id,{runtimeConfig:{...yt(t,!0),heartbeatIntervalMs:rn}},o),n(a("agents.heartbeatClampedToMin",{count:u,defaultValue_one:"Heartbeat interval set to 5 minutes (minimum). {{count}} minute was below the 5-minute minimum.",defaultValue_other:"Heartbeat interval set to 5 minutes (minimum). {{count}} minutes was below the 5-minute minimum."}),"success"),it(null),Xe(x=>{const f={...x};return delete f[t.id],f}),H()}catch(x){n(a("agents.heartbeatIntervalUpdateFailed","Failed to update heartbeat interval: {{error}}",{error:ie(x)}),"error")}finally{rt(null)}return}const g=Math.round(u*6e4);rt(t.id);try{await dt(t.id,{runtimeConfig:{...yt(t,!0),heartbeatIntervalMs:g}},o),n(a("agents.heartbeatIntervalUpdated","Heartbeat interval updated to {{interval}} for {{name}}",{interval:Pa(g),name:t.name}),"success"),it(null),Xe(x=>{const f={...x};return delete f[t.id],f}),H()}catch(x){n(a("agents.heartbeatIntervalUpdateFailed","Failed to update heartbeat interval: {{error}}",{error:ie(x)}),"error")}finally{rt(null)}},cs=t=>{if(_e||Ve.has(t.id))return;const l=Yt(t.runtimeConfig?.heartbeatIntervalMs),u=Math.round(l/6e4);it(t.id),Xe(g=>({...g,[t.id]:String(u)}))},fe=s.useCallback((t,l)=>{ce(t),Ce(l?.initialTab??"dashboard"),He(l?.initialRunId??null),he(l?.preferActiveRun??!1)},[]),qe=s.useCallback(()=>{ce(null),Ce("dashboard"),He(null),he(!1)},[]),fa=s.useCallback(t=>{fe(t)},[fe]),ds=s.useCallback(t=>{Le(t),fe(t)},[fe]),us=s.useCallback(async({agentId:t,deleted:l})=>{await je(),l&&V===t&&qe()},[je,V,qe]),gs=s.useCallback(t=>{fe(t),C&&ee(!1)},[C,fe]),ms=async(t,l)=>{ot(u=>{const g=new Map(u);return g.set(t,"running"),g});try{await on(t,o,{source:"on_demand",triggerDetail:"Triggered from dashboard"}),n(a("agents.heartbeatRunStarted","Heartbeat run started for {{name}}",{name:l}),"success"),await H(),ot(u=>{const g=new Map(u);return g.delete(t),g})}catch(u){ot(g=>{const x=new Map(g);return x.delete(t),x}),n(a("agents.heartbeatRunFailed","Failed to start heartbeat run: {{error}}",{error:ie(u)}),"error")}},Je=s.useCallback(t=>Math.min(Hn,Math.max(Ln,t)),[]),ae=s.useCallback(t=>{const l=Ae.current,u=at.current?.querySelector(".agent-org-chart");if(!l||!u)return{...t,scale:Je(t.scale)};const g=Je(t.scale),x=u.scrollWidth*g,f=u.scrollHeight*g,L=l.clientWidth,X=l.clientHeight,re=Math.min(gt,L-x-gt),q=gt,ve=Math.min(gt,X-f-gt),m=gt;return{scale:g,x:Math.max(re,Math.min(q,t.x)),y:Math.max(ve,Math.min(m,t.y))}},[Je]),At=s.useCallback((t,l,u)=>{const g=Ae.current;g&&Y(x=>{const f=Je(t),L=g.getBoundingClientRect(),X=l-L.left,re=u-L.top,q=(X-x.x)/x.scale,ve=(re-x.y)/x.scale;return ae({scale:f,x:X-q*f,y:re-ve*f})})},[Je,ae]),ct=s.useCallback(()=>{const t=Ae.current,l=at.current?.querySelector(".agent-org-chart");if(!t||!l)return;const u=t.clientWidth,g=t.clientHeight,x=l.scrollWidth,f=l.scrollHeight;if(x<=0||f<=0)return;const L=Je(Math.min(u/x,g/f,1)),X=(u-x*L)/2,re=(g-f*L)/2;Y(ae({scale:L,x:X,y:re}))},[Je,ae]),Dt=s.useCallback(t=>{ge(t),t!=="org"&&Y({scale:1,x:0,y:0}),C&&V&&qe()},[qe,C,V]),va=t=>i.find(l=>l.value===t)?.label??t,Rt=s.useMemo(()=>bn({tree:Ze,availableWidth:Ue,preference:ye}),[Ze,ye,Ue]),ja=s.useCallback(t=>{Q(t),Y({scale:1,x:0,y:0})},[]);s.useEffect(()=>{Y({scale:1,x:0,y:0}),d.current=!1},[o,Rt]),s.useLayoutEffect(()=>{U!=="org"||De||Ze.length===0||d.current||(ct(),d.current=!0)},[U,Ze.length,ct,De]);const hs=s.useCallback((t,l)=>{l?st.current.set(t,l):st.current.delete(t)},[]),Na=s.useCallback(()=>e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"btn-icon touch-target",onClick:()=>Y(t=>ae({...t,scale:t.scale*.9})),"aria-label":a("agents.orgChartZoomOut","Zoom out org chart"),title:a("agents.zoomOut","Zoom out"),children:e.jsx(Nn,{size:16})}),e.jsxs("span",{className:"agent-org-chart-controls__zoom-label","aria-live":"polite",children:[Math.round(I.scale*100),"%"]}),e.jsx("button",{type:"button",className:"btn-icon touch-target",onClick:()=>Y(t=>ae({...t,scale:t.scale*1.1})),"aria-label":a("agents.orgChartZoomIn","Zoom in org chart"),title:a("agents.zoomIn","Zoom in"),children:e.jsx(vn,{size:16})}),e.jsxs("button",{type:"button",className:"btn touch-target btn-sm agent-org-chart-controls__fit-btn",onClick:ct,"aria-label":a("agents.orgChartFit","Fit org chart"),title:a("agents.orgChartFit","Fit org chart"),children:[e.jsx(Xs,{size:16}),a("agents.fit","Fit")]}),e.jsxs("button",{type:"button",className:"btn touch-target btn-sm",onClick:()=>Y(t=>ae({...t,x:0,y:0})),"aria-label":a("agents.orgChartCenter","Center org chart"),title:a("agents.orgChartCenter","Center org chart"),children:[e.jsx(Ys,{size:16}),a("agents.center","Center")]})]}),[ae,ct,I.scale]),ps=s.useCallback(t=>{if(!(t.ctrlKey||t.metaKey))return;t.preventDefault();const l=t.deltaY>0?.9:1.1;At(I.scale*l,t.clientX,t.clientY)},[I.scale,At]),bs=s.useCallback(t=>{if(t.target.closest(".org-chart-node-card"))return;if(t.currentTarget.setPointerCapture?.(t.pointerId),de.current.set(t.pointerId,{x:t.clientX,y:t.clientY}),de.current.size===1){Ee.current={x:t.clientX-I.x,y:t.clientY-I.y,pointerId:t.pointerId},Ct(!0);return}if(de.current.size===2){const u=Array.from(de.current.values()),g=u[0].x-u[1].x,x=u[0].y-u[1].y;nt.current={distance:Math.hypot(g,x),scale:I.scale,centerX:(u[0].x+u[1].x)/2,centerY:(u[0].y+u[1].y)/2},Ee.current=null}},[I.scale,I.x,I.y]),xs=s.useCallback(t=>{if(de.current.has(t.pointerId)){if(de.current.set(t.pointerId,{x:t.clientX,y:t.clientY}),de.current.size>=2){const l=Array.from(de.current.values()),u=nt.current;if(!u)return;const g=l[0].x-l[1].x,x=l[0].y-l[1].y,f=Math.hypot(g,x),L=u.scale*(f/u.distance);At(L,u.centerX,u.centerY);return}!Ee.current||Ee.current.pointerId!==t.pointerId||Y(l=>ae({...l,x:t.clientX-Ee.current.x,y:t.clientY-Ee.current.y}))}},[ae,At]),ya=s.useCallback(t=>{de.current.delete(t.pointerId),de.current.size<2&&(nt.current=null),de.current.size===0&&(Ee.current=null,Ct(!1))},[]),fs=s.useCallback(t=>{if(t.key==="ArrowLeft")Y(l=>ae({...l,x:l.x+Et}));else if(t.key==="ArrowRight")Y(l=>ae({...l,x:l.x-Et}));else if(t.key==="ArrowUp")Y(l=>ae({...l,y:l.y+Et}));else if(t.key==="ArrowDown")Y(l=>ae({...l,y:l.y-Et}));else if(t.key==="+"||t.key==="=")Y(l=>ae({...l,scale:l.scale*1.1}));else if(t.key==="-")Y(l=>ae({...l,scale:l.scale*.9}));else if(t.key==="0")ct();else if(t.key==="Home")Y({scale:1,x:0,y:0});else return;t.preventDefault()},[ae,ct]),ka=s.useCallback(()=>{const t=[{value:"horizontal",label:a("agents.layoutHorizontal","Horizontal"),icon:e.jsx(Ha,{size:16}),ariaLabel:a("agents.layoutHorizontalAria","Horizontal layout")},{value:"vertical",label:a("agents.layoutVertical","Vertical"),icon:e.jsx(Ra,{size:16}),ariaLabel:a("agents.layoutVerticalAria","Vertical layout")},{value:"auto",label:a("agents.layoutAuto","Auto"),icon:e.jsx(mt,{size:16}),ariaLabel:a("agents.layoutAutoAria","Automatic layout")}];return e.jsx("div",{className:"agent-org-chart-layout-toggle","data-testid":"agent-org-chart-layout-toggle",children:t.map(l=>{const u=ye===l.value;return e.jsxs("button",{type:"button",className:`btn-icon touch-target agent-org-chart-layout-toggle__button${u?" btn-icon--active":""}`,onClick:()=>ja(l.value),"aria-pressed":u,"aria-label":l.ariaLabel,title:l.ariaLabel,"data-layout-value":l.value,children:[l.icon,e.jsx("span",{className:"agent-org-chart-layout-toggle__text",children:l.label})]},l.value)})})},[ja,ye]),vs=t=>Array.isArray(t.metadata?.skills)?t.metadata.skills:[],Ft=t=>nn(t,bt),js=be||W||We===0,Ns=be||W||ze===0,ys=be||W||_e||y===0,ks=be||W||_e||K===0,Ca=Z&&_.length===0,vt=s.useCallback(()=>{oe(!0)},[]);return e.jsxs("div",{className:"agents-view",children:[e.jsx(Zs,{icon:Jt,title:a("agents.title","Agents"),actions:e.jsxs("div",{className:"agents-view-controls",children:[e.jsxs("div",{className:"view-toggle",children:[e.jsx("button",{className:`view-toggle-btn${U==="list"?" active":""}`,onClick:()=>Dt("list"),title:a("agents.listView","List view"),"aria-label":a("agents.listView","List view"),"aria-pressed":U==="list",children:e.jsx(Ra,{size:16})}),e.jsx("button",{className:`view-toggle-btn${U==="board"?" active":""}`,onClick:()=>Dt("board"),title:a("agents.boardView","Board view"),"aria-label":a("agents.boardView","Board view"),"aria-pressed":U==="board",children:e.jsx(ht,{size:16})}),e.jsx("button",{className:`view-toggle-btn${U==="org"?" active":""}`,onClick:()=>Dt("org"),title:a("agents.orgChartView","Org Chart view"),"aria-label":a("agents.orgChartView","Org Chart view"),"aria-pressed":U==="org",children:e.jsx(Ha,{size:16})})]}),e.jsxs("div",{className:`agents-view-primary-actions${we?" agents-view-primary-actions--controls-open":""}`,children:[e.jsx("button",{ref:xe,className:`btn-icon agent-controls-trigger${we?" agent-controls-trigger--active":""}`,onClick:()=>le(t=>!t),title:a("agents.controls","Controls"),"aria-label":a("agents.controls","Controls"),"aria-haspopup":"dialog","aria-expanded":we,"aria-controls":It,children:e.jsx(qs,{size:16})}),e.jsx("button",{className:"btn-icon",onClick:()=>void H(),title:a("agents.refresh","Refresh"),"aria-label":a("agents.refresh","Refresh"),children:e.jsx(mt,{size:16,className:Z?"spin":void 0})}),!C&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{className:"btn btn-sm agent-import-trigger",onClick:()=>{S(!0),le(!1)},"aria-label":a("agents.import","Import"),title:a("agents.import","Import"),children:[e.jsx(Qt,{size:16}),a("agents.import","Import")]}),e.jsxs("button",{className:"btn btn-task-create btn-sm",onClick:()=>{vt(),le(!1)},"aria-label":a("agents.newAgent","New Agent"),title:a("agents.newAgent","New Agent"),children:[e.jsx(Ta,{size:16}),a("agents.newAgent","New Agent")]})]}),we&&e.jsxs("div",{ref:tt,id:It,className:"agent-controls-panel agent-controls-panel--scrollable",role:"dialog","aria-label":a("agents.agentControls","Agent controls"),"aria-modal":"false",children:[e.jsx("div",{className:"agent-controls",children:e.jsxs("div",{className:"agent-controls-filters",children:[e.jsxs("div",{className:"agent-state-filter",children:[e.jsx(Js,{size:14}),e.jsxs("select",{className:"agent-state-filter-select",value:T,onChange:t=>E(t.target.value),"aria-label":a("agents.filterByState","Filter agents by state"),children:[e.jsx("option",{value:"all",children:a("agents.stateAll","All States")}),e.jsx("option",{value:"idle",children:a("agents.stateIdle","Idle")}),e.jsx("option",{value:"active",children:a("agents.stateActive","Active")}),e.jsx("option",{value:"running",children:a("agents.stateRunning","Running")}),e.jsx("option",{value:"paused",children:a("agents.statePaused","Paused")}),e.jsx("option",{value:"error",children:a("agents.stateError","Error")})]})]}),e.jsxs("label",{className:"checkbox-label agent-system-filter",children:[e.jsx("input",{type:"checkbox",checked:v,onChange:t=>h(t.target.checked),"aria-label":a("agents.showSystemAgents","Show system agents")}),a("agents.showSystemAgents","Show system agents")]})]})}),C&&e.jsxs("div",{className:"agent-controls-mobile-actions",children:[e.jsxs("button",{className:"btn btn-sm agent-import-trigger",onClick:()=>{S(!0),le(!1)},"aria-label":a("agents.import","Import"),title:a("agents.import","Import"),children:[e.jsx(Qt,{size:16}),a("agents.import","Import")]}),e.jsxs("button",{className:"btn btn-task-create btn-sm",onClick:()=>{vt(),le(!1)},"aria-label":a("agents.newAgent","New Agent"),title:a("agents.newAgent","New Agent"),children:[e.jsx(Ta,{size:16}),a("agents.newAgent","New Agent")]})]}),e.jsxs("div",{className:"agent-controls-bulk-actions",role:"menu","aria-label":a("agents.bulkAgentActions","Bulk agent actions"),children:[e.jsxs("button",{type:"button",className:"agent-detail-bulk-menu-item",role:"menuitem",disabled:js,onClick:()=>{le(!1),ha("paused")},children:[e.jsxs("span",{className:"agent-controls-bulk-actions__label",children:[e.jsx(Tt,{}),e.jsx("span",{children:a("agents.pauseAllAgents","Pause All Agents")})]}),e.jsx("span",{className:"agent-detail-bulk-menu-item-hint",children:be?a("agents.loadingEligibility","Loading eligibility…"):We===0?a("agents.noAgentsToPauseHint","No active or running project agents to pause"):a("agents.pauseCountHint",{count:We,defaultValue_one:"Pause {{count}} active/running agent",defaultValue_other:"Pause {{count}} active/running agents"})})]}),e.jsxs("button",{type:"button",className:"agent-detail-bulk-menu-item",role:"menuitem",disabled:ys,onClick:()=>{le(!1),pa(!0)},children:[e.jsxs("span",{className:"agent-controls-bulk-actions__label",children:[e.jsx(Nt,{}),e.jsx("span",{children:a("agents.enableAllHeartbeats","Enable all heartbeats")})]}),e.jsx("span",{className:"agent-detail-bulk-menu-item-hint",children:a("agents.enableHeartbeatsCountHint","Enable {{count}} disabled project heartbeats",{count:y})})]}),e.jsxs("button",{type:"button",className:"agent-detail-bulk-menu-item",role:"menuitem",disabled:ks,onClick:()=>{le(!1),pa(!1)},children:[e.jsxs("span",{className:"agent-controls-bulk-actions__label",children:[e.jsx(Tt,{}),e.jsx("span",{children:a("agents.disableAllHeartbeats","Disable all heartbeats")})]}),e.jsx("span",{className:"agent-detail-bulk-menu-item-hint",children:a("agents.disableHeartbeatsCountHint","Disable {{count}} enabled project heartbeats",{count:K})})]}),e.jsxs("button",{type:"button",className:"agent-detail-bulk-menu-item",role:"menuitem",disabled:Ns,onClick:()=>{le(!1),ha("active")},children:[e.jsxs("span",{className:"agent-controls-bulk-actions__label",children:[e.jsx(Nt,{}),e.jsx("span",{children:a("agents.resumeAllAgents","Resume All Agents")})]}),e.jsx("span",{className:"agent-detail-bulk-menu-item-hint",children:be?a("agents.loadingEligibility","Loading eligibility…"):ze===0?a("agents.noAgentsToResumeHint","No paused project agents to resume"):a("agents.resumeCountHint",{count:ze,defaultValue_one:"Resume {{count}} paused agent",defaultValue_other:"Resume {{count}} paused agents"})})]})]}),e.jsx("div",{className:"agent-global-controls agent-controls-actions",children:e.jsxs("div",{className:"heartbeat-multiplier-group",children:[e.jsxs("div",{className:"heartbeat-multiplier-controls",children:[e.jsx("label",{htmlFor:"globalHeartbeatMultiplier",className:"heartbeat-multiplier-label",children:a("agents.heartbeatSpeed","Heartbeat Speed")}),e.jsx("input",{id:"globalHeartbeatMultiplier",className:"heartbeat-multiplier-slider touch-target",type:"range",min:.1,max:10,step:.1,value:bt,onChange:t=>{const l=Number(t.target.value);ma(Number.isFinite(l)&&l>0?l:1)},disabled:da}),e.jsxs("span",{className:"heartbeat-multiplier-value",children:["×",bt.toFixed(1)]}),e.jsx("select",{className:"heartbeat-multiplier-preset",value:String(Kt.reduce((t,l)=>Math.abs(l-bt)<Math.abs(t-bt)?l:t,Kt[0])),onChange:t=>{const l=Number(t.target.value);ma(Number.isFinite(l)&&l>0?l:1)},disabled:da,"aria-label":a("agents.heartbeatSpeedPreset","Heartbeat speed preset"),children:Kt.map(t=>e.jsxs("option",{value:String(t),children:["×",t]},t))})]}),e.jsx("small",{className:"text-secondary",children:a("agents.heartbeatSpeedHint","Scales all agent heartbeat intervals. ×0.5 = twice as fast, ×2.0 = twice as slow. Default: ×1.0")})]})}),e.jsx(yn,{agents:xt})]})]})]})}),e.jsx(_n,{isOpen:se,onClose:()=>{oe(!1),me(null)},onCreated:()=>{oe(!1),me(null),H()},projectId:o,prefillDraft:ue,agentOnboardingEnabled:b,existingAgents:_,onPrefillDraft:me}),e.jsx(Mn,{isOpen:O,onClose:()=>S(!1),onImported:()=>void H(),projectId:o}),e.jsx(Tn,{stats:z,activeAgents:ns,projectId:o,isOpen:pe,onToggle:()=>ee(t=>!t),onSelectAgent:gs,onOpenTaskLogs:j}),U==="org"?e.jsx("div",{className:"agents-org-full-view",children:e.jsx("div",{className:"agents-view-content agents-view-content--org-full",children:V?e.jsxs("div",{className:"agents-org-detail-view","data-testid":"agents-org-detail-view",children:[e.jsx("button",{type:"button",className:"btn btn-sm agents-org-detail-back",onClick:qe,"aria-label":a("agents.backToOrgChart","Back to org chart"),children:a("agents.backToOrgChart","Back to org chart")}),e.jsx(s.Suspense,{fallback:null,children:e.jsx(Oa,{inline:!0,showInlineBackButton:!1,agentId:V,projectId:o,onClose:qe,addToast:n,onChildClick:fa,initialTab:Re,initialRunId:ne,preferActiveRun:J},V)})]}):Ca?e.jsxs("div",{className:"agents-view-loading",role:"status","aria-live":"polite",children:[e.jsx(mt,{size:18,className:"spin"}),e.jsx("span",{children:a("agents.loadingAgents","Loading agents...")})]}):e.jsxs("div",{className:"agent-org-chart-shell","data-testid":"agent-org-chart-shell",children:[C?e.jsxs("div",{className:"agent-org-chart-controls","data-testid":"agent-org-chart-controls",children:[ka(),Na()]}):e.jsxs("div",{className:"agent-org-chart-toolbar",children:[ka(),e.jsx("div",{className:"agent-org-chart-controls","data-testid":"agent-org-chart-controls",children:Na()})]}),e.jsx("div",{ref:Ae,className:"agent-org-chart-viewport","data-testid":"agent-org-chart-viewport",tabIndex:0,role:"region","aria-label":a("agents.orgChartCanvas","Org chart canvas"),onWheel:ps,onPointerDown:bs,onPointerMove:xs,onPointerUp:ya,onPointerCancel:ya,onKeyDown:fs,"data-panning":Ge?"true":"false",children:e.jsxs("div",{ref:at,className:`agent-org-chart-canvas agent-org-chart-canvas--zoom-${Math.round((I.scale??1)*100)}`,"data-panning":Ge?"true":"false",style:{transform:`translate(${I.x}px, ${I.y}px) scale(${I.scale})`},children:[e.jsx("div",{className:`agent-org-chart${Rt==="vertical"?" agent-org-chart--vertical":""}`,"data-testid":"agent-org-chart","data-layout-mode":Rt,children:De?e.jsxs("div",{className:"agent-org-chart__loading",role:"status","aria-live":"polite",children:[e.jsx(mt,{size:18,className:"spin"}),e.jsx("span",{children:a("agents.loadingOrgChart","Loading org chart...")})]}):Ze.length===0?e.jsx(Wt,{onCtaClick:vt}):(Oe.current=[],Ze.map(t=>e.jsx(Ja,{node:t,onSelect:ds,onToggleHeartbeat:l=>void Ht(l,!Qe(l)),isHeartbeatPending:l=>_e||Ve.has(l),getHealthStatus:Ft,selectedAgentId:Ne,registerNodeElement:hs,linksRef:Oe},t.agent.id)))}),e.jsx(Fn,{links:Oe.current,nodeElements:st.current,canvasRef:at,viewportRef:Ae,layoutMode:Rt,transform:I})]})})]})})}):e.jsxs("div",{className:"agents-split-layout",style:C?void 0:{gridTemplateColumns:`${M}px var(--space-sm) minmax(0, 1fr)`},children:[e.jsx("div",{className:`agents-split-sidebar${Be?" agents-split-sidebar--hidden-mobile":""}`,children:e.jsx("div",{className:"agents-view-content",children:Ca?e.jsxs("div",{className:"agents-view-loading",role:"status","aria-live":"polite",children:[e.jsx(mt,{size:18,className:"spin"}),e.jsx("span",{children:a("agents.loadingAgents","Loading agents...")})]}):U==="board"?e.jsx("div",{className:"agent-board",children:xt.length===0?e.jsx(Wt,{onCtaClick:vt}):xt.map(t=>{const l=Ft(t),u=sa(t,l,a),g=ta(t.state),x=aa("agent-board-card",t.state);return e.jsxs("div",{className:`agent-board-card ${x}${V===t.id?" agent-card--selected":""}`,children:[e.jsxs("div",{ref:B(`board:${t.id}`),className:"agent-board-clickable",onClick:()=>fe(t.id),role:"button",tabIndex:0,onKeyDown:f=>{(f.key==="Enter"||f.key===" ")&&(f.key===" "&&f.preventDefault(),fe(t.id))},children:[e.jsxs("div",{className:"agent-board-header",children:[e.jsx("span",{className:"agent-board-icon",children:e.jsx(Mt,{agent:t,size:20})}),e.jsx("span",{className:"agent-board-badge badge text-secondary",children:va(t.role)}),e.jsx("span",{className:`agent-board-badge badge ${g}`,children:t.state}),(t.pendingApprovalCount??0)>0?e.jsxs("span",{className:"agent-board-badge badge agent-approval-badge",title:a("agents.pendingApprovals","Pending approvals"),children:[e.jsx("span",{className:"status-dot status-dot--pending"}),t.pendingApprovalCount]}):null]}),e.jsx("div",{className:"agent-board-name",children:t.name}),e.jsx("div",{className:"agent-board-id",children:t.id}),t.taskId&&e.jsx(Zt,{taskId:t.taskId,isInViewport:P(`board:${t.id}`),projectId:o}),e.jsxs("div",{className:"agent-board-health",style:{color:l.color},title:u.title,children:[l.icon,u.label?` ${u.label}`:""]})]}),e.jsxs("div",{className:"agent-board-actions",children:[e.jsx(qa,{agent:t,pending:_e||Ve.has(t.id),onToggle:f=>void Ht(f,!Qe(f))}),(t.state==="idle"||t.state==="paused"||t.state==="error")&&e.jsx("button",{className:"btn btn-sm btn-danger",onClick:()=>void ba(t.id,t.name),title:a("agents.delete","Delete"),children:e.jsx(Ea,{size:14})})]})]},t.id)})}):e.jsx("div",{className:"agent-list",children:xt.length===0?e.jsx(Wt,{onCtaClick:vt}):xt.map(t=>{const l=Ft(t),u=sa(t,l,a),g=ta(t.state),x=aa("agent-card",t.state),f=Yt(t.runtimeConfig?.heartbeatIntervalMs),L=Qs(f),re=!Qe(t)?Xt:String(f),q=_e||ss===t.id||Ve.has(t.id),ve=Dn(t);return e.jsxs("div",{ref:B(`list:${t.id}`),className:`agent-card agent-card--clickable ${x}${V===t.id?" agent-card--selected":""}`,onClick:m=>{const F=m.target;if(F===m.currentTarget){fe(t.id);return}const ke=F.closest('button, select, input, [role="button"]');ke&&ke!==m.currentTarget||fe(t.id)},role:"button",tabIndex:0,onKeyDown:m=>{m.target===m.currentTarget&&(m.key==="Enter"||m.key===" ")&&(m.key===" "&&m.preventDefault(),fe(t.id))},"aria-label":a("agents.openDetails","Open details for {{name}}",{name:t.name}),children:[e.jsxs("div",{className:"agent-card-header",children:[e.jsxs("div",{className:"agent-info",children:[ts===t.id?e.jsx("select",{ref:as,className:"select agent-role-select",value:t.role,onChange:m=>void ls(t.id,m.target.value),onKeyDown:m=>rs(m,t.id),onBlur:()=>lt(null),autoFocus:!0,children:i.map(m=>e.jsxs("option",{value:m.value,children:[m.icon," ",m.label]},m.value))}):e.jsx("span",{className:"agent-icon agent-icon--clickable",onClick:m=>{m.stopPropagation(),lt(t.id)},title:a("agents.clickToChangeRole","Click to change role"),role:"button",tabIndex:0,onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.stopPropagation(),lt(t.id))},children:e.jsx(Mt,{agent:t,size:20})}),e.jsxs("div",{className:"agent-meta",children:[e.jsx("span",{className:"agent-name",children:t.name}),e.jsx("span",{className:"agent-id text-secondary",children:t.id})]}),e.jsx(Wa,{size:20,className:"agent-card-chevron"})]}),e.jsxs("div",{className:"agent-badges",children:[e.jsx("span",{className:`badge ${g}`,children:t.state}),e.jsxs("span",{className:"badge",style:{color:l.color},title:u.title,children:[l.icon,u.label?` ${u.label}`:""]}),e.jsx("span",{className:"badge text-secondary",children:va(t.role)}),(t.pendingApprovalCount??0)>0?e.jsxs("span",{className:"badge agent-approval-badge",title:a("agents.pendingApprovals","Pending approvals"),children:[e.jsx("span",{className:"status-dot status-dot--pending"}),t.pendingApprovalCount]}):null,(()=>{const m=vs(t);if(m.length===0)return null;const F=m.slice(0,2),ke=m.length-2;return e.jsxs(e.Fragment,{children:[F.map($t=>e.jsx("span",{className:"badge badge-skill",title:$t,children:mn($t)},$t)),ke>0&&e.jsxs("span",{className:"badge badge-skill",children:["+",ke]})]})})()]})]}),e.jsxs("div",{className:"agent-card-body",children:[e.jsxs("div",{className:"agent-model-runtime",children:[e.jsxs("span",{className:"text-secondary",children:[ve.isRuntime?a("agents.runtime","Runtime"):a("agents.model","Model"),":"]}),e.jsx("span",{className:"badge agent-model-runtime__value",title:ve.label??a("agents.auto","Auto"),children:ve.label??a("agents.auto","Auto")})]}),t.state==="error"&&t.lastError?e.jsx(en,{errorText:t.lastError,issueContext:{surface:"AgentsView list",agentId:t.id,agentName:t.name,agentState:t.state,taskId:t.taskId}}):null,t.taskId&&e.jsxs("div",{className:"agent-task",children:[e.jsx("span",{className:"text-secondary",children:a("agents.workingOn","Working on:")}),e.jsx("span",{className:"badge",children:e.jsx(Ua,{taskId:t.taskId,taskColumn:t.taskColumn})}),e.jsx(Zt,{taskId:t.taskId,isInViewport:P(`list:${t.id}`),projectId:o})]}),!Ie(t)&&e.jsxs("div",{className:"agent-heartbeat-control",children:[e.jsx("span",{className:"text-secondary",children:a("agents.heartbeat","Heartbeat:")}),ia===t.id?e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"text",inputMode:"numeric",pattern:"[0-9]*",className:"input agent-heartbeat-custom-input",value:oa[t.id]??"",onChange:m=>Xe(F=>({...F,[t.id]:m.target.value})),onKeyDown:m=>{m.key==="Enter"?xa(t):m.key==="Escape"&&(it(null),Xe(F=>{const ke={...F};return delete ke[t.id],ke}))},disabled:q,"aria-label":a("agents.customHeartbeatAria","Custom heartbeat interval in minutes for {{name}}",{name:t.name})}),e.jsx("span",{className:"text-secondary",children:a("agents.minutesUnit","min")}),e.jsx("button",{className:"btn btn-sm",onClick:()=>void xa(t),disabled:q,title:a("agents.saveCustomInterval","Save custom interval"),children:a("agents.save","Save")}),e.jsx("button",{className:"btn btn-sm",onClick:()=>{it(null),Xe(m=>{const F={...m};return delete F[t.id],F})},disabled:q,title:a("agents.cancelCustomInterval","Cancel custom interval"),children:a("agents.cancel","Cancel")})]}):e.jsx(e.Fragment,{children:e.jsxs("select",{className:"select agent-heartbeat-select",value:re,onChange:m=>{const F=m.target.value;F===Xt?os(t):F==="__custom__"?cs(t):is(t,Number(F))},disabled:q,"aria-label":a("agents.setHeartbeatAria","Set heartbeat interval for {{name}}",{name:t.name}),children:[e.jsx("option",{value:Xt,children:a("agents.heartbeatDisabledOption","Disabled")}),L.map(m=>e.jsx("option",{value:m.value,children:m.label},m.value)),tn.some(m=>m.value===f)&&e.jsx("option",{value:"__custom__",children:a("agents.customHeartbeatOption","Custom...")})]})}),q&&e.jsx("span",{className:"agent-heartbeat-saving text-secondary",children:a("agents.saving","Saving…")}),t.lastHeartbeatAt&&(()=>{const m=new Date(t.lastHeartbeatAt),F=new Date(m.getTime()+f),ke=t.state==="active"||t.state==="running";return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"agent-heartbeat-last text-secondary",title:m.toLocaleString(),children:a("agents.lastHeartbeatAt","Last: {{time}}",{time:m.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})}),ke&&e.jsx("span",{className:"agent-heartbeat-next text-secondary",title:F.toLocaleString(),children:a("agents.nextHeartbeatAt","Next: {{time}}",{time:F.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})})]})})()]})]}),e.jsxs("div",{className:"agent-card-actions",children:[e.jsxs("div",{className:"agent-card-actions-group agent-card-actions-group--primary",children:[t.state==="idle"&&e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"active"),disabled:Ye.has(t.id),title:a("agents.activate","Activate"),children:[e.jsx(Nt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.start","Start")})]}),t.state==="active"&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ms(t.id,t.name),disabled:Ye.has(t.id),title:a("agents.runNow","Run Now"),"aria-label":a("agents.runNowAria","Run now for {{name}}",{name:t.name}),children:[e.jsx(ht,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.runNow","Run Now")})]}),e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"paused"),disabled:Ye.has(t.id),title:a("agents.pause","Pause"),children:[e.jsx(Tt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.pause","Pause")})]})]}),t.state==="paused"&&e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"active"),disabled:Ye.has(t.id),title:a("agents.resume","Resume"),children:[e.jsx(Nt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.resume","Resume")})]}),t.state==="running"&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{className:"btn btn-sm",onClick:()=>fe(t.id,{initialTab:"runs",initialRunId:null,preferActiveRun:!0}),title:a("agents.viewLiveRun","View live run details"),"aria-label":a("agents.viewLiveRunAria","View live run details for {{name}}",{name:t.name}),children:[e.jsx(ht,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.running","Running")})]}),e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"paused"),disabled:Ye.has(t.id),title:a("agents.pause","Pause"),children:[e.jsx(Tt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.pause","Pause")})]})]}),t.state==="error"&&e.jsxs("button",{className:"btn btn-sm",onClick:()=>void ft(t.id,"active"),disabled:Ye.has(t.id),title:a("agents.retry","Retry"),children:[e.jsx(Nt,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.retry","Retry")})]})]}),e.jsxs("div",{className:"agent-card-actions-group agent-card-actions-group--secondary",children:[e.jsxs("button",{className:"btn btn-sm agent-card-details-btn",onClick:()=>fe(t.id),title:a("agents.viewDetailsFor","View details for {{name}}",{name:t.name}),"aria-label":a("agents.viewDetailsFor","View details for {{name}}",{name:t.name}),children:[e.jsx(an,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.details","Details")})]}),(t.state==="idle"||t.state==="paused"||t.state==="error")&&e.jsxs("button",{className:"btn btn-sm btn-danger",onClick:()=>void ba(t.id,t.name),title:a("agents.delete","Delete"),children:[e.jsx(Ea,{size:14})," ",e.jsx("span",{className:"agent-card-action-label",children:a("agents.delete","Delete")})]})]})]})]},t.id)})})})}),!C&&e.jsx("div",{className:"agents-split-resize-handle","data-testid":"agents-sidebar-resize-handle",role:"separator","aria-orientation":"vertical","aria-valuemin":Ka,"aria-valuemax":Xa,"aria-valuenow":M,"aria-label":a("agents.resizeSidebar","Resize agents sidebar"),tabIndex:0,onPointerDown:Qa,onKeyDown:es}),e.jsx("div",{className:`agents-split-detail${C&&!V?" agents-split-detail--hidden-mobile":""}`,children:V?e.jsx(s.Suspense,{fallback:null,children:e.jsx(Oa,{inline:!0,showInlineBackButton:C,agentId:V,projectId:o,onClose:qe,addToast:n,onChildClick:fa,initialTab:Re,initialRunId:ne,preferActiveRun:J,onMutationSuccess:us},V)}):e.jsxs("div",{className:"agents-detail-empty-state",children:[e.jsx(Jt,{size:48}),e.jsx("h3",{children:a("agents.selectAnAgent","Select an agent")}),e.jsx("p",{children:a("agents.selectAgentHint","Choose an agent from the sidebar to view details")})]})})]})]})}export{qn as AgentsView};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as a,j as t,b as Bi}from"./vendor-react-SZ_qB27O.js";import{c as ei,aq as Et,ao as bt,ap as xa,bx as Ms,dr as Oi,ds as Ui,dt as ra,au as X,du as Hi,bw as Dt,dv as At,bq as wa,dw as Ki,dx as Vi,dy as Wi,dz as Xi,dA as qi,dB as Gi,bc as Yi,cN as ya,dC as ke,aX as Qi,bL as ti,bv as xn,dD as Zi,al as wn,dE as Ji,dF as eo,dG as to,bo as no,aI as ao,b1 as vn,W as so,cW as io,dH as oo,dI as ro,f as co,aV as lo,dJ as uo,dK as ni,dL as ai,dM as mo,df as ho,J as fo,dN as go,dO as po,dP as Ns,dQ as vo,dR as bo,dS as Rs,y as xo,q as wo,u as yo,dd as ca,C as un,dT as mn,dU as js,v as la,P as gt,V as ko,bt as As,cZ as Ts,cY as Co,X as Es,aH as So,dV as Mo,x as da,bK as No,dW as ua,dX as Ds,dY as ma,dZ as Is,d_ as Ls,d$ as Ps,e0 as Ro,e1 as jo,bI as Fs}from"./index-
|
|
1
|
+
import{r as a,j as t,b as Bi}from"./vendor-react-SZ_qB27O.js";import{c as ei,aq as Et,ao as bt,ap as xa,bx as Ms,dr as Oi,ds as Ui,dt as ra,au as X,du as Hi,bw as Dt,dv as At,bq as wa,dw as Ki,dx as Vi,dy as Wi,dz as Xi,dA as qi,dB as Gi,bc as Yi,cN as ya,dC as ke,aX as Qi,bL as ti,bv as xn,dD as Zi,al as wn,dE as Ji,dF as eo,dG as to,bo as no,aI as ao,b1 as vn,W as so,cW as io,dH as oo,dI as ro,f as co,aV as lo,dJ as uo,dK as ni,dL as ai,dM as mo,df as ho,J as fo,dN as go,dO as po,dP as Ns,dQ as vo,dR as bo,dS as Rs,y as xo,q as wo,u as yo,dd as ca,C as un,dT as mn,dU as js,v as la,P as gt,V as ko,bt as As,cZ as Ts,cY as Co,X as Es,aH as So,dV as Mo,x as da,bK as No,dW as ua,dX as Ds,dY as ma,dZ as Is,d_ as Ls,d$ as Ps,e0 as Ro,e1 as jo,bI as Fs}from"./index-C2xsZoNG.js";import{u as ze}from"./vendor-i18n-GF3RlKbq.js";import{SessionTerminal as $s}from"./SessionTerminal-DtFLyUaK.js";import"./vendor-codemirror-jBKmHyH0.js";import"./vendor-reactflow-9C3XTE7_.js";import"./vendor-xterm-BNq00GSj.js";import"./shield-alert-tlZOi02c.js";/**
|
|
2
2
|
* @license lucide-react v1.7.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as f,j as s,g as on,a as Vx,b as El,c as Ux}from"./vendor-react-SZ_qB27O.js";import{c as Ht,gF as qx,dd as uh,L as _l,h as gi,gG as bi,a as or,w as lr,gH as Ml,aa as Tl,gI as yu,R as Kt,ax as Wx,gJ as Hx,aK as Gx,aR as xi,gK as dh,dh as Xx,aV as fh,aW as mh,bp as Yx,aI as Il,c2 as Dl,c3 as Zx,gL as Jx,al as Qx,f8 as ej,gM as tj,ad as vh,gN as rj,gO as nj,bI as gu,gP as bu,fl as aj,gk as xu,gQ as ij,bc as To,gR as sj,gS as oj,gT as lj,gU as cj,gl as uj,gV as dj,gW as fj,gX as mj,gh as vj,gY as hj,y as pj,aL as yj,gm as hh,gZ as gj,bv as bj,u as xj,g_ as jj,ar as wj,g$ as ju,h0 as Cj,h1 as kj,h2 as Sj,h3 as Pj,h4 as Nj,h5 as Oj,h6 as Rl,h7 as Ll,h8 as wu,cN as Ea,h9 as Cu,ha as Io,hb as ph,hc as Do,bd as yh,bJ as gh,Y as Aj,c4 as bh,d1 as Ej,x as Ro,cV as _j,C as $l,P as _a,hd as Mj,he as Tj,v as Ij,eC as ku,X as Ca,E as Dj,p as Rj,a$ as Su,aG as Lj,hf as Pu,hg as $j,hh as Bj,hi as Fj,hj as zj,de as Kj,hk as Vj,hl as Uj}from"./index-
|
|
1
|
+
import{r as f,j as s,g as on,a as Vx,b as El,c as Ux}from"./vendor-react-SZ_qB27O.js";import{c as Ht,gF as qx,dd as uh,L as _l,h as gi,gG as bi,a as or,w as lr,gH as Ml,aa as Tl,gI as yu,R as Kt,ax as Wx,gJ as Hx,aK as Gx,aR as xi,gK as dh,dh as Xx,aV as fh,aW as mh,bp as Yx,aI as Il,c2 as Dl,c3 as Zx,gL as Jx,al as Qx,f8 as ej,gM as tj,ad as vh,gN as rj,gO as nj,bI as gu,gP as bu,fl as aj,gk as xu,gQ as ij,bc as To,gR as sj,gS as oj,gT as lj,gU as cj,gl as uj,gV as dj,gW as fj,gX as mj,gh as vj,gY as hj,y as pj,aL as yj,gm as hh,gZ as gj,bv as bj,u as xj,g_ as jj,ar as wj,g$ as ju,h0 as Cj,h1 as kj,h2 as Sj,h3 as Pj,h4 as Nj,h5 as Oj,h6 as Rl,h7 as Ll,h8 as wu,cN as Ea,h9 as Cu,ha as Io,hb as ph,hc as Do,bd as yh,bJ as gh,Y as Aj,c4 as bh,d1 as Ej,x as Ro,cV as _j,C as $l,P as _a,hd as Mj,he as Tj,v as Ij,eC as ku,X as Ca,E as Dj,p as Rj,a$ as Su,aG as Lj,hf as Pu,hg as $j,hh as Bj,hi as Fj,hj as zj,de as Kj,hk as Vj,hl as Uj}from"./index-C2xsZoNG.js";import{u as oe}from"./vendor-i18n-GF3RlKbq.js";import{a as xh,b as jh,p as qj,w as Wj}from"./vendor-reactflow-9C3XTE7_.js";import{w as wh,n as Ch,a as Ee,A as Bl,G as Hj,H as Gj,l as kh,t as ji,b as Pt,p as Lo,s as Ma,c as Sh,q as Xj,r as Yj,u as Zj,v as Jj,x as Qj,y as e0,z as t0,C as r0,D as n0,k as a0,E as i0,F as s0}from"./step-yuy0qJer.js";import{b as o0,p as l0}from"./band-CquvqAHh.js";import{d as Ta,n as c0,e as u0,f as $o,g as Rr,h as Fl,a as zl,i as Nu,j as zt,c as d0,k as wi,l as f0,m as m0}from"./linear-BX4tvjNK.js";import{i as dr,a as Gt}from"./init-Dmth1JHB.js";import{m as Ou,a as Au,p as v0,q as h0,u as p0,s as y0,r as g0,v as b0,w as x0,x as j0,y as w0,z as C0,A as k0,B as S0,t as P0}from"./time-DMMzMWYg.js";import{f as N0,b as O0}from"./defaultLocale-DX6XiGOO.js";import{i as A0,o as E0}from"./ordinal-DILIJJjt.js";import{r as _0}from"./agentsOrgChartLayout-BMvyuaLA.js";import{U as Kl}from"./upload-DWK0F17Z.js";import{S as M0}from"./shield-alert-tlZOi02c.js";import{b as T0}from"./agent-import-generation-DQeNZMAm.js";import{r as I0,B as D0,R as R0,b as L0,a as $0}from"./ReportModal-BD1ZUDdV.js";import{PluginManager as B0}from"./PluginManager-C3DegklW.js";import{v as F0}from"./projectDetection-G3XuxD2X.js";import"./vendor-codemirror-jBKmHyH0.js";import"./vendor-xterm-BNq00GSj.js";import"./DirectoryPicker-DsCk3Nsw.js";import"./folder-open-BRrB44UX.js";/**
|
|
2
2
|
* @license lucide-react v1.7.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|