@axiom-lattice/gateway 7.0.0 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/{WechatChannelAdapter-7WHE5UGY.mjs → WechatChannelAdapter-QLPJJD6S.mjs} +55 -4
  2. package/dist/WechatChannelAdapter-QLPJJD6S.mjs.map +1 -0
  3. package/dist/{a2a-standard-DP53K7RC.mjs → a2a-standard-VL5I7B4W.mjs} +831 -59
  4. package/dist/a2a-standard-VL5I7B4W.mjs.map +1 -0
  5. package/dist/{chunk-FGSFOXIX.mjs → chunk-L6MBEEII.mjs} +2 -2
  6. package/dist/{chunk-J6B2VFJ7.mjs → chunk-W3YH4S6G.mjs} +2 -1
  7. package/dist/{chunk-MWWLJMYN.mjs → chunk-XUWD4VKY.mjs} +4 -2
  8. package/dist/chunk-XUWD4VKY.mjs.map +1 -0
  9. package/dist/embed/embed-page-AgentDetailSideApp-23TCREK6.js +1 -0
  10. package/dist/embed/embed-page-AgentGovernanceWorkbench-N3F65F3W.js +1 -0
  11. package/dist/embed/embed-page-LangfuseDashboard-WBE7GJPU.js +1 -0
  12. package/dist/embed/embed-page-MessageGraph-T3EFAXTX.js +6 -0
  13. package/dist/embed/embed-page-ReactChart-FJFQU4IV.js +1 -0
  14. package/dist/embed/embed-page-SkillFlow-2BUXCLAL.js +1 -0
  15. package/dist/embed/{embed-page-TasksSideApp-D7FFG2OC.js → embed-page-TasksSideApp-VFKEYFGR.js} +1 -1
  16. package/dist/embed/embed-page-ThreadMaintenancePanel-EPBJ4J3L.js +1 -0
  17. package/dist/embed/{embed-page-TopologyRuntimeView-IS6HEO4F.js → embed-page-TopologyRuntimeView-OWESU7IK.js} +1 -1
  18. package/dist/embed/{embed-page-WorkflowAutomationView-IDVSQTJB.js → embed-page-WorkflowAutomationView-5J2RQTZ7.js} +1 -1
  19. package/dist/embed/{embed-page-chunk-XFV3N2LD.js → embed-page-chunk-2ZBEWYJQ.js} +1 -1
  20. package/dist/embed/{embed-page-chunk-SRMYHWL3.js → embed-page-chunk-34RWKVD7.js} +1 -1
  21. package/dist/embed/{embed-page-chunk-JFMBLJXY.js → embed-page-chunk-6QLLZJVH.js} +1 -1
  22. package/dist/embed/embed-page-chunk-B2KNZ3EW.js +59 -0
  23. package/dist/embed/{embed-page-chunk-BOEX26H7.js → embed-page-chunk-BFVNPGSW.js} +8 -8
  24. package/dist/embed/embed-page-chunk-CKUSXUKW.js +6746 -0
  25. package/dist/embed/embed-page-chunk-CQLDPGEG.js +1 -0
  26. package/dist/embed/embed-page-chunk-D7YTSCUO.js +1 -0
  27. package/dist/embed/{embed-page-chunk-S2KVN3RB.js → embed-page-chunk-DJKD2PHO.js} +1 -1
  28. package/dist/embed/{embed-page-chunk-EYYKNTX7.js → embed-page-chunk-EU32IF7M.js} +1 -1
  29. package/dist/embed/embed-page-chunk-F7TA3LRH.js +459 -0
  30. package/dist/embed/embed-page-chunk-F7ZUYG42.js +121 -0
  31. package/dist/embed/{embed-page-chunk-NFMLKSPM.js → embed-page-chunk-GSUSX54K.js} +1 -1
  32. package/dist/embed/embed-page-chunk-JMTQCORF.js +211 -0
  33. package/dist/embed/embed-page-chunk-L7TDL27M.js +15 -0
  34. package/dist/embed/{embed-page-chunk-TVVAPR7I.js → embed-page-chunk-PTKGTA4B.js} +1 -1
  35. package/dist/embed/embed-page-chunk-R7TLHZR3.js +7 -0
  36. package/dist/embed/{embed-page-chunk-FEMHLB6I.js → embed-page-chunk-WKQHSEZ4.js} +1 -1
  37. package/dist/embed/embed-page-code-highlighter-72YW5HXH.js +1 -0
  38. package/dist/embed/{embed-page-en-ETUCVCSC.js → embed-page-en-E35GE7TA.js} +1 -1
  39. package/dist/embed/embed-page-en-EKHHBS6L.js +1 -0
  40. package/dist/embed/embed-page-en-G5J7KW6V.js +1 -0
  41. package/dist/embed/embed-page-en-HDSVQ4O6.js +1 -0
  42. package/dist/embed/embed-page-en-KAXIJJ4X.js +1 -0
  43. package/dist/embed/embed-page-en-OIICQSPX.js +3 -0
  44. package/dist/embed/embed-page-en-TMGUHZ6Y.js +1 -0
  45. package/dist/embed/embed-page-en-TSCGSJAI.js +1 -0
  46. package/dist/embed/embed-page-en-XJYWUJEL.js +1 -0
  47. package/dist/embed/{embed-page-en-2SWQHPAC.js → embed-page-en-ZCNNAMUD.js} +1 -1
  48. package/dist/embed/{embed-page-mermaid-KEBBKHQH.js → embed-page-mermaid-4PZJJXQU.js} +1 -1
  49. package/dist/embed/embed-page-zh-2UVQB4RP.js +3 -0
  50. package/dist/embed/embed-page-zh-6EBUEFKP.js +1 -0
  51. package/dist/embed/embed-page-zh-72QSTYRF.js +1 -0
  52. package/dist/embed/embed-page-zh-B3WBWQAV.js +1 -0
  53. package/dist/embed/embed-page-zh-IR652A6J.js +1 -0
  54. package/dist/embed/embed-page-zh-KEMYJJLT.js +1 -0
  55. package/dist/embed/embed-page-zh-Q22DIOB3.js +1 -0
  56. package/dist/embed/{embed-page-zh-PRMID3YQ.js → embed-page-zh-Z3URTIHW.js} +1 -1
  57. package/dist/embed/{embed-page-zh-D3IC6BGA.js → embed-page-zh-ZLK3GLM3.js} +1 -1
  58. package/dist/embed/embed-page.js +1 -1
  59. package/dist/index.d.mts +137 -14
  60. package/dist/index.d.ts +137 -14
  61. package/dist/index.js +3942 -1479
  62. package/dist/index.js.map +1 -1
  63. package/dist/index.mjs +2272 -635
  64. package/dist/index.mjs.map +1 -1
  65. package/dist/{open-NTH7AGD3.mjs → open-7ED27I5B.mjs} +3 -3
  66. package/dist/{open-exposure-AGNG4MC3.mjs → open-exposure-I3DN2X4E.mjs} +6 -4
  67. package/dist/{open-exposure-AGNG4MC3.mjs.map → open-exposure-I3DN2X4E.mjs.map} +1 -1
  68. package/package.json +13 -7
  69. package/dist/WechatChannelAdapter-7WHE5UGY.mjs.map +0 -1
  70. package/dist/a2a-standard-DP53K7RC.mjs.map +0 -1
  71. package/dist/chunk-MWWLJMYN.mjs.map +0 -1
  72. package/dist/embed/embed-page-AgentDetailSideApp-KNVDO3FZ.js +0 -1
  73. package/dist/embed/embed-page-AgentGovernanceWorkbench-QSKWVADP.js +0 -1
  74. package/dist/embed/embed-page-MessageGraph-VGXX4OWU.js +0 -6
  75. package/dist/embed/embed-page-ReactChart-PIISVBLU.js +0 -1
  76. package/dist/embed/embed-page-SkillFlow-JLI5MEZE.js +0 -1
  77. package/dist/embed/embed-page-ThreadMaintenancePanel-FSQVVIIG.js +0 -1
  78. package/dist/embed/embed-page-chunk-37LGEEJU.js +0 -21
  79. package/dist/embed/embed-page-chunk-436REIWY.js +0 -1
  80. package/dist/embed/embed-page-chunk-4W34QOXT.js +0 -517
  81. package/dist/embed/embed-page-chunk-BANVRQT7.js +0 -322
  82. package/dist/embed/embed-page-chunk-N66H4DNH.js +0 -6657
  83. package/dist/embed/embed-page-code-highlighter-66CSPTFK.js +0 -1
  84. package/dist/embed/embed-page-en-27OIE2UA.js +0 -1
  85. package/dist/embed/embed-page-en-7IHJFS63.js +0 -1
  86. package/dist/embed/embed-page-en-7NF4GCC2.js +0 -1
  87. package/dist/embed/embed-page-en-FP6DWSG3.js +0 -1
  88. package/dist/embed/embed-page-en-GHTROC4H.js +0 -1
  89. package/dist/embed/embed-page-en-WUFULCUS.js +0 -1
  90. package/dist/embed/embed-page-en-X6B6RVNL.js +0 -1
  91. package/dist/embed/embed-page-en-XUMHP5CL.js +0 -1
  92. package/dist/embed/embed-page-zh-EQ5X2M32.js +0 -1
  93. package/dist/embed/embed-page-zh-FXQGY5HD.js +0 -1
  94. package/dist/embed/embed-page-zh-G75LDQU4.js +0 -1
  95. package/dist/embed/embed-page-zh-KJXKOUIY.js +0 -1
  96. package/dist/embed/embed-page-zh-RMSS6PXD.js +0 -1
  97. package/dist/embed/embed-page-zh-VH6J7XZO.js +0 -1
  98. package/dist/embed/embed-page-zh-Y5X5Y2DF.js +0 -1
  99. /package/dist/{chunk-FGSFOXIX.mjs.map → chunk-L6MBEEII.mjs.map} +0 -0
  100. /package/dist/{chunk-J6B2VFJ7.mjs.map → chunk-W3YH4S6G.mjs.map} +0 -0
  101. /package/dist/{open-NTH7AGD3.mjs.map → open-7ED27I5B.mjs.map} +0 -0
@@ -1,4 +1,4 @@
1
- import{a as fr,b as An}from"./embed-page-chunk-XFV3N2LD.js";import{b as $i,c as Hi}from"./embed-page-chunk-FEMHLB6I.js";import{a as Co}from"./embed-page-chunk-JFMBLJXY.js";import{c as To,d as Ro}from"./embed-page-chunk-NFMLKSPM.js";import{b as st,c as Ni,d as wo,e as Rt,f as xo,g as Oi,h as In,i as Cn,j as Fi,l as _i,m as zi}from"./embed-page-chunk-S2KVN3RB.js";import{a as qi,b as Ui}from"./embed-page-chunk-EYYKNTX7.js";import{J as Wi,K as Io,L as So,M as Ao,N as Bi,O as Po,P as ji,Q as Gi,R as Eo,S as Sn,U as gr,V as Ki,b as Ai,d as yo,e as Pi,f as vo,g as ho,j as Tn,o as Rn,p as bo,q as Ei,t as Di,u as Li,v as Mi,w as ko}from"./embed-page-chunk-N66H4DNH.js";import{Aa as Ti,G as pi,I as gi,Ia as Ri,L as fi,N as mi,Oa as mo,P as yi,Pa as Ii,Qa as Ci,R as fo,Va as Si,Xa as Nt,_ as vi,j as di,l as ci,m as Kn,oa as hi,pa as bi,qa as ki,sa as wi,ta as xi,y as ui}from"./embed-page-chunk-BANVRQT7.js";import{a as et}from"./embed-page-chunk-436REIWY.js";import{E as uo,j as Jr,r as ei,s as z,w as ti,z as vt}from"./embed-page-chunk-37LGEEJU.js";import{a as W}from"./embed-page-chunk-QV7QAJ4N.js";import{Ac as si,Bc as ur,Cc as pr,Fa as co,Ga as He,Ha as Yr,Ia as Be,Ja as Xr,Nc as li,Pb as cr,Ta as ni,U as Yt,W as U,Y as wn,Z as Gt,_ as it,aa as Xt,bb as oi,bc as go,ca as lr,da as dr,fa as Zr,ia as cn,ib as Gn,kb as ri,la as Vr,na as Qr,oa as Lt,pb as po,ra as ge,ta as Me,tc as Mt,ua as Tt,wa as at,xa as ze,yb as xn,yc as ai,zb as ii}from"./embed-page-chunk-4W34QOXT.js";import{a as Ie}from"./embed-page-chunk-R5QL57JJ.js";import{f as R}from"./embed-page-chunk-QBTAJ2YI.js";var Zs={react:{label:"capability",color:"blue"},capability:{label:"capability",color:"blue"},deep_agent:{label:"orchestrator",color:"orange"},orchestrator:{label:"orchestrator",color:"orange"},processing:{label:"workflow",color:"purple"},workflow:{label:"workflow",color:"purple"},a2a_remote:{label:"remote",color:"cyan"},remote:{label:"remote",color:"cyan"}};function Pn(e){return Zs[e]??{label:"capability",color:"blue"}}var Vs={enabled:"green",draft:"orange",disabled:"default"};function Vi(e){return Vs[e]??"default"}var Zi={blue:"#3b82f6",orange:"#f59e0b",green:"#22c55e",purple:"#a855f7",cyan:"#06b6d4"};function qn(e){return Zi[e]??Zi.cyan}function Jd(e){let t={enabled:"#22c55e",draft:"#f59e0b",disabled:"#d9d9d9"};return t[e]??t.disabled}function En(e){return typeof e.graphDefinition=="object"&&e.graphDefinition!==null?e.graphDefinition:{}}function yr(e){return((En(e).metadata??{}).tags??"").split(",").map(r=>r.trim()).filter(Boolean)}function vr(e){let o=(En(e).metadata??{}).version;return o?o.startsWith("v")?o:`v${o}`:"v1"}function hr(e){let o=(En(e).metadata??{}).status??"enabled";return o==="draft"||o==="disabled"?o:"enabled"}function mr(e){let n=En(e).subAgents??[],o=Array.isArray(n)?n.filter(Boolean):[];return Array.from(new Set(o))}function ec(e){return e.map(t=>{let n=En(t),o=String(n.type??"react");return{id:t.id,name:t.name,description:t.description,type:Pn(o).label,tags:yr(t),version:vr(t),status:hr(t),subAgents:mr(t)}})}function tc(e){let t=new Set(e.map(r=>r.id)),n=e.map(r=>({id:r.id,label:r.name,type:Pn(String(En(r).type??"react")).label,subAgentCount:mr(r).length})),o=[];for(let r of e)for(let i of mr(r))t.has(i)&&o.push({source:r.id,target:i});return{nodes:n,edges:o}}var Se=R(Ie());var te=R(Ie());var b=R(W()),{TextArea:Qs}=Me,{Text:It}=Be,Qi=["data","execution","workflow","assistant"],Yi={data:"chatConfig.agentPanel.category.data",execution:"chatConfig.agentPanel.category.execution",workflow:"chatConfig.agentPanel.category.workflow",assistant:"chatConfig.agentPanel.category.assistant",other:"chatConfig.agentPanel.category.other"},Ys={react:"chatConfig.agentPanel.typeDesc.react",deep_agent:"chatConfig.agentPanel.typeDesc.deepAgent",processing:"chatConfig.agentPanel.typeDesc.processing"},$n=(e,t)=>{if(Array.isArray(e)){let n=e.map(o=>$n(o));return(t==="tools"||t==="subAgents")&&n.every(o=>typeof o=="string")?[...n].sort():n}return e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).sort(([n],[o])=>n.localeCompare(o)).map(([n,o])=>[n,$n(o,n)])):e},Xi=e=>{if(typeof e!="string")return $n(e??null);try{return $n(JSON.parse(e))}catch{return e}},Ji=e=>JSON.stringify($n({...e,tools:[...e.tools].sort(),subAgents:[...e.subAgents].sort()})),Xs=Si(({token:e,css:t})=>({modalBody:t`
1
+ import{a as gr,b as Sn}from"./embed-page-chunk-2ZBEWYJQ.js";import{b as qi,c as $i}from"./embed-page-chunk-WKQHSEZ4.js";import{a as Io}from"./embed-page-chunk-6QLLZJVH.js";import{c as xo,d as To}from"./embed-page-chunk-GSUSX54K.js";import{b as st,c as Mi,d as ko,e as Rt,f as wo,g as Ni,h as Rn,i as In,j as Oi,l as Fi,m as _i}from"./embed-page-chunk-DJKD2PHO.js";import{a as cn}from"./embed-page-chunk-D7YTSCUO.js";import{a as Ki,b as Hi}from"./embed-page-chunk-EU32IF7M.js";import{J as Wi,K as Ro,L as Co,M as So,N as zi,O as Ao,P as Bi,Q as ji,R as Po,S as Cn,U as pr,V as Gi,b as Si,d as mo,e as Ai,f as yo,g as vo,j as xn,o as Tn,p as ho,q as Pi,t as Ei,u as Di,v as Li,w as bo}from"./embed-page-chunk-CKUSXUKW.js";import{g as Ci,i as Nt}from"./embed-page-chunk-JMTQCORF.js";import{a as et}from"./embed-page-chunk-CQLDPGEG.js";import{b as Xr,j as Jr,l as ei,o as vt,t as co}from"./embed-page-chunk-R7TLHZR3.js";import{Da as xi,H as ui,J as pi,La as Ti,N as gi,Q as fi,S as mi,Sa as fo,Ta as Ri,U as go,Ua as Ii,ba as yi,g as li,m as di,n as Gn,ra as vi,sa as hi,ta as bi,va as ki,wa as wi,z as ci}from"./embed-page-chunk-F7ZUYG42.js";import{k as W}from"./embed-page-chunk-L7TDL27M.js";import{a as z}from"./embed-page-chunk-QV7QAJ4N.js";import{B as oi,G as uo,Ja as Mt,Oa as ii,P as wn,Q as ri,Qa as ai,Ra as cr,Sa as ur,bb as si,ea as dr,i as ti,s as ni,sa as po,z as jn}from"./embed-page-chunk-B2KNZ3EW.js";import{Da as ge,Ia as Me,Ja as Tt,La as at,Ma as We,W as Qt,Ya as lo,Za as He,_ as U,_a as Qr,aa as kn,ba as Gt,bb as Be,db as Yr,fa as it,ha as Yt,ja as sr,ka as lr,pa as Ur,sa as dn,va as Zr,ya as Vr,za as Lt}from"./embed-page-chunk-F7TA3LRH.js";import{a as Ce}from"./embed-page-chunk-R5QL57JJ.js";import{f as C}from"./embed-page-chunk-QBTAJ2YI.js";var Hs={react:{label:"capability",color:"blue"},capability:{label:"capability",color:"blue"},deep_agent:{label:"orchestrator",color:"orange"},orchestrator:{label:"orchestrator",color:"orange"},processing:{label:"workflow",color:"purple"},workflow:{label:"workflow",color:"purple"},a2a_remote:{label:"remote",color:"cyan"},remote:{label:"remote",color:"cyan"}};function An(e){return Hs[e]??{label:"capability",color:"blue"}}var Us={enabled:"green",draft:"orange",disabled:"default"};function Zi(e){return Us[e]??"default"}var Ui={blue:"#3b82f6",orange:"#f59e0b",green:"#22c55e",purple:"#a855f7",cyan:"#06b6d4"};function Kn(e){return Ui[e]??Ui.cyan}function Yd(e){let t={enabled:"#22c55e",draft:"#f59e0b",disabled:"#d9d9d9"};return t[e]??t.disabled}function Pn(e){return typeof e.graphDefinition=="object"&&e.graphDefinition!==null?e.graphDefinition:{}}function mr(e){return((Pn(e).metadata??{}).tags??"").split(",").map(r=>r.trim()).filter(Boolean)}function yr(e){let o=(Pn(e).metadata??{}).version;return o?o.startsWith("v")?o:`v${o}`:"v1"}function vr(e){let o=(Pn(e).metadata??{}).status??"enabled";return o==="draft"||o==="disabled"?o:"enabled"}function fr(e){let n=Pn(e).subAgents??[],o=Array.isArray(n)?n.filter(Boolean):[];return Array.from(new Set(o))}function Xd(e){return e.map(t=>{let n=Pn(t),o=String(n.type??"react");return{id:t.id,name:t.name,description:t.description,type:An(o).label,tags:mr(t),version:yr(t),status:vr(t),subAgents:fr(t)}})}function Jd(e){let t=new Set(e.map(r=>r.id)),n=e.map(r=>({id:r.id,label:r.name,type:An(String(Pn(r).type??"react")).label,subAgentCount:fr(r).length})),o=[];for(let r of e)for(let i of fr(r))t.has(i)&&o.push({source:r.id,target:i});return{nodes:n,edges:o}}var Se=C(Ce());var te=C(Ce());var b=C(z()),{TextArea:Zs}=Me,{Text:It}=Be,Vi=["data","execution","workflow","assistant"],Qi={data:"chatConfig.agentPanel.category.data",execution:"chatConfig.agentPanel.category.execution",workflow:"chatConfig.agentPanel.category.workflow",assistant:"chatConfig.agentPanel.category.assistant",other:"chatConfig.agentPanel.category.other"},Vs={react:"chatConfig.agentPanel.typeDesc.react",deep_agent:"chatConfig.agentPanel.typeDesc.deepAgent",processing:"chatConfig.agentPanel.typeDesc.processing"},qn=(e,t)=>{if(Array.isArray(e)){let n=e.map(o=>qn(o));return(t==="tools"||t==="subAgents")&&n.every(o=>typeof o=="string")?[...n].sort():n}return e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).sort(([n],[o])=>n.localeCompare(o)).map(([n,o])=>[n,qn(o,n)])):e},Yi=e=>{if(typeof e!="string")return qn(e??null);try{return qn(JSON.parse(e))}catch{return e}},Xi=e=>JSON.stringify(qn({...e,tools:[...e.tools].sort(),subAgents:[...e.subAgents].sort()})),Qs=Ci(({token:e,css:t})=>({modalBody:t`
2
2
  padding: 0;
3
3
  height: 92vh;
4
4
  width: 100%;
@@ -168,7 +168,7 @@ import{a as fr,b as An}from"./embed-page-chunk-XFV3N2LD.js";import{b as $i,c as
168
168
  padding: 8px 0;
169
169
  `,searchBox:t`
170
170
  width: 220px;
171
- `})),ea=(e,t)=>t?.find(n=>n.type===e),ta=({assistant:e,allAssistants:t,visible:n,onClose:o,onSave:r,onDelete:i,embedded:l,initialSection:c="basic",onDirtyChange:d,onOverlayOpenChange:a})=>{let[y]=ge.useForm(),{token:g}=Yr.useToken(),{styles:u}=Xs(),{styles:f}=ji(),s=z(),{config:v}=uo(),{middlewareTypes:k,isLoading:h}=Po(v.middlewareTypesEndpoint),{get:m}=et(),[w,C]=(0,te.useState)(c),[P,S]=(0,te.useState)(e),[$,E]=(0,te.useState)(null),[x,M]=(0,te.useState)(!0),[de,X]=(0,te.useState)(!1),[V,pe]=(0,te.useState)(!1),[A,G]=(0,te.useState)(!1),[F,Q]=(0,te.useState)(!1),[oe,N]=(0,te.useState)([]),[B,me]=(0,te.useState)(""),[ee,ke]=(0,te.useState)(""),[he,O]=(0,te.useState)([]),[ne,De]=(0,te.useState)([]),[j,_]=(0,te.useState)(""),[ie,le]=(0,te.useState)(!1),[L,Le]=(0,te.useState)("react"),[be,Ce]=(0,te.useState)([]),[Ee,Ne]=(0,te.useState)({name:"",description:""}),[rt,We]=(0,te.useState)(""),[tt,Oe]=(0,te.useState)(null),[mt,kt]=(0,te.useState)(!1),At=(0,te.useRef)(0),Ge=(0,te.useRef)(null),sn=(0,te.useRef)(!1),ln=(0,te.useRef)(d),dn=(0,te.useRef)(a);(0,te.useEffect)(()=>{ln.current=d},[d]),(0,te.useEffect)(()=>()=>{ln.current?.(!1)},[]),(0,te.useEffect)(()=>{dn.current=a},[a]),(0,te.useEffect)(()=>()=>{dn.current?.(!1)},[]);let Bt=(0,te.useMemo)(()=>Ji({form:Ee,agentType:L,tools:he,subAgents:ne,prompt:j,middleware:be,graphDefinition:Xi(P?.graphDefinition)}),[Ee,L,he,ne,j,be,P?.graphDefinition]),wt=mt&&Bt!==rt,Ze=mt;sn.current=wt;let xt=(0,te.useMemo)(()=>{if(!e?.graphDefinition)return null;try{let p=typeof e.graphDefinition=="string"?JSON.parse(e.graphDefinition):e.graphDefinition;return{tools:p.tools||[],prompt:p.prompt||"",subAgents:p.subAgents||[],type:p.type||"react",middleware:p.middleware||[]}}catch{return null}},[e]),kn=(0,te.useCallback)(p=>(p||[]).filter(D=>D.schema?.properties&&Object.keys(D.schema.properties).length>0||D.tools&&D.tools.length>0).map((D,ce)=>({id:`${D.type}-${ce+1}`,type:D.type,name:D.name,description:D.description,enabled:!1,config:{}})),[]),Vt=(0,te.useCallback)((p,I)=>{let D=(I||[]).filter(Re=>Re.schema?.properties&&Object.keys(Re.schema.properties).length>0||Re.tools&&Re.tools.length>0),ce=new Map(p?.map(Re=>[Re.type,Re])||[]),qe=D.map((Re,Dt)=>{let Wn=ce.get(Re.type);return Wn?{...Wn,name:Re.name,description:Re.description}:{id:`${Re.type}-${Dt+1}`,type:Re.type,name:Re.name,description:Re.description,enabled:!1,config:{}}}),yt=new Set(D.map(Re=>Re.type));return[...qe,...(p??[]).filter(Re=>!yt.has(Re.type))]},[]),K=(0,te.useCallback)(async()=>{if(n){X(!0);try{let p=await m("/api/tools");p.success&&p.data?.records&&N(p.data.records)}catch(p){console.error("Failed to fetch tools:",p)}finally{X(!1)}}},[m,n]);(0,te.useEffect)(()=>{if(!n||!e){Ge.current=null,At.current+=1,kt(!1),S(e),Oe(null);return}if(Ge.current===e||Ge.current?.id===e.id&&sn.current)return;let p=v.availableMiddlewareTypes;if(!(!p&&h)){Ge.current=e,At.current+=1;{K();let I={name:e.name??"",description:e.description??""},D=xt?.tools??[],ce=xt?.subAgents??[],qe=xt?.prompt??"",yt=xt?.type??"react",Re=xt?Vt(xt.middleware,p||k):kn(p||k);kt(!1),S(e),Ne(I),O(D),De(ce),_(qe),Le(yt),Ce(Re),y.setFieldsValue({...I,type:yt}),Oe(Ji({form:I,agentType:yt,tools:D,subAgents:ce,prompt:qe,middleware:Re,graphDefinition:Xi(e.graphDefinition)}))}}},[n,e,wt,xt,y,K,kn,Vt,v.availableMiddlewareTypes,h,k]),(0,te.useEffect)(()=>{tt!==null&&Bt===tt&&(We(tt),Oe(null),kt(!0))},[Bt,tt]),(0,te.useEffect)(()=>{d?.(wt)},[wt,d]),(0,te.useEffect)(()=>{dn.current?.(ie||F)},[ie,F]);let ye=async()=>{if(!P||!Ze)return;let p=At.current,I=Bt;try{pe(!0);let ce={...await y.validateFields(),type:L,tools:he,subAgents:ne,prompt:j,middleware:be};await r?.(P,ce),At.current===p&&We(I)}catch(D){D instanceof Error&&at.error(D.message)}finally{pe(!1)}},Xe=async()=>{if(e){G(!0);try{await i?.(e),Q(!1),o()}catch(p){Q(!1),at.error(p instanceof Error?p.message:s("chatConfig.agentPanel.deleteFailed"))}finally{G(!1)}}},Je=p=>{Ce(I=>I.map(D=>{if(D.id!==p)return D;if(D.enabled)return{...D,enabled:!1};{let ce=(v.availableMiddlewareTypes||k)?.find(qe=>qe.type===D.type);return{...D,enabled:!0,config:ce?.defaultConfig||{}}}}))},Ke=(p,I)=>{Ce(D=>D.map(ce=>ce.id===p?{...ce,config:{...ce.config,...I}}:ce))},Pt=(p,I)=>{Ce(D=>D.map(ce=>ce.id===p?{...ce,allowedTools:I}:ce))},nt=p=>{let I=he.includes(p.id);return(0,b.jsx)(yo,{item:p,className:I?u.selectedCard:void 0,onClick:()=>O(D=>D.includes(p.id)?D.filter(ce=>ce!==p.id):[...D,p.id]),renderIcon:()=>(0,b.jsx)("span",{style:{fontSize:18,fontWeight:600},children:p.name.charAt(0).toUpperCase()}),renderPrimary:()=>(0,b.jsxs)(Lt,{size:6,children:[(0,b.jsx)("span",{children:p.name}),p.needUserApprove&&(0,b.jsx)(He,{color:"warning",style:{fontSize:10,padding:"0 4px",margin:0},children:s("chatConfig.agentPanel.approve")})]}),renderDetails:()=>(0,b.jsx)(Gi,{text:p.description,className:u.toolDesc}),renderHeaderActions:()=>(0,b.jsx)(cn,{checked:I,onClick:D=>D.stopPropagation(),onChange:()=>O(D=>D.includes(p.id)?D.filter(ce=>ce!==p.id):[...D,p.id])})},p.id)},we=p=>{let I=ne.includes(p.id);return(0,b.jsx)(yo,{item:p,className:I?u.selectedCard:void 0,onClick:()=>De(D=>D.includes(p.id)?D.filter(ce=>ce!==p.id):[...D,p.id]),renderIcon:()=>(0,b.jsx)(lr,{size:36,style:{backgroundColor:I?g.colorPrimary:g.colorSuccess,fontSize:15},children:p.name?.charAt(0).toUpperCase()||"A"}),renderPrimary:()=>p.name,renderSecondary:()=>p.description||s("chatConfig.agentPanel.noDescription"),renderHeaderActions:()=>(0,b.jsx)(cn,{checked:I,onClick:D=>D.stopPropagation(),onChange:()=>De(D=>D.includes(p.id)?D.filter(ce=>ce!==p.id):[...D,p.id])})},p.id)},_n=(0,te.useCallback)(p=>ea(p.type,v.availableMiddlewareTypes||k)?.category||"other",[v.availableMiddlewareTypes,k]),Et=(0,te.useMemo)(()=>{let p=new Map;for(let I of be){let D=_n(I),ce=p.get(D);ce?ce.push(I):p.set(D,[I])}return p},[be,_n]),zn=(0,te.useMemo)(()=>{let p=Array.from(Et.keys());return[...Qi.filter(I=>Et.has(I)),...p.filter(I=>!Qi.includes(I))]},[Et]),dt=(0,te.useMemo)(()=>be.length===0?null:be.find(p=>p.type===$)??be.find(p=>p.enabled)??be[0],[be,$]);if(!n||!e)return null;let ro=[{key:"basic",icon:(0,b.jsx)(pr,{}),label:s("chatConfig.agentPanel.nav.basic")},{key:"prompt",icon:(0,b.jsx)(cr,{}),label:s("chatConfig.agentPanel.nav.prompt")},{key:"tools",icon:(0,b.jsx)(li,{}),label:s("chatConfig.agentPanel.nav.tools"),badge:he.length},{key:"middleware",icon:(0,b.jsx)(ri,{}),label:s("chatConfig.agentPanel.nav.capabilities"),badge:be.filter(p=>p.enabled).length},{key:"subagents",icon:(0,b.jsx)(ai,{}),label:s("chatConfig.agentPanel.nav.subAgents"),badge:ne.length}],io=oe.filter(p=>p.name.toLowerCase().includes(B.toLowerCase())||p.description.toLowerCase().includes(B.toLowerCase())),Qt=t.filter(p=>p.id!==e.id),ao=Qt.filter(p=>(p.name||"").toLowerCase().includes(ee.toLowerCase())||(p.description||"").toLowerCase().includes(ee.toLowerCase())),ir=()=>(0,b.jsxs)("div",{style:{maxWidth:960},children:[(0,b.jsxs)("div",{className:u.pageHeader,children:[(0,b.jsx)("div",{className:u.pageIcon,children:(0,b.jsx)(pr,{})}),(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsx)("h2",{className:u.pageName,children:s("chatConfig.agentPanel.basic.title")}),(0,b.jsx)("p",{className:u.pageDesc,children:s("chatConfig.agentPanel.basic.desc")})]})]}),(0,b.jsxs)(ge,{form:y,layout:"vertical",autoComplete:"off",onValuesChange:(p,I)=>Ne({name:I.name??"",description:I.description??""}),children:[(0,b.jsx)(ge.Item,{name:"name",label:(0,b.jsx)(It,{strong:!0,style:{fontSize:14},children:s("chatConfig.agentPanel.field.name")}),rules:[{required:!0,message:s("chatConfig.agentPanel.validation.nameRequired")}],style:{marginBottom:24},children:(0,b.jsx)(Me,{placeholder:s("chatConfig.agentPanel.placeholder.name")})}),(0,b.jsxs)(ge.Item,{name:"type",label:(0,b.jsx)(It,{strong:!0,style:{fontSize:14},children:s("chatConfig.agentPanel.field.agentType")}),rules:[{required:!0}],style:{marginBottom:24},children:[(0,b.jsx)(Vr,{value:L,onChange:p=>Le(p),options:[{value:"react",label:s("chatConfig.agentType.executor")},{value:"deep_agent",label:s("chatConfig.agentType.orchestrator")},{value:"processing",label:s("chatConfig.agentType.workflow")}],block:!0}),(0,b.jsx)(It,{type:"secondary",style:{fontSize:13,marginTop:8,display:"block",lineHeight:1.6},children:s(Ys[L]??"chatConfig.agentPanel.typeDesc.react")})]}),(0,b.jsx)(ge.Item,{name:"description",label:(0,b.jsx)(It,{strong:!0,style:{fontSize:14},children:s("chatConfig.agentPanel.field.description")}),rules:[{required:!0,message:s("chatConfig.agentPanel.validation.descriptionRequired")}],style:{marginBottom:0},children:(0,b.jsx)(Me.TextArea,{placeholder:s("chatConfig.agentPanel.placeholder.description"),autoSize:{minRows:3,maxRows:6}})})]})]}),ar=()=>(0,b.jsxs)("div",{style:{maxWidth:960},children:[(0,b.jsxs)("div",{className:u.pageHeader,children:[(0,b.jsx)("div",{className:u.pageIcon,children:(0,b.jsx)(cr,{})}),(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsx)("h2",{className:u.pageName,children:s("chatConfig.agentPanel.prompt.title")}),(0,b.jsx)("p",{className:u.pageDesc,children:s("chatConfig.agentPanel.prompt.desc")})]}),(0,b.jsx)(U,{icon:(0,b.jsx)(xn,{}),onClick:()=>le(!0),children:s("chatConfig.agentPanel.prompt.expand")})]}),(0,b.jsx)(Qs,{"aria-label":s("chatConfig.agentPanel.prompt.title"),value:j,onChange:p=>_(p.target.value),placeholder:s("chatConfig.agentPanel.prompt.placeholder"),autoSize:{minRows:12,maxRows:24},style:{fontFamily:"monospace",fontSize:13,lineHeight:1.7}}),(0,b.jsx)("div",{style:{marginTop:8,display:"flex",justifyContent:"flex-end"},children:(0,b.jsx)(It,{type:"secondary",style:{fontSize:12},children:s("chatConfig.agentPanel.prompt.chars",{count:j.length})})})]}),so=()=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:u.sectionHeader,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:u.sectionTitle,children:s("chatConfig.agentPanel.tools.title")}),(0,b.jsx)("p",{className:u.sectionDesc,children:s("chatConfig.agentPanel.tools.desc")})]}),(0,b.jsxs)("div",{className:u.sectionActions,children:[(0,b.jsx)(Me,{allowClear:!0,prefix:(0,b.jsx)(ur,{}),placeholder:s("chatConfig.agentPanel.tools.search"),value:B,onChange:p=>me(p.target.value),className:u.searchBox}),(0,b.jsx)(It,{type:"secondary",style:{fontSize:13},children:s("chatConfig.agentPanel.tools.selected",{selected:he.length,total:oe.length})}),(0,b.jsx)(U,{size:"small",onClick:()=>O(he.length===oe.length?[]:oe.map(p=>p.id)),children:he.length===oe.length?s("chatConfig.agentPanel.clear"):s("chatConfig.agentPanel.selectAll")})]})]}),de?(0,b.jsx)("div",{style:{textAlign:"center",padding:60},children:(0,b.jsx)(Tt,{})}):io.length===0?(0,b.jsx)(Gt,{description:s("chatConfig.agentPanel.noTools"),style:{padding:60}}):(0,b.jsx)("div",{className:u.cardGrid,children:io.map(nt)})]}),jt=()=>dt?(0,b.jsx)(Eo,{middleware:dt,middlewareType:ea(dt.type,v.availableMiddlewareTypes||k),onToggle:()=>Je(dt.id),onConfigChange:p=>Ke(dt.id,p),onAllowedToolsChange:p=>Pt(dt.id,p)},dt.id):(0,b.jsx)(Gt,{description:s("chatConfig.agentPanel.noCapabilities"),style:{padding:60}}),lo=()=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:u.sectionHeader,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:u.sectionTitle,children:s("chatConfig.agentPanel.subAgents.title")}),(0,b.jsx)("p",{className:u.sectionDesc,children:s("chatConfig.agentPanel.subAgents.desc")})]}),(0,b.jsxs)("div",{className:u.sectionActions,children:[(0,b.jsx)(Me,{allowClear:!0,prefix:(0,b.jsx)(ur,{}),placeholder:s("chatConfig.agentPanel.subAgents.search"),value:ee,onChange:p=>ke(p.target.value),className:u.searchBox}),(0,b.jsx)(It,{type:"secondary",style:{fontSize:13},children:s("chatConfig.agentPanel.subAgents.selected",{selected:ne.length,total:Qt.length})}),(0,b.jsx)(U,{size:"small",onClick:()=>De(ne.length===Qt.length?[]:Qt.map(p=>p.id)),children:ne.length===Qt.length?s("chatConfig.agentPanel.clear"):s("chatConfig.agentPanel.selectAll")})]})]}),Qt.length===0?(0,b.jsx)(Gt,{description:s("chatConfig.agentPanel.noOtherAgents"),style:{padding:60}}):ao.length===0?(0,b.jsx)(Gt,{description:s("chatConfig.agentPanel.noMatching"),style:{padding:60}}):(0,b.jsx)("div",{className:u.cardGrid,children:ao.map(we)})]}),sr={basic:ir(),prompt:ar(),tools:so(),middleware:jt(),subagents:lo()},T=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:u.modalBody,style:l?{height:"100%",width:"100%"}:void 0,children:[!l&&(0,b.jsxs)("div",{className:u.topbar,children:[(0,b.jsxs)("div",{className:u.topbarLeft,children:[(0,b.jsx)(lr,{size:40,style:{backgroundColor:g.colorPrimary,fontSize:18,flexShrink:0},children:e.name?.charAt(0).toUpperCase()||"A"}),(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsx)("div",{className:u.agentName,children:e.name}),(0,b.jsx)("div",{className:u.agentDesc,children:e.description})]}),(0,b.jsx)(He,{color:"blue",style:{margin:0,fontSize:11,flexShrink:0},children:s("chatConfig.agentPanel.configWorkbench")})]}),(0,b.jsxs)(Lt,{children:[i&&(0,b.jsx)(Xt,{title:s("chatConfig.agentPanel.deleteAgent"),children:(0,b.jsx)(U,{"aria-label":s("chatConfig.agentPanel.deleteAgent"),type:"text",danger:!0,icon:(0,b.jsx)(po,{}),onClick:()=>Q(!0)})}),(0,b.jsx)(U,{type:"text",icon:(0,b.jsx)(Gn,{}),onClick:o})]})]}),(0,b.jsxs)("div",{className:u.layout,children:[(0,b.jsx)("div",{className:f.nav,role:"tablist","aria-label":s("chatConfig.agentPanel.navAriaLabel"),children:ro.map(p=>p.key!=="middleware"?(0,b.jsxs)("button",{type:"button",role:"tab","aria-selected":w===p.key,className:`${f.navItem} ${w===p.key?"active":""}`,onClick:()=>C(p.key),children:[(0,b.jsx)("span",{style:{fontSize:16},children:p.icon}),(0,b.jsx)("span",{children:p.label}),p.badge!==void 0&&p.badge>0&&(0,b.jsx)(dr,{count:p.badge,size:"small",className:f.navBadge,style:{backgroundColor:g.colorPrimary}})]},p.key):(0,b.jsxs)(te.default.Fragment,{children:[(0,b.jsxs)("button",{type:"button",role:"tab","aria-selected":w==="middleware",className:`${f.navItem} ${w==="middleware"?"active":""}`,onClick:()=>M(I=>!I),children:[(0,b.jsx)("span",{style:{fontSize:16},children:p.icon}),(0,b.jsx)("span",{children:p.label}),p.badge!==void 0&&p.badge>0&&(0,b.jsx)(dr,{count:p.badge,size:"small",className:f.navBadge,style:{backgroundColor:g.colorPrimary}})]}),x&&(0,b.jsx)("div",{className:f.navSub,children:zn.map(I=>(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:f.navGroupLabel,children:Yi[I]?s(Yi[I]):I}),Et.get(I)?.map(D=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":w==="middleware"&&$===D.type,className:`${f.navSubItem} ${w==="middleware"&&$===D.type?"active":""}`,onClick:()=>{E(D.type),C("middleware")},children:[(0,b.jsx)("span",{className:f.navStatusDot,style:{backgroundColor:D.enabled?g.colorSuccess:g.colorBorder}}),(0,b.jsx)("span",{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:D.name})]},D.id))]},I))})]},"middleware"))}),(0,b.jsx)("div",{className:u.content,children:Ze?sr[w]:(0,b.jsx)("div",{style:{minHeight:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsxs)(Lt,{direction:"vertical",align:"center",children:[(0,b.jsx)(Tt,{}),(0,b.jsx)(It,{type:"secondary",children:s("chatConfig.agentPanel.loadingConfig")})]})})})]}),(0,b.jsxs)("div",{className:u.footer,children:[(0,b.jsx)(It,{"data-testid":"config-footer-hint",className:u.footerHint,type:wt?"warning":"secondary",children:s(wt?"common.unsavedChanges":r?"chatConfig.agentPanel.footer.saveHint":"chatConfig.agentPanel.footer.viewing")}),(0,b.jsxs)(Lt,{children:[(0,b.jsx)(U,{onClick:o,children:s("common.close")}),r&&(0,b.jsx)(U,{"aria-label":s("common.save"),type:"primary",icon:(0,b.jsx)(si,{}),loading:V,disabled:!Ze,onClick:ye,children:s("common.save")})]})]})]}),(0,b.jsx)(ze,{title:s("chatConfig.agentPanel.prompt.title"),open:ie,onCancel:()=>le(!1),width:800,footer:[(0,b.jsx)(U,{onClick:()=>le(!1),children:s("common.close")},"cancel"),(0,b.jsx)(U,{type:"primary",onClick:()=>le(!1),children:s("chatConfig.agentPanel.done")},"done")],children:(0,b.jsx)(Me.TextArea,{"aria-label":s("chatConfig.agentPanel.prompt.title"),value:j,onChange:p=>_(p.target.value),rows:16,style:{width:"100%",fontFamily:"monospace",fontSize:13,lineHeight:1.7,resize:"vertical",minHeight:300}})}),(0,b.jsx)(ze,{title:s("chatConfig.agentPanel.delete.title"),open:F,onCancel:()=>Q(!1),footer:[(0,b.jsx)(U,{onClick:()=>Q(!1),children:s("common.cancel")},"cancel"),(0,b.jsx)(U,{type:"primary",danger:!0,loading:A,onClick:Xe,children:s("common.delete")},"delete")],children:(0,b.jsxs)(It,{children:[s("chatConfig.agentPanel.delete.confirmPrefix")," ",(0,b.jsx)(It,{strong:!0,children:e.name})," ",s("chatConfig.agentPanel.delete.confirmSuffix")]})})]});return l?(0,b.jsx)("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:T}):(0,b.jsx)(ze,{open:n,onCancel:o,width:"88vw",footer:null,closable:!1,centered:!0,styles:{body:{padding:0},content:{borderRadius:20,overflow:"hidden",padding:0},mask:{backdropFilter:"blur(4px)"}},destroyOnHidden:!0,children:T})};var ot=R(Ie());function Do(e,t){return e.find(n=>n.targetServerConfig?.targetAgentId===t)??e.find(n=>n.name===`eval-${t}`)??e.find(n=>typeof n.description=="string"&&n.description.includes(t))??null}var fe=R(W()),{Text:Js}=Be,el=e=>e?.page==="suite"&&e.suiteId?.trim()?{page:"suite",suiteId:e.suiteId,runId:""}:e?.page==="run"&&e.runId?.trim()?{page:"run",suiteId:"",runId:e.runId}:{page:"suites",suiteId:"",runId:""},Lo=({assistantId:e,initial:t,navigationKey:n,onEvalInvalidated:o})=>{let r=z(),{projects:i,loading:l,create:c}=ko(),d=Do(i,e),a=d?.id??"",y=d?.name||`eval-${e}`,g=el(t),u=`${g.page}\0${g.suiteId}\0${g.runId}`,[f,s]=(0,ot.useState)(g),{page:v,suiteId:k,runId:h}=f;(0,ot.useEffect)(()=>{s(g)},[e,u,n]);let{start:m}=bo(a),{workspaceId:w,projectId:C}=Nt(),[P,S]=(0,ot.useState)(!1),{create:$}=Rn(a),[E,x]=(0,ot.useState)(!1),[M,de]=(0,ot.useState)(""),[X,V]=(0,ot.useState)(0),[pe,A]=(0,ot.useState)(!1),[G]=ge.useForm(),[F,Q]=(0,ot.useState)(!1),[oe,N]=(0,ot.useState)([]),B=vt("__GLOBAL__"),me=(0,ot.useRef)(o);me.current=o;let ee=_=>({workspaceId:w||void 0,projectId:_||C||void 0}),ke=(0,ot.useCallback)(async()=>{try{let _=await B.request("/api/tenant-models");N(vo(_.data))}catch{}},[B]),he=async _=>{Q(!0);try{await c({name:`eval-${e}`,judgeModelConfig:{modelKey:_.modelKey||""},targetServerConfig:{base_url:"",api_key:"",targetAgentId:e}}),await Promise.resolve(me.current?.()).catch(()=>{}),G.resetFields(),A(!1)}catch(ie){at.error(ie instanceof Error?ie.message:r("governance.evalPanel.createFailed"))}finally{Q(!1)}},O=(_,ie,le)=>{s(L=>({page:_,suiteId:ie??L.suiteId,runId:le??L.runId}))},ne=async()=>{M.trim()&&(await $(a,{name:M.trim()}),V(_=>_+1),await o?.(),de(""),x(!1))},De=async _=>{let ie=await m(a,ee(_.projectId));ie?.run_id&&(await Promise.resolve(o?.()).catch(()=>{}),O("run",void 0,ie.run_id))},j=(0,fe.jsx)(ze,{title:r("governance.evalPanel.createTitle"),open:pe,onCancel:()=>{G.resetFields(),A(!1)},footer:null,destroyOnHidden:!0,width:480,children:(0,fe.jsxs)(ge,{form:G,layout:"vertical",onFinish:he,initialValues:{name:`eval-${e}`},children:[(0,fe.jsx)(ge.Item,{name:"name",label:r("governance.evalPanel.projectName"),children:(0,fe.jsx)(Me,{disabled:!0})}),(0,fe.jsx)(ge.Item,{name:"modelKey",label:r("governance.evalPanel.judgeModel"),rules:[{required:!0,message:r("governance.evalPanel.judgeModelRequired")}],children:(0,fe.jsx)(it,{placeholder:r("governance.evalPanel.modelPlaceholder"),options:oe.map(_=>({value:_.key,label:ho(_)}))})}),(0,fe.jsxs)(ge.Item,{style:{marginBottom:0,textAlign:"right"},children:[(0,fe.jsx)(U,{onClick:()=>{G.resetFields(),A(!1)},style:{marginRight:8},children:r("common.cancel")}),(0,fe.jsx)(U,{type:"primary",htmlType:"submit",loading:F,children:r("common.create")})]})]})});return l?(0,fe.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,fe.jsx)(Tt,{})}):d?(0,fe.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",background:"#f5f5f5"},children:[(0,fe.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",background:"#fff",borderBottom:"1px solid #f0f0f0",flexShrink:0},children:[(0,fe.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,fe.jsx)(ii,{style:{color:"#6366f1",fontSize:18}}),(0,fe.jsx)("span",{style:{fontSize:15,fontWeight:600},children:y}),(0,fe.jsx)(He,{color:"purple",children:r("governance.evalPanel.kindTag")})]}),v==="suites"&&(0,fe.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,fe.jsx)(U,{icon:(0,fe.jsx)(Mt,{}),onClick:()=>x(_=>!_),children:r("governance.evalPanel.newSuite")}),(0,fe.jsx)(U,{type:"primary",icon:(0,fe.jsx)(oi,{}),onClick:()=>S(!0),children:r("governance.evalPanel.runAll")})]})]}),v==="suites"&&E&&(0,fe.jsxs)("div",{style:{padding:"12px 24px",borderBottom:"1px solid #f0f0f0",display:"flex",gap:8,background:"#fff"},children:[(0,fe.jsx)("input",{type:"text",placeholder:r("governance.evalPanel.suiteNamePlaceholder"),value:M,onChange:_=>de(_.target.value),onKeyDown:_=>_.key==="Enter"&&void ne(),autoFocus:!0,style:{width:260,padding:"6px 12px",border:"1px solid #d9d9d9",borderRadius:8,fontSize:14,outline:"none"}}),(0,fe.jsx)(U,{type:"primary",size:"small",onClick:()=>void ne(),children:r("common.create")}),(0,fe.jsx)(U,{size:"small",onClick:()=>x(!1),children:r("common.cancel")})]}),(0,fe.jsxs)("div",{style:{flex:1,overflow:"auto",padding:28},children:[v==="suites"&&(0,fe.jsx)(Ei,{projectId:a,onSelectSuite:(_,ie)=>O("suite",ie),onEvalInvalidated:o},`${a}:${X}`),v==="suite"&&k&&(0,fe.jsx)(Li,{projectId:a,suiteId:k,onBack:()=>O("suites"),onRun:_=>{Promise.resolve(o?.()).catch(()=>{}),O("run",void 0,_)},onEvalInvalidated:o}),v==="run"&&h&&(0,fe.jsx)(Mi,{runId:h,onBack:()=>O("suites"),onRunSettled:o})]}),(0,fe.jsx)(Di,{open:P,onClose:()=>S(!1),onRun:De})]}):(0,fe.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:16,background:"#fff"},children:[(0,fe.jsx)(Gt,{description:(0,fe.jsx)(Js,{type:"secondary",children:r("governance.evalPanel.noProject")})}),(0,fe.jsx)(U,{type:"primary",icon:(0,fe.jsx)(Mt,{}),onClick:()=>{ke(),A(!0)},children:r("governance.evalPanel.createProject")}),j]})};var Fe=R(Ie());var Hn=R(Ie());var Z=R(W()),{Text:un}=Be,na={projectSelector:!1,modelSelector:!1,threadManagement:!0,attachments:!0,hitl:!0,genUI:!0,files:!1},oa=({open:e,assistantId:t,value:n,projects:o,models:r,submitting:i,error:l,onCancel:c,onSubmit:d})=>{let a=z(),[y]=ge.useForm(),[g,u]=(0,Hn.useState)(!1),[f,s]=(0,Hn.useState)(!1);(0,Hn.useEffect)(()=>{if(!e)return;let m=n?.features??na;u(m.projectSelector),s(m.modelSelector),y.setFieldsValue({name:n?.name??"",description:n?.description,defaultProjectId:n?.scope.defaultProjectId??o[0]?.id,allowedProjectIds:n?.scope.allowedProjectIds??(o[0]?[o[0].id]:[]),defaultModelKey:n?.scope.defaultModelKey,allowedModelKeys:n?.scope.allowedModelKeys,...m,title:n?.appearance.title,welcomeMessage:n?.appearance.welcomeMessage,primaryColor:n?.appearance.primaryColor,quickPrompts:n?.appearance.quickPrompts,identityPolicy:n?.identity?.policy??"unverified",identityIssuers:n?.identity?JSON.stringify(n.identity.issuers,null,2):void 0})},[y,e,o,n]);let v=async()=>{let m=await y.validateFields(),w=m.projectSelector?Array.from(new Set(m.allowedProjectIds??[])):[m.defaultProjectId],C=m.modelSelector?Array.from(new Set([...m.defaultModelKey?[m.defaultModelKey]:[],...m.allowedModelKeys??[]])):m.defaultModelKey?[m.defaultModelKey]:void 0,P,S=m.identityPolicy??"unverified";if(S!=="unverified"){let x;try{x=JSON.parse(m.identityIssuers??"")}catch{throw new Error("Trusted issuers must be a valid JSON array")}if(!Array.isArray(x)||x.length===0)throw new Error("Verified identity requires at least one trusted issuer");P={policy:S,issuers:x}}let $=(m.quickPrompts??[]).map(x=>({label:(x?.label??"").trim(),text:(x?.text??"").trim()})).filter(x=>x.label.length>0&&x.text.length>0),E={name:m.name.trim(),description:m.description?.trim()||void 0,scope:{defaultProjectId:m.defaultProjectId,allowedProjectIds:w,defaultModelKey:m.defaultModelKey||void 0,allowedModelKeys:C},features:{projectSelector:m.projectSelector,modelSelector:m.modelSelector,threadManagement:m.threadManagement,attachments:m.attachments,hitl:m.hitl,genUI:m.genUI,files:m.files??!1},appearance:{title:m.title?.trim()||void 0,welcomeMessage:m.welcomeMessage?.trim()||void 0,primaryColor:m.primaryColor?.trim()||void 0,...$.length>0?{quickPrompts:$}:{}},identity:P};await d(n?E:{...E,assistantId:t,integration:{type:"react_sdk"}})},k=o.map(m=>({value:m.id,label:m.name})),h=r.map(m=>({value:m.key,label:ho(m)}));return(0,Z.jsxs)(ze,{title:a(n?"governance.webApp.editTitle":"governance.webApp.createTitle"),open:e,onCancel:c,onOk:()=>void v().catch(()=>{}),okText:a(n?"common.save":"common.create"),confirmLoading:i,width:720,destroyOnHidden:!0,children:[l&&(0,Z.jsx)("div",{role:"alert",style:{color:"#ef4444",marginBottom:12},children:l}),(0,Z.jsxs)(ge,{form:y,layout:"vertical",initialValues:na,children:[(0,Z.jsx)(ge.Item,{name:"name",label:a("governance.webApp.name"),rules:[{required:!0,whitespace:!0},{max:120,message:a("governance.webApp.nameMax")}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.name"),maxLength:121})}),(0,Z.jsx)(ge.Item,{name:"description",label:a("governance.webApp.description"),rules:[{max:1e3,message:a("governance.webApp.descriptionMax")}],children:(0,Z.jsx)(Me.TextArea,{"aria-label":a("governance.webApp.description"),maxLength:1001})}),(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.projectScope")}),(0,Z.jsx)(ge.Item,{name:"projectSelector",valuePropName:"checked",children:(0,Z.jsx)(cn,{"aria-label":a("governance.webApp.projectSelector"),onChange:m=>u(m.target.checked),children:a("governance.webApp.projectSelector")})}),(0,Z.jsx)(ge.Item,{name:"allowedProjectIds",label:a("governance.webApp.allowedProjects"),dependencies:["defaultProjectId","projectSelector"],rules:g?[{required:!0,message:a("governance.webApp.selectProject")},{validator:(m,w)=>(w??[]).every(C=>k.some(P=>P.value===C))?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectValidProjects")))},{validator:(m,w)=>(w??[]).includes(y.getFieldValue("defaultProjectId"))?Promise.resolve():Promise.reject(new Error(a("governance.webApp.defaultInAllowed")))}]:void 0,children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.allowedProjects"),mode:"multiple",disabled:!g,options:k})}),(0,Z.jsx)(ge.Item,{name:"defaultProjectId",label:a("governance.webApp.defaultProject"),rules:[{required:!0},{validator:(m,w)=>!w||k.some(C=>C.value===w)?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectValidDefaultProject")))}],children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.defaultProject"),options:k})}),(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.modelScope")}),(0,Z.jsx)(ge.Item,{name:"modelSelector",valuePropName:"checked",children:(0,Z.jsx)(cn,{"aria-label":a("governance.webApp.modelSelector"),onChange:m=>s(m.target.checked),children:a("governance.webApp.modelSelector")})}),(0,Z.jsx)(ge.Item,{name:"allowedModelKeys",label:a("governance.webApp.allowedModels"),dependencies:["defaultModelKey","modelSelector"],rules:f?[{validator:(m,w)=>w?.length||y.getFieldValue("defaultModelKey")?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectModel")))},{validator:(m,w)=>(w??[]).every(C=>h.some(P=>P.value===C))?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectValidModels")))}]:void 0,children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.allowedModels"),mode:"multiple",allowClear:!0,disabled:!f,options:h})}),(0,Z.jsx)(ge.Item,{name:"defaultModelKey",label:a("governance.webApp.defaultModel"),rules:[{validator:(m,w)=>!w||h.some(C=>C.value===w)?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectValidDefaultModel")))}],children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.defaultModel"),allowClear:!0,options:h})}),(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.features")}),(0,Z.jsx)(Lt,{wrap:!0,children:["threadManagement","attachments","hitl","genUI","files"].map(m=>(0,Z.jsx)(ge.Item,{name:m,valuePropName:"checked",noStyle:!0,children:(0,Z.jsx)(cn,{"aria-label":a(`governance.webApp.feature.${m}`),children:a(`governance.webApp.feature.${m}`)})},m))}),(0,Z.jsx)("div",{style:{marginTop:20},children:(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.appearance")})}),(0,Z.jsx)(ge.Item,{name:"title",label:a("governance.webApp.title"),rules:[{max:120,message:a("governance.webApp.titleMax")}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.title"),maxLength:121})}),(0,Z.jsx)(ge.Item,{name:"welcomeMessage",label:a("governance.webApp.welcomeMessage"),rules:[{max:1e3,message:a("governance.webApp.welcomeMessageMax")}],children:(0,Z.jsx)(Me.TextArea,{"aria-label":a("governance.webApp.welcomeMessage"),maxLength:1001})}),(0,Z.jsx)(ge.Item,{name:"primaryColor",label:a("governance.webApp.primaryColor"),rules:[{pattern:qi,message:a("governance.webApp.colorFormat"),transform:m=>m||void 0}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.primaryColor"),placeholder:"#6366f1"})}),(0,Z.jsx)("div",{style:{marginTop:12},children:(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.quickPrompts")})}),(0,Z.jsx)(ge.List,{name:"quickPrompts",children:(m,{add:w,remove:C})=>(0,Z.jsxs)(Z.Fragment,{children:[m.map(P=>(0,Z.jsxs)(Lt,{align:"baseline",style:{display:"flex",marginBottom:8},children:[(0,Z.jsx)(ge.Item,{name:[P.name,"label"],rules:[{required:!0,whitespace:!0,message:a("governance.webApp.quickPromptLabelRequired")},{max:40,message:a("governance.webApp.quickPromptLabelMax")}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.quickPromptLabelAria",{index:P.name+1}),placeholder:a("governance.webApp.labelPlaceholder"),maxLength:41})}),(0,Z.jsx)(ge.Item,{name:[P.name,"text"],rules:[{required:!0,whitespace:!0,message:a("governance.webApp.quickPromptTextRequired")},{max:500,message:a("governance.webApp.quickPromptTextMax")}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.quickPromptTextAria",{index:P.name+1}),placeholder:a("governance.webApp.messagePlaceholder"),maxLength:501,style:{width:360}})}),(0,Z.jsx)(U,{"aria-label":a("governance.webApp.removeQuickPromptAria",{index:P.name+1}),onClick:()=>C(P.name),children:a("governance.webApp.remove")})]},P.key)),(0,Z.jsx)(U,{"aria-label":a("governance.webApp.addQuickPrompt"),onClick:()=>w({label:"",text:""}),disabled:m.length>=6,children:a("governance.webApp.addQuickPrompt")})]})}),(0,Z.jsx)("div",{style:{marginTop:20},children:(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.identity")})}),(0,Z.jsx)(ge.Item,{name:"identityPolicy",label:a("governance.webApp.identityPolicy"),initialValue:"unverified",children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.identityPolicy"),options:[{value:"unverified",label:a("governance.webApp.identityUnverified")},{value:"both",label:a("governance.webApp.identityBoth")},{value:"verified",label:a("governance.webApp.identityVerified")}]})}),(0,Z.jsx)(ge.Item,{name:"identityIssuers",label:a("governance.webApp.trustedIssuers"),tooltip:a("governance.webApp.trustedIssuersTooltip"),dependencies:["identityPolicy"],rules:[{validator:(m,w)=>{if(y.getFieldValue("identityPolicy")==="unverified"||w===void 0||w.trim()==="")return Promise.resolve();try{let C=JSON.parse(w);return Array.isArray(C)&&C.length>0?Promise.resolve():Promise.reject(new Error(a("governance.webApp.issuersEmpty")))}catch{return Promise.reject(new Error(a("governance.webApp.issuersInvalid")))}}}],children:(0,Z.jsx)(Me.TextArea,{"aria-label":a("governance.webApp.trustedIssuers"),rows:3,placeholder:'[{"iss":"https://host.example.com","aud":"<webAppId>","alg":"HS256","secret":"..."}]'})}),(0,Z.jsx)(un,{type:"secondary",children:a("governance.webApp.integrationType")})]})]})};var re=R(W()),{Text:Mo}=Be,Un=(e,t)=>e instanceof Error?e.message:t("governance.webApps.requestFailed"),tl={active:"governance.webApps.status.active",disabled:"governance.webApps.status.disabled",draft:"governance.webApps.status.draft"};function nl(e,t){let n=ei("lattice_token"),o=new Headers(t?.headers);return n&&o.set("Authorization",`Bearer ${n}`),o.set("X-Axiom-Web-App-Preview","true"),globalThis.fetch(e,{...t,headers:o})}var Zn=(e,t)=>{let n=`import '@axiom-lattice/react-sdk/web-app/styles.css';
171
+ `})),Ji=(e,t)=>t?.find(n=>n.type===e),ea=({assistant:e,allAssistants:t,visible:n,onClose:o,onSave:r,onDelete:i,embedded:l,initialSection:p="basic",onDirtyChange:d,onOverlayOpenChange:a})=>{let[v]=ge.useForm(),{token:g}=Qr.useToken(),{styles:u}=Qs(),{styles:f}=Bi(),s=W(),{config:y}=co(),{middlewareTypes:k,isLoading:h}=Ao(y.middlewareTypesEndpoint),{get:m}=et(),[w,I]=(0,te.useState)(p),[P,S]=(0,te.useState)(e),[$,E]=(0,te.useState)(null),[x,M]=(0,te.useState)(!0),[de,X]=(0,te.useState)(!1),[V,pe]=(0,te.useState)(!1),[A,G]=(0,te.useState)(!1),[F,Q]=(0,te.useState)(!1),[oe,N]=(0,te.useState)([]),[B,me]=(0,te.useState)(""),[ee,ke]=(0,te.useState)(""),[he,O]=(0,te.useState)([]),[ne,De]=(0,te.useState)([]),[j,_]=(0,te.useState)(""),[ie,le]=(0,te.useState)(!1),[L,Le]=(0,te.useState)("react"),[be,Ie]=(0,te.useState)([]),[Ee,Ne]=(0,te.useState)({name:"",description:""}),[rt,ze]=(0,te.useState)(""),[tt,Oe]=(0,te.useState)(null),[mt,kt]=(0,te.useState)(!1),At=(0,te.useRef)(0),Ge=(0,te.useRef)(null),an=(0,te.useRef)(!1),sn=(0,te.useRef)(d),ln=(0,te.useRef)(a);(0,te.useEffect)(()=>{sn.current=d},[d]),(0,te.useEffect)(()=>()=>{sn.current?.(!1)},[]),(0,te.useEffect)(()=>{ln.current=a},[a]),(0,te.useEffect)(()=>()=>{ln.current?.(!1)},[]);let Bt=(0,te.useMemo)(()=>Xi({form:Ee,agentType:L,tools:he,subAgents:ne,prompt:j,middleware:be,graphDefinition:Yi(P?.graphDefinition)}),[Ee,L,he,ne,j,be,P?.graphDefinition]),wt=mt&&Bt!==rt,Ze=mt;an.current=wt;let xt=(0,te.useMemo)(()=>{if(!e?.graphDefinition)return null;try{let c=typeof e.graphDefinition=="string"?JSON.parse(e.graphDefinition):e.graphDefinition;return{tools:c.tools||[],prompt:c.prompt||"",subAgents:c.subAgents||[],type:c.type||"react",middleware:c.middleware||[]}}catch{return null}},[e]),bn=(0,te.useCallback)(c=>(c||[]).filter(D=>D.schema?.properties&&Object.keys(D.schema.properties).length>0||D.tools&&D.tools.length>0).map((D,ce)=>({id:`${D.type}-${ce+1}`,type:D.type,name:D.name,description:D.description,enabled:!1,config:{}})),[]),Zt=(0,te.useCallback)((c,R)=>{let D=(R||[]).filter(Re=>Re.schema?.properties&&Object.keys(Re.schema.properties).length>0||Re.tools&&Re.tools.length>0),ce=new Map(c?.map(Re=>[Re.type,Re])||[]),qe=D.map((Re,Dt)=>{let Wn=ce.get(Re.type);return Wn?{...Wn,name:Re.name,description:Re.description}:{id:`${Re.type}-${Dt+1}`,type:Re.type,name:Re.name,description:Re.description,enabled:!1,config:{}}}),yt=new Set(D.map(Re=>Re.type));return[...qe,...(c??[]).filter(Re=>!yt.has(Re.type))]},[]),K=(0,te.useCallback)(async()=>{if(n){X(!0);try{let c=await m("/api/tools");c.success&&c.data?.records&&N(c.data.records)}catch(c){console.error("Failed to fetch tools:",c)}finally{X(!1)}}},[m,n]);(0,te.useEffect)(()=>{if(!n||!e){Ge.current=null,At.current+=1,kt(!1),S(e),Oe(null);return}if(Ge.current===e||Ge.current?.id===e.id&&an.current)return;let c=y.availableMiddlewareTypes;if(!(!c&&h)){Ge.current=e,At.current+=1;{K();let R={name:e.name??"",description:e.description??""},D=xt?.tools??[],ce=xt?.subAgents??[],qe=xt?.prompt??"",yt=xt?.type??"react",Re=xt?Zt(xt.middleware,c||k):bn(c||k);kt(!1),S(e),Ne(R),O(D),De(ce),_(qe),Le(yt),Ie(Re),v.setFieldsValue({...R,type:yt}),Oe(Xi({form:R,agentType:yt,tools:D,subAgents:ce,prompt:qe,middleware:Re,graphDefinition:Yi(e.graphDefinition)}))}}},[n,e,wt,xt,v,K,bn,Zt,y.availableMiddlewareTypes,h,k]),(0,te.useEffect)(()=>{tt!==null&&Bt===tt&&(ze(tt),Oe(null),kt(!0))},[Bt,tt]),(0,te.useEffect)(()=>{d?.(wt)},[wt,d]),(0,te.useEffect)(()=>{ln.current?.(ie||F)},[ie,F]);let ye=async()=>{if(!P||!Ze)return;let c=At.current,R=Bt;try{pe(!0);let ce={...await v.validateFields(),type:L,tools:he,subAgents:ne,prompt:j,middleware:be};await r?.(P,ce),At.current===c&&ze(R)}catch(D){D instanceof Error&&at.error(D.message)}finally{pe(!1)}},Xe=async()=>{if(e){G(!0);try{await i?.(e),Q(!1),o()}catch(c){Q(!1),at.error(c instanceof Error?c.message:s("chatConfig.agentPanel.deleteFailed"))}finally{G(!1)}}},Je=c=>{Ie(R=>R.map(D=>{if(D.id!==c)return D;if(D.enabled)return{...D,enabled:!1};{let ce=(y.availableMiddlewareTypes||k)?.find(qe=>qe.type===D.type);return{...D,enabled:!0,config:ce?.defaultConfig||{}}}}))},Ke=(c,R)=>{Ie(D=>D.map(ce=>ce.id===c?{...ce,config:{...ce.config,...R}}:ce))},Pt=(c,R)=>{Ie(D=>D.map(ce=>ce.id===c?{...ce,allowedTools:R}:ce))},nt=c=>{let R=he.includes(c.id);return(0,b.jsx)(mo,{item:c,className:R?u.selectedCard:void 0,onClick:()=>O(D=>D.includes(c.id)?D.filter(ce=>ce!==c.id):[...D,c.id]),renderIcon:()=>(0,b.jsx)("span",{style:{fontSize:18,fontWeight:600},children:c.name.charAt(0).toUpperCase()}),renderPrimary:()=>(0,b.jsxs)(Lt,{size:6,children:[(0,b.jsx)("span",{children:c.name}),c.needUserApprove&&(0,b.jsx)(He,{color:"warning",style:{fontSize:10,padding:"0 4px",margin:0},children:s("chatConfig.agentPanel.approve")})]}),renderDetails:()=>(0,b.jsx)(ji,{text:c.description,className:u.toolDesc}),renderHeaderActions:()=>(0,b.jsx)(dn,{checked:R,onClick:D=>D.stopPropagation(),onChange:()=>O(D=>D.includes(c.id)?D.filter(ce=>ce!==c.id):[...D,c.id])})},c.id)},we=c=>{let R=ne.includes(c.id);return(0,b.jsx)(mo,{item:c,className:R?u.selectedCard:void 0,onClick:()=>De(D=>D.includes(c.id)?D.filter(ce=>ce!==c.id):[...D,c.id]),renderIcon:()=>(0,b.jsx)(sr,{size:36,style:{backgroundColor:R?g.colorPrimary:g.colorSuccess,fontSize:15},children:c.name?.charAt(0).toUpperCase()||"A"}),renderPrimary:()=>c.name,renderSecondary:()=>c.description||s("chatConfig.agentPanel.noDescription"),renderHeaderActions:()=>(0,b.jsx)(dn,{checked:R,onClick:D=>D.stopPropagation(),onChange:()=>De(D=>D.includes(c.id)?D.filter(ce=>ce!==c.id):[...D,c.id])})},c.id)},Fn=(0,te.useCallback)(c=>Ji(c.type,y.availableMiddlewareTypes||k)?.category||"other",[y.availableMiddlewareTypes,k]),Et=(0,te.useMemo)(()=>{let c=new Map;for(let R of be){let D=Fn(R),ce=c.get(D);ce?ce.push(R):c.set(D,[R])}return c},[be,Fn]),_n=(0,te.useMemo)(()=>{let c=Array.from(Et.keys());return[...Vi.filter(R=>Et.has(R)),...c.filter(R=>!Vi.includes(R))]},[Et]),dt=(0,te.useMemo)(()=>be.length===0?null:be.find(c=>c.type===$)??be.find(c=>c.enabled)??be[0],[be,$]);if(!n||!e)return null;let oo=[{key:"basic",icon:(0,b.jsx)(ur,{}),label:s("chatConfig.agentPanel.nav.basic")},{key:"prompt",icon:(0,b.jsx)(dr,{}),label:s("chatConfig.agentPanel.nav.prompt")},{key:"tools",icon:(0,b.jsx)(si,{}),label:s("chatConfig.agentPanel.nav.tools"),badge:he.length},{key:"middleware",icon:(0,b.jsx)(oi,{}),label:s("chatConfig.agentPanel.nav.capabilities"),badge:be.filter(c=>c.enabled).length},{key:"subagents",icon:(0,b.jsx)(ii,{}),label:s("chatConfig.agentPanel.nav.subAgents"),badge:ne.length}],ro=oe.filter(c=>c.name.toLowerCase().includes(B.toLowerCase())||c.description.toLowerCase().includes(B.toLowerCase())),Vt=t.filter(c=>c.id!==e.id),io=Vt.filter(c=>(c.name||"").toLowerCase().includes(ee.toLowerCase())||(c.description||"").toLowerCase().includes(ee.toLowerCase())),rr=()=>(0,b.jsxs)("div",{style:{maxWidth:960},children:[(0,b.jsxs)("div",{className:u.pageHeader,children:[(0,b.jsx)("div",{className:u.pageIcon,children:(0,b.jsx)(ur,{})}),(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsx)("h2",{className:u.pageName,children:s("chatConfig.agentPanel.basic.title")}),(0,b.jsx)("p",{className:u.pageDesc,children:s("chatConfig.agentPanel.basic.desc")})]})]}),(0,b.jsxs)(ge,{form:v,layout:"vertical",autoComplete:"off",onValuesChange:(c,R)=>Ne({name:R.name??"",description:R.description??""}),children:[(0,b.jsx)(ge.Item,{name:"name",label:(0,b.jsx)(It,{strong:!0,style:{fontSize:14},children:s("chatConfig.agentPanel.field.name")}),rules:[{required:!0,message:s("chatConfig.agentPanel.validation.nameRequired")}],style:{marginBottom:24},children:(0,b.jsx)(Me,{placeholder:s("chatConfig.agentPanel.placeholder.name")})}),(0,b.jsxs)(ge.Item,{name:"type",label:(0,b.jsx)(It,{strong:!0,style:{fontSize:14},children:s("chatConfig.agentPanel.field.agentType")}),rules:[{required:!0}],style:{marginBottom:24},children:[(0,b.jsx)(Zr,{value:L,onChange:c=>Le(c),options:[{value:"react",label:s("chatConfig.agentType.executor")},{value:"deep_agent",label:s("chatConfig.agentType.orchestrator")},{value:"processing",label:s("chatConfig.agentType.workflow")}],block:!0}),(0,b.jsx)(It,{type:"secondary",style:{fontSize:13,marginTop:8,display:"block",lineHeight:1.6},children:s(Vs[L]??"chatConfig.agentPanel.typeDesc.react")})]}),(0,b.jsx)(ge.Item,{name:"description",label:(0,b.jsx)(It,{strong:!0,style:{fontSize:14},children:s("chatConfig.agentPanel.field.description")}),rules:[{required:!0,message:s("chatConfig.agentPanel.validation.descriptionRequired")}],style:{marginBottom:0},children:(0,b.jsx)(Me.TextArea,{placeholder:s("chatConfig.agentPanel.placeholder.description"),autoSize:{minRows:3,maxRows:6}})})]})]}),ir=()=>(0,b.jsxs)("div",{style:{maxWidth:960},children:[(0,b.jsxs)("div",{className:u.pageHeader,children:[(0,b.jsx)("div",{className:u.pageIcon,children:(0,b.jsx)(dr,{})}),(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsx)("h2",{className:u.pageName,children:s("chatConfig.agentPanel.prompt.title")}),(0,b.jsx)("p",{className:u.pageDesc,children:s("chatConfig.agentPanel.prompt.desc")})]}),(0,b.jsx)(U,{icon:(0,b.jsx)(wn,{}),onClick:()=>le(!0),children:s("chatConfig.agentPanel.prompt.expand")})]}),(0,b.jsx)(Zs,{"aria-label":s("chatConfig.agentPanel.prompt.title"),value:j,onChange:c=>_(c.target.value),placeholder:s("chatConfig.agentPanel.prompt.placeholder"),autoSize:{minRows:12,maxRows:24},style:{fontFamily:"monospace",fontSize:13,lineHeight:1.7}}),(0,b.jsx)("div",{style:{marginTop:8,display:"flex",justifyContent:"flex-end"},children:(0,b.jsx)(It,{type:"secondary",style:{fontSize:12},children:s("chatConfig.agentPanel.prompt.chars",{count:j.length})})})]}),ao=()=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:u.sectionHeader,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:u.sectionTitle,children:s("chatConfig.agentPanel.tools.title")}),(0,b.jsx)("p",{className:u.sectionDesc,children:s("chatConfig.agentPanel.tools.desc")})]}),(0,b.jsxs)("div",{className:u.sectionActions,children:[(0,b.jsx)(Me,{allowClear:!0,prefix:(0,b.jsx)(cr,{}),placeholder:s("chatConfig.agentPanel.tools.search"),value:B,onChange:c=>me(c.target.value),className:u.searchBox}),(0,b.jsx)(It,{type:"secondary",style:{fontSize:13},children:s("chatConfig.agentPanel.tools.selected",{selected:he.length,total:oe.length})}),(0,b.jsx)(U,{size:"small",onClick:()=>O(he.length===oe.length?[]:oe.map(c=>c.id)),children:he.length===oe.length?s("chatConfig.agentPanel.clear"):s("chatConfig.agentPanel.selectAll")})]})]}),de?(0,b.jsx)("div",{style:{textAlign:"center",padding:60},children:(0,b.jsx)(Tt,{})}):ro.length===0?(0,b.jsx)(Gt,{description:s("chatConfig.agentPanel.noTools"),style:{padding:60}}):(0,b.jsx)("div",{className:u.cardGrid,children:ro.map(nt)})]}),jt=()=>dt?(0,b.jsx)(Po,{middleware:dt,middlewareType:Ji(dt.type,y.availableMiddlewareTypes||k),onToggle:()=>Je(dt.id),onConfigChange:c=>Ke(dt.id,c),onAllowedToolsChange:c=>Pt(dt.id,c)},dt.id):(0,b.jsx)(Gt,{description:s("chatConfig.agentPanel.noCapabilities"),style:{padding:60}}),so=()=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:u.sectionHeader,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:u.sectionTitle,children:s("chatConfig.agentPanel.subAgents.title")}),(0,b.jsx)("p",{className:u.sectionDesc,children:s("chatConfig.agentPanel.subAgents.desc")})]}),(0,b.jsxs)("div",{className:u.sectionActions,children:[(0,b.jsx)(Me,{allowClear:!0,prefix:(0,b.jsx)(cr,{}),placeholder:s("chatConfig.agentPanel.subAgents.search"),value:ee,onChange:c=>ke(c.target.value),className:u.searchBox}),(0,b.jsx)(It,{type:"secondary",style:{fontSize:13},children:s("chatConfig.agentPanel.subAgents.selected",{selected:ne.length,total:Vt.length})}),(0,b.jsx)(U,{size:"small",onClick:()=>De(ne.length===Vt.length?[]:Vt.map(c=>c.id)),children:ne.length===Vt.length?s("chatConfig.agentPanel.clear"):s("chatConfig.agentPanel.selectAll")})]})]}),Vt.length===0?(0,b.jsx)(Gt,{description:s("chatConfig.agentPanel.noOtherAgents"),style:{padding:60}}):io.length===0?(0,b.jsx)(Gt,{description:s("chatConfig.agentPanel.noMatching"),style:{padding:60}}):(0,b.jsx)("div",{className:u.cardGrid,children:io.map(we)})]}),ar={basic:rr(),prompt:ir(),tools:ao(),middleware:jt(),subagents:so()},T=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:u.modalBody,style:l?{height:"100%",width:"100%"}:void 0,children:[!l&&(0,b.jsxs)("div",{className:u.topbar,children:[(0,b.jsxs)("div",{className:u.topbarLeft,children:[(0,b.jsx)(sr,{size:40,style:{backgroundColor:g.colorPrimary,fontSize:18,flexShrink:0},children:e.name?.charAt(0).toUpperCase()||"A"}),(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsx)("div",{className:u.agentName,children:e.name}),(0,b.jsx)("div",{className:u.agentDesc,children:e.description})]}),(0,b.jsx)(He,{color:"blue",style:{margin:0,fontSize:11,flexShrink:0},children:s("chatConfig.agentPanel.configWorkbench")})]}),(0,b.jsxs)(Lt,{children:[i&&(0,b.jsx)(Yt,{title:s("chatConfig.agentPanel.deleteAgent"),children:(0,b.jsx)(U,{"aria-label":s("chatConfig.agentPanel.deleteAgent"),type:"text",danger:!0,icon:(0,b.jsx)(uo,{}),onClick:()=>Q(!0)})}),(0,b.jsx)(U,{type:"text",icon:(0,b.jsx)(jn,{}),onClick:o})]})]}),(0,b.jsxs)("div",{className:u.layout,children:[(0,b.jsx)("div",{className:f.nav,role:"tablist","aria-label":s("chatConfig.agentPanel.navAriaLabel"),children:oo.map(c=>c.key!=="middleware"?(0,b.jsxs)("button",{type:"button",role:"tab","aria-selected":w===c.key,className:`${f.navItem} ${w===c.key?"active":""}`,onClick:()=>I(c.key),children:[(0,b.jsx)("span",{style:{fontSize:16},children:c.icon}),(0,b.jsx)("span",{children:c.label}),c.badge!==void 0&&c.badge>0&&(0,b.jsx)(lr,{count:c.badge,size:"small",className:f.navBadge,style:{backgroundColor:g.colorPrimary}})]},c.key):(0,b.jsxs)(te.default.Fragment,{children:[(0,b.jsxs)("button",{type:"button",role:"tab","aria-selected":w==="middleware",className:`${f.navItem} ${w==="middleware"?"active":""}`,onClick:()=>M(R=>!R),children:[(0,b.jsx)("span",{style:{fontSize:16},children:c.icon}),(0,b.jsx)("span",{children:c.label}),c.badge!==void 0&&c.badge>0&&(0,b.jsx)(lr,{count:c.badge,size:"small",className:f.navBadge,style:{backgroundColor:g.colorPrimary}})]}),x&&(0,b.jsx)("div",{className:f.navSub,children:_n.map(R=>(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:f.navGroupLabel,children:Qi[R]?s(Qi[R]):R}),Et.get(R)?.map(D=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":w==="middleware"&&$===D.type,className:`${f.navSubItem} ${w==="middleware"&&$===D.type?"active":""}`,onClick:()=>{E(D.type),I("middleware")},children:[(0,b.jsx)("span",{className:f.navStatusDot,style:{backgroundColor:D.enabled?g.colorSuccess:g.colorBorder}}),(0,b.jsx)("span",{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:D.name})]},D.id))]},R))})]},"middleware"))}),(0,b.jsx)("div",{className:u.content,children:Ze?ar[w]:(0,b.jsx)("div",{style:{minHeight:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsxs)(Lt,{direction:"vertical",align:"center",children:[(0,b.jsx)(Tt,{}),(0,b.jsx)(It,{type:"secondary",children:s("chatConfig.agentPanel.loadingConfig")})]})})})]}),(0,b.jsxs)("div",{className:u.footer,children:[(0,b.jsx)(It,{"data-testid":"config-footer-hint",className:u.footerHint,type:wt?"warning":"secondary",children:s(wt?"common.unsavedChanges":r?"chatConfig.agentPanel.footer.saveHint":"chatConfig.agentPanel.footer.viewing")}),(0,b.jsxs)(Lt,{children:[(0,b.jsx)(U,{onClick:o,children:s("common.close")}),r&&(0,b.jsx)(U,{"aria-label":s("common.save"),type:"primary",icon:(0,b.jsx)(ai,{}),loading:V,disabled:!Ze,onClick:ye,children:s("common.save")})]})]})]}),(0,b.jsx)(We,{title:s("chatConfig.agentPanel.prompt.title"),open:ie,onCancel:()=>le(!1),width:800,footer:[(0,b.jsx)(U,{onClick:()=>le(!1),children:s("common.close")},"cancel"),(0,b.jsx)(U,{type:"primary",onClick:()=>le(!1),children:s("chatConfig.agentPanel.done")},"done")],children:(0,b.jsx)(Me.TextArea,{"aria-label":s("chatConfig.agentPanel.prompt.title"),value:j,onChange:c=>_(c.target.value),rows:16,style:{width:"100%",fontFamily:"monospace",fontSize:13,lineHeight:1.7,resize:"vertical",minHeight:300}})}),(0,b.jsx)(We,{title:s("chatConfig.agentPanel.delete.title"),open:F,onCancel:()=>Q(!1),footer:[(0,b.jsx)(U,{onClick:()=>Q(!1),children:s("common.cancel")},"cancel"),(0,b.jsx)(U,{type:"primary",danger:!0,loading:A,onClick:Xe,children:s("common.delete")},"delete")],children:(0,b.jsxs)(It,{children:[s("chatConfig.agentPanel.delete.confirmPrefix")," ",(0,b.jsx)(It,{strong:!0,children:e.name})," ",s("chatConfig.agentPanel.delete.confirmSuffix")]})})]});return l?(0,b.jsx)("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:T}):(0,b.jsx)(We,{open:n,onCancel:o,width:"88vw",footer:null,closable:!1,centered:!0,styles:{body:{padding:0},content:{borderRadius:20,overflow:"hidden",padding:0},mask:{backdropFilter:"blur(4px)"}},destroyOnHidden:!0,children:T})};var ot=C(Ce());function Eo(e,t){return e.find(n=>n.targetServerConfig?.targetAgentId===t)??e.find(n=>n.name===`eval-${t}`)??e.find(n=>typeof n.description=="string"&&n.description.includes(t))??null}var fe=C(z()),{Text:Ys}=Be,Xs=e=>e?.page==="suite"&&e.suiteId?.trim()?{page:"suite",suiteId:e.suiteId,runId:""}:e?.page==="run"&&e.runId?.trim()?{page:"run",suiteId:"",runId:e.runId}:{page:"suites",suiteId:"",runId:""},Do=({assistantId:e,initial:t,navigationKey:n,onEvalInvalidated:o})=>{let r=W(),{projects:i,loading:l,create:p}=bo(),d=Eo(i,e),a=d?.id??"",v=d?.name||`eval-${e}`,g=Xs(t),u=`${g.page}\0${g.suiteId}\0${g.runId}`,[f,s]=(0,ot.useState)(g),{page:y,suiteId:k,runId:h}=f;(0,ot.useEffect)(()=>{s(g)},[e,u,n]);let{start:m}=ho(a),{workspaceId:w,projectId:I}=Nt(),[P,S]=(0,ot.useState)(!1),{create:$}=Tn(a),[E,x]=(0,ot.useState)(!1),[M,de]=(0,ot.useState)(""),[X,V]=(0,ot.useState)(0),[pe,A]=(0,ot.useState)(!1),[G]=ge.useForm(),[F,Q]=(0,ot.useState)(!1),[oe,N]=(0,ot.useState)([]),B=vt("__GLOBAL__"),me=(0,ot.useRef)(o);me.current=o;let ee=_=>({workspaceId:w||void 0,projectId:_||I||void 0}),ke=(0,ot.useCallback)(async()=>{try{let _=await B.request("/api/tenant-models");N(yo(_.data))}catch{}},[B]),he=async _=>{Q(!0);try{await p({name:`eval-${e}`,judgeModelConfig:{modelKey:_.modelKey||""},targetServerConfig:{base_url:"",api_key:"",targetAgentId:e}}),await Promise.resolve(me.current?.()).catch(()=>{}),G.resetFields(),A(!1)}catch(ie){at.error(ie instanceof Error?ie.message:r("governance.evalPanel.createFailed"))}finally{Q(!1)}},O=(_,ie,le)=>{s(L=>({page:_,suiteId:ie??L.suiteId,runId:le??L.runId}))},ne=async()=>{M.trim()&&(await $(a,{name:M.trim()}),V(_=>_+1),await o?.(),de(""),x(!1))},De=async _=>{let ie=await m(a,ee(_.projectId));ie?.run_id&&(await Promise.resolve(o?.()).catch(()=>{}),O("run",void 0,ie.run_id))},j=(0,fe.jsx)(We,{title:r("governance.evalPanel.createTitle"),open:pe,onCancel:()=>{G.resetFields(),A(!1)},footer:null,destroyOnHidden:!0,width:480,children:(0,fe.jsxs)(ge,{form:G,layout:"vertical",onFinish:he,initialValues:{name:`eval-${e}`},children:[(0,fe.jsx)(ge.Item,{name:"name",label:r("governance.evalPanel.projectName"),children:(0,fe.jsx)(Me,{disabled:!0})}),(0,fe.jsx)(ge.Item,{name:"modelKey",label:r("governance.evalPanel.judgeModel"),rules:[{required:!0,message:r("governance.evalPanel.judgeModelRequired")}],children:(0,fe.jsx)(it,{placeholder:r("governance.evalPanel.modelPlaceholder"),options:oe.map(_=>({value:_.key,label:vo(_)}))})}),(0,fe.jsxs)(ge.Item,{style:{marginBottom:0,textAlign:"right"},children:[(0,fe.jsx)(U,{onClick:()=>{G.resetFields(),A(!1)},style:{marginRight:8},children:r("common.cancel")}),(0,fe.jsx)(U,{type:"primary",htmlType:"submit",loading:F,children:r("common.create")})]})]})});return l?(0,fe.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,fe.jsx)(Tt,{})}):d?(0,fe.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",background:"#f5f5f5"},children:[(0,fe.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",background:"#fff",borderBottom:"1px solid #f0f0f0",flexShrink:0},children:[(0,fe.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,fe.jsx)(ri,{style:{color:"#6366f1",fontSize:18}}),(0,fe.jsx)("span",{style:{fontSize:15,fontWeight:600},children:v}),(0,fe.jsx)(He,{color:"purple",children:r("governance.evalPanel.kindTag")})]}),y==="suites"&&(0,fe.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,fe.jsx)(U,{icon:(0,fe.jsx)(Mt,{}),onClick:()=>x(_=>!_),children:r("governance.evalPanel.newSuite")}),(0,fe.jsx)(U,{type:"primary",icon:(0,fe.jsx)(ni,{}),onClick:()=>S(!0),children:r("governance.evalPanel.runAll")})]})]}),y==="suites"&&E&&(0,fe.jsxs)("div",{style:{padding:"12px 24px",borderBottom:"1px solid #f0f0f0",display:"flex",gap:8,background:"#fff"},children:[(0,fe.jsx)("input",{type:"text",placeholder:r("governance.evalPanel.suiteNamePlaceholder"),value:M,onChange:_=>de(_.target.value),onKeyDown:_=>_.key==="Enter"&&void ne(),autoFocus:!0,style:{width:260,padding:"6px 12px",border:"1px solid #d9d9d9",borderRadius:8,fontSize:14,outline:"none"}}),(0,fe.jsx)(U,{type:"primary",size:"small",onClick:()=>void ne(),children:r("common.create")}),(0,fe.jsx)(U,{size:"small",onClick:()=>x(!1),children:r("common.cancel")})]}),(0,fe.jsxs)("div",{style:{flex:1,overflow:"auto",padding:28},children:[y==="suites"&&(0,fe.jsx)(Pi,{projectId:a,onSelectSuite:(_,ie)=>O("suite",ie),onEvalInvalidated:o},`${a}:${X}`),y==="suite"&&k&&(0,fe.jsx)(Di,{projectId:a,suiteId:k,onBack:()=>O("suites"),onRun:_=>{Promise.resolve(o?.()).catch(()=>{}),O("run",void 0,_)},onEvalInvalidated:o}),y==="run"&&h&&(0,fe.jsx)(Li,{runId:h,onBack:()=>O("suites"),onRunSettled:o})]}),(0,fe.jsx)(Ei,{open:P,onClose:()=>S(!1),onRun:De})]}):(0,fe.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:16,background:"#fff"},children:[(0,fe.jsx)(Gt,{description:(0,fe.jsx)(Ys,{type:"secondary",children:r("governance.evalPanel.noProject")})}),(0,fe.jsx)(U,{type:"primary",icon:(0,fe.jsx)(Mt,{}),onClick:()=>{ke(),A(!0)},children:r("governance.evalPanel.createProject")}),j]})};var Fe=C(Ce());var $n=C(Ce());var Z=C(z()),{Text:un}=Be,ta={projectSelector:!1,modelSelector:!1,threadManagement:!0,attachments:!0,hitl:!0,genUI:!0,files:!1},na=({open:e,assistantId:t,value:n,projects:o,models:r,submitting:i,error:l,onCancel:p,onSubmit:d})=>{let a=W(),[v]=ge.useForm(),[g,u]=(0,$n.useState)(!1),[f,s]=(0,$n.useState)(!1);(0,$n.useEffect)(()=>{if(!e)return;let m=n?.features??ta;u(m.projectSelector),s(m.modelSelector),v.setFieldsValue({name:n?.name??"",description:n?.description,defaultProjectId:n?.scope.defaultProjectId??o[0]?.id,allowedProjectIds:n?.scope.allowedProjectIds??(o[0]?[o[0].id]:[]),defaultModelKey:n?.scope.defaultModelKey,allowedModelKeys:n?.scope.allowedModelKeys,...m,title:n?.appearance.title,welcomeMessage:n?.appearance.welcomeMessage,primaryColor:n?.appearance.primaryColor,quickPrompts:n?.appearance.quickPrompts,identityPolicy:n?.identity?.policy??"unverified",identityIssuers:n?.identity?JSON.stringify(n.identity.issuers,null,2):void 0})},[v,e,o,n]);let y=async()=>{let m=await v.validateFields(),w=m.projectSelector?Array.from(new Set(m.allowedProjectIds??[])):[m.defaultProjectId],I=m.modelSelector?Array.from(new Set([...m.defaultModelKey?[m.defaultModelKey]:[],...m.allowedModelKeys??[]])):m.defaultModelKey?[m.defaultModelKey]:void 0,P,S=m.identityPolicy??"unverified";if(S!=="unverified"){let x;try{x=JSON.parse(m.identityIssuers??"")}catch{throw new Error("Trusted issuers must be a valid JSON array")}if(!Array.isArray(x)||x.length===0)throw new Error("Verified identity requires at least one trusted issuer");P={policy:S,issuers:x}}let $=(m.quickPrompts??[]).map(x=>({label:(x?.label??"").trim(),text:(x?.text??"").trim()})).filter(x=>x.label.length>0&&x.text.length>0),E={name:m.name.trim(),description:m.description?.trim()||void 0,scope:{defaultProjectId:m.defaultProjectId,allowedProjectIds:w,defaultModelKey:m.defaultModelKey||void 0,allowedModelKeys:I},features:{projectSelector:m.projectSelector,modelSelector:m.modelSelector,threadManagement:m.threadManagement,attachments:m.attachments,hitl:m.hitl,genUI:m.genUI,files:m.files??!1},appearance:{title:m.title?.trim()||void 0,welcomeMessage:m.welcomeMessage?.trim()||void 0,primaryColor:m.primaryColor?.trim()||void 0,...$.length>0?{quickPrompts:$}:{}},identity:P};await d(n?E:{...E,assistantId:t,integration:{type:"react_sdk"}})},k=o.map(m=>({value:m.id,label:m.name})),h=r.map(m=>({value:m.key,label:vo(m)}));return(0,Z.jsxs)(We,{title:a(n?"governance.webApp.editTitle":"governance.webApp.createTitle"),open:e,onCancel:p,onOk:()=>void y().catch(()=>{}),okText:a(n?"common.save":"common.create"),confirmLoading:i,width:720,destroyOnHidden:!0,children:[l&&(0,Z.jsx)("div",{role:"alert",style:{color:"#ef4444",marginBottom:12},children:l}),(0,Z.jsxs)(ge,{form:v,layout:"vertical",initialValues:ta,children:[(0,Z.jsx)(ge.Item,{name:"name",label:a("governance.webApp.name"),rules:[{required:!0,whitespace:!0},{max:120,message:a("governance.webApp.nameMax")}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.name"),maxLength:121})}),(0,Z.jsx)(ge.Item,{name:"description",label:a("governance.webApp.description"),rules:[{max:1e3,message:a("governance.webApp.descriptionMax")}],children:(0,Z.jsx)(Me.TextArea,{"aria-label":a("governance.webApp.description"),maxLength:1001})}),(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.projectScope")}),(0,Z.jsx)(ge.Item,{name:"projectSelector",valuePropName:"checked",children:(0,Z.jsx)(dn,{"aria-label":a("governance.webApp.projectSelector"),onChange:m=>u(m.target.checked),children:a("governance.webApp.projectSelector")})}),(0,Z.jsx)(ge.Item,{name:"allowedProjectIds",label:a("governance.webApp.allowedProjects"),dependencies:["defaultProjectId","projectSelector"],rules:g?[{required:!0,message:a("governance.webApp.selectProject")},{validator:(m,w)=>(w??[]).every(I=>k.some(P=>P.value===I))?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectValidProjects")))},{validator:(m,w)=>(w??[]).includes(v.getFieldValue("defaultProjectId"))?Promise.resolve():Promise.reject(new Error(a("governance.webApp.defaultInAllowed")))}]:void 0,children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.allowedProjects"),mode:"multiple",disabled:!g,options:k})}),(0,Z.jsx)(ge.Item,{name:"defaultProjectId",label:a("governance.webApp.defaultProject"),rules:[{required:!0},{validator:(m,w)=>!w||k.some(I=>I.value===w)?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectValidDefaultProject")))}],children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.defaultProject"),options:k})}),(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.modelScope")}),(0,Z.jsx)(ge.Item,{name:"modelSelector",valuePropName:"checked",children:(0,Z.jsx)(dn,{"aria-label":a("governance.webApp.modelSelector"),onChange:m=>s(m.target.checked),children:a("governance.webApp.modelSelector")})}),(0,Z.jsx)(ge.Item,{name:"allowedModelKeys",label:a("governance.webApp.allowedModels"),dependencies:["defaultModelKey","modelSelector"],rules:f?[{validator:(m,w)=>w?.length||v.getFieldValue("defaultModelKey")?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectModel")))},{validator:(m,w)=>(w??[]).every(I=>h.some(P=>P.value===I))?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectValidModels")))}]:void 0,children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.allowedModels"),mode:"multiple",allowClear:!0,disabled:!f,options:h})}),(0,Z.jsx)(ge.Item,{name:"defaultModelKey",label:a("governance.webApp.defaultModel"),rules:[{validator:(m,w)=>!w||h.some(I=>I.value===w)?Promise.resolve():Promise.reject(new Error(a("governance.webApp.selectValidDefaultModel")))}],children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.defaultModel"),allowClear:!0,options:h})}),(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.features")}),(0,Z.jsx)(Lt,{wrap:!0,children:["threadManagement","attachments","hitl","genUI","files"].map(m=>(0,Z.jsx)(ge.Item,{name:m,valuePropName:"checked",noStyle:!0,children:(0,Z.jsx)(dn,{"aria-label":a(`governance.webApp.feature.${m}`),children:a(`governance.webApp.feature.${m}`)})},m))}),(0,Z.jsx)("div",{style:{marginTop:20},children:(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.appearance")})}),(0,Z.jsx)(ge.Item,{name:"title",label:a("governance.webApp.title"),rules:[{max:120,message:a("governance.webApp.titleMax")}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.title"),maxLength:121})}),(0,Z.jsx)(ge.Item,{name:"welcomeMessage",label:a("governance.webApp.welcomeMessage"),rules:[{max:1e3,message:a("governance.webApp.welcomeMessageMax")}],children:(0,Z.jsx)(Me.TextArea,{"aria-label":a("governance.webApp.welcomeMessage"),maxLength:1001})}),(0,Z.jsx)(ge.Item,{name:"primaryColor",label:a("governance.webApp.primaryColor"),rules:[{pattern:Ki,message:a("governance.webApp.colorFormat"),transform:m=>m||void 0}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.primaryColor"),placeholder:"#6366f1"})}),(0,Z.jsx)("div",{style:{marginTop:12},children:(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.quickPrompts")})}),(0,Z.jsx)(ge.List,{name:"quickPrompts",children:(m,{add:w,remove:I})=>(0,Z.jsxs)(Z.Fragment,{children:[m.map(P=>(0,Z.jsxs)(Lt,{align:"baseline",style:{display:"flex",marginBottom:8},children:[(0,Z.jsx)(ge.Item,{name:[P.name,"label"],rules:[{required:!0,whitespace:!0,message:a("governance.webApp.quickPromptLabelRequired")},{max:40,message:a("governance.webApp.quickPromptLabelMax")}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.quickPromptLabelAria",{index:P.name+1}),placeholder:a("governance.webApp.labelPlaceholder"),maxLength:41})}),(0,Z.jsx)(ge.Item,{name:[P.name,"text"],rules:[{required:!0,whitespace:!0,message:a("governance.webApp.quickPromptTextRequired")},{max:500,message:a("governance.webApp.quickPromptTextMax")}],children:(0,Z.jsx)(Me,{"aria-label":a("governance.webApp.quickPromptTextAria",{index:P.name+1}),placeholder:a("governance.webApp.messagePlaceholder"),maxLength:501,style:{width:360}})}),(0,Z.jsx)(U,{"aria-label":a("governance.webApp.removeQuickPromptAria",{index:P.name+1}),onClick:()=>I(P.name),children:a("governance.webApp.remove")})]},P.key)),(0,Z.jsx)(U,{"aria-label":a("governance.webApp.addQuickPrompt"),onClick:()=>w({label:"",text:""}),disabled:m.length>=6,children:a("governance.webApp.addQuickPrompt")})]})}),(0,Z.jsx)("div",{style:{marginTop:20},children:(0,Z.jsx)(un,{strong:!0,children:a("governance.webApp.identity")})}),(0,Z.jsx)(ge.Item,{name:"identityPolicy",label:a("governance.webApp.identityPolicy"),initialValue:"unverified",children:(0,Z.jsx)(it,{"aria-label":a("governance.webApp.identityPolicy"),options:[{value:"unverified",label:a("governance.webApp.identityUnverified")},{value:"both",label:a("governance.webApp.identityBoth")},{value:"verified",label:a("governance.webApp.identityVerified")}]})}),(0,Z.jsx)(ge.Item,{name:"identityIssuers",label:a("governance.webApp.trustedIssuers"),tooltip:a("governance.webApp.trustedIssuersTooltip"),dependencies:["identityPolicy"],rules:[{validator:(m,w)=>{if(v.getFieldValue("identityPolicy")==="unverified"||w===void 0||w.trim()==="")return Promise.resolve();try{let I=JSON.parse(w);return Array.isArray(I)&&I.length>0?Promise.resolve():Promise.reject(new Error(a("governance.webApp.issuersEmpty")))}catch{return Promise.reject(new Error(a("governance.webApp.issuersInvalid")))}}}],children:(0,Z.jsx)(Me.TextArea,{"aria-label":a("governance.webApp.trustedIssuers"),rows:3,placeholder:'[{"iss":"https://host.example.com","aud":"<webAppId>","alg":"HS256","secret":"..."}]'})}),(0,Z.jsx)(un,{type:"secondary",children:a("governance.webApp.integrationType")})]})]})};var re=C(z()),{Text:Lo}=Be,Hn=(e,t)=>e instanceof Error?e.message:t("governance.webApps.requestFailed"),Js={active:"governance.webApps.status.active",disabled:"governance.webApps.status.disabled",draft:"governance.webApps.status.draft"};function el(e,t){let n=Jr("lattice_token"),o=new Headers(t?.headers);return n&&o.set("Authorization",`Bearer ${n}`),o.set("X-Axiom-Web-App-Preview","true"),globalThis.fetch(e,{...t,headers:o})}var Un=(e,t)=>{let n=`import '@axiom-lattice/react-sdk/web-app/styles.css';
172
172
 
173
173
  interface ExampleProps {
174
174
  currentUser: { id: string; name?: string };
@@ -226,17 +226,17 @@ export function HooksExample({ currentUser }: ExampleProps) {
226
226
  return (
227
227
  ${o(" <RuntimeStatus />")}
228
228
  );
229
- }`}},No={whiteSpace:"pre-wrap",overflow:"auto",background:"#111827",color:"#e5e7eb",padding:16,borderRadius:10},ol=[{name:"webAppId",type:"string \xB7 required",descriptionKey:"governance.webApps.guide.setting.webAppId"},{name:"userId",type:"string \xB7 required",descriptionKey:"governance.webApps.guide.setting.userId"},{name:"gatewayUrl",type:"string",descriptionKey:"governance.webApps.guide.setting.gatewayUrl"},{name:"mode",type:'"bubble" | "inline"',descriptionKey:"governance.webApps.guide.setting.mode"},{name:"containerSelector",type:"string",descriptionKey:"governance.webApps.guide.setting.containerSelector"},{name:"bubble",type:"boolean \xB7 default true",descriptionKey:"governance.webApps.guide.setting.bubble"},{name:"width / height",type:"number \xB7 380 / 640",descriptionKey:"governance.webApps.guide.setting.widthHeight"},{name:"position",type:'"bottom-right" | "bottom-left"',descriptionKey:"governance.webApps.guide.setting.position"},{name:"offsetX / offsetY",type:"number \xB7 20",descriptionKey:"governance.webApps.guide.setting.offset"},{name:"zIndex",type:"number \xB7 9999",descriptionKey:"governance.webApps.guide.setting.zIndex"},{name:"welcome",type:"string",descriptionKey:"governance.webApps.guide.setting.welcome"},{name:"quicks",type:"{ label, text }[]",descriptionKey:"governance.webApps.guide.setting.quicks"}],rl=[{api:"AxiomChat.open() / hide() / toggle()",behaviorKey:"governance.webApps.guide.api.open"},{api:"AxiomChat.sendMessage(text)",behaviorKey:"governance.webApps.guide.api.sendMessage"},{api:"AxiomChat.mount(settings) / AxiomChat.get(id)",behaviorKey:"governance.webApps.guide.api.mount"}],il=[{event:'["onReady", cb]',payload:"\u2014",whenKey:"governance.webApps.guide.event.onReady"},{event:'["onMessage", cb]',payload:'{ role: "human" | "ai", content: string }',whenKey:"governance.webApps.guide.event.onMessage"},{event:'["onError", cb]',payload:"{ code: string, message: string }",whenKey:"governance.webApps.guide.event.onError"}],ra=({assistant:e})=>{let t=z(),n=vt("__GLOBAL__"),{user:o,currentTenant:r,baseURL:i}=ti(),{projects:l}=Nt(),[c,d]=(0,Fe.useState)([]),[a,y]=(0,Fe.useState)([]),[g,u]=(0,Fe.useState)(!1),[f,s]=(0,Fe.useState)(null),[v,k]=(0,Fe.useState)(null),[h,m]=(0,Fe.useState)(null),[w,C]=(0,Fe.useState)(!1),[P,S]=(0,Fe.useState)(null),[$,E]=(0,Fe.useState)(!1),[x,M]=(0,Fe.useState)(!1),[de,X]=(0,Fe.useState)(null),[V,pe]=(0,Fe.useState)(null),A=(0,Fe.useRef)(0),G=(0,Fe.useRef)(0),F=(0,Fe.useRef)(0),Q=(0,Fe.useRef)(!1),oe=Array.from(new Map(l.map(O=>[O.id,O])).values()),N=(0,Fe.useCallback)(async()=>{let O=++A.current;u(!0),s(null);try{let ne=await n.webApps.list({assistantId:e.id});O===A.current&&d(ne.records)}catch(ne){O===A.current&&s(Un(ne,t))}finally{O===A.current&&u(!1)}},[e.id,n,r?.id,t]);(0,Fe.useEffect)(()=>(d([]),k(null),S(null),X(null),pe(null),C(!1),E(!1),M(!1),Q.current=!1,F.current+=1,N(),()=>{A.current+=1,F.current+=1}),[N]),(0,Fe.useEffect)(()=>{let O=++G.current;return n.request("/api/tenant-models").then(ne=>{O===G.current&&y(vo(ne.data))}).catch(()=>{O===G.current&&y([])}),()=>{G.current+=1}},[n]);let B=async O=>{if(Q.current)return;Q.current=!0,M(!0);let ne=++F.current;s(null);try{await O(),ne===F.current&&await N()}catch(De){ne===F.current&&s(Un(De,t))}finally{ne===F.current&&(Q.current=!1,M(!1))}},me=async O=>{if(Q.current)return;Q.current=!0,M(!0);let ne=++F.current;C(!0),m(null);try{v==="create"?await n.webApps.create(O):v&&await n.webApps.update(v.id,O),ne===F.current&&(k(null),await N())}catch(De){ne===F.current&&m(Un(De,t))}finally{ne===F.current&&(Q.current=!1,M(!1),C(!1))}},ee=async O=>{s(null);try{if(!navigator.clipboard)throw new Error(t("governance.webApps.clipboardUnavailable"));await navigator.clipboard.writeText(O)}catch(ne){s(Un(ne,t))}},ke=O=>[{key:"edit",icon:ki,label:t("common.edit"),disabled:x,onClick:k},{key:"toggle",icon:O.status==="active"?di:ui,label:O.status==="active"?t("governance.webApps.action.disable"):t("governance.webApps.action.enable"),disabled:x,onClick:ne=>void B(()=>ne.status==="active"?n.webApps.disable(ne.id):n.webApps.enable(ne.id))},{key:"preview",icon:yi,label:t("governance.webApps.action.preview"),disabled:x,onClick:X},{key:"guide",icon:gi,label:t("governance.webApps.action.integrationGuide"),disabled:x,onClick:pe},{key:"copy",icon:pi,label:t("governance.webApps.action.copyId"),disabled:x,onClick:ne=>void ee(ne.id)},{key:"delete",icon:Ri,label:t("common.delete"),danger:!0,disabled:x,onClick:S}],he=async()=>{if(!P||Q.current)return;Q.current=!0,M(!0);let O=++F.current;E(!0);try{await n.webApps.delete(P.id),O===F.current&&(S(null),await N())}catch(ne){O===F.current&&s(Un(ne,t))}finally{O===F.current&&(Q.current=!1,M(!1),E(!1))}};return(0,re.jsxs)("div",{style:{height:"100%",overflow:"auto",padding:16},children:[(0,re.jsx)(Yt,{type:"warning",showIcon:!0,message:t("governance.webApps.warningTitle"),description:t("governance.webApps.warningDescription"),style:{marginBottom:16}}),f&&(0,re.jsx)(Yt,{role:"alert",type:"error",message:f,action:(0,re.jsx)(U,{size:"small",onClick:()=>void N(),children:t("common.retry")}),style:{marginBottom:16}}),(0,re.jsx)(Pi,{title:t("governance.webApps.title"),itemName:"common.item.app",items:c,loading:g,keyExtractor:O=>O.id,createLabel:x?void 0:t("governance.webApps.create"),onCreateClick:x?void 0:()=>{m(null),k("create")},renderIcon:()=>(0,re.jsx)(mi,{size:22,color:"#6366f1"}),renderPrimary:O=>O.name,renderSecondary:O=>O.description??O.id,renderHeaderActions:O=>{let ne=tl[O.status];return(0,re.jsx)(He,{color:O.status==="active"?"green":O.status==="disabled"?"default":"gold",children:ne?t(ne):O.status})},renderDetails:O=>(0,re.jsx)(Mo,{type:"secondary",children:t("governance.webApps.projectsCount",{count:O.scope.allowedProjectIds.length,s:O.scope.allowedProjectIds.length===1?"":"s"})}),itemActions:ke,actionsPosition:"always",showViewToggle:!1,emptyTitle:t("governance.webApps.emptyTitle"),emptyDescription:t("governance.webApps.emptyDescription")}),(0,re.jsx)(oa,{open:v!==null,assistantId:e.id,value:v==="create"?null:v,projects:oe,models:a,submitting:w,error:h,onCancel:()=>k(null),onSubmit:me}),(0,re.jsx)(ze,{title:t("governance.webApps.deleteTitle"),open:P!==null,onCancel:()=>S(null),onOk:()=>void he(),okText:t("common.delete"),okButtonProps:{danger:!0,loading:$},children:(0,re.jsx)("p",{children:t("governance.webApps.deleteBody",{name:P?.name??""})})}),(0,re.jsx)(ze,{title:t("governance.webApps.previewTitle"),open:de!==null,onCancel:()=>X(null),footer:(0,re.jsx)(U,{onClick:()=>X(null),children:t("common.close")}),width:900,children:i?de&&de.status==="active"?(0,re.jsx)("iframe",{src:`${i}/api/web-apps/${de.id}/chat?mode=embed`,title:t("governance.webApps.previewFrameTitle"),style:{width:"100%",height:640,border:"1px solid #d9d9d9",borderRadius:8}}):de?(0,re.jsxs)("div",{children:[(0,re.jsx)(Yt,{type:"info",showIcon:!0,message:t("governance.webApps.draftPreviewTitle"),description:t("governance.webApps.draftPreviewDescription"),style:{marginBottom:16}}),(0,re.jsx)(Ui,{gatewayUrl:i,webAppId:de.id,identity:{mode:"unverified",userId:`console-preview:${o?.id??"unknown"}:${de.id}`,displayName:o?.name},fetch:nl})]}):null:(0,re.jsx)(Yt,{type:"warning",message:t("governance.webApps.gatewayUnavailable")})}),(0,re.jsx)(ze,{title:t("governance.webApps.guideTitle"),open:V!==null,onCancel:()=>pe(null),footer:(0,re.jsxs)(Lt,{children:[(0,re.jsx)(U,{onClick:()=>V&&void ee(Object.values(Zn(V,i)).join(`
229
+ }`}},Mo={whiteSpace:"pre-wrap",overflow:"auto",background:"#111827",color:"#e5e7eb",padding:16,borderRadius:10},tl=[{name:"webAppId",type:"string \xB7 required",descriptionKey:"governance.webApps.guide.setting.webAppId"},{name:"userId",type:"string \xB7 required",descriptionKey:"governance.webApps.guide.setting.userId"},{name:"gatewayUrl",type:"string",descriptionKey:"governance.webApps.guide.setting.gatewayUrl"},{name:"mode",type:'"bubble" | "inline"',descriptionKey:"governance.webApps.guide.setting.mode"},{name:"containerSelector",type:"string",descriptionKey:"governance.webApps.guide.setting.containerSelector"},{name:"bubble",type:"boolean \xB7 default true",descriptionKey:"governance.webApps.guide.setting.bubble"},{name:"width / height",type:"number \xB7 380 / 640",descriptionKey:"governance.webApps.guide.setting.widthHeight"},{name:"position",type:'"bottom-right" | "bottom-left"',descriptionKey:"governance.webApps.guide.setting.position"},{name:"offsetX / offsetY",type:"number \xB7 20",descriptionKey:"governance.webApps.guide.setting.offset"},{name:"zIndex",type:"number \xB7 9999",descriptionKey:"governance.webApps.guide.setting.zIndex"},{name:"welcome",type:"string",descriptionKey:"governance.webApps.guide.setting.welcome"},{name:"quicks",type:"{ label, text }[]",descriptionKey:"governance.webApps.guide.setting.quicks"}],nl=[{api:"AxiomChat.open() / hide() / toggle()",behaviorKey:"governance.webApps.guide.api.open"},{api:"AxiomChat.sendMessage(text)",behaviorKey:"governance.webApps.guide.api.sendMessage"},{api:"AxiomChat.mount(settings) / AxiomChat.get(id)",behaviorKey:"governance.webApps.guide.api.mount"}],ol=[{event:'["onReady", cb]',payload:"\u2014",whenKey:"governance.webApps.guide.event.onReady"},{event:'["onMessage", cb]',payload:'{ role: "human" | "ai", content: string }',whenKey:"governance.webApps.guide.event.onMessage"},{event:'["onError", cb]',payload:"{ code: string, message: string }",whenKey:"governance.webApps.guide.event.onError"}],oa=({assistant:e})=>{let t=W(),n=vt("__GLOBAL__"),{user:o,currentTenant:r,baseURL:i}=ei(),{projects:l}=Nt(),[p,d]=(0,Fe.useState)([]),[a,v]=(0,Fe.useState)([]),[g,u]=(0,Fe.useState)(!1),[f,s]=(0,Fe.useState)(null),[y,k]=(0,Fe.useState)(null),[h,m]=(0,Fe.useState)(null),[w,I]=(0,Fe.useState)(!1),[P,S]=(0,Fe.useState)(null),[$,E]=(0,Fe.useState)(!1),[x,M]=(0,Fe.useState)(!1),[de,X]=(0,Fe.useState)(null),[V,pe]=(0,Fe.useState)(null),A=(0,Fe.useRef)(0),G=(0,Fe.useRef)(0),F=(0,Fe.useRef)(0),Q=(0,Fe.useRef)(!1),oe=Array.from(new Map(l.map(O=>[O.id,O])).values()),N=(0,Fe.useCallback)(async()=>{let O=++A.current;u(!0),s(null);try{let ne=await n.webApps.list({assistantId:e.id});O===A.current&&d(ne.records)}catch(ne){O===A.current&&s(Hn(ne,t))}finally{O===A.current&&u(!1)}},[e.id,n,r?.id,t]);(0,Fe.useEffect)(()=>(d([]),k(null),S(null),X(null),pe(null),I(!1),E(!1),M(!1),Q.current=!1,F.current+=1,N(),()=>{A.current+=1,F.current+=1}),[N]),(0,Fe.useEffect)(()=>{let O=++G.current;return n.request("/api/tenant-models").then(ne=>{O===G.current&&v(yo(ne.data))}).catch(()=>{O===G.current&&v([])}),()=>{G.current+=1}},[n]);let B=async O=>{if(Q.current)return;Q.current=!0,M(!0);let ne=++F.current;s(null);try{await O(),ne===F.current&&await N()}catch(De){ne===F.current&&s(Hn(De,t))}finally{ne===F.current&&(Q.current=!1,M(!1))}},me=async O=>{if(Q.current)return;Q.current=!0,M(!0);let ne=++F.current;I(!0),m(null);try{y==="create"?await n.webApps.create(O):y&&await n.webApps.update(y.id,O),ne===F.current&&(k(null),await N())}catch(De){ne===F.current&&m(Hn(De,t))}finally{ne===F.current&&(Q.current=!1,M(!1),I(!1))}},ee=async O=>{s(null);try{if(!navigator.clipboard)throw new Error(t("governance.webApps.clipboardUnavailable"));await navigator.clipboard.writeText(O)}catch(ne){s(Hn(ne,t))}},ke=O=>[{key:"edit",icon:bi,label:t("common.edit"),disabled:x,onClick:k},{key:"toggle",icon:O.status==="active"?li:ci,label:O.status==="active"?t("governance.webApps.action.disable"):t("governance.webApps.action.enable"),disabled:x,onClick:ne=>void B(()=>ne.status==="active"?n.webApps.disable(ne.id):n.webApps.enable(ne.id))},{key:"preview",icon:mi,label:t("governance.webApps.action.preview"),disabled:x,onClick:X},{key:"guide",icon:pi,label:t("governance.webApps.action.integrationGuide"),disabled:x,onClick:pe},{key:"copy",icon:ui,label:t("governance.webApps.action.copyId"),disabled:x,onClick:ne=>void ee(ne.id)},{key:"delete",icon:Ti,label:t("common.delete"),danger:!0,disabled:x,onClick:S}],he=async()=>{if(!P||Q.current)return;Q.current=!0,M(!0);let O=++F.current;E(!0);try{await n.webApps.delete(P.id),O===F.current&&(S(null),await N())}catch(ne){O===F.current&&s(Hn(ne,t))}finally{O===F.current&&(Q.current=!1,M(!1),E(!1))}};return(0,re.jsxs)("div",{style:{height:"100%",overflow:"auto",padding:16},children:[(0,re.jsx)(Qt,{type:"warning",showIcon:!0,message:t("governance.webApps.warningTitle"),description:t("governance.webApps.warningDescription"),style:{marginBottom:16}}),f&&(0,re.jsx)(Qt,{role:"alert",type:"error",message:f,action:(0,re.jsx)(U,{size:"small",onClick:()=>void N(),children:t("common.retry")}),style:{marginBottom:16}}),(0,re.jsx)(Ai,{title:t("governance.webApps.title"),itemName:"common.item.app",items:p,loading:g,keyExtractor:O=>O.id,createLabel:x?void 0:t("governance.webApps.create"),onCreateClick:x?void 0:()=>{m(null),k("create")},renderIcon:()=>(0,re.jsx)(fi,{size:22,color:"#6366f1"}),renderPrimary:O=>O.name,renderSecondary:O=>O.description??O.id,renderHeaderActions:O=>{let ne=Js[O.status];return(0,re.jsx)(He,{color:O.status==="active"?"green":O.status==="disabled"?"default":"gold",children:ne?t(ne):O.status})},renderDetails:O=>(0,re.jsx)(Lo,{type:"secondary",children:t("governance.webApps.projectsCount",{count:O.scope.allowedProjectIds.length,s:O.scope.allowedProjectIds.length===1?"":"s"})}),itemActions:ke,actionsPosition:"always",showViewToggle:!1,emptyTitle:t("governance.webApps.emptyTitle"),emptyDescription:t("governance.webApps.emptyDescription")}),(0,re.jsx)(na,{open:y!==null,assistantId:e.id,value:y==="create"?null:y,projects:oe,models:a,submitting:w,error:h,onCancel:()=>k(null),onSubmit:me}),(0,re.jsx)(We,{title:t("governance.webApps.deleteTitle"),open:P!==null,onCancel:()=>S(null),onOk:()=>void he(),okText:t("common.delete"),okButtonProps:{danger:!0,loading:$},children:(0,re.jsx)("p",{children:t("governance.webApps.deleteBody",{name:P?.name??""})})}),(0,re.jsx)(We,{title:t("governance.webApps.previewTitle"),open:de!==null,onCancel:()=>X(null),footer:(0,re.jsx)(U,{onClick:()=>X(null),children:t("common.close")}),width:900,children:i?de&&de.status==="active"?(0,re.jsx)("iframe",{src:`${i}/api/web-apps/${de.id}/chat?mode=embed`,title:t("governance.webApps.previewFrameTitle"),style:{width:"100%",height:640,border:"1px solid #d9d9d9",borderRadius:8}}):de?(0,re.jsxs)("div",{children:[(0,re.jsx)(Qt,{type:"info",showIcon:!0,message:t("governance.webApps.draftPreviewTitle"),description:t("governance.webApps.draftPreviewDescription"),style:{marginBottom:16}}),(0,re.jsx)(Hi,{gatewayUrl:i,webAppId:de.id,identity:{mode:"unverified",userId:`console-preview:${o?.id??"unknown"}:${de.id}`,displayName:o?.name},fetch:el})]}):null:(0,re.jsx)(Qt,{type:"warning",message:t("governance.webApps.gatewayUnavailable")})}),(0,re.jsx)(We,{title:t("governance.webApps.guideTitle"),open:V!==null,onCancel:()=>pe(null),footer:(0,re.jsxs)(Lt,{children:[(0,re.jsx)(U,{onClick:()=>V&&void ee(Object.values(Un(V,i)).join(`
230
230
 
231
- `)),children:t("governance.webApps.copyExamples")}),(0,re.jsx)(U,{type:"primary",onClick:()=>pe(null),children:t("common.close")})]}),width:900,children:V&&(0,re.jsx)(Zr,{defaultActiveKey:"zero-code",items:[{key:"zero-code",label:t("governance.webApps.guide.zeroCodeTab"),children:(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)(Be.Paragraph,{type:"secondary",style:{marginTop:0},children:t("governance.webApps.guide.zeroCodeIntro")}),(0,re.jsx)("pre",{style:No,children:Zn(V,i).embed}),(0,re.jsx)(Be.Title,{level:5,style:{marginTop:24},children:t("governance.webApps.guide.settingsTitle")}),(0,re.jsx)(co,{size:"small",style:{marginBottom:8},pagination:!1,rowKey:"name",columns:[{title:t("governance.webApps.guide.col.key"),dataIndex:"name",key:"name",width:160},{title:t("governance.webApps.guide.col.type"),dataIndex:"type",key:"type",width:180},{title:t("governance.webApps.guide.col.description"),dataIndex:"descriptionKey",key:"description",render:O=>t(O)}],dataSource:ol}),(0,re.jsx)(Be.Title,{level:5,children:t("governance.webApps.guide.jsApiTitle")}),(0,re.jsx)(Be.Paragraph,{type:"secondary",children:t("governance.webApps.guide.jsApiBody",{example:'window.AxiomChat = [["onMessage", fn], ["open"]]'})}),(0,re.jsx)(co,{size:"small",style:{marginBottom:8},pagination:!1,rowKey:"api",columns:[{title:t("governance.webApps.guide.col.api"),dataIndex:"api",key:"api",width:280},{title:t("governance.webApps.guide.col.behavior"),dataIndex:"behaviorKey",key:"behavior",render:O=>t(O)}],dataSource:rl}),(0,re.jsx)(Be.Title,{level:5,children:t("governance.webApps.guide.eventsTitle")}),(0,re.jsx)(co,{size:"small",style:{marginBottom:8},pagination:!1,rowKey:"event",columns:[{title:t("governance.webApps.guide.col.register"),dataIndex:"event",key:"event",width:220},{title:t("governance.webApps.guide.col.payload"),dataIndex:"payload",key:"payload",width:280},{title:t("governance.webApps.guide.col.when"),dataIndex:"whenKey",key:"when",render:O=>t(O)}],dataSource:il}),(0,re.jsx)(Yt,{style:{marginTop:8},type:"warning",showIcon:!0,message:t("governance.webApps.guide.hostTrustTitle"),description:t("governance.webApps.guide.hostTrustBody")})]})},{key:"npm-sdk",label:t("governance.webApps.guide.npmTab"),children:(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)(Be.Paragraph,{type:"secondary",style:{marginTop:0},children:t("governance.webApps.guide.npmIntro")}),(0,re.jsx)(Mo,{strong:!0,children:t("governance.webApps.guide.fullChat")}),(0,re.jsx)("pre",{style:No,children:Zn(V,i).agentChat}),(0,re.jsx)(Mo,{strong:!0,children:t("governance.webApps.guide.composable")}),(0,re.jsx)("pre",{style:No,children:Zn(V,i).composable}),(0,re.jsx)(Mo,{strong:!0,children:t("governance.webApps.guide.hooks")}),(0,re.jsx)("pre",{style:No,children:Zn(V,i).hooks})]})}]})})]})};var q=R(Ie());var Jt=R(W()),Oo={agent:(0,Jt.jsx)(Kn,{size:14}),tool:(0,Jt.jsx)(Ii,{size:12}),capability:(0,Jt.jsx)(ci,{size:12}),subagent:(0,Jt.jsx)(Kn,{size:12}),skill:(0,Jt.jsx)(vi,{size:12}),model:(0,Jt.jsx)(fi,{size:12}),eval:(0,Jt.jsx)(fo,{size:12})},Fo={agent:"governance.nodeGroup.agent",tool:"governance.nodeGroup.tool",capability:"governance.nodeGroup.capability",subagent:"governance.nodeGroup.subagent",skill:"governance.nodeGroup.skill",model:"governance.nodeGroup.model",eval:"governance.nodeGroup.eval"};var al={agent:"Agent",tool:"Tools",capability:"Capabilities",subagent:"Sub-Agents",skill:"Skills",model:"Model",eval:"Eval Suite"},sl={agent:{color:"agent"},tool:{color:"#06b6d4",section:"tools"},capability:{color:"#6366f1",section:"middleware"},subagent:{color:"#22c55e",section:"subagents"},skill:{color:"#a855f7",section:"skills"},model:{color:"#8c8c8c"},eval:{color:"#f59e0b"}};function zo(e){let t=sl[e];return e==="agent"?"agent":t.color}function ll(e){return typeof e=="object"&&e!==null?e:{}}var _o=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[],br="skill:__all__";function dl(e){let t=[],n=new Set,o=l=>{n.has(l)||(n.add(l),t.push(l))};for(let l of _o(e.skills))o(l);let r=!1,i=Array.isArray(e.middleware)?e.middleware:[];for(let l of i){if(l.enabled===!1||l.type!=="skill")continue;let c=typeof l.config=="object"&&l.config!==null?l.config:{};c.readAll===!0&&(r=!0);for(let d of _o(c.skills))o(d)}return{ids:t,readAll:r}}function ia(e,t){let n=t?.t,o=ll(e),r=typeof o.key=="string"?o.key:"agent",i=o.type??"capability",l={id:r,type:"agent",label:o.name||r,description:o.description||void 0,config:{name:o.name||r,type:i,description:o.description||"",modelKey:o.modelKey||"",prompt:o.prompt||"",version:o.metadata?.version||""}},c=(h,m,w,C,P)=>({id:m,type:h,label:w,description:C,config:P}),d=_o(o.tools).map(h=>c("tool",`tool:${h}`,h)),a=(Array.isArray(o.middleware)?o.middleware:[]).filter(h=>h.enabled!==!1).map(h=>{let m=typeof h.type=="string"?h.type:"unknown";return c("capability",`cap:${m}`,h.name||m,h.description||void 0,h)}),y=_o(o.subAgents).map(h=>c("subagent",`sub:${h}`,h)),{ids:g,readAll:u}=dl(o),f=[...u?[c("skill",br,n?n("governance.configGraph.allSkills"):"All skills",n?n("governance.configGraph.allSkillsDescription"):"Agent can load any available skill")]:[],...g.map(h=>c("skill",`skill:${h}`,h))],s=h=>n?n(Fo[h]):al[h],v=[{id:"group:tools",type:"tool",label:s("tool"),items:d},{id:"group:capabilities",type:"capability",label:s("capability"),items:a},{id:"group:subagents",type:"subagent",label:s("subagent"),items:y},{id:"group:skills",type:"skill",label:s("skill"),items:f}],k=t?.includeEmptyGroups?v:v.filter(h=>h.items.length>0);return{agent:l,groups:k}}var aa=R(W()),Vn=({id:e,position:t,type:n="source"})=>(0,aa.jsx)(Rt,{id:e,type:n,position:t,style:{opacity:0,width:0,height:0,border:"none"},isConnectable:!1});var Te=R(W()),sa=({type:e="source"})=>(0,Te.jsxs)(Te.Fragment,{children:[(0,Te.jsx)(Vn,{id:"top",position:st.Top,type:e}),(0,Te.jsx)(Vn,{id:"bottom",position:st.Bottom,type:e}),(0,Te.jsx)(Vn,{id:"left",position:st.Left,type:e}),(0,Te.jsx)(Vn,{id:"right",position:st.Right,type:e})]}),la=({data:e})=>{let{node:t,onClick:n}=e,o=qn(Pn(String(t.config?.type??"react")).color),r=t.config??{};return(0,Te.jsxs)("div",{onClick:n,style:{width:220,background:"#fff",border:`2px solid ${o}`,borderRadius:14,padding:"10px 12px",cursor:"pointer",fontFamily:"inherit"},children:[(0,Te.jsx)(sa,{type:"source"}),(0,Te.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:4},children:[Oo.agent,(0,Te.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"#333",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.label})]}),r.description&&(0,Te.jsx)("div",{style:{fontSize:11,color:"rgba(0,0,0,0.55)",marginBottom:6,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:r.description}),(0,Te.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:6},children:[(0,Te.jsx)(He,{bordered:!1,style:{margin:0,fontSize:10,background:`${o}1A`,color:o},children:r.type??"capability"}),r.modelKey&&(0,Te.jsx)(He,{bordered:!1,style:{margin:0,fontSize:10},children:r.modelKey}),r.version&&(0,Te.jsxs)(He,{bordered:!1,style:{margin:0,fontSize:10},children:["v",r.version]})]}),r.prompt&&(0,Te.jsx)("div",{style:{fontSize:10,color:"#999",background:"#fafafa",borderRadius:6,padding:"4px 8px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.prompt})]})},da=({data:e})=>{let{group:t,onClick:n,onRemove:o}=e,r=z(),i=zo(t.type);return(0,Te.jsxs)("div",{style:{border:`1.5px dashed ${i}66`,borderRadius:12,padding:"10px 12px",background:"rgba(255,255,255,0.8)",minWidth:170},children:[(0,Te.jsx)(sa,{type:"target"}),(0,Te.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,marginBottom:8},children:[Oo[t.type],(0,Te.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"#666"},children:t.label}),(0,Te.jsxs)("span",{style:{fontSize:10,color:"#bbb"},children:["(",t.items.length,")"]})]}),t.items.length===0?(0,Te.jsx)("div",{style:{fontSize:10,color:"#bbb",padding:"2px 0"},children:r("governance.configGraph.emptyGroup")}):(0,Te.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:t.items.map(l=>(0,Te.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,Te.jsxs)("div",{onClick:c=>{c.stopPropagation(),n?.(l)},style:{display:"flex",alignItems:"center",gap:5,padding:"4px 8px",borderRadius:8,background:"#fff",border:`1px solid ${i}55`,fontSize:11,color:"#333",cursor:"pointer",position:"relative",whiteSpace:"nowrap"},children:[Oo[l.type],(0,Te.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:l.label})]}),o&&(0,Te.jsx)("button",{onClick:c=>{c.stopPropagation(),o(l)},title:r("governance.configGraph.removeItem",{label:l.label}),style:{width:14,height:14,borderRadius:"50%",border:"none",background:"transparent",color:"#ccc",fontSize:9,lineHeight:1,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",padding:0,flexShrink:0},children:"\u2715"})]},l.id))})]})};var $t=R(Ie());function Kt(e,t){let n=new Date(e.createdAt).getTime(),o=new Date(t.createdAt).getTime(),r=Number.isFinite(n),i=Number.isFinite(o);return r&&!i?-1:!r&&i?1:r&&i&&n!==o?n-o:e.id<t.id?-1:e.id>t.id?1:0}function ca(e){return{runId:e.id,score:e.avgScore,passRate:e.totalCases>0?Math.round(e.passedCases/e.totalCases*100):null,createdAt:e.createdAt,...e.taskId?{taskId:e.taskId}:{}}}function ua(e,t=1){let n=Number.isFinite(t)?Math.abs(t):1,o=e.filter(s=>Number.isFinite(s.avgScore)&&Number.isFinite(new Date(s.createdAt).getTime())).sort(Kt),r=o.filter(s=>s.status==="completed"&&!s.holdout),i=r[r.length-1],l=i?.envProjectId!==void 0,d=(l?r.filter(s=>s.envProjectId===i.envProjectId):r).map(ca),a=o.filter(s=>s.status==="completed"&&s.holdout).map(ca),y=d[d.length-1],g=d[d.length-2],u=y&&g?y.score-g.score:null,f="needs-evidence";return u!==null&&(f=u>n?"improving":u<-n?"regressed":"stable"),{verdict:f,latest:y,previous:g,delta:u,passRate:y?.passRate??null,comparisonLabel:l?"Latest comparable result":"Latest recorded result",trend:d,validationTrend:a,runningRuns:o.filter(s=>s.status==="running"),failedRuns:o.filter(s=>s.status==="failed"||s.status==="aborted")}}var qt=R(Ie()),pa=R(W()),pn=({option:e,height:t=200,onEvents:n})=>{let o=(0,qt.useRef)(null),r=(0,qt.useRef)(null),i=(0,qt.useRef)(e),l=(0,qt.useRef)(n);return(0,qt.useEffect)(()=>{i.current=e,r.current?.setOption(e,!0)},[e]),(0,qt.useEffect)(()=>{l.current=n;let c=r.current;if(!c||!n)return;let d=Object.entries(n);for(let[a,y]of d)c.on(a,y);return()=>{for(let[a,y]of d)c.off(a,y)}},[n]),(0,qt.useEffect)(()=>{let c=!1,d=null;return(async()=>{let a=await import("./embed-page-echarts-QVSODBM4.js");if(c||!o.current)return;let y=a.init(o.current);r.current=y,y.setOption(i.current,!0);let g=l.current;if(g)for(let[u,f]of Object.entries(g))y.on(u,f);d=new ResizeObserver(()=>r.current?.resize()),d.observe(o.current)})().catch(a=>{console.error("[EChart] async init failed:",a)}),()=>{c=!0,d?.disconnect(),r.current?.dispose(),r.current=null}},[]),(0,pa.jsx)("div",{ref:o,style:{width:"100%",height:t}})};var ha=R(W()),ga={total:0,last7d:0,last30d:0,lastActive:null,daily7d:[],daily30d:[],loading:!0,error:null},kr=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),fa=(e,t)=>{if(!(typeof e=="string"||typeof e=="number"||e instanceof Date))return null;let n=new Date(e).getTime();return Number.isFinite(n)&&n<=t?n:null},cl=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),ma=e=>{let t=cl(e);return Math.floor(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())/864e5)},ul=(e,t)=>ma(e)-ma(t);function ya(e){let{get:t}=et(),[n,o]=$t.default.useState(ga),r=$t.default.useRef(0),i=$t.default.useRef(e);return i.current=e,$t.default.useEffect(()=>{let l=++r.current,c=!0,d=()=>c&&r.current===l&&i.current===e;return o(a=>({...a,loading:!0,error:null})),(async()=>{try{let a=await t(`/api/assistants/${e}/threads`);if(!kr(a)||a.success!==!0||!kr(a.data))throw new Error("Invalid thread list response");let{records:y,total:g}=a.data;if(!Array.isArray(y)||typeof g!="number"||!Number.isSafeInteger(g)||g<0)throw new Error("Invalid thread list response");let u=Date.now(),f=new Date(u),s=null,v=0,k=0,h=new Array(7).fill(0),m=new Array(30).fill(0);for(let w of y){if(!kr(w))continue;let C=fa(w.createdAt,u);if(C!==null){let S=ul(f,new Date(C));S>=0&&S<7&&(v++,h[6-S]++),S>=0&&S<30&&(k++,m[29-S]++)}let P=fa(w.updatedAt,u);P!==null&&(s===null||P>s)&&(s=P)}if(!d())return;o({total:g,last7d:v,last30d:k,lastActive:s===null?null:new Date(s),daily7d:h,daily30d:m,loading:!1,error:null})}catch(a){if(!d())return;o({...ga,loading:!1,error:a instanceof Error?a:new Error("Failed to load thread activity")})}})(),()=>{c=!1,r.current===l&&r.current++}},[t,e]),n}function Wo(e,t){if(!e)return"\u2014";let n=Date.now()-e.getTime(),o=Math.floor(n/6e4);if(o<1)return t?t("common.time.justNow"):"just now";if(o<60)return t?t("common.time.minutesAgo",{count:o}):`${o}m ago`;let r=Math.floor(o/60);if(r<24)return t?t("common.time.hoursAgo",{count:r}):`${r}h ago`;let i=Math.floor(r/24);return i<30?t?t("common.time.daysAgo",{count:i}):`${i}d ago`:i<365?t?t("common.time.monthsAgo",{count:Math.floor(i/30)}):`${Math.floor(i/30)}mo ago`:t?t("common.time.yearsAgo",{count:Math.floor(i/365)}):`${Math.floor(i/365)}y ago`}function Bo(e){let t=z(),{projects:n,loading:o,error:r,refresh:i}=ko(),l=Do(n,e),c=l?.id??"",{suites:d,loading:a,error:y,refresh:g}=Rn(c),{runs:u,inventoryProjectId:f,loading:s,error:v,refresh:k}=bo(c),h=(0,$t.useCallback)(async()=>{await Promise.all([i(),g(),k()])},[i,g,k]);return{...(0,$t.useMemo)(()=>{let w=d.reduce((E,x)=>E+(x.caseCount??0),0),C=f===c?u.filter(E=>E.projectId===c):[],P=[...C].sort(Kt),S=ua(C),$=S.latest?C.find(E=>E.id===S.latest?.runId):void 0;return{evalProjectId:l?.id,inventoryProjectId:f,suiteCount:d.length,caseCount:w,scores:S.trend.map(E=>E.score),latest:$,runs:P,runCount:C.length,passRate:S.passRate,score:S.latest?.score??null,hasEvalProject:!!l,suiteNames:d.map(E=>E.name??t("governance.overview.unnamed")).filter(Boolean),error:r??y??v,loading:!!(o||c&&(f!==c||a||s))}},[d,u,f,l,c,o,a,s,r,y,v,t]),refresh:h,refreshRuns:k}}var pl=(e,t=new Date)=>{let n=[];for(let o=e-1;o>=0;o--){let r=new Date(t.getFullYear(),t.getMonth(),t.getDate()-o);n.push([String(r.getFullYear()).padStart(4,"0"),String(r.getMonth()+1).padStart(2,"0"),String(r.getDate()).padStart(2,"0")].join("-"))}return n},gl=e=>pl(e).map(t=>t.slice(5)),fl="#6366f1";var ml={left:8,right:8,top:24,bottom:24,containLabel:!0};function va(e){return{grid:ml,tooltip:{trigger:"axis"},xAxis:{type:"category",data:gl(e.length),axisLabel:{fontSize:9,interval:4,color:"#999"},axisLine:{lineStyle:{color:"#eee"}}},yAxis:{type:"value",minInterval:1,axisLabel:{fontSize:9,color:"#999"},splitLine:{lineStyle:{color:"#f5f5f5"}}},series:[{type:"bar",data:e,itemStyle:{color:fl,borderRadius:[2,2,0,0]},barMaxWidth:10}]}}var Xn=R(Ie());var gn=R(W()),ba=({values:e,width:t=120,height:n=32,color:o="#6366f1",placeholderColor:r="#e5e5e5"})=>{if(e.length===0)return null;let i=Math.max(...e,1),l=t/e.length,c=l>4?1:0,d=2;return(0,gn.jsx)("svg",{width:t,height:n,style:{display:"block"},children:e.map((a,y)=>{let g=Math.max(a/i*n,d);return(0,gn.jsx)("rect",{x:y*l,y:n-g,width:Math.max(l-c,1),height:g,fill:a===0?r:o,rx:1},y)})})},ka=({values:e,width:t=200,height:n=40,color:o="#6366f1"})=>{if(e.length===0)return null;let r=Math.min(...e),l=Math.max(...e)-r||1,c=2,d=t-c*2,a=u=>e.length===1?t/2:c+u/(e.length-1)*d,y=u=>n-2-(u-r)/l*(n-4),g=e.map((u,f)=>`${a(f)},${y(u)}`).join(" ");return(0,gn.jsxs)("svg",{width:t,height:n,style:{display:"block"},children:[(0,gn.jsx)("polyline",{points:g,fill:"none",stroke:o,strokeWidth:"1.5",strokeLinecap:"round"}),e.map((u,f)=>(0,gn.jsx)("circle",{cx:a(f),cy:y(u),r:"2.5",fill:o},f))]})};var je=R(Ie());var tn=R(Ie());var jo=R(Ie());var en=R(W()),wa=({projectId:e,value:t,onChange:n})=>{let{uploadFileToProject:o}=Nt(),r=z(),[i,l]=(0,jo.useState)([]),c=(0,jo.useRef)(e);c.current=e;let d=t.map(u=>({uid:u.uri,name:u.name||u.uri,status:"done",response:{uri:u.uri,name:u.name}})),a=async u=>{let f=u.file;try{let s=await o(e,"/project/uploads",f);u.onSuccess?.({uri:s.path,name:f.name,projectId:e})}catch(s){u.onError?.(s instanceof Error?s:new Error("Upload failed"))}},y=u=>{let{file:f}=u;if(f.status==="done"&&f.response?.uri){if(f.response.projectId&&f.response.projectId!==c.current){l(u.fileList.filter(v=>v.status==="uploading"||v.status==="error"));return}let s={uri:f.response.uri,name:f.response.name||f.name,addedBy:"user"};t.some(v=>v.uri===s.uri)||n([...t,s])}f.status==="error"&&at.error(r("governance.learning.uploadFailed",{name:f.name})),l(u.fileList.filter(s=>s.status==="uploading"||s.status==="error"))},g=u=>{if(u.status==="done"){let f=u.response?.uri;n(t.filter(s=>s.uri!==f&&s.name!==u.name))}else l(f=>f.filter(s=>s.uid!==u.uid))};return(0,en.jsx)("div",{"data-testid":"reference-files-field",children:(0,en.jsxs)(Xr.Dragger,{multiple:!0,fileList:[...d,...i],customRequest:a,onChange:y,onRemove:g,style:{padding:"8px 0"},children:[(0,en.jsx)("p",{className:"ant-upload-drag-icon",style:{marginBottom:4},children:(0,en.jsx)(hi,{size:24,style:{color:"#6366f1"}})}),(0,en.jsx)("p",{className:"ant-upload-text",style:{fontSize:13},children:r("governance.learning.uploadHint")}),(0,en.jsx)("p",{className:"ant-upload-hint",style:{fontSize:12},children:r("governance.learning.uploadNote")})]},e)})};function Dn(e){return(e.metadata??{}).trainingRound===!0}function Zu(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t.toString(36).slice(0,6)}function Go(e){return["pending","in_progress","review"].includes(e.status)}function Ln(e,t){return`/api/tasks?${`metadata=${encodeURIComponent(JSON.stringify({trainingRound:"true",targetAgentId:e}))}`}${t?`&projectId=${t}`:""}`}function yl(e,t){return`/api/tasks?${`parentId=${e}`}${t?`&projectId=${t}`:""}`}function xa(e,t){return`${e}:${t}`}async function Ta(e){let t=e.projectId?{headers:{"x-project-id":e.projectId}}:void 0,o=(await e.post("/api/tasks",{title:e.goal.slice(0,60),description:e.goal,ownerType:"agent",ownerId:"agent-architect",workspaceId:e.workspaceId??void 0,projectId:e.projectId??void 0,context:{source:"learning"},metadata:{trainingRound:!0,targetAgentId:e.targetAgentId},files:e.files&&e.files.length>0?e.files:void 0},t)).data;if(!o)throw new Error(e.t?e.t("governance.learning.roundCreateFailed"):"Failed to create learning round task");let r=e.existingThreadId??null;if(!r&&(r=(await e.post("/api/assistants/agent-architect/threads",{metadata:{training:!0,targetAgentId:e.targetAgentId}})).data?.id??null,!r))throw new Error(e.t?e.t("governance.learning.threadCreateFailed"):"Failed to create training thread");return await e.put(`/api/tasks/${o.id}`,{metadata:{trainingRound:!0,targetAgentId:e.targetAgentId,trainingSessionId:r}},t),{roundTaskId:o.id,threadId:r}}function Ra(e){let t=e.graphDefinition,n=t;if(typeof t=="string")try{n=JSON.parse(t)}catch{n={}}let o=n!==null&&typeof n=="object"&&!Array.isArray(n)?n:{},r=o.metadata!==null&&typeof o.metadata=="object"&&!Array.isArray(o.metadata)?o.metadata:{};return r.learningPlaceholder==="true"&&r.architectureStatus==="undecided"?"placeholder":o.type==="workflow"?"existing-workflow":"existing-agent"}function Ia(e){let t=e.targetMode==="placeholder"?"Target form: learning placeholder (architecture undecided).":e.targetMode==="existing-workflow"?"Target form: existing Workflow.":"Target form: existing Capability or Orchestra.";return[`Learning goal (draft \u2014 confirm with the user before any observation or design): ${e.goal}`,`Exact target ID: "${e.targetAgentId}".`,`Exact round Task ID: "${e.roundTaskId}".`,"That exact Task is your bound tracking task: your main task and Belief root for this round.","Reconcile it; create every child under it; never create a new main or round task.",t,...e.files?.length?[`Reference files: ${e.files.map(n=>`${n.name||n.uri} (${n.uri})`).join(", ")}. Read them before designing; in your first reply state which files you actually read and what you took from each.`]:[]].join(`
232
- `)}var vl=5;async function Ca(e,t,n){let o=n?.projectId,r=o?{headers:{"x-project-id":o}}:void 0,i=g=>yl(g,o??void 0),l=[],c=!1,d=new Set,a=new Set([t]),y=[t];for(let g=0;g<vl&&y.length>0;g++){let f=(await Promise.all(y.map(s=>e(i(s),r).then(v=>Array.isArray(v.data)?v.data.map(k=>k.parentId?k:{...k,parentId:s}):[]).catch(()=>(c=!0,d.add(s),[]))))).flat().filter(s=>a.has(s.id)?!1:(a.add(s.id),!0));l.push(...f),y=f.map(s=>s.id)}if(y.length>0){c=!0;for(let g of y)d.add(g)}return{tasks:l,partial:c,...d.size>0?{incompleteParentIds:[...d]}:{}}}var Ve=R(W()),Mn=({open:e,agentId:t,defaultProjectId:n,onClose:o,onCreated:r})=>{let{get:i,post:l,put:c}=et(),{message:d}=wn.useApp(),a=z(),y=vt("agent-architect"),{trainingProjects:g,loading:u}=Nt(),f=g.find(E=>E.id===n)??null,[s]=ge.useForm(),[v,k]=(0,tn.useState)(!1),[h,m]=(0,tn.useState)(null),[w,C]=(0,tn.useState)(null),[P,S]=(0,tn.useState)([]);(0,tn.useEffect)(()=>{e&&(C(xa(y.tenantId,t)),S([]))},[e,y,t]),(0,tn.useEffect)(()=>{if(!e)return;let E=!1;return(async()=>{try{let x=await i(Ln(t,f?.id??void 0),f?{headers:{"x-project-id":f.id}}:void 0);if(E)return;let M=(x.data??[]).filter(Dn);m(M.find(Go)??null)}catch{}})(),()=>{E=!0}},[e,i,t,f]);let $=async E=>{if(!f){d.error(a("governance.learning.noProject"));return}k(!0);try{let{roundTaskId:x,threadId:M}=await Ta({goal:E.goal,targetAgentId:t,workspaceId:f.workspaceId,projectId:f.id,existingThreadId:w,files:P,post:l,put:c,t:a});d.success(a("governance.learning.created")),s.resetFields(),r(x,M,E.goal,P),S([])}catch(x){d.error(x instanceof Error?x.message:a("governance.learning.createFailed"))}finally{k(!1)}};return(0,Ve.jsxs)(ze,{title:a("governance.learning.newTask"),open:e,onCancel:o,footer:null,width:520,destroyOnClose:!0,children:[h&&(0,Ve.jsx)(Yt,{type:"warning",showIcon:!0,style:{marginBottom:16},message:a("governance.learning.inProgress")}),(0,Ve.jsxs)(ge,{form:s,layout:"vertical",onFinish:$,children:[(0,Ve.jsx)(ge.Item,{label:a("governance.learning.goalLabel"),name:"goal",rules:[{required:!0,message:a("governance.learning.goalRequired")}],children:(0,Ve.jsx)(Me.TextArea,{rows:3,placeholder:a("governance.learning.goalPlaceholder")})}),f&&(0,Ve.jsx)(ge.Item,{label:(0,Ve.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,Ve.jsx)("span",{children:a("governance.learning.referenceMaterials")}),(0,Ve.jsx)(fr,{project:f,selectable:!1,loading:u})]}),extra:a("governance.learning.referenceMaterialsHint"),style:{marginBottom:16},colon:!1,children:(0,Ve.jsx)(wa,{projectId:f.id,value:P,onChange:S})}),!f&&!u&&(0,Ve.jsx)(ge.Item,{style:{marginBottom:16},children:(0,Ve.jsx)(fr,{project:f,projects:g,loading:u})}),(0,Ve.jsxs)(ge.Item,{style:{marginBottom:0,textAlign:"right"},children:[(0,Ve.jsx)(U,{onClick:o,style:{marginRight:8},children:a("common.cancel")}),(0,Ve.jsx)(U,{type:"primary",htmlType:"submit",loading:v,disabled:!!h||u||!f,children:a("governance.learning.start")})]})]})]})};var ve=R(Ie());var fn=R(W()),Aa=32,bl=8,kl=Aa-bl,wl="governance.learning.activityLoadFailed",xl="governance.learning.activityCapacity",wr=ve.default.createContext(null),Pa=ve.default.createContext(()=>{});function Sa(e){switch(e){case"retry":return"governance.learning.cmd.retry";case"cancel":return"governance.learning.cmd.cancel";case"start":return"governance.learning.cmd.start";case"reopen":return"governance.learning.cmd.reopen";case"delete":return"governance.learning.cmd.delete";case"comment":return"governance.learning.cmd.comment";default:return"governance.learning.cmd.updated"}}var Tl={start:"in_progress",retry:"in_progress",reopen:"in_progress",cancel:"cancelled"};function Rl(e,t){return new Promise((n,o)=>{let r=window.setTimeout(()=>o(new Error("Work-item request timed out")),t);e.then(i=>{window.clearTimeout(r),n(i)},i=>{window.clearTimeout(r),o(i)})})}var xr=({task:e,relatedTasks:t,onClose:n,onRefresh:o,height:r})=>{let{message:i}=wn.useApp(),l=z(),[c,d]=(0,ve.useState)(null),[a,y]=(0,ve.useState)([]),[g,u]=(0,ve.useState)([]),[f,s]=(0,ve.useState)(!1),[v,k]=(0,ve.useState)(null),h=vt("__GLOBAL__"),w=ve.default.useContext(wr)??{getWorkItemRequest:(j,_,ie,le)=>A(j,_,ie,le),getDetailSession:()=>x.current,bumpDetailSession:()=>{x.current+=1}},C=(0,ve.useRef)(0),P=(0,ve.useRef)(null),S=(0,ve.useRef)(!0),$=(0,ve.useRef)(new Map),E=(0,ve.useRef)(new Set),x=(0,ve.useRef)(0),M=(0,ve.useRef)(h);M.current=h;let de=(0,ve.useRef)(w);de.current=w;let X=c??e,V=(0,ve.useRef)(X);V.current=X;let pe=(0,ve.useRef)(o);pe.current=o;let A=(j,_,ie=x.current,le=!1)=>{let L=$.current.get(j);if(L&&(!le||L.detailSession===ie))return L;L&&($.current.delete(j),E.current.add(L.promise),L.promise.finally(()=>{E.current.delete(L.promise)}).catch(()=>{}));let Le=le?Aa:kl;if($.current.size+E.current.size>=Le){let Ne=Promise.reject(new Error("Work-item request capacity reached"));return Ne.catch(()=>{}),{promise:Ne,source:_,detailSession:ie}}let Ce;try{Ce=Promise.resolve(M.current.tasks.workItems.list(j))}catch(Ne){Ce=Promise.reject(Ne)}let Ee={promise:Ce,source:_,detailSession:ie};return $.current.set(j,Ee),Ce.finally(()=>{$.current.get(j)?.promise===Ce&&$.current.delete(j)}).catch(()=>{}),Ee};(0,ve.useEffect)(()=>(S.current=!0,()=>{S.current=!1,P.current=null,C.current+=1,de.current.bumpDetailSession(),Promise.resolve().then(()=>{S.current||($.current.clear(),E.current.clear())})}),[]);let G=(j,_=!0)=>{let ie=_?++C.current:C.current;_&&S.current&&s(!0);let le=w.getDetailSession(),L=w.getWorkItemRequest(j,"detail",le,_),Le=L.detailSession===le;return Rl(L.promise,4e3).then(be=>{Le&&S.current&&ie===C.current&&P.current===j&&(u(be),k(null))}).catch(be=>{Le&&_&&S.current&&ie===C.current&&P.current===j&&(u([]),k(be instanceof Error&&be.message==="Work-item request capacity reached"?xl:wl))}).finally(()=>{Le&&S.current&&ie===C.current&&P.current===j&&s(!1)})},F=(j,_)=>{_&&y(ie=>X?[...ie,X]:ie),P.current=j.id,d(j),u([]),k(null),G(j.id)},Q=j=>F(j,!0),oe=()=>{if(a.length===0)return;let j=a[a.length-1];y(a.slice(0,-1)),F(j,!1)},N=()=>{w.bumpDetailSession(),P.current=null,C.current+=1,d(null),y([]),u([]),s(!1),k(null),n()},B=(0,ve.useRef)(null),{run:me,pending:ee}=Bi({onSettled:j=>{if(!S.current)return;P.current===j.id&&G(j.id,!1);let _=pe.current,ie=l(Sa(B.current??"start"));_&&Promise.resolve().then(_).catch(()=>{S.current&&i.warning(l("governance.learning.commandFailedSuffix",{message:ie}))})}}),ke=(0,ve.useCallback)(j=>{let _=V.current;return _?(B.current="comment",me(_,"comment",{content:j})):Promise.resolve(!1)},[me]),he=j=>{let _=V.current;_&&(B.current=j,me(_,j).then(ie=>{if(!ie||!S.current)return;let le=Tl[j];le&&d(L=>L&&L.id===_.id?{...L,status:le}:L),i.success(l(Sa(j)))}))};(0,ve.useEffect)(()=>{P.current!==e.id&&(y([]),F(e,!1))},[e]),(0,ve.useEffect)(()=>{let j=P.current;if(!j)return;let _=t.find(le=>le.id===j);if(!_){N();return}d(le=>le&&le.id===j?_:le);let ie=new Map(t.map(le=>[le.id,le]));y(le=>le.flatMap(L=>{let Le=ie.get(L.id);return Le?[Le]:[]})),G(j,!1)},[e,t]),(0,ve.useEffect)(()=>{if(!X?.id)return;let j=X.id,_=!1,ie=async()=>{document.hidden||await G(j,!1)},le=()=>{_||!S.current||document.hidden||ie()};return document.addEventListener("visibilitychange",le),ie(),()=>{_=!0,document.removeEventListener("visibilitychange",le)}},[X?.id]);let O=Ao(X),ne=ve.default.useContext(Pa);(0,ve.useEffect)(()=>{ne(e,X)},[ne,e,X]);let De=X?!!ee[X.id]:!1;return(0,fn.jsx)("div",{style:{display:"flex",flexDirection:"column",height:"100%",background:"#fff",border:"1px solid rgba(5,5,5,0.15)",borderRadius:12,overflow:"hidden"},children:(0,fn.jsx)("div",{style:{flex:1,minHeight:0},children:(0,fn.jsx)(So,{task:X,relatedTasks:t,onRelatedTaskClick:Q,workItems:g,loading:f,activityError:v?l(v):void 0,commandPending:De,onRun:he,onComment:ke,commentPending:De,onViewChat:O,onBack:oe,canGoBack:a.length>0,maxHeight:r,focusKey:`${X.id}:${De?"updating":X.status}`,subtasks:t.filter(j=>j.parentId===X.id),onSubtaskClick:Q,parent:t.find(j=>j.id===X.parentId)??null,onParentClick:Q})})})},Ea=({task:e,relatedTasks:t,onClose:n,onRefresh:o})=>{let[r,i]=(0,ve.useState)(null),l=(0,ve.useCallback)((d,a)=>{i({rootId:d.id,title:a.title})},[]);(0,ve.useEffect)(()=>{e||i(null)},[e]);let c=e?r&&r.rootId===e.id?r.title:e.title:"";return(0,fn.jsx)(ze,{open:e!==null,onCancel:n,footer:null,title:c,width:960,style:{maxWidth:"calc(100vw - 32px)"},styles:{header:{padding:"16px 24px 0"},content:{padding:0},body:{padding:"12px 24px 24px"}},centered:!0,children:(0,fn.jsx)(Pa.Provider,{value:l,children:e&&(0,fn.jsx)(xr,{task:e,relatedTasks:t,onClose:n,onRefresh:o,height:"calc(100dvh - 96px)"})})})};var Ae=R(W()),Tr=32,Il=8,Cl=Tr-Il;function Sl(e){for(let t of e.split(`
233
- `)){let n=t.trim().match(/^#{1,6}\s+(.*)$/);if(n){let o=n[1].trim();if(o.length>0)return o}}}function Al(e){let t=typeof e.detail?.markdown=="string"&&e.detail.markdown.length>0?e.detail.markdown:void 0;if(t){let n=Sl(t);if(n)return n}return e.summary||e.action||""}function Pl(e){let t=e.context?.interruption;return e.status==="interrupted"&&typeof t=="object"&&t!==null&&t.type==="review_required"}function El(e,t){return new Promise((n,o)=>{let r=window.setTimeout(()=>o(new Error("Work-item request timed out")),t);e.then(i=>{window.clearTimeout(r),n(i)},i=>{window.clearTimeout(r),o(i)})})}var Da=({assistantId:e,projectId:t,onLearningStarted:n,round:o,subTasks:r,rounds:i,subTasksByRound:l,selectedRoundId:c,onSelectedRoundChange:d,loading:a,onRefresh:y,onStartRequest:g,onExpandWorkflow:u})=>{let{message:f}=wn.useApp(),s=z(),[v,k]=(0,je.useState)(!1),[h,m]=(0,je.useState)(!1),[w,C]=(0,je.useState)(null),[P,S]=(0,je.useState)(null),$=vt("__GLOBAL__"),E=(0,je.useRef)(!0),x=(0,je.useRef)(new Map),M=(0,je.useRef)(new Set),de=(0,je.useRef)(0),X=(0,je.useRef)(0),V=i&&i.length>0?i:o?[o]:[],[pe,A]=(0,je.useState)(null),G=c!==void 0,F=G?c:pe,Q=V.map(L=>L.id).join(",");(0,je.useEffect)(()=>{if(V.length===0){A(null);return}A(L=>L&&Q.split(",").includes(L)?L:V[0].id)},[Q]);let oe=V.find(L=>L.id===F)??V[0]??null,N=L=>{G||A(L),d?.(L)},B=l&&oe?l[oe.id]??[]:oe&&oe.id===o?.id?r:[],me=(0,je.useMemo)(()=>[oe,...B].filter(L=>L!==null),[o,r,i,l,F]),ee=B.filter(L=>L.status==="in_progress"),ke=ee[0]??null,he=oe?.status==="in_progress",O=(ee.length>0?ee.map(L=>L.id):he&&oe?[oe.id]:[]).sort(),ne=O.join(","),De=(0,je.useRef)($);De.current=$;let j=(0,je.useRef)(null);j.current||(j.current={getWorkItemRequest:(L,Le,be,Ce)=>_(L,Le,be,Ce),getDetailSession:()=>de.current,bumpDetailSession:()=>{de.current+=1}});let _=(L,Le,be=de.current,Ce=!1)=>{let Ee=x.current.get(L);if(Ee&&(!Ce||Ee.detailSession===be))return Ee;Ee&&(x.current.delete(L),M.current.add(Ee.promise),Ee.promise.finally(()=>{M.current.delete(Ee.promise)}).catch(()=>{}));let Ne=Ce?Tr:Cl;if(x.current.size+M.current.size>=Ne){let Oe=Promise.reject(new Error("Work-item request capacity reached"));return Oe.catch(()=>{}),{promise:Oe,source:Le,detailSession:be}}let We;try{We=Promise.resolve(De.current.tasks.workItems.list(L))}catch(Oe){We=Promise.reject(Oe)}let tt={promise:We,source:Le,detailSession:be};return x.current.set(L,tt),We.finally(()=>{x.current.get(L)?.promise===We&&x.current.delete(L)}).catch(()=>{}),tt};(0,je.useEffect)(()=>(E.current=!0,()=>{E.current=!1,Promise.resolve().then(()=>{E.current||(x.current.clear(),M.current.clear())})}),[]),(0,je.useEffect)(()=>{if(O.length===0){S(null);return}S(null);let L=!1,Le=()=>{if(document.hidden)return Promise.resolve();let Ce=X.current%O.length,Ee=[...O.slice(Ce),...O.slice(0,Ce)];return X.current=(Ce+Tr)%O.length,Promise.allSettled(Ee.map(Ne=>El(_(Ne,"live").promise,4e3))).then(Ne=>{if(L||!E.current)return;let rt=Ne.filter(Oe=>Oe.status==="fulfilled").map(Oe=>Oe.value);if(rt.length===0)return;let tt=[...rt.flat().filter(Oe=>!/^Status changed to\b/i.test(Oe.summary??""))].sort((Oe,mt)=>new Date(mt.createdAt).getTime()-new Date(Oe.createdAt).getTime());S(tt[0]??null)})},be=()=>{L||!E.current||document.hidden||Le()};return document.addEventListener("visibilitychange",be),Le(),()=>{L=!0,document.removeEventListener("visibilitychange",be)}},[ne]);let ie=L=>C(L),le=(L,Le,be,Ce)=>{N(L),k(!1);let Ee;try{Ee=Promise.resolve(y())}catch{Ee=Promise.reject(new Error("Task-list refresh failed"))}Ee.catch(()=>{E.current&&f.error(s("governance.learning.createdRefreshFailed"))}),n?.(be,L,Ce)};return(0,Ae.jsxs)("div",{style:{background:"rgba(255, 255, 255, 0.6)",border:"1px solid rgba(240, 240, 240, 0.7)",borderRadius:10,padding:"8px 10px",boxShadow:"0 2px 10px rgba(0,0,0,0.06)",backdropFilter:"blur(8px)",pointerEvents:"auto",width:300},children:[a?(0,Ae.jsx)("div",{style:{fontSize:12,color:"#bbb",padding:"4px 2px"},children:s("common.loading")}):oe?(0,Ae.jsxs)("div",{children:[(0,Ae.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:6,padding:"0 2px 6px",borderBottom:"1px solid rgba(240,240,240,0.7)",marginBottom:6},children:[(0,Ae.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"#595959"},children:s("governance.learning.tasksTitle")}),(0,Ae.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:2},children:[u&&(0,Ae.jsx)(U,{size:"small",type:"text","aria-label":s("governance.learning.openWorkflow"),icon:(0,Ae.jsx)(xn,{}),onClick:u}),(0,Ae.jsx)(U,{size:"small",type:"text",icon:(0,Ae.jsx)(Mt,{}),onClick:()=>g?g():k(!0),style:{fontSize:12},children:s("governance.learning.newTask")})]})]}),V.length>1&&(0,Ae.jsx)(it,{size:"small","data-testid":"round-filter",style:{width:"100%",marginBottom:6},value:oe.id,onChange:N,options:V.map(L=>({value:L.id,label:`${L.title||L.id} (${L.status})`}))}),(()=>{let L=me.filter(Pl);return L.length>0?(0,Ae.jsx)(U,{type:"text","data-testid":"review-banner","aria-label":s("governance.learning.openReviewTasks",{count:L.length,s:L.length>1?"s":""}),onClick:()=>ie(L[0]),style:{display:"flex",alignItems:"center",justifyContent:"flex-start",gap:6,cursor:"pointer",width:"100%",height:"auto",fontSize:12,fontWeight:600,color:"#b45309",background:"rgba(245,158,11,0.12)",border:"1px solid rgba(245,158,11,0.35)",borderRadius:8,padding:"5px 8px",marginBottom:6},children:s("governance.learning.reviewCount",{count:L.length,s:L.length>1?"s":""})}):null})(),P&&(0,Ae.jsxs)("div",{"data-testid":"live-status",style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"#666",padding:"2px 2px 6px",borderBottom:"1px solid rgba(240,240,240,0.7)",marginBottom:4},children:[(0,Ae.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",flexShrink:0,background:ke?"#3b82f6":"#bbb",animation:ke?"live-pulse 1.2s ease-in-out infinite":void 0}}),(0,Ae.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Al(P)}),(0,Ae.jsx)("style",{children:"@keyframes live-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }"})]}),(0,Ae.jsx)("div",{style:{maxHeight:240,overflow:"auto"},children:(0,Ae.jsx)(Co,{tasks:[oe,...B],loading:!1,onTaskClick:ie,hideCompleted:h,onHideCompletedChange:m})})]}):(0,Ae.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"4px 2px"},children:[(0,Ae.jsx)("span",{style:{fontSize:12,color:"#999"},children:s("governance.learning.empty")}),(0,Ae.jsx)(U,{size:"small",icon:(0,Ae.jsx)(Mt,{}),onClick:()=>g?g():k(!0),children:s("governance.learning.newTask")})]}),!g&&(0,Ae.jsx)(Mn,{open:v,agentId:e,defaultProjectId:t,onClose:()=>k(!1),onCreated:le}),(0,Ae.jsx)(wr.Provider,{value:j.current,children:(0,Ae.jsx)(Ea,{task:w,relatedTasks:me,onClose:()=>C(null),onRefresh:y})})]})};var _e=R(Ie());function La(e,t){let n=[...t],o=new Set(t.map(c=>`${c.from}|${c.to}`)),r=new Set(t.filter(c=>c.kind==="dependency").map(c=>c.to)),i=new Set(e.map(c=>c.id)),l=new Map;for(let c of e){if(!c.parentId||!i.has(c.parentId))continue;let d=l.get(c.parentId)??[];d.push(c),l.set(c.parentId,d)}for(let c of l.values()){let d=[...c].sort((a,y)=>new Date(a.createdAt).getTime()-new Date(y.createdAt).getTime());for(let a=1;a<d.length;a++){let y=d[a];if(r.has(y.id))continue;let g=d[a-1].id,u=`${g}|${y.id}`;o.has(u)||o.has(`${y.id}|${g}`)||(n.push({from:g,to:y.id,kind:"sequence"}),o.add(u))}}return n}function Ma(e,t){return e!=="completed"?"idle":t==="in_progress"?"flowing":t==="pending"?"idle":"traversed"}function Na(e){return e==="completed"?"traversed":e==="in_progress"?"flowing":"idle"}var Ht={pending:{label:"Pending",color:"#9ca3af",active:!1},in_progress:{label:"Running",color:"#3b82f6",active:!0},review:{label:"Review",color:"#8b5cf6",active:!1},failed:{label:"Failed",color:"#ef4444",active:!1},interrupted:{label:"Interrupted",color:"#f59e0b",active:!1},completed:{label:"Done",color:"#22c55e",active:!1},cancelled:{label:"Cancelled",color:"#9ca3af",active:!1}},Dl={pending:"governance.learning.status.pending",in_progress:"governance.learning.status.running",review:"governance.learning.status.review",failed:"governance.learning.status.failed",interrupted:"governance.learning.status.interrupted",completed:"governance.learning.status.done",cancelled:"governance.learning.status.cancelled"};function Qn(e,t){return t?t(Dl[e]):Ht[e].label}var Ot=R(W()),Oa=({data:e})=>{let{task:t}=e,n=z(),o=Ht[t.status];return(0,Ot.jsxs)("div",{"data-testid":"workflow-task-node","data-active":String(o.active),style:{width:180,padding:"8px 10px",borderRadius:10,border:`1.5px solid ${o.color}`,background:"#fff",animation:o.active?"workflow-node-pulse 1.6s ease-in-out infinite":void 0},children:[(0,Ot.jsx)(Rt,{type:"target",position:st.Left,style:{opacity:0}}),(0,Ot.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:4},children:[(0,Ot.jsx)("span",{style:{width:8,height:8,borderRadius:9999,background:o.color,flexShrink:0}}),(0,Ot.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"#262626",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:t.title,children:t.title})]}),(0,Ot.jsx)("div",{style:{fontSize:10,color:"#8c8c8c"},children:Qn(t.status,n)}),(0,Ot.jsx)(Rt,{type:"source",position:st.Right,style:{opacity:0}}),o.active&&(0,Ot.jsx)("style",{children:"@keyframes workflow-node-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(59,130,246,0.35); } 50% { box-shadow: 0 0 0 6px rgba(59,130,246,0.08); } }"})]})};var lt=R(W()),Ll={workflowTask:Oa},Ml=180,Nl=56,Ol={traversed:{stroke:"#22c55e",strokeWidth:1.5},flowing:{stroke:"#6366f1",strokeWidth:2},idle:{stroke:"#d1d5db",strokeWidth:1,strokeDasharray:"5 5"}},Fa=({rounds:e,subTasksByRound:t,loading:n})=>{let o=vt("__GLOBAL__"),r=z(),[i,l]=(0,_e.useState)(null),[c,d]=(0,_e.useState)(null),[a,y]=(0,_e.useState)([]),[g,u]=(0,_e.useState)(!1),[f,s]=(0,_e.useState)(null),v=(0,_e.useRef)(0),k=(0,_e.useRef)(o);k.current=o;let h=e.map(N=>N.id).join(",");(0,_e.useEffect)(()=>{l(N=>N&&h.split(",").includes(N)?N:e[0]?.id??null)},[h]);let m=e.find(N=>N.id===i)??e[0]??null,w=(0,_e.useMemo)(()=>[m,...m?t[m.id]??[]:[]].filter(N=>N!==null),[m,t]),{nodes:C,edges:P}=(0,_e.useMemo)(()=>Io(w),[w]),S=(0,_e.useMemo)(()=>La(w,P),[w,P]),$=(0,_e.useMemo)(()=>new Map(w.map(N=>[N.id,N])),[w]),E=(0,_e.useMemo)(()=>{let N=To(C.map(B=>({id:B.id})),S.map(B=>({from:B.from,to:B.to})),{nodeWidth:Ml,nodeHeight:Nl,nodesep:24,ranksep:60,rankdir:"LR"});return C.map(B=>({id:B.id,type:"workflowTask",position:N.get(B.id)??{x:0,y:0},data:{task:B.task}}))},[C,S]),x=(0,_e.useMemo)(()=>S.map(N=>{let B=Ma($.get(N.from)?.status??"pending",$.get(N.to)?.status??"pending");return{id:`${N.from}->${N.to}:${N.kind}`,source:N.from,target:N.to,animated:B==="flowing",style:{...Ol[B],...N.kind==="sequence"&&B!=="idle"?{strokeDasharray:"2 3"}:{}}}}),[S,$]),[M,de,X]=In(E),[V,pe,A]=Cn(x);(0,_e.useEffect)(()=>{de(N=>{let B=N.map(ee=>ee.id).sort().join("|"),me=E.map(ee=>ee.id).sort().join("|");if(B===me){let ee=new Map(N.map(ke=>[ke.id,ke]));return E.map(ke=>{let he=ee.get(ke.id);return he?{...ke,position:he.position}:ke})}return E}),pe(x)},[E,x,de,pe]);let G=(0,_e.useCallback)(N=>{let B=++v.current;u(!0),s(null),k.current.tasks.workItems.list(N).then(me=>{B===v.current&&y(me)}).catch(()=>{B===v.current&&(y([]),s(r("governance.learning.activityLoadFailed")))}).finally(()=>{B===v.current&&u(!1)})},[r]),F=(0,_e.useCallback)((N,B)=>{let me=B.data?.task;me&&(y([]),d(me),G(me.id))},[G]),Q=(0,_e.useCallback)(()=>{v.current+=1,d(null),y([]),s(null),u(!1)},[]),oe=Ao(c);return n?(0,lt.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,lt.jsx)(Tt,{size:"large"})}):!m||w.length===0?(0,lt.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,lt.jsx)(Gt,{description:r("governance.learning.noTasks")})}):(0,lt.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[e.length>1&&(0,lt.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",paddingBottom:12,flexShrink:0},children:e.map((N,B)=>{let me=Ht[N.status],ee=N.id===m.id;return(0,lt.jsxs)("button",{type:"button","data-testid":`round-chip-${N.id}`,onClick:()=>{l(N.id),Q()},title:N.title,style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,fontWeight:600,padding:"3px 10px",borderRadius:9999,cursor:"pointer",border:ee?"1.5px solid #6366f1":"1px solid #e5e7eb",background:ee?"rgba(99,102,241,0.08)":"#fff",color:ee?"#6366f1":"#6b7280"},children:[(0,lt.jsx)("span",{style:{width:6,height:6,borderRadius:9999,background:me.color}}),"R",e.length-B]},N.id)})}),(0,lt.jsx)("div",{style:{flex:1,minHeight:0,position:"relative"},children:(0,lt.jsx)(Ro,{nodes:M,edges:V,nodeTypes:Ll,onNodesChange:X,onEdgesChange:A,onNodeClick:F,fitView:!0,fitViewOptions:{padding:.15},nodesDraggable:!0,nodesConnectable:!1,miniMap:!0,attributionPosition:"bottom-right"})}),c&&(0,lt.jsx)("div",{"data-testid":"workflow-detail",style:{height:"40%",minHeight:200,flexShrink:0,borderTop:"1px solid #f0f0f0",overflow:"hidden"},children:(0,lt.jsx)(So,{task:c,relatedTasks:w,workItems:a,loading:g,activityError:f??void 0,onViewChat:oe,onBack:Q,subtasks:w.filter(N=>N.parentId===c.id),onSubtaskClick:N=>{y([]),d(N),G(N.id)},parent:w.find(N=>N.id===c.parentId)??null,onParentClick:N=>{y([]),d(N),G(N.id)}})})]})};var Ct=R(Ie());var Ft=R(W()),Fl=0,za=360,Wa=48,_a=16;function Rr(e){let t=typeof window>"u"?1200:window.innerWidth-Wa;return Math.min(Math.max(e,za),t)}var ct=({open:e,width:t,mobileWidth:n,left:o,top:r=56,bottom:i=12,height:l,title:c,onClose:d,bodyStyle:a,restoreFocusRef:y,focusControlRef:g,escapeEnabled:u=!0,zIndex:f=25,children:s})=>{let v=Ai("(max-width: 720px)"),k=z(),h=(0,Ct.useRef)(null),m=(0,Ct.useRef)(null),w=(0,Ct.useRef)(null);w.current||(w.current=`canvas-dock-title-${++Fl}`);let C=w.current,[P,S]=(0,Ct.useState)(null);(0,Ct.useEffect)(()=>S(null),[t,n]);let $=!v&&typeof t=="number",E=v?n??t:P??t,x=typeof E=="number"?E:null,M=o===void 0?-1:1,de=V=>{if(!$||x===null)return;V.preventDefault();let pe={startX:V.clientX,startWidth:x},A=F=>{S(Rr(pe.startWidth+M*(F.clientX-pe.startX)))},G=()=>{window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",G)};window.addEventListener("pointermove",A),window.addEventListener("pointerup",G)},X=V=>{!$||x===null||(V.key==="ArrowLeft"?(V.preventDefault(),S(Rr(x-M*_a))):V.key==="ArrowRight"&&(V.preventDefault(),S(Rr(x+M*_a))))};return(0,Ct.useEffect)(()=>{if(!e||!u)return;let V=pe=>{pe.key==="Escape"&&!pe.defaultPrevented&&d()};return document.addEventListener("keydown",V),()=>document.removeEventListener("keydown",V)},[u,e,d]),(0,Ct.useEffect)(()=>{if(g)return g.current=()=>h.current?.focus(),()=>{g.current=null}},[g]),(0,Ct.useEffect)(()=>{if(!e)return;let V=y?.current??document.activeElement;return V instanceof HTMLElement&&(m.current=V),h.current?.focus(),()=>{m.current?.focus(),m.current=null}},[e]),e?(0,Ft.jsxs)("div",{"data-testid":"canvas-dock",role:"region","aria-labelledby":C,style:{position:"absolute",top:r,...o===void 0?{right:12}:{left:o},...l===void 0?{bottom:i}:{height:l},width:E,maxWidth:"calc(100% - 24px)",boxSizing:"border-box",zIndex:f,display:"flex",flexDirection:"column",background:"rgba(255,255,255,0.92)",backdropFilter:"blur(12px)",borderRadius:16,border:"1px solid rgba(240,240,240,0.9)",boxShadow:"0 8px 32px rgba(0,0,0,0.12)",animation:"canvas-dock-in 0.2s ease",overflow:"hidden"},children:[(0,Ft.jsx)("style",{children:"@keyframes canvas-dock-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } }"}),$&&(0,Ft.jsx)("div",{"data-testid":"canvas-dock-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":k("governance.dock.resize"),"aria-valuenow":x??void 0,"aria-valuemin":za,"aria-valuemax":typeof window>"u"?void 0:window.innerWidth-Wa,tabIndex:0,onPointerDown:de,onKeyDown:X,style:{position:"absolute",...o===void 0?{left:0}:{right:0},top:0,bottom:0,width:6,cursor:"ew-resize",zIndex:1,touchAction:"none"}}),(0,Ft.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"12px 16px",borderBottom:"1px solid rgba(240,240,240,0.9)",flexShrink:0,fontSize:13,fontWeight:600,color:"#333"},children:[(0,Ft.jsx)("div",{id:C,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:8,overflow:"hidden"},children:c}),(0,Ft.jsx)("button",{ref:h,type:"button","aria-label":k("governance.dock.close"),onClick:d,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,border:"none",borderRadius:6,background:"transparent",color:"#999",cursor:"pointer",flexShrink:0},children:(0,Ft.jsx)(Ci,{size:14})})]}),(0,Ft.jsx)("div",{"data-testid":"canvas-dock-body",style:{flex:1,minHeight:0,overflow:"auto",padding:16,...a},children:s})]}):null};var zt=R(Ie());var nn=80;function _t(e){return e>=80?"#22c55e":e>=50?"#f59e0b":"#ef4444"}function Yn(e){return e.filter(t=>t.status==="completed"&&t.holdout!==!0).sort(Kt)}function Ba(e){let t=Yn(e),n=t[t.length-1];if(!n)return{latestScore:null,delta:null,passRate:null,passedCases:0,totalCases:0,interruptedCases:0,latestRunId:null};let o=t[t.length-2],r=n.totalCases??0,i=n.passedCases??0;return{latestScore:n.avgScore,delta:o?Math.round(n.avgScore-o.avgScore):null,passRate:r>0?Math.round(i/r*100):null,passedCases:i,totalCases:r,interruptedCases:n.interruptedCases??0,latestRunId:n.id}}function ja(e){let t=new Map;for(let n of e)if(!n.interrupted)for(let o of n.dimensionResults??[]){let r=t.get(o.name)??{sum:0,count:0};r.sum+=o.score,r.count+=1,t.set(o.name,r)}return[...t.entries()].map(([n,{sum:o,count:r}])=>({name:n,avgScore:Math.round(o/r*10)/10,count:r})).sort((n,o)=>n.avgScore-o.avgScore)}var _l=.15,Ga={left:36,right:12,top:16,bottom:24},Ir={fontSize:9,color:"#999"};function Ka(){return{type:"value",min:0,max:100,axisLabel:{...Ir},splitLine:{lineStyle:{color:"#f5f5f5"}}}}function qa({rounds:e,runs:t,selectedRoundId:n,targetLabel:o}){let r=[...e].sort((f,s)=>new Date(f.createdAt).getTime()-new Date(s.createdAt).getTime()),i=t.filter(f=>f.status==="completed").sort(Kt),l=new Map(r.map((f,s)=>[f.id,s+1])),c=new Map;for(let f of i){let s=f.taskId?l.get(f.taskId):void 0;s!==void 0&&c.set(s,(c.get(s)??0)+1)}let d=new Map,a=[],y=new Map;for(let f of i){let s=f.taskId?l.get(f.taskId):void 0;if(s===void 0)continue;let v=d.get(s)??0;if(d.set(s,v+1),f.holdout===!0){let k=(v-((c.get(s)??1)-1)/2)*_l;a.push([Math.round((s+k)*100)/100,f.avgScore])}else y.set(s,f.avgScore)}let g=n??null;if(g===null){for(let f=r.length-1;f>=0;f--)if(y.has(f+1)){g=r[f].id;break}}let u=r.map((f,s)=>{let v=y.get(s+1);if(v===void 0)return null;let k=f.id===g;return{value:[s+1,v],itemStyle:{color:_t(v),borderRadius:[4,4,0,0],...k?{borderColor:"#6366f1",borderWidth:2}:{}}}});return{grid:Ga,tooltip:{trigger:"item"},xAxis:{type:"value",min:.5,max:r.length+.5,interval:1,axisLabel:{...Ir,formatter:f=>Number.isInteger(f)?`R${f}`:""},axisLine:{lineStyle:{color:"#eee"}},splitLine:{show:!1}},yAxis:Ka(),series:[{type:"bar",data:u,barWidth:22,markLine:{silent:!0,symbol:"none",lineStyle:{type:"dashed",color:"#d9d9d9"},label:{fontSize:9,color:"#999",formatter:o??`target ${nn}`},data:[{yAxis:nn}]}},{type:"scatter",data:a,symbol:"diamond",symbolSize:9,itemStyle:{color:"#fff",borderColor:"#f59e0b",borderWidth:1.5},z:4}]}}function $a(e,t){let n=e.filter(i=>i.status==="completed").sort(Kt),o=[],r=[];return n.forEach((i,l)=>{i.holdout===!0?r.push([l+1,i.avgScore]):o.push([l+1,i.avgScore])}),{grid:Ga,tooltip:{trigger:"item"},xAxis:{type:"value",min:.5,max:Math.max(n.length,1)+.5,interval:1,axisLabel:{...Ir,formatter:i=>Number.isInteger(i)?`#${i}`:""},axisLine:{lineStyle:{color:"#eee"}},splitLine:{show:!1}},yAxis:Ka(),series:[{type:"line",data:o,symbol:"circle",symbolSize:6,lineStyle:{color:"#6366f1",width:1.5},itemStyle:{color:"#6366f1"},markLine:{silent:!0,symbol:"none",lineStyle:{type:"dashed",color:"#d9d9d9"},label:{fontSize:9,color:"#999",formatter:t??`target ${nn}`},data:[{yAxis:nn}]}},{type:"scatter",data:r,symbol:"diamond",symbolSize:9,itemStyle:{color:"#fff",borderColor:"#f59e0b",borderWidth:1.5},z:4}]}}var ut=R(W()),Cr={fontSize:10,color:"#999"},Sr={fontSize:22,fontWeight:700,lineHeight:1.2},Ha=({summary:e})=>{let t=z();return e.latestScore===null?null:(0,ut.jsxs)("div",{"data-testid":"eval-summary",style:{display:"flex",gap:28},children:[(0,ut.jsxs)("div",{children:[(0,ut.jsxs)("div",{style:{...Sr,color:_t(e.latestScore)},children:[e.latestScore.toFixed(1),e.delta!==null&&(0,ut.jsxs)("span",{"data-testid":"summary-delta",style:{fontSize:11,fontWeight:600,color:e.delta>=0?"#22c55e":"#ef4444",marginLeft:6},children:[e.delta>=0?"\u25B2":"\u25BC"," ",Math.abs(e.delta)]})]}),(0,ut.jsx)("div",{style:Cr,children:t("governance.evalQuality.latestScore")})]}),(0,ut.jsxs)("div",{children:[(0,ut.jsx)("div",{"data-testid":"summary-pass",style:{...Sr,color:"#262626"},children:e.passRate!==null?`${e.passRate}%`:"\u2014"}),(0,ut.jsx)("div",{style:Cr,children:t("governance.evalQuality.passSummary",{passed:e.passedCases,total:e.totalCases})})]}),e.interruptedCases>0&&(0,ut.jsxs)("div",{"data-testid":"summary-interrupted",children:[(0,ut.jsx)("div",{style:{...Sr,color:"#b45309"},children:e.interruptedCases}),(0,ut.jsx)("div",{style:Cr,children:t("governance.evalQuality.interrupted")})]})]})};var pt=R(Ie());var Nn=R(W()),Ua=({agentId:e,projectId:t,runs:n,selectedRoundId:o,onSelectRound:r})=>{let{get:i}=et(),l=z(),[c,d]=(0,pt.useState)([]),[a,y]=(0,pt.useState)(!1),[g,u]=(0,pt.useState)(null),f=pt.default.useRef(i);f.current=i,(0,pt.useEffect)(()=>{let h=!1;return f.current(Ln(e,t)).then(m=>{if(h)return;let w=(m.data??[]).filter(Dn);w.sort((C,P)=>new Date(C.createdAt).getTime()-new Date(P.createdAt).getTime()),d(w),y(!0)}).catch(()=>{h||y(!0)}),()=>{h=!0}},[e,t]),(0,pt.useEffect)(()=>{g&&!c.some(h=>h.id===g)&&u(null)},[c,g]);let s=(0,pt.useMemo)(()=>qa({rounds:c,runs:n,selectedRoundId:o??g,targetLabel:l("governance.evalQuality.target",{score:nn})}),[c,n,o,g,l]),v=(0,pt.useMemo)(()=>({click:h=>{let m=h;if(m.seriesType!=="bar"||typeof m.dataIndex!="number")return;let w=c[m.dataIndex];w&&(u(w.id),r?.(w.id))}}),[c,r]),k=(0,pt.useMemo)(()=>{if(c.length===0)return!1;let h=new Set(c.map(m=>m.id));return Yn(n).some(m=>m.taskId!==void 0&&h.has(m.taskId))},[c,n]);return a?k?(0,Nn.jsxs)("div",{"data-testid":"round-trend-chart",style:{border:"1px solid #f0f0f0",borderRadius:12,padding:12},children:[(0,Nn.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"rgba(0,0,0,0.65)",marginBottom:8},children:l("governance.evalQuality.roundTrend")}),(0,Nn.jsx)(pn,{option:s,height:100,onEvents:v})]}):(0,Nn.jsx)("div",{"data-testid":"round-trend-empty",style:{display:"none"}}):null};var on=R(W()),Za=({dimensions:e})=>e.length===0?null:(0,on.jsx)("div",{"data-testid":"dimension-panorama",style:{display:"flex",flexDirection:"column",gap:4},children:e.map(t=>{let n=Math.min(Math.max(t.avgScore,0),100);return(0,on.jsxs)("div",{"data-testid":`dimension-row-${t.name}`,style:{display:"flex",alignItems:"center",gap:8,fontSize:11},children:[(0,on.jsx)("span",{"data-testid":`dimension-label-${t.name}`,style:{flexShrink:0,maxWidth:"60%",color:"#595959",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:t.name,children:t.name}),(0,on.jsx)("div",{style:{flex:1,height:8,background:"#f5f5f5",borderRadius:4,overflow:"hidden"},children:(0,on.jsx)("div",{"data-testid":`dimension-fill-${t.name}`,style:{width:`${n}%`,height:"100%",background:_t(t.avgScore),borderRadius:4}})}),(0,on.jsx)("span",{style:{width:28,textAlign:"right",flexShrink:0,fontWeight:600,color:_t(t.avgScore)},children:Math.round(t.avgScore)})]},t.name)})});var Ut=R(W());function Va(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(!n.holdout&&n.status==="completed"&&typeof n.id=="string")return n.id}return null}var Qa=({results:e})=>{let t=z();if(e===null)return null;let n=e.filter(r=>r.interrupted).length,o=e.filter(r=>!r.pass&&!r.interrupted).flatMap(r=>r.dimensionResults??[]).sort((r,i)=>r.score-i.score).slice(0,3);return(0,Ut.jsxs)("div",{style:{marginTop:8},"data-testid":"run-insights",children:[n>0&&(0,Ut.jsx)("div",{"data-testid":"interrupted-count",style:{fontSize:12,color:"#b45309",marginBottom:6},children:t("governance.evalInsights.interrupted",{count:n})}),o.length===0?(0,Ut.jsx)("div",{style:{fontSize:12,color:"#22c55e"},children:t("governance.evalInsights.allPassed")}):o.map((r,i)=>(0,Ut.jsxs)("div",{style:{fontSize:12,padding:"3px 0",display:"flex",gap:6,alignItems:"baseline"},children:[(0,Ut.jsx)("span",{style:{color:"#333",fontWeight:600,flexShrink:0},children:r.name}),(0,Ut.jsx)("span",{style:{color:r.score>=50?"#f59e0b":"#ef4444",flexShrink:0},children:r.score}),(0,Ut.jsx)("span",{style:{color:"#888",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.reason.length>80?`${r.reason.slice(0,80)}\u2026`:r.reason})]},`${r.name}-${i}`))]})};var gt=R(W()),Ya={fontSize:12,fontWeight:600,color:"rgba(0,0,0,0.65)",marginBottom:8},Xa={border:"1px solid #f0f0f0",borderRadius:12,padding:12},mn=({agentId:e,projectId:t,runs:n,showRoundTrend:o=!0})=>{let{get:r}=et(),i=z(),l=(0,zt.useMemo)(()=>Ba(n),[n]),c=Va(n),d=n.find(v=>v.id===c),[a,y]=(0,zt.useState)(null),g=zt.default.useRef(r);g.current=r,(0,zt.useEffect)(()=>{if(!c){y(null);return}let v=!1;return g.current(`/api/eval/runs/${c}`).then(k=>!v&&y(k.data?.results??[])).catch(()=>!v&&y([])),()=>{v=!0}},[c]);let u=(0,zt.useMemo)(()=>ja(a??[]),[a]),f=(0,zt.useMemo)(()=>$a(n,i("governance.evalQuality.target",{score:nn})),[n,i]),s=Yn(n).length>0;return l.latestScore===null?(0,gt.jsx)("div",{style:{height:120,display:"flex",alignItems:"center",justifyContent:"center",color:"#bfbfbf",fontSize:12},children:i("governance.evalQuality.noRuns")}):(0,gt.jsxs)("div",{"data-testid":"eval-quality-panel",style:{display:"flex",flexDirection:"column",gap:12},children:[(0,gt.jsx)(Ha,{summary:l}),o&&(0,gt.jsx)(Ua,{agentId:e,projectId:t,runs:n}),s&&(0,gt.jsxs)("div",{"data-testid":"run-trend-card",style:Xa,children:[(0,gt.jsx)("div",{style:Ya,children:i("governance.evalQuality.scoreByRun")}),(0,gt.jsx)(pn,{option:f,height:160})]}),c&&a!==null&&(0,gt.jsxs)("div",{"data-testid":"run-diagnosis-card",style:Xa,children:[(0,gt.jsxs)("div",{style:Ya,children:[i("governance.evalQuality.latestRun"),d?` \xB7 ${Wo(new Date(d.createdAt),i)}`:""," \xB7 ",i("governance.evalQuality.passCount",{passed:l.passedCases,total:l.totalCases})]}),(0,gt.jsx)(Za,{dimensions:u}),(0,gt.jsx)(Qa,{results:a})]})]})};var ae=R(W()),Ja={background:"rgba(255, 255, 255, 0.6)",border:"1px solid rgba(240, 240, 240, 0.7)",borderRadius:10,padding:"8px 12px",boxShadow:"0 2px 10px rgba(0,0,0,0.06)",backdropFilter:"blur(8px)",pointerEvents:"auto",cursor:"pointer"},zl=async()=>{},Wl={rounds:[],round:null,subTasks:[],subTasksByRound:{},loading:!1},Ko=({assistantId:e,projectId:t,onProjectChange:n,onLearningStarted:o,learningTasks:r=Wl,topOffset:i=12,onLearningRefresh:l,evalTick:c,showLearning:d=!0,variant:a="full",children:y})=>{let g=z(),[u,f]=(0,Xn.useState)(null),[s,v]=(0,Xn.useState)(!1),k=ya(e),h=Bo(e);return(0,Xn.useEffect)(()=>{c!==void 0&&c>0&&h.refresh()},[c]),a==="selector"?(0,ae.jsxs)("div",{style:{position:"absolute",left:12,top:i,zIndex:10,pointerEvents:"none",display:"flex",flexDirection:"column",gap:8},children:[(0,ae.jsx)("div",{style:{pointerEvents:"auto"},children:(0,ae.jsx)(gr,{kind:"training",disableDropdown:!1,showWorkspace:!1,value:t,onChange:n})}),y]}):(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsxs)("div",{style:{position:"absolute",left:12,top:i,zIndex:10,display:"flex",flexDirection:"column",gap:8,pointerEvents:"none"},children:[(0,ae.jsx)("div",{style:{pointerEvents:"auto"},children:(0,ae.jsx)(gr,{kind:"training",disableDropdown:!1,showWorkspace:!1,value:t,onChange:n})}),(0,ae.jsxs)("div",{onClick:()=>f(u==="runtime"?null:"runtime"),title:g("governance.overlay.runtimeChartTitle"),style:Ja,children:[(0,ae.jsx)("div",{style:{fontSize:10,fontWeight:600,color:"#999",marginBottom:4},children:g("governance.overlay.runtime")}),(0,ae.jsxs)("div",{style:{display:"flex",gap:14,fontSize:12,alignItems:"center"},children:[(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:k.total})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:g("governance.overlay.threads")})]}),(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:k.last7d})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:"7d"})]}),(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:k.last30d})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:"30d"})]}),(0,ae.jsx)("span",{style:{color:"#999"},children:Wo(k.lastActive)}),k.daily7d.length>0&&(0,ae.jsx)(ba,{values:k.daily7d,width:56,height:20,color:"#8c8c8c"})]})]}),(0,ae.jsxs)("div",{onClick:()=>f(u==="eval"?null:"eval"),title:g("governance.overlay.evalChartTitle"),style:Ja,children:[(0,ae.jsx)("div",{style:{fontSize:10,fontWeight:600,color:"#999",marginBottom:4},children:g("governance.overlay.evalQuality")}),(0,ae.jsxs)("div",{style:{display:"flex",gap:14,fontSize:12,alignItems:"center"},children:[(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:h.score===null?"#d9d9d9":h.score>=80?"#22c55e":h.score>=50?"#f59e0b":"#ef4444"},children:h.score!==null?h.score.toFixed(1):"\u2014"})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:g("governance.overlay.stat.score")})]}),(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:h.passRate!==null?`${h.passRate}%`:"\u2014"})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:g("governance.overlay.stat.pass")})]}),(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:h.runCount})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:g("governance.overlay.stat.runs")})]}),h.scores.length>1&&(0,ae.jsx)(ka,{values:h.scores.slice(-10),width:64,height:20,color:h.score===null?"#d9d9d9":h.score>=80?"#22c55e":h.score>=50?"#f59e0b":"#ef4444"})]})]}),d&&(0,ae.jsx)(Da,{assistantId:e,projectId:t,onLearningStarted:o,round:r.round,subTasks:r.subTasks,rounds:r.rounds,subTasksByRound:r.subTasksByRound,loading:r.loading,onRefresh:l??zl,onExpandWorkflow:()=>v(!0)})]}),u==="runtime"&&(0,ae.jsxs)("div",{style:{position:"absolute",left:340,top:12,zIndex:11,background:"#fff",borderRadius:12,padding:16,border:"1px solid #f0f0f0",boxShadow:"0 6px 24px rgba(0,0,0,0.15)",width:420},children:[(0,ae.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"rgba(0,0,0,0.65)",marginBottom:8},children:g("governance.overlay.runtimePanel")}),(0,ae.jsx)(pn,{option:va(k.daily30d),height:220})]}),u==="eval"&&(0,ae.jsx)(ct,{open:!0,width:720,title:g("governance.overlay.evalQuality"),onClose:()=>f(null),children:(0,ae.jsx)(mn,{agentId:e,runs:h.runs??[]})}),s&&(0,ae.jsx)(ct,{open:!0,width:860,title:g("governance.overlay.learningWorkflow"),onClose:()=>v(!1),children:(0,ae.jsx)(Fa,{rounds:r.rounds,subTasksByRound:r.subTasksByRound,loading:r.loading})})]})};var Jo=R(Ie());var St=R(Ie());var $o=(e,t,n,o,r)=>({id:e,label:t,x:n-o/2,y:-r/2,width:o,height:r}),yn=$o("zone:config","CONFIG",-767,900,620),On=$o("zone:testing","EVALUATION",-69,400,560),qo=$o("zone:learning","LEARNING",459,560,680),es=$o("zone:copilot","COPILOT",1147,720,740);var ts=[yn.id,On.id,qo.id,es.id],ns=.45,Bl=220,jl=110,Gl=200,Ho=90,Uo={"group:subagents":{x:0,y:-190},"group:capabilities":{x:330,y:0},"group:tools":{x:0,y:190},"group:skills":{x:-330,y:0}},os=e=>({x:e.x+e.width/2-Bl/2,y:e.y+e.height/2-jl/2}),rs=(e,t,n)=>{let o=Uo[t]??{x:0,y:0};return{x:e.x+e.width/2+o.x-Gl/2,y:e.y+e.height/2+o.y-n/2}},Kl=310,ql=e=>{let t=yn.x+yn.width/2,n=Kl;for(let[o,r]of Object.entries(e)){let i=Uo[o];i&&(n=Math.max(n,Math.abs(i.y)+r/2+40))}return{id:yn.id,label:yn.label,x:t-yn.width/2,y:-n,width:yn.width,height:n*2}},$l=900,Ar={x:20,y:20},Jn=110,eo=48,Hl=220,Ul=560,Zl=e=>({id:On.id,label:On.label,x:On.x,y:On.y,width:On.width,height:Math.max(Ul,Hl+e+24)}),is=(e,t,n)=>({x:e.x+e.width/2-Jn/2,y:e.y+e.height/2-eo/2}),Vl=48,Ql=520,Yl=720,ht=20,Pr=150,Er=12,as=56,Dr=12,ss=e=>Math.round((e-Er*2-Dr)/2),ls=(e,t,n)=>{let o={},r=Er,i=as,l=Dr,c=ss(e),d=e-r*2-l-c,a=t-i-r,y=Math.round((a-l)/2),g=n.has("learning"),u=n.has("evaluation");return n.has("copilot")?(o.copilot={width:c},g&&(o.learning=u?{left:r,top:i,width:d,height:y}:{left:r,top:i,width:d,height:a}),u&&(o.evaluation=g?{left:r,top:i+y+l,width:d,height:a-y-l}:{left:r,top:i,width:d,height:a}),o):g&&u?(o.learning={left:r,top:i,width:d,height:a},o.evaluation={left:r+d+l,top:i,width:c,height:a},o):(g&&(o.learning={width:c}),u&&(o.evaluation={width:c}),o)},Zo=260,ds=(e,t,n,o)=>{let r=Er,i=as,l=Dr,c=r+Zo+l,d=ss(e),a=e-c-r-(o?d+l:0);return{left:c,top:i,width:Math.min(n==="evaluation"?720:860,Math.max(a,0)),height:t-i-r}},cs=e=>{let t=ql(e.groupHeights),n={...Zl(e.suitesGroupHeight),width:Ql},o=Math.max(qo.width,e.learningDagBBox.width+ht*2),r={...qo,width:o,height:Math.max(qo.height,e.learningDagBBox.height+Pr+ht*2)},i={...es,width:Yl},l=Math.max($l,t.height,n.height,r.height,i.height),c=t.x,d=a=>{let y={x:c,y:-l/2,width:a.width,height:l};return c+=a.width+Vl,y};return{config:{...d(t),label:t.label,id:t.id},learning:{...d(r),label:r.label,id:r.id},testing:{...d(n),label:n.label,id:n.id},copilot:{...d(i),label:i.label,id:i.id},height:l}};var J=R(W());function Nr(e,t){for(let n of e.rounds){let o=e.subTasksByRound[n.id]??[];if(n.id===t)return{task:n,related:[n,...o]};let r=o.find(i=>i.id===t);if(r)return{task:r,related:[n,...o]}}return null}function Xl(e,t){let n=e.rounds;if(t){let o=n.find(r=>r.id===t);if(o)return o}for(let o of n)if(Go(o))return o;return e.round??n[0]??null}function Or(e,t){let n=Xl(e,t);return n?[n,...e.subTasksByRound[n.id]??[]]:[]}var Vo=200,us=80,Jl=40,ed=70,Mr={width:0,height:0},td=e=>({headerOffset:{x:e.x+ht,y:e.y+ht},headerWidth:e.width-ht*2,dagOffset:{x:e.x+ht,y:e.y+Pr+ht}}),nd={background:"rgba(255,255,255,0.92)",border:"1px solid rgba(240,240,240,0.9)",borderRadius:14,padding:"10px 12px"},od={traversed:{stroke:"#22c55e",strokeWidth:1.5},flowing:{stroke:"#6366f1",strokeWidth:2},idle:{stroke:"#d1d5db",strokeWidth:1}},rd={stroke:"#cbd5e1",strokeOpacity:.55,strokeWidth:1,strokeDasharray:"5 4"},id={type:"arrowclosed",color:"#cbd5e1",width:16,height:16};function ps(e){let t=e.context?.interruption;return e.status==="interrupted"&&typeof t=="object"&&t!==null&&t.type==="review_required"}function gs(e,t){if(!e)return null;let n=new Date(e).getTime();if(!Number.isFinite(n))return null;let o=Math.floor((Date.now()-n)/6e4);return t?o<1?t("common.time.justNow"):o<60?t("common.time.minutesAgo",{count:o}):o<1440?t("common.time.hoursAgo",{count:Math.floor(o/60)}):t("common.time.daysAgo",{count:Math.floor(o/1440)}):o<1?"just now":o<60?`${o}m ago`:o<1440?`${Math.floor(o/60)}h ago`:`${Math.floor(o/1440)}d ago`}function fs(e){let t=e.length>0?e[0]:null,n=new Map(e.map(r=>[r.id,r])),o=new Map;for(let r of e){if(t&&r.id===t.id)continue;let i=r.parentId&&r.parentId!==r.id&&n.has(r.parentId)?r.parentId:t?.id;if(!i)continue;let l=o.get(i)??[];l.push(r),o.set(i,l)}return{byId:n,round:t,childrenOf:o}}function ad(e,t){let n=[],o=[...e.childrenOf.get(t)??[]];for(;o.length>0;){let r=o.pop();if(!r)break;n.push(r),o.push(...e.childrenOf.get(r.id)??[])}return n}function sd(e){return e.some(t=>t.status==="review"||ps(t))?"#f59e0b":e.some(t=>t.status==="in_progress")?"#3b82f6":"#9ca3af"}function ld(e,t){let n=(e.dependencies??[]).filter(r=>t.has(r));if(n.length===0)return null;let o=n.filter(r=>{let i=t.get(r);return i?!Wi(i.status):!1});return o.length>0?{kind:"waiting",count:o.length}:{kind:"done",count:n.length}}function ms(e,t){let n=e[0]??null;return!n||!t||t===n.id?null:e.some(o=>o.id===t)?t:null}function ys(e){let t=new Map(e.map(d=>[d.id,d])),n=new Set(e.map(d=>d.id)),o=new Map([...e].sort((d,a)=>new Date(d.createdAt).getTime()-new Date(a.createdAt).getTime()).map((d,a)=>[d.id,a])),r=new Map,i=new Map;for(let d of e)r.set(d.id,[]),i.set(d.id,0);for(let d of e)for(let a of d.dependencies??[])n.has(a)&&a!==d.id&&(r.get(a)?.push(d.id),i.set(d.id,(i.get(d.id)??0)+1));let l=new Set(n),c=[];for(;l.size>0;){let d=null,a=1/0;for(let g of l){if((i.get(g)??0)!==0)continue;let u=o.get(g)??1/0;u<a&&(d=g,a=u)}if(d===null)break;l.delete(d);let y=t.get(d);y&&c.push(y);for(let g of r.get(d)??[])i.set(g,(i.get(g)??0)-1)}for(let d of[...l].sort((a,y)=>(o.get(a)??1/0)-(o.get(y)??1/0))){let a=t.get(d);a&&c.push(a)}return c}function dd(e,t){let n=new Set(t.map(i=>i.id));if(t.some(i=>(i.dependencies??[]).some(l=>l!==i.id&&n.has(l))))return[];let r=[];for(let i=0;i+1<e.length;i++)r.push({from:e[i].id,to:e[i+1].id,kind:"sequence"});return r}function Qo(e,t,n=null){let o={root:null,tasks:[],edges:[],positions:new Map,bbox:{...Mr}},r=fs(e),i=r.round;if(!i)return o;let l=ms(e,t),c=l??i.id,d=r.childrenOf.get(c)??[],a=x=>{let M=ad(r,x.id);return M.length===0?null:{count:M.length,dotColor:sd(M)}},y=(x,M,de)=>({id:x.id,task:x,seq:M,fold:de?a(x):null,depBadge:ld(x,r.byId)}),g=[],u=[],f=x=>{let M=ys(x);return u.push(...dd(M,x)),M};f(d).forEach((x,M)=>{g.push(y(x,M+1,!1)),f(r.childrenOf.get(x.id)??[]).forEach((de,X)=>{g.push(y(de,X+1,!0))})});let s=l?g.map(x=>x.task):[i,...g.map(x=>x.task)],k=Io(s).edges.map(x=>({from:x.from,to:x.to,kind:x.kind==="parent"?"structure":"dependency"}));k.push(...u);let h=null;if(!l){h={id:i.id,label:n!==null?`R${n}`:"R",title:i.title,status:i.status,doneCount:e.filter(M=>M.status==="completed").length,totalCount:e.length};let x=new Set(k.filter(M=>M.from===i.id).map(M=>`${M.to}:${M.kind}`));for(let M of d)x.has(`${M.id}:structure`)||(k.push({from:i.id,to:M.id,kind:"structure"}),x.add(`${M.id}:structure`))}let m=s.map(x=>({id:x.id})),w=To(m,k.map(x=>({from:x.from,to:x.to})),{nodeWidth:Vo,nodeHeight:us,nodesep:Jl,ranksep:ed,rankdir:"TB"}),C=1/0,P=1/0;for(let x of w.values())C=Math.min(C,x.x),P=Math.min(P,x.y);let S=new Map;if(Number.isFinite(C)&&Number.isFinite(P))for(let[x,M]of w)S.set(x,{x:M.x-C,y:M.y-P});let $=0,E=0;for(let x of S.values())$=Math.max($,x.x+Vo),E=Math.max(E,x.y+us);return{root:h,tasks:g,edges:k,positions:S,bbox:{width:$,height:E}}}function vs(e,t=null){return e.length===0?{width:0,height:0}:Qo(e,t).bbox}var Lr={draggable:!1,selectable:!1,focusable:!1,deletable:!1,connectable:!1};function to(e,t,n,o){let r=e.rounds,i=Or(e,t),l=i[0]??null,c=i.filter(ps),d=fs(i),a=i.filter(k=>k.status==="completed").length,y=l?r.findIndex(k=>k.id===l.id):-1,g=l?r.length-y:null,u=r.map((k,h)=>({id:k.id,label:`R${r.length-h}`,title:k.title,status:k.status,createdAt:k.createdAt})),f=i.reduce((k,h)=>k?new Date(h.updatedAt).getTime()>new Date(k.updatedAt).getTime()?h:k:h,null),s=ms(i,n),v=[];if(l&&(v.push({id:l.id,label:`R${g}`}),s)){let k=[],h=d.byId.get(s)??null;for(;h&&h.id!==l.id;)k.unshift(h),h=h.parentId?d.byId.get(h.parentId)??null:null;for(let m of k){let C=ys(d.childrenOf.get(m.parentId??"")??[]).findIndex(P=>P.id===m.id)+1;v.push({id:m.id,label:`${C}.${m.title}`})}}return{tree:i,selectedRound:l,roundTreeById:d.byId,focusId:s,reviewTasks:c,doneCount:a,roundNumber:g,roundOptions:u,roundLatestActivity:gs(f?.updatedAt,o),breadcrumb:v}}var Fr=({hasRounds:e,reviewCount:t,onReviewClick:n,roundOptions:o,selectedRoundValue:r,onSelectRound:i,roundTitle:l,roundStatus:c,roundDoneCount:d,roundTotalCount:a,roundWaitingCount:y,roundLatestActivity:g,breadcrumb:u,onFocusTask:f,actions:s})=>{let v=z(),k=c?Ht[c]:null,h=c?Qn(c,v):null;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,marginBottom:6},children:[(0,J.jsx)("div",{className:"nodrag nopan nowheel","data-testid":"learning-round-select",children:(0,J.jsx)(it,{size:"small",style:{width:260},placeholder:v("governance.learning.selectRound"),value:r??void 0,allowClear:!0,disabled:o.length===0,onChange:m=>i(m??null),options:o.map(m=>{let w=gs(m.createdAt,v);return{value:m.id,label:`${m.label} ${m.title} \xB7 ${Qn(m.status,v)}${w?` \xB7 ${w}`:""}`}})})}),s]}),!e&&(0,J.jsx)("div",{"data-testid":"learning-empty",style:{fontSize:12,color:"#999",paddingBottom:4},children:v("governance.learning.empty")}),k&&l&&(0,J.jsxs)("div",{"data-testid":"learning-round-stats",style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",marginBottom:6},children:[(0,J.jsx)("span",{style:{width:8,height:8,borderRadius:9999,background:k.color,flexShrink:0}}),(0,J.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"#262626"},children:h}),(0,J.jsx)("span",{style:{fontSize:11,color:"#d1d5db"},children:"\xB7"}),(0,J.jsx)("span",{style:{fontSize:11,color:"#8c8c8c"},children:v("governance.learning.tasksCount",{done:d,total:a})}),y>0&&(0,J.jsxs)("span",{style:{fontSize:11,fontWeight:600,color:"#b45309",background:"rgba(245,158,11,0.12)",border:"1px solid rgba(245,158,11,0.35)",borderRadius:9999,padding:"1px 8px"},children:["\u23F8 ",v("governance.learning.waiting",{count:y})]}),g&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)("span",{style:{fontSize:11,color:"#d1d5db"},children:"\xB7"}),(0,J.jsx)("span",{style:{fontSize:11,color:"#9ca3af"},children:g})]})]}),u.length>1&&(0,J.jsxs)("div",{"data-testid":"learning-breadcrumb",style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",marginBottom:6,fontSize:11,color:"#6b7280"},children:[u.map((m,w)=>(0,J.jsxs)(St.default.Fragment,{children:[w>0&&(0,J.jsx)("span",{style:{color:"#d1d5db"},children:"/"}),(0,J.jsx)("button",{type:"button","data-testid":`learning-crumb-${w}`,onClick:()=>f(w===0?null:m.id),style:{border:"none",background:"transparent",padding:0,cursor:"pointer",fontSize:11,fontWeight:600,color:w===u.length-1?"#4b5563":"#6366f1"},children:m.label})]},m.id)),(0,J.jsx)("button",{type:"button","data-testid":"learning-crumb-back",onClick:()=>f(u[u.length-2]?.id??null),style:{border:"none",background:"rgba(99,102,241,0.08)",borderRadius:9999,padding:"1px 8px",cursor:"pointer",fontSize:11,fontWeight:600,color:"#6366f1"},children:v("governance.learning.back")})]}),t>0&&(0,J.jsx)("button",{type:"button","data-testid":"learning-review-banner","aria-label":v("governance.learning.openReviewTasks",{count:t,s:t>1?"s":""}),onClick:n,style:{display:"flex",alignItems:"center",justifyContent:"flex-start",gap:6,cursor:"pointer",width:"100%",fontSize:12,fontWeight:600,color:"#b45309",background:"rgba(245,158,11,0.12)",border:"1px solid rgba(245,158,11,0.35)",borderRadius:8,padding:"5px 8px",marginBottom:6},children:v("governance.learning.reviewCount",{count:t,s:t>1?"s":""})})]})},cd=({data:e})=>{let t=z(),[n,o]=(0,St.useState)(!1);return(0,J.jsxs)("div",{style:{...nd,width:e.width},children:[(0,J.jsx)(Fr,{hasRounds:e.hasRounds,reviewCount:e.reviewCount,onReviewClick:e.onReviewClick,roundOptions:e.roundOptions,selectedRoundValue:e.selectedRoundValue,onSelectRound:e.onSelectRound,roundNumber:e.roundNumber,roundTitle:e.roundTitle,roundStatus:e.roundStatus,roundDoneCount:e.roundDoneCount,roundTotalCount:e.roundTotalCount,roundWaitingCount:e.roundWaitingCount,roundLatestActivity:e.roundLatestActivity,breadcrumb:e.breadcrumb,onFocusTask:e.onFocusTask,actions:(0,J.jsx)(U,{size:"small",type:"text",icon:(0,J.jsx)(Mt,{}),"data-testid":"learning-new-task",onClick:()=>o(!0),style:{fontSize:12},children:t("governance.learning.newTask")})}),(0,J.jsx)(Mn,{open:n,agentId:e.agentId,defaultProjectId:e.projectId??void 0,onClose:()=>o(!1),onCreated:(r,i,l,c)=>{e.onLearningStarted?.(l,r,c),o(!1)}})]})},hs=St.default.memo(cd),ud=({data:e})=>{let t=z(),n=Ht[e.task.status],[o,r]=(0,St.useState)(!1);return(0,J.jsxs)("div",{"data-testid":"learning-dag-task",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),style:{width:Vo,minHeight:46,padding:"8px 10px",borderRadius:10,cursor:"pointer",border:`1.5px solid ${o?"rgba(99,102,241,0.5)":n.color}`,background:o?"rgba(99,102,241,0.08)":"#fff",transition:"background 0.15s ease, border-color 0.15s ease",animation:n.active?"workflow-node-pulse 1.6s ease-in-out infinite":void 0},children:[(0,J.jsx)(Rt,{type:"target",position:st.Top,style:{opacity:0}}),(0,J.jsx)(Rt,{id:"left",type:"target",position:st.Left,style:{opacity:0}}),(0,J.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6},children:[(0,J.jsx)("span",{style:{width:8,height:8,borderRadius:9999,background:n.color,flexShrink:0,marginTop:4}}),(0,J.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:"#262626",flexShrink:0},children:[e.seq,"."]}),(0,J.jsx)("span",{"data-testid":"learning-task-title",title:e.task.title,style:{fontSize:12,fontWeight:600,color:"#262626",lineHeight:"17px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-word"},children:e.task.title})]}),(e.depBadge||e.fold)&&(0,J.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:6,marginTop:5},children:[e.depBadge?(0,J.jsx)("span",{"data-testid":"learning-dep-badge",style:{fontSize:10,fontWeight:600,flexShrink:0,color:e.depBadge.kind==="done"?"#22c55e":"#f59e0b",background:e.depBadge.kind==="done"?"rgba(34,197,94,0.1)":"rgba(245,158,11,0.12)",borderRadius:9999,padding:"1px 6px"},children:e.depBadge.kind==="done"?t("governance.learning.depBadgeDone",{count:e.depBadge.count}):t("governance.learning.depBadgeWaiting",{count:e.depBadge.count})}):(0,J.jsx)("span",{}),e.fold&&(0,J.jsxs)("button",{type:"button","data-testid":"learning-fold",className:"nodrag","aria-label":t("governance.learning.expandNested",{count:e.fold.count,title:e.task.title}),onClick:i=>{i.stopPropagation(),e.onFocusTask?.(e.task.id)},style:{display:"inline-flex",alignItems:"center",gap:4,cursor:"pointer",flexShrink:0,fontSize:10,fontWeight:600,color:"#6b7280",border:"1px solid #e5e7eb",background:"#fafafa",borderRadius:9999,padding:"1px 6px"},children:[(0,J.jsx)("span",{style:{width:6,height:6,borderRadius:9999,background:e.fold.dotColor,flexShrink:0}}),"\u25B8 ",e.fold.count]})]}),(0,J.jsx)(Rt,{type:"source",position:st.Bottom,style:{opacity:0}}),n.active&&(0,J.jsx)("style",{children:"@keyframes workflow-node-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(59,130,246,0.35); } 50% { box-shadow: 0 0 0 6px rgba(59,130,246,0.08); } }"})]})},Yo=St.default.memo(ud),pd=({data:e})=>{let t=z(),n=Ht[e.status],[o,r]=(0,St.useState)(!1);return(0,J.jsxs)("div",{"data-testid":"learning-round-root",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),style:{width:Vo,minHeight:46,padding:"8px 10px",borderRadius:10,cursor:"pointer",border:`1.5px solid ${o?"rgba(99,102,241,0.5)":n.color}`,background:o?"rgba(99,102,241,0.14)":"rgba(99,102,241,0.04)",transition:"background 0.15s ease, border-color 0.15s ease"},children:[(0,J.jsx)(Rt,{type:"target",position:st.Top,style:{opacity:0}}),(0,J.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6},children:[(0,J.jsx)("span",{style:{width:8,height:8,borderRadius:9999,background:n.color,flexShrink:0,marginTop:4}}),(0,J.jsxs)("span",{"data-testid":"learning-round-root-title",title:e.title,style:{fontSize:12,fontWeight:700,color:"#262626",lineHeight:"17px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-word"},children:[e.label," \xB7 ",e.title]})]}),(0,J.jsx)("div",{style:{fontSize:11,color:"#8c8c8c",marginTop:4},children:t("governance.learning.tasksDone",{done:e.doneCount,total:e.totalCount})}),(0,J.jsx)(Rt,{type:"source",position:st.Bottom,style:{opacity:0}})]})},Xo=St.default.memo(pd);function _r(e,t){let{nodeId:n,byId:o,prefix:r=""}=t;return e.edges.map(i=>{if(i.kind==="dependency"||i.kind==="sequence")return{id:`${r}${i.from}->${i.to}:${i.kind}`,source:n(i.from),target:n(i.to),type:"bezier",animated:!1,style:rd,...i.kind==="dependency"?{markerEnd:id}:{}};let l=Na(o.get(i.to)?.status??"pending");return{id:`${r}${i.from}->${i.to}:structure`,source:n(i.from),target:n(i.to),targetHandle:"left",animated:l==="flowing",style:od[l]}})}function bs(e){let{learningTasks:t,selectedRoundId:n,onSelectRound:o,onTaskClick:r,onFocusTask:i,focusTaskId:l,onLearningStarted:c,agentId:d,projectId:a,zone:y}=e,g=z();return(0,St.useMemo)(()=>{if(!d)return{nodes:[],edges:[],bbox:{...Mr},breadcrumb:[]};let u=td(y),f=to(t,n,l,g),{tree:s,selectedRound:v,roundTreeById:k,focusId:h,reviewTasks:m,doneCount:w,roundNumber:C,roundOptions:P,roundLatestActivity:S,breadcrumb:$}=f,x=[{id:"learning:header",type:"learningHeader",position:u.headerOffset,data:{width:u.headerWidth,hasRounds:t.rounds.length>0,reviewCount:m.length,onReviewClick:()=>{m[0]&&r(m[0],s)},onLearningStarted:c,agentId:d,projectId:a,roundOptions:P,selectedRoundId:n,selectedRoundValue:v?.id??null,onSelectRound:o,roundNumber:C,roundTitle:v?.title??null,roundStatus:v?.status??null,roundDoneCount:w,roundTotalCount:s.length,roundWaitingCount:m.length,roundLatestActivity:S,breadcrumb:$,onFocusTask:i},...Lr}];if(!v)return{nodes:x,edges:[],bbox:{...Mr},breadcrumb:$};let M=Qo(s,h,C),de=y.width-ht*2,X=u.dagOffset.x+Math.max(0,(de-M.bbox.width)/2);if(M.root){let A=M.positions.get(M.root.id)??{x:0,y:0};x.push({id:"learning:round-root",type:"learningRoundRoot",position:{x:X+A.x,y:u.dagOffset.y+A.y},data:{label:M.root.label,title:M.root.title,status:M.root.status,doneCount:M.root.doneCount,totalCount:M.root.totalCount,onTaskClick:()=>r(v,s)},...Lr})}for(let A of M.tasks){let G=M.positions.get(A.id)??{x:0,y:0};x.push({id:`learning:task:${A.id}`,type:"learningTask",position:{x:X+G.x,y:u.dagOffset.y+G.y},data:{task:A.task,seq:A.seq,depBadge:A.depBadge,fold:A.fold,onTaskClick:()=>r(A.task,s),onFocusTask:A.fold?()=>i(A.id):void 0},...Lr})}let pe=_r(M,{byId:k,nodeId:A=>A===v.id?"learning:round-root":`learning:task:${A}`,prefix:"learning:"});return{nodes:x,edges:pe,bbox:M.bbox,breadcrumb:$}},[t,n,o,r,i,l,c,d,a,y,g])}var xe=R(W()),ks={width:Zo,boxSizing:"border-box",background:"rgba(255, 255, 255, 0.6)",border:"1px solid rgba(240, 240, 240, 0.7)",borderRadius:10,padding:"8px 12px",boxShadow:"0 2px 10px rgba(0,0,0,0.06)",backdropFilter:"blur(8px)",pointerEvents:"auto"},ws={fontSize:10,fontWeight:600,color:"#999"},gd=({expanded:e,score:t,passRate:n,onToggleExpand:o,onUnpin:r})=>{let i=z();return(0,xe.jsxs)("div",{"data-testid":"eval-mini",style:{...ks,position:"relative"},children:[(0,xe.jsxs)("button",{type:"button","data-testid":"eval-mini-expand","aria-label":i("governance.pinnedRail.openEval"),"aria-pressed":e,onClick:()=>o("evaluation"),style:{display:"block",width:"100%",border:"none",background:"transparent",padding:0,cursor:"pointer",textAlign:"left"},children:[(0,xe.jsx)("div",{style:ws,children:i("governance.overlay.evalQuality")}),(0,xe.jsxs)("div",{style:{display:"flex",gap:14,fontSize:12,alignItems:"baseline"},children:[(0,xe.jsxs)("span",{children:[(0,xe.jsx)("strong",{"data-testid":"eval-mini-score",style:{fontSize:18,color:t===null?"#d9d9d9":_t(t)},children:t!==null?t.toFixed(1):"\u2014"})," ",(0,xe.jsx)("span",{style:{color:"#bbb"},children:i("governance.overlay.stat.score")})]}),(0,xe.jsxs)("span",{children:[(0,xe.jsx)("strong",{"data-testid":"eval-mini-pass",style:{fontSize:18,color:"#262626"},children:n!==null?`${n}%`:"\u2014"})," ",(0,xe.jsx)("span",{style:{color:"#bbb"},children:i("governance.overlay.stat.pass")})]})]})]}),(0,xe.jsx)(U,{size:"small",type:"text","aria-label":i("governance.zone.unpinAria",{zone:"evaluation"}),icon:(0,xe.jsx)(Gn,{}),onClick:()=>r("evaluation"),style:{position:"absolute",top:2,right:2}})]})},fd=({expanded:e,learningTasks:t,selectedRoundId:n,onSelectRound:o,onTaskClick:r,onLearningStarted:i,onLearningRefresh:l,agentId:c,projectId:d,onToggleExpand:a,onUnpin:y})=>{let g=z(),[u,f]=(0,Jo.useState)(!1),s=(0,Jo.useMemo)(()=>to(t,n,null),[t,n]),v=(k,h,m,w)=>{o(k),f(!1),Promise.resolve(l?.()).catch(()=>{}),i?.(m,k,w)};return(0,xe.jsxs)("div",{"data-testid":"learning-mini",style:ks,children:[(0,xe.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:6,marginBottom:6},children:[(0,xe.jsx)("span",{style:ws,children:g("governance.canvas.dot.learning")}),(0,xe.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:2},children:[(0,xe.jsx)(U,{size:"small",type:"text","aria-label":g("governance.pinnedRail.openLearning"),"aria-pressed":e,icon:(0,xe.jsx)(xn,{}),onClick:()=>a("learning")}),(0,xe.jsx)(U,{size:"small",type:"text","data-testid":"learning-mini-new",icon:(0,xe.jsx)(Mt,{}),onClick:()=>f(!0),children:g("governance.pinnedRail.new")}),(0,xe.jsx)(U,{size:"small",type:"text","aria-label":g("governance.zone.unpinAria",{zone:"learning"}),icon:(0,xe.jsx)(Gn,{}),onClick:()=>y("learning")})]})]}),s.roundOptions.length>1&&(0,xe.jsx)(it,{size:"small","data-testid":"learning-mini-round",style:{width:"100%",marginBottom:6},value:s.selectedRound?.id??void 0,allowClear:!0,placeholder:g("governance.learning.selectRound"),onChange:k=>o(k??null),options:s.roundOptions.map(k=>({value:k.id,label:`${k.label} ${k.title}`}))}),s.selectedRound?(0,xe.jsx)("div",{"data-testid":"learning-mini-tree",style:{maxHeight:240,overflow:"auto"},children:(0,xe.jsx)(Co,{tasks:s.tree,loading:t.loading,onTaskClick:r})}):(0,xe.jsx)("div",{style:{fontSize:12,color:"#999",padding:"2px 0"},children:g("governance.learning.empty")}),(0,xe.jsx)(Mn,{open:u,agentId:c,defaultProjectId:d,onClose:()=>f(!1),onCreated:v})]})},xs=e=>{let t=e.pinned.has("evaluation"),n=e.pinned.has("learning");return!t&&!n?null:(0,xe.jsxs)("div",{"data-testid":"canvas-pinned-rail",style:{display:"flex",flexDirection:"column",gap:8,width:Zo},children:[t&&(0,xe.jsx)(gd,{expanded:e.expanded==="evaluation",score:e.score,passRate:e.passRate,onToggleExpand:e.onToggleExpand,onUnpin:e.onUnpin}),n&&(0,xe.jsx)(fd,{expanded:e.expanded==="learning",learningTasks:e.learningTasks,selectedRoundId:e.selectedRoundId,onSelectRound:e.onSelectRound,onTaskClick:e.onTaskClick,onLearningStarted:e.onLearningStarted,onLearningRefresh:e.onLearningRefresh,agentId:e.agentId,projectId:e.projectId,onToggleExpand:e.onToggleExpand,onUnpin:e.onUnpin})]})};var zr=R(Ie());var vn=R(W()),md={CONFIG:"governance.canvas.zone.config",EVALUATION:"governance.canvas.zone.evaluation",LEARNING:"governance.canvas.zone.learning",COPILOT:"governance.canvas.zone.copilot"},yd=({data:e})=>{let t=z(),[n,o]=zr.default.useState(!1),r=!!e.pinned,i=md[e.label],l=i?t(i):e.label;return(0,vn.jsx)("div",{"data-testid":`canvas-zone-${e.label.toLowerCase()}`,style:{width:e.width,height:e.height,borderRadius:18,border:"1.5px dashed rgba(99,102,241,0.28)",background:"rgba(99,102,241,0.04)",pointerEvents:"none",position:"relative"},children:(0,vn.jsxs)("div",{style:{position:"absolute",top:-22,left:2,display:"flex",alignItems:"center",gap:6},children:[(0,vn.jsx)("span",{"data-testid":`canvas-zone-chip-${e.label.toLowerCase()}`,style:{fontSize:11,fontWeight:600,letterSpacing:1,color:"rgba(99,102,241,0.65)",userSelect:"none",pointerEvents:"auto",cursor:"grab"},children:l}),e.pinnable&&e.onPinToggle&&(0,vn.jsx)("button",{type:"button","data-testid":`canvas-zone-pin-${e.label.toLowerCase()}`,"aria-label":r?t("governance.zone.unpinAria",{zone:l}):t("governance.zone.pinAria",{zone:l}),"aria-pressed":r,onMouseDown:c=>c.stopPropagation(),onClick:c=>{c.stopPropagation(),e.onPinToggle?.()},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:"none",borderRadius:5,background:r?"rgba(99,102,241,0.12)":"transparent",color:r||n?"#6366f1":"rgba(99,102,241,0.45)",cursor:"pointer",pointerEvents:"auto",lineHeight:1},children:(0,vn.jsx)(wi,{size:11,fill:r?"currentColor":"none"})})]})})},Ts=zr.default.memo(yd);var Qe=R(Ie());var er=R(Ie()),no="(max-width: 767px)",vd=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(no).matches:!1;function Rs(){let[e,t]=(0,er.useState)(vd);return(0,er.useEffect)(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let n=window.matchMedia(no),o=r=>{t(r.matches)};return t(n.matches),typeof n.addEventListener=="function"?(n.addEventListener("change",o),()=>n.removeEventListener("change",o)):(n.addListener(o),()=>n.removeListener(o))},[]),e}var rn=R(Ie()),Is=(e,t)=>e?.requestId===t?.requestId&&e?.content===t?.content;function Fn({assistantId:e,initialMessageRequest:t,onInitialMessageSubmitted:n}){let o=(0,rn.useRef)(new Set),r=t??null,i=(0,rn.useRef)(null);i.current===null&&(i.current={assistantId:e,observedRequest:r,request:r});let[l,c]=(0,rn.useState)(i.current),d=(0,rn.useRef)(l);(0,rn.useLayoutEffect)(()=>{let g=d.current;if(g.assistantId===e&&Is(g.observedRequest,r))return;let u={assistantId:e,observedRequest:r,request:r};d.current=u,c(u)},[e,r?.requestId,r?.content]);let a=l.assistantId===e&&Is(l.observedRequest,r)?l.request:null;return{attemptedRequestIdsRef:o,effectivePendingRequest:a,handleInitialMessageSubmitted:g=>{let u=d.current;if(u.assistantId===e){if(u.request?.requestId===g){let f={...u,request:null};d.current=f,c(s=>s.assistantId===e&&s.request?.requestId===g?{...s,request:null}:s)}n?.(g)}}}}var bt=R(W()),Cs=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(no).matches:!1,tr=({assistantId:e,assistantName:t,workspaceId:n,projectId:o,contextType:r,initialMessageRequest:i,onInitialMessageSubmitted:l,onToolCompleted:c,label:d,temporarilyHidden:a=!1,openSignal:y=0,showMobileTrigger:g=!0,restoreFocusRef:u})=>{let f=z(),s=d??f("governance.copilot.label"),[v,k]=(0,Qe.useState)(Cs),[h,m]=(0,Qe.useState)(()=>!Cs()),[w,C]=(0,Qe.useState)(360),P=(0,Qe.useRef)(null),S=(0,Qe.useRef)(null),$=(0,Qe.useRef)(null),E=i??null,{attemptedRequestIdsRef:x,effectivePendingRequest:M,handleInitialMessageSubmitted:de}=Fn({assistantId:e,initialMessageRequest:i,onInitialMessageSubmitted:l});(0,Qe.useEffect)(()=>{P.current&&(P.current.inert=a||!h)},[v,a,h]),(0,Qe.useEffect)(()=>{v&&a&&m(!1)},[v,a]),(0,Qe.useEffect)(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let A=window.matchMedia(no),G=F=>{k(F.matches),m(!F.matches)};return k(A.matches),typeof A.addEventListener=="function"?(A.addEventListener("change",G),()=>A.removeEventListener("change",G)):(A.addListener(G),()=>A.removeListener(G))},[]),(0,Qe.useEffect)(()=>{y>0&&m(!0)},[y]),(0,Qe.useEffect)(()=>{E&&!v&&m(!0)},[e,E?.requestId,E?.content,v]);let X=(0,Qe.useCallback)(A=>{A.preventDefault(),$.current={startX:A.clientX,startWidth:w}},[w]);(0,Qe.useEffect)(()=>{let A=F=>{if(!$.current)return;let Q=$.current.startX-F.clientX,oe=Math.min(900,Math.max(320,$.current.startWidth+Q));C(oe)},G=()=>{$.current=null};return window.addEventListener("mousemove",A),window.addEventListener("mouseup",G),()=>{window.removeEventListener("mousemove",A),window.removeEventListener("mouseup",G)}},[]);let V=(0,bt.jsxs)("div",{ref:P,"data-testid":"architect-copilot-container","aria-hidden":a||!h||void 0,style:v?{width:"100%",height:"100%",overflow:"hidden",visibility:a||!h?"hidden":"visible",pointerEvents:a||!h?"none":void 0}:{position:"absolute",right:12,top:56,bottom:12,width:w,zIndex:15,borderRadius:12,overflow:"hidden",boxShadow:"0 4px 24px rgba(0,0,0,0.12)",visibility:a||!h?"hidden":"visible",pointerEvents:a||!h?"none":void 0},children:[!v&&(0,bt.jsx)("div",{onMouseDown:X,style:{position:"absolute",left:0,top:0,bottom:0,width:6,cursor:"ew-resize",zIndex:2,background:"transparent"}}),(0,bt.jsx)(Sn,{defaultWorkspaceId:n??void 0,defaultProjectId:o??void 0,children:(0,bt.jsx)(An,{workflowContext:{id:e,name:t??"",type:r},onClose:()=>m(!1),onToolCompleted:c,initialMessageRequest:M,attemptedInitialMessageRequestIdsRef:x,rawInitialMessage:!0,onInitialMessageSubmitted:de},e)},`${n??"default"}:${o??"default"}`)]}),pe=!h&&!a&&(!v||g)?(0,bt.jsx)("div",{style:v?{position:"absolute",right:12,bottom:16,zIndex:20}:{position:"absolute",right:0,top:"50%",transform:"translateY(-50%)",zIndex:20},children:(0,bt.jsx)("button",{ref:S,type:"button","aria-label":f("governance.copilot.open"),onClick:()=>m(!0),style:v?{padding:"9px 14px",background:"#6366f1",color:"#fff",borderRadius:9999,cursor:"pointer",fontSize:12,fontWeight:500,userSelect:"none",border:"none",boxShadow:"0 4px 16px rgba(79,70,229,0.28)"}:{writingMode:"vertical-rl",textOrientation:"mixed",padding:"16px 8px",background:"#6366f1",color:"#fff",borderRadius:"8px 0 0 8px",cursor:"pointer",fontSize:12,fontWeight:500,userSelect:"none",border:"none"},children:s})}):null;return(0,bt.jsxs)(bt.Fragment,{children:[pe,v?(0,bt.jsx)(Qr,{title:s,"aria-label":s,placement:"right",width:"100vw",open:h&&!a,onClose:()=>m(!1),forceRender:!0,destroyOnHidden:!1,styles:{body:{padding:0,overflow:"hidden",height:"100%"}},afterOpenChange:A=>{!A&&!h&&(u?.current??S.current)?.focus()},children:V}):V]})};var hn=R(Ie());var an=R(W()),oo="node:architect-copilot",hd=({data:e})=>{let{assistantId:t,assistantName:n,workspaceId:o,projectId:r,initialMessageRequest:i,onInitialMessageSubmitted:l,onToolCompleted:c,temporarilyHidden:d=!1,openSignal:a=0,width:y,height:g,center:u}=e,f=wo(),s=z(),v=(0,hn.useRef)(null),{attemptedRequestIdsRef:k,effectivePendingRequest:h,handleInitialMessageSubmitted:m}=Fn({assistantId:t,initialMessageRequest:i,onInitialMessageSubmitted:l}),w=d,C=()=>f.setCenter(u.x,u.y,{zoom:1,duration:400});return(0,hn.useEffect)(()=>{v.current&&(v.current.inert=w)},[w]),(0,hn.useEffect)(()=>{a>0&&C()},[a]),(0,an.jsxs)("div",{style:{width:y,height:g,position:"relative",fontFamily:"inherit"},children:[(0,an.jsx)("div",{ref:v,"data-testid":"architect-copilot-node-panel","aria-hidden":w||void 0,className:"nodrag nowheel nopan",style:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:12,overflow:"hidden",background:"#fff",visibility:w?"hidden":"visible",pointerEvents:w?"none":void 0,userSelect:"text",WebkitUserSelect:"text"},children:(0,an.jsx)(Sn,{defaultWorkspaceId:o??void 0,defaultProjectId:r??void 0,children:(0,an.jsx)(An,{workflowContext:{id:t,name:n??"",type:"agent"},onToolCompleted:c,initialMessageRequest:h,attemptedInitialMessageRequestIdsRef:k,rawInitialMessage:!0,showHeader:!1,onInitialMessageSubmitted:m},t)},`${o??"default"}:${r??"default"}`)}),w&&(0,an.jsxs)("button",{type:"button","data-testid":"architect-copilot-node-badge","aria-label":s("governance.copilot.expand"),onClick:C,style:{position:"absolute",left:12,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",gap:6,padding:"9px 14px",background:"#6366f1",color:"#fff",borderRadius:9999,border:"none",cursor:"pointer",fontSize:12,fontWeight:500,userSelect:"none"},children:[(0,an.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:"#22c55e",display:"inline-block"}}),s("governance.copilot.label")]})]})},Ss=hn.default.memo(hd);var Wr=R(Ie());var ft=R(W()),bd=.4,kd=.45,As=(e,t)=>t==="badge"?e>=kd?"overview":"badge":e<bd?"badge":"overview",wd={background:"rgba(255,255,255,0.92)",border:"1px solid rgba(240,240,240,0.9)",borderRadius:14},xd=({data:e})=>{let t=z();return(0,ft.jsxs)("div",{"data-testid":"testing-panel",style:{...wd,width:e.width,minHeight:e.height,boxSizing:"border-box",padding:12,overflow:"auto",display:"flex",flexDirection:"column",gap:12},children:[(0,ft.jsx)(mn,{agentId:e.agentId,runs:e.runs}),e.suites.length>0&&(0,ft.jsxs)("div",{"data-testid":"testing-suites",style:{borderTop:"1px solid #f0f0f0",paddingTop:10,display:"flex",flexDirection:"column",gap:8},children:[(0,ft.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"rgba(0,0,0,0.65)"},children:t("governance.testing.suites")}),(0,ft.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:e.suites.map(n=>(0,ft.jsxs)("div",{"data-testid":"testing-suite-chip",onClick:()=>e.onSuiteClick(n),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 10px",borderRadius:9999,background:"#fff",border:`1px solid ${zo("eval")}55`,fontSize:11,color:"#333",cursor:"pointer",whiteSpace:"nowrap"},children:[(0,ft.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:n.label}),n.description&&(0,ft.jsx)("span",{style:{fontSize:10,color:"#999"},children:n.description})]},n.id))})]})]})},Ps=Wr.default.memo(xd),Td=({data:e})=>(0,ft.jsxs)("div",{"data-testid":"testing-badge",style:{width:Jn,height:eo,borderRadius:10,background:"rgba(255,255,255,0.92)",border:"1px solid rgba(240,240,240,0.9)",display:"flex",alignItems:"center",justifyContent:"center",gap:6},children:[(0,ft.jsx)("span",{style:{width:10,height:10,borderRadius:9999,background:e.score===null?"#d1d5db":_t(e.score),flexShrink:0}}),(0,ft.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"#6b7280"},children:e.suiteCount})]}),Es=Wr.default.memo(Td);var Wt=R(Ie());var bn=R(W()),Rd={learningTask:Yo,learningRoundRoot:Xo},Br=({learningTasks:e,selectedRoundId:t,onSelectRound:n,onTaskClick:o,height:r="100%"})=>{let i=z(),[l,c]=(0,Wt.useState)(null);(0,Wt.useEffect)(()=>{c(null)},[t]);let d=(0,Wt.useMemo)(()=>to(e,t,l,i),[e,t,l,i]),{dagNodes:a,dagEdges:y}=(0,Wt.useMemo)(()=>{let m=Qo(d.tree,d.focusId,d.roundNumber),w=d.tree,C=[];m.root&&d.selectedRound&&C.push({id:m.root.id,type:"learningRoundRoot",position:m.positions.get(m.root.id)??{x:0,y:0},data:{label:m.root.label,title:m.root.title,status:m.root.status,doneCount:m.root.doneCount,totalCount:m.root.totalCount,onTaskClick:()=>o(d.selectedRound,w)}});for(let S of m.tasks)C.push({id:S.id,type:"learningTask",position:m.positions.get(S.id)??{x:0,y:0},data:{task:S.task,seq:S.seq,depBadge:S.depBadge,fold:S.fold,onTaskClick:()=>o(S.task,w),onFocusTask:S.fold?()=>c(S.id):void 0}});let P=_r(m,{byId:d.roundTreeById,nodeId:S=>S});return{dagNodes:C,dagEdges:P}},[d,o]),[g,u,f]=In(a),[s,v,k]=Cn(y);(0,Wt.useEffect)(()=>{u(a),v(y)},[a,y,u,v]);let h=(0,Wt.useCallback)((m,w)=>{w.data.onTaskClick?.()},[]);return(0,bn.jsxs)("div",{style:{width:"100%",height:r,display:"flex",flexDirection:"column",minHeight:0},children:[(0,bn.jsx)("div",{className:"nodrag nowheel nopan",style:{flexShrink:0,padding:"12px 16px 4px"},children:(0,bn.jsx)(Fr,{hasRounds:e.rounds.length>0,reviewCount:d.reviewTasks.length,onReviewClick:()=>{d.reviewTasks[0]&&o(d.reviewTasks[0],d.tree)},roundOptions:d.roundOptions,selectedRoundValue:d.selectedRound?.id??null,onSelectRound:n,roundNumber:d.roundNumber,roundTitle:d.selectedRound?.title??null,roundStatus:d.selectedRound?.status??null,roundDoneCount:d.doneCount,roundTotalCount:d.tree.length,roundWaitingCount:d.reviewTasks.length,roundLatestActivity:d.roundLatestActivity,breadcrumb:d.breadcrumb,onFocusTask:c})}),(0,bn.jsx)("div",{style:{flex:1,minHeight:0,position:"relative"},children:(0,bn.jsx)(Ro,{nodes:g,edges:s,nodeTypes:Rd,onNodesChange:f,onEdgesChange:k,onNodeClick:h,fitView:!0,fitViewOptions:{padding:.15,maxZoom:1.2},nodesDraggable:!1,nodesConnectable:!1,miniMap:!1})})]})};var se=R(W()),Id={"zone:copilot":"copilot","zone:learning":"learning","zone:testing":"evaluation"},Cd={copilot:"governance.canvas.zone.copilot",learning:"governance.canvas.zone.learning",evaluation:"governance.canvas.zone.evaluation"},Ds={copilot:"copilot",learning:"learning",testing:"evaluation"},Sd=(e,t)=>{if(Object.keys(t).length===0)return e;let n=o=>{let r=t[o.id];return r?{...o,x:r.x,y:r.y}:o};return{config:n(e.config),copilot:n(e.copilot),learning:n(e.learning),testing:n(e.testing),height:e.height}},Ad={rounds:[],round:null,subTasks:[],subTasksByRound:{},loading:!1},nr={padding:"1px 6px",marginRight:6,border:"1px solid #e0e0e0",borderRadius:4,background:"#fafafa",fontSize:11,fontFamily:"monospace",color:"#595959"},Os="axiom.trainingCanvas.guideDismissed",Pd=()=>{try{return typeof window<"u"&&window.localStorage?.getItem(Os)==="1"}catch{return!1}},Ed=e=>{try{window.localStorage?.setItem(Os,e?"1":"0")}catch{}},jr="axiom.trainingCanvas.layout",Dd=["copilot","learning","evaluation"],Ls=["copilot","learning","evaluation"],Ld=new Set(ts),Md=e=>{if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.x=="number"&&Number.isFinite(t.x)&&typeof t.y=="number"&&Number.isFinite(t.y)},Ms=()=>{try{if(typeof window>"u")return null;let e=window.localStorage?.getItem(jr);if(!e)return null;let t=JSON.parse(e);if(typeof t!="object"||t===null)return null;let n=t;if(n.version!==1)return null;let o={};if(typeof n.origins=="object"&&n.origins!==null)for(let[r,i]of Object.entries(n.origins))Md(i)&&(o[r]=i);return{version:1,pinned:Array.isArray(n.pinned)?n.pinned.filter(r=>typeof r=="string"):[],origins:o}}catch{return null}},Ns=(e,t)=>{try{let n={version:1,pinned:[...e],origins:t};window.localStorage?.setItem(jr,JSON.stringify(n))}catch{}},Nd=()=>{try{window.localStorage?.removeItem(jr)}catch{}},Fs=({graphDefinition:e,onSelectNode:t,assistantId:n,assistantName:o,workspaceId:r,onRemoveNode:i,initialMessageRequest:l,onInitialMessageSubmitted:c,projectId:d,onProjectChange:a,onLearningStarted:y,onToolActivity:g,learningTasks:u,onLearningRefresh:f,evalTick:s,evalData:v,hudTopOffset:k,copilotTemporarilyHidden:h,onOpenArchitect:m,architectOpenSignal:w=0,architectRestoreFocusRef:C})=>{let[P,S,$]=In([]),E=z(),[x,M,de]=Cn([]),[X,V]=(0,q.useState)(null),pe=Rs(),A=wo(),G=(0,q.useRef)(!1),[F,Q]=(0,q.useState)(!Pd()),[oe,N]=(0,q.useState)(null),B=(0,q.useRef)(null),me=(0,q.useRef)({onInitialMessageSubmitted:c,onToolActivity:g,onLearningStarted:y});me.current={onInitialMessageSubmitted:c,onToolActivity:g,onLearningStarted:y};let[ee,ke]=(0,q.useState)(()=>{let T=Ms(),p=T?T.pinned:pe?[]:Ls,I=new Set;for(let D of p)Dd.includes(D)&&I.add(D);return I}),[he,O]=(0,q.useState)(()=>{let T={};for(let[p,I]of Object.entries(Ms()?.origins??{}))Ld.has(p)&&(T[p]=I);return T}),[ne,De]=(0,q.useState)(null),j=(0,q.useRef)(ee);j.current=ee;let _=(0,q.useRef)(he);_.current=he;let ie=(0,q.useCallback)(T=>{let p=new Set(j.current);p.has(T)?(p.delete(T),De(I=>I===T?null:I)):p.add(T),j.current=p,ke(p),Ns([...p],_.current)},[]),le=(0,q.useRef)(null),[L,Le]=(0,q.useState)(()=>({width:typeof window>"u"?1200:window.innerWidth,height:typeof window>"u"?800:window.innerHeight}));(0,q.useEffect)(()=>{let T=le.current;if(!T||typeof ResizeObserver>"u")return;let p=()=>{let D=T.getBoundingClientRect();Le({width:D.width,height:D.height})},I=new ResizeObserver(p);return I.observe(T),p(),()=>I.disconnect()},[]);let be=(0,q.useMemo)(()=>ls(L.width,L.height,ee),[L,ee]),Ce=Fn({assistantId:n??"",initialMessageRequest:l,onInitialMessageSubmitted:T=>me.current.onInitialMessageSubmitted?.(T)}),Ee=(0,q.useCallback)(T=>{N(T),B.current!==null&&window.clearTimeout(B.current),B.current=window.setTimeout(()=>N(null),700)},[]);(0,q.useEffect)(()=>()=>{B.current!==null&&window.clearTimeout(B.current)},[]);let[Ne,rt]=(0,q.useState)(null),[We,tt]=(0,q.useState)(null),[Oe,mt]=(0,q.useState)(null),kt=(0,q.useCallback)(T=>mt(T.id),[]),At=(0,q.useCallback)(()=>mt(null),[]),Ge=(0,q.useCallback)(T=>tt(T),[]),sn=(0,q.useCallback)((T,p,I)=>me.current.onLearningStarted?.(T,p,I),[]),{suites:ln}=Rn(v.evalProjectId??""),dn=ln.map(T=>`${T.name}:${T.caseCount??0}`).join("|"),Bt=(0,q.useMemo)(()=>{let T={};for(let p of ln)T[p.name]=p.caseCount??0;return T},[dn]),wt=(0,q.useMemo)(()=>v.suiteNames.map(T=>({id:`suite:${T}`,type:"eval",label:T,description:E("governance.testing.caseCount",{count:Bt[T]??0})})),[v.suiteNames,Bt,E]),Ze=(0,q.useMemo)(()=>ia(e,{includeEmptyGroups:!0,t:E}),[e,E]),xt=(0,q.useMemo)(()=>({zone:Ts,config:da,agent:la,copilot:Ss,testingPanel:Ps,testingBadge:Es,learningHeader:hs,learningTask:Yo,learningRoundRoot:Xo}),[]),kn=Ni(T=>T.transform[2]),Vt=(0,q.useRef)("overview"),K=As(kn,Vt.current);Vt.current=K;let ye=u??Ad,Xe=(0,q.useMemo)(()=>{let T=new Map(Ze.groups.map(I=>[I.id,I])),p={};for(let I of Ze.groups)T.get(I.id)&&(p[I.id]=Math.max(Ho,56+I.items.length*30));return p},[Ze.groups]),Je=(0,q.useMemo)(()=>v.suiteNames.length>0?Math.max(Ho,56+v.suiteNames.length*30):0,[v.suiteNames]),Ke=(0,q.useMemo)(()=>Or(ye,Ne),[ye,Ne]),Pt=(0,q.useMemo)(()=>vs(Ke,We),[Ke,We]),nt=(0,q.useMemo)(()=>cs({groupHeights:Xe,suitesGroupHeight:Je,learningDagBBox:Pt}),[Xe,Je,Pt]),we=(0,q.useMemo)(()=>Sd(nt,he),[nt,he]),_n=(0,q.useRef)({}),Et=(0,q.useRef)({}),zn=(0,q.useRef)(null),[dt,ro]=(0,q.useState)({x:0,y:0}),io=(0,q.useMemo)(()=>{let T=we.learning;return dt.x===0&&dt.y===0?T:{...T,x:T.x+dt.x,y:T.y+dt.y}},[we,dt]),Qt=(0,q.useCallback)((T,p)=>{T.startsWith("zone:")&&(zn.current=T,Et.current[T]={x:p.x,y:p.y})},[]),ao=(0,q.useCallback)((T,p)=>{if(!T.startsWith("zone:"))return;let I=Et.current[T],D={x:p.x,y:p.y};if(Et.current[T]=D,!I)return;let ce=D.x-I.x,qe=D.y-I.y;if(ce===0&&qe===0)return;let yt=_n.current[T]??[];T==="zone:learning"&&ro(Re=>({x:Re.x+ce,y:Re.y+qe})),yt.length>0&&S(Re=>Re.map(Dt=>Dt.position&&yt.indexOf(Dt.id)>=0?{...Dt,position:{x:Dt.position.x+ce,y:Dt.position.y+qe}}:Dt))},[S]),ir=(0,q.useCallback)((T,p)=>{if(!T.startsWith("zone:"))return;zn.current=null,delete Et.current[T],T==="zone:learning"&&ro({x:0,y:0});let I=Object.keys(_.current).length===0?{"zone:config":{x:nt.config.x,y:nt.config.y},"zone:copilot":{x:nt.copilot.x,y:nt.copilot.y},"zone:learning":{x:nt.learning.x,y:nt.learning.y},"zone:testing":{x:nt.testing.x,y:nt.testing.y}}:{..._.current};I[T]={x:p.x,y:p.y},_.current=I,O(I),Ns([...j.current],I)},[nt]),ar=(0,q.useCallback)(()=>{Nd();let T=pe?new Set:new Set(Ls);j.current=T,ke(T),De(null),_.current={},O({})},[pe]),so=bs({learningTasks:ye,selectedRoundId:Ne,zone:io,onSelectRound:rt,onTaskClick:kt,onFocusTask:Ge,focusTaskId:We,onLearningStarted:sn,agentId:n??"",projectId:d}),jt=Oe?Nr(ye,Oe):null;(0,q.useEffect)(()=>{Oe&&!jt&&mt(null)},[Oe,jt]),(0,q.useEffect)(()=>{tt(null)},[Ne]),(0,q.useEffect)(()=>{We&&!Nr(ye,We)&&tt(null)},[We,ye]),(0,q.useEffect)(()=>{let T=Ze.groups,p=new Map(T.map(ue=>[ue.id,ue])),I=[],D=!!n&&!pe,ce=we.config,qe=we.testing,yt=ee.has("copilot"),Re=ee.has("learning"),Dt=ee.has("evaluation"),Wn=[we.config,we.testing,we.learning,we.copilot].filter(ue=>ue.id!==we.copilot.id||D&&!yt).filter(ue=>ue.id!==we.learning.id||!!n&&!Re).filter(ue=>ue.id!==we.testing.id||!Dt).map(ue=>{let $e=Id[ue.id];return{id:ue.id,type:"zone",position:{x:ue.x,y:ue.y},data:{label:ue.label,width:ue.width,height:ue.height,pinnable:$e!==void 0,pinned:$e!==void 0&&ee.has($e),onPinToggle:$e!==void 0?()=>ie($e):void 0},draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1,zIndex:-1,style:{pointerEvents:"none"}}});I.push(...Wn);let Hr={[we.config.id]:[],[we.testing.id]:[],[we.learning.id]:[],[we.copilot.id]:[]},Bn=(ue,$e)=>{let jn=Hr[ue];jn&&jn.indexOf($e)<0&&jn.push($e)};Bn(we.config.id,Ze.agent.id),I.push({id:Ze.agent.id,type:"agent",draggable:!1,data:{node:Ze.agent,onClick:()=>t?.(Ze.agent)},position:os(ce)});for(let ue of T){let $e=p.get(ue.id);if(!$e)continue;let jn=Xe[ue.id]??Math.max(Ho,56+ue.items.length*30);Bn(we.config.id,ue.id),I.push({id:ue.id,type:"config",draggable:!1,data:{group:$e,onClick:Us=>t?.(Us),onRemove:i},position:rs(ce,ue.id,jn)})}ee.has("evaluation")||(K==="badge"?v.suiteNames.length>0&&(Bn(we.testing.id,"testing:badge"),I.push({id:"testing:badge",type:"testingBadge",draggable:!1,data:{score:v.score,suiteCount:v.suiteNames.length},position:is(qe,Jn,eo)})):(Bn(we.testing.id,"testing:panel"),I.push({id:"testing:panel",type:"testingPanel",draggable:!1,data:{agentId:n??"",runs:v.runs,width:qe.width-ht*2,height:qe.height-ht*2,suites:wt,onSuiteClick:ue=>t?.(ue)},position:{x:qe.x+Ar.x,y:qe.y+Ar.y}}))),D&&!ee.has("copilot")&&(Bn(we.copilot.id,oo),I.push({id:oo,type:"copilot",draggable:!1,data:{assistantId:n,assistantName:o??"",workspaceId:r,projectId:d,initialMessageRequest:l??null,onInitialMessageSubmitted:ue=>me.current.onInitialMessageSubmitted?.(ue),onToolCompleted:ue=>me.current.onToolActivity?.(ue),temporarilyHidden:h??!1,openSignal:w,width:we.copilot.width,height:we.copilot.height,center:{x:we.copilot.x+we.copilot.width/2,y:we.copilot.y+we.copilot.height/2}},position:{x:we.copilot.x,y:we.copilot.y}})),_n.current=Hr;for(let ue of Wn)zn.current!==ue.id&&(Et.current[ue.id]={x:ue.position.x,y:ue.position.y});S(I);let Ur=(ue,$e)=>Math.abs(ue)>Math.abs($e)?ue<0?"left":"right":$e<0?"top":"bottom";M(T.map(ue=>{let $e=Uo[ue.id]??{x:0,y:0};return{id:`e${Ze.agent.id}-${ue.id}`,source:Ze.agent.id,target:ue.id,sourceHandle:Ur($e.x,$e.y),targetHandle:Ur(-$e.x,-$e.y),style:{stroke:"#c7c7c7",strokeWidth:1.2},type:"bezier"}}))},[Ze,S,M,i,n,pe,r,d,o,h,w,l?.requestId,l?.content,K,wt,v.score,v.suiteNames,v.runs.map(T=>T.id).join(","),we,Xe,ee,ie]);let lo=Fi();(0,q.useEffect)(()=>{if(!lo||G.current)return;G.current=!0;let T=A.getNodes().filter(p=>!p.id.startsWith("zone:"));A.fitView({padding:.2,nodes:T}).then(p=>{p&&A.getZoom()<ns&&A.fitView({padding:.2,nodes:A.getNodes().filter(I=>I.type==="agent"||I.type==="config")})})},[lo,A]),(0,q.useEffect)(()=>{let T=[["1","zone:config","config"],["2","zone:learning","learning"],["3","zone:testing","testing"],["4","zone:copilot","copilot"]],p=I=>{if(!(I.ctrlKey||I.metaKey))return;let D=T.find(([yt])=>I.key===yt);if(!D)return;let ce=I.target;if(ce&&(ce.tagName==="INPUT"||ce.tagName==="TEXTAREA"||ce.tagName==="SELECT"||ce.isContentEditable))return;I.preventDefault();let qe=Ds[D[2]];qe&&ee.has(qe)||(Ee(D[2]),A.fitView({padding:.4,duration:400,nodes:[{id:D[1]}]}))};return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[A,Ee,ee]);let sr=(0,q.useMemo)(()=>{let T=P.some(p=>p.id===X)?X:null;return T===null?P:P.map(p=>{if(p.id===oo||p.id.startsWith("zone:")||p.id.startsWith("testing:"))return p;let I=p.id===T||x.some(D=>D.source===T&&D.target===p.id||D.target===T&&D.source===p.id);return{...p,style:{opacity:I?1:.4,transition:"opacity 0.2s ease"}}})},[P,x,X]);return(0,se.jsxs)("div",{ref:le,style:{width:"100%",height:"100%",position:"relative",background:"#fafafa"},children:[(0,se.jsx)("style",{children:`.axiom-training-canvas .react-flow__pane { cursor: default; }
231
+ `)),children:t("governance.webApps.copyExamples")}),(0,re.jsx)(U,{type:"primary",onClick:()=>pe(null),children:t("common.close")})]}),width:900,children:V&&(0,re.jsx)(Ur,{defaultActiveKey:"zero-code",items:[{key:"zero-code",label:t("governance.webApps.guide.zeroCodeTab"),children:(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)(Be.Paragraph,{type:"secondary",style:{marginTop:0},children:t("governance.webApps.guide.zeroCodeIntro")}),(0,re.jsx)("pre",{style:Mo,children:Un(V,i).embed}),(0,re.jsx)(Be.Title,{level:5,style:{marginTop:24},children:t("governance.webApps.guide.settingsTitle")}),(0,re.jsx)(lo,{size:"small",style:{marginBottom:8},pagination:!1,rowKey:"name",columns:[{title:t("governance.webApps.guide.col.key"),dataIndex:"name",key:"name",width:160},{title:t("governance.webApps.guide.col.type"),dataIndex:"type",key:"type",width:180},{title:t("governance.webApps.guide.col.description"),dataIndex:"descriptionKey",key:"description",render:O=>t(O)}],dataSource:tl}),(0,re.jsx)(Be.Title,{level:5,children:t("governance.webApps.guide.jsApiTitle")}),(0,re.jsx)(Be.Paragraph,{type:"secondary",children:t("governance.webApps.guide.jsApiBody",{example:'window.AxiomChat = [["onMessage", fn], ["open"]]'})}),(0,re.jsx)(lo,{size:"small",style:{marginBottom:8},pagination:!1,rowKey:"api",columns:[{title:t("governance.webApps.guide.col.api"),dataIndex:"api",key:"api",width:280},{title:t("governance.webApps.guide.col.behavior"),dataIndex:"behaviorKey",key:"behavior",render:O=>t(O)}],dataSource:nl}),(0,re.jsx)(Be.Title,{level:5,children:t("governance.webApps.guide.eventsTitle")}),(0,re.jsx)(lo,{size:"small",style:{marginBottom:8},pagination:!1,rowKey:"event",columns:[{title:t("governance.webApps.guide.col.register"),dataIndex:"event",key:"event",width:220},{title:t("governance.webApps.guide.col.payload"),dataIndex:"payload",key:"payload",width:280},{title:t("governance.webApps.guide.col.when"),dataIndex:"whenKey",key:"when",render:O=>t(O)}],dataSource:ol}),(0,re.jsx)(Qt,{style:{marginTop:8},type:"warning",showIcon:!0,message:t("governance.webApps.guide.hostTrustTitle"),description:t("governance.webApps.guide.hostTrustBody")})]})},{key:"npm-sdk",label:t("governance.webApps.guide.npmTab"),children:(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)(Be.Paragraph,{type:"secondary",style:{marginTop:0},children:t("governance.webApps.guide.npmIntro")}),(0,re.jsx)(Lo,{strong:!0,children:t("governance.webApps.guide.fullChat")}),(0,re.jsx)("pre",{style:Mo,children:Un(V,i).agentChat}),(0,re.jsx)(Lo,{strong:!0,children:t("governance.webApps.guide.composable")}),(0,re.jsx)("pre",{style:Mo,children:Un(V,i).composable}),(0,re.jsx)(Lo,{strong:!0,children:t("governance.webApps.guide.hooks")}),(0,re.jsx)("pre",{style:Mo,children:Un(V,i).hooks})]})}]})})]})};var q=C(Ce());var Xt=C(z()),No={agent:(0,Xt.jsx)(Gn,{size:14}),tool:(0,Xt.jsx)(Ri,{size:12}),capability:(0,Xt.jsx)(di,{size:12}),subagent:(0,Xt.jsx)(Gn,{size:12}),skill:(0,Xt.jsx)(yi,{size:12}),model:(0,Xt.jsx)(gi,{size:12}),eval:(0,Xt.jsx)(go,{size:12})},Oo={agent:"governance.nodeGroup.agent",tool:"governance.nodeGroup.tool",capability:"governance.nodeGroup.capability",subagent:"governance.nodeGroup.subagent",skill:"governance.nodeGroup.skill",model:"governance.nodeGroup.model",eval:"governance.nodeGroup.eval"};var rl={agent:"Agent",tool:"Tools",capability:"Capabilities",subagent:"Sub-Agents",skill:"Skills",model:"Model",eval:"Eval Suite"},il={agent:{color:"agent"},tool:{color:"#06b6d4",section:"tools"},capability:{color:"#6366f1",section:"middleware"},subagent:{color:"#22c55e",section:"subagents"},skill:{color:"#a855f7",section:"skills"},model:{color:"#8c8c8c"},eval:{color:"#f59e0b"}};function _o(e){let t=il[e];return e==="agent"?"agent":t.color}function al(e){return typeof e=="object"&&e!==null?e:{}}var Fo=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[],hr="skill:__all__";function sl(e){let t=[],n=new Set,o=l=>{n.has(l)||(n.add(l),t.push(l))};for(let l of Fo(e.skills))o(l);let r=!1,i=Array.isArray(e.middleware)?e.middleware:[];for(let l of i){if(l.enabled===!1||l.type!=="skill")continue;let p=typeof l.config=="object"&&l.config!==null?l.config:{};p.readAll===!0&&(r=!0);for(let d of Fo(p.skills))o(d)}return{ids:t,readAll:r}}function ra(e,t){let n=t?.t,o=al(e),r=typeof o.key=="string"?o.key:"agent",i=o.type??"capability",l={id:r,type:"agent",label:o.name||r,description:o.description||void 0,config:{name:o.name||r,type:i,description:o.description||"",modelKey:o.modelKey||"",prompt:o.prompt||"",version:o.metadata?.version||""}},p=(h,m,w,I,P)=>({id:m,type:h,label:w,description:I,config:P}),d=Fo(o.tools).map(h=>p("tool",`tool:${h}`,h)),a=(Array.isArray(o.middleware)?o.middleware:[]).filter(h=>h.enabled!==!1).map(h=>{let m=typeof h.type=="string"?h.type:"unknown";return p("capability",`cap:${m}`,h.name||m,h.description||void 0,h)}),v=Fo(o.subAgents).map(h=>p("subagent",`sub:${h}`,h)),{ids:g,readAll:u}=sl(o),f=[...u?[p("skill",hr,n?n("governance.configGraph.allSkills"):"All skills",n?n("governance.configGraph.allSkillsDescription"):"Agent can load any available skill")]:[],...g.map(h=>p("skill",`skill:${h}`,h))],s=h=>n?n(Oo[h]):rl[h],y=[{id:"group:tools",type:"tool",label:s("tool"),items:d},{id:"group:capabilities",type:"capability",label:s("capability"),items:a},{id:"group:subagents",type:"subagent",label:s("subagent"),items:v},{id:"group:skills",type:"skill",label:s("skill"),items:f}],k=t?.includeEmptyGroups?y:y.filter(h=>h.items.length>0);return{agent:l,groups:k}}var ia=C(z()),Zn=({id:e,position:t,type:n="source"})=>(0,ia.jsx)(Rt,{id:e,type:n,position:t,style:{opacity:0,width:0,height:0,border:"none"},isConnectable:!1});var Te=C(z()),aa=({type:e="source"})=>(0,Te.jsxs)(Te.Fragment,{children:[(0,Te.jsx)(Zn,{id:"top",position:st.Top,type:e}),(0,Te.jsx)(Zn,{id:"bottom",position:st.Bottom,type:e}),(0,Te.jsx)(Zn,{id:"left",position:st.Left,type:e}),(0,Te.jsx)(Zn,{id:"right",position:st.Right,type:e})]}),sa=({data:e})=>{let{node:t,onClick:n}=e,o=Kn(An(String(t.config?.type??"react")).color),r=t.config??{};return(0,Te.jsxs)("div",{onClick:n,style:{width:220,background:"#fff",border:`2px solid ${o}`,borderRadius:14,padding:"10px 12px",cursor:"pointer",fontFamily:"inherit"},children:[(0,Te.jsx)(aa,{type:"source"}),(0,Te.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:4},children:[No.agent,(0,Te.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"#333",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.label})]}),r.description&&(0,Te.jsx)("div",{style:{fontSize:11,color:"rgba(0,0,0,0.55)",marginBottom:6,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:r.description}),(0,Te.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:6},children:[(0,Te.jsx)(He,{bordered:!1,style:{margin:0,fontSize:10,background:`${o}1A`,color:o},children:r.type??"capability"}),r.modelKey&&(0,Te.jsx)(He,{bordered:!1,style:{margin:0,fontSize:10},children:r.modelKey}),r.version&&(0,Te.jsxs)(He,{bordered:!1,style:{margin:0,fontSize:10},children:["v",r.version]})]}),r.prompt&&(0,Te.jsx)("div",{style:{fontSize:10,color:"#999",background:"#fafafa",borderRadius:6,padding:"4px 8px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.prompt})]})},la=({data:e})=>{let{group:t,onClick:n,onRemove:o}=e,r=W(),i=_o(t.type);return(0,Te.jsxs)("div",{style:{border:`1.5px dashed ${i}66`,borderRadius:12,padding:"10px 12px",background:"rgba(255,255,255,0.8)",minWidth:170},children:[(0,Te.jsx)(aa,{type:"target"}),(0,Te.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,marginBottom:8},children:[No[t.type],(0,Te.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"#666"},children:t.label}),(0,Te.jsxs)("span",{style:{fontSize:10,color:"#bbb"},children:["(",t.items.length,")"]})]}),t.items.length===0?(0,Te.jsx)("div",{style:{fontSize:10,color:"#bbb",padding:"2px 0"},children:r("governance.configGraph.emptyGroup")}):(0,Te.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:t.items.map(l=>(0,Te.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,Te.jsxs)("div",{onClick:p=>{p.stopPropagation(),n?.(l)},style:{display:"flex",alignItems:"center",gap:5,padding:"4px 8px",borderRadius:8,background:"#fff",border:`1px solid ${i}55`,fontSize:11,color:"#333",cursor:"pointer",position:"relative",whiteSpace:"nowrap"},children:[No[l.type],(0,Te.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:l.label})]}),o&&(0,Te.jsx)("button",{onClick:p=>{p.stopPropagation(),o(l)},title:r("governance.configGraph.removeItem",{label:l.label}),style:{width:14,height:14,borderRadius:"50%",border:"none",background:"transparent",color:"#ccc",fontSize:9,lineHeight:1,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",padding:0,flexShrink:0},children:"\u2715"})]},l.id))})]})};var qt=C(Ce());function Kt(e,t){let n=new Date(e.createdAt).getTime(),o=new Date(t.createdAt).getTime(),r=Number.isFinite(n),i=Number.isFinite(o);return r&&!i?-1:!r&&i?1:r&&i&&n!==o?n-o:e.id<t.id?-1:e.id>t.id?1:0}function da(e){return{runId:e.id,score:e.avgScore,passRate:e.totalCases>0?Math.round(e.passedCases/e.totalCases*100):null,createdAt:e.createdAt,...e.taskId?{taskId:e.taskId}:{}}}function ca(e,t=1){let n=Number.isFinite(t)?Math.abs(t):1,o=e.filter(s=>Number.isFinite(s.avgScore)&&Number.isFinite(new Date(s.createdAt).getTime())).sort(Kt),r=o.filter(s=>s.status==="completed"&&!s.holdout),i=r[r.length-1],l=i?.envProjectId!==void 0,d=(l?r.filter(s=>s.envProjectId===i.envProjectId):r).map(da),a=o.filter(s=>s.status==="completed"&&s.holdout).map(da),v=d[d.length-1],g=d[d.length-2],u=v&&g?v.score-g.score:null,f="needs-evidence";return u!==null&&(f=u>n?"improving":u<-n?"regressed":"stable"),{verdict:f,latest:v,previous:g,delta:u,passRate:v?.passRate??null,comparisonLabel:l?"Latest comparable result":"Latest recorded result",trend:d,validationTrend:a,runningRuns:o.filter(s=>s.status==="running"),failedRuns:o.filter(s=>s.status==="failed"||s.status==="aborted")}}var ya=C(z()),ua={total:0,last7d:0,last30d:0,lastActive:null,daily7d:[],daily30d:[],loading:!0,error:null},br=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),pa=(e,t)=>{if(!(typeof e=="string"||typeof e=="number"||e instanceof Date))return null;let n=new Date(e).getTime();return Number.isFinite(n)&&n<=t?n:null},ll=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),ga=e=>{let t=ll(e);return Math.floor(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())/864e5)},dl=(e,t)=>ga(e)-ga(t);function fa(e){let{get:t}=et(),[n,o]=qt.default.useState(ua),r=qt.default.useRef(0),i=qt.default.useRef(e);return i.current=e,qt.default.useEffect(()=>{let l=++r.current,p=!0,d=()=>p&&r.current===l&&i.current===e;return o(a=>({...a,loading:!0,error:null})),(async()=>{try{let a=await t(`/api/assistants/${e}/threads`);if(!br(a)||a.success!==!0||!br(a.data))throw new Error("Invalid thread list response");let{records:v,total:g}=a.data;if(!Array.isArray(v)||typeof g!="number"||!Number.isSafeInteger(g)||g<0)throw new Error("Invalid thread list response");let u=Date.now(),f=new Date(u),s=null,y=0,k=0,h=new Array(7).fill(0),m=new Array(30).fill(0);for(let w of v){if(!br(w))continue;let I=pa(w.createdAt,u);if(I!==null){let S=dl(f,new Date(I));S>=0&&S<7&&(y++,h[6-S]++),S>=0&&S<30&&(k++,m[29-S]++)}let P=pa(w.updatedAt,u);P!==null&&(s===null||P>s)&&(s=P)}if(!d())return;o({total:g,last7d:y,last30d:k,lastActive:s===null?null:new Date(s),daily7d:h,daily30d:m,loading:!1,error:null})}catch(a){if(!d())return;o({...ua,loading:!1,error:a instanceof Error?a:new Error("Failed to load thread activity")})}})(),()=>{p=!1,r.current===l&&r.current++}},[t,e]),n}function Wo(e,t){if(!e)return"\u2014";let n=Date.now()-e.getTime(),o=Math.floor(n/6e4);if(o<1)return t?t("common.time.justNow"):"just now";if(o<60)return t?t("common.time.minutesAgo",{count:o}):`${o}m ago`;let r=Math.floor(o/60);if(r<24)return t?t("common.time.hoursAgo",{count:r}):`${r}h ago`;let i=Math.floor(r/24);return i<30?t?t("common.time.daysAgo",{count:i}):`${i}d ago`:i<365?t?t("common.time.monthsAgo",{count:Math.floor(i/30)}):`${Math.floor(i/30)}mo ago`:t?t("common.time.yearsAgo",{count:Math.floor(i/365)}):`${Math.floor(i/365)}y ago`}function zo(e){let t=W(),{projects:n,loading:o,error:r,refresh:i}=bo(),l=Eo(n,e),p=l?.id??"",{suites:d,loading:a,error:v,refresh:g}=Tn(p),{runs:u,inventoryProjectId:f,loading:s,error:y,refresh:k}=ho(p),h=(0,qt.useCallback)(async()=>{await Promise.all([i(),g(),k()])},[i,g,k]);return{...(0,qt.useMemo)(()=>{let w=d.reduce((E,x)=>E+(x.caseCount??0),0),I=f===p?u.filter(E=>E.projectId===p):[],P=[...I].sort(Kt),S=ca(I),$=S.latest?I.find(E=>E.id===S.latest?.runId):void 0;return{evalProjectId:l?.id,inventoryProjectId:f,suiteCount:d.length,caseCount:w,scores:S.trend.map(E=>E.score),latest:$,runs:P,runCount:I.length,passRate:S.passRate,score:S.latest?.score??null,hasEvalProject:!!l,suiteNames:d.map(E=>E.name??t("governance.overview.unnamed")).filter(Boolean),error:r??v??y,loading:!!(o||p&&(f!==p||a||s))}},[d,u,f,l,p,o,a,s,r,v,y,t]),refresh:h,refreshRuns:k}}var cl=(e,t=new Date)=>{let n=[];for(let o=e-1;o>=0;o--){let r=new Date(t.getFullYear(),t.getMonth(),t.getDate()-o);n.push([String(r.getFullYear()).padStart(4,"0"),String(r.getMonth()+1).padStart(2,"0"),String(r.getDate()).padStart(2,"0")].join("-"))}return n},ul=e=>cl(e).map(t=>t.slice(5)),pl="#6366f1";var gl={left:8,right:8,top:24,bottom:24,containLabel:!0};function ma(e){return{grid:gl,tooltip:{trigger:"axis"},xAxis:{type:"category",data:ul(e.length),axisLabel:{fontSize:9,interval:4,color:"#999"},axisLine:{lineStyle:{color:"#eee"}}},yAxis:{type:"value",minInterval:1,axisLabel:{fontSize:9,color:"#999"},splitLine:{lineStyle:{color:"#f5f5f5"}}},series:[{type:"bar",data:e,itemStyle:{color:pl,borderRadius:[2,2,0,0]},barMaxWidth:10}]}}var Yn=C(Ce());var pn=C(z()),va=({values:e,width:t=120,height:n=32,color:o="#6366f1",placeholderColor:r="#e5e5e5"})=>{if(e.length===0)return null;let i=Math.max(...e,1),l=t/e.length,p=l>4?1:0,d=2;return(0,pn.jsx)("svg",{width:t,height:n,style:{display:"block"},children:e.map((a,v)=>{let g=Math.max(a/i*n,d);return(0,pn.jsx)("rect",{x:v*l,y:n-g,width:Math.max(l-p,1),height:g,fill:a===0?r:o,rx:1},v)})})},ha=({values:e,width:t=200,height:n=40,color:o="#6366f1"})=>{if(e.length===0)return null;let r=Math.min(...e),l=Math.max(...e)-r||1,p=2,d=t-p*2,a=u=>e.length===1?t/2:p+u/(e.length-1)*d,v=u=>n-2-(u-r)/l*(n-4),g=e.map((u,f)=>`${a(f)},${v(u)}`).join(" ");return(0,pn.jsxs)("svg",{width:t,height:n,style:{display:"block"},children:[(0,pn.jsx)("polyline",{points:g,fill:"none",stroke:o,strokeWidth:"1.5",strokeLinecap:"round"}),e.map((u,f)=>(0,pn.jsx)("circle",{cx:a(f),cy:v(u),r:"2.5",fill:o},f))]})};var je=C(Ce());var en=C(Ce());var Bo=C(Ce());var Jt=C(z()),ba=({projectId:e,value:t,onChange:n})=>{let{uploadFileToProject:o}=Nt(),r=W(),[i,l]=(0,Bo.useState)([]),p=(0,Bo.useRef)(e);p.current=e;let d=t.map(u=>({uid:u.uri,name:u.name||u.uri,status:"done",response:{uri:u.uri,name:u.name}})),a=async u=>{let f=u.file;try{let s=await o(e,"/project/uploads",f);u.onSuccess?.({uri:s.path,name:f.name,projectId:e})}catch(s){u.onError?.(s instanceof Error?s:new Error("Upload failed"))}},v=u=>{let{file:f}=u;if(f.status==="done"&&f.response?.uri){if(f.response.projectId&&f.response.projectId!==p.current){l(u.fileList.filter(y=>y.status==="uploading"||y.status==="error"));return}let s={uri:f.response.uri,name:f.response.name||f.name,addedBy:"user"};t.some(y=>y.uri===s.uri)||n([...t,s])}f.status==="error"&&at.error(r("governance.learning.uploadFailed",{name:f.name})),l(u.fileList.filter(s=>s.status==="uploading"||s.status==="error"))},g=u=>{if(u.status==="done"){let f=u.response?.uri;n(t.filter(s=>s.uri!==f&&s.name!==u.name))}else l(f=>f.filter(s=>s.uid!==u.uid))};return(0,Jt.jsx)("div",{"data-testid":"reference-files-field",children:(0,Jt.jsxs)(Yr.Dragger,{multiple:!0,fileList:[...d,...i],customRequest:a,onChange:v,onRemove:g,style:{padding:"8px 0"},children:[(0,Jt.jsx)("p",{className:"ant-upload-drag-icon",style:{marginBottom:4},children:(0,Jt.jsx)(vi,{size:24,style:{color:"#6366f1"}})}),(0,Jt.jsx)("p",{className:"ant-upload-text",style:{fontSize:13},children:r("governance.learning.uploadHint")}),(0,Jt.jsx)("p",{className:"ant-upload-hint",style:{fontSize:12},children:r("governance.learning.uploadNote")})]},e)})};function En(e){return(e.metadata??{}).trainingRound===!0}function qu(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t.toString(36).slice(0,6)}function jo(e){return["pending","in_progress","review"].includes(e.status)}function Dn(e,t){return`/api/tasks?${`metadata=${encodeURIComponent(JSON.stringify({trainingRound:"true",targetAgentId:e}))}`}${t?`&projectId=${t}`:""}`}function fl(e,t){return`/api/tasks?${`parentId=${e}`}${t?`&projectId=${t}`:""}`}function ka(e,t){return`${e}:${t}`}async function wa(e){let t=e.projectId?{headers:{"x-project-id":e.projectId}}:void 0,o=(await e.post("/api/tasks",{title:e.goal.slice(0,60),description:e.goal,ownerType:"agent",ownerId:"agent-architect",workspaceId:e.workspaceId??void 0,projectId:e.projectId??void 0,context:{source:"learning"},metadata:{trainingRound:!0,targetAgentId:e.targetAgentId},files:e.files&&e.files.length>0?e.files:void 0},t)).data;if(!o)throw new Error(e.t?e.t("governance.learning.roundCreateFailed"):"Failed to create learning round task");let r=e.existingThreadId??null;if(!r&&(r=(await e.post("/api/assistants/agent-architect/threads",{metadata:{training:!0,targetAgentId:e.targetAgentId}})).data?.id??null,!r))throw new Error(e.t?e.t("governance.learning.threadCreateFailed"):"Failed to create training thread");return await e.put(`/api/tasks/${o.id}`,{metadata:{trainingRound:!0,targetAgentId:e.targetAgentId,trainingSessionId:r}},t),{roundTaskId:o.id,threadId:r}}function xa(e){let t=e.graphDefinition,n=t;if(typeof t=="string")try{n=JSON.parse(t)}catch{n={}}let o=n!==null&&typeof n=="object"&&!Array.isArray(n)?n:{},r=o.metadata!==null&&typeof o.metadata=="object"&&!Array.isArray(o.metadata)?o.metadata:{};return r.learningPlaceholder==="true"&&r.architectureStatus==="undecided"?"placeholder":o.type==="workflow"?"existing-workflow":"existing-agent"}function Ta(e){let t=e.targetMode==="placeholder"?"Target form: learning placeholder (architecture undecided).":e.targetMode==="existing-workflow"?"Target form: existing Workflow.":"Target form: existing Capability or Orchestra.";return[`Learning goal (draft \u2014 confirm with the user before any observation or design): ${e.goal}`,`Exact target ID: "${e.targetAgentId}".`,`Exact round Task ID: "${e.roundTaskId}".`,"That exact Task is your bound tracking task: your main task and Belief root for this round.","Reconcile it; create every child under it; never create a new main or round task.",t,...e.files?.length?[`Reference files: ${e.files.map(n=>`${n.name||n.uri} (${n.uri})`).join(", ")}. Read them before designing; in your first reply state which files you actually read and what you took from each.`]:[]].join(`
232
+ `)}var ml=5;async function Ra(e,t,n){let o=n?.projectId,r=o?{headers:{"x-project-id":o}}:void 0,i=g=>fl(g,o??void 0),l=[],p=!1,d=new Set,a=new Set([t]),v=[t];for(let g=0;g<ml&&v.length>0;g++){let f=(await Promise.all(v.map(s=>e(i(s),r).then(y=>Array.isArray(y.data)?y.data.map(k=>k.parentId?k:{...k,parentId:s}):[]).catch(()=>(p=!0,d.add(s),[]))))).flat().filter(s=>a.has(s.id)?!1:(a.add(s.id),!0));l.push(...f),v=f.map(s=>s.id)}if(v.length>0){p=!0;for(let g of v)d.add(g)}return{tasks:l,partial:p,...d.size>0?{incompleteParentIds:[...d]}:{}}}var Ve=C(z()),Ln=({open:e,agentId:t,defaultProjectId:n,onClose:o,onCreated:r})=>{let{get:i,post:l,put:p}=et(),{message:d}=kn.useApp(),a=W(),v=vt("agent-architect"),{trainingProjects:g,loading:u}=Nt(),f=g.find(E=>E.id===n)??null,[s]=ge.useForm(),[y,k]=(0,en.useState)(!1),[h,m]=(0,en.useState)(null),[w,I]=(0,en.useState)(null),[P,S]=(0,en.useState)([]);(0,en.useEffect)(()=>{e&&(I(ka(v.tenantId,t)),S([]))},[e,v,t]),(0,en.useEffect)(()=>{if(!e)return;let E=!1;return(async()=>{try{let x=await i(Dn(t,f?.id??void 0),f?{headers:{"x-project-id":f.id}}:void 0);if(E)return;let M=(x.data??[]).filter(En);m(M.find(jo)??null)}catch{}})(),()=>{E=!0}},[e,i,t,f]);let $=async E=>{if(!f){d.error(a("governance.learning.noProject"));return}k(!0);try{let{roundTaskId:x,threadId:M}=await wa({goal:E.goal,targetAgentId:t,workspaceId:f.workspaceId,projectId:f.id,existingThreadId:w,files:P,post:l,put:p,t:a});d.success(a("governance.learning.created")),s.resetFields(),r(x,M,E.goal,P),S([])}catch(x){d.error(x instanceof Error?x.message:a("governance.learning.createFailed"))}finally{k(!1)}};return(0,Ve.jsxs)(We,{title:a("governance.learning.newTask"),open:e,onCancel:o,footer:null,width:520,destroyOnClose:!0,children:[h&&(0,Ve.jsx)(Qt,{type:"warning",showIcon:!0,style:{marginBottom:16},message:a("governance.learning.inProgress")}),(0,Ve.jsxs)(ge,{form:s,layout:"vertical",onFinish:$,children:[(0,Ve.jsx)(ge.Item,{label:a("governance.learning.goalLabel"),name:"goal",rules:[{required:!0,message:a("governance.learning.goalRequired")}],children:(0,Ve.jsx)(Me.TextArea,{rows:3,placeholder:a("governance.learning.goalPlaceholder")})}),f&&(0,Ve.jsx)(ge.Item,{label:(0,Ve.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,Ve.jsx)("span",{children:a("governance.learning.referenceMaterials")}),(0,Ve.jsx)(gr,{project:f,selectable:!1,loading:u})]}),extra:a("governance.learning.referenceMaterialsHint"),style:{marginBottom:16},colon:!1,children:(0,Ve.jsx)(ba,{projectId:f.id,value:P,onChange:S})}),!f&&!u&&(0,Ve.jsx)(ge.Item,{style:{marginBottom:16},children:(0,Ve.jsx)(gr,{project:f,projects:g,loading:u})}),(0,Ve.jsxs)(ge.Item,{style:{marginBottom:0,textAlign:"right"},children:[(0,Ve.jsx)(U,{onClick:o,style:{marginRight:8},children:a("common.cancel")}),(0,Ve.jsx)(U,{type:"primary",htmlType:"submit",loading:y,disabled:!!h||u||!f,children:a("governance.learning.start")})]})]})]})};var ve=C(Ce());var gn=C(z()),Ca=32,vl=8,hl=Ca-vl,bl="governance.learning.activityLoadFailed",kl="governance.learning.activityCapacity",kr=ve.default.createContext(null),Sa=ve.default.createContext(()=>{});function Ia(e){switch(e){case"retry":return"governance.learning.cmd.retry";case"cancel":return"governance.learning.cmd.cancel";case"start":return"governance.learning.cmd.start";case"reopen":return"governance.learning.cmd.reopen";case"delete":return"governance.learning.cmd.delete";case"comment":return"governance.learning.cmd.comment";default:return"governance.learning.cmd.updated"}}var wl={start:"in_progress",retry:"in_progress",reopen:"in_progress",cancel:"cancelled"};function xl(e,t){return new Promise((n,o)=>{let r=window.setTimeout(()=>o(new Error("Work-item request timed out")),t);e.then(i=>{window.clearTimeout(r),n(i)},i=>{window.clearTimeout(r),o(i)})})}var wr=({task:e,relatedTasks:t,onClose:n,onRefresh:o,height:r})=>{let{message:i}=kn.useApp(),l=W(),[p,d]=(0,ve.useState)(null),[a,v]=(0,ve.useState)([]),[g,u]=(0,ve.useState)([]),[f,s]=(0,ve.useState)(!1),[y,k]=(0,ve.useState)(null),h=vt("__GLOBAL__"),w=ve.default.useContext(kr)??{getWorkItemRequest:(j,_,ie,le)=>A(j,_,ie,le),getDetailSession:()=>x.current,bumpDetailSession:()=>{x.current+=1}},I=(0,ve.useRef)(0),P=(0,ve.useRef)(null),S=(0,ve.useRef)(!0),$=(0,ve.useRef)(new Map),E=(0,ve.useRef)(new Set),x=(0,ve.useRef)(0),M=(0,ve.useRef)(h);M.current=h;let de=(0,ve.useRef)(w);de.current=w;let X=p??e,V=(0,ve.useRef)(X);V.current=X;let pe=(0,ve.useRef)(o);pe.current=o;let A=(j,_,ie=x.current,le=!1)=>{let L=$.current.get(j);if(L&&(!le||L.detailSession===ie))return L;L&&($.current.delete(j),E.current.add(L.promise),L.promise.finally(()=>{E.current.delete(L.promise)}).catch(()=>{}));let Le=le?Ca:hl;if($.current.size+E.current.size>=Le){let Ne=Promise.reject(new Error("Work-item request capacity reached"));return Ne.catch(()=>{}),{promise:Ne,source:_,detailSession:ie}}let Ie;try{Ie=Promise.resolve(M.current.tasks.workItems.list(j))}catch(Ne){Ie=Promise.reject(Ne)}let Ee={promise:Ie,source:_,detailSession:ie};return $.current.set(j,Ee),Ie.finally(()=>{$.current.get(j)?.promise===Ie&&$.current.delete(j)}).catch(()=>{}),Ee};(0,ve.useEffect)(()=>(S.current=!0,()=>{S.current=!1,P.current=null,I.current+=1,de.current.bumpDetailSession(),Promise.resolve().then(()=>{S.current||($.current.clear(),E.current.clear())})}),[]);let G=(j,_=!0)=>{let ie=_?++I.current:I.current;_&&S.current&&s(!0);let le=w.getDetailSession(),L=w.getWorkItemRequest(j,"detail",le,_),Le=L.detailSession===le;return xl(L.promise,4e3).then(be=>{Le&&S.current&&ie===I.current&&P.current===j&&(u(be),k(null))}).catch(be=>{Le&&_&&S.current&&ie===I.current&&P.current===j&&(u([]),k(be instanceof Error&&be.message==="Work-item request capacity reached"?kl:bl))}).finally(()=>{Le&&S.current&&ie===I.current&&P.current===j&&s(!1)})},F=(j,_)=>{_&&v(ie=>X?[...ie,X]:ie),P.current=j.id,d(j),u([]),k(null),G(j.id)},Q=j=>F(j,!0),oe=()=>{if(a.length===0)return;let j=a[a.length-1];v(a.slice(0,-1)),F(j,!1)},N=()=>{w.bumpDetailSession(),P.current=null,I.current+=1,d(null),v([]),u([]),s(!1),k(null),n()},B=(0,ve.useRef)(null),{run:me,pending:ee}=zi({onSettled:j=>{if(!S.current)return;P.current===j.id&&G(j.id,!1);let _=pe.current,ie=l(Ia(B.current??"start"));_&&Promise.resolve().then(_).catch(()=>{S.current&&i.warning(l("governance.learning.commandFailedSuffix",{message:ie}))})}}),ke=(0,ve.useCallback)(j=>{let _=V.current;return _?(B.current="comment",me(_,"comment",{content:j})):Promise.resolve(!1)},[me]),he=j=>{let _=V.current;_&&(B.current=j,me(_,j).then(ie=>{if(!ie||!S.current)return;let le=wl[j];le&&d(L=>L&&L.id===_.id?{...L,status:le}:L),i.success(l(Ia(j)))}))};(0,ve.useEffect)(()=>{P.current!==e.id&&(v([]),F(e,!1))},[e]),(0,ve.useEffect)(()=>{let j=P.current;if(!j)return;let _=t.find(le=>le.id===j);if(!_){N();return}d(le=>le&&le.id===j?_:le);let ie=new Map(t.map(le=>[le.id,le]));v(le=>le.flatMap(L=>{let Le=ie.get(L.id);return Le?[Le]:[]})),G(j,!1)},[e,t]),(0,ve.useEffect)(()=>{if(!X?.id)return;let j=X.id,_=!1,ie=async()=>{document.hidden||await G(j,!1)},le=()=>{_||!S.current||document.hidden||ie()};return document.addEventListener("visibilitychange",le),ie(),()=>{_=!0,document.removeEventListener("visibilitychange",le)}},[X?.id]);let O=So(X),ne=ve.default.useContext(Sa);(0,ve.useEffect)(()=>{ne(e,X)},[ne,e,X]);let De=X?!!ee[X.id]:!1;return(0,gn.jsx)("div",{style:{display:"flex",flexDirection:"column",height:"100%",background:"#fff",border:"1px solid rgba(5,5,5,0.15)",borderRadius:12,overflow:"hidden"},children:(0,gn.jsx)("div",{style:{flex:1,minHeight:0},children:(0,gn.jsx)(Co,{task:X,relatedTasks:t,onRelatedTaskClick:Q,workItems:g,loading:f,activityError:y?l(y):void 0,commandPending:De,onRun:he,onComment:ke,commentPending:De,onViewChat:O,onBack:oe,canGoBack:a.length>0,maxHeight:r,focusKey:`${X.id}:${De?"updating":X.status}`,subtasks:t.filter(j=>j.parentId===X.id),onSubtaskClick:Q,parent:t.find(j=>j.id===X.parentId)??null,onParentClick:Q})})})},Aa=({task:e,relatedTasks:t,onClose:n,onRefresh:o})=>{let[r,i]=(0,ve.useState)(null),l=(0,ve.useCallback)((d,a)=>{i({rootId:d.id,title:a.title})},[]);(0,ve.useEffect)(()=>{e||i(null)},[e]);let p=e?r&&r.rootId===e.id?r.title:e.title:"";return(0,gn.jsx)(We,{open:e!==null,onCancel:n,footer:null,title:p,width:960,style:{maxWidth:"calc(100vw - 32px)"},styles:{header:{padding:"16px 24px 0"},content:{padding:0},body:{padding:"12px 24px 24px"}},centered:!0,children:(0,gn.jsx)(Sa.Provider,{value:l,children:e&&(0,gn.jsx)(wr,{task:e,relatedTasks:t,onClose:n,onRefresh:o,height:"calc(100dvh - 96px)"})})})};var Ae=C(z()),xr=32,Tl=8,Rl=xr-Tl;function Il(e){for(let t of e.split(`
233
+ `)){let n=t.trim().match(/^#{1,6}\s+(.*)$/);if(n){let o=n[1].trim();if(o.length>0)return o}}}function Cl(e){let t=typeof e.detail?.markdown=="string"&&e.detail.markdown.length>0?e.detail.markdown:void 0;if(t){let n=Il(t);if(n)return n}return e.summary||e.action||""}function Sl(e){let t=e.context?.interruption;return e.status==="interrupted"&&typeof t=="object"&&t!==null&&t.type==="review_required"}function Al(e,t){return new Promise((n,o)=>{let r=window.setTimeout(()=>o(new Error("Work-item request timed out")),t);e.then(i=>{window.clearTimeout(r),n(i)},i=>{window.clearTimeout(r),o(i)})})}var Pa=({assistantId:e,projectId:t,onLearningStarted:n,round:o,subTasks:r,rounds:i,subTasksByRound:l,selectedRoundId:p,onSelectedRoundChange:d,loading:a,onRefresh:v,onStartRequest:g,onExpandWorkflow:u})=>{let{message:f}=kn.useApp(),s=W(),[y,k]=(0,je.useState)(!1),[h,m]=(0,je.useState)(!1),[w,I]=(0,je.useState)(null),[P,S]=(0,je.useState)(null),$=vt("__GLOBAL__"),E=(0,je.useRef)(!0),x=(0,je.useRef)(new Map),M=(0,je.useRef)(new Set),de=(0,je.useRef)(0),X=(0,je.useRef)(0),V=i&&i.length>0?i:o?[o]:[],[pe,A]=(0,je.useState)(null),G=p!==void 0,F=G?p:pe,Q=V.map(L=>L.id).join(",");(0,je.useEffect)(()=>{if(V.length===0){A(null);return}A(L=>L&&Q.split(",").includes(L)?L:V[0].id)},[Q]);let oe=V.find(L=>L.id===F)??V[0]??null,N=L=>{G||A(L),d?.(L)},B=l&&oe?l[oe.id]??[]:oe&&oe.id===o?.id?r:[],me=(0,je.useMemo)(()=>[oe,...B].filter(L=>L!==null),[o,r,i,l,F]),ee=B.filter(L=>L.status==="in_progress"),ke=ee[0]??null,he=oe?.status==="in_progress",O=(ee.length>0?ee.map(L=>L.id):he&&oe?[oe.id]:[]).sort(),ne=O.join(","),De=(0,je.useRef)($);De.current=$;let j=(0,je.useRef)(null);j.current||(j.current={getWorkItemRequest:(L,Le,be,Ie)=>_(L,Le,be,Ie),getDetailSession:()=>de.current,bumpDetailSession:()=>{de.current+=1}});let _=(L,Le,be=de.current,Ie=!1)=>{let Ee=x.current.get(L);if(Ee&&(!Ie||Ee.detailSession===be))return Ee;Ee&&(x.current.delete(L),M.current.add(Ee.promise),Ee.promise.finally(()=>{M.current.delete(Ee.promise)}).catch(()=>{}));let Ne=Ie?xr:Rl;if(x.current.size+M.current.size>=Ne){let Oe=Promise.reject(new Error("Work-item request capacity reached"));return Oe.catch(()=>{}),{promise:Oe,source:Le,detailSession:be}}let ze;try{ze=Promise.resolve(De.current.tasks.workItems.list(L))}catch(Oe){ze=Promise.reject(Oe)}let tt={promise:ze,source:Le,detailSession:be};return x.current.set(L,tt),ze.finally(()=>{x.current.get(L)?.promise===ze&&x.current.delete(L)}).catch(()=>{}),tt};(0,je.useEffect)(()=>(E.current=!0,()=>{E.current=!1,Promise.resolve().then(()=>{E.current||(x.current.clear(),M.current.clear())})}),[]),(0,je.useEffect)(()=>{if(O.length===0){S(null);return}S(null);let L=!1,Le=()=>{if(document.hidden)return Promise.resolve();let Ie=X.current%O.length,Ee=[...O.slice(Ie),...O.slice(0,Ie)];return X.current=(Ie+xr)%O.length,Promise.allSettled(Ee.map(Ne=>Al(_(Ne,"live").promise,4e3))).then(Ne=>{if(L||!E.current)return;let rt=Ne.filter(Oe=>Oe.status==="fulfilled").map(Oe=>Oe.value);if(rt.length===0)return;let tt=[...rt.flat().filter(Oe=>!/^Status changed to\b/i.test(Oe.summary??""))].sort((Oe,mt)=>new Date(mt.createdAt).getTime()-new Date(Oe.createdAt).getTime());S(tt[0]??null)})},be=()=>{L||!E.current||document.hidden||Le()};return document.addEventListener("visibilitychange",be),Le(),()=>{L=!0,document.removeEventListener("visibilitychange",be)}},[ne]);let ie=L=>I(L),le=(L,Le,be,Ie)=>{N(L),k(!1);let Ee;try{Ee=Promise.resolve(v())}catch{Ee=Promise.reject(new Error("Task-list refresh failed"))}Ee.catch(()=>{E.current&&f.error(s("governance.learning.createdRefreshFailed"))}),n?.(be,L,Ie)};return(0,Ae.jsxs)("div",{style:{background:"rgba(255, 255, 255, 0.6)",border:"1px solid rgba(240, 240, 240, 0.7)",borderRadius:10,padding:"8px 10px",boxShadow:"0 2px 10px rgba(0,0,0,0.06)",backdropFilter:"blur(8px)",pointerEvents:"auto",width:300},children:[a?(0,Ae.jsx)("div",{style:{fontSize:12,color:"#bbb",padding:"4px 2px"},children:s("common.loading")}):oe?(0,Ae.jsxs)("div",{children:[(0,Ae.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:6,padding:"0 2px 6px",borderBottom:"1px solid rgba(240,240,240,0.7)",marginBottom:6},children:[(0,Ae.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"#595959"},children:s("governance.learning.tasksTitle")}),(0,Ae.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:2},children:[u&&(0,Ae.jsx)(U,{size:"small",type:"text","aria-label":s("governance.learning.openWorkflow"),icon:(0,Ae.jsx)(wn,{}),onClick:u}),(0,Ae.jsx)(U,{size:"small",type:"text",icon:(0,Ae.jsx)(Mt,{}),onClick:()=>g?g():k(!0),style:{fontSize:12},children:s("governance.learning.newTask")})]})]}),V.length>1&&(0,Ae.jsx)(it,{size:"small","data-testid":"round-filter",style:{width:"100%",marginBottom:6},value:oe.id,onChange:N,options:V.map(L=>({value:L.id,label:`${L.title||L.id} (${L.status})`}))}),(()=>{let L=me.filter(Sl);return L.length>0?(0,Ae.jsx)(U,{type:"text","data-testid":"review-banner","aria-label":s("governance.learning.openReviewTasks",{count:L.length,s:L.length>1?"s":""}),onClick:()=>ie(L[0]),style:{display:"flex",alignItems:"center",justifyContent:"flex-start",gap:6,cursor:"pointer",width:"100%",height:"auto",fontSize:12,fontWeight:600,color:"#b45309",background:"rgba(245,158,11,0.12)",border:"1px solid rgba(245,158,11,0.35)",borderRadius:8,padding:"5px 8px",marginBottom:6},children:s("governance.learning.reviewCount",{count:L.length,s:L.length>1?"s":""})}):null})(),P&&(0,Ae.jsxs)("div",{"data-testid":"live-status",style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"#666",padding:"2px 2px 6px",borderBottom:"1px solid rgba(240,240,240,0.7)",marginBottom:4},children:[(0,Ae.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",flexShrink:0,background:ke?"#3b82f6":"#bbb",animation:ke?"live-pulse 1.2s ease-in-out infinite":void 0}}),(0,Ae.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Cl(P)}),(0,Ae.jsx)("style",{children:"@keyframes live-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }"})]}),(0,Ae.jsx)("div",{style:{maxHeight:240,overflow:"auto"},children:(0,Ae.jsx)(Io,{tasks:[oe,...B],loading:!1,onTaskClick:ie,hideCompleted:h,onHideCompletedChange:m})})]}):(0,Ae.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"4px 2px"},children:[(0,Ae.jsx)("span",{style:{fontSize:12,color:"#999"},children:s("governance.learning.empty")}),(0,Ae.jsx)(U,{size:"small",icon:(0,Ae.jsx)(Mt,{}),onClick:()=>g?g():k(!0),children:s("governance.learning.newTask")})]}),!g&&(0,Ae.jsx)(Ln,{open:y,agentId:e,defaultProjectId:t,onClose:()=>k(!1),onCreated:le}),(0,Ae.jsx)(kr.Provider,{value:j.current,children:(0,Ae.jsx)(Aa,{task:w,relatedTasks:me,onClose:()=>I(null),onRefresh:v})})]})};var _e=C(Ce());function Ea(e,t){let n=[...t],o=new Set(t.map(p=>`${p.from}|${p.to}`)),r=new Set(t.filter(p=>p.kind==="dependency").map(p=>p.to)),i=new Set(e.map(p=>p.id)),l=new Map;for(let p of e){if(!p.parentId||!i.has(p.parentId))continue;let d=l.get(p.parentId)??[];d.push(p),l.set(p.parentId,d)}for(let p of l.values()){let d=[...p].sort((a,v)=>new Date(a.createdAt).getTime()-new Date(v.createdAt).getTime());for(let a=1;a<d.length;a++){let v=d[a];if(r.has(v.id))continue;let g=d[a-1].id,u=`${g}|${v.id}`;o.has(u)||o.has(`${v.id}|${g}`)||(n.push({from:g,to:v.id,kind:"sequence"}),o.add(u))}}return n}function Da(e,t){return e!=="completed"?"idle":t==="in_progress"?"flowing":t==="pending"?"idle":"traversed"}function La(e){return e==="completed"?"traversed":e==="in_progress"?"flowing":"idle"}var $t={pending:{label:"Pending",color:"#9ca3af",active:!1},in_progress:{label:"Running",color:"#3b82f6",active:!0},review:{label:"Review",color:"#8b5cf6",active:!1},failed:{label:"Failed",color:"#ef4444",active:!1},interrupted:{label:"Interrupted",color:"#f59e0b",active:!1},completed:{label:"Done",color:"#22c55e",active:!1},cancelled:{label:"Cancelled",color:"#9ca3af",active:!1}},Pl={pending:"governance.learning.status.pending",in_progress:"governance.learning.status.running",review:"governance.learning.status.review",failed:"governance.learning.status.failed",interrupted:"governance.learning.status.interrupted",completed:"governance.learning.status.done",cancelled:"governance.learning.status.cancelled"};function Vn(e,t){return t?t(Pl[e]):$t[e].label}var Ot=C(z()),Ma=({data:e})=>{let{task:t}=e,n=W(),o=$t[t.status];return(0,Ot.jsxs)("div",{"data-testid":"workflow-task-node","data-active":String(o.active),style:{width:180,padding:"8px 10px",borderRadius:10,border:`1.5px solid ${o.color}`,background:"#fff",animation:o.active?"workflow-node-pulse 1.6s ease-in-out infinite":void 0},children:[(0,Ot.jsx)(Rt,{type:"target",position:st.Left,style:{opacity:0}}),(0,Ot.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:4},children:[(0,Ot.jsx)("span",{style:{width:8,height:8,borderRadius:9999,background:o.color,flexShrink:0}}),(0,Ot.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"#262626",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:t.title,children:t.title})]}),(0,Ot.jsx)("div",{style:{fontSize:10,color:"#8c8c8c"},children:Vn(t.status,n)}),(0,Ot.jsx)(Rt,{type:"source",position:st.Right,style:{opacity:0}}),o.active&&(0,Ot.jsx)("style",{children:"@keyframes workflow-node-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(59,130,246,0.35); } 50% { box-shadow: 0 0 0 6px rgba(59,130,246,0.08); } }"})]})};var lt=C(z()),El={workflowTask:Ma},Dl=180,Ll=56,Ml={traversed:{stroke:"#22c55e",strokeWidth:1.5},flowing:{stroke:"#6366f1",strokeWidth:2},idle:{stroke:"#d1d5db",strokeWidth:1,strokeDasharray:"5 5"}},Na=({rounds:e,subTasksByRound:t,loading:n})=>{let o=vt("__GLOBAL__"),r=W(),[i,l]=(0,_e.useState)(null),[p,d]=(0,_e.useState)(null),[a,v]=(0,_e.useState)([]),[g,u]=(0,_e.useState)(!1),[f,s]=(0,_e.useState)(null),y=(0,_e.useRef)(0),k=(0,_e.useRef)(o);k.current=o;let h=e.map(N=>N.id).join(",");(0,_e.useEffect)(()=>{l(N=>N&&h.split(",").includes(N)?N:e[0]?.id??null)},[h]);let m=e.find(N=>N.id===i)??e[0]??null,w=(0,_e.useMemo)(()=>[m,...m?t[m.id]??[]:[]].filter(N=>N!==null),[m,t]),{nodes:I,edges:P}=(0,_e.useMemo)(()=>Ro(w),[w]),S=(0,_e.useMemo)(()=>Ea(w,P),[w,P]),$=(0,_e.useMemo)(()=>new Map(w.map(N=>[N.id,N])),[w]),E=(0,_e.useMemo)(()=>{let N=xo(I.map(B=>({id:B.id})),S.map(B=>({from:B.from,to:B.to})),{nodeWidth:Dl,nodeHeight:Ll,nodesep:24,ranksep:60,rankdir:"LR"});return I.map(B=>({id:B.id,type:"workflowTask",position:N.get(B.id)??{x:0,y:0},data:{task:B.task}}))},[I,S]),x=(0,_e.useMemo)(()=>S.map(N=>{let B=Da($.get(N.from)?.status??"pending",$.get(N.to)?.status??"pending");return{id:`${N.from}->${N.to}:${N.kind}`,source:N.from,target:N.to,animated:B==="flowing",style:{...Ml[B],...N.kind==="sequence"&&B!=="idle"?{strokeDasharray:"2 3"}:{}}}}),[S,$]),[M,de,X]=Rn(E),[V,pe,A]=In(x);(0,_e.useEffect)(()=>{de(N=>{let B=N.map(ee=>ee.id).sort().join("|"),me=E.map(ee=>ee.id).sort().join("|");if(B===me){let ee=new Map(N.map(ke=>[ke.id,ke]));return E.map(ke=>{let he=ee.get(ke.id);return he?{...ke,position:he.position}:ke})}return E}),pe(x)},[E,x,de,pe]);let G=(0,_e.useCallback)(N=>{let B=++y.current;u(!0),s(null),k.current.tasks.workItems.list(N).then(me=>{B===y.current&&v(me)}).catch(()=>{B===y.current&&(v([]),s(r("governance.learning.activityLoadFailed")))}).finally(()=>{B===y.current&&u(!1)})},[r]),F=(0,_e.useCallback)((N,B)=>{let me=B.data?.task;me&&(v([]),d(me),G(me.id))},[G]),Q=(0,_e.useCallback)(()=>{y.current+=1,d(null),v([]),s(null),u(!1)},[]),oe=So(p);return n?(0,lt.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,lt.jsx)(Tt,{size:"large"})}):!m||w.length===0?(0,lt.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,lt.jsx)(Gt,{description:r("governance.learning.noTasks")})}):(0,lt.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[e.length>1&&(0,lt.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",paddingBottom:12,flexShrink:0},children:e.map((N,B)=>{let me=$t[N.status],ee=N.id===m.id;return(0,lt.jsxs)("button",{type:"button","data-testid":`round-chip-${N.id}`,onClick:()=>{l(N.id),Q()},title:N.title,style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,fontWeight:600,padding:"3px 10px",borderRadius:9999,cursor:"pointer",border:ee?"1.5px solid #6366f1":"1px solid #e5e7eb",background:ee?"rgba(99,102,241,0.08)":"#fff",color:ee?"#6366f1":"#6b7280"},children:[(0,lt.jsx)("span",{style:{width:6,height:6,borderRadius:9999,background:me.color}}),"R",e.length-B]},N.id)})}),(0,lt.jsx)("div",{style:{flex:1,minHeight:0,position:"relative"},children:(0,lt.jsx)(To,{nodes:M,edges:V,nodeTypes:El,onNodesChange:X,onEdgesChange:A,onNodeClick:F,fitView:!0,fitViewOptions:{padding:.15},nodesDraggable:!0,nodesConnectable:!1,miniMap:!0,attributionPosition:"bottom-right"})}),p&&(0,lt.jsx)("div",{"data-testid":"workflow-detail",style:{height:"40%",minHeight:200,flexShrink:0,borderTop:"1px solid #f0f0f0",overflow:"hidden"},children:(0,lt.jsx)(Co,{task:p,relatedTasks:w,workItems:a,loading:g,activityError:f??void 0,onViewChat:oe,onBack:Q,subtasks:w.filter(N=>N.parentId===p.id),onSubtaskClick:N=>{v([]),d(N),G(N.id)},parent:w.find(N=>N.id===p.parentId)??null,onParentClick:N=>{v([]),d(N),G(N.id)}})})]})};var Ct=C(Ce());var Ft=C(z()),Nl=0,Fa=360,_a=48,Oa=16;function Tr(e){let t=typeof window>"u"?1200:window.innerWidth-_a;return Math.min(Math.max(e,Fa),t)}var ct=({open:e,width:t,mobileWidth:n,left:o,top:r=56,bottom:i=12,height:l,title:p,onClose:d,bodyStyle:a,restoreFocusRef:v,focusControlRef:g,escapeEnabled:u=!0,zIndex:f=25,children:s})=>{let y=Si("(max-width: 720px)"),k=W(),h=(0,Ct.useRef)(null),m=(0,Ct.useRef)(null),w=(0,Ct.useRef)(null);w.current||(w.current=`canvas-dock-title-${++Nl}`);let I=w.current,[P,S]=(0,Ct.useState)(null);(0,Ct.useEffect)(()=>S(null),[t,n]);let $=!y&&typeof t=="number",E=y?n??t:P??t,x=typeof E=="number"?E:null,M=o===void 0?-1:1,de=V=>{if(!$||x===null)return;V.preventDefault();let pe={startX:V.clientX,startWidth:x},A=F=>{S(Tr(pe.startWidth+M*(F.clientX-pe.startX)))},G=()=>{window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",G)};window.addEventListener("pointermove",A),window.addEventListener("pointerup",G)},X=V=>{!$||x===null||(V.key==="ArrowLeft"?(V.preventDefault(),S(Tr(x-M*Oa))):V.key==="ArrowRight"&&(V.preventDefault(),S(Tr(x+M*Oa))))};return(0,Ct.useEffect)(()=>{if(!e||!u)return;let V=pe=>{pe.key==="Escape"&&!pe.defaultPrevented&&d()};return document.addEventListener("keydown",V),()=>document.removeEventListener("keydown",V)},[u,e,d]),(0,Ct.useEffect)(()=>{if(g)return g.current=()=>h.current?.focus(),()=>{g.current=null}},[g]),(0,Ct.useEffect)(()=>{if(!e)return;let V=v?.current??document.activeElement;return V instanceof HTMLElement&&(m.current=V),h.current?.focus(),()=>{m.current?.focus(),m.current=null}},[e]),e?(0,Ft.jsxs)("div",{"data-testid":"canvas-dock",role:"region","aria-labelledby":I,style:{position:"absolute",top:r,...o===void 0?{right:12}:{left:o},...l===void 0?{bottom:i}:{height:l},width:E,maxWidth:"calc(100% - 24px)",boxSizing:"border-box",zIndex:f,display:"flex",flexDirection:"column",background:"rgba(255,255,255,0.92)",backdropFilter:"blur(12px)",borderRadius:16,border:"1px solid rgba(240,240,240,0.9)",boxShadow:"0 8px 32px rgba(0,0,0,0.12)",animation:"canvas-dock-in 0.2s ease",overflow:"hidden"},children:[(0,Ft.jsx)("style",{children:"@keyframes canvas-dock-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } }"}),$&&(0,Ft.jsx)("div",{"data-testid":"canvas-dock-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":k("governance.dock.resize"),"aria-valuenow":x??void 0,"aria-valuemin":Fa,"aria-valuemax":typeof window>"u"?void 0:window.innerWidth-_a,tabIndex:0,onPointerDown:de,onKeyDown:X,style:{position:"absolute",...o===void 0?{left:0}:{right:0},top:0,bottom:0,width:6,cursor:"ew-resize",zIndex:1,touchAction:"none"}}),(0,Ft.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"12px 16px",borderBottom:"1px solid rgba(240,240,240,0.9)",flexShrink:0,fontSize:13,fontWeight:600,color:"#333"},children:[(0,Ft.jsx)("div",{id:I,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:8,overflow:"hidden"},children:p}),(0,Ft.jsx)("button",{ref:h,type:"button","aria-label":k("governance.dock.close"),onClick:d,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,border:"none",borderRadius:6,background:"transparent",color:"#999",cursor:"pointer",flexShrink:0},children:(0,Ft.jsx)(Ii,{size:14})})]}),(0,Ft.jsx)("div",{"data-testid":"canvas-dock-body",style:{flex:1,minHeight:0,overflow:"auto",padding:16,...a},children:s})]}):null};var Wt=C(Ce());var tn=80;function _t(e){return e>=80?"#22c55e":e>=50?"#f59e0b":"#ef4444"}function Qn(e){return e.filter(t=>t.status==="completed"&&t.holdout!==!0).sort(Kt)}function Wa(e){let t=Qn(e),n=t[t.length-1];if(!n)return{latestScore:null,delta:null,passRate:null,passedCases:0,totalCases:0,interruptedCases:0,latestRunId:null};let o=t[t.length-2],r=n.totalCases??0,i=n.passedCases??0;return{latestScore:n.avgScore,delta:o?Math.round(n.avgScore-o.avgScore):null,passRate:r>0?Math.round(i/r*100):null,passedCases:i,totalCases:r,interruptedCases:n.interruptedCases??0,latestRunId:n.id}}function za(e){let t=new Map;for(let n of e)if(!n.interrupted)for(let o of n.dimensionResults??[]){let r=t.get(o.name)??{sum:0,count:0};r.sum+=o.score,r.count+=1,t.set(o.name,r)}return[...t.entries()].map(([n,{sum:o,count:r}])=>({name:n,avgScore:Math.round(o/r*10)/10,count:r})).sort((n,o)=>n.avgScore-o.avgScore)}var Ol=.15,Ba={left:36,right:12,top:16,bottom:24},Rr={fontSize:9,color:"#999"};function ja(){return{type:"value",min:0,max:100,axisLabel:{...Rr},splitLine:{lineStyle:{color:"#f5f5f5"}}}}function Ga({rounds:e,runs:t,selectedRoundId:n,targetLabel:o}){let r=[...e].sort((f,s)=>new Date(f.createdAt).getTime()-new Date(s.createdAt).getTime()),i=t.filter(f=>f.status==="completed").sort(Kt),l=new Map(r.map((f,s)=>[f.id,s+1])),p=new Map;for(let f of i){let s=f.taskId?l.get(f.taskId):void 0;s!==void 0&&p.set(s,(p.get(s)??0)+1)}let d=new Map,a=[],v=new Map;for(let f of i){let s=f.taskId?l.get(f.taskId):void 0;if(s===void 0)continue;let y=d.get(s)??0;if(d.set(s,y+1),f.holdout===!0){let k=(y-((p.get(s)??1)-1)/2)*Ol;a.push([Math.round((s+k)*100)/100,f.avgScore])}else v.set(s,f.avgScore)}let g=n??null;if(g===null){for(let f=r.length-1;f>=0;f--)if(v.has(f+1)){g=r[f].id;break}}let u=r.map((f,s)=>{let y=v.get(s+1);if(y===void 0)return null;let k=f.id===g;return{value:[s+1,y],itemStyle:{color:_t(y),borderRadius:[4,4,0,0],...k?{borderColor:"#6366f1",borderWidth:2}:{}}}});return{grid:Ba,tooltip:{trigger:"item"},xAxis:{type:"value",min:.5,max:r.length+.5,interval:1,axisLabel:{...Rr,formatter:f=>Number.isInteger(f)?`R${f}`:""},axisLine:{lineStyle:{color:"#eee"}},splitLine:{show:!1}},yAxis:ja(),series:[{type:"bar",data:u,barWidth:22,markLine:{silent:!0,symbol:"none",lineStyle:{type:"dashed",color:"#d9d9d9"},label:{fontSize:9,color:"#999",formatter:o??`target ${tn}`},data:[{yAxis:tn}]}},{type:"scatter",data:a,symbol:"diamond",symbolSize:9,itemStyle:{color:"#fff",borderColor:"#f59e0b",borderWidth:1.5},z:4}]}}function Ka(e,t){let n=e.filter(i=>i.status==="completed").sort(Kt),o=[],r=[];return n.forEach((i,l)=>{i.holdout===!0?r.push([l+1,i.avgScore]):o.push([l+1,i.avgScore])}),{grid:Ba,tooltip:{trigger:"item"},xAxis:{type:"value",min:.5,max:Math.max(n.length,1)+.5,interval:1,axisLabel:{...Rr,formatter:i=>Number.isInteger(i)?`#${i}`:""},axisLine:{lineStyle:{color:"#eee"}},splitLine:{show:!1}},yAxis:ja(),series:[{type:"line",data:o,symbol:"circle",symbolSize:6,lineStyle:{color:"#6366f1",width:1.5},itemStyle:{color:"#6366f1"},markLine:{silent:!0,symbol:"none",lineStyle:{type:"dashed",color:"#d9d9d9"},label:{fontSize:9,color:"#999",formatter:t??`target ${tn}`},data:[{yAxis:tn}]}},{type:"scatter",data:r,symbol:"diamond",symbolSize:9,itemStyle:{color:"#fff",borderColor:"#f59e0b",borderWidth:1.5},z:4}]}}var ut=C(z()),Ir={fontSize:10,color:"#999"},Cr={fontSize:22,fontWeight:700,lineHeight:1.2},qa=({summary:e})=>{let t=W();return e.latestScore===null?null:(0,ut.jsxs)("div",{"data-testid":"eval-summary",style:{display:"flex",gap:28},children:[(0,ut.jsxs)("div",{children:[(0,ut.jsxs)("div",{style:{...Cr,color:_t(e.latestScore)},children:[e.latestScore.toFixed(1),e.delta!==null&&(0,ut.jsxs)("span",{"data-testid":"summary-delta",style:{fontSize:11,fontWeight:600,color:e.delta>=0?"#22c55e":"#ef4444",marginLeft:6},children:[e.delta>=0?"\u25B2":"\u25BC"," ",Math.abs(e.delta)]})]}),(0,ut.jsx)("div",{style:Ir,children:t("governance.evalQuality.latestScore")})]}),(0,ut.jsxs)("div",{children:[(0,ut.jsx)("div",{"data-testid":"summary-pass",style:{...Cr,color:"#262626"},children:e.passRate!==null?`${e.passRate}%`:"\u2014"}),(0,ut.jsx)("div",{style:Ir,children:t("governance.evalQuality.passSummary",{passed:e.passedCases,total:e.totalCases})})]}),e.interruptedCases>0&&(0,ut.jsxs)("div",{"data-testid":"summary-interrupted",children:[(0,ut.jsx)("div",{style:{...Cr,color:"#b45309"},children:e.interruptedCases}),(0,ut.jsx)("div",{style:Ir,children:t("governance.evalQuality.interrupted")})]})]})};var pt=C(Ce());var Mn=C(z()),$a=({agentId:e,projectId:t,runs:n,selectedRoundId:o,onSelectRound:r})=>{let{get:i}=et(),l=W(),[p,d]=(0,pt.useState)([]),[a,v]=(0,pt.useState)(!1),[g,u]=(0,pt.useState)(null),f=pt.default.useRef(i);f.current=i,(0,pt.useEffect)(()=>{let h=!1;return f.current(Dn(e,t)).then(m=>{if(h)return;let w=(m.data??[]).filter(En);w.sort((I,P)=>new Date(I.createdAt).getTime()-new Date(P.createdAt).getTime()),d(w),v(!0)}).catch(()=>{h||v(!0)}),()=>{h=!0}},[e,t]),(0,pt.useEffect)(()=>{g&&!p.some(h=>h.id===g)&&u(null)},[p,g]);let s=(0,pt.useMemo)(()=>Ga({rounds:p,runs:n,selectedRoundId:o??g,targetLabel:l("governance.evalQuality.target",{score:tn})}),[p,n,o,g,l]),y=(0,pt.useMemo)(()=>({click:h=>{let m=h;if(m.seriesType!=="bar"||typeof m.dataIndex!="number")return;let w=p[m.dataIndex];w&&(u(w.id),r?.(w.id))}}),[p,r]),k=(0,pt.useMemo)(()=>{if(p.length===0)return!1;let h=new Set(p.map(m=>m.id));return Qn(n).some(m=>m.taskId!==void 0&&h.has(m.taskId))},[p,n]);return a?k?(0,Mn.jsxs)("div",{"data-testid":"round-trend-chart",style:{border:"1px solid #f0f0f0",borderRadius:12,padding:12},children:[(0,Mn.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"rgba(0,0,0,0.65)",marginBottom:8},children:l("governance.evalQuality.roundTrend")}),(0,Mn.jsx)(cn,{option:s,height:100,onEvents:y})]}):(0,Mn.jsx)("div",{"data-testid":"round-trend-empty",style:{display:"none"}}):null};var nn=C(z()),Ha=({dimensions:e})=>e.length===0?null:(0,nn.jsx)("div",{"data-testid":"dimension-panorama",style:{display:"flex",flexDirection:"column",gap:4},children:e.map(t=>{let n=Math.min(Math.max(t.avgScore,0),100);return(0,nn.jsxs)("div",{"data-testid":`dimension-row-${t.name}`,style:{display:"flex",alignItems:"center",gap:8,fontSize:11},children:[(0,nn.jsx)("span",{"data-testid":`dimension-label-${t.name}`,style:{flexShrink:0,maxWidth:"60%",color:"#595959",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:t.name,children:t.name}),(0,nn.jsx)("div",{style:{flex:1,height:8,background:"#f5f5f5",borderRadius:4,overflow:"hidden"},children:(0,nn.jsx)("div",{"data-testid":`dimension-fill-${t.name}`,style:{width:`${n}%`,height:"100%",background:_t(t.avgScore),borderRadius:4}})}),(0,nn.jsx)("span",{style:{width:28,textAlign:"right",flexShrink:0,fontWeight:600,color:_t(t.avgScore)},children:Math.round(t.avgScore)})]},t.name)})});var Ht=C(z());function Ua(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(!n.holdout&&n.status==="completed"&&typeof n.id=="string")return n.id}return null}var Za=({results:e})=>{let t=W();if(e===null)return null;let n=e.filter(r=>r.interrupted).length,o=e.filter(r=>!r.pass&&!r.interrupted).flatMap(r=>r.dimensionResults??[]).sort((r,i)=>r.score-i.score).slice(0,3);return(0,Ht.jsxs)("div",{style:{marginTop:8},"data-testid":"run-insights",children:[n>0&&(0,Ht.jsx)("div",{"data-testid":"interrupted-count",style:{fontSize:12,color:"#b45309",marginBottom:6},children:t("governance.evalInsights.interrupted",{count:n})}),o.length===0?(0,Ht.jsx)("div",{style:{fontSize:12,color:"#22c55e"},children:t("governance.evalInsights.allPassed")}):o.map((r,i)=>(0,Ht.jsxs)("div",{style:{fontSize:12,padding:"3px 0",display:"flex",gap:6,alignItems:"baseline"},children:[(0,Ht.jsx)("span",{style:{color:"#333",fontWeight:600,flexShrink:0},children:r.name}),(0,Ht.jsx)("span",{style:{color:r.score>=50?"#f59e0b":"#ef4444",flexShrink:0},children:r.score}),(0,Ht.jsx)("span",{style:{color:"#888",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.reason.length>80?`${r.reason.slice(0,80)}\u2026`:r.reason})]},`${r.name}-${i}`))]})};var gt=C(z()),Va={fontSize:12,fontWeight:600,color:"rgba(0,0,0,0.65)",marginBottom:8},Qa={border:"1px solid #f0f0f0",borderRadius:12,padding:12},fn=({agentId:e,projectId:t,runs:n,showRoundTrend:o=!0})=>{let{get:r}=et(),i=W(),l=(0,Wt.useMemo)(()=>Wa(n),[n]),p=Ua(n),d=n.find(y=>y.id===p),[a,v]=(0,Wt.useState)(null),g=Wt.default.useRef(r);g.current=r,(0,Wt.useEffect)(()=>{if(!p){v(null);return}let y=!1;return g.current(`/api/eval/runs/${p}`).then(k=>!y&&v(k.data?.results??[])).catch(()=>!y&&v([])),()=>{y=!0}},[p]);let u=(0,Wt.useMemo)(()=>za(a??[]),[a]),f=(0,Wt.useMemo)(()=>Ka(n,i("governance.evalQuality.target",{score:tn})),[n,i]),s=Qn(n).length>0;return l.latestScore===null?(0,gt.jsx)("div",{style:{height:120,display:"flex",alignItems:"center",justifyContent:"center",color:"#bfbfbf",fontSize:12},children:i("governance.evalQuality.noRuns")}):(0,gt.jsxs)("div",{"data-testid":"eval-quality-panel",style:{display:"flex",flexDirection:"column",gap:12},children:[(0,gt.jsx)(qa,{summary:l}),o&&(0,gt.jsx)($a,{agentId:e,projectId:t,runs:n}),s&&(0,gt.jsxs)("div",{"data-testid":"run-trend-card",style:Qa,children:[(0,gt.jsx)("div",{style:Va,children:i("governance.evalQuality.scoreByRun")}),(0,gt.jsx)(cn,{option:f,height:160})]}),p&&a!==null&&(0,gt.jsxs)("div",{"data-testid":"run-diagnosis-card",style:Qa,children:[(0,gt.jsxs)("div",{style:Va,children:[i("governance.evalQuality.latestRun"),d?` \xB7 ${Wo(new Date(d.createdAt),i)}`:""," \xB7 ",i("governance.evalQuality.passCount",{passed:l.passedCases,total:l.totalCases})]}),(0,gt.jsx)(Ha,{dimensions:u}),(0,gt.jsx)(Za,{results:a})]})]})};var ae=C(z()),Ya={background:"rgba(255, 255, 255, 0.6)",border:"1px solid rgba(240, 240, 240, 0.7)",borderRadius:10,padding:"8px 12px",boxShadow:"0 2px 10px rgba(0,0,0,0.06)",backdropFilter:"blur(8px)",pointerEvents:"auto",cursor:"pointer"},Fl=async()=>{},_l={rounds:[],round:null,subTasks:[],subTasksByRound:{},loading:!1},Go=({assistantId:e,projectId:t,onProjectChange:n,onLearningStarted:o,learningTasks:r=_l,topOffset:i=12,onLearningRefresh:l,evalTick:p,showLearning:d=!0,variant:a="full",children:v})=>{let g=W(),[u,f]=(0,Yn.useState)(null),[s,y]=(0,Yn.useState)(!1),k=fa(e),h=zo(e);return(0,Yn.useEffect)(()=>{p!==void 0&&p>0&&h.refresh()},[p]),a==="selector"?(0,ae.jsxs)("div",{style:{position:"absolute",left:12,top:i,zIndex:10,pointerEvents:"none",display:"flex",flexDirection:"column",gap:8},children:[(0,ae.jsx)("div",{style:{pointerEvents:"auto"},children:(0,ae.jsx)(pr,{kind:"training",disableDropdown:!1,showWorkspace:!1,value:t,onChange:n})}),v]}):(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsxs)("div",{style:{position:"absolute",left:12,top:i,zIndex:10,display:"flex",flexDirection:"column",gap:8,pointerEvents:"none"},children:[(0,ae.jsx)("div",{style:{pointerEvents:"auto"},children:(0,ae.jsx)(pr,{kind:"training",disableDropdown:!1,showWorkspace:!1,value:t,onChange:n})}),(0,ae.jsxs)("div",{onClick:()=>f(u==="runtime"?null:"runtime"),title:g("governance.overlay.runtimeChartTitle"),style:Ya,children:[(0,ae.jsx)("div",{style:{fontSize:10,fontWeight:600,color:"#999",marginBottom:4},children:g("governance.overlay.runtime")}),(0,ae.jsxs)("div",{style:{display:"flex",gap:14,fontSize:12,alignItems:"center"},children:[(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:k.total})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:g("governance.overlay.threads")})]}),(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:k.last7d})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:"7d"})]}),(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:k.last30d})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:"30d"})]}),(0,ae.jsx)("span",{style:{color:"#999"},children:Wo(k.lastActive)}),k.daily7d.length>0&&(0,ae.jsx)(va,{values:k.daily7d,width:56,height:20,color:"#8c8c8c"})]})]}),(0,ae.jsxs)("div",{onClick:()=>f(u==="eval"?null:"eval"),title:g("governance.overlay.evalChartTitle"),style:Ya,children:[(0,ae.jsx)("div",{style:{fontSize:10,fontWeight:600,color:"#999",marginBottom:4},children:g("governance.overlay.evalQuality")}),(0,ae.jsxs)("div",{style:{display:"flex",gap:14,fontSize:12,alignItems:"center"},children:[(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:h.score===null?"#d9d9d9":h.score>=80?"#22c55e":h.score>=50?"#f59e0b":"#ef4444"},children:h.score!==null?h.score.toFixed(1):"\u2014"})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:g("governance.overlay.stat.score")})]}),(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:h.passRate!==null?`${h.passRate}%`:"\u2014"})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:g("governance.overlay.stat.pass")})]}),(0,ae.jsxs)("span",{children:[(0,ae.jsx)("strong",{style:{color:"#595959"},children:h.runCount})," ",(0,ae.jsx)("span",{style:{color:"#bbb"},children:g("governance.overlay.stat.runs")})]}),h.scores.length>1&&(0,ae.jsx)(ha,{values:h.scores.slice(-10),width:64,height:20,color:h.score===null?"#d9d9d9":h.score>=80?"#22c55e":h.score>=50?"#f59e0b":"#ef4444"})]})]}),d&&(0,ae.jsx)(Pa,{assistantId:e,projectId:t,onLearningStarted:o,round:r.round,subTasks:r.subTasks,rounds:r.rounds,subTasksByRound:r.subTasksByRound,loading:r.loading,onRefresh:l??Fl,onExpandWorkflow:()=>y(!0)})]}),u==="runtime"&&(0,ae.jsxs)("div",{style:{position:"absolute",left:340,top:12,zIndex:11,background:"#fff",borderRadius:12,padding:16,border:"1px solid #f0f0f0",boxShadow:"0 6px 24px rgba(0,0,0,0.15)",width:420},children:[(0,ae.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"rgba(0,0,0,0.65)",marginBottom:8},children:g("governance.overlay.runtimePanel")}),(0,ae.jsx)(cn,{option:ma(k.daily30d),height:220})]}),u==="eval"&&(0,ae.jsx)(ct,{open:!0,width:720,title:g("governance.overlay.evalQuality"),onClose:()=>f(null),children:(0,ae.jsx)(fn,{agentId:e,runs:h.runs??[]})}),s&&(0,ae.jsx)(ct,{open:!0,width:860,title:g("governance.overlay.learningWorkflow"),onClose:()=>y(!1),children:(0,ae.jsx)(Na,{rounds:r.rounds,subTasksByRound:r.subTasksByRound,loading:r.loading})})]})};var Xo=C(Ce());var St=C(Ce());var qo=(e,t,n,o,r)=>({id:e,label:t,x:n-o/2,y:-r/2,width:o,height:r}),mn=qo("zone:config","CONFIG",-767,900,620),Nn=qo("zone:testing","EVALUATION",-69,400,560),Ko=qo("zone:learning","LEARNING",459,560,680),Xa=qo("zone:copilot","COPILOT",1147,720,740);var Ja=[mn.id,Nn.id,Ko.id,Xa.id],es=.45,Wl=220,zl=110,Bl=200,$o=90,Ho={"group:subagents":{x:0,y:-190},"group:capabilities":{x:330,y:0},"group:tools":{x:0,y:190},"group:skills":{x:-330,y:0}},ts=e=>({x:e.x+e.width/2-Wl/2,y:e.y+e.height/2-zl/2}),ns=(e,t,n)=>{let o=Ho[t]??{x:0,y:0};return{x:e.x+e.width/2+o.x-Bl/2,y:e.y+e.height/2+o.y-n/2}},jl=310,Gl=e=>{let t=mn.x+mn.width/2,n=jl;for(let[o,r]of Object.entries(e)){let i=Ho[o];i&&(n=Math.max(n,Math.abs(i.y)+r/2+40))}return{id:mn.id,label:mn.label,x:t-mn.width/2,y:-n,width:mn.width,height:n*2}},Kl=900,Sr={x:20,y:20},Xn=110,Jn=48,ql=220,$l=560,Hl=e=>({id:Nn.id,label:Nn.label,x:Nn.x,y:Nn.y,width:Nn.width,height:Math.max($l,ql+e+24)}),os=(e,t,n)=>({x:e.x+e.width/2-Xn/2,y:e.y+e.height/2-Jn/2}),Ul=48,Zl=520,Vl=720,ht=20,Ar=150,Pr=12,rs=56,Er=12,is=e=>Math.round((e-Pr*2-Er)/2),as=(e,t,n)=>{let o={},r=Pr,i=rs,l=Er,p=is(e),d=e-r*2-l-p,a=t-i-r,v=Math.round((a-l)/2),g=n.has("learning"),u=n.has("evaluation");return n.has("copilot")?(o.copilot={width:p},g&&(o.learning=u?{left:r,top:i,width:d,height:v}:{left:r,top:i,width:d,height:a}),u&&(o.evaluation=g?{left:r,top:i+v+l,width:d,height:a-v-l}:{left:r,top:i,width:d,height:a}),o):g&&u?(o.learning={left:r,top:i,width:d,height:a},o.evaluation={left:r+d+l,top:i,width:p,height:a},o):(g&&(o.learning={width:p}),u&&(o.evaluation={width:p}),o)},Uo=260,ss=(e,t,n,o)=>{let r=Pr,i=rs,l=Er,p=r+Uo+l,d=is(e),a=e-p-r-(o?d+l:0);return{left:p,top:i,width:Math.min(n==="evaluation"?720:860,Math.max(a,0)),height:t-i-r}},ls=e=>{let t=Gl(e.groupHeights),n={...Hl(e.suitesGroupHeight),width:Zl},o=Math.max(Ko.width,e.learningDagBBox.width+ht*2),r={...Ko,width:o,height:Math.max(Ko.height,e.learningDagBBox.height+Ar+ht*2)},i={...Xa,width:Vl},l=Math.max(Kl,t.height,n.height,r.height,i.height),p=t.x,d=a=>{let v={x:p,y:-l/2,width:a.width,height:l};return p+=a.width+Ul,v};return{config:{...d(t),label:t.label,id:t.id},learning:{...d(r),label:r.label,id:r.id},testing:{...d(n),label:n.label,id:n.id},copilot:{...d(i),label:i.label,id:i.id},height:l}};var J=C(z());function Mr(e,t){for(let n of e.rounds){let o=e.subTasksByRound[n.id]??[];if(n.id===t)return{task:n,related:[n,...o]};let r=o.find(i=>i.id===t);if(r)return{task:r,related:[n,...o]}}return null}function Ql(e,t){let n=e.rounds;if(t){let o=n.find(r=>r.id===t);if(o)return o}for(let o of n)if(jo(o))return o;return e.round??n[0]??null}function Nr(e,t){let n=Ql(e,t);return n?[n,...e.subTasksByRound[n.id]??[]]:[]}var Zo=200,ds=80,Yl=40,Xl=70,Lr={width:0,height:0},Jl=e=>({headerOffset:{x:e.x+ht,y:e.y+ht},headerWidth:e.width-ht*2,dagOffset:{x:e.x+ht,y:e.y+Ar+ht}}),ed={background:"rgba(255,255,255,0.92)",border:"1px solid rgba(240,240,240,0.9)",borderRadius:14,padding:"10px 12px"},td={traversed:{stroke:"#22c55e",strokeWidth:1.5},flowing:{stroke:"#6366f1",strokeWidth:2},idle:{stroke:"#d1d5db",strokeWidth:1}},nd={stroke:"#cbd5e1",strokeOpacity:.55,strokeWidth:1,strokeDasharray:"5 4"},od={type:"arrowclosed",color:"#cbd5e1",width:16,height:16};function cs(e){let t=e.context?.interruption;return e.status==="interrupted"&&typeof t=="object"&&t!==null&&t.type==="review_required"}function us(e,t){if(!e)return null;let n=new Date(e).getTime();if(!Number.isFinite(n))return null;let o=Math.floor((Date.now()-n)/6e4);return t?o<1?t("common.time.justNow"):o<60?t("common.time.minutesAgo",{count:o}):o<1440?t("common.time.hoursAgo",{count:Math.floor(o/60)}):t("common.time.daysAgo",{count:Math.floor(o/1440)}):o<1?"just now":o<60?`${o}m ago`:o<1440?`${Math.floor(o/60)}h ago`:`${Math.floor(o/1440)}d ago`}function ps(e){let t=e.length>0?e[0]:null,n=new Map(e.map(r=>[r.id,r])),o=new Map;for(let r of e){if(t&&r.id===t.id)continue;let i=r.parentId&&r.parentId!==r.id&&n.has(r.parentId)?r.parentId:t?.id;if(!i)continue;let l=o.get(i)??[];l.push(r),o.set(i,l)}return{byId:n,round:t,childrenOf:o}}function rd(e,t){let n=[],o=[...e.childrenOf.get(t)??[]];for(;o.length>0;){let r=o.pop();if(!r)break;n.push(r),o.push(...e.childrenOf.get(r.id)??[])}return n}function id(e){return e.some(t=>t.status==="review"||cs(t))?"#f59e0b":e.some(t=>t.status==="in_progress")?"#3b82f6":"#9ca3af"}function ad(e,t){let n=(e.dependencies??[]).filter(r=>t.has(r));if(n.length===0)return null;let o=n.filter(r=>{let i=t.get(r);return i?!Wi(i.status):!1});return o.length>0?{kind:"waiting",count:o.length}:{kind:"done",count:n.length}}function gs(e,t){let n=e[0]??null;return!n||!t||t===n.id?null:e.some(o=>o.id===t)?t:null}function fs(e){let t=new Map(e.map(d=>[d.id,d])),n=new Set(e.map(d=>d.id)),o=new Map([...e].sort((d,a)=>new Date(d.createdAt).getTime()-new Date(a.createdAt).getTime()).map((d,a)=>[d.id,a])),r=new Map,i=new Map;for(let d of e)r.set(d.id,[]),i.set(d.id,0);for(let d of e)for(let a of d.dependencies??[])n.has(a)&&a!==d.id&&(r.get(a)?.push(d.id),i.set(d.id,(i.get(d.id)??0)+1));let l=new Set(n),p=[];for(;l.size>0;){let d=null,a=1/0;for(let g of l){if((i.get(g)??0)!==0)continue;let u=o.get(g)??1/0;u<a&&(d=g,a=u)}if(d===null)break;l.delete(d);let v=t.get(d);v&&p.push(v);for(let g of r.get(d)??[])i.set(g,(i.get(g)??0)-1)}for(let d of[...l].sort((a,v)=>(o.get(a)??1/0)-(o.get(v)??1/0))){let a=t.get(d);a&&p.push(a)}return p}function sd(e,t){let n=new Set(t.map(i=>i.id));if(t.some(i=>(i.dependencies??[]).some(l=>l!==i.id&&n.has(l))))return[];let r=[];for(let i=0;i+1<e.length;i++)r.push({from:e[i].id,to:e[i+1].id,kind:"sequence"});return r}function Vo(e,t,n=null){let o={root:null,tasks:[],edges:[],positions:new Map,bbox:{...Lr}},r=ps(e),i=r.round;if(!i)return o;let l=gs(e,t),p=l??i.id,d=r.childrenOf.get(p)??[],a=x=>{let M=rd(r,x.id);return M.length===0?null:{count:M.length,dotColor:id(M)}},v=(x,M,de)=>({id:x.id,task:x,seq:M,fold:de?a(x):null,depBadge:ad(x,r.byId)}),g=[],u=[],f=x=>{let M=fs(x);return u.push(...sd(M,x)),M};f(d).forEach((x,M)=>{g.push(v(x,M+1,!1)),f(r.childrenOf.get(x.id)??[]).forEach((de,X)=>{g.push(v(de,X+1,!0))})});let s=l?g.map(x=>x.task):[i,...g.map(x=>x.task)],k=Ro(s).edges.map(x=>({from:x.from,to:x.to,kind:x.kind==="parent"?"structure":"dependency"}));k.push(...u);let h=null;if(!l){h={id:i.id,label:n!==null?`R${n}`:"R",title:i.title,status:i.status,doneCount:e.filter(M=>M.status==="completed").length,totalCount:e.length};let x=new Set(k.filter(M=>M.from===i.id).map(M=>`${M.to}:${M.kind}`));for(let M of d)x.has(`${M.id}:structure`)||(k.push({from:i.id,to:M.id,kind:"structure"}),x.add(`${M.id}:structure`))}let m=s.map(x=>({id:x.id})),w=xo(m,k.map(x=>({from:x.from,to:x.to})),{nodeWidth:Zo,nodeHeight:ds,nodesep:Yl,ranksep:Xl,rankdir:"TB"}),I=1/0,P=1/0;for(let x of w.values())I=Math.min(I,x.x),P=Math.min(P,x.y);let S=new Map;if(Number.isFinite(I)&&Number.isFinite(P))for(let[x,M]of w)S.set(x,{x:M.x-I,y:M.y-P});let $=0,E=0;for(let x of S.values())$=Math.max($,x.x+Zo),E=Math.max(E,x.y+ds);return{root:h,tasks:g,edges:k,positions:S,bbox:{width:$,height:E}}}function ms(e,t=null){return e.length===0?{width:0,height:0}:Vo(e,t).bbox}var Dr={draggable:!1,selectable:!1,focusable:!1,deletable:!1,connectable:!1};function eo(e,t,n,o){let r=e.rounds,i=Nr(e,t),l=i[0]??null,p=i.filter(cs),d=ps(i),a=i.filter(k=>k.status==="completed").length,v=l?r.findIndex(k=>k.id===l.id):-1,g=l?r.length-v:null,u=r.map((k,h)=>({id:k.id,label:`R${r.length-h}`,title:k.title,status:k.status,createdAt:k.createdAt})),f=i.reduce((k,h)=>k?new Date(h.updatedAt).getTime()>new Date(k.updatedAt).getTime()?h:k:h,null),s=gs(i,n),y=[];if(l&&(y.push({id:l.id,label:`R${g}`}),s)){let k=[],h=d.byId.get(s)??null;for(;h&&h.id!==l.id;)k.unshift(h),h=h.parentId?d.byId.get(h.parentId)??null:null;for(let m of k){let I=fs(d.childrenOf.get(m.parentId??"")??[]).findIndex(P=>P.id===m.id)+1;y.push({id:m.id,label:`${I}.${m.title}`})}}return{tree:i,selectedRound:l,roundTreeById:d.byId,focusId:s,reviewTasks:p,doneCount:a,roundNumber:g,roundOptions:u,roundLatestActivity:us(f?.updatedAt,o),breadcrumb:y}}var Or=({hasRounds:e,reviewCount:t,onReviewClick:n,roundOptions:o,selectedRoundValue:r,onSelectRound:i,roundTitle:l,roundStatus:p,roundDoneCount:d,roundTotalCount:a,roundWaitingCount:v,roundLatestActivity:g,breadcrumb:u,onFocusTask:f,actions:s})=>{let y=W(),k=p?$t[p]:null,h=p?Vn(p,y):null;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,marginBottom:6},children:[(0,J.jsx)("div",{className:"nodrag nopan nowheel","data-testid":"learning-round-select",children:(0,J.jsx)(it,{size:"small",style:{width:260},placeholder:y("governance.learning.selectRound"),value:r??void 0,allowClear:!0,disabled:o.length===0,onChange:m=>i(m??null),options:o.map(m=>{let w=us(m.createdAt,y);return{value:m.id,label:`${m.label} ${m.title} \xB7 ${Vn(m.status,y)}${w?` \xB7 ${w}`:""}`}})})}),s]}),!e&&(0,J.jsx)("div",{"data-testid":"learning-empty",style:{fontSize:12,color:"#999",paddingBottom:4},children:y("governance.learning.empty")}),k&&l&&(0,J.jsxs)("div",{"data-testid":"learning-round-stats",style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",marginBottom:6},children:[(0,J.jsx)("span",{style:{width:8,height:8,borderRadius:9999,background:k.color,flexShrink:0}}),(0,J.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"#262626"},children:h}),(0,J.jsx)("span",{style:{fontSize:11,color:"#d1d5db"},children:"\xB7"}),(0,J.jsx)("span",{style:{fontSize:11,color:"#8c8c8c"},children:y("governance.learning.tasksCount",{done:d,total:a})}),v>0&&(0,J.jsxs)("span",{style:{fontSize:11,fontWeight:600,color:"#b45309",background:"rgba(245,158,11,0.12)",border:"1px solid rgba(245,158,11,0.35)",borderRadius:9999,padding:"1px 8px"},children:["\u23F8 ",y("governance.learning.waiting",{count:v})]}),g&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)("span",{style:{fontSize:11,color:"#d1d5db"},children:"\xB7"}),(0,J.jsx)("span",{style:{fontSize:11,color:"#9ca3af"},children:g})]})]}),u.length>1&&(0,J.jsxs)("div",{"data-testid":"learning-breadcrumb",style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",marginBottom:6,fontSize:11,color:"#6b7280"},children:[u.map((m,w)=>(0,J.jsxs)(St.default.Fragment,{children:[w>0&&(0,J.jsx)("span",{style:{color:"#d1d5db"},children:"/"}),(0,J.jsx)("button",{type:"button","data-testid":`learning-crumb-${w}`,onClick:()=>f(w===0?null:m.id),style:{border:"none",background:"transparent",padding:0,cursor:"pointer",fontSize:11,fontWeight:600,color:w===u.length-1?"#4b5563":"#6366f1"},children:m.label})]},m.id)),(0,J.jsx)("button",{type:"button","data-testid":"learning-crumb-back",onClick:()=>f(u[u.length-2]?.id??null),style:{border:"none",background:"rgba(99,102,241,0.08)",borderRadius:9999,padding:"1px 8px",cursor:"pointer",fontSize:11,fontWeight:600,color:"#6366f1"},children:y("governance.learning.back")})]}),t>0&&(0,J.jsx)("button",{type:"button","data-testid":"learning-review-banner","aria-label":y("governance.learning.openReviewTasks",{count:t,s:t>1?"s":""}),onClick:n,style:{display:"flex",alignItems:"center",justifyContent:"flex-start",gap:6,cursor:"pointer",width:"100%",fontSize:12,fontWeight:600,color:"#b45309",background:"rgba(245,158,11,0.12)",border:"1px solid rgba(245,158,11,0.35)",borderRadius:8,padding:"5px 8px",marginBottom:6},children:y("governance.learning.reviewCount",{count:t,s:t>1?"s":""})})]})},ld=({data:e})=>{let t=W(),[n,o]=(0,St.useState)(!1);return(0,J.jsxs)("div",{style:{...ed,width:e.width},children:[(0,J.jsx)(Or,{hasRounds:e.hasRounds,reviewCount:e.reviewCount,onReviewClick:e.onReviewClick,roundOptions:e.roundOptions,selectedRoundValue:e.selectedRoundValue,onSelectRound:e.onSelectRound,roundNumber:e.roundNumber,roundTitle:e.roundTitle,roundStatus:e.roundStatus,roundDoneCount:e.roundDoneCount,roundTotalCount:e.roundTotalCount,roundWaitingCount:e.roundWaitingCount,roundLatestActivity:e.roundLatestActivity,breadcrumb:e.breadcrumb,onFocusTask:e.onFocusTask,actions:(0,J.jsx)(U,{size:"small",type:"text",icon:(0,J.jsx)(Mt,{}),"data-testid":"learning-new-task",onClick:()=>o(!0),style:{fontSize:12},children:t("governance.learning.newTask")})}),(0,J.jsx)(Ln,{open:n,agentId:e.agentId,defaultProjectId:e.projectId??void 0,onClose:()=>o(!1),onCreated:(r,i,l,p)=>{e.onLearningStarted?.(l,r,p),o(!1)}})]})},ys=St.default.memo(ld),dd=({data:e})=>{let t=W(),n=$t[e.task.status],[o,r]=(0,St.useState)(!1);return(0,J.jsxs)("div",{"data-testid":"learning-dag-task",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),style:{width:Zo,minHeight:46,padding:"8px 10px",borderRadius:10,cursor:"pointer",border:`1.5px solid ${o?"rgba(99,102,241,0.5)":n.color}`,background:o?"rgba(99,102,241,0.08)":"#fff",transition:"background 0.15s ease, border-color 0.15s ease",animation:n.active?"workflow-node-pulse 1.6s ease-in-out infinite":void 0},children:[(0,J.jsx)(Rt,{type:"target",position:st.Top,style:{opacity:0}}),(0,J.jsx)(Rt,{id:"left",type:"target",position:st.Left,style:{opacity:0}}),(0,J.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6},children:[(0,J.jsx)("span",{style:{width:8,height:8,borderRadius:9999,background:n.color,flexShrink:0,marginTop:4}}),(0,J.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:"#262626",flexShrink:0},children:[e.seq,"."]}),(0,J.jsx)("span",{"data-testid":"learning-task-title",title:e.task.title,style:{fontSize:12,fontWeight:600,color:"#262626",lineHeight:"17px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-word"},children:e.task.title})]}),(e.depBadge||e.fold)&&(0,J.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:6,marginTop:5},children:[e.depBadge?(0,J.jsx)("span",{"data-testid":"learning-dep-badge",style:{fontSize:10,fontWeight:600,flexShrink:0,color:e.depBadge.kind==="done"?"#22c55e":"#f59e0b",background:e.depBadge.kind==="done"?"rgba(34,197,94,0.1)":"rgba(245,158,11,0.12)",borderRadius:9999,padding:"1px 6px"},children:e.depBadge.kind==="done"?t("governance.learning.depBadgeDone",{count:e.depBadge.count}):t("governance.learning.depBadgeWaiting",{count:e.depBadge.count})}):(0,J.jsx)("span",{}),e.fold&&(0,J.jsxs)("button",{type:"button","data-testid":"learning-fold",className:"nodrag","aria-label":t("governance.learning.expandNested",{count:e.fold.count,title:e.task.title}),onClick:i=>{i.stopPropagation(),e.onFocusTask?.(e.task.id)},style:{display:"inline-flex",alignItems:"center",gap:4,cursor:"pointer",flexShrink:0,fontSize:10,fontWeight:600,color:"#6b7280",border:"1px solid #e5e7eb",background:"#fafafa",borderRadius:9999,padding:"1px 6px"},children:[(0,J.jsx)("span",{style:{width:6,height:6,borderRadius:9999,background:e.fold.dotColor,flexShrink:0}}),"\u25B8 ",e.fold.count]})]}),(0,J.jsx)(Rt,{type:"source",position:st.Bottom,style:{opacity:0}}),n.active&&(0,J.jsx)("style",{children:"@keyframes workflow-node-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(59,130,246,0.35); } 50% { box-shadow: 0 0 0 6px rgba(59,130,246,0.08); } }"})]})},Qo=St.default.memo(dd),cd=({data:e})=>{let t=W(),n=$t[e.status],[o,r]=(0,St.useState)(!1);return(0,J.jsxs)("div",{"data-testid":"learning-round-root",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),style:{width:Zo,minHeight:46,padding:"8px 10px",borderRadius:10,cursor:"pointer",border:`1.5px solid ${o?"rgba(99,102,241,0.5)":n.color}`,background:o?"rgba(99,102,241,0.14)":"rgba(99,102,241,0.04)",transition:"background 0.15s ease, border-color 0.15s ease"},children:[(0,J.jsx)(Rt,{type:"target",position:st.Top,style:{opacity:0}}),(0,J.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6},children:[(0,J.jsx)("span",{style:{width:8,height:8,borderRadius:9999,background:n.color,flexShrink:0,marginTop:4}}),(0,J.jsxs)("span",{"data-testid":"learning-round-root-title",title:e.title,style:{fontSize:12,fontWeight:700,color:"#262626",lineHeight:"17px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-word"},children:[e.label," \xB7 ",e.title]})]}),(0,J.jsx)("div",{style:{fontSize:11,color:"#8c8c8c",marginTop:4},children:t("governance.learning.tasksDone",{done:e.doneCount,total:e.totalCount})}),(0,J.jsx)(Rt,{type:"source",position:st.Bottom,style:{opacity:0}})]})},Yo=St.default.memo(cd);function Fr(e,t){let{nodeId:n,byId:o,prefix:r=""}=t;return e.edges.map(i=>{if(i.kind==="dependency"||i.kind==="sequence")return{id:`${r}${i.from}->${i.to}:${i.kind}`,source:n(i.from),target:n(i.to),type:"bezier",animated:!1,style:nd,...i.kind==="dependency"?{markerEnd:od}:{}};let l=La(o.get(i.to)?.status??"pending");return{id:`${r}${i.from}->${i.to}:structure`,source:n(i.from),target:n(i.to),targetHandle:"left",animated:l==="flowing",style:td[l]}})}function vs(e){let{learningTasks:t,selectedRoundId:n,onSelectRound:o,onTaskClick:r,onFocusTask:i,focusTaskId:l,onLearningStarted:p,agentId:d,projectId:a,zone:v}=e,g=W();return(0,St.useMemo)(()=>{if(!d)return{nodes:[],edges:[],bbox:{...Lr},breadcrumb:[]};let u=Jl(v),f=eo(t,n,l,g),{tree:s,selectedRound:y,roundTreeById:k,focusId:h,reviewTasks:m,doneCount:w,roundNumber:I,roundOptions:P,roundLatestActivity:S,breadcrumb:$}=f,x=[{id:"learning:header",type:"learningHeader",position:u.headerOffset,data:{width:u.headerWidth,hasRounds:t.rounds.length>0,reviewCount:m.length,onReviewClick:()=>{m[0]&&r(m[0],s)},onLearningStarted:p,agentId:d,projectId:a,roundOptions:P,selectedRoundId:n,selectedRoundValue:y?.id??null,onSelectRound:o,roundNumber:I,roundTitle:y?.title??null,roundStatus:y?.status??null,roundDoneCount:w,roundTotalCount:s.length,roundWaitingCount:m.length,roundLatestActivity:S,breadcrumb:$,onFocusTask:i},...Dr}];if(!y)return{nodes:x,edges:[],bbox:{...Lr},breadcrumb:$};let M=Vo(s,h,I),de=v.width-ht*2,X=u.dagOffset.x+Math.max(0,(de-M.bbox.width)/2);if(M.root){let A=M.positions.get(M.root.id)??{x:0,y:0};x.push({id:"learning:round-root",type:"learningRoundRoot",position:{x:X+A.x,y:u.dagOffset.y+A.y},data:{label:M.root.label,title:M.root.title,status:M.root.status,doneCount:M.root.doneCount,totalCount:M.root.totalCount,onTaskClick:()=>r(y,s)},...Dr})}for(let A of M.tasks){let G=M.positions.get(A.id)??{x:0,y:0};x.push({id:`learning:task:${A.id}`,type:"learningTask",position:{x:X+G.x,y:u.dagOffset.y+G.y},data:{task:A.task,seq:A.seq,depBadge:A.depBadge,fold:A.fold,onTaskClick:()=>r(A.task,s),onFocusTask:A.fold?()=>i(A.id):void 0},...Dr})}let pe=Fr(M,{byId:k,nodeId:A=>A===y.id?"learning:round-root":`learning:task:${A}`,prefix:"learning:"});return{nodes:x,edges:pe,bbox:M.bbox,breadcrumb:$}},[t,n,o,r,i,l,p,d,a,v,g])}var xe=C(z()),hs={width:Uo,boxSizing:"border-box",background:"rgba(255, 255, 255, 0.6)",border:"1px solid rgba(240, 240, 240, 0.7)",borderRadius:10,padding:"8px 12px",boxShadow:"0 2px 10px rgba(0,0,0,0.06)",backdropFilter:"blur(8px)",pointerEvents:"auto"},bs={fontSize:10,fontWeight:600,color:"#999"},ud=({expanded:e,score:t,passRate:n,onToggleExpand:o,onUnpin:r})=>{let i=W();return(0,xe.jsxs)("div",{"data-testid":"eval-mini",style:{...hs,position:"relative"},children:[(0,xe.jsxs)("button",{type:"button","data-testid":"eval-mini-expand","aria-label":i("governance.pinnedRail.openEval"),"aria-pressed":e,onClick:()=>o("evaluation"),style:{display:"block",width:"100%",border:"none",background:"transparent",padding:0,cursor:"pointer",textAlign:"left"},children:[(0,xe.jsx)("div",{style:bs,children:i("governance.overlay.evalQuality")}),(0,xe.jsxs)("div",{style:{display:"flex",gap:14,fontSize:12,alignItems:"baseline"},children:[(0,xe.jsxs)("span",{children:[(0,xe.jsx)("strong",{"data-testid":"eval-mini-score",style:{fontSize:18,color:t===null?"#d9d9d9":_t(t)},children:t!==null?t.toFixed(1):"\u2014"})," ",(0,xe.jsx)("span",{style:{color:"#bbb"},children:i("governance.overlay.stat.score")})]}),(0,xe.jsxs)("span",{children:[(0,xe.jsx)("strong",{"data-testid":"eval-mini-pass",style:{fontSize:18,color:"#262626"},children:n!==null?`${n}%`:"\u2014"})," ",(0,xe.jsx)("span",{style:{color:"#bbb"},children:i("governance.overlay.stat.pass")})]})]})]}),(0,xe.jsx)(U,{size:"small",type:"text","aria-label":i("governance.zone.unpinAria",{zone:"evaluation"}),icon:(0,xe.jsx)(jn,{}),onClick:()=>r("evaluation"),style:{position:"absolute",top:2,right:2}})]})},pd=({expanded:e,learningTasks:t,selectedRoundId:n,onSelectRound:o,onTaskClick:r,onLearningStarted:i,onLearningRefresh:l,agentId:p,projectId:d,onToggleExpand:a,onUnpin:v})=>{let g=W(),[u,f]=(0,Xo.useState)(!1),s=(0,Xo.useMemo)(()=>eo(t,n,null),[t,n]),y=(k,h,m,w)=>{o(k),f(!1),Promise.resolve(l?.()).catch(()=>{}),i?.(m,k,w)};return(0,xe.jsxs)("div",{"data-testid":"learning-mini",style:hs,children:[(0,xe.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:6,marginBottom:6},children:[(0,xe.jsx)("span",{style:bs,children:g("governance.canvas.dot.learning")}),(0,xe.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:2},children:[(0,xe.jsx)(U,{size:"small",type:"text","aria-label":g("governance.pinnedRail.openLearning"),"aria-pressed":e,icon:(0,xe.jsx)(wn,{}),onClick:()=>a("learning")}),(0,xe.jsx)(U,{size:"small",type:"text","data-testid":"learning-mini-new",icon:(0,xe.jsx)(Mt,{}),onClick:()=>f(!0),children:g("governance.pinnedRail.new")}),(0,xe.jsx)(U,{size:"small",type:"text","aria-label":g("governance.zone.unpinAria",{zone:"learning"}),icon:(0,xe.jsx)(jn,{}),onClick:()=>v("learning")})]})]}),s.roundOptions.length>1&&(0,xe.jsx)(it,{size:"small","data-testid":"learning-mini-round",style:{width:"100%",marginBottom:6},value:s.selectedRound?.id??void 0,allowClear:!0,placeholder:g("governance.learning.selectRound"),onChange:k=>o(k??null),options:s.roundOptions.map(k=>({value:k.id,label:`${k.label} ${k.title}`}))}),s.selectedRound?(0,xe.jsx)("div",{"data-testid":"learning-mini-tree",style:{maxHeight:240,overflow:"auto"},children:(0,xe.jsx)(Io,{tasks:s.tree,loading:t.loading,onTaskClick:r})}):(0,xe.jsx)("div",{style:{fontSize:12,color:"#999",padding:"2px 0"},children:g("governance.learning.empty")}),(0,xe.jsx)(Ln,{open:u,agentId:p,defaultProjectId:d,onClose:()=>f(!1),onCreated:y})]})},ks=e=>{let t=e.pinned.has("evaluation"),n=e.pinned.has("learning");return!t&&!n?null:(0,xe.jsxs)("div",{"data-testid":"canvas-pinned-rail",style:{display:"flex",flexDirection:"column",gap:8,width:Uo},children:[t&&(0,xe.jsx)(ud,{expanded:e.expanded==="evaluation",score:e.score,passRate:e.passRate,onToggleExpand:e.onToggleExpand,onUnpin:e.onUnpin}),n&&(0,xe.jsx)(pd,{expanded:e.expanded==="learning",learningTasks:e.learningTasks,selectedRoundId:e.selectedRoundId,onSelectRound:e.onSelectRound,onTaskClick:e.onTaskClick,onLearningStarted:e.onLearningStarted,onLearningRefresh:e.onLearningRefresh,agentId:e.agentId,projectId:e.projectId,onToggleExpand:e.onToggleExpand,onUnpin:e.onUnpin})]})};var _r=C(Ce());var yn=C(z()),gd={CONFIG:"governance.canvas.zone.config",EVALUATION:"governance.canvas.zone.evaluation",LEARNING:"governance.canvas.zone.learning",COPILOT:"governance.canvas.zone.copilot"},fd=({data:e})=>{let t=W(),[n,o]=_r.default.useState(!1),r=!!e.pinned,i=gd[e.label],l=i?t(i):e.label;return(0,yn.jsx)("div",{"data-testid":`canvas-zone-${e.label.toLowerCase()}`,style:{width:e.width,height:e.height,borderRadius:18,border:"1.5px dashed rgba(99,102,241,0.28)",background:"rgba(99,102,241,0.04)",pointerEvents:"none",position:"relative"},children:(0,yn.jsxs)("div",{style:{position:"absolute",top:-22,left:2,display:"flex",alignItems:"center",gap:6},children:[(0,yn.jsx)("span",{"data-testid":`canvas-zone-chip-${e.label.toLowerCase()}`,style:{fontSize:11,fontWeight:600,letterSpacing:1,color:"rgba(99,102,241,0.65)",userSelect:"none",pointerEvents:"auto",cursor:"grab"},children:l}),e.pinnable&&e.onPinToggle&&(0,yn.jsx)("button",{type:"button","data-testid":`canvas-zone-pin-${e.label.toLowerCase()}`,"aria-label":r?t("governance.zone.unpinAria",{zone:l}):t("governance.zone.pinAria",{zone:l}),"aria-pressed":r,onMouseDown:p=>p.stopPropagation(),onClick:p=>{p.stopPropagation(),e.onPinToggle?.()},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:"none",borderRadius:5,background:r?"rgba(99,102,241,0.12)":"transparent",color:r||n?"#6366f1":"rgba(99,102,241,0.45)",cursor:"pointer",pointerEvents:"auto",lineHeight:1},children:(0,yn.jsx)(ki,{size:11,fill:r?"currentColor":"none"})})]})})},ws=_r.default.memo(fd);var Qe=C(Ce());var Jo=C(Ce()),to="(max-width: 767px)",md=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(to).matches:!1;function xs(){let[e,t]=(0,Jo.useState)(md);return(0,Jo.useEffect)(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let n=window.matchMedia(to),o=r=>{t(r.matches)};return t(n.matches),typeof n.addEventListener=="function"?(n.addEventListener("change",o),()=>n.removeEventListener("change",o)):(n.addListener(o),()=>n.removeListener(o))},[]),e}var on=C(Ce()),Ts=(e,t)=>e?.requestId===t?.requestId&&e?.content===t?.content;function On({assistantId:e,initialMessageRequest:t,onInitialMessageSubmitted:n}){let o=(0,on.useRef)(new Set),r=t??null,i=(0,on.useRef)(null);i.current===null&&(i.current={assistantId:e,observedRequest:r,request:r});let[l,p]=(0,on.useState)(i.current),d=(0,on.useRef)(l);(0,on.useLayoutEffect)(()=>{let g=d.current;if(g.assistantId===e&&Ts(g.observedRequest,r))return;let u={assistantId:e,observedRequest:r,request:r};d.current=u,p(u)},[e,r?.requestId,r?.content]);let a=l.assistantId===e&&Ts(l.observedRequest,r)?l.request:null;return{attemptedRequestIdsRef:o,effectivePendingRequest:a,handleInitialMessageSubmitted:g=>{let u=d.current;if(u.assistantId===e){if(u.request?.requestId===g){let f={...u,request:null};d.current=f,p(s=>s.assistantId===e&&s.request?.requestId===g?{...s,request:null}:s)}n?.(g)}}}}var bt=C(z()),Rs=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(to).matches:!1,er=({assistantId:e,assistantName:t,workspaceId:n,projectId:o,contextType:r,initialMessageRequest:i,onInitialMessageSubmitted:l,onToolCompleted:p,label:d,temporarilyHidden:a=!1,openSignal:v=0,showMobileTrigger:g=!0,restoreFocusRef:u})=>{let f=W(),s=d??f("governance.copilot.label"),[y,k]=(0,Qe.useState)(Rs),[h,m]=(0,Qe.useState)(()=>!Rs()),[w,I]=(0,Qe.useState)(360),P=(0,Qe.useRef)(null),S=(0,Qe.useRef)(null),$=(0,Qe.useRef)(null),E=i??null,{attemptedRequestIdsRef:x,effectivePendingRequest:M,handleInitialMessageSubmitted:de}=On({assistantId:e,initialMessageRequest:i,onInitialMessageSubmitted:l});(0,Qe.useEffect)(()=>{P.current&&(P.current.inert=a||!h)},[y,a,h]),(0,Qe.useEffect)(()=>{y&&a&&m(!1)},[y,a]),(0,Qe.useEffect)(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let A=window.matchMedia(to),G=F=>{k(F.matches),m(!F.matches)};return k(A.matches),typeof A.addEventListener=="function"?(A.addEventListener("change",G),()=>A.removeEventListener("change",G)):(A.addListener(G),()=>A.removeListener(G))},[]),(0,Qe.useEffect)(()=>{v>0&&m(!0)},[v]),(0,Qe.useEffect)(()=>{E&&!y&&m(!0)},[e,E?.requestId,E?.content,y]);let X=(0,Qe.useCallback)(A=>{A.preventDefault(),$.current={startX:A.clientX,startWidth:w}},[w]);(0,Qe.useEffect)(()=>{let A=F=>{if(!$.current)return;let Q=$.current.startX-F.clientX,oe=Math.min(900,Math.max(320,$.current.startWidth+Q));I(oe)},G=()=>{$.current=null};return window.addEventListener("mousemove",A),window.addEventListener("mouseup",G),()=>{window.removeEventListener("mousemove",A),window.removeEventListener("mouseup",G)}},[]);let V=(0,bt.jsxs)("div",{ref:P,"data-testid":"architect-copilot-container","aria-hidden":a||!h||void 0,style:y?{width:"100%",height:"100%",overflow:"hidden",visibility:a||!h?"hidden":"visible",pointerEvents:a||!h?"none":void 0}:{position:"absolute",right:12,top:56,bottom:12,width:w,zIndex:15,borderRadius:12,overflow:"hidden",boxShadow:"0 4px 24px rgba(0,0,0,0.12)",visibility:a||!h?"hidden":"visible",pointerEvents:a||!h?"none":void 0},children:[!y&&(0,bt.jsx)("div",{onMouseDown:X,style:{position:"absolute",left:0,top:0,bottom:0,width:6,cursor:"ew-resize",zIndex:2,background:"transparent"}}),(0,bt.jsx)(Cn,{defaultWorkspaceId:n??void 0,defaultProjectId:o??void 0,children:(0,bt.jsx)(Sn,{workflowContext:{id:e,name:t??"",type:r},onClose:()=>m(!1),onToolCompleted:p,initialMessageRequest:M,attemptedInitialMessageRequestIdsRef:x,rawInitialMessage:!0,onInitialMessageSubmitted:de},e)},`${n??"default"}:${o??"default"}`)]}),pe=!h&&!a&&(!y||g)?(0,bt.jsx)("div",{style:y?{position:"absolute",right:12,bottom:16,zIndex:20}:{position:"absolute",right:0,top:"50%",transform:"translateY(-50%)",zIndex:20},children:(0,bt.jsx)("button",{ref:S,type:"button","aria-label":f("governance.copilot.open"),onClick:()=>m(!0),style:y?{padding:"9px 14px",background:"#6366f1",color:"#fff",borderRadius:9999,cursor:"pointer",fontSize:12,fontWeight:500,userSelect:"none",border:"none",boxShadow:"0 4px 16px rgba(79,70,229,0.28)"}:{writingMode:"vertical-rl",textOrientation:"mixed",padding:"16px 8px",background:"#6366f1",color:"#fff",borderRadius:"8px 0 0 8px",cursor:"pointer",fontSize:12,fontWeight:500,userSelect:"none",border:"none"},children:s})}):null;return(0,bt.jsxs)(bt.Fragment,{children:[pe,y?(0,bt.jsx)(Vr,{title:s,"aria-label":s,placement:"right",width:"100vw",open:h&&!a,onClose:()=>m(!1),forceRender:!0,destroyOnHidden:!1,styles:{body:{padding:0,overflow:"hidden",height:"100%"}},afterOpenChange:A=>{!A&&!h&&(u?.current??S.current)?.focus()},children:V}):V]})};var vn=C(Ce());var rn=C(z()),no="node:architect-copilot",yd=({data:e})=>{let{assistantId:t,assistantName:n,workspaceId:o,projectId:r,initialMessageRequest:i,onInitialMessageSubmitted:l,onToolCompleted:p,temporarilyHidden:d=!1,openSignal:a=0,width:v,height:g,center:u}=e,f=ko(),s=W(),y=(0,vn.useRef)(null),{attemptedRequestIdsRef:k,effectivePendingRequest:h,handleInitialMessageSubmitted:m}=On({assistantId:t,initialMessageRequest:i,onInitialMessageSubmitted:l}),w=d,I=()=>f.setCenter(u.x,u.y,{zoom:1,duration:400});return(0,vn.useEffect)(()=>{y.current&&(y.current.inert=w)},[w]),(0,vn.useEffect)(()=>{a>0&&I()},[a]),(0,rn.jsxs)("div",{style:{width:v,height:g,position:"relative",fontFamily:"inherit"},children:[(0,rn.jsx)("div",{ref:y,"data-testid":"architect-copilot-node-panel","aria-hidden":w||void 0,className:"nodrag nowheel nopan",style:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:12,overflow:"hidden",background:"#fff",visibility:w?"hidden":"visible",pointerEvents:w?"none":void 0,userSelect:"text",WebkitUserSelect:"text"},children:(0,rn.jsx)(Cn,{defaultWorkspaceId:o??void 0,defaultProjectId:r??void 0,children:(0,rn.jsx)(Sn,{workflowContext:{id:t,name:n??"",type:"agent"},onToolCompleted:p,initialMessageRequest:h,attemptedInitialMessageRequestIdsRef:k,rawInitialMessage:!0,showHeader:!1,onInitialMessageSubmitted:m},t)},`${o??"default"}:${r??"default"}`)}),w&&(0,rn.jsxs)("button",{type:"button","data-testid":"architect-copilot-node-badge","aria-label":s("governance.copilot.expand"),onClick:I,style:{position:"absolute",left:12,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",gap:6,padding:"9px 14px",background:"#6366f1",color:"#fff",borderRadius:9999,border:"none",cursor:"pointer",fontSize:12,fontWeight:500,userSelect:"none"},children:[(0,rn.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:"#22c55e",display:"inline-block"}}),s("governance.copilot.label")]})]})},Is=vn.default.memo(yd);var Wr=C(Ce());var ft=C(z()),vd=.4,hd=.45,Cs=(e,t)=>t==="badge"?e>=hd?"overview":"badge":e<vd?"badge":"overview",bd={background:"rgba(255,255,255,0.92)",border:"1px solid rgba(240,240,240,0.9)",borderRadius:14},kd=({data:e})=>{let t=W();return(0,ft.jsxs)("div",{"data-testid":"testing-panel",style:{...bd,width:e.width,minHeight:e.height,boxSizing:"border-box",padding:12,overflow:"auto",display:"flex",flexDirection:"column",gap:12},children:[(0,ft.jsx)(fn,{agentId:e.agentId,runs:e.runs}),e.suites.length>0&&(0,ft.jsxs)("div",{"data-testid":"testing-suites",style:{borderTop:"1px solid #f0f0f0",paddingTop:10,display:"flex",flexDirection:"column",gap:8},children:[(0,ft.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"rgba(0,0,0,0.65)"},children:t("governance.testing.suites")}),(0,ft.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:e.suites.map(n=>(0,ft.jsxs)("div",{"data-testid":"testing-suite-chip",onClick:()=>e.onSuiteClick(n),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 10px",borderRadius:9999,background:"#fff",border:`1px solid ${_o("eval")}55`,fontSize:11,color:"#333",cursor:"pointer",whiteSpace:"nowrap"},children:[(0,ft.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:n.label}),n.description&&(0,ft.jsx)("span",{style:{fontSize:10,color:"#999"},children:n.description})]},n.id))})]})]})},Ss=Wr.default.memo(kd),wd=({data:e})=>(0,ft.jsxs)("div",{"data-testid":"testing-badge",style:{width:Xn,height:Jn,borderRadius:10,background:"rgba(255,255,255,0.92)",border:"1px solid rgba(240,240,240,0.9)",display:"flex",alignItems:"center",justifyContent:"center",gap:6},children:[(0,ft.jsx)("span",{style:{width:10,height:10,borderRadius:9999,background:e.score===null?"#d1d5db":_t(e.score),flexShrink:0}}),(0,ft.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"#6b7280"},children:e.suiteCount})]}),As=Wr.default.memo(wd);var zt=C(Ce());var hn=C(z()),xd={learningTask:Qo,learningRoundRoot:Yo},zr=({learningTasks:e,selectedRoundId:t,onSelectRound:n,onTaskClick:o,height:r="100%"})=>{let i=W(),[l,p]=(0,zt.useState)(null);(0,zt.useEffect)(()=>{p(null)},[t]);let d=(0,zt.useMemo)(()=>eo(e,t,l,i),[e,t,l,i]),{dagNodes:a,dagEdges:v}=(0,zt.useMemo)(()=>{let m=Vo(d.tree,d.focusId,d.roundNumber),w=d.tree,I=[];m.root&&d.selectedRound&&I.push({id:m.root.id,type:"learningRoundRoot",position:m.positions.get(m.root.id)??{x:0,y:0},data:{label:m.root.label,title:m.root.title,status:m.root.status,doneCount:m.root.doneCount,totalCount:m.root.totalCount,onTaskClick:()=>o(d.selectedRound,w)}});for(let S of m.tasks)I.push({id:S.id,type:"learningTask",position:m.positions.get(S.id)??{x:0,y:0},data:{task:S.task,seq:S.seq,depBadge:S.depBadge,fold:S.fold,onTaskClick:()=>o(S.task,w),onFocusTask:S.fold?()=>p(S.id):void 0}});let P=Fr(m,{byId:d.roundTreeById,nodeId:S=>S});return{dagNodes:I,dagEdges:P}},[d,o]),[g,u,f]=Rn(a),[s,y,k]=In(v);(0,zt.useEffect)(()=>{u(a),y(v)},[a,v,u,y]);let h=(0,zt.useCallback)((m,w)=>{w.data.onTaskClick?.()},[]);return(0,hn.jsxs)("div",{style:{width:"100%",height:r,display:"flex",flexDirection:"column",minHeight:0},children:[(0,hn.jsx)("div",{className:"nodrag nowheel nopan",style:{flexShrink:0,padding:"12px 16px 4px"},children:(0,hn.jsx)(Or,{hasRounds:e.rounds.length>0,reviewCount:d.reviewTasks.length,onReviewClick:()=>{d.reviewTasks[0]&&o(d.reviewTasks[0],d.tree)},roundOptions:d.roundOptions,selectedRoundValue:d.selectedRound?.id??null,onSelectRound:n,roundNumber:d.roundNumber,roundTitle:d.selectedRound?.title??null,roundStatus:d.selectedRound?.status??null,roundDoneCount:d.doneCount,roundTotalCount:d.tree.length,roundWaitingCount:d.reviewTasks.length,roundLatestActivity:d.roundLatestActivity,breadcrumb:d.breadcrumb,onFocusTask:p})}),(0,hn.jsx)("div",{style:{flex:1,minHeight:0,position:"relative"},children:(0,hn.jsx)(To,{nodes:g,edges:s,nodeTypes:xd,onNodesChange:f,onEdgesChange:k,onNodeClick:h,fitView:!0,fitViewOptions:{padding:.15,maxZoom:1.2},nodesDraggable:!1,nodesConnectable:!1,miniMap:!1})})]})};var se=C(z()),Td={"zone:copilot":"copilot","zone:learning":"learning","zone:testing":"evaluation"},Rd={copilot:"governance.canvas.zone.copilot",learning:"governance.canvas.zone.learning",evaluation:"governance.canvas.zone.evaluation"},Ps={copilot:"copilot",learning:"learning",testing:"evaluation"},Id=(e,t)=>{if(Object.keys(t).length===0)return e;let n=o=>{let r=t[o.id];return r?{...o,x:r.x,y:r.y}:o};return{config:n(e.config),copilot:n(e.copilot),learning:n(e.learning),testing:n(e.testing),height:e.height}},Cd={rounds:[],round:null,subTasks:[],subTasksByRound:{},loading:!1},tr={padding:"1px 6px",marginRight:6,border:"1px solid #e0e0e0",borderRadius:4,background:"#fafafa",fontSize:11,fontFamily:"monospace",color:"#595959"},Ms="axiom.trainingCanvas.guideDismissed",Sd=()=>{try{return typeof window<"u"&&window.localStorage?.getItem(Ms)==="1"}catch{return!1}},Ad=e=>{try{window.localStorage?.setItem(Ms,e?"1":"0")}catch{}},Br="axiom.trainingCanvas.layout",Pd=["copilot","learning","evaluation"],Es=["copilot","learning","evaluation"],Ed=new Set(Ja),Dd=e=>{if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.x=="number"&&Number.isFinite(t.x)&&typeof t.y=="number"&&Number.isFinite(t.y)},Ds=()=>{try{if(typeof window>"u")return null;let e=window.localStorage?.getItem(Br);if(!e)return null;let t=JSON.parse(e);if(typeof t!="object"||t===null)return null;let n=t;if(n.version!==1)return null;let o={};if(typeof n.origins=="object"&&n.origins!==null)for(let[r,i]of Object.entries(n.origins))Dd(i)&&(o[r]=i);return{version:1,pinned:Array.isArray(n.pinned)?n.pinned.filter(r=>typeof r=="string"):[],origins:o}}catch{return null}},Ls=(e,t)=>{try{let n={version:1,pinned:[...e],origins:t};window.localStorage?.setItem(Br,JSON.stringify(n))}catch{}},Ld=()=>{try{window.localStorage?.removeItem(Br)}catch{}},Ns=({graphDefinition:e,onSelectNode:t,assistantId:n,assistantName:o,workspaceId:r,onRemoveNode:i,initialMessageRequest:l,onInitialMessageSubmitted:p,projectId:d,onProjectChange:a,onLearningStarted:v,onToolActivity:g,learningTasks:u,onLearningRefresh:f,evalTick:s,evalData:y,hudTopOffset:k,copilotTemporarilyHidden:h,onOpenArchitect:m,architectOpenSignal:w=0,architectRestoreFocusRef:I})=>{let[P,S,$]=Rn([]),E=W(),[x,M,de]=In([]),[X,V]=(0,q.useState)(null),pe=xs(),A=ko(),G=(0,q.useRef)(!1),[F,Q]=(0,q.useState)(!Sd()),[oe,N]=(0,q.useState)(null),B=(0,q.useRef)(null),me=(0,q.useRef)({onInitialMessageSubmitted:p,onToolActivity:g,onLearningStarted:v});me.current={onInitialMessageSubmitted:p,onToolActivity:g,onLearningStarted:v};let[ee,ke]=(0,q.useState)(()=>{let T=Ds(),c=T?T.pinned:pe?[]:Es,R=new Set;for(let D of c)Pd.includes(D)&&R.add(D);return R}),[he,O]=(0,q.useState)(()=>{let T={};for(let[c,R]of Object.entries(Ds()?.origins??{}))Ed.has(c)&&(T[c]=R);return T}),[ne,De]=(0,q.useState)(null),j=(0,q.useRef)(ee);j.current=ee;let _=(0,q.useRef)(he);_.current=he;let ie=(0,q.useCallback)(T=>{let c=new Set(j.current);c.has(T)?(c.delete(T),De(R=>R===T?null:R)):c.add(T),j.current=c,ke(c),Ls([...c],_.current)},[]),le=(0,q.useRef)(null),[L,Le]=(0,q.useState)(()=>({width:typeof window>"u"?1200:window.innerWidth,height:typeof window>"u"?800:window.innerHeight}));(0,q.useEffect)(()=>{let T=le.current;if(!T||typeof ResizeObserver>"u")return;let c=()=>{let D=T.getBoundingClientRect();Le({width:D.width,height:D.height})},R=new ResizeObserver(c);return R.observe(T),c(),()=>R.disconnect()},[]);let be=(0,q.useMemo)(()=>as(L.width,L.height,ee),[L,ee]),Ie=On({assistantId:n??"",initialMessageRequest:l,onInitialMessageSubmitted:T=>me.current.onInitialMessageSubmitted?.(T)}),Ee=(0,q.useCallback)(T=>{N(T),B.current!==null&&window.clearTimeout(B.current),B.current=window.setTimeout(()=>N(null),700)},[]);(0,q.useEffect)(()=>()=>{B.current!==null&&window.clearTimeout(B.current)},[]);let[Ne,rt]=(0,q.useState)(null),[ze,tt]=(0,q.useState)(null),[Oe,mt]=(0,q.useState)(null),kt=(0,q.useCallback)(T=>mt(T.id),[]),At=(0,q.useCallback)(()=>mt(null),[]),Ge=(0,q.useCallback)(T=>tt(T),[]),an=(0,q.useCallback)((T,c,R)=>me.current.onLearningStarted?.(T,c,R),[]),{suites:sn}=Tn(y.evalProjectId??""),ln=sn.map(T=>`${T.name}:${T.caseCount??0}`).join("|"),Bt=(0,q.useMemo)(()=>{let T={};for(let c of sn)T[c.name]=c.caseCount??0;return T},[ln]),wt=(0,q.useMemo)(()=>y.suiteNames.map(T=>({id:`suite:${T}`,type:"eval",label:T,description:E("governance.testing.caseCount",{count:Bt[T]??0})})),[y.suiteNames,Bt,E]),Ze=(0,q.useMemo)(()=>ra(e,{includeEmptyGroups:!0,t:E}),[e,E]),xt=(0,q.useMemo)(()=>({zone:ws,config:la,agent:sa,copilot:Is,testingPanel:Ss,testingBadge:As,learningHeader:ys,learningTask:Qo,learningRoundRoot:Yo}),[]),bn=Mi(T=>T.transform[2]),Zt=(0,q.useRef)("overview"),K=Cs(bn,Zt.current);Zt.current=K;let ye=u??Cd,Xe=(0,q.useMemo)(()=>{let T=new Map(Ze.groups.map(R=>[R.id,R])),c={};for(let R of Ze.groups)T.get(R.id)&&(c[R.id]=Math.max($o,56+R.items.length*30));return c},[Ze.groups]),Je=(0,q.useMemo)(()=>y.suiteNames.length>0?Math.max($o,56+y.suiteNames.length*30):0,[y.suiteNames]),Ke=(0,q.useMemo)(()=>Nr(ye,Ne),[ye,Ne]),Pt=(0,q.useMemo)(()=>ms(Ke,ze),[Ke,ze]),nt=(0,q.useMemo)(()=>ls({groupHeights:Xe,suitesGroupHeight:Je,learningDagBBox:Pt}),[Xe,Je,Pt]),we=(0,q.useMemo)(()=>Id(nt,he),[nt,he]),Fn=(0,q.useRef)({}),Et=(0,q.useRef)({}),_n=(0,q.useRef)(null),[dt,oo]=(0,q.useState)({x:0,y:0}),ro=(0,q.useMemo)(()=>{let T=we.learning;return dt.x===0&&dt.y===0?T:{...T,x:T.x+dt.x,y:T.y+dt.y}},[we,dt]),Vt=(0,q.useCallback)((T,c)=>{T.startsWith("zone:")&&(_n.current=T,Et.current[T]={x:c.x,y:c.y})},[]),io=(0,q.useCallback)((T,c)=>{if(!T.startsWith("zone:"))return;let R=Et.current[T],D={x:c.x,y:c.y};if(Et.current[T]=D,!R)return;let ce=D.x-R.x,qe=D.y-R.y;if(ce===0&&qe===0)return;let yt=Fn.current[T]??[];T==="zone:learning"&&oo(Re=>({x:Re.x+ce,y:Re.y+qe})),yt.length>0&&S(Re=>Re.map(Dt=>Dt.position&&yt.indexOf(Dt.id)>=0?{...Dt,position:{x:Dt.position.x+ce,y:Dt.position.y+qe}}:Dt))},[S]),rr=(0,q.useCallback)((T,c)=>{if(!T.startsWith("zone:"))return;_n.current=null,delete Et.current[T],T==="zone:learning"&&oo({x:0,y:0});let R=Object.keys(_.current).length===0?{"zone:config":{x:nt.config.x,y:nt.config.y},"zone:copilot":{x:nt.copilot.x,y:nt.copilot.y},"zone:learning":{x:nt.learning.x,y:nt.learning.y},"zone:testing":{x:nt.testing.x,y:nt.testing.y}}:{..._.current};R[T]={x:c.x,y:c.y},_.current=R,O(R),Ls([...j.current],R)},[nt]),ir=(0,q.useCallback)(()=>{Ld();let T=pe?new Set:new Set(Es);j.current=T,ke(T),De(null),_.current={},O({})},[pe]),ao=vs({learningTasks:ye,selectedRoundId:Ne,zone:ro,onSelectRound:rt,onTaskClick:kt,onFocusTask:Ge,focusTaskId:ze,onLearningStarted:an,agentId:n??"",projectId:d}),jt=Oe?Mr(ye,Oe):null;(0,q.useEffect)(()=>{Oe&&!jt&&mt(null)},[Oe,jt]),(0,q.useEffect)(()=>{tt(null)},[Ne]),(0,q.useEffect)(()=>{ze&&!Mr(ye,ze)&&tt(null)},[ze,ye]),(0,q.useEffect)(()=>{let T=Ze.groups,c=new Map(T.map(ue=>[ue.id,ue])),R=[],D=!!n&&!pe,ce=we.config,qe=we.testing,yt=ee.has("copilot"),Re=ee.has("learning"),Dt=ee.has("evaluation"),Wn=[we.config,we.testing,we.learning,we.copilot].filter(ue=>ue.id!==we.copilot.id||D&&!yt).filter(ue=>ue.id!==we.learning.id||!!n&&!Re).filter(ue=>ue.id!==we.testing.id||!Dt).map(ue=>{let $e=Td[ue.id];return{id:ue.id,type:"zone",position:{x:ue.x,y:ue.y},data:{label:ue.label,width:ue.width,height:ue.height,pinnable:$e!==void 0,pinned:$e!==void 0&&ee.has($e),onPinToggle:$e!==void 0?()=>ie($e):void 0},draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1,zIndex:-1,style:{pointerEvents:"none"}}});R.push(...Wn);let $r={[we.config.id]:[],[we.testing.id]:[],[we.learning.id]:[],[we.copilot.id]:[]},zn=(ue,$e)=>{let Bn=$r[ue];Bn&&Bn.indexOf($e)<0&&Bn.push($e)};zn(we.config.id,Ze.agent.id),R.push({id:Ze.agent.id,type:"agent",draggable:!1,data:{node:Ze.agent,onClick:()=>t?.(Ze.agent)},position:ts(ce)});for(let ue of T){let $e=c.get(ue.id);if(!$e)continue;let Bn=Xe[ue.id]??Math.max($o,56+ue.items.length*30);zn(we.config.id,ue.id),R.push({id:ue.id,type:"config",draggable:!1,data:{group:$e,onClick:$s=>t?.($s),onRemove:i},position:ns(ce,ue.id,Bn)})}ee.has("evaluation")||(K==="badge"?y.suiteNames.length>0&&(zn(we.testing.id,"testing:badge"),R.push({id:"testing:badge",type:"testingBadge",draggable:!1,data:{score:y.score,suiteCount:y.suiteNames.length},position:os(qe,Xn,Jn)})):(zn(we.testing.id,"testing:panel"),R.push({id:"testing:panel",type:"testingPanel",draggable:!1,data:{agentId:n??"",runs:y.runs,width:qe.width-ht*2,height:qe.height-ht*2,suites:wt,onSuiteClick:ue=>t?.(ue)},position:{x:qe.x+Sr.x,y:qe.y+Sr.y}}))),D&&!ee.has("copilot")&&(zn(we.copilot.id,no),R.push({id:no,type:"copilot",draggable:!1,data:{assistantId:n,assistantName:o??"",workspaceId:r,projectId:d,initialMessageRequest:l??null,onInitialMessageSubmitted:ue=>me.current.onInitialMessageSubmitted?.(ue),onToolCompleted:ue=>me.current.onToolActivity?.(ue),temporarilyHidden:h??!1,openSignal:w,width:we.copilot.width,height:we.copilot.height,center:{x:we.copilot.x+we.copilot.width/2,y:we.copilot.y+we.copilot.height/2}},position:{x:we.copilot.x,y:we.copilot.y}})),Fn.current=$r;for(let ue of Wn)_n.current!==ue.id&&(Et.current[ue.id]={x:ue.position.x,y:ue.position.y});S(R);let Hr=(ue,$e)=>Math.abs(ue)>Math.abs($e)?ue<0?"left":"right":$e<0?"top":"bottom";M(T.map(ue=>{let $e=Ho[ue.id]??{x:0,y:0};return{id:`e${Ze.agent.id}-${ue.id}`,source:Ze.agent.id,target:ue.id,sourceHandle:Hr($e.x,$e.y),targetHandle:Hr(-$e.x,-$e.y),style:{stroke:"#c7c7c7",strokeWidth:1.2},type:"bezier"}}))},[Ze,S,M,i,n,pe,r,d,o,h,w,l?.requestId,l?.content,K,wt,y.score,y.suiteNames,y.runs.map(T=>T.id).join(","),we,Xe,ee,ie]);let so=Oi();(0,q.useEffect)(()=>{if(!so||G.current)return;G.current=!0;let T=A.getNodes().filter(c=>!c.id.startsWith("zone:"));A.fitView({padding:.2,nodes:T}).then(c=>{c&&A.getZoom()<es&&A.fitView({padding:.2,nodes:A.getNodes().filter(R=>R.type==="agent"||R.type==="config")})})},[so,A]),(0,q.useEffect)(()=>{let T=[["1","zone:config","config"],["2","zone:learning","learning"],["3","zone:testing","testing"],["4","zone:copilot","copilot"]],c=R=>{if(!(R.ctrlKey||R.metaKey))return;let D=T.find(([yt])=>R.key===yt);if(!D)return;let ce=R.target;if(ce&&(ce.tagName==="INPUT"||ce.tagName==="TEXTAREA"||ce.tagName==="SELECT"||ce.isContentEditable))return;R.preventDefault();let qe=Ps[D[2]];qe&&ee.has(qe)||(Ee(D[2]),A.fitView({padding:.4,duration:400,nodes:[{id:D[1]}]}))};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[A,Ee,ee]);let ar=(0,q.useMemo)(()=>{let T=P.some(c=>c.id===X)?X:null;return T===null?P:P.map(c=>{if(c.id===no||c.id.startsWith("zone:")||c.id.startsWith("testing:"))return c;let R=c.id===T||x.some(D=>D.source===T&&D.target===c.id||D.target===T&&D.source===c.id);return{...c,style:{opacity:R?1:.4,transition:"opacity 0.2s ease"}}})},[P,x,X]);return(0,se.jsxs)("div",{ref:le,style:{width:"100%",height:"100%",position:"relative",background:"#fafafa"},children:[(0,se.jsx)("style",{children:`.axiom-training-canvas .react-flow__pane { cursor: default; }
234
234
  .axiom-training-canvas .react-flow__pane.dragging { cursor: grabbing; }
235
235
  @keyframes zone-dot-pulse { 0% { box-shadow: 0 0 0 0 rgba(99,102,241,0.5); } 100% { box-shadow: 0 0 0 8px rgba(99,102,241,0); } }
236
236
  .zone-dot-active { animation: zone-dot-pulse 0.7s ease-out; }
237
- .zone-help-toggle:hover { color: #6366f1; }`}),(0,se.jsxs)(Oi,{className:"axiom-training-canvas",nodes:[...sr,...ee.has("learning")?[]:so.nodes],edges:[...x,...ee.has("learning")?[]:so.edges],onNodesChange:$,onEdgesChange:de,onNodeDragStart:(T,p)=>Qt(p.id,p.position),onNodeDrag:(T,p)=>ao(p.id,p.position),onNodeDragStop:(T,p)=>ir(p.id,p.position),onNodeMouseEnter:(T,p)=>{p.id===oo||p.id.startsWith("zone:")||p.id.startsWith("testing:")||p.type?.startsWith("learning")||V(p.id)},onNodeMouseLeave:()=>V(null),onPaneClick:()=>t?.(null),onNodeClick:(T,p)=>{if(p.type!=="learningTask"&&p.type!=="learningRoundRoot")return;p.data.onTaskClick?.()},nodeTypes:xt,children:[(0,se.jsx)(_i,{color:"#eee",gap:20}),(0,se.jsx)(zi,{})]}),(0,se.jsx)(ct,{open:jt!==null,width:860,title:jt?.task.title??"",onClose:At,bodyStyle:{padding:0,overflow:"hidden"},children:jt&&(0,se.jsx)(xr,{task:jt.task,relatedTasks:jt.related,onClose:At,onRefresh:f,height:"100%"})}),(pe?["copilot","learning","evaluation"]:["copilot"]).map(T=>{let p=be[T];return p?(0,se.jsxs)(ct,{open:!0,width:p.width,left:p.left,top:p.top,height:p.height,escapeEnabled:!1,zIndex:20,title:E(Cd[T]),onClose:()=>ie(T),bodyStyle:{padding:0},children:[T==="copilot"&&n&&(0,se.jsx)("div",{style:{width:"100%",height:"100%",userSelect:"text",WebkitUserSelect:"text"},children:(0,se.jsx)(Sn,{defaultWorkspaceId:r??void 0,defaultProjectId:d??void 0,children:(0,se.jsx)(An,{workflowContext:{id:n,name:o??"",type:"agent"},onToolCompleted:I=>me.current.onToolActivity?.(I),initialMessageRequest:Ce.effectivePendingRequest,attemptedInitialMessageRequestIdsRef:Ce.attemptedRequestIdsRef,rawInitialMessage:!0,showHeader:!1,onInitialMessageSubmitted:Ce.handleInitialMessageSubmitted},n)},`${r??"default"}:${d??"default"}`)}),T==="learning"&&(0,se.jsx)(Br,{learningTasks:ye,selectedRoundId:Ne,onSelectRound:rt,agentId:n??"",projectId:d,onTaskClick:kt,height:"100%"}),T==="evaluation"&&(0,se.jsx)(mn,{agentId:n??"",runs:v.runs})]},T):null}),!pe&&(()=>{let T=ne;if(T!=="learning"&&T!=="evaluation")return null;let p=ds(L.width,L.height,T,ee.has("copilot"));return(0,se.jsx)(ct,{open:!0,width:p.width,left:p.left,top:p.top,height:p.height,escapeEnabled:!1,zIndex:20,title:E(T==="evaluation"?"governance.overlay.evalQuality":"governance.canvas.dock.learningTasks"),onClose:()=>De(null),bodyStyle:{padding:0},children:T==="evaluation"?(0,se.jsx)(mn,{agentId:n??"",runs:v.runs}):(0,se.jsx)(Br,{learningTasks:ye,selectedRoundId:Ne,onSelectRound:rt,agentId:n??"",projectId:d,onTaskClick:kt,height:"100%"})})})(),n&&(0,se.jsx)(Ko,{assistantId:n,projectId:d,onProjectChange:a,onLearningStarted:y,learningTasks:u,topOffset:k,onLearningRefresh:f,evalTick:s,showLearning:!1,variant:"selector",children:!pe&&(0,se.jsx)(xs,{pinned:ee,expanded:ne,onToggleExpand:T=>De(p=>p===T?null:T),onUnpin:ie,score:v.score,passRate:v.passRate,learningTasks:ye,selectedRoundId:Ne,onSelectRound:rt,onTaskClick:kt,onLearningStarted:sn,onLearningRefresh:f,agentId:n,projectId:d})}),n&&pe&&(0,se.jsx)(tr,{assistantId:n,assistantName:o??"",workspaceId:r,projectId:d,contextType:"agent",initialMessageRequest:l,onInitialMessageSubmitted:c,onToolCompleted:T=>g?.(T),temporarilyHidden:h,openSignal:w,restoreFocusRef:C,showMobileTrigger:m===void 0}),F&&(0,se.jsxs)("div",{"data-testid":"zone-help-card",style:{position:"absolute",bottom:58,left:"50%",transform:"translateX(-50%)",zIndex:13,width:300,padding:"12px 14px",background:"#fff",borderRadius:12,border:"1px solid #f0f0f0",boxShadow:"0 4px 16px rgba(0,0,0,0.10)"},children:[(0,se.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,se.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"#262626"},children:E("governance.canvas.quickNav.title")}),(0,se.jsx)("span",{"data-testid":"zone-help-close",onClick:()=>{Ed(!0),Q(!1)},style:{cursor:"pointer",color:"#8c8c8c",fontSize:12,lineHeight:1},children:"\u2715"})]}),(0,se.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,fontSize:12,color:"#595959"},children:[(0,se.jsxs)("div",{children:[(0,se.jsx)("span",{style:nr,children:E("governance.canvas.quickNav.kbdShortcut")})," ",E("governance.canvas.quickNav.focusZone")]}),(0,se.jsxs)("div",{children:[(0,se.jsx)("span",{style:nr,children:E("governance.canvas.quickNav.clickDot")})," ",E("governance.canvas.quickNav.focusZone")]}),(0,se.jsxs)("div",{children:[(0,se.jsx)("span",{style:nr,children:E("governance.canvas.quickNav.dragLabel")})," ",E("governance.canvas.quickNav.moveBlock")]}),(0,se.jsxs)("div",{children:[(0,se.jsx)("span",{style:nr,children:E("governance.canvas.quickNav.pinLabel")})," ",E("governance.canvas.quickNav.pinHelp")]}),(0,se.jsx)("div",{style:{color:"#8c8c8c"},children:E("governance.canvas.quickNav.legend")})]}),(0,se.jsx)("div",{style:{marginTop:8,paddingTop:8,borderTop:"1px solid #f0f0f0",display:"flex",justifyContent:"flex-end",gap:8},children:(0,se.jsx)("button",{type:"button","data-testid":"layout-reset",onClick:ar,style:{cursor:"pointer",border:"1px solid #e0e0e0",borderRadius:4,background:"#fafafa",padding:"2px 10px",fontSize:12,color:"#595959"},children:E("governance.canvas.resetLayout")})})]}),(0,se.jsxs)("div",{"data-testid":"zone-quick-nav",style:{position:"absolute",bottom:16,left:"50%",transform:"translateX(-50%)",zIndex:12,display:"flex",gap:10,padding:"8px 14px",background:"#fff",borderRadius:9999,border:"1px solid #f0f0f0",boxShadow:"0 2px 12px rgba(0,0,0,0.08)"},children:[[["config","governance.canvas.dot.config"],["learning","governance.canvas.dot.learning"],["testing","governance.canvas.dot.testing"],["copilot","governance.canvas.dot.copilot"]].map(([T,p])=>{let I=Ds[T],D=I!==void 0&&ee.has(I);return(0,se.jsx)("button",{type:"button","aria-label":E("governance.canvas.fitZoneAria",{zone:E(p)}),"data-testid":`zone-dot-${T}`,className:oe===T?"zone-dot-active":void 0,onClick:()=>{Ee(T),A.fitView({padding:.4,duration:400,nodes:[{id:we[T].id}]})},style:{width:10,height:10,borderRadius:"9999px",border:"none",padding:0,cursor:"pointer",background:oe===T||D?"#6366f1":"#d9d9d9"}},T)}),(0,se.jsx)("span",{"aria-hidden":"true",style:{width:1,alignSelf:"stretch",background:"#f0f0f0"}}),(0,se.jsx)("span",{"data-testid":"zone-help-toggle",className:"zone-help-toggle","aria-label":E("governance.canvas.helpToggleAria"),onClick:()=>Q(T=>!T),style:{cursor:"pointer",color:"#8c8c8c",fontSize:12,lineHeight:"10px",userSelect:"none"},children:"\u24D8"})]})]})},Od=e=>{let t=Bo(e.assistantId??""),n=(0,q.useRef)(e.evalTick??0);return(0,q.useEffect)(()=>{let o=e.evalTick??0,r=n.current;n.current=o,o>0&&o!==r&&t.refresh().catch(()=>{})},[e.evalTick]),(0,se.jsx)(Fs,{...e,evalData:t})},Fd=({evalData:e,...t})=>(0,se.jsx)(Fs,{...t,evalData:e}),_s=({evalData:e,...t})=>(0,se.jsx)(xo,{children:e?(0,se.jsx)(Fd,{...t,evalData:e}):(0,se.jsx)(Od,{...t})});var or=R(Ie());var Ye=R(W()),{Text:Gr}=Be;function _d(e){let t=null;if(typeof e=="string")try{t=JSON.parse(e)}catch{return null}else e&&typeof e=="object"&&(t=e);if(!t||typeof t.workflowYaml!="string")return null;try{return Hi(t.workflowYaml)}catch{return null}}var zs=({graphDefinition:e,assistantId:t,assistantName:n,workspaceId:o,description:r,initialMessageRequest:i,onInitialMessageSubmitted:l,projectId:c,onProjectChange:d,onLearningStarted:a,onToolActivity:y,learningTasks:g,onLearningRefresh:u,evalTick:f,hideTitleBar:s=!1,hudTopOffset:v,copilotTemporarilyHidden:k,onOpenArchitect:h,architectOpenSignal:m=0,architectRestoreFocusRef:w})=>{let C=z(),[P,S]=(0,or.useState)(!1),$=(0,or.useMemo)(()=>_d(e),[e]);return(0,Ye.jsxs)("div",{style:{width:"100%",height:"100%",position:"relative",background:"#fafafa"},children:[(0,Ye.jsx)(xo,{children:(0,Ye.jsx)("div",{style:{width:"100%",height:"100%"},children:$?(0,Ye.jsx)($i,{dsl:$}):(0,Ye.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,Ye.jsx)(Gr,{type:"secondary",children:C("governance.workflow.noDsl")})})})}),!s&&(0,Ye.jsxs)("div",{style:{position:"absolute",top:12,right:12,zIndex:10,display:"flex",alignItems:"center",gap:6,height:32,padding:"0 14px",background:"rgba(255,255,255,0.95)",borderRadius:10,boxShadow:"0 2px 12px rgba(0,0,0,0.08)",border:"1px solid #f0f0f0"},children:[(0,Ye.jsx)(mo,{size:16,color:"#6366f1"}),(0,Ye.jsx)(Gr,{strong:!0,style:{fontSize:13},children:n}),(0,Ye.jsx)(go,{style:{color:"#6366f1",cursor:"pointer",fontSize:15},onClick:()=>S(!0)})]}),(0,Ye.jsx)(Ko,{assistantId:t,projectId:c,onProjectChange:d,onLearningStarted:a,learningTasks:g,topOffset:v,onLearningRefresh:u,evalTick:f}),(0,Ye.jsx)(tr,{assistantId:t,assistantName:n,workspaceId:o,projectId:c,contextType:"workflow",label:C("governance.workflow.builderLabel"),initialMessageRequest:i,onInitialMessageSubmitted:l,onToolCompleted:E=>y?.(E),temporarilyHidden:k,openSignal:m,restoreFocusRef:w,showMobileTrigger:h===void 0}),(0,Ye.jsx)(ze,{title:n,open:P,onCancel:()=>S(!1),footer:null,width:"85vw",centered:!0,styles:{body:{maxHeight:"calc(85vh - 120px)",overflow:"auto",padding:"12px 24px 24px"}},children:r?(0,Ye.jsx)(Tn,{content:r}):(0,Ye.jsx)(Gr,{type:"secondary",children:C("governance.detail.noDescription")})})]})};var Ue=R(Ie());var H=R(W()),{Text:Kr}=Be;function Ws(e){switch(e.type){case"capability":case"agent":return 560;case"eval":return 860;default:return 400}}function Bs(e){return e.label}var zd=({label:e,confirmLabel:t,onConfirm:n})=>{let[o,r]=(0,Ue.useState)(!1);return o?(0,H.jsx)(U,{danger:!0,size:"small",onClick:n,children:t}):(0,H.jsx)(U,{danger:!0,size:"small",type:"text",onClick:()=>r(!0),children:e})},Zt=({title:e,children:t})=>(0,H.jsxs)("div",{style:{marginBottom:16},children:[(0,H.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"#999",marginBottom:6},children:e}),t]}),Wd=({node:e})=>{let{get:t}=et(),n=z(),[o,r]=(0,Ue.useState)(null),[i,l]=(0,Ue.useState)(!0);if((0,Ue.useEffect)(()=>{let a=!1;return l(!0),t("/api/tools").then(y=>{if(a)return;let g=y.data?.records?.find(u=>u.name===e.label)??null;r(g)}).catch(()=>!a&&r(null)).finally(()=>!a&&l(!1)),()=>{a=!0}},[t,e.label]),i)return(0,H.jsx)(Tt,{size:"small"});if(!o)return(0,H.jsx)(Kr,{type:"secondary",style:{fontSize:13},children:n("governance.nodeDock.toolUnavailable")});let c=o.schema?.properties??{},d=new Set(o.schema?.required??[]);return(0,H.jsxs)(H.Fragment,{children:[o.description&&(0,H.jsx)(Zt,{title:n("governance.nodeDock.description"),children:o.description}),Object.keys(c).length>0&&(0,H.jsx)(Zt,{title:n("governance.nodeDock.parameters"),children:Object.entries(c).map(([a,y])=>(0,H.jsxs)("div",{style:{display:"flex",gap:8,fontSize:12,padding:"4px 0",alignItems:"baseline"},children:[(0,H.jsxs)("span",{style:{color:"#333",fontWeight:600},children:[a,d.has(a)&&(0,H.jsx)("span",{style:{color:"#ef4444"},children:" *"})]}),(0,H.jsx)("span",{style:{color:"#999"},children:y.type??"any"}),y.description&&(0,H.jsx)("span",{style:{color:"#666",flex:1},children:y.description})]},a))})]})},Bd=({node:e})=>{let{get:t}=et(),n=z(),[o,r]=(0,Ue.useState)(null),[i,l]=(0,Ue.useState)(!0);return(0,Ue.useEffect)(()=>{let c=!1;return l(!0),t(`/api/assistants/${e.label}`).then(d=>!c&&r(d.data??null)).catch(()=>!c&&r(null)).finally(()=>!c&&l(!1)),()=>{c=!0}},[t,e.label]),i?(0,H.jsx)(Tt,{size:"small"}):o?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Zt,{title:n("governance.nodeDock.description"),children:o.description||n("governance.nodeDock.noDescription")}),o.graphDefinition?.modelKey&&(0,H.jsx)(Zt,{title:n("governance.nodeDock.model"),children:o.graphDefinition.modelKey})]}):(0,H.jsx)(Kr,{type:"secondary",style:{fontSize:13},children:n("governance.nodeDock.subagentUnavailable")})},jd=({node:e})=>{let{get:t}=et(),n=z(),[o,r]=(0,Ue.useState)(null),[i,l]=(0,Ue.useState)(!0);return(0,Ue.useEffect)(()=>{let c=!1;return l(!0),t(`/api/skills/${e.label}`).then(d=>!c&&r(d.data??null)).catch(()=>!c&&r(null)).finally(()=>!c&&l(!1)),()=>{c=!0}},[t,e.label]),i?(0,H.jsx)(Tt,{size:"small"}):o?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Zt,{title:n("governance.nodeDock.description"),children:o.description||n("governance.nodeDock.noDescription")}),o.content&&(0,H.jsx)(Zt,{title:n("governance.nodeDock.content"),children:(0,H.jsx)(Tn,{content:o.content})})]}):(0,H.jsx)(Kr,{type:"secondary",style:{fontSize:13},children:n("governance.nodeDock.skillUnavailable")})},Gd=({node:e,graphDefinition:t,onSaveGraph:n})=>{let{config:o}=uo(),r=z(),{middlewareTypes:i}=Po(o.middlewareTypesEndpoint),l=e.config??{},[c,d]=(0,Ue.useState)({id:l.type??e.id,type:l.type??"unknown",name:l.name??e.label,description:l.description??"",enabled:l.enabled!==!1,config:l.config??{},allowedTools:l.allowedTools}),[a,y]=(0,Ue.useState)(!1),g=(o.availableMiddlewareTypes||i)?.find(f=>f.type===c.type),u=async()=>{if(n){y(!0);try{let f=typeof t=="object"&&t!==null?t:{},s=Array.isArray(f.middleware)?f.middleware:[],v={...l,name:c.name,description:c.description,enabled:c.enabled,config:c.config,...c.allowedTools!==void 0?{allowedTools:c.allowedTools}:{}},k=s.some(h=>h.type===c.type)?s.map(h=>h.type===c.type?v:h):[...s,v];await n({...f,middleware:k}),at.success(r("governance.nodeDock.capabilitySaved"))}catch{at.error(r("governance.nodeDock.capabilitySaveFailed"))}finally{y(!1)}}};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Eo,{middleware:c,middlewareType:g,onToggle:()=>d(f=>({...f,enabled:!f.enabled})),onConfigChange:f=>d(s=>({...s,config:{...s.config,...f}})),onAllowedToolsChange:f=>d(s=>({...s,allowedTools:f}))}),(0,H.jsx)("div",{style:{marginTop:16,textAlign:"right"},children:(0,H.jsx)(U,{type:"primary",size:"small",loading:a,onClick:()=>void u(),children:r("common.save")})})]})},Kd=({graphDefinition:e,onSaveGraph:t})=>{let n=z(),o=typeof e=="object"&&e!==null?e:{},[r,i]=(0,Ue.useState)(o.description??""),[l,c]=(0,Ue.useState)(o.prompt??""),[d,a]=(0,Ue.useState)(o.modelKey??""),[y,g]=(0,Ue.useState)(!1),u=async()=>{if(t){g(!0);try{await t({...o,description:r,prompt:l,modelKey:d}),at.success(n("governance.nodeDock.agentSaved"))}catch{at.error(n("governance.detail.saveFailed"))}finally{g(!1)}}};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Zt,{title:n("governance.nodeDock.description"),children:(0,H.jsx)(Me.TextArea,{"aria-label":n("governance.nodeDock.description"),rows:2,value:r,onChange:f=>i(f.target.value)})}),(0,H.jsx)(Zt,{title:n("governance.nodeDock.model"),children:(0,H.jsx)(Me,{"aria-label":n("governance.nodeDock.model"),size:"small",value:d,onChange:f=>a(f.target.value)})}),(0,H.jsx)(Zt,{title:n("governance.nodeDock.prompt"),children:(0,H.jsx)(Me.TextArea,{"aria-label":n("governance.nodeDock.prompt"),rows:8,value:l,onChange:f=>c(f.target.value)})}),(0,H.jsx)("div",{style:{textAlign:"right"},children:(0,H.jsx)(U,{type:"primary",size:"small",loading:y,onClick:()=>void u(),children:n("common.save")})})]})},js=({node:e,graphDefinition:t,assistantId:n,onRemoveNode:o,onSaveGraph:r})=>{let i=z(),l=e.type==="tool"||e.type==="subagent"||e.type==="skill";return(0,H.jsxs)("div",{children:[(0,H.jsx)("div",{style:{marginBottom:12},children:(0,H.jsx)(He,{bordered:!1,style:{margin:0,fontSize:10},children:i(Fo[e.type])})}),e.type==="tool"&&(0,H.jsx)(Wd,{node:e},e.id),e.type==="subagent"&&(0,H.jsx)(Bd,{node:e},e.id),e.type==="skill"&&(0,H.jsx)(jd,{node:e},e.id),e.type==="capability"&&(0,H.jsx)(Gd,{node:e,graphDefinition:t,onSaveGraph:r},e.id),e.type==="agent"&&(0,H.jsx)(Kd,{graphDefinition:t,onSaveGraph:r},e.id),e.type==="eval"&&n&&(0,H.jsx)(Lo,{assistantId:n},e.id),l&&o&&(0,H.jsx)("div",{style:{marginTop:16,borderTop:"1px solid #f0f0f0",paddingTop:12},children:(0,H.jsx)(zd,{label:i("governance.nodeDock.removeFromAgent"),confirmLabel:i("governance.nodeDock.confirmRemove"),onConfirm:()=>o(e)})})]})};function Gs(e){let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return}if(!t||typeof t!="object"||Array.isArray(t))return;let n=t.metadata;if(!n||typeof n!="object"||Array.isArray(n))return;let o=n.trainingProjectId;return typeof o=="string"?o:void 0}var Pe=R(Ie());var qd=new Set(["create_agent","update_agent","delete_agent","create_workflow","update_workflow"]),$d=new Set(["manage_task"]),Hd=new Set(["manage_eval","run_eval"]),Ud=new Set(["create_agent","delete_agent"]);function Ks(e){return Ud.has(e)}function qs(e){let t=[];return qd.has(e)&&t.push("config"),$d.has(e)&&t.push("tasks"),Hd.has(e)&&t.push("eval"),t}var Zd=300,qr=()=>({rounds:[],round:null,subTasks:[],subTasksByRound:{},loading:!0}),$r=()=>({config:{error:null,updatedAt:null},tasks:{error:null,updatedAt:null,partial:!1}});function Vd(e,t,n){let o=new Set(n),r=new Map(e.map(c=>[c.id,c])),i=c=>{let d=c.parentId,a=new Set;for(;d&&!a.has(d);){if(o.has(d))return!0;a.add(d),d=r.get(d)?.parentId}return!1},l=new Set(t.map(c=>c.id));return[...t,...e.filter(c=>!l.has(c.id)&&i(c))]}function $s(e){let{agentId:t,projectId:n,onAssistantUpdated:o,onAgentListInvalidated:r}=e,{get:i}=et(),l=`${t}\0${n??""}`,[c,d]=(0,Pe.useState)(()=>({scope:l,value:qr()})),[a,y]=(0,Pe.useState)(()=>({scope:l,value:0})),[g,u]=(0,Pe.useState)(()=>({scope:l,value:$r()})),f=(0,Pe.useRef)({}),s=(0,Pe.useRef)(0),v=(0,Pe.useRef)(null),k=(0,Pe.useRef)(null),h=(0,Pe.useRef)(0),m=(0,Pe.useRef)({}),w=(0,Pe.useRef)(!1),C=(0,Pe.useRef)(l),P=(0,Pe.useRef)({onAssistantUpdated:o,onAgentListInvalidated:r});(0,Pe.useLayoutEffect)(()=>{P.current={onAssistantUpdated:o,onAgentListInvalidated:r}},[o,r]),(0,Pe.useLayoutEffect)(()=>{if(C.current!==l){C.current=l,s.current+=1,h.current+=1,m.current={},v.current=null,k.current=null,w.current=!1;for(let A of Object.values(f.current))A&&clearTimeout(A);f.current={},d({scope:l,value:qr()}),u({scope:l,value:$r()}),y({scope:l,value:0})}},[l]);let S=c.scope===l?c.value:qr(),$=g.scope===l?g.value:$r(),E=a.scope===l?a.value:0,x=A=>{u(G=>G.scope===l?{scope:l,value:A(G.value)}:G)},M=(0,Pe.useCallback)(async()=>{let A=++h.current,G=l;try{let F=await i(`/api/assistants/${t}`);if(A!==h.current||G!==C.current)return;F.success&&F.data?(w.current=!1,P.current.onAssistantUpdated?.(F.data),x(Q=>({...Q,config:{error:null,updatedAt:new Date}}))):(w.current=!1,x(Q=>({...Q,config:{...Q.config,error:new Error("Configuration refresh returned no agent")}})))}catch(F){if(A!==h.current||G!==C.current)return;if(F instanceof Jr&&F.statusCode===404){w.current||P.current.onAgentListInvalidated?.(),w.current=!1,x(oe=>({...oe,config:{...oe.config,error:F}}));return}w.current=!1,console.warn("[useEntityRefresher] config refresh failed",F);let Q=F instanceof Error?F:new Error(String(F));x(oe=>({...oe,config:{...oe.config,error:Q}}))}},[i,t,l]),de=(0,Pe.useCallback)(()=>{let A=v.current;if(A?.scope===l)return A.promise;let G=++s.current,F=l,Q=(async()=>{try{let N=((await i(Ln(t,n))).data??[]).filter(Dn),B={},me=!1;if(await Promise.all(N.map(async ke=>{let he=await Ca(i,ke.id,{projectId:n});me||=he.partial,B[ke.id]=he.partial?Vd(m.current[ke.id]??[],he.tasks,he.incompleteParentIds??[]):he.tasks})),G!==s.current||F!==C.current)return;m.current=Object.fromEntries(N.map(ke=>[ke.id,B[ke.id]??[]]));let ee=N[0]??null;d({scope:l,value:{rounds:N,round:ee,subTasks:ee?B[ee.id]??[]:[],subTasksByRound:B,loading:!1}}),x(ke=>({...ke,tasks:{error:null,updatedAt:new Date,partial:me}}))}catch(oe){if(console.warn("[useEntityRefresher] task refresh failed",oe),G!==s.current||F!==C.current)return;d(B=>B.scope===l?{scope:l,value:{...B.value,loading:!1}}:B);let N=oe instanceof Error?oe:new Error(String(oe));x(B=>({...B,tasks:{...B.tasks,error:N}}))}})().finally(()=>{v.current?.promise===Q&&(v.current=null,k.current===F&&C.current===F&&(k.current=null,X.current.refreshLearningTasks()))});return v.current={scope:l,promise:Q},Q},[i,t,n,l]),X=(0,Pe.useRef)({refreshAgent:M,refreshLearningTasks:de});(0,Pe.useEffect)(()=>{X.current={refreshAgent:M,refreshLearningTasks:de}});let V=(0,Pe.useCallback)((A,G)=>{let F=f.current;F[A]&&clearTimeout(F[A]),F[A]=setTimeout(G,Zd)},[]),pe=(0,Pe.useCallback)(A=>{for(let G of qs(A))G==="config"&&V(G,()=>{Ks(A)&&(w.current=!0,P.current.onAgentListInvalidated?.()),X.current.refreshAgent()}),G==="tasks"&&V(G,()=>{let F=C.current;v.current?.scope===F?k.current=F:X.current.refreshLearningTasks()}),G==="eval"&&V(G,()=>{let F=C.current;y(Q=>Q.scope===F?{scope:F,value:Q.value+1}:Q)})},[V]);return(0,Pe.useEffect)(()=>{de()},[de]),(0,Pe.useEffect)(()=>()=>{for(let A of Object.values(f.current))A&&clearTimeout(A)},[]),{handleToolCompleted:pe,learningTasks:S,refreshLearningTasks:de,refreshAgent:M,freshness:$,evalTick:E}}var Y=R(W()),{Text:Hs}=Be,rr={color:"#4f46e5",background:"#eef2ff"},Qd=`
237
+ .zone-help-toggle:hover { color: #6366f1; }`}),(0,se.jsxs)(Ni,{className:"axiom-training-canvas",nodes:[...ar,...ee.has("learning")?[]:ao.nodes],edges:[...x,...ee.has("learning")?[]:ao.edges],onNodesChange:$,onEdgesChange:de,onNodeDragStart:(T,c)=>Vt(c.id,c.position),onNodeDrag:(T,c)=>io(c.id,c.position),onNodeDragStop:(T,c)=>rr(c.id,c.position),onNodeMouseEnter:(T,c)=>{c.id===no||c.id.startsWith("zone:")||c.id.startsWith("testing:")||c.type?.startsWith("learning")||V(c.id)},onNodeMouseLeave:()=>V(null),onPaneClick:()=>t?.(null),onNodeClick:(T,c)=>{if(c.type!=="learningTask"&&c.type!=="learningRoundRoot")return;c.data.onTaskClick?.()},nodeTypes:xt,children:[(0,se.jsx)(Fi,{color:"#eee",gap:20}),(0,se.jsx)(_i,{})]}),(0,se.jsx)(ct,{open:jt!==null,width:860,title:jt?.task.title??"",onClose:At,bodyStyle:{padding:0,overflow:"hidden"},children:jt&&(0,se.jsx)(wr,{task:jt.task,relatedTasks:jt.related,onClose:At,onRefresh:f,height:"100%"})}),(pe?["copilot","learning","evaluation"]:["copilot"]).map(T=>{let c=be[T];return c?(0,se.jsxs)(ct,{open:!0,width:c.width,left:c.left,top:c.top,height:c.height,escapeEnabled:!1,zIndex:20,title:E(Rd[T]),onClose:()=>ie(T),bodyStyle:{padding:0},children:[T==="copilot"&&n&&(0,se.jsx)("div",{style:{width:"100%",height:"100%",userSelect:"text",WebkitUserSelect:"text"},children:(0,se.jsx)(Cn,{defaultWorkspaceId:r??void 0,defaultProjectId:d??void 0,children:(0,se.jsx)(Sn,{workflowContext:{id:n,name:o??"",type:"agent"},onToolCompleted:R=>me.current.onToolActivity?.(R),initialMessageRequest:Ie.effectivePendingRequest,attemptedInitialMessageRequestIdsRef:Ie.attemptedRequestIdsRef,rawInitialMessage:!0,showHeader:!1,onInitialMessageSubmitted:Ie.handleInitialMessageSubmitted},n)},`${r??"default"}:${d??"default"}`)}),T==="learning"&&(0,se.jsx)(zr,{learningTasks:ye,selectedRoundId:Ne,onSelectRound:rt,agentId:n??"",projectId:d,onTaskClick:kt,height:"100%"}),T==="evaluation"&&(0,se.jsx)(fn,{agentId:n??"",runs:y.runs})]},T):null}),!pe&&(()=>{let T=ne;if(T!=="learning"&&T!=="evaluation")return null;let c=ss(L.width,L.height,T,ee.has("copilot"));return(0,se.jsx)(ct,{open:!0,width:c.width,left:c.left,top:c.top,height:c.height,escapeEnabled:!1,zIndex:20,title:E(T==="evaluation"?"governance.overlay.evalQuality":"governance.canvas.dock.learningTasks"),onClose:()=>De(null),bodyStyle:{padding:0},children:T==="evaluation"?(0,se.jsx)(fn,{agentId:n??"",runs:y.runs}):(0,se.jsx)(zr,{learningTasks:ye,selectedRoundId:Ne,onSelectRound:rt,agentId:n??"",projectId:d,onTaskClick:kt,height:"100%"})})})(),n&&(0,se.jsx)(Go,{assistantId:n,projectId:d,onProjectChange:a,onLearningStarted:v,learningTasks:u,topOffset:k,onLearningRefresh:f,evalTick:s,showLearning:!1,variant:"selector",children:!pe&&(0,se.jsx)(ks,{pinned:ee,expanded:ne,onToggleExpand:T=>De(c=>c===T?null:T),onUnpin:ie,score:y.score,passRate:y.passRate,learningTasks:ye,selectedRoundId:Ne,onSelectRound:rt,onTaskClick:kt,onLearningStarted:an,onLearningRefresh:f,agentId:n,projectId:d})}),n&&pe&&(0,se.jsx)(er,{assistantId:n,assistantName:o??"",workspaceId:r,projectId:d,contextType:"agent",initialMessageRequest:l,onInitialMessageSubmitted:p,onToolCompleted:T=>g?.(T),temporarilyHidden:h,openSignal:w,restoreFocusRef:I,showMobileTrigger:m===void 0}),F&&(0,se.jsxs)("div",{"data-testid":"zone-help-card",style:{position:"absolute",bottom:58,left:"50%",transform:"translateX(-50%)",zIndex:13,width:300,padding:"12px 14px",background:"#fff",borderRadius:12,border:"1px solid #f0f0f0",boxShadow:"0 4px 16px rgba(0,0,0,0.10)"},children:[(0,se.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,se.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"#262626"},children:E("governance.canvas.quickNav.title")}),(0,se.jsx)("span",{"data-testid":"zone-help-close",onClick:()=>{Ad(!0),Q(!1)},style:{cursor:"pointer",color:"#8c8c8c",fontSize:12,lineHeight:1},children:"\u2715"})]}),(0,se.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,fontSize:12,color:"#595959"},children:[(0,se.jsxs)("div",{children:[(0,se.jsx)("span",{style:tr,children:E("governance.canvas.quickNav.kbdShortcut")})," ",E("governance.canvas.quickNav.focusZone")]}),(0,se.jsxs)("div",{children:[(0,se.jsx)("span",{style:tr,children:E("governance.canvas.quickNav.clickDot")})," ",E("governance.canvas.quickNav.focusZone")]}),(0,se.jsxs)("div",{children:[(0,se.jsx)("span",{style:tr,children:E("governance.canvas.quickNav.dragLabel")})," ",E("governance.canvas.quickNav.moveBlock")]}),(0,se.jsxs)("div",{children:[(0,se.jsx)("span",{style:tr,children:E("governance.canvas.quickNav.pinLabel")})," ",E("governance.canvas.quickNav.pinHelp")]}),(0,se.jsx)("div",{style:{color:"#8c8c8c"},children:E("governance.canvas.quickNav.legend")})]}),(0,se.jsx)("div",{style:{marginTop:8,paddingTop:8,borderTop:"1px solid #f0f0f0",display:"flex",justifyContent:"flex-end",gap:8},children:(0,se.jsx)("button",{type:"button","data-testid":"layout-reset",onClick:ir,style:{cursor:"pointer",border:"1px solid #e0e0e0",borderRadius:4,background:"#fafafa",padding:"2px 10px",fontSize:12,color:"#595959"},children:E("governance.canvas.resetLayout")})})]}),(0,se.jsxs)("div",{"data-testid":"zone-quick-nav",style:{position:"absolute",bottom:16,left:"50%",transform:"translateX(-50%)",zIndex:12,display:"flex",gap:10,padding:"8px 14px",background:"#fff",borderRadius:9999,border:"1px solid #f0f0f0",boxShadow:"0 2px 12px rgba(0,0,0,0.08)"},children:[[["config","governance.canvas.dot.config"],["learning","governance.canvas.dot.learning"],["testing","governance.canvas.dot.testing"],["copilot","governance.canvas.dot.copilot"]].map(([T,c])=>{let R=Ps[T],D=R!==void 0&&ee.has(R);return(0,se.jsx)("button",{type:"button","aria-label":E("governance.canvas.fitZoneAria",{zone:E(c)}),"data-testid":`zone-dot-${T}`,className:oe===T?"zone-dot-active":void 0,onClick:()=>{Ee(T),A.fitView({padding:.4,duration:400,nodes:[{id:we[T].id}]})},style:{width:10,height:10,borderRadius:"9999px",border:"none",padding:0,cursor:"pointer",background:oe===T||D?"#6366f1":"#d9d9d9"}},T)}),(0,se.jsx)("span",{"aria-hidden":"true",style:{width:1,alignSelf:"stretch",background:"#f0f0f0"}}),(0,se.jsx)("span",{"data-testid":"zone-help-toggle",className:"zone-help-toggle","aria-label":E("governance.canvas.helpToggleAria"),onClick:()=>Q(T=>!T),style:{cursor:"pointer",color:"#8c8c8c",fontSize:12,lineHeight:"10px",userSelect:"none"},children:"\u24D8"})]})]})},Md=e=>{let t=zo(e.assistantId??""),n=(0,q.useRef)(e.evalTick??0);return(0,q.useEffect)(()=>{let o=e.evalTick??0,r=n.current;n.current=o,o>0&&o!==r&&t.refresh().catch(()=>{})},[e.evalTick]),(0,se.jsx)(Ns,{...e,evalData:t})},Nd=({evalData:e,...t})=>(0,se.jsx)(Ns,{...t,evalData:e}),Os=({evalData:e,...t})=>(0,se.jsx)(wo,{children:e?(0,se.jsx)(Nd,{...t,evalData:e}):(0,se.jsx)(Md,{...t})});var nr=C(Ce());var Ye=C(z()),{Text:jr}=Be;function Od(e){let t=null;if(typeof e=="string")try{t=JSON.parse(e)}catch{return null}else e&&typeof e=="object"&&(t=e);if(!t||typeof t.workflowYaml!="string")return null;try{return $i(t.workflowYaml)}catch{return null}}var Fs=({graphDefinition:e,assistantId:t,assistantName:n,workspaceId:o,description:r,initialMessageRequest:i,onInitialMessageSubmitted:l,projectId:p,onProjectChange:d,onLearningStarted:a,onToolActivity:v,learningTasks:g,onLearningRefresh:u,evalTick:f,hideTitleBar:s=!1,hudTopOffset:y,copilotTemporarilyHidden:k,onOpenArchitect:h,architectOpenSignal:m=0,architectRestoreFocusRef:w})=>{let I=W(),[P,S]=(0,nr.useState)(!1),$=(0,nr.useMemo)(()=>Od(e),[e]);return(0,Ye.jsxs)("div",{style:{width:"100%",height:"100%",position:"relative",background:"#fafafa"},children:[(0,Ye.jsx)(wo,{children:(0,Ye.jsx)("div",{style:{width:"100%",height:"100%"},children:$?(0,Ye.jsx)(qi,{dsl:$}):(0,Ye.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,Ye.jsx)(jr,{type:"secondary",children:I("governance.workflow.noDsl")})})})}),!s&&(0,Ye.jsxs)("div",{style:{position:"absolute",top:12,right:12,zIndex:10,display:"flex",alignItems:"center",gap:6,height:32,padding:"0 14px",background:"rgba(255,255,255,0.95)",borderRadius:10,boxShadow:"0 2px 12px rgba(0,0,0,0.08)",border:"1px solid #f0f0f0"},children:[(0,Ye.jsx)(fo,{size:16,color:"#6366f1"}),(0,Ye.jsx)(jr,{strong:!0,style:{fontSize:13},children:n}),(0,Ye.jsx)(po,{style:{color:"#6366f1",cursor:"pointer",fontSize:15},onClick:()=>S(!0)})]}),(0,Ye.jsx)(Go,{assistantId:t,projectId:p,onProjectChange:d,onLearningStarted:a,learningTasks:g,topOffset:y,onLearningRefresh:u,evalTick:f}),(0,Ye.jsx)(er,{assistantId:t,assistantName:n,workspaceId:o,projectId:p,contextType:"workflow",label:I("governance.workflow.builderLabel"),initialMessageRequest:i,onInitialMessageSubmitted:l,onToolCompleted:E=>v?.(E),temporarilyHidden:k,openSignal:m,restoreFocusRef:w,showMobileTrigger:h===void 0}),(0,Ye.jsx)(We,{title:n,open:P,onCancel:()=>S(!1),footer:null,width:"85vw",centered:!0,styles:{body:{maxHeight:"calc(85vh - 120px)",overflow:"auto",padding:"12px 24px 24px"}},children:r?(0,Ye.jsx)(xn,{content:r}):(0,Ye.jsx)(jr,{type:"secondary",children:I("governance.detail.noDescription")})})]})};var Ue=C(Ce());var H=C(z()),{Text:Gr}=Be;function _s(e){switch(e.type){case"capability":case"agent":return 560;case"eval":return 860;default:return 400}}function Ws(e){return e.label}var Fd=({label:e,confirmLabel:t,onConfirm:n})=>{let[o,r]=(0,Ue.useState)(!1);return o?(0,H.jsx)(U,{danger:!0,size:"small",onClick:n,children:t}):(0,H.jsx)(U,{danger:!0,size:"small",type:"text",onClick:()=>r(!0),children:e})},Ut=({title:e,children:t})=>(0,H.jsxs)("div",{style:{marginBottom:16},children:[(0,H.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"#999",marginBottom:6},children:e}),t]}),_d=({node:e})=>{let{get:t}=et(),n=W(),[o,r]=(0,Ue.useState)(null),[i,l]=(0,Ue.useState)(!0);if((0,Ue.useEffect)(()=>{let a=!1;return l(!0),t("/api/tools").then(v=>{if(a)return;let g=v.data?.records?.find(u=>u.name===e.label)??null;r(g)}).catch(()=>!a&&r(null)).finally(()=>!a&&l(!1)),()=>{a=!0}},[t,e.label]),i)return(0,H.jsx)(Tt,{size:"small"});if(!o)return(0,H.jsx)(Gr,{type:"secondary",style:{fontSize:13},children:n("governance.nodeDock.toolUnavailable")});let p=o.schema?.properties??{},d=new Set(o.schema?.required??[]);return(0,H.jsxs)(H.Fragment,{children:[o.description&&(0,H.jsx)(Ut,{title:n("governance.nodeDock.description"),children:o.description}),Object.keys(p).length>0&&(0,H.jsx)(Ut,{title:n("governance.nodeDock.parameters"),children:Object.entries(p).map(([a,v])=>(0,H.jsxs)("div",{style:{display:"flex",gap:8,fontSize:12,padding:"4px 0",alignItems:"baseline"},children:[(0,H.jsxs)("span",{style:{color:"#333",fontWeight:600},children:[a,d.has(a)&&(0,H.jsx)("span",{style:{color:"#ef4444"},children:" *"})]}),(0,H.jsx)("span",{style:{color:"#999"},children:v.type??"any"}),v.description&&(0,H.jsx)("span",{style:{color:"#666",flex:1},children:v.description})]},a))})]})},Wd=({node:e})=>{let{get:t}=et(),n=W(),[o,r]=(0,Ue.useState)(null),[i,l]=(0,Ue.useState)(!0);return(0,Ue.useEffect)(()=>{let p=!1;return l(!0),t(`/api/assistants/${e.label}`).then(d=>!p&&r(d.data??null)).catch(()=>!p&&r(null)).finally(()=>!p&&l(!1)),()=>{p=!0}},[t,e.label]),i?(0,H.jsx)(Tt,{size:"small"}):o?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Ut,{title:n("governance.nodeDock.description"),children:o.description||n("governance.nodeDock.noDescription")}),o.graphDefinition?.modelKey&&(0,H.jsx)(Ut,{title:n("governance.nodeDock.model"),children:o.graphDefinition.modelKey})]}):(0,H.jsx)(Gr,{type:"secondary",style:{fontSize:13},children:n("governance.nodeDock.subagentUnavailable")})},zd=({node:e})=>{let{get:t}=et(),n=W(),[o,r]=(0,Ue.useState)(null),[i,l]=(0,Ue.useState)(!0);return(0,Ue.useEffect)(()=>{let p=!1;return l(!0),t(`/api/skills/${e.label}`).then(d=>!p&&r(d.data??null)).catch(()=>!p&&r(null)).finally(()=>!p&&l(!1)),()=>{p=!0}},[t,e.label]),i?(0,H.jsx)(Tt,{size:"small"}):o?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Ut,{title:n("governance.nodeDock.description"),children:o.description||n("governance.nodeDock.noDescription")}),o.content&&(0,H.jsx)(Ut,{title:n("governance.nodeDock.content"),children:(0,H.jsx)(xn,{content:o.content})})]}):(0,H.jsx)(Gr,{type:"secondary",style:{fontSize:13},children:n("governance.nodeDock.skillUnavailable")})},Bd=({node:e,graphDefinition:t,onSaveGraph:n})=>{let{config:o}=co(),r=W(),{middlewareTypes:i}=Ao(o.middlewareTypesEndpoint),l=e.config??{},[p,d]=(0,Ue.useState)({id:l.type??e.id,type:l.type??"unknown",name:l.name??e.label,description:l.description??"",enabled:l.enabled!==!1,config:l.config??{},allowedTools:l.allowedTools}),[a,v]=(0,Ue.useState)(!1),g=(o.availableMiddlewareTypes||i)?.find(f=>f.type===p.type),u=async()=>{if(n){v(!0);try{let f=typeof t=="object"&&t!==null?t:{},s=Array.isArray(f.middleware)?f.middleware:[],y={...l,name:p.name,description:p.description,enabled:p.enabled,config:p.config,...p.allowedTools!==void 0?{allowedTools:p.allowedTools}:{}},k=s.some(h=>h.type===p.type)?s.map(h=>h.type===p.type?y:h):[...s,y];await n({...f,middleware:k}),at.success(r("governance.nodeDock.capabilitySaved"))}catch{at.error(r("governance.nodeDock.capabilitySaveFailed"))}finally{v(!1)}}};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Po,{middleware:p,middlewareType:g,onToggle:()=>d(f=>({...f,enabled:!f.enabled})),onConfigChange:f=>d(s=>({...s,config:{...s.config,...f}})),onAllowedToolsChange:f=>d(s=>({...s,allowedTools:f}))}),(0,H.jsx)("div",{style:{marginTop:16,textAlign:"right"},children:(0,H.jsx)(U,{type:"primary",size:"small",loading:a,onClick:()=>void u(),children:r("common.save")})})]})},jd=({graphDefinition:e,onSaveGraph:t})=>{let n=W(),o=typeof e=="object"&&e!==null?e:{},[r,i]=(0,Ue.useState)(o.description??""),[l,p]=(0,Ue.useState)(o.prompt??""),[d,a]=(0,Ue.useState)(o.modelKey??""),[v,g]=(0,Ue.useState)(!1),u=async()=>{if(t){g(!0);try{await t({...o,description:r,prompt:l,modelKey:d}),at.success(n("governance.nodeDock.agentSaved"))}catch{at.error(n("governance.detail.saveFailed"))}finally{g(!1)}}};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Ut,{title:n("governance.nodeDock.description"),children:(0,H.jsx)(Me.TextArea,{"aria-label":n("governance.nodeDock.description"),rows:2,value:r,onChange:f=>i(f.target.value)})}),(0,H.jsx)(Ut,{title:n("governance.nodeDock.model"),children:(0,H.jsx)(Me,{"aria-label":n("governance.nodeDock.model"),size:"small",value:d,onChange:f=>a(f.target.value)})}),(0,H.jsx)(Ut,{title:n("governance.nodeDock.prompt"),children:(0,H.jsx)(Me.TextArea,{"aria-label":n("governance.nodeDock.prompt"),rows:8,value:l,onChange:f=>p(f.target.value)})}),(0,H.jsx)("div",{style:{textAlign:"right"},children:(0,H.jsx)(U,{type:"primary",size:"small",loading:v,onClick:()=>void u(),children:n("common.save")})})]})},zs=({node:e,graphDefinition:t,assistantId:n,onRemoveNode:o,onSaveGraph:r})=>{let i=W(),l=e.type==="tool"||e.type==="subagent"||e.type==="skill";return(0,H.jsxs)("div",{children:[(0,H.jsx)("div",{style:{marginBottom:12},children:(0,H.jsx)(He,{bordered:!1,style:{margin:0,fontSize:10},children:i(Oo[e.type])})}),e.type==="tool"&&(0,H.jsx)(_d,{node:e},e.id),e.type==="subagent"&&(0,H.jsx)(Wd,{node:e},e.id),e.type==="skill"&&(0,H.jsx)(zd,{node:e},e.id),e.type==="capability"&&(0,H.jsx)(Bd,{node:e,graphDefinition:t,onSaveGraph:r},e.id),e.type==="agent"&&(0,H.jsx)(jd,{graphDefinition:t,onSaveGraph:r},e.id),e.type==="eval"&&n&&(0,H.jsx)(Do,{assistantId:n},e.id),l&&o&&(0,H.jsx)("div",{style:{marginTop:16,borderTop:"1px solid #f0f0f0",paddingTop:12},children:(0,H.jsx)(Fd,{label:i("governance.nodeDock.removeFromAgent"),confirmLabel:i("governance.nodeDock.confirmRemove"),onConfirm:()=>o(e)})})]})};function Bs(e){let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return}if(!t||typeof t!="object"||Array.isArray(t))return;let n=t.metadata;if(!n||typeof n!="object"||Array.isArray(n))return;let o=n.trainingProjectId;return typeof o=="string"?o:void 0}var Pe=C(Ce());var Gd=new Set(["create_agent","update_agent","delete_agent","create_workflow","update_workflow"]),Kd=new Set(["manage_task"]),qd=new Set(["manage_eval","run_eval"]),$d=new Set(["create_agent","delete_agent"]);function js(e){return $d.has(e)}function Gs(e){let t=[];return Gd.has(e)&&t.push("config"),Kd.has(e)&&t.push("tasks"),qd.has(e)&&t.push("eval"),t}var Hd=300,Kr=()=>({rounds:[],round:null,subTasks:[],subTasksByRound:{},loading:!0}),qr=()=>({config:{error:null,updatedAt:null},tasks:{error:null,updatedAt:null,partial:!1}});function Ud(e,t,n){let o=new Set(n),r=new Map(e.map(p=>[p.id,p])),i=p=>{let d=p.parentId,a=new Set;for(;d&&!a.has(d);){if(o.has(d))return!0;a.add(d),d=r.get(d)?.parentId}return!1},l=new Set(t.map(p=>p.id));return[...t,...e.filter(p=>!l.has(p.id)&&i(p))]}function Ks(e){let{agentId:t,projectId:n,onAssistantUpdated:o,onAgentListInvalidated:r}=e,{get:i}=et(),l=`${t}\0${n??""}`,[p,d]=(0,Pe.useState)(()=>({scope:l,value:Kr()})),[a,v]=(0,Pe.useState)(()=>({scope:l,value:0})),[g,u]=(0,Pe.useState)(()=>({scope:l,value:qr()})),f=(0,Pe.useRef)({}),s=(0,Pe.useRef)(0),y=(0,Pe.useRef)(null),k=(0,Pe.useRef)(null),h=(0,Pe.useRef)(0),m=(0,Pe.useRef)({}),w=(0,Pe.useRef)(!1),I=(0,Pe.useRef)(l),P=(0,Pe.useRef)({onAssistantUpdated:o,onAgentListInvalidated:r});(0,Pe.useLayoutEffect)(()=>{P.current={onAssistantUpdated:o,onAgentListInvalidated:r}},[o,r]),(0,Pe.useLayoutEffect)(()=>{if(I.current!==l){I.current=l,s.current+=1,h.current+=1,m.current={},y.current=null,k.current=null,w.current=!1;for(let A of Object.values(f.current))A&&clearTimeout(A);f.current={},d({scope:l,value:Kr()}),u({scope:l,value:qr()}),v({scope:l,value:0})}},[l]);let S=p.scope===l?p.value:Kr(),$=g.scope===l?g.value:qr(),E=a.scope===l?a.value:0,x=A=>{u(G=>G.scope===l?{scope:l,value:A(G.value)}:G)},M=(0,Pe.useCallback)(async()=>{let A=++h.current,G=l;try{let F=await i(`/api/assistants/${t}`);if(A!==h.current||G!==I.current)return;F.success&&F.data?(w.current=!1,P.current.onAssistantUpdated?.(F.data),x(Q=>({...Q,config:{error:null,updatedAt:new Date}}))):(w.current=!1,x(Q=>({...Q,config:{...Q.config,error:new Error("Configuration refresh returned no agent")}})))}catch(F){if(A!==h.current||G!==I.current)return;if(F instanceof Xr&&F.statusCode===404){w.current||P.current.onAgentListInvalidated?.(),w.current=!1,x(oe=>({...oe,config:{...oe.config,error:F}}));return}w.current=!1,console.warn("[useEntityRefresher] config refresh failed",F);let Q=F instanceof Error?F:new Error(String(F));x(oe=>({...oe,config:{...oe.config,error:Q}}))}},[i,t,l]),de=(0,Pe.useCallback)(()=>{let A=y.current;if(A?.scope===l)return A.promise;let G=++s.current,F=l,Q=(async()=>{try{let N=((await i(Dn(t,n))).data??[]).filter(En),B={},me=!1;if(await Promise.all(N.map(async ke=>{let he=await Ra(i,ke.id,{projectId:n});me||=he.partial,B[ke.id]=he.partial?Ud(m.current[ke.id]??[],he.tasks,he.incompleteParentIds??[]):he.tasks})),G!==s.current||F!==I.current)return;m.current=Object.fromEntries(N.map(ke=>[ke.id,B[ke.id]??[]]));let ee=N[0]??null;d({scope:l,value:{rounds:N,round:ee,subTasks:ee?B[ee.id]??[]:[],subTasksByRound:B,loading:!1}}),x(ke=>({...ke,tasks:{error:null,updatedAt:new Date,partial:me}}))}catch(oe){if(console.warn("[useEntityRefresher] task refresh failed",oe),G!==s.current||F!==I.current)return;d(B=>B.scope===l?{scope:l,value:{...B.value,loading:!1}}:B);let N=oe instanceof Error?oe:new Error(String(oe));x(B=>({...B,tasks:{...B.tasks,error:N}}))}})().finally(()=>{y.current?.promise===Q&&(y.current=null,k.current===F&&I.current===F&&(k.current=null,X.current.refreshLearningTasks()))});return y.current={scope:l,promise:Q},Q},[i,t,n,l]),X=(0,Pe.useRef)({refreshAgent:M,refreshLearningTasks:de});(0,Pe.useEffect)(()=>{X.current={refreshAgent:M,refreshLearningTasks:de}});let V=(0,Pe.useCallback)((A,G)=>{let F=f.current;F[A]&&clearTimeout(F[A]),F[A]=setTimeout(G,Hd)},[]),pe=(0,Pe.useCallback)(A=>{for(let G of Gs(A))G==="config"&&V(G,()=>{js(A)&&(w.current=!0,P.current.onAgentListInvalidated?.()),X.current.refreshAgent()}),G==="tasks"&&V(G,()=>{let F=I.current;y.current?.scope===F?k.current=F:X.current.refreshLearningTasks()}),G==="eval"&&V(G,()=>{let F=I.current;v(Q=>Q.scope===F?{scope:F,value:Q.value+1}:Q)})},[V]);return(0,Pe.useEffect)(()=>{de()},[de]),(0,Pe.useEffect)(()=>()=>{for(let A of Object.values(f.current))A&&clearTimeout(A)},[]),{handleToolCompleted:pe,learningTasks:S,refreshLearningTasks:de,refreshAgent:M,freshness:$,evalTick:E}}var Y=C(z()),{Text:qs}=Be,or={color:"#4f46e5",background:"#eef2ff"},Zd=`
238
238
  @media (max-width: 767px) {
239
239
  .agent-detail__identity-pill { max-width: calc(100% - 24px) !important; right: 12px; }
240
240
  .agent-detail__actions-pill { top: 52px !important; left: 12px; right: auto !important; }
241
241
  }
242
- `,Yd=e=>e==="configuration"?{kind:"configuration"}:e==="playground"?{kind:"playground"}:e==="eval"?{kind:"eval",initial:{page:"suites"},navigationKey:0}:e==="web-apps"?{kind:"web-apps"}:null,Xd=e=>{let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return{}}return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}},iy=({assistant:e,allAssistants:t,onBack:n,onDeleted:o,initialTab:r="graph",onSave:i,onAssistantUpdated:l,onAgentListInvalidated:c,initialMessage:d=null,initialMessageCustomRunConfig:a=null,initialProjectId:y=null})=>{let g=z(),[u,f]=(0,Se.useState)(()=>Yd(r)),[s,v]=(0,Se.useState)(!1),[k,h]=(0,Se.useState)(!1),[m,w]=(0,Se.useState)(null),[C,P]=(0,Se.useState)(0),S=(0,Se.useRef)(null),$=(0,Se.useRef)(()=>{}),E=(0,Se.useRef)(0),x=(0,Se.useRef)(null),M=(0,Se.useRef)(null),de=(0,Se.useRef)(null),X=(0,Se.useRef)(null),V=(0,Se.useRef)(null),pe=(0,Se.useRef)(null),A=(0,Se.useRef)(null),[G,F]=(0,Se.useState)(()=>d?{requestId:`initial:${e.id}`,content:d,...a?{customRunConfig:a}:{}}:null),{workspaceId:Q,trainingProjects:oe}=Nt(),N=Gs(e.graphDefinition),[B,me]=(0,Se.useState)(y??N??oe[0]?.id??null),ee=K=>{me(K)},ke=(K,ye,Xe)=>{let Je=oe.find(Ke=>Ke.id===B)??null;F({requestId:ye,content:Ia({goal:K,roundTaskId:ye,targetAgentId:e.id,targetMode:Ra(e),files:Xe,projectId:B??void 0,workspaceId:Je?.workspaceId??Q??void 0}),customRunConfig:{execution:{taskId:ye}}})},he=K=>{F(ye=>ye?.requestId===K?null:ye)};(0,Se.useEffect)(()=>{!B&&oe.length>0&&me(oe[0].id)},[B,oe]);let[O,ne]=(0,Se.useState)(!1),[De,j]=(0,Se.useState)(!1),[_,ie]=(0,Se.useState)(!1),[le,L]=(0,Se.useState)(e.graphDefinition),{handleToolCompleted:Le,learningTasks:be,refreshLearningTasks:Ce,evalTick:Ee}=$s({agentId:e.id,projectId:B,onAssistantUpdated:l,onAgentListInvalidated:c});(0,Se.useEffect)(()=>{L(e.graphDefinition)},[e]);let Ne=typeof e.graphDefinition=="object"?e.graphDefinition:{},rt=String(Ne.type??"react"),We=Pn(rt),tt=rt==="workflow"?mo:Kn,Oe=yr(e),mt=hr(e),kt=Vi(mt),At=K=>{K.kind==="back"?n():K.kind==="close"?f(null):K.kind==="architect"?(f(null),P(ye=>ye+1)):f(K.view)},Ge=K=>{if(!S.current&&!(K.kind==="dock"&&K.view.kind!=="node"&&u?.kind===K.view.kind&&K.view.kind!=="eval")){if(u?.kind==="configuration"&&s){S.current=K,w(K);return}At(K)}};$.current=Ge;let sn=K=>{let ye=K??(document.activeElement instanceof HTMLElement?document.activeElement:void 0);return ye?{current:ye}:void 0},ln=(0,Se.useCallback)(K=>{let ye=++E.current;$.current({kind:"dock",view:{kind:"eval",initial:{page:"suites"},navigationKey:ye,restoreFocusRef:sn(K)}})},[]),dn=()=>{S.current=null,w(null),requestAnimationFrame(()=>A.current?.())},Bt=()=>{let K=S.current;K&&(S.current=null,w(null),v(!1),At(K))},wt=()=>{j(!0)},Ze=async()=>{ne(!0);try{await o(e.id),j(!1)}finally{ne(!1)}},xt=K=>(L(K),i?.(e,K)),kn=i?async(K,ye)=>{await i(K,ye),L({...Xd(K.graphDefinition),...ye})}:void 0,Vt=K=>{let ye=typeof le=="object"&&le!==null?le:{},Xe={...ye};if(K.type==="tool"&&K.id.startsWith("tool:"))Xe.tools=(ye.tools??[]).filter(Je=>Je!==K.id.slice(5));else if(K.type==="subagent"&&K.id.startsWith("sub:"))Xe.subAgents=(ye.subAgents??[]).filter(Je=>Je!==K.id.slice(4));else if(K.type==="skill"&&K.id.startsWith("skill:")){let Je=K.id.slice(6);Xe.skills=(ye.skills??[]).filter(Ke=>Ke!==Je),Array.isArray(ye.middleware)&&(Xe.middleware=ye.middleware.map(Ke=>{if(Ke.type!=="skill")return Ke;let Pt=typeof Ke.config=="object"&&Ke.config!==null?Ke.config:{};return K.id===br?{...Ke,config:{...Pt,readAll:!1}}:!Array.isArray(Pt.skills)||!Pt.skills.includes(Je)?Ke:{...Ke,config:{...Pt,skills:Pt.skills.filter(nt=>nt!==Je)}}}))}else if(K.type==="capability"&&K.id.startsWith("cap:")){let Je=K.id.slice(4);Xe.middleware=(ye.middleware??[]).filter(Ke=>Ke.type!==Je)}else return;L(Xe),i?.(e,Xe).catch(()=>at.error(g("governance.detail.removeNodeSaveFailed")))};return(0,Y.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",background:"#fff"},children:[(0,Y.jsx)("style",{"data-agent-detail-responsive":!0,children:Qd}),(0,Y.jsxs)("div",{style:{flex:1,minHeight:0,position:"relative"},children:[(0,Y.jsxs)("div",{"data-testid":"agent-header-pill",className:"agent-detail__identity-pill",style:{position:"absolute",top:12,left:12,zIndex:12,display:"flex",alignItems:"center",gap:8,height:32,padding:"0 10px 0 4px",background:"rgba(255,255,255,0.95)",borderRadius:10,boxShadow:"0 2px 12px rgba(0,0,0,0.08)",border:"1px solid #f0f0f0",maxWidth:"calc(100% - 176px)",minWidth:0},children:[(0,Y.jsx)(U,{type:"text",size:"small",icon:(0,Y.jsx)(ni,{}),onClick:()=>Ge({kind:"back"}),"aria-label":g("common.back")}),(0,Y.jsx)(tt,{size:15,color:qn(We.color)}),(0,Y.jsx)(Hs,{strong:!0,style:{fontSize:13,maxWidth:220,minWidth:0,flex:"1 1 auto",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,Y.jsx)("span",{"data-testid":"agent-status-dot",title:mt,style:{width:8,height:8,borderRadius:"50%",background:qn(kt),flexShrink:0}}),(0,Y.jsx)(U,{type:"text",size:"small","aria-label":g("governance.detail.viewDescription"),icon:(0,Y.jsx)(go,{}),style:{color:"#6366f1"},onClick:()=>ie(!0)})]}),(0,Y.jsxs)("div",{"data-testid":"agent-actions-pill",className:"agent-detail__actions-pill",style:{position:"absolute",top:12,right:12,zIndex:12,display:"flex",alignItems:"center",gap:2,height:32,padding:"0 6px",background:"rgba(255,255,255,0.95)",borderRadius:10,boxShadow:"0 2px 12px rgba(0,0,0,0.08)",border:"1px solid #f0f0f0"},children:[(0,Y.jsx)(Xt,{title:g("governance.detail.testInPlayground"),children:(0,Y.jsx)(U,{ref:x,type:"text",size:"small",icon:(0,Y.jsx)(xi,{size:14}),onClick:()=>Ge({kind:"dock",view:{kind:"playground"}}),"aria-label":g("governance.detail.testInPlayground"),"aria-pressed":u?.kind==="playground",style:u?.kind==="playground"?rr:void 0})}),(0,Y.jsx)(Xt,{title:g("governance.detail.evalSuite"),children:(0,Y.jsx)(U,{ref:M,type:"text",size:"small",icon:(0,Y.jsx)(fo,{size:14}),onClick:()=>ln(M.current??void 0),"aria-label":g("governance.detail.evalSuite"),"aria-pressed":u?.kind==="eval",style:u?.kind==="eval"?rr:void 0})}),(0,Y.jsx)(Xt,{title:g("governance.detail.webApps"),children:(0,Y.jsx)(U,{ref:de,type:"text",size:"small",icon:(0,Y.jsx)(bi,{size:14}),onClick:()=>Ge({kind:"dock",view:{kind:"web-apps"}}),"aria-label":g("governance.detail.webApps"),"aria-pressed":u?.kind==="web-apps",style:u?.kind==="web-apps"?rr:void 0})}),(0,Y.jsx)(Xt,{title:g("governance.detail.configuration"),children:(0,Y.jsx)(U,{ref:X,type:"text",size:"small",icon:(0,Y.jsx)(Ti,{size:14}),onClick:()=>Ge({kind:"dock",view:{kind:"configuration"}}),"aria-label":g("governance.detail.configuration"),"aria-pressed":u?.kind==="configuration",style:u?.kind==="configuration"?rr:void 0})}),(0,Y.jsx)(Xt,{title:g("governance.deleteAgent"),children:(0,Y.jsx)(U,{type:"text",size:"small",danger:!0,icon:(0,Y.jsx)(po,{}),loading:O,onClick:wt,"aria-label":g("governance.deleteAgent")})})]}),rt==="workflow"?(0,Y.jsx)(zs,{graphDefinition:le,assistantId:e.id,assistantName:e.name,workspaceId:Q,description:e.description,hideTitleBar:!0,hudTopOffset:56,initialMessageRequest:G,onInitialMessageSubmitted:he,projectId:B,onProjectChange:ee,onLearningStarted:ke,onToolActivity:Le,learningTasks:be,onLearningRefresh:Ce,evalTick:Ee,architectOpenSignal:C,architectRestoreFocusRef:pe,copilotTemporarilyHidden:u!==null}):(0,Y.jsx)(_s,{graphDefinition:le,assistantId:e.id,assistantName:e.name,workspaceId:Q,hudTopOffset:56,onSelectNode:K=>{K?Ge({kind:"dock",view:{kind:"node",node:K}}):u?.kind==="node"&&Ge({kind:"close"})},onRemoveNode:Vt,initialMessageRequest:G,onInitialMessageSubmitted:he,projectId:B,onProjectChange:ee,onLearningStarted:ke,onToolActivity:Le,learningTasks:be,onLearningRefresh:Ce,evalTick:Ee,architectOpenSignal:C,architectRestoreFocusRef:pe,copilotTemporarilyHidden:u!==null}),u?.kind==="node"&&(0,Y.jsx)(ct,{open:!0,width:Ws(u.node),title:Bs(u.node),onClose:()=>f(null),children:(0,Y.jsx)(js,{node:u.node,graphDefinition:le,assistantId:e.id,onRemoveNode:K=>{Vt(K),f(null)},onSaveGraph:xt})}),u?.kind==="playground"&&(0,Y.jsx)(ct,{open:!0,width:720,title:g("governance.detail.playground"),onClose:()=>Ge({kind:"close"}),restoreFocusRef:x,children:(0,Y.jsx)(Ki,{assistant_id:e.id})}),u?.kind==="eval"&&(0,Y.jsx)(ct,{open:!0,width:860,title:u.initial?.page==="run"?g("governance.detail.runResults"):g("governance.detail.evalSuite"),onClose:()=>Ge({kind:"close"}),restoreFocusRef:u.restoreFocusRef??M,children:(0,Y.jsx)(Lo,{assistantId:e.id,initial:u.initial,navigationKey:u.navigationKey})},u.navigationKey),u?.kind==="web-apps"&&(0,Y.jsx)(ct,{open:!0,width:960,title:g("governance.detail.webApps"),onClose:()=>Ge({kind:"close"}),restoreFocusRef:de,bodyStyle:{padding:0,overflow:"hidden"},children:(0,Y.jsx)(ra,{assistant:e})}),u?.kind==="configuration"&&(0,Y.jsx)(ct,{open:!0,width:"80%",mobileWidth:"calc(100% - 24px)",title:g("governance.detail.configuration"),onClose:()=>Ge({kind:"close"}),bodyStyle:{padding:0,overflow:"hidden"},restoreFocusRef:V,focusControlRef:A,escapeEnabled:!k&&!_&&!De&&m===null,children:(0,Y.jsx)(ta,{assistant:{...e,graphDefinition:le},allAssistants:t,visible:!0,onClose:()=>Ge({kind:"close"}),onSave:kn,onDirtyChange:v,onOverlayOpenChange:h,embedded:!0})})]}),(0,Y.jsx)(ze,{title:g("governance.detail.discardTitle"),open:m!==null,onCancel:dn,onOk:Bt,okText:g("governance.detail.discard"),okButtonProps:{danger:!0},cancelText:g("governance.detail.continueEditing"),children:(0,Y.jsx)("p",{children:g("governance.detail.discardBody")})}),(0,Y.jsxs)(ze,{title:e.name,open:_,onCancel:()=>ie(!1),footer:null,width:640,centered:!0,children:[(0,Y.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:12},children:[(0,Y.jsx)(He,{color:We.color,style:{margin:0},children:We.label}),Oe.map(K=>(0,Y.jsx)(He,{color:"magenta",style:{margin:0},children:K},K)),(0,Y.jsx)(He,{style:{margin:0},children:vr(e)}),(0,Y.jsx)(He,{color:kt,style:{margin:0},children:mt})]}),e.description?(0,Y.jsx)(Tn,{content:e.description}):(0,Y.jsx)(Hs,{type:"secondary",children:g("governance.detail.noDescription")})]}),(0,Y.jsx)(ze,{title:g("governance.deleteAgent"),open:De,onCancel:()=>j(!1),onOk:Ze,okText:g("common.delete"),okButtonProps:{danger:!0,loading:O},cancelText:g("common.cancel"),children:(0,Y.jsx)("p",{children:g("governance.detail.deleteConfirm",{name:e.name})})})]})};export{Pn as a,qn as b,Jd as c,ec as d,tc as e,wa as f,Zu as g,xa as h,Ta as i,Ia as j,iy as k};
242
+ `,Vd=e=>e==="configuration"?{kind:"configuration"}:e==="playground"?{kind:"playground"}:e==="eval"?{kind:"eval",initial:{page:"suites"},navigationKey:0}:e==="web-apps"?{kind:"web-apps"}:null,Qd=e=>{let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return{}}return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}},ty=({assistant:e,allAssistants:t,onBack:n,onDeleted:o,initialTab:r="graph",onSave:i,onAssistantUpdated:l,onAgentListInvalidated:p,initialMessage:d=null,initialMessageCustomRunConfig:a=null,initialProjectId:v=null})=>{let g=W(),[u,f]=(0,Se.useState)(()=>Vd(r)),[s,y]=(0,Se.useState)(!1),[k,h]=(0,Se.useState)(!1),[m,w]=(0,Se.useState)(null),[I,P]=(0,Se.useState)(0),S=(0,Se.useRef)(null),$=(0,Se.useRef)(()=>{}),E=(0,Se.useRef)(0),x=(0,Se.useRef)(null),M=(0,Se.useRef)(null),de=(0,Se.useRef)(null),X=(0,Se.useRef)(null),V=(0,Se.useRef)(null),pe=(0,Se.useRef)(null),A=(0,Se.useRef)(null),[G,F]=(0,Se.useState)(()=>d?{requestId:`initial:${e.id}`,content:d,...a?{customRunConfig:a}:{}}:null),{workspaceId:Q,trainingProjects:oe}=Nt(),N=Bs(e.graphDefinition),[B,me]=(0,Se.useState)(v??N??oe[0]?.id??null),ee=K=>{me(K)},ke=(K,ye,Xe)=>{let Je=oe.find(Ke=>Ke.id===B)??null;F({requestId:ye,content:Ta({goal:K,roundTaskId:ye,targetAgentId:e.id,targetMode:xa(e),files:Xe,projectId:B??void 0,workspaceId:Je?.workspaceId??Q??void 0}),customRunConfig:{execution:{taskId:ye}}})},he=K=>{F(ye=>ye?.requestId===K?null:ye)};(0,Se.useEffect)(()=>{!B&&oe.length>0&&me(oe[0].id)},[B,oe]);let[O,ne]=(0,Se.useState)(!1),[De,j]=(0,Se.useState)(!1),[_,ie]=(0,Se.useState)(!1),[le,L]=(0,Se.useState)(e.graphDefinition),{handleToolCompleted:Le,learningTasks:be,refreshLearningTasks:Ie,evalTick:Ee}=Ks({agentId:e.id,projectId:B,onAssistantUpdated:l,onAgentListInvalidated:p});(0,Se.useEffect)(()=>{L(e.graphDefinition)},[e]);let Ne=typeof e.graphDefinition=="object"?e.graphDefinition:{},rt=String(Ne.type??"react"),ze=An(rt),tt=rt==="workflow"?fo:Gn,Oe=mr(e),mt=vr(e),kt=Zi(mt),At=K=>{K.kind==="back"?n():K.kind==="close"?f(null):K.kind==="architect"?(f(null),P(ye=>ye+1)):f(K.view)},Ge=K=>{if(!S.current&&!(K.kind==="dock"&&K.view.kind!=="node"&&u?.kind===K.view.kind&&K.view.kind!=="eval")){if(u?.kind==="configuration"&&s){S.current=K,w(K);return}At(K)}};$.current=Ge;let an=K=>{let ye=K??(document.activeElement instanceof HTMLElement?document.activeElement:void 0);return ye?{current:ye}:void 0},sn=(0,Se.useCallback)(K=>{let ye=++E.current;$.current({kind:"dock",view:{kind:"eval",initial:{page:"suites"},navigationKey:ye,restoreFocusRef:an(K)}})},[]),ln=()=>{S.current=null,w(null),requestAnimationFrame(()=>A.current?.())},Bt=()=>{let K=S.current;K&&(S.current=null,w(null),y(!1),At(K))},wt=()=>{j(!0)},Ze=async()=>{ne(!0);try{await o(e.id),j(!1)}finally{ne(!1)}},xt=K=>(L(K),i?.(e,K)),bn=i?async(K,ye)=>{await i(K,ye),L({...Qd(K.graphDefinition),...ye})}:void 0,Zt=K=>{let ye=typeof le=="object"&&le!==null?le:{},Xe={...ye};if(K.type==="tool"&&K.id.startsWith("tool:"))Xe.tools=(ye.tools??[]).filter(Je=>Je!==K.id.slice(5));else if(K.type==="subagent"&&K.id.startsWith("sub:"))Xe.subAgents=(ye.subAgents??[]).filter(Je=>Je!==K.id.slice(4));else if(K.type==="skill"&&K.id.startsWith("skill:")){let Je=K.id.slice(6);Xe.skills=(ye.skills??[]).filter(Ke=>Ke!==Je),Array.isArray(ye.middleware)&&(Xe.middleware=ye.middleware.map(Ke=>{if(Ke.type!=="skill")return Ke;let Pt=typeof Ke.config=="object"&&Ke.config!==null?Ke.config:{};return K.id===hr?{...Ke,config:{...Pt,readAll:!1}}:!Array.isArray(Pt.skills)||!Pt.skills.includes(Je)?Ke:{...Ke,config:{...Pt,skills:Pt.skills.filter(nt=>nt!==Je)}}}))}else if(K.type==="capability"&&K.id.startsWith("cap:")){let Je=K.id.slice(4);Xe.middleware=(ye.middleware??[]).filter(Ke=>Ke.type!==Je)}else return;L(Xe),i?.(e,Xe).catch(()=>at.error(g("governance.detail.removeNodeSaveFailed")))};return(0,Y.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",background:"#fff"},children:[(0,Y.jsx)("style",{"data-agent-detail-responsive":!0,children:Zd}),(0,Y.jsxs)("div",{style:{flex:1,minHeight:0,position:"relative"},children:[(0,Y.jsxs)("div",{"data-testid":"agent-header-pill",className:"agent-detail__identity-pill",style:{position:"absolute",top:12,left:12,zIndex:12,display:"flex",alignItems:"center",gap:8,height:32,padding:"0 10px 0 4px",background:"rgba(255,255,255,0.95)",borderRadius:10,boxShadow:"0 2px 12px rgba(0,0,0,0.08)",border:"1px solid #f0f0f0",maxWidth:"calc(100% - 176px)",minWidth:0},children:[(0,Y.jsx)(U,{type:"text",size:"small",icon:(0,Y.jsx)(ti,{}),onClick:()=>Ge({kind:"back"}),"aria-label":g("common.back")}),(0,Y.jsx)(tt,{size:15,color:Kn(ze.color)}),(0,Y.jsx)(qs,{strong:!0,style:{fontSize:13,maxWidth:220,minWidth:0,flex:"1 1 auto",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,Y.jsx)("span",{"data-testid":"agent-status-dot",title:mt,style:{width:8,height:8,borderRadius:"50%",background:Kn(kt),flexShrink:0}}),(0,Y.jsx)(U,{type:"text",size:"small","aria-label":g("governance.detail.viewDescription"),icon:(0,Y.jsx)(po,{}),style:{color:"#6366f1"},onClick:()=>ie(!0)})]}),(0,Y.jsxs)("div",{"data-testid":"agent-actions-pill",className:"agent-detail__actions-pill",style:{position:"absolute",top:12,right:12,zIndex:12,display:"flex",alignItems:"center",gap:2,height:32,padding:"0 6px",background:"rgba(255,255,255,0.95)",borderRadius:10,boxShadow:"0 2px 12px rgba(0,0,0,0.08)",border:"1px solid #f0f0f0"},children:[(0,Y.jsx)(Yt,{title:g("governance.detail.testInPlayground"),children:(0,Y.jsx)(U,{ref:x,type:"text",size:"small",icon:(0,Y.jsx)(wi,{size:14}),onClick:()=>Ge({kind:"dock",view:{kind:"playground"}}),"aria-label":g("governance.detail.testInPlayground"),"aria-pressed":u?.kind==="playground",style:u?.kind==="playground"?or:void 0})}),(0,Y.jsx)(Yt,{title:g("governance.detail.evalSuite"),children:(0,Y.jsx)(U,{ref:M,type:"text",size:"small",icon:(0,Y.jsx)(go,{size:14}),onClick:()=>sn(M.current??void 0),"aria-label":g("governance.detail.evalSuite"),"aria-pressed":u?.kind==="eval",style:u?.kind==="eval"?or:void 0})}),(0,Y.jsx)(Yt,{title:g("governance.detail.webApps"),children:(0,Y.jsx)(U,{ref:de,type:"text",size:"small",icon:(0,Y.jsx)(hi,{size:14}),onClick:()=>Ge({kind:"dock",view:{kind:"web-apps"}}),"aria-label":g("governance.detail.webApps"),"aria-pressed":u?.kind==="web-apps",style:u?.kind==="web-apps"?or:void 0})}),(0,Y.jsx)(Yt,{title:g("governance.detail.configuration"),children:(0,Y.jsx)(U,{ref:X,type:"text",size:"small",icon:(0,Y.jsx)(xi,{size:14}),onClick:()=>Ge({kind:"dock",view:{kind:"configuration"}}),"aria-label":g("governance.detail.configuration"),"aria-pressed":u?.kind==="configuration",style:u?.kind==="configuration"?or:void 0})}),(0,Y.jsx)(Yt,{title:g("governance.deleteAgent"),children:(0,Y.jsx)(U,{type:"text",size:"small",danger:!0,icon:(0,Y.jsx)(uo,{}),loading:O,onClick:wt,"aria-label":g("governance.deleteAgent")})})]}),rt==="workflow"?(0,Y.jsx)(Fs,{graphDefinition:le,assistantId:e.id,assistantName:e.name,workspaceId:Q,description:e.description,hideTitleBar:!0,hudTopOffset:56,initialMessageRequest:G,onInitialMessageSubmitted:he,projectId:B,onProjectChange:ee,onLearningStarted:ke,onToolActivity:Le,learningTasks:be,onLearningRefresh:Ie,evalTick:Ee,architectOpenSignal:I,architectRestoreFocusRef:pe,copilotTemporarilyHidden:u!==null}):(0,Y.jsx)(Os,{graphDefinition:le,assistantId:e.id,assistantName:e.name,workspaceId:Q,hudTopOffset:56,onSelectNode:K=>{K?Ge({kind:"dock",view:{kind:"node",node:K}}):u?.kind==="node"&&Ge({kind:"close"})},onRemoveNode:Zt,initialMessageRequest:G,onInitialMessageSubmitted:he,projectId:B,onProjectChange:ee,onLearningStarted:ke,onToolActivity:Le,learningTasks:be,onLearningRefresh:Ie,evalTick:Ee,architectOpenSignal:I,architectRestoreFocusRef:pe,copilotTemporarilyHidden:u!==null}),u?.kind==="node"&&(0,Y.jsx)(ct,{open:!0,width:_s(u.node),title:Ws(u.node),onClose:()=>f(null),children:(0,Y.jsx)(zs,{node:u.node,graphDefinition:le,assistantId:e.id,onRemoveNode:K=>{Zt(K),f(null)},onSaveGraph:xt})}),u?.kind==="playground"&&(0,Y.jsx)(ct,{open:!0,width:720,title:g("governance.detail.playground"),onClose:()=>Ge({kind:"close"}),restoreFocusRef:x,children:(0,Y.jsx)(Gi,{assistant_id:e.id})}),u?.kind==="eval"&&(0,Y.jsx)(ct,{open:!0,width:860,title:u.initial?.page==="run"?g("governance.detail.runResults"):g("governance.detail.evalSuite"),onClose:()=>Ge({kind:"close"}),restoreFocusRef:u.restoreFocusRef??M,children:(0,Y.jsx)(Do,{assistantId:e.id,initial:u.initial,navigationKey:u.navigationKey})},u.navigationKey),u?.kind==="web-apps"&&(0,Y.jsx)(ct,{open:!0,width:960,title:g("governance.detail.webApps"),onClose:()=>Ge({kind:"close"}),restoreFocusRef:de,bodyStyle:{padding:0,overflow:"hidden"},children:(0,Y.jsx)(oa,{assistant:e})}),u?.kind==="configuration"&&(0,Y.jsx)(ct,{open:!0,width:"80%",mobileWidth:"calc(100% - 24px)",title:g("governance.detail.configuration"),onClose:()=>Ge({kind:"close"}),bodyStyle:{padding:0,overflow:"hidden"},restoreFocusRef:V,focusControlRef:A,escapeEnabled:!k&&!_&&!De&&m===null,children:(0,Y.jsx)(ea,{assistant:{...e,graphDefinition:le},allAssistants:t,visible:!0,onClose:()=>Ge({kind:"close"}),onSave:bn,onDirtyChange:y,onOverlayOpenChange:h,embedded:!0})})]}),(0,Y.jsx)(We,{title:g("governance.detail.discardTitle"),open:m!==null,onCancel:ln,onOk:Bt,okText:g("governance.detail.discard"),okButtonProps:{danger:!0},cancelText:g("governance.detail.continueEditing"),children:(0,Y.jsx)("p",{children:g("governance.detail.discardBody")})}),(0,Y.jsxs)(We,{title:e.name,open:_,onCancel:()=>ie(!1),footer:null,width:640,centered:!0,children:[(0,Y.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:12},children:[(0,Y.jsx)(He,{color:ze.color,style:{margin:0},children:ze.label}),Oe.map(K=>(0,Y.jsx)(He,{color:"magenta",style:{margin:0},children:K},K)),(0,Y.jsx)(He,{style:{margin:0},children:yr(e)}),(0,Y.jsx)(He,{color:kt,style:{margin:0},children:mt})]}),e.description?(0,Y.jsx)(xn,{content:e.description}):(0,Y.jsx)(qs,{type:"secondary",children:g("governance.detail.noDescription")})]}),(0,Y.jsx)(We,{title:g("governance.deleteAgent"),open:De,onCancel:()=>j(!1),onOk:Ze,okText:g("common.delete"),okButtonProps:{danger:!0,loading:O},cancelText:g("common.cancel"),children:(0,Y.jsx)("p",{children:g("governance.detail.deleteConfirm",{name:e.name})})})]})};export{An as a,Kn as b,Yd as c,Xd as d,Jd as e,ba as f,qu as g,ka as h,wa as i,Ta as j,ty as k};