@standardagents/builder 0.41.23 → 0.41.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/built-in-routes.js +387 -134
- package/dist/built-in-routes.js.map +1 -1
- package/dist/client/{ApiKeysView-D4g6ZNWG.js → ApiKeysView-CJYLO_ua.js} +1 -1
- package/dist/client/{CenteredContentView-B3WUhJPU.js → CenteredContentView-V1sCsISI.js} +1 -1
- package/dist/client/{CompositionView-pL0H07yI.js → CompositionView-hqbZ8f7d.js} +1 -1
- package/dist/client/{ConfirmDialog.vue_vue_type_script_setup_true_lang-uehuZFVv.js → ConfirmDialog.vue_vue_type_script_setup_true_lang-CYrgsA6b.js} +1 -1
- package/dist/client/{CopyButton.vue_vue_type_script_setup_true_lang-vwNMv4kh.js → CopyButton.vue_vue_type_script_setup_true_lang-DFIJfKuD.js} +1 -1
- package/dist/client/{DataTable.vue_vue_type_script_setup_true_lang-lgIAQ4Oz.js → DataTable.vue_vue_type_script_setup_true_lang-IvRbPHup.js} +1 -1
- package/dist/client/{JsonViewer-BsC-w_01.js → JsonViewer-C6FsqOlJ.js} +1 -1
- package/dist/client/{LoginView-DriOurmS.js → LoginView-san5UrfX.js} +1 -1
- package/dist/client/{MarketplaceView-7pl01VFg.js → MarketplaceView-B89Shmm7.js} +1 -1
- package/dist/client/{Modal.vue_vue_type_script_setup_true_lang-CQE6ME9a.js → Modal.vue_vue_type_script_setup_true_lang-BLzEXJtn.js} +1 -1
- package/dist/client/{ModelModal.vue_vue_type_script_setup_true_lang-Dv-GVzNy.js → ModelModal.vue_vue_type_script_setup_true_lang-DTd4Jp3K.js} +1 -1
- package/dist/client/{ModelsView-BDxyu8pj.js → ModelsView-DWLrrwGf.js} +1 -1
- package/dist/client/{PromptEditView-Brn_lMum.js → PromptEditView-PHQ8rLZn.js} +1 -1
- package/dist/client/{PromptModal-BeqgBmpj.js → PromptModal-Bk5rLNB7.js} +1 -1
- package/dist/client/{PromptsView-Dgu1UMES.js → PromptsView-gugjlK3M.js} +1 -1
- package/dist/client/{ProvidersView-B3SPkaxt.js → ProvidersView-DVV8Q1Sw.js} +1 -1
- package/dist/client/ThreadInspectorPane.vue_vue_type_script_setup_true_lang-BvsyovVV.js +22 -0
- package/dist/client/{ThreadsView-D0hT0NXg.js → ThreadsView-Doxz0NfK.js} +1 -1
- package/dist/client/{ToolsView-BitH87Mf.js → ToolsView-BZfq0wpk.js} +1 -1
- package/dist/client/{UsersView-BArKqDfJ.js → UsersView-D5sXzAHz.js} +1 -1
- package/dist/client/{VariablesView-BJtT_XLQ.js → VariablesView-BlEY-E07.js} +1 -1
- package/dist/client/assets/{ThreadInspectorPane-C9Lp8kxl.css → ThreadInspectorPane-DczJCBBm.css} +1 -1
- package/dist/client/{index-CAiyJVjz.js → index-CdsRfG1j.js} +2 -2
- package/dist/client/index.html +1 -1
- package/dist/{index-BhIiPl8o.d.ts → index-Dn0rBA1H.d.ts} +4 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +196 -35
- package/dist/index.js.map +1 -1
- package/dist/plugin.js +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/{resolver-D30lNT4L.d.ts → resolver-C6zKX6kw.d.ts} +11 -5
- package/dist/runtime.d.ts +2 -2
- package/dist/runtime.js +195 -34
- package/dist/runtime.js.map +1 -1
- package/dist/test.d.ts +1 -1
- package/package.json +5 -5
- package/dist/client/ThreadInspectorPane.vue_vue_type_script_setup_true_lang-DaArzwIz.js +0 -22
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as H,c as R,Y as yn,X as ea,w as Ae,h as je,t as Qr,A as it,b as k,e as h,f as m,d as _e,o as ta,a as At,K as Te,j as Q,q as W,J as E,u as j,F as Me,l as Ce,m as le,s as me,z as ue,Z as uo,k as be,ac as Jr,ad as Zr,B as tt,g as es,O as vt,n as Re,P as Ve,V as ts,R as La,a3 as ns,U as Rn,ae as as,x as os,af as Ne,_ as na,ag as co,ah as fo,W as Ra,ai as rs,aj as ss,ak as Oa}from"./vue-DrmMqJdu.js";import{g as Kt,I as ot,h as ls,i as ho,j as aa,k as gt,m as is,n as ds,u as Gt,o as hn,p as oa,q as mo,t as po,v as Mt,w as ra,b as Ue,x as Xt,y as vo,z as go,A as us,B as xo,C as cs,D as fs,E as Da,F as hs,G as mt,H as He,_ as _t,e as st,f as It,J as ms,K as ps,L as vs,M as gs,N as On,O as xs,T as bs}from"./index-CAiyJVjz.js";import{f as Je,b as nt,a as at,s as ys,u as ks,c as ws,d as bo,g as sa,e as la,A as yo,T as $s,_ as Ba,r as Ms,h as Ts,C as Ss}from"./ThreadInspectorPane.vue_vue_type_script_setup_true_lang-DaArzwIz.js";import{I as Dn,_ as Et}from"./package-C9xVeY2o.js";import{I as Bn,a as Vn,b as Hn,c as ko}from"./chevron-right-ELLCloM8.js";import{I as dn,a as qn,P as Cs}from"./PromptModal-BeqgBmpj.js";import{_ as _s}from"./ModelModal.vue_vue_type_script_setup_true_lang-Dv-GVzNy.js";import{e as mn}from"./vendor-c_uwtQ-S.js";import{_ as ia}from"./Modal.vue_vue_type_script_setup_true_lang-CQE6ME9a.js";import{_ as Is}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-uehuZFVv.js";import"./formkit-Cu5ivce0.js";import"./syntax-D68HCEYm.js";import"./monaco-DI2r3M8m.js";import"./timeAgo-Bi5TtiK2.js";import"./CopyButton.vue_vue_type_script_setup_true_lang-vwNMv4kh.js";import"./check-CBEOYQMQ.js";import"./copy-DwKJULdP.js";import"./JsonViewer-BsC-w_01.js";function Es(){const e=H([]),t=H({}),n=H({}),o=H({}),a=H(!0),l=H(null),s=H(""),r=R(()=>{const u=s.value.trim().toLowerCase();return u?e.value.filter(d=>d.name.toLowerCase().includes(u)||d.title.toLowerCase().includes(u)||Kt(d.side_a_backing,d.side_b_backing).toLowerCase().includes(u)):e.value});async function i(){a.value=!0,l.value=null;try{const[u,d,f,v]=await Promise.all([Je("/agents"),Je("/models"),Je("/tools"),Je("/hooks")]);e.value=(u.agents||[]).sort((x,g)=>x.name.localeCompare(g.name)),t.value=Object.fromEntries((d.models||[]).map(x=>[x.id,x])),n.value=f||{},o.value=Object.fromEntries((v.hooks||[]).map(x=>[x.id,x]))}catch{l.value="Unable to load composition data."}finally{a.value=!1}}return{agents:e,models:t,toolsCatalog:n,hooks:o,agentSearch:s,searchableAgents:r,loadingIndex:a,loadError:l,loadIndex:i}}function Ns(e){const t=yn(),n=ea(),o=H(null),a=H(null),l=H(null),s=H(null),r=H(null),i=H({}),u=H(!1),d=H(null);let f=0,v=0,x=0;function g(){return{models:e.models.value,toolsCatalog:e.toolsCatalog.value,hooks:e.hooks.value}}const c=R(()=>{const q=a.value;return q?[nt(q,"a",l.value,g()),nt(q,"b",s.value,g())]:[]}),b=R(()=>{const q=c.value;return{promptCount:q.filter(Y=>!!Y.prompt).length,toolCount:q.reduce((Y,G)=>Y+G.tools.length,0),outgoingCount:q.reduce((Y,G)=>Y+G.outgoingAgents.length,0),variableCount:q.reduce((Y,G)=>Y+G.variables.length,0)}});function S(q,Y){return q===f&&o.value===Y}async function C(q){const Y=++x;try{await n.replace({query:{...t.query,agent:q}})}catch{}finally{Y===x&&(x=0)}}function _(){return x>0}async function y(q,Y,G){const B=++v,M=new Map;for(const w of q)for(const U of w.outgoingAgents)U.kind==="subagent"&&M.set(U.name,U.relationship?.agent??U.name);if(M.size===0){B===v&&S(Y,G)&&(i.value={});return}const I={};await Promise.all([...M.entries()].map(async([w,U])=>{if(e.agents.value.find(T=>T.name===U&&!T.packed))try{const A=(await Je(`/agents/${encodeURIComponent(U)}`)).agent,[X,F]=await Promise.all([at(A.side_a_agent_prompt),at(A.side_b_agent_prompt)]);if(B!==v||!S(Y,G))return;I[w]={agentName:U,agent:A,sides:[nt(A,"a",X,g()),nt(A,"b",F,g())]}}catch{}})),B===v&&S(Y,G)&&(i.value=I)}async function L(q,Y=!0){const G=e.agents.value.find(M=>M.id===q||M.name===q);if(!G)return;const B=++f;if(o.value=G.id,r.value={type:"agent",value:G},i.value={},!ys(G)){a.value=null,l.value=null,s.value=null,d.value="Packed agents are not yet supported in the composition browser.",u.value=!1,Y&&C(G.id);return}u.value=!0,d.value=null,Y&&C(G.id);try{const M=await Je(`/agents/${encodeURIComponent(G.name)}`),[I,w]=await Promise.all([at(M.agent.side_a_agent_prompt),at(M.agent.side_b_agent_prompt)]);if(!S(B,G.id))return;a.value=M.agent,l.value=I,s.value=w,r.value={type:"agent",value:M.agent};const U=[nt(M.agent,"a",I,g()),nt(M.agent,"b",w,g())];y(U,B,G.id)}catch{if(!S(B,G.id))return;d.value="Unable to load the selected agent composition.",a.value=null,l.value=null,s.value=null}finally{S(B,G.id)&&(u.value=!1)}}function P(q){r.value=q}function D(){a.value?r.value={type:"agent",value:a.value}:r.value=null}async function Z(){const q=a.value,Y=o.value;if(!q||!Y)return!1;const G=++f;try{const B=await Je(`/agents/${encodeURIComponent(q.name)}`),[M,I]=await Promise.all([at(B.agent.side_a_agent_prompt),at(B.agent.side_b_agent_prompt)]);if(!S(G,Y))return!1;const w=(l.value?.tools?.length??0)+(s.value?.tools?.length??0),U=(M?.tools?.length??0)+(I?.tools?.length??0),N=(q.side_a_subagents?.length??0)+(q.side_b_subagents?.length??0),T=(B.agent.side_a_subagents?.length??0)+(B.agent.side_b_subagents?.length??0),X=B.agent.side_a_agent_prompt!==q.side_a_agent_prompt||B.agent.side_b_agent_prompt!==q.side_b_agent_prompt||w!==U||N!==T;a.value=B.agent,l.value=M,s.value=I;const F=[nt(B.agent,"a",M,g()),nt(B.agent,"b",I,g())];return y(F,G,Y),X}catch{return!0}}return{selectedAgentId:o,selectedAgentDetail:a,selectedNode:r,sideCompositions:c,subagentCompositions:i,compositionSummary:b,loadingComposition:u,compositionError:d,selectAgent:L,selectInspectorNode:P,deselectNode:D,refreshComposition:Z,isRouteSyncing:_}}function As(){const e=yn(),t=Es(),n=Ns({agents:t.agents,models:t.models,toolsCatalog:t.toolsCatalog,hooks:t.hooks}),o=R(()=>t.agents.value.find(s=>s.id===n.selectedAgentId.value)||null);async function a(){if(await t.loadIndex(),t.loadError.value)return;const s=typeof e.query.agent=="string"?e.query.agent:null,r=s?t.agents.value.find(i=>i.id===s)||t.agents.value.find(i=>i.name===s):null;if(r)await n.selectAgent(r.id,!1);else if(t.agents.value.length>0){const i=t.agents.value.find(u=>u.primary!==!1)??t.agents.value[0];await n.selectAgent(i.id,!1)}}async function l(){await t.loadIndex()}return{searchableAgents:t.searchableAgents,selectedAgentId:n.selectedAgentId,selectedAgentDetail:n.selectedAgentDetail,selectedAgentSummary:o,selectedNode:n.selectedNode,sideCompositions:n.sideCompositions,subagentCompositions:n.subagentCompositions,compositionSummary:n.compositionSummary,models:t.models,toolsCatalog:t.toolsCatalog,agentSearch:t.agentSearch,loadingIndex:t.loadingIndex,loadingComposition:n.loadingComposition,loadError:t.loadError,compositionError:n.compositionError,loadIndex:a,refreshIndex:l,selectAgent:n.selectAgent,selectInspectorNode:n.selectInspectorNode,deselectNode:n.deselectNode,refreshComposition:n.refreshComposition,isRouteSyncing:n.isRouteSyncing}}const Va="__";function wo(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function $o(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"item"}function Gn(e,t,n){const o=n===void 0?"":`-${n}`;return`${e}-${$o(t)}-${wo(t)}${o}`}function Mo(e,...t){return`${e}${t.join(Va)}${Va}`}function To(e){return Mo(Gn("agent",e))}function So(e,t,n,o,a){return Mo(e,Gn("side",t),Gn("tool",`${o}:${a}`,n))}const pn=e=>`${e}agent`,da=(e,t)=>`${e}side-${t}`,un=(e,t,n)=>`${e}tool-${t}-${n}`,Ps=e=>`${e}group`,Co=(e,t)=>`${e}model-${$o(t)}-${wo(t)}`,Ls=280,Rs=132,Ha=320,Os=72,Ds=200,Bs=72,Vs=360,Hs=220,Us=320,zs=240,Fs=280,js=132,Ua=64,ut=36,tn=56,wt=36,Un=52,Xs=64,cn=220,Ks=84,Ge=72,za=112,ct=28;function Ys(e,t,n){const o=[],a=[];if(e.modelUsages.length===0)return{modelNodes:o,modelEdges:a};const l=new Map,s=new Set;for(const c of e.modelUsages){const b=`${c.model.id}|${c.consumerNodeId}`;if(s.has(b))continue;s.add(b);const S=l.get(c.model.id);S?S.push(c):l.set(c.model.id,[c])}const r=new Map;for(const c of e.nodes)r.set(c.id,c);const i=e.width,u=0,d=[],f=e.groups.map(c=>({x:c.x,y:c.y,w:c.width,h:c.height}));function v(c,b){return b.x>=c.x&&b.y>=c.y&&b.x+b.w<=c.x+c.w&&b.y+b.h<=c.y+c.h}function x(c,b,S,C,_=16){const y=Math.min(b,S),L=Math.max(b,S);return C.some(P=>L>P.x-_&&y<P.x+P.w+_&&c>P.y-_&&c<P.y+P.h+_)}function g(c,b,S,C,_=16){const y=Math.min(b,S),L=Math.max(b,S);return C.some(P=>L>P.y-_&&y<P.y+P.h+_&&c>P.x-_&&c<P.x+P.w+_)}for(const[c,b]of l){const S=b.map(T=>({usage:T,node:r.get(T.consumerNodeId)})).filter(T=>!!T.node);if(S.length===0)continue;const C=S.map(T=>Gs(T.node,n)),_=S.map(T=>ft(T.node,n)),y=f.filter(T=>_.every(A=>v(T,A))),L=f.filter(T=>!y.includes(T)),P=b[0].model,D=Co(t,c),Z=n[D],q=Z?.w??cn,Y=Z?.h??Ks;let G=0,B=0,M;if(S.length===1){const T=S[0],A=ft(T.node,n),X=Fa(T.node),F=X||T.usage.sideId==="a"?"outboard-left":"outboard-right",pe=A.y+A.h/2-Y/2,se=F==="outboard-left"?A.x-Ge-q:A.x+A.w+Ge,fe=A.x+A.w/2-q/2,K=A.y+A.h+Ge,z=new Set(S.map(ne=>ne.node.id)),te=[...d,...e.nodes.filter(ne=>!z.has(ne.id)).map(ne=>ft(ne,n)),...L],ie=[se],de=[pe],ve=[fe],ae=[K];for(const ne of te)F==="outboard-left"?ie.push(ne.x-Ge-q):ie.push(ne.x+ne.w+Ge),de.push(ne.y-Y-ct),de.push(ne.y+ne.h+ct),ve.push(ne.x-q-ct),ve.push(ne.x+ne.w+ct),ae.push(ne.y-Y-ct),ae.push(ne.y+ne.h+ct);let J=se,p=pe,$=Number.POSITIVE_INFINITY,V=null;const oe=new Set,ce=[{mode:F,xs:ie,ys:de},{mode:"below-row",xs:ve,ys:ae}];for(const ne of ce)for(const re of ne.xs)for(const xe of ne.ys){const ke=`${ne.mode}:${Math.round(re)}:${Math.round(xe)}`;if(oe.has(ke)||(oe.add(ke),ne.mode==="outboard-left"&&re+q>A.x-8)||ne.mode==="outboard-right"&&re<A.x+A.w+8)continue;const ye=te.filter(ge=>zn({x:re,y:xe,w:q,h:Y},{x:ge.x,y:ge.y,w:ge.w,h:ge.h})).length,Se=ne.mode==="below-row"?g(A.x+A.w/2,A.y+A.h,xe,te):x(A.y+A.h/2,ne.mode==="outboard-left"?re+q:A.x+A.w,ne.mode==="outboard-left"?A.x:re,te),$e=ye*1e4+(Se?12e3:0)+Math.abs(re-se)/10+Math.abs(xe-(ne.mode==="below-row"?K:pe))+(ne.mode==="below-row"?10:0);if(X&&ne.mode!=="below-row"&&ye===0){const ge=(Se?1e3:0)+Math.abs(re-se)/10+Math.abs(xe-pe);(!V||ge<V.penalty)&&(V={x:re,y:xe,penalty:ge,mode:ne.mode})}$e<$&&($=$e,J=re,p=xe,M=ne.mode)}V&&(J=V.x,p=V.y,M=V.mode),M||(M=F),G=J,B=p}else{let T=1/0,A=-1/0,X=1/0,F=-1/0;for(const z of S){const te=ft(z.node,n);te.x<T&&(T=te.x),te.x+te.w>A&&(A=te.x+te.w),te.y<X&&(X=te.y),te.y+te.h>F&&(F=te.y+te.h)}const pe=A-T,se=F-X,fe=ja(C.map(z=>z.x)),K=ja(C.map(z=>z.y));if(pe>=se){const z=fe-q/2,te=new Set(S.map(V=>V.node.id)),ie=e.nodes.filter(V=>!te.has(V.id)).map(V=>ft(V,n)).filter(V=>V.y+V.h>F),de=L.filter(V=>V.y+V.h>F),ve=[...ie,...de],ae=[z];for(const V of ve)ae.push(V.x-Ge-q),ae.push(V.x+V.w+Ge);let J=z,p=1/0;const $=new Set;for(const V of ae){const oe=Math.round(V);if($.has(oe))continue;$.add(oe);const ce=ve.filter(xe=>zn({x:V,y:F+Ge,w:q,h:Y},{x:xe.x,y:xe.y,w:xe.w,h:xe.h})).length,ne=Math.abs(V-z)/1e3,re=ce+ne;re<p&&(p=re,J=V)}G=J,B=F+Ge,M="below-row"}else{const z=S.every(ve=>Fa(ve.node)),te=S.filter(ve=>ve.usage.sideId==="a").length,ie=S.length-te,de=!z&&ie>=te;G=de?Math.max(i,A)+za:Math.min(u,T)-za-q,B=K-Y/2,M=de?"sidebar-right":"sidebar-left"}}const I=Y+ct,w=8;let U=0;const N=[...d,...e.nodes.map(T=>{const A=ft(T,n);return{x:A.x,y:A.y,w:A.w,h:A.h}}),...L];for(;U<w&&N.some(T=>zn({x:G,y:B,w:q,h:Y},T));)B+=I,U++;d.push({x:G,y:B,w:q,h:Y}),o.push({id:D,type:"model",x:G,y:B,width:q,height:Y,placementMode:M,data:P});for(const T of S)a.push({id:`${T.node.id}-to-${D}`,from:T.node.id,to:D,sideId:T.usage.sideId,kind:"model"})}return{modelNodes:o,modelEdges:a}}function qs(e,t,n){if(t.length===0||e.length===0)return;const o=new Map;for(const i of n){const u=o.get(i.to);u?u.push(i.from):o.set(i.to,[i.from])}const a=new Map;for(const i of t)a.set(i.id,i);const l=12,s="group",r=[...e].sort((i,u)=>u.id.length-i.id.length);for(const i of r){const u=i.id.endsWith(s)?i.id.slice(0,i.id.length-s.length):i.id;for(const[d,f]of o){const v=a.get(d);if(!v||!f.every(S=>S.startsWith(u)))continue;const x=Math.min(i.x,v.x-l),g=Math.min(i.y,v.y-l),c=Math.max(i.x+i.width,v.x+v.width+l),b=Math.max(i.y+i.height,v.y+v.height+l);i.x=x,i.y=g,i.width=c-x,i.height=b-g}}for(const i of r){const u=i.id.endsWith(s)?i.id.slice(0,i.id.length-s.length):i.id;for(const d of e){if(d===i||!d.id.startsWith(u)||d.id.length<=i.id.length)continue;const f=Math.min(i.x,d.x),v=Math.min(i.y,d.y),x=Math.max(i.x+i.width,d.x+d.width),g=Math.max(i.y+i.height,d.y+d.height);i.x=f,i.y=v,i.width=x-f,i.height=g-v}}}function ft(e,t){const n=t[e.id];return{x:e.x,y:e.y,w:n?.w??e.width,h:n?.h??e.height}}function Gs(e,t){const n=ft(e,t);return{x:n.x+n.w/2,y:n.y+n.h/2}}function Fa(e){return e.type==="prompt"||e.type==="side"&&e.data.mode==="ai"||e.type==="tool"&&e.data.kind==="prompt"}function ja(e){if(e.length===0)return 0;let t=0;for(const n of e)t+=n;return t/e.length}function zn(e,t){return e.x<t.x+t.w&&e.x+e.w>t.x&&e.y<t.y+t.h&&e.y+e.h>t.y}function _o(e,t,n,o,a,l){const s=[],r=[],i=[],u=[];function d($){if(!$)return null;const V=l[$];if(V)return V;for(const oe of Object.values(l))if(oe.name===$)return oe;return null}const f=pn(o),v=a[f],x=v?.w??Ls,g=v?.h??Rs,c=0,b=g+Ua;function S($,V){const oe=a[V];if(oe)return oe;if($.mode!=="ai")return{w:Ha,h:Os};const ce=240,ne=$.variables.length*24,re=$.tools.length*32,xe=ce+Math.max(ne,re),ke=7,ye=$.tools.length>0;let Se=200;$.prompt&&(Se=Math.max(Se,$.prompt.name.length*ke+80));let $e=ye?160:0;if(ye)for(const we of $.tools)$e=Math.max($e,we.displayName.length*ke+40);return{w:Math.max(Ha,ye?Se+$e:Se),h:xe}}const C=t.filter($=>$.id==="a"),_=t.filter($=>$.id==="b");function y($){return $.map(V=>{const oe=V.tools.filter(ke=>ke.kind==="tool"||ke.kind==="subagent"||ke.kind==="handoff"||ke.kind==="prompt"),ce=[];for(let ke=0;ke<oe.length;ke++){const ye=oe[ke];if(ye.kind==="subagent"&&!!n[ye.name]){const $e=So(o,V.id,ke,ye.kind,ye.name),ge=n[ye.name],we=_o(ge.agent,ge.sides,n,$e,a,l),Oe=(cn+Ge+12)*2;ce.push({width:we.width+wt*2+Oe,height:we.height+Un+wt,isSubagent:!0,modelReserveLeft:Oe,modelReserveRight:0,subagentName:ye.name,subagentNodeId:pn($e),subagentGroupId:Ps($e),subTree:we})}else{const $e=un(o,V.id,ke),ge=a[$e];ce.push({width:ge?.w??(ye.kind==="tool"?Vs:ye.kind==="prompt"?Us:ye.kind==="handoff"?Fs:Ds),height:ge?.h??(ye.kind==="tool"?Hs:ye.kind==="prompt"?zs:ye.kind==="handoff"?js:Bs),isSubagent:!1})}}const ne=da(o,V.id),{w:re,h:xe}=S(V,ne);return{side:V,leaves:ce,sideH:xe,sideW:re,sideNodeId:ne,externalTools:oe}})}const L=y(C),P=y(_),D=new Map,Z=new Set;function q($,V,oe){if(!$)return;const ce=`${$.id}|${oe}`;if(Z.has(ce))return;Z.add(ce);const ne=D.get($.id);if(ne){V==="a"?ne.hasLeftConsumer=!0:ne.hasRightConsumer=!0;return}D.set($.id,{hasLeftConsumer:V==="a",hasRightConsumer:V==="b"})}for(const $ of[...L,...P]){q($.side.model,$.side.id,$.sideNodeId);for(let V=0;V<$.externalTools.length;V++){const oe=$.externalTools[V];oe.kind==="prompt"&&q(d(oe.model),$.side.id,un(o,$.side.id,V))}for(const V of $.leaves)if(!(!V.isSubagent||!V.subTree))for(const oe of V.subTree.modelUsages)q(oe.model,oe.sideId,oe.consumerNodeId)}function Y($){if(!$)return!1;const V=D.get($.id);return!!V?.hasRightConsumer&&!V?.hasLeftConsumer}function G($,V){if($.length===0)return{card:{minX:0,maxX:0},leaves:null,full:{minX:0,maxX:0}};let oe=0,ce=1/0,ne=-1/0,re=1/0,xe=-1/0;for(const ye of $){const{side:Se,leaves:$e,sideW:ge,externalTools:we}=ye,Oe=V==="left"?oe-ge:oe,De=V==="right"&&Y(Se.model)?cn+Ge:0;if(ce=Math.min(ce,Oe-De),ne=Math.max(ne,Oe+ge),we.length>0){const Ye=B(Oe,ge,we,$e);for(let ze=0;ze<$e.length;ze++){const xt=V==="right"&&we[ze]?.kind==="prompt"&&Y(d(we[ze]?.model))?cn+Ge:0,bt=Ye[ze];re=Math.min(re,bt.x-xt),xe=Math.max(xe,bt.x+$e[ze].width)}}oe+=(V==="left"?-1:1)*(ge+tn)}const ke=re!==1/0;return{card:{minX:ce,maxX:ne},leaves:ke?{minX:re,maxX:xe}:null,full:{minX:ke?Math.min(ce,re):ce,maxX:ke?Math.max(ne,xe):ne}}}function B($,V,oe,ce){const ne=new Array(ce.length),re=ce.map((ge,we)=>({index:we,leaf:ge,tool:oe[we]})),xe=re.filter(ge=>M(ge.tool)),ke=new Set(xe.map(ge=>ge.index)),ye=[];xe.length>0&&ye.push(I(xe,V*3));for(const ge of re)ke.has(ge.index)||ye.push(I([ge],Number.POSITIVE_INFINITY));ye.sort((ge,we)=>ge.firstIndex-we.firstIndex);const Se=ye.reduce((ge,we)=>ge+we.width,0)+Math.max(0,ye.length-1)*ut;let $e=$+V/2-Se/2;for(const ge of ye){for(const we of ge.positions)ne[we.index]={x:$e+we.x,yOffset:we.yOffset};$e+=ge.width+ut}return ne}function M($){return $?.kind==="tool"||$?.kind==="provider"||$?.kind==="mcp"}function I($,V){const oe=Math.max(...$.map($e=>$e.leaf.width),0),ce=Number.isFinite(V)?Math.max(V,oe):Number.POSITIVE_INFINITY,ne=[];let re=null;const xe=()=>{re&&re.items.length>0&&ne.push(re),re={items:[],width:0,height:0}};xe();for(const $e of $){re||xe();const ge=re.items.length===0?$e.leaf.width:re.width+ut+$e.leaf.width;re.items.length>0&&ge>ce&&xe(),re.items.push($e),re.width=re.items.length===1?$e.leaf.width:re.width+ut+$e.leaf.width,re.height=Math.max(re.height,$e.leaf.height)}re&&re.items.length>0&&ne.push(re);const ke=Math.max(...ne.map($e=>$e.width),0),ye=[];let Se=0;for(const $e of ne){let ge=(ke-$e.width)/2;for(const we of $e.items)ye.push({index:we.index,x:ge,yOffset:Se}),ge+=we.leaf.width+ut;Se+=$e.height+ut}return{firstIndex:Math.min(...$.map($e=>$e.index)),width:ke,height:ne.reduce(($e,ge)=>$e+ge.height,0)+Math.max(0,ne.length-1)*ut,positions:ye}}const w=G(L,"left"),U=G(P,"right"),N=w.card.maxX-U.card.minX+tn,T=w.leaves&&U.leaves?w.leaves.maxX-U.leaves.minX+tn:0,A=Math.max(Xs,N,T),X=Math.max(x/2,A/2-w.full.minX);let F=b;function pe($,V,oe,ce,ne,re,xe){const ke=un(o,V,xe);if(!ce.isSubagent||!ce.subTree){if(s.push({id:ke,type:"tool",x:ne,y:re,width:ce.width,height:ce.height,data:oe,sideId:V}),r.push({id:`${$}-to-${ke}`,from:$,to:ke,sideId:V,toolKind:oe.kind}),oe.kind==="prompt"){const we=d(oe.model);we&&u.push({consumerNodeId:ke,sideId:V,model:we})}F=Math.max(F,re+ce.height);return}const ye=ce.subTree,Se=ne+(ce.modelReserveLeft??0),$e=re+Un;for(const we of ye.nodes){const De=we.type==="agent"&&we.id===ce.subagentNodeId&&"type"in we.data?{...we.data,_isSubagent:!0}:we.data;s.push({...we,x:we.x+Se,y:we.y+$e,data:De})}for(const we of ye.edges)r.push(we);for(const we of ye.groups)i.push({...we,x:we.x+Se,y:we.y+$e});for(const we of ye.modelUsages)u.push(we);r.push({id:`${$}-to-${ce.subagentNodeId}`,from:$,to:ce.subagentNodeId,sideId:V,toolKind:oe.kind});const ge=oe.relationship;i.push({id:ce.subagentGroupId,label:n[ce.subagentName]?.agent.title||ce.subagentName,x:Se-wt,y:re,width:ye.width+wt*2,height:ye.height+Un+wt,sideId:V,subagent:{blocking:!!ge?.blocking,multiInstance:ge?.maxInstances==null||ge.maxInstances>1,immediate:!!ge?.immediate,hidden:!!ge?.hidden}}),F=Math.max(F,$e+ye.height+wt)}function se($,V){let oe=V==="left"?X-A/2:X+A/2;for(const ce of $){const{side:ne,leaves:re,sideH:xe,sideW:ke,sideNodeId:ye,externalTools:Se}=ce,$e=Se.filter(M).length,ge=$e>5?($e-5)*10:0,we=b+xe+Ua+ge,Oe=V==="left"?oe-ke:oe;if(s.push({id:ye,type:"side",x:Oe,y:b,width:ke,height:xe,data:ne,sideId:ne.id}),r.push({id:`${f}-to-${ye}`,from:f,to:ye,sideId:ne.id}),ne.model&&u.push({consumerNodeId:ye,sideId:ne.id,model:ne.model}),F=Math.max(F,b+xe),Se.length>0){const De=B(Oe,ke,Se,re);for(let Ye=0;Ye<Se.length;Ye++){const ze=De[Ye];pe(ye,ne.id,Se[Ye],re[Ye],ze.x,we+ze.yOffset,Ye)}}oe+=(V==="left"?-1:1)*(ke+tn)}}se(L,"left"),se(P,"right");const fe=new Set(Object.keys(e.env||{})),K=new Set,z=t.flatMap($=>$.variables).filter($=>fe.has($.name)).filter($=>K.has($.name)?!1:(K.add($.name),!0)),te=z.length>0?{...e,_variables:z}:e;s.push({id:f,type:"agent",x:X-x/2,y:c,width:x,height:g,data:te});let ie=1/0,de=1/0,ve=-1/0,ae=-1/0;for(const $ of s)ie=Math.min(ie,$.x),de=Math.min(de,$.y),ve=Math.max(ve,$.x+$.width),ae=Math.max(ae,$.y+$.height);for(const $ of i)ie=Math.min(ie,$.x),de=Math.min(de,$.y),ve=Math.max(ve,$.x+$.width),ae=Math.max(ae,$.y+$.height);const J=ve-ie,p=ae-de;for(const $ of s)$.x-=ie,$.y-=de;for(const $ of i)$.x-=ie,$.y-=de;return{nodes:s,edges:r,groups:i,modelUsages:u,width:J,height:p}}function Ws(e,t,n,o,a={}){if(!e||t.length===0)return{nodes:[],edges:[],groups:[],bounds:{x:0,y:0,width:0,height:0}};const l=To(e.id||e.name),s=_o(e,t,n,l,o,a),r=[...s.nodes],i=[...s.edges],u=[...s.groups],{modelNodes:d,modelEdges:f}=Ys(s,l,o);r.push(...d),i.push(...f),qs(u,d,f);let v=0,x=0,g=s.width,c=s.height;for(const b of d)b.x<v&&(v=b.x),b.y<x&&(x=b.y),b.x+b.width>g&&(g=b.x+b.width),b.y+b.height>c&&(c=b.y+b.height);for(const b of u)b.x<v&&(v=b.x),b.y<x&&(x=b.y),b.x+b.width>g&&(g=b.x+b.width),b.y+b.height>c&&(c=b.y+b.height);if(v<0||x<0){const b=-Math.min(v,0),S=-Math.min(x,0);for(const C of r)C.x+=b,C.y+=S;for(const C of u)C.x+=b,C.y+=S;g+=b,c+=S}return{nodes:r,edges:i,groups:u,bounds:{x:0,y:0,width:g,height:c}}}function Qs(e,t,n,o,a){return R(()=>Ws(e.value,t.value,n.value,o.value,a.value))}function Js(e){const{selectedAgentId:t,threadListPaneRef:n,messagesPaneRef:o,logsPaneRef:a}=e,l=yn(),s=ea(),r=()=>typeof l.query.thread=="string"?l.query.thread:null,i=z=>{s.replace({path:l.path,query:{...l.query,thread:z||void 0},hash:l.hash})},u=z=>{s.replace({path:l.path,query:{...l.query,inspector:z},hash:l.hash})},d=r(),f=H(d),v=H(null),x="__draft_new_thread__",g=H(!1);let c=!1;Ae(f,z=>{if(c||z===x)return;const te=r();z!==te&&i(z)}),Ae(()=>l.query.thread,z=>{if(c)return;const te=typeof z=="string"?z:null;if(te&&v.value&&!v.value.has(te)){c=!0,f.value=null,i(null),je(()=>{c=!1});return}te!==f.value&&(f.value=te)},{immediate:!0});const b=H(null),S=H(null),C=H(null),_=H(null),y=H(null),L=H(null),P=H(null),D=H(!1),Z=H(null),{thread:q}=ks(R(()=>f.value===x?null:f.value));let Y=!1;Ae(t,()=>{if(!Y){Y=!0;return}c=!0,f.value=null,b.value=null,S.value=null,C.value=null,_.value=null,y.value=null,L.value=null,P.value=null,je(()=>{c=!1})}),Ae(f,()=>{b.value=null,S.value=null,C.value=null,_.value=null,y.value=null});const G=z=>{L.value=z,P.value=z},B=z=>{const te=o.value,ie=a.value;if(!te||!ie)return null;if(te.hasWorkblockForLogId(z))return z;let de=z;const ve=10;for(let ae=0;ae<ve&&de;ae++){const J=ie.getLog(de);if(!J)break;const p=J.parent_log_id;if(!p)break;if(te.hasWorkblockForLogId(p))return p;de=p}return null};return{selectedThreadId:f,selectedThread:q,selectedMessageId:b,selectedLogId:S,selectedEffectId:C,selectedEffectRef:_,highlightedWorkblockLogId:y,hoveredLogId:L,hoveredWorkblockLogId:P,showThreadModal:D,editingThread:Z,draftThreadId:x,isCreatingThreadDraft:g,handleThreadSelect:z=>{f.value=z},handleThreadsLoaded:(z,te)=>{c=!1,v.value=te?new Set(te):null,f.value&&v.value&&!v.value.has(f.value)&&(f.value=null),z&&!f.value?f.value=z:!z&&!f.value&&r()&&i(null)},handleMessageClick:async(z,te,ie)=>{if(b.value=z,ie){C.value=ie.id??null,_.value=ie,S.value=null,y.value=null,u("effects"),await je(),a.value?.selectEffectByReference(ie);return}if(C.value=null,_.value=null,!te){S.value=null,y.value=null;return}const de=a.value;if(!de){S.value=te,y.value=te;return}const ve=!de.hasLog(te);if(ve&&de.setLoadingForLog(!0),S.value=te,y.value=te,ve&&!await de.loadUntilLogId(te)){de.setLoadingForLog(!1);return}await de.waitForLogRow(te)&&(de.scrollToLog(te),de.selectLogById(te))},handleMessageHover:G,handleLogClick:z=>{S.value=z,C.value=null,_.value=null,b.value=null;const te=o.value;if(!te){y.value=z;return}if(te.scrollToLogId(z)){y.value=z;return}const ie=B(z);ie&&ie!==z&&te.scrollToLogId(ie),y.value=ie??z},handleLogHover:z=>{if(L.value=z,!z){P.value=null;return}P.value=B(z)??z},handleLogsLoaded:z=>{z&&(S.value=z)},handleLogsDeleted:z=>{a.value?.removeLogsByIds(z)},handleThreadDeleted:z=>{f.value=null,b.value=null,S.value=null,C.value=null,_.value=null,y.value=null,L.value=null,P.value=null,n.value?.refetch()},handleEditThread:()=>{q.value&&(Z.value=q.value,D.value=!0)},handleCreateThread:()=>{Z.value=null,D.value=!1,g.value=!0,f.value=x},handleThreadCreated:z=>{g.value=!1,n.value?.refetch(),f.value=z,je(()=>o.value?.focusComposer())},handleCancelCreateThread:()=>{g.value=!1,f.value===x&&(f.value=null)},handleThreadUpdated:()=>{n.value?.refetch()}}}function Zs(e){return Array.from(new Set(e.map(t=>t.id))).sort()}function el(e){const t=H({}),n=H(!1),o=H(null),a=R(()=>Zs(Qr(e))),l=R(()=>a.value.join(""));let s=0;async function r(i={}){const u=++s,d=a.value;if(d.length===0){t.value={},o.value=null,n.value=!1;return}const f={...t.value},v=i.force?d:d.filter(x=>f[x]===void 0);if(v.length===0){o.value=null,n.value=!1;return}n.value=!0,o.value=null;try{const x=await Promise.all(v.map(async g=>{try{const c=await Je(`/threads?agent_id=${encodeURIComponent(g)}&limit=1`);return[g,c.total??0]}catch{return[g,0]}}));if(u!==s)return;for(const[g,c]of x)f[g]=c;t.value=f}catch{u===s&&(o.value="Unable to load thread counts.")}finally{u===s&&(n.value=!1)}}return Ae(l,()=>{r()},{immediate:!0}),{threadCounts:t,loadingThreadCounts:n,threadCountsError:o,refreshThreadCounts:()=>r({force:!0})}}const tl={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function nl(e,t){return h(),k("svg",tl,[...t[0]||(t[0]=[m("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[m("path",{d:"M12 22v-9m3.17-10.79a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.66 1.66 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z"}),m("path",{d:"M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13"}),m("path",{d:"M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.64 1.64 0 0 0 1.63 0z"})],-1)])])}const al=it({name:"lucide-package-open",render:nl}),ol={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function rl(e,t){return h(),k("svg",ol,[...t[0]||(t[0]=[m("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[m("circle",{cx:"12",cy:"12",r:"1"}),m("circle",{cx:"12",cy:"5",r:"1"}),m("circle",{cx:"12",cy:"19",r:"1"})],-1)])])}const sl=it({name:"lucide-ellipsis-vertical",render:rl}),ll={class:"px-4 py-3 border-b border-neutral-200 dark:border-neutral-800"},il={class:"flex items-center justify-between"},dl={class:"flex items-center gap-2"},ul={key:0,class:"text-xs font-mono text-neutral-500 dark:text-neutral-400"},cl={class:"flex items-center gap-2 border-b border-neutral-200 px-5 py-2.5 dark:border-neutral-800"},fl={class:"flex flex-1 items-center gap-2 rounded-lg border border-neutral-200 bg-white px-3 py-1.5 text-sm dark:border-neutral-800 dark:bg-neutral-900"},hl=["value"],ml={class:"flex shrink-0 overflow-hidden rounded-md border border-neutral-200 text-[11px] dark:border-neutral-700"},pl=["onClick"],vl={class:"grid grid-cols-[36px_1fr_72px_130px_1fr_32px] gap-x-4 border-b border-neutral-200 px-5 py-2 text-[11px] font-semibold text-neutral-400 dark:border-neutral-800 dark:text-neutral-500"},gl={key:0,class:"flex-1 px-5 py-5 text-sm text-neutral-500 dark:text-neutral-400"},xl={key:1,class:"flex-1 px-5 py-5 text-sm text-neutral-500 dark:text-neutral-400"},bl={key:2,class:"flex-1 overflow-y-auto"},yl=["data-agent-id","onClick"],kl={class:"flex items-center justify-center"},wl={class:"flex min-w-0 items-center gap-2"},$l=["onClick","aria-label"],Ml={key:0,class:"text-[11px] font-mono"},Tl={class:"min-w-0"},Sl={key:0,class:"relative flex items-center justify-center","data-agent-menu":""},Cl=["aria-label","aria-expanded","onClick"],_l={key:0,class:"absolute right-0 top-8 z-30 min-w-[160px] origin-top-right rounded-lg border border-neutral-200 bg-white py-1 shadow-lg dark:border-neutral-700 dark:bg-neutral-900"},Il=["onClick"],El=["onClick"],Nl=["onClick"],Al=["onClick"],Pl=["onClick"],Ll=_e({__name:"AgentBrowserPanel",props:{agents:{},selectedId:{},loading:{type:Boolean},search:{},typeFilter:{},sortBy:{},sortDir:{},threadCounts:{},readonly:{type:Boolean,default:!1}},emits:["update:search","update:typeFilter","sort","select","view-threads","add","edit","pack","unpack","delete","publish"],setup(e,{emit:t}){const n=H(null);function o(d){n.value=n.value===d?null:d}function a(){n.value=null}function l(d){const f=d.target;(!(f instanceof Element)||!f.closest("[data-agent-menu]"))&&a()}ta(()=>document.addEventListener("click",l)),At(()=>document.removeEventListener("click",l));const s=t,r=[{value:"primary",label:"Primary"},{value:"all",label:"All"},{value:"chat",label:"Chat"},{value:"autonomous",label:"Autonomous"},{value:"handler",label:"Handler"}];function i(d){return Kt(d.side_a_backing,d.side_b_backing)||"-"}function u(d,f){const v=f==="a"?d.side_a_backing:d.side_b_backing;return v==="human"?"Human":v==="handler"?(f==="a"?d.side_a_handler:d.side_b_handler)||"Handler":(f==="a"?d.side_a_agent_prompt:d.side_b_agent_prompt)||"-"}return(d,f)=>(h(),k("aside",{class:"flex h-full w-[90cqi] max-w-[780px] flex-col",onClick:f[5]||(f[5]=Te(()=>{},["stop"]))},[m("div",ll,[m("div",il,[m("div",dl,[Q(E(ot),{class:"h-[18px] w-[18px] shrink-0 opacity-60"}),f[6]||(f[6]=m("h2",{class:"text-base font-bold"},"Agents",-1)),!e.loading&&e.agents.length>0?(h(),k("span",ul," ("+j(e.agents.length)+") ",1)):W("",!0)])])]),m("div",cl,[m("label",fl,[Q(E(ls),{class:"h-4 w-4 shrink-0 text-neutral-400"}),m("input",{type:"text",placeholder:"Search agents...",value:e.search,onInput:f[0]||(f[0]=v=>d.$emit("update:search",v.target.value)),class:"w-full bg-transparent outline-none placeholder:text-neutral-400"},null,40,hl)]),m("div",ml,[(h(),k(Me,null,Ce(r,v=>m("button",{key:v.value,type:"button",class:le(["px-2.5 py-1.5 font-medium transition-colors",e.typeFilter===v.value?"bg-neutral-900 text-white dark:bg-neutral-100 dark:text-neutral-900":"text-neutral-500 hover:bg-neutral-100 dark:text-neutral-400 dark:hover:bg-neutral-800"]),onClick:x=>d.$emit("update:typeFilter",v.value)},j(v.label),11,pl)),64))]),e.readonly?W("",!0):(h(),k("button",{key:0,type:"button",class:"flex shrink-0 items-center gap-1 rounded-md bg-neutral-900 px-3 py-1.5 text-[11px] font-medium text-white transition-colors hover:bg-neutral-800 dark:bg-neutral-100 dark:text-neutral-900 dark:hover:bg-neutral-200",onClick:f[1]||(f[1]=v=>d.$emit("add"))},[Q(E(ho),{class:"h-3.5 w-3.5"}),f[7]||(f[7]=me(" New Agent ",-1))]))]),m("div",vl,[f[11]||(f[11]=m("div",null,null,-1)),m("button",{type:"button",class:"flex items-center gap-1 text-left",onClick:f[2]||(f[2]=v=>d.$emit("sort","title"))},[f[8]||(f[8]=me(" Title ",-1)),e.sortBy==="title"&&e.sortDir==="asc"?(h(),ue(E(Bn),{key:0,class:"h-3 w-3"})):e.sortBy==="title"&&e.sortDir==="desc"?(h(),ue(E(Vn),{key:1,class:"h-3 w-3"})):(h(),ue(E(Hn),{key:2,class:"h-3 w-3 opacity-40"}))]),m("button",{type:"button",class:"flex items-center gap-1 text-left",onClick:f[3]||(f[3]=v=>d.$emit("sort","threads"))},[f[9]||(f[9]=me(" Threads ",-1)),e.sortBy==="threads"&&e.sortDir==="asc"?(h(),ue(E(Bn),{key:0,class:"h-3 w-3"})):e.sortBy==="threads"&&e.sortDir==="desc"?(h(),ue(E(Vn),{key:1,class:"h-3 w-3"})):(h(),ue(E(Hn),{key:2,class:"h-3 w-3 opacity-40"}))]),m("button",{type:"button",class:"flex items-center gap-1 text-left",onClick:f[4]||(f[4]=v=>d.$emit("sort","shape"))},[f[10]||(f[10]=me(" Shape ",-1)),e.sortBy==="shape"&&e.sortDir==="asc"?(h(),ue(E(Bn),{key:0,class:"h-3 w-3"})):e.sortBy==="shape"&&e.sortDir==="desc"?(h(),ue(E(Vn),{key:1,class:"h-3 w-3"})):(h(),ue(E(Hn),{key:2,class:"h-3 w-3 opacity-40"}))]),f[12]||(f[12]=m("div",null,"Sides",-1)),f[13]||(f[13]=m("div",null,null,-1))]),e.loading?(h(),k("div",gl," Loading agents... ")):e.agents.length===0?(h(),k("div",xl," No agents match this search. ")):(h(),k("div",bl,[(h(!0),k(Me,null,Ce(e.agents,v=>(h(),k("div",{key:v.id,"data-agent-id":v.id,class:le(["grid w-full cursor-pointer grid-cols-[36px_1fr_72px_130px_1fr_32px] items-center gap-x-4 px-5 py-3 text-[13px] transition-colors",e.selectedId===v.id?"agents-surface-selected agents-border-selected":"agents-surface-hover"]),onClick:x=>d.$emit("select",v.id)},[m("div",kl,[Q(aa,{icon:v.icon,seed:v.id,class:"h-9 w-9 rounded-md object-cover"},null,8,["icon","seed"])]),m("div",wl,[v.packed?(h(),ue(E(Dn),{key:0,class:"h-4 w-4 shrink-0 text-blue-500",title:`Packed agent from ${v.packageId}`},null,8,["title"])):W("",!0),m("span",{class:le(["truncate font-medium",e.selectedId===v.id?"agents-text-selected":"text-neutral-900 dark:text-neutral-100"])},j(v.title),3)]),m("button",{type:"button",class:le(["flex items-center gap-1 rounded-md px-1.5 py-0.5 transition-colors",[e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500 hover:text-neutral-600 dark:hover:text-neutral-300",e.threadCounts[v.id]>0?"":"opacity-30"]]),onClick:Te(x=>s("view-threads",v.id),["stop"]),title:"View threads","aria-label":`View threads for ${v.title}`},[Q(E(gt),{class:"h-3.5 w-3.5"}),e.threadCounts[v.id]>0?(h(),k("span",Ml,j(e.threadCounts[v.id]),1)):W("",!0)],10,$l),m("div",{class:le(e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400")},j(i(v)),3),m("div",Tl,[m("div",{class:le(["truncate",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400"])},[m("span",{class:le(["text-[10px] font-semibold uppercase tracking-wider",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500"])},"A",2),me(" "+j(u(v,"a")),1)],2),m("div",{class:le(["truncate",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400"])},[m("span",{class:le(["text-[10px] font-semibold uppercase tracking-wider",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500"])},"B",2),me(" "+j(u(v,"b")),1)],2)]),e.readonly?W("",!0):(h(),k("div",Sl,[m("button",{type:"button",class:"rounded p-1 text-neutral-400 transition-colors hover:bg-neutral-100 hover:text-neutral-600 dark:hover:bg-neutral-800 dark:hover:text-neutral-300","aria-label":`Open actions for ${v.title}`,"aria-expanded":n.value===v.id,onClick:Te(x=>o(v.id),["stop"])},[Q(E(sl),{class:"h-4 w-4"})],8,Cl),Q(uo,{"enter-active-class":"transition-all duration-100 ease-out","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-75 ease-in","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:be(()=>[n.value===v.id?(h(),k("div",_l,[v.packed?W("",!0):(h(),k("button",{key:0,type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-neutral-700 transition-colors hover:bg-neutral-50 dark:text-neutral-200 dark:hover:bg-neutral-800",onClick:Te(x=>{d.$emit("edit",v),a()},["stop"])},[Q(E(is),{class:"h-4 w-4 text-neutral-400"}),f[14]||(f[14]=me(" Edit ",-1))],8,Il)),v.packed?W("",!0):(h(),k("button",{key:1,type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-neutral-700 transition-colors hover:bg-neutral-50 dark:text-neutral-200 dark:hover:bg-neutral-800",onClick:Te(x=>{d.$emit("pack",v),a()},["stop"])},[Q(E(Dn),{class:"h-4 w-4 text-neutral-400"}),f[15]||(f[15]=me(" Pack ",-1))],8,El)),v.packed?(h(),k("button",{key:2,type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-neutral-700 transition-colors hover:bg-neutral-50 dark:text-neutral-200 dark:hover:bg-neutral-800",onClick:Te(x=>{d.$emit("unpack",v),a()},["stop"])},[Q(E(al),{class:"h-4 w-4 text-neutral-400"}),f[16]||(f[16]=me(" Unpack ",-1))],8,Nl)):W("",!0),v.packed?(h(),k("button",{key:3,type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-neutral-700 transition-colors hover:bg-neutral-50 dark:text-neutral-200 dark:hover:bg-neutral-800",onClick:Te(x=>{d.$emit("publish",v),a()},["stop"])},[Q(E(Dn),{class:"h-4 w-4 text-neutral-400"}),f[17]||(f[17]=me(" Publish Package ",-1))],8,Al)):W("",!0),f[18]||(f[18]=m("div",{class:"my-1 border-t border-neutral-100 dark:border-neutral-800"},null,-1)),m("button",{type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-red-600 transition-colors hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/30",onClick:Te(x=>{d.$emit("delete",v),a()},["stop"])},[Q(E(ds),{class:"h-4 w-4"}),me(" "+j(v.packed?"Delete Package":"Delete"),1)],8,Pl)])):W("",!0)]),_:2},1024)]))],10,yl))),128))]))]))}});function Xa(e){return Math.round(e*1e3)/1e3}function Fn(e){return e?Object.entries(e).sort(([t],[n])=>t.localeCompare(n)).map(([t,n])=>`${t}:${n.left}:${n.width}`).join("|"):""}function jn(e,t){return Number.isFinite(e)?!Number.isFinite(t)||t<=0?Xa(e):Xa(e/t):e}function Rl(e,t,n,o,a){const l=H(!1),s=H(new Map);let r=null,i=null,u=null,d=null,f="",v="",x=null;const g=new Map;function c(){return e.value.nodes.filter(w=>w.type!=="hook").map(w=>w.id)}function b(){const w=c();return w.length>0&&w.every(U=>s.value.has(U))}function S(){return Array.from(s.value.entries()).sort(([w],[U])=>w.localeCompare(U)).map(([w,U])=>`${w}:${U.w}x${U.h}:${U.modelAnchorY??""}:${Fn(U.toolColumns)}`).join("|")}function C(){return new Set(e.value.nodes.map(w=>w.id))}function _(){r&&clearTimeout(r),i&&clearTimeout(i),u&&clearTimeout(u),r=null,i=null,u=null}function y(){return typeof ResizeObserver>"u"?null:x||(x=new ResizeObserver(w=>{for(const U of w)for(const[N,T]of g)if(T===U.target){M(N,T);break}}),x)}function L(w,U){const N=g.get(w);if(N===U)return;const T=y();N&&T?.unobserve(N),g.set(w,U),T?.observe(U)}function P(){const w=C();for(const[U,N]of g)w.has(U)||(x?.unobserve(N),g.delete(U),s.value.delete(U))}function D(){je(()=>{P();for(const[w,U]of g)M(w,U)})}function Z(){u&&clearTimeout(u),u=setTimeout(()=>{t.value||l.value||e.value.nodes.length===0||!b()||je(()=>{l.value=!0,n(G())})},800)}Ae(t,w=>{if(w){l.value=!1,s.value.clear(),v="",a?.(),_();return}e.value.nodes.length>0&&(D(),Z())}),Ae(()=>e.value.nodes.map(w=>w.id).join(","),w=>{w!==f&&(f=w,w&&(l.value=!1,v="",a?.(),_(),D(),Z()))});const q=R(()=>e.value.nodes.map(w=>{const U=s.value.get(w.id);return U?{...w,width:U.w,height:U.h}:w})),Y=R(()=>{const w={};for(const[U,N]of s.value)(N.modelAnchorY!==void 0||N.toolColumns)&&(w[U]={modelAnchorY:N.modelAnchorY,toolColumns:N.toolColumns});return w});function G(){const w=q.value,U=e.value.groups;if(w.length===0)return e.value.bounds;let N=1/0,T=1/0,A=-1/0,X=-1/0;for(const F of w)N=Math.min(N,F.x),T=Math.min(T,F.y),A=Math.max(A,F.x+F.width),X=Math.max(X,F.y+F.height);for(const F of U)N=Math.min(N,F.x),T=Math.min(T,F.y),A=Math.max(A,F.x+F.width),X=Math.max(X,F.y+F.height);return{x:N,y:T,width:A-N,height:X-T}}function B(){d&&cancelAnimationFrame(d),d=requestAnimationFrame(()=>{const w=S();w!==v&&(v=w,o(Object.fromEntries(s.value))),!(t.value||!b())&&(r&&clearTimeout(r),r=setTimeout(()=>{t.value||!b()||(u&&clearTimeout(u),u=null,l.value=!0,je(()=>{n(G()),i&&clearTimeout(i),i=setTimeout(()=>n(G()),220)}))},180))})}function M(w,U){je(()=>{const N=U.offsetWidth,T=U.offsetHeight;if(N<=0||T<=0)return;const A=U.getBoundingClientRect(),X=N>0&&A.width>0?A.width/N:1,F=T>0&&A.height>0?A.height/T:1;let pe;const se=U.querySelector("[data-model-anchor]");if(se&&A.height>0){const ie=se.getBoundingClientRect();ie.height>0&&(pe=jn(ie.top+ie.height/2-A.top,F))}let fe;const K=U.querySelectorAll("[data-tool-column]");if(K.length>0&&A.width>0){fe={};for(const ie of K){const de=ie.dataset.toolColumn;if(!de)continue;const ve=ie.getBoundingClientRect();fe[de]={left:jn(ve.left-A.left,X),width:jn(ve.width,X)}}}const z=s.value.get(w),te=z?.w!==N||z?.h!==T;if(!(z?.w===N&&z?.h===T&&z?.modelAnchorY===pe&&Fn(z?.toolColumns)===Fn(fe))){if(s.value.set(w,{w:N,h:T,modelAnchorY:pe,toolColumns:fe}),l.value&&!te){const ie=S();ie!==v&&(v=ie,o(Object.fromEntries(s.value)));return}B()}})}function I(w,U){L(w,U),M(w,U)}return At(()=>{r&&clearTimeout(r),i&&clearTimeout(i),u&&clearTimeout(u),d&&cancelAnimationFrame(d),x?.disconnect(),x=null,g.clear()}),{layoutStable:l,measurements:s,nodesWithMeasuredSizes:q,nodeMetrics:Y,measureNode:I,measuredBounds:G}}function Ol(e){const t=H(null);let n=0,o="",a=0,l="",s=null,r=null;function i(v){const x=e.measurements.value.get(v.id);return{x:v.x,y:v.y,width:x?.w??v.width,height:x?.h??v.height}}function u(v){if(!e.shouldHandleClick())return;const x=v.target;x instanceof Element&&(x.closest("[data-canvas-node]")||x.closest("[data-canvas-group]"))||(t.value=null,e.onDeselect())}function d(v,x){if(!e.shouldHandleClick())return;const g=v.target;if(g instanceof Element&&g.closest("[data-canvas-node]"))return;const c=Date.now(),b=c-n<350&&o===x.id;if(n=c,o=x.id,!b){e.focusNode(x);return}const S=e.containerRef.value;if(!S)return;const C=S.getBoundingClientRect(),_=40,y=(C.width-_*2)/x.width,L=(C.height-_*2)/x.height;e.focusNode(x,Math.min(y,L,1.5))}function f(v){if(!e.shouldHandleClick())return;e.selectedNodeId.value||e.saveViewport(),e.onSelectNode(v);const x=i(v);t.value=x;const g=Date.now(),c=g-a<350&&l===v.id;a=g,l=v.id,e.focusNode(x,c?1.2:void 0)}return Ae(e.selectedNodeId,(v,x)=>{if(!v){t.value=null,x&&e.restoreViewport();return}const g=e.layout.value.nodes.find(c=>c.id===v);g&&(t.value=i(g))}),ta(()=>{s=new ResizeObserver(()=>{r&&clearTimeout(r),r=setTimeout(()=>{const v=t.value,x=e.containerRef.value;if(!v||!x||!e.layoutStable.value)return;const g=x.getBoundingClientRect();let c=e.viewportState.value.scale;const b=60;if(v.width>0&&v.height>0){const S=(g.width-b*2)/v.width,C=(g.height-b*2)/v.height,_=Math.min(S,C);c>_&&_>.1&&(c=_)}e.focusNode(v,c)},320)}),e.containerRef.value&&s.observe(e.containerRef.value)}),At(()=>{s?.disconnect(),r&&clearTimeout(r)}),{handleCanvasClick:u,handleGroupClick:d,handleNodeSelect:f}}const nn=6,Dl=250;function Bl(e,t={}){const{minScale:n=.1,maxScale:o=2.5,padding:a=80,panPadding:l=a}=t,s=H({x:0,y:0,scale:1}),r=H(!1),i=H(!1),u={x:0,y:0,viewX:0,viewY:0},d={x:0,y:0,time:0};let f=null,v=!1,x=0,g=null,c=null,b=null;const S=150;function C(){i.value=!0,c&&clearTimeout(c),c=setTimeout(()=>{i.value=!1,c=null},S)}let _=null,y=!1,L=!1,P=null;function D(){y=!0,L=!0}function Z(){g&&clearTimeout(g),g=setTimeout(()=>{const{x:p,y:$,scale:V}=s.value,oe=Math.round(p/V)*V,ce=Math.round($/V)*V;(oe!==p||ce!==$)&&(s.value=M({x:oe,y:ce,scale:V}))},120)}const q=R(()=>{const{x:p,y:$,scale:V}=s.value;return i.value?{transform:`translate3d(${p}px, ${$}px, 0) scale(${V})`,transformOrigin:"0 0",willChange:"transform"}:{transform:`translate3d(${p/V}px, ${$/V}px, 0)`,zoom:V,transformOrigin:"0 0",willChange:"transform"}}),Y=R(()=>Math.round(s.value.scale*100));function G(p){return Math.min(o,Math.max(n,p))}function B(p,$,V){return Math.min(V,Math.max($,p))}function M(p){const $=G(p.scale),V=e.value,oe=P;if(!V||!oe||oe.width<=0||oe.height<=0)return{...p,scale:$};const ce=V.getBoundingClientRect();if(ce.width<=0||ce.height<=0)return{...p,scale:$};const ne=Math.max(0,l)/$,re=Math.max(0,l)/$,xe=(ce.width/2-p.x)/$,ke=(ce.height/2-p.y)/$,ye=B(xe,oe.x-ne,oe.x+oe.width+ne),Se=B(ke,oe.y-re,oe.y+oe.height+re);return{x:ce.width/2-ye*$,y:ce.height/2-Se*$,scale:$}}function I(p,$=!1){s.value=M(p),$&&Z()}function w(p,$,V){const oe=G(p),ce=s.value,ne=oe/ce.scale;I({x:$-($-s.value.x)*ne,y:V-(V-s.value.y)*ne,scale:oe},!0)}function U(p){const $=e.value;if($){if(p.ctrlKey||p.metaKey){p.preventDefault(),p.stopPropagation?.(),D(),C();const V=$.getBoundingClientRect(),oe=p.clientX-V.left,ce=p.clientY-V.top,ne=Math.min(Math.abs(p.deltaY),10)/10,xe=1+(p.deltaY>0?-1:1)*.03*ne;w(s.value.scale*xe,oe,ce);return}p.preventDefault(),p.stopPropagation?.(),D(),C(),I({...s.value,x:s.value.x-p.deltaX,y:s.value.y-p.deltaY},!0)}}function N(p){p.button!==0&&p.button!==1||(f=p.pointerId,r.value=!1,u.x=p.clientX,u.y=p.clientY,u.viewX=s.value.x,u.viewY=s.value.y,d.x=p.clientX,d.y=p.clientY,d.time=Date.now(),v=!1)}function T(p){if(f!==p.pointerId)return;const $=p.clientX-d.x,V=p.clientY-d.y,oe=$*$+V*V;!r.value&&oe>nn*nn&&(r.value=!0,v||(p.currentTarget.setPointerCapture(p.pointerId),v=!0)),r.value&&(C(),I({...s.value,x:u.viewX+(p.clientX-u.x),y:u.viewY+(p.clientY-u.y)}))}function A(p){if(f!==p.pointerId)return;const $=p.clientX-d.x,V=p.clientY-d.y,oe=$*$+V*V,ce=Date.now()-d.time<=Dl&&oe<=nn*nn;r.value&&D(),ce||(x=Date.now()+32),r.value=!1,f=null,v&&(p.currentTarget?.releasePointerCapture(p.pointerId),v=!1),Z()}function X(){return Date.now()>=x}function F(){const p=e.value;if(!p)return{cx:0,cy:0};const $=p.getBoundingClientRect();return{cx:$.width/2,cy:$.height/2}}function pe(){D(),C();const{cx:p,cy:$}=F();w(s.value.scale+.1,p,$)}function se(){D(),C();const{cx:p,cy:$}=F();w(s.value.scale-.1,p,$)}function fe(p,$={}){P=p.width>0&&p.height>0?{...p}:null;const V=e.value;if(!V||p.width===0||p.height===0||!$.force&&L)return;const oe=V.getBoundingClientRect(),ce=(oe.width-a*2)/p.width,ne=(oe.height-a*2)/p.height,re=G(Math.min(ce,ne,1));I({x:(oe.width-p.width*re)/2-p.x*re,y:(oe.height-p.height*re)/2-p.y*re,scale:re}),L=!1}function K(){L=!1}function z(){I({x:0,y:0,scale:1})}function te(p){P=p&&p.width>0&&p.height>0?{...p}:null,P&&(s.value=M(s.value))}function ie(){_={...s.value},y=!1}function de(){const p=_;_=null,!(!p||y)&&ve(p)}function ve(p,$){g&&(clearTimeout(g),g=null);const V={...s.value},oe=300,ce=performance.now();b&&cancelAnimationFrame(b);function ne(re){const xe=Math.min((re-ce)/oe,1),ke=1-Math.pow(1-xe,3);C(),s.value=M({x:V.x+(p.x-V.x)*ke,y:V.y+(p.y-V.y)*ke,scale:V.scale+(p.scale-V.scale)*ke}),xe<1?b=requestAnimationFrame(ne):(s.value=M($?$():p),b=null)}b=requestAnimationFrame(ne)}function ae(){g&&(clearTimeout(g),g=null),c&&(clearTimeout(c),c=null),b&&(cancelAnimationFrame(b),b=null),f=null,v=!1,r.value=!1,i.value=!1}Jr()&&Zr(ae);function J(p,$){const V=e.value;if(!V)return;const oe=G($??s.value.scale),ce=p.x+p.width/2,ne=p.y+p.height/2;function re(){const xe=V.getBoundingClientRect();return{x:xe.width/2-ce*oe,y:xe.height/2-ne*oe,scale:oe}}ve(re(),re)}return{state:s,isPanning:r,transformStyle:q,scalePercent:Y,onWheel:U,onPointerDown:N,onPointerMove:T,onPointerUp:A,shouldHandleClick:X,zoomIn:pe,zoomOut:se,fitToView:fe,resetAutoFitLock:K,focusNode:J,resetView:z,setContentBounds:te,saveViewport:ie,restoreViewport:de}}function Vl(e){return!e.hasAgent||e.hasError?!1:e.loadingComposition?!0:e.hasRevealedStableDiagram?!1:!e.layoutStable||e.loadingAsyncDetail}const Hl={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},Ul=_e({__name:"CanvasGrid",setup(e){return(t,n)=>(h(),k("svg",Hl,[...n[0]||(n[0]=[m("defs",null,[m("pattern",{id:"canvas-dot-grid",x:"0",y:"0",width:"24",height:"24",patternUnits:"userSpaceOnUse"},[m("circle",{cx:"12",cy:"12",r:"1",class:"fill-neutral-400/20 dark:fill-neutral-500/20"})])],-1),m("rect",{width:"100%",height:"100%",fill:"url(#canvas-dot-grid)"},null,-1)])]))}}),Le=8,Be=20,Ee=20,an=18,We=20,on=8,rt=8,zl=12,Pe=10,Fl=10,rn=16,sn=24,jl=38,Ka=44,Xl=12;function Ya(e,t,n){const o=n==="left"||n==="right"?e.height:e.width;if(t<=1)return[n==="left"||n==="right"?e.y+e.height/2:e.x+e.width/2];const a=Math.min(Be,o/(t+1)),l=n==="left"||n==="right"?e.y:e.x,s=l+a,i=(l+o-a-s)/(t-1);return Array.from({length:t},(u,d)=>s+d*i)}function Kl(e){const t=new Set,n=[];for(const o of e){const a=[o.kind??"structural",o.from,o.to,o.sideId,o.toolKind??""].join("|");t.has(a)||(t.add(a),n.push(o))}return n}function kn(e){return{id:e.id,x:e.x-an,y:e.y-an,width:e.width+an*2,height:e.height+an*2}}function Ft(e,t,n=t){return e.map(o=>({id:o.id,x:o.x-t,y:o.y-n,width:o.width+t*2,height:o.height+n*2}))}function vn(e,t,n){return t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height}function qa(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function fn(e,t,n){const o=qa(e),a=qa(t);return n.map(kn).filter(l=>vn(l,o.x,o.y)&&!vn(l,a.x,a.y))}function Yl(e,t,n){const o=Math.min(e.x,t.x),a=Math.max(e.x+e.width,t.x+t.width),l=Math.min(e.y,t.y),s=Math.max(e.y+e.height,t.y+t.height);return n.map(kn).filter(r=>!vn(r,e.x+e.width/2,e.y+e.height/2)&&!vn(r,t.x+t.width/2,t.y+t.height/2)&&r.x<=a+Ee&&r.x+r.width>=o-Ee&&r.y<=s+Ee&&r.y+r.height>=l-Ee)}function Tt(e,t,n){const o=[{x:e.x+e.width/2,y:e.y+e.height/2},{x:t.x+t.width/2,y:t.y+t.height/2}];return n.filter(a=>!o.some(l=>l.x>=a.x&&l.x<=a.x+a.width&&l.y>=a.y&&l.y<=a.y+a.height)).map(kn)}function Ze(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n);for(const r of o){if(a.has(r.id))continue;const i=r.x-Ee,u=r.x+r.width+Ee,d=r.y-Ee,f=r.y+r.height+Ee;if(e>=d&&e<=f&&s>=i&&l<=u)return r}return null}function Ct(e,t,n,o,a,l=Ee,s=Ee){const r=Math.min(t,n),i=Math.max(t,n);for(const u of o){if(a.has(u.id))continue;const d=u.x-l,f=u.x+u.width+l,v=u.y-s,x=u.y+u.height+s;if(e>=d&&e<=f&&i>=v&&r<=x)return u}return null}function Wn(e,t,n,o,a,l,s){const r=Math.min(o,a),i=Math.max(o,a);let u=e;for(let d=0;d<6;d++){const f=Ze(u,t,n,l,s);if(!f)return u;const v=f.y-Ee-We,x=f.y+f.height+Ee+We,g=Math.abs(v-u)<=Math.abs(x-u)?v:x;u=Math.max(r-200,Math.min(i+200,g))}return u}function gn(e,t,n,o,a,l,s,r,i){let u=r<0?Math.min(e,i-1):Math.max(e,i+1);for(let d=0;d<6;d++){const f=Ze(u,t,n,l,s);if(!f)return u;u=r<0?f.y-Ee-We:f.y+f.height+Ee+We}return u}function Io(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n);return Eo(e,ua(l,s,o,a))}function ua(e,t,n,o,a=Ee+We,l=Ee){const s=[];for(const i of n){if(o.has(i.id))continue;const u=i.y-l;i.y+i.height+l<e||u>t||s.push([i.x-a,i.x+i.width+a])}if(s.length===0)return s;s.sort((i,u)=>i[0]-u[0]);const r=[s[0]];for(let i=1;i<s.length;i++){const u=r[r.length-1],d=s[i];d[0]<=u[1]?u[1]=Math.max(u[1],d[1]):r.push(d)}return r}function Eo(e,t){if(t.length===0||!t.find(([s,r])=>e>=s&&e<=r))return e;const o=[t[0][0]-1,t[t.length-1][1]+1];for(let s=0;s<t.length-1;s++){const r=t[s][1]+1,i=t[s+1][0]-1;i>=r&&o.push((r+i)/2)}let a=o[0],l=Math.abs(a-e);for(const s of o){const r=Math.abs(s-e);r<l&&(a=s,l=r)}return a}function Yt(e,t,n,o,a,l,s,r=Ee+We,i=Ee){const u=ua(Math.min(t,n),Math.max(t,n),o,a,r,i);if(u.length===0)return e;let d=l<0?Math.min(e,s-1):Math.max(e,s+1);for(let f=0;f<u.length;f++){const v=u.find(([x,g])=>d>=x&&d<=g);if(!v)return d;d=l<0?v[0]-1:v[1]+1}return d}function Ga(e,t){return e<=1?[0]:Array.from({length:e},(n,o)=>o*t)}function No(e){if(e.length<=1)return[e];const t=[];return e.forEach((n,o)=>{const a=[...e.slice(0,o),...e.slice(o+1)];for(const l of No(a))t.push([n,...l])}),t}function ca(e,t){if(e.orientation===t.orientation)return!1;const n=e.orientation==="horizontal"?e:t,o=e.orientation==="vertical"?e:t,a=Math.min(n.x1,n.x2),l=Math.max(n.x1,n.x2),s=Math.min(o.y1,o.y2),r=Math.max(o.y1,o.y2);return o.x1>a&&o.x1<l&&n.y1>s&&n.y1<r}function ql(e,t,n,o,a,l){const s=[];return Math.abs(n-e)>=1&&s.push({orientation:"horizontal",x1:e,y1:t,x2:n,y2:t}),s.push({orientation:"vertical",x1:n,y1:t,x2:n,y2:o}),s.push({orientation:"horizontal",x1:n,y1:o,x2:a,y2:o}),s.push({orientation:"vertical",x1:a,y1:o,x2:a,y2:l}),s}function Gl(e,t,n,o,a){if(Math.abs(e-n)<1)return`M ${e} ${t} L ${n} ${o}`;const l=Math.min(Le,Math.abs(a-t)/2,Math.abs(o-a)/2,Math.abs(n-e)/2),s=n>e?1:-1,r=a>t?1:-1,i=o>a?1:-1;return[`M ${e} ${t}`,`L ${e} ${a-l*r}`,`Q ${e} ${a} ${e+l*s} ${a}`,`L ${n-l*s} ${a}`,`Q ${n} ${a} ${n} ${a+l*i}`,`L ${n} ${o}`].join(" ")}function Ao(e,t,n,o,a){return Math.abs(e-n)<1?[{orientation:"vertical",x1:e,y1:t,x2:n,y2:o}]:[{orientation:"vertical",x1:e,y1:t,x2:e,y2:a},{orientation:"horizontal",x1:e,y1:a,x2:n,y2:a},{orientation:"vertical",x1:n,y1:a,x2:n,y2:o}]}function wn(e,t,n){return{d:`M ${e} ${t} L ${n} ${t}`,segments:[{orientation:"horizontal",x1:e,y1:t,x2:n,y2:t}]}}function fa(e,t,n){return{d:`M ${e} ${t} L ${e} ${n}`,segments:[{orientation:"vertical",x1:e,y1:t,x2:e,y2:n}]}}function Wa(e,t,n,o){if(Math.abs(t-o)<1)return wn(e,t,n);if(Math.abs(e-n)<1)return fa(e,t,o);const a=n>e?1:-1,l=o>t?1:-1,s=Math.min(Le,Math.abs(n-e)/2,Math.abs(o-t)/2);return{d:[`M ${e} ${t}`,`L ${n-s*a} ${t}`,`Q ${n} ${t} ${n} ${t+s*l}`,`L ${n} ${o}`].join(" "),segments:[{orientation:"horizontal",x1:e,y1:t,x2:n,y2:t},{orientation:"vertical",x1:n,y1:t,x2:n,y2:o}]}}function Wl(e,t,n,o,a){if(Math.abs(t-a)<1)return wn(e,t,o);const l=n>e?1:-1,s=o>n?1:-1,r=a>t?1:-1,i=Math.min(Le,Math.abs(n-e)/2||Le,Math.abs(a-t)/2||Le,Math.abs(o-n)/2||Le);return Math.abs(n-e)<2?Qn(e,t,o,a):{d:[`M ${e} ${t}`,`L ${n-i*l} ${t}`,`Q ${n} ${t} ${n} ${t+i*r}`,`L ${n} ${a-i*r}`,`Q ${n} ${a} ${n+i*s} ${a}`,`L ${o} ${a}`].join(" "),segments:[{orientation:"horizontal",x1:e,y1:t,x2:n,y2:t},{orientation:"vertical",x1:n,y1:t,x2:n,y2:a},{orientation:"horizontal",x1:n,y1:a,x2:o,y2:a}]}}function Qn(e,t,n,o){if(Math.abs(e-n)<1)return fa(e,t,o);if(Math.abs(t-o)<1)return wn(e,t,n);const a=n>e?1:-1,l=o>t?1:-1,s=Math.min(Le,Math.abs(n-e)/2,Math.abs(o-t)/2);return{d:[`M ${e} ${t}`,`L ${e} ${o-s*l}`,`Q ${e} ${o} ${e+s*a} ${o}`,`L ${n} ${o}`].join(" "),segments:[{orientation:"vertical",x1:e,y1:t,x2:e,y2:o},{orientation:"horizontal",x1:e,y1:o,x2:n,y2:o}]}}function Ql(e,t,n,o,a,l,s){if(Math.abs(t-o)<1&&!Ze(t,e,n,a,l))return wn(e,t,n);if(Math.abs(e-n)<1&&!Ct(e,t,o,a,l))return fa(e,t,o);const r=!Ze(t,e,n,a,l)&&!Ct(n,t,o,a,l),i=!Ct(e,t,o,a,l)&&!Ze(o,e,n,a,l);return r&&i?s==="horizontal"?Wa(e,t,n,o):Qn(e,t,n,o):r?Wa(e,t,n,o):i?Qn(e,t,n,o):null}function Jl(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Po(e,t){if(e.orientation==="horizontal"){const a=Math.min(e.x1,e.x2),l=Math.max(e.x1,e.x2);return l-a<2?null:{id:t,x:a,y:e.y1-on,width:l-a,height:on*2}}const n=Math.min(e.y1,e.y2),o=Math.max(e.y1,e.y2);return o-n<2?null:{id:t,x:e.x1-on,y:n,width:on*2,height:o-n}}function Qa(e,t,n){return e.some((o,a)=>{const l=Po(o,`segment-${a}`);return l?t.some(s=>n.has(s.id)?!1:Jl(l,s)):!1})}function Zl(e){const t=[];for(const n of e)n.segments.forEach((o,a)=>{const l=Po(o,`edge:${n.id}:${a}`);l&&t.push(l)});return t}function Xn(e,t,n,o,a){const l=[...fn(e,t,n),...Yl(e,t,n)],s=Array.from(new Map(l.map(r=>[r.id,r])).values());return s.length===0?o:a?Math.max(o,...s.map(r=>r.y+r.height+Ee+We)):Math.min(o,...s.map(r=>r.y-Ee-We))}function pt(e,t){const n=t?.[e.id],o=e.type==="model"?jl:e.type==="side"||e.type==="prompt"||e.type==="tool"&&e.data.kind==="prompt"?Ka:e.height/2,a=n?.modelAnchorY??o;return e.y+Math.max(Be,Math.min(e.height-Be,a))}function xn(e,t,n,o,a,l){let s=l;const r=n<0?e.x:e.x+e.width;for(const i of o){if(a.has(i.id))continue;const u=i.y-Ee,d=i.y+i.height+Ee;if(!(t<u||t>d))if(n<0){const f=i.x+i.width+Ee;if(f>=r)continue;s=Math.min(s,r-f-1)}else{const f=i.x-Ee;if(f<=r)continue;s=Math.min(s,f-r-1)}}return Math.max(0,s)}function ei(e,t,n,o,a,l){const s=t.y,r=t.x,i=[];for(const d of[-1,1]){const f=xn(e,s,d,a,l,zl),v=r+d*Math.max(0,f);Ct(v,s,n,a,l,rt,rt)||i.push(v)}for(const d of[-1,1]){const f=xn(e,s,d,a,l,14);i.push(Yt(r+d*f,s,n,a,l,d,r,rt,rt))}return Array.from(new Set(i.map(d=>Math.round(d*1e3)/1e3))).reduce((d,f)=>{const v=Ze(n,d,o,a,l),x=Ze(n,f,o,a,l);return!!x!=!!v?x?d:f:Math.abs(f-r)<Math.abs(d-r)?f:d})}function ti(e,t,n,o,a,l,s,r){const i=t.x,u=t.y,d=o.x,f=o.y,v=Ql(i,u,d,f,s,r,"horizontal");if(v&&v.segments.length===1&&!Qa(v.segments,s,r))return v;const x=t.side==="left"?-1:1,c=xn(e,u,x,s,r,14),b=i+x*c,S=w=>!Ze(u,i,w,s,r),C=Yt(b,u,f,s,r,x,i);if((d-i)*x>=0&&Math.abs(C-i)>1&&Math.abs(C-d)>1&&S(C)&&!Ct(C,u,f,s,r)&&!Ze(f,C,d,s,r)){const w=Wl(i,u,C,d,f);if(!Qa(w.segments,s,r))return w}let y=Wn(a,b,d,u,f,s,r),L=Yt(b,u,y,s,r,x,i);S(L)||(L=S(b)?b:i),y=Wn(a,L,d,u,f,s,r);const P=Math.abs(L-i),D=o.side==="left"?n.x-(Be+24):n.x+n.width+Be+24,Z=l??Io(D,y,f,s,r),q=L>i?1:-1,Y=y>u?1:-1,G=Z>L?1:-1,B=f>y?1:-1,M=d>Z?1:-1,I=Math.min(Le,Math.abs(P)/2||Le,Math.abs(y-u)/2||Le,Math.abs(Z-L)/2||Le,Math.abs(f-y)/2||Le,Math.abs(d-Z)/2||Le);return P<2?{d:[`M ${i} ${u}`,`L ${i} ${y-I*Y}`,`Q ${i} ${y} ${i+I*G} ${y}`,`L ${Z-I*G} ${y}`,`Q ${Z} ${y} ${Z} ${y+I*B}`,`L ${Z} ${f-I*B}`,`Q ${Z} ${f} ${Z+I*M} ${f}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"vertical",x1:i,y1:u,x2:i,y2:y},{orientation:"horizontal",x1:i,y1:y,x2:Z,y2:y},{orientation:"vertical",x1:Z,y1:y,x2:Z,y2:f},{orientation:"horizontal",x1:Z,y1:f,x2:d,y2:f}]}:{d:[`M ${i} ${u}`,`L ${L-I*q} ${u}`,`Q ${L} ${u} ${L} ${u+I*Y}`,`L ${L} ${y-I*Y}`,`Q ${L} ${y} ${L+I*G} ${y}`,`L ${Z-I*G} ${y}`,`Q ${Z} ${y} ${Z} ${y+I*B}`,`L ${Z} ${f-I*B}`,`Q ${Z} ${f} ${Z+I*M} ${f}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"horizontal",x1:i,y1:u,x2:L,y2:u},{orientation:"vertical",x1:L,y1:u,x2:L,y2:y},{orientation:"horizontal",x1:L,y1:y,x2:Z,y2:y},{orientation:"vertical",x1:Z,y1:y,x2:Z,y2:f},{orientation:"horizontal",x1:Z,y1:f,x2:d,y2:f}]}}function ni(e,t,n,o,a,l,s,r){const i=t.x,u=t.y,d=n.x,f=n.y,v=t.side==="left"?-1:1,x=xn(e,u,v,s,r,14),g=i+v*x,c=a??Yt(g,u,o,l,r,v,i,rt,rt),b=a!==null?o:gn(o,c,d,u,f,s,r,f>=u?1:-1,u),S=Math.abs(c-i),C=c>i?1:-1,_=b>u?1:-1,y=d>c?1:-1,L=f>b?1:-1,P=Math.min(Le,Math.abs(S)/2||Le,Math.abs(b-u)/2||Le,Math.abs(d-c)/2||Le,Math.abs(f-b)/2||Le);return S<2?{d:[`M ${i} ${u}`,`L ${i} ${b-P*_}`,`Q ${i} ${b} ${i+P*y} ${b}`,`L ${d-P*y} ${b}`,`Q ${d} ${b} ${d} ${b+P*L}`,`L ${d} ${f}`].join(" "),segments:Ao(i,u,d,f,b)}:{d:[`M ${i} ${u}`,`L ${c-P*C} ${u}`,`Q ${c} ${u} ${c} ${u+P*_}`,`L ${c} ${b-P*_}`,`Q ${c} ${b} ${c+P*y} ${b}`,`L ${d-P*y} ${b}`,`Q ${d} ${b} ${d} ${b+P*L}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"horizontal",x1:i,y1:u,x2:c,y2:u},{orientation:"vertical",x1:c,y1:u,x2:c,y2:b},{orientation:"horizontal",x1:c,y1:b,x2:d,y2:b},{orientation:"vertical",x1:d,y1:b,x2:d,y2:f}]}}function ai(e){switch(e){case"outboard-left":case"sidebar-left":return"right";case"outboard-right":case"sidebar-right":return"left";case"below-row":return"top";default:return"left"}}function ht(e,t,n){if((n&&n.type==="model"?n.placementMode:void 0)==="below-row"){const r=e.x+e.width/2,u=(n?n.x+n.width/2:r)>=r?"right":"left";return{side:u,x:u==="right"?e.x+e.width:e.x,y:pt(e,t)}}if(n?.type==="model"&&oi(e))return{side:"left",x:e.x,y:pt(e,t)};const a=e.x+e.width/2,s=(n?n.x+n.width/2:a)>=a?"right":"left";return{side:s,x:s==="right"?e.x+e.width:e.x,y:pt(e,t)}}function oi(e){return e.type==="prompt"||e.type==="side"&&e.data.mode==="ai"||e.type==="tool"&&e.data.kind==="prompt"}const Qe=8,bn=6,ri=12,Ja=6;function qe(e){return e.x+e.width/2}function si(e){const t=[];for(const a of e){const l=t[t.length-1];l&&Math.abs(l.x-a.x)<1&&Math.abs(l.y-a.y)<1||t.push(a)}if(t.length===0)return"";if(t.length===1)return`M ${t[0].x} ${t[0].y}`;const n=[`M ${t[0].x} ${t[0].y}`];for(let a=1;a<t.length-1;a++){const l=t[a-1],s=t[a],r=t[a+1],i=Math.abs(s.x-l.x)+Math.abs(s.y-l.y),u=Math.abs(r.x-s.x)+Math.abs(r.y-s.y),d=Math.min(Le,i/2,u/2);if(d<1){n.push(`L ${s.x} ${s.y}`);continue}const f=Math.sign(s.x-l.x),v=Math.sign(s.y-l.y),x=Math.sign(r.x-s.x),g=Math.sign(r.y-s.y),c={x:s.x-f*d,y:s.y-v*d},b={x:s.x+x*d,y:s.y+g*d};n.push(`L ${c.x} ${c.y}`),n.push(`Q ${s.x} ${s.y} ${b.x} ${b.y}`)}const o=t[t.length-1];return n.push(`L ${o.x} ${o.y}`),n.join(" ")}function li(e){if(e.length===0)return"";const t=[{x:e[0].x1,y:e[0].y1},...e.map(n=>({x:n.x2,y:n.y2}))];return si(t)}function Za(e){return e.length===0?"":[{x:e[0].x1,y:e[0].y1},...e.map(n=>({x:n.x2,y:n.y2}))].map((n,o)=>`${o===0?"M":"L"} ${n.x} ${n.y}`).join(" ")}function ii(e){return e==="tool"||e==="provider"||e==="mcp"}function di(e){return Math.round(e/ri)}function Jn(e){const t=[];for(let n=1;n<e.length;n++){const o=e[n-1],a=e[n];if(!(Math.abs(o.x-a.x)<1&&Math.abs(o.y-a.y)<1)){if(Math.abs(o.y-a.y)<1){t.push({orientation:"horizontal",x1:o.x,y1:o.y,x2:a.x,y2:o.y});continue}if(Math.abs(o.x-a.x)>=1&&Math.abs(o.y-a.y)>=1){t.push({orientation:"vertical",x1:o.x,y1:o.y,x2:o.x,y2:a.y}),t.push({orientation:"horizontal",x1:o.x,y1:a.y,x2:a.x,y2:a.y});continue}t.push({orientation:"vertical",x1:o.x,y1:o.y,x2:o.x,y2:a.y})}}return t}function eo(e,t,n,o,a,l,s){const r=a.rowLaneY,i=Jn([{x:e,y:t},{x:e,y:r},{x:n,y:r},{x:n,y:o}]),u=ui(e,t,r,l,s),d=ci(r,e,n,l,s)??fi(r,e,n,l,s),f=u??d;if(!f)return{d:Za(i),segments:i};const v=n<e?-1:1,x=bn+Math.abs(a.aisleOffset),g=v<0?f.x-x:f.x+f.width+x,c=f.y+f.height+bn,b=a.rowIndex>0?c:Math.min(a.sourceLaneY,Math.max(r+Qe/2,c)),S=r>=t?Math.max(t+Qe,a.escapeLaneY):Math.min(t-Qe,b),C=Jn([{x:e,y:t},{x:e,y:S},{x:g,y:S},{x:g,y:r},{x:n,y:r},{x:n,y:o}]);return{d:Za(C),segments:C}}function Lo(e,t){if(e.orientation!==t.orientation)return 0;if(e.orientation==="horizontal"){if(Math.abs(e.y1-t.y1)>1)return 0;const s=Math.min(e.x1,e.x2),r=Math.max(e.x1,e.x2),i=Math.min(t.x1,t.x2),u=Math.max(t.x1,t.x2);return Math.max(0,Math.min(r,u)-Math.max(s,i))}if(Math.abs(e.x1-t.x1)>1)return 0;const n=Math.min(e.y1,e.y2),o=Math.max(e.y1,e.y2),a=Math.min(t.y1,t.y2),l=Math.max(t.y1,t.y2);return Math.max(0,Math.min(o,l)-Math.max(n,a))}function ui(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,u=Number.POSITIVE_INFINITY;for(const d of o)if(!a.has(d.id)&&e>d.x+1&&e<d.x+d.width-1&&Math.max(l,d.y+1)<Math.min(s,d.y+d.height-1)){const f=r>0?d.y:d.y+d.height,v=Math.abs(f-t);v<u&&(i=d,u=v)}return i}function ci(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,u=Number.POSITIVE_INFINITY;for(const d of o)if(!a.has(d.id)&&e>d.y+1&&e<d.y+d.height-1&&Math.max(l,d.x+1)<Math.min(s,d.x+d.width-1)){const f=r>0?d.x:d.x+d.width,v=Math.abs(f-t);v<u&&(i=d,u=v)}return i}function fi(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,u=Number.POSITIVE_INFINITY;for(const d of o)if(!(a.has(d.id)||!d.id.includes("__model-"))&&e>d.y-Qe*4&&e<d.y+d.height+1&&Math.max(l,d.x+1)<Math.min(s,d.x+d.width-1)){const f=r>0?d.x:d.x+d.width,v=Math.abs(f-t);v<u&&(i=d,u=v)}return i}function hi(e){let t=0;for(let n=0;n<e.length;n++)for(let o=n+1;o<e.length;o++)for(const a of e[n].segments)for(const l of e[o].segments)ca(a,l)&&(t+=1e4),t+=Lo(a,l)*25;return t}function to(e,t){let n=0;for(const o of t)for(const a of e)for(const l of o.segments)ca(a,l)&&(n+=1e5),n+=Lo(a,l)*1e3;return n}function mi(e,t,n){return e.some(o=>o.orientation==="horizontal"?!!Ze(o.y1,o.x1,o.x2,t,n):!!Ct(o.x1,o.y1,o.y2,t,n))}function pi(e,t,n,o,a,l,s,r){const i=Ao(e,t,n,o,a);if(!mi(i,s,r))return{d:Gl(e,t,n,o,a),segments:i};const u=Eo(n+l,ua(a,o,s,r,10,10)),d=gn(o-Math.min(Math.max((o-a)/4,Be),48),u,n,a,o,s,r,-1,o),f=Jn([{x:e,y:t},{x:e,y:a},{x:u,y:a},{x:u,y:d},{x:n,y:d},{x:n,y:o}]);return{d:li(f),segments:f}}function no(e,t,n,o){return[...n,...Tt(e,t,o)]}function vi(e,t,n,o){const a=new Map;for(const x of e)a.set(x.id,x);const l=new Map,s=new Map;for(const x of t){if(!a.has(x.from)||!a.has(x.to))continue;const g=l.get(x.from);g?g.push(x):l.set(x.from,[x]);const c=s.get(x.to);c?c.push(x):s.set(x.to,[x])}for(const[,x]of l)x.sort((g,c)=>{const b=a.get(g.to),S=a.get(c.to);return b.x+b.width/2-(S.x+S.width/2)});for(const[,x]of s)x.sort((g,c)=>{const b=a.get(g.from),S=a.get(c.from);return b.x+b.width/2-(S.x+S.width/2)});const r=new Map,i=new Map;for(const[x,g]of l){const c=a.get(x);if(c.type==="agent"){g.forEach(b=>{const S=b.sideId==="a"?c.x+c.width*.25:c.x+c.width*.75;r.set(b.id,S)});continue}if(c.type==="side"&&g.some(b=>b.toolKind)){const S=c.data.tools||[],C=[];S.some(D=>D.kind==="tool"||D.kind==="provider"||D.kind==="mcp")&&C.push("function"),S.some(D=>D.kind==="prompt")&&C.push("prompt"),S.some(D=>D.kind==="subagent")&&C.push("subagent"),S.some(D=>D.kind==="handoff")&&C.push("handoff");const _=C.length>0?.45:1,y=C.length>0?(1-_)/C.length:0,L=new Map;for(const D of g){if(!D.toolKind||C.length===0)continue;const Z=D.toolKind==="tool"||D.toolKind==="provider"||D.toolKind==="mcp"?"function":D.toolKind,q=L.get(Z);q?q.push(D):L.set(Z,[D])}for(const[D,Z]of L)Z.sort((q,Y)=>{const G=a.get(q.to),B=a.get(Y.to);if(D==="function"){const M=G.y-B.y;if(Math.abs(M)>1)return M}return qe(G)-qe(B)});const P=o?.[c.id]?.toolColumns;for(const[D,Z]of L){let q,Y;const G=P?.[D];if(G)q=c.x+G.left,Y=c.x+G.left+G.width;else{const w=C.indexOf(D);if(w<0)continue;q=c.x+c.width*(_+w*y),Y=c.x+c.width*(_+(w+1)*y)}const B=q+Be,M=Y-Be,I=Z.length;Z.forEach((w,U)=>{const N=I===1?(q+Y)/2:B+(M-B)*U/(I-1);r.set(w.id,N)})}g.forEach(D=>{if(r.has(D.id))return;if(D.toolKind&&C.length>0){const Y=D.toolKind==="tool"||D.toolKind==="provider"||D.toolKind==="mcp"?"function":D.toolKind,G=C.indexOf(Y);if(G>=0){const B=_+G*y+y/2;r.set(D.id,c.x+c.width*B);return}}const Z=a.get(D.to),q=Z.x+Z.width/2;r.set(D.id,Math.max(c.x+Be,Math.min(c.x+c.width-Be,q)))});continue}g.forEach(b=>{const S=a.get(b.to),C=S.x+S.width/2;r.set(b.id,Math.max(c.x+Be,Math.min(c.x+c.width-Be,C)))})}for(const[x,g]of s){const c=a.get(x),b=c.x+c.width/2;g.forEach(S=>i.set(S.id,b))}for(const[x,g]of l){const c=a.get(x);if(!c||g.length<=1)continue;const b=new Map;for(const S of g){const C=r.get(S.id);if(C===void 0)continue;const _=Math.round(C),y=b.get(_);y?y.push(S):b.set(_,[S])}for(const[S,C]of b){if(C.length<=1)continue;C.sort((y,L)=>{const P=a.get(y.to),D=a.get(L.to);return qe(P)-qe(D)});const _=r.get(C[0].id)??S;C.forEach((y,L)=>{const P=(L-(C.length-1)/2)*Qe;r.set(y.id,Math.max(c.x+Be,Math.min(c.x+c.width-Be,_+P)))})}}const u=Array.from(a.values()),d=new Map;for(const x of t){const g=a.get(x.from),c=a.get(x.to);if(!g||!c)continue;const b=d.get(x.from);b?b.push(x):d.set(x.from,[x])}for(const[,x]of d)x.sort((g,c)=>{const b=a.get(g.to),S=a.get(c.to),C=b.y-S.y;return Math.abs(C)>1?C:b.x+b.width/2-(S.x+S.width/2)});const f=new Map,v=new Map;for(const[x,g]of d){const c=a.get(x);if(!c||c.type!=="side")continue;const b=g.filter(U=>ii(U.toolKind)).filter(U=>!!a.get(U.to)).sort((U,N)=>{const T=a.get(U.to),A=a.get(N.to),X=T.y-A.y;return Math.abs(X)>1?X:T.x+T.width/2-(A.x+A.width/2)});if(b.length<=1)continue;const S=b.reduce((U,N)=>U+(r.get(N.id)??qe(c)),0)/b.length,_=b.reduce((U,N)=>U+qe(a.get(N.to)),0)/b.length<S,y=[],L=new Map;for(const U of b){const N=a.get(U.to),T=di(N.y),A=L.get(T);if(A)A.push(U);else{const X=[U];L.set(T,X),y.push(X)}}y.sort((U,N)=>a.get(U[0].to).y-a.get(N[0].to).y);const P=Math.min(...b.map(U=>a.get(U.to).y)),D=c.y+c.height+8,Z=Math.max(D,P-8),q=b.length<=1?0:(Z-D)/(b.length-1);v.set(c.id,Z),y.forEach(U=>{U.sort((N,T)=>{const A=a.get(N.to),X=a.get(T.to);return qe(A)-qe(X)})});const Y=[...b].sort((U,N)=>(r.get(U.id)??qe(c))-(r.get(N.id)??qe(c))),G=_,B=!_,M=[];for(const U of[G,!G])for(const N of[B,!B])for(const T of[!1,!0])M.push({sourceReversed:U,rowReversed:N,aisleReversed:T,preference:(U===G?0:2)+(N===B?0:1)});let I=new Map,w=Number.POSITIVE_INFINITY;for(const U of M){const N=new Map,T=new Map;Y.forEach((se,fe)=>{N.set(se.id,fe),T.set(se.id,U.sourceReversed?b.length-1-fe:fe)});const A=new Map,X=y[0]?.length??0;y.forEach((se,fe)=>{const K=Math.min(...se.map(ve=>a.get(ve.to).y)),z=Math.max(D,K-34),te=Math.max(z,K-10),ie=se.length<=1?0:(te-z)/(se.length-1),de=_?1:-1;se.forEach((ve,ae)=>{const J=T.get(ve.id)??ae,p=U.rowReversed?se.length-1-ae:ae,$=U.aisleReversed?b.length-1-(N.get(ve.id)??ae):N.get(ve.id)??ae,V=fe===0&&se.length>1?D+ae*q:D+J*q,oe=N.get(ve.id)??ae,ce=fe===0?Math.max(V,z+p*ie-Qe/2):Z-Qe+Math.max(0,oe-X)*2,ne=_?c.x+c.width+bn:c.x-bn,re=(_?1:-1)*$*Qe,xe=z+p*ie,ke=Math.min(K-4,Math.max(xe,V+Qe/2));A.set(ve.id,{rowIndex:fe,sourceLaneY:V,escapeLaneY:ce,rowLaneY:ke,aisleX:ne,aisleOffset:re,aisleDirection:de})})});const F=b.map(se=>{const fe=a.get(se.to),K=r.get(se.id)??qe(c),z=c.y+c.height,te=i.get(se.id)??qe(fe),ie=fe.y,de=new Set([c.id,fe.id]),ve=no(c,fe,u,n);return eo(K,z,te,ie,A.get(se.id),ve,de)}),pe=hi(F)+U.preference;pe<w&&(w=pe,I=A)}for(const[U,N]of I)f.set(U,N)}return t.map(x=>{const g=a.get(x.from),c=a.get(x.to);if(!g||!c)return null;const b=r.get(x.id)??g.x+g.width/2,S=g.y+g.height,C=i.get(x.id)??c.x+c.width/2,_=c.y,y=d.get(x.from)??[x],P=Math.max(0,y.findIndex(w=>w.id===x.id))-(y.length-1)/2,D=S+Math.min((_-S)/2,24)+P*Qe,q=v.get(x.from)&&g.type==="side"&&!f.has(x.id)?S:D,Y=[...u,...Tt(g,c,n)],G=new Set([g.id,c.id]),B=f.get(x.id),M=B?no(g,c,u,n):Y,I=B?eo(b,S,C,_,B,M,G):pi(b,S,C,_,Wn(q,b,C,S,_,Y,G),P*Qe,Y,G);return{id:x.id,d:I.d,sideId:x.sideId,kind:x.kind??"structural",toolKind:x.toolKind,sourceAnchor:{side:"bottom",x:b,y:S},targetAnchor:{side:"top",x:C,y:_},segments:I.segments}}).filter(x=>!!x)}function gi(e,t,n,o,a,l,s,r){if(e.length<=1)return t;const i=No(t);let u=t,d=Number.POSITIVE_INFINITY;for(const f of i){const v=e.map((g,c)=>{const b=a.get(g.from),S=ht(b,l,n);return ql(S.x,S.y,s.get(g.id)??S.x,r.get(g.id)??S.y,f[c],o)});let x=0;for(let g=0;g<v.length;g++)for(let c=g+1;c<v.length;c++)for(const b of v[g])for(const S of v[c])ca(b,S)&&(x+=1e3);x+=f.reduce((g,c,b)=>{const S=e[b];return g+Math.abs(c-(s.get(S.id)??c))},0),x<d&&(d=x,u=f)}return u}function xi(e,t,n){return{side:t,x:t==="right"?e.x+e.width:e.x,y:pt(e,n)}}function ln(e,t){let n=0;for(const o of e)for(const a of t){if(o.orientation==="horizontal"){const r=Math.min(o.x1,o.x2),i=Math.max(o.x1,o.x2);if(o.y1>=a.y&&o.y1<=a.y+a.height&&Math.max(r,a.x)<Math.min(i,a.x+a.width)){n++;break}continue}const l=Math.min(o.y1,o.y2),s=Math.max(o.y1,o.y2);if(o.x1>=a.x&&o.x1<=a.x+a.width&&Math.max(l,a.y)<Math.min(s,a.y+a.height)){n++;break}}return n}function ao(e){return e.reduce((t,n)=>t+Math.abs(n.x2-n.x1)+Math.abs(n.y2-n.y1),0)}function bi(e,t,n,o,a=[],l=[]){const s=new Map;for(const g of e)s.set(g.id,g);const r=Array.from(s.values()),i=new Map;for(const g of t){const c=s.get(g.to);if(!c||c.type!=="model")continue;const b=c.placementMode,S=`${c.id}|${b??"side"}`,C=i.get(S);C?C.push(g):i.set(S,[g])}const u=new Map,d=new Map,f=new Map,v=new Map;for(const[,g]of i){const c=s.get(g[0].to),b=c.placementMode,S=ai(b),C=[...g];if(S==="top"){C.sort((X,F)=>{const pe=s.get(X.from),se=s.get(F.from);return pe.x+pe.width/2-(se.x+se.width/2)});const y=c.x+c.width/2,L=C.filter(X=>{const F=s.get(X.from);return F.x+F.width/2<y}),P=C.filter(X=>{const F=s.get(X.from);return F.x+F.width/2>=y}),D=[...L].reverse(),Z=[...P],q=[...D,...Z],Y=Ya(c,q.length,"top"),G=q.every(X=>c.y>=ht(s.get(X.from),o,c).y),B=G?Math.max(...q.map(X=>{const F=s.get(X.from),pe=ht(F,o,c),se=F.y+F.height+Ee+We,fe=Xn(F,c,n,se,!0);return gn(fe,pe.x,c.x+c.width/2,pe.y,c.y,Ft([...r,...Tt(F,c,n),...fn(F,c,n)],rn,sn),new Set([F.id,c.id]),1,pe.y)})):Math.min(...q.map(X=>{const F=s.get(X.from),pe=ht(F,o,c),se=F.y-Ee-We,fe=Xn(F,c,n,se,!1);return gn(fe,pe.x,c.x+c.width/2,pe.y,c.y,Ft([...r,...Tt(F,c,n),...fn(F,c,n)],rn,sn),new Set([F.id,c.id]),-1,pe.y)})),M=Ga(q.length,Pe),I=M[M.length-1]??0,w=c.y-Fl,U=G?w-I:B,N=[{isLeftApproach:!0,edges:L,startIndex:0,assignOrder:(X,F)=>{const pe=s.get(X.from);return s.get(F.from).x-pe.x}},{isLeftApproach:!1,edges:P,startIndex:D.length,assignOrder:(X,F)=>{const pe=s.get(X.from),se=s.get(F.from);return pe.x-se.x}}];for(const X of N){const F=X.edges;if(F.length===0)continue;const pe=[...F].sort(X.assignOrder),se=[];for(const fe of pe){const K=s.get(fe.from),z=ht(K,o,c),te=f.get(fe.id)??U,ie=new Set([K.id,c.id]),de=Ft([...r,...Tt(K,c,n)],rn,sn);let ve=ei(K,z,te,c.x+c.width/2,de,ie);const ae=Math.min(z.y,te),J=Math.max(z.y,te);for(let p=0;p<6;p++){const $=se.find(oe=>Math.max(ae,oe.minY)<Math.min(J,oe.maxY)&&Math.abs(ve-oe.exitX)<Pe);if(!$)break;const V=$.exitX<=z.x?-1:1;ve=Yt($.exitX+V*Pe,z.y,te,de,ie,V,z.x,rt,rt)}v.set(fe.id,ve),se.push({exitX:ve,minY:ae,maxY:J})}}[...q].sort((X,F)=>{const pe=s.get(X.from),se=s.get(F.from),fe=pe.x+pe.width/2,K=se.x+se.width/2,z=fe<y,te=K<y,ie=v.get(X.id)??fe,de=v.get(F.id)??K;return z!==te?Math.abs(ie-y)-Math.abs(de-y):z?G?de-ie:ie-de:G?ie-de:de-ie}).forEach((X,F)=>f.set(X.id,G?U+M[F]:U-M[F]));const A=gi(q,Y,c,c.y,s,o,v,f);q.forEach((X,F)=>u.set(X.id,{side:"top",x:A[F],y:c.y}));continue}C.sort((y,L)=>{const P=s.get(y.from),D=s.get(L.from),Z=pt(P,o)-pt(D,o);return Z!==0?Z:P.x+P.width/2-(D.x+D.width/2)});const _=Ya(c,C.length,S);if(C.forEach((y,L)=>{const P=pt(c,o),D=C.length===1?ht(s.get(y.from),o,c).y:null;u.set(y.id,{side:S,x:S==="left"?c.x:c.x+c.width,y:C.length===1&&D!==null&&Math.abs(D-P)<=Xl?D:C.length===1?P:_[L]})}),C.length>1){const y=new Set([c.id,...C.map(G=>G.from)]),L=[...r,...n.filter(G=>![{x:c.x+c.width/2,y:c.y+c.height/2},...C.map(M=>{const I=s.get(M.from);return{x:I.x+I.width/2,y:I.y+I.height/2}})].some(M=>M.x>=G.x&&M.x<=G.x+G.width&&M.y>=G.y&&M.y<=G.y+G.height)).map(kn),...a],P=C.map(G=>u.get(G.id).y),D=S==="left"?c.x-(Be+24):c.x+c.width+Be+24,Z=Io(D,Math.min(...P),Math.max(...P),L,y),q=Ga(C.length,Pe),Y=S==="left"?-1:1;C.forEach((G,B)=>d.set(G.id,Z+Y*q[B]))}}const x=[];return t.map(g=>{if(g.from===g.to)return null;const c=s.get(g.from),b=s.get(g.to);if(!c||!b||b.type!=="model")return null;const S=ht(c,o,b),C=u.get(g.id);if(!C)return null;const y=[...Ft([...r,...Tt(c,b,n),...fn(c,b,n)],rn,sn),...a],L=new Set([c.id,b.id]),P=Ft(r.filter(N=>!L.has(N.id)),Ja,Ja),D=C.y>=S.y,Z=D?c.y+c.height+Ee+We:c.y-Ee-We,q=Xn(c,b,n,Z,D),Y=f.get(g.id)??q;let G=S,B=null;const M=S.side,w=[S,xi(c,M==="left"?"right":"left",o)],U=[Y,Y-Pe,Y-Pe*2,Y-Pe*4,Y-Pe*8,Y-Pe*16,Y-Pe*24,Y+Pe,Y+Pe*2,Y+Pe*4,Y+Pe*8,Y+Pe*16,Y+Pe*24];if(C.side==="top"){let N=Number.POSITIVE_INFINITY;const T=v.get(g.id)??null,A=T===null?[null]:[T,null];for(const X of w)for(const F of A)for(const pe of U){const se=ni(c,X,C,pe,F,y,y,L),fe=to(se.segments,[...l,...x])+ln(se.segments,P)*5e4+ln(se.segments,a)*1e4+ao(se.segments)*.01+Math.abs(pe-Y)*.2+(X.side===M?0:25)+(F===T?0:10);fe<N&&(N=fe,G=X,B=se)}}if(!B){let N=Number.POSITIVE_INFINITY;const T=d.get(g.id)??null,A=T===null?[null]:[T,null],X=D?1:-1,F=[Y,Y+X*Pe,Y+X*Pe*2,Y+X*Pe*4,Y+X*Pe*8,Y-X*Pe];for(const pe of w)for(const se of A)for(const fe of F){const K=ti(c,pe,b,C,fe,se,y,L),z=to(K.segments,[...l,...x])+ln(K.segments,P)*5e4+ln(K.segments,a)*1e4+ao(K.segments)*.01+Math.abs(fe-Y)*.2+(pe.side===M?0:25)+(se===T?0:10);z<N&&(N=z,G=pe,B=K)}}return x.push({d:B.d,segments:B.segments}),{id:g.id,d:B.d,sideId:g.sideId,kind:"model",toolKind:g.toolKind,sourceAnchor:G,targetAnchor:C,segments:B.segments}}).filter(g=>!!g)}function yi(e){const t=Kl(e.edges),n=t.filter(l=>l.kind!=="model"),o=t.filter(l=>l.kind==="model"),a=vi(e.nodes,n,e.groups,e.nodeMetrics);return[...a,...bi(e.nodes,o,e.groups,e.nodeMetrics,Zl(a),a)]}const ki={class:"pointer-events-none absolute left-0 top-0 overflow-visible",width:"1",height:"1"},wi=["data-edge-id","data-edge-kind","data-edge-tool-kind","d","stroke-width","stroke-dasharray"],$i=_e({__name:"CanvasEdges",props:{nodes:{},edges:{},groups:{},selectedNodeId:{},hoveredNodeId:{},nodeMetrics:{}},setup(e){const t=e,n=R(()=>{const l=new Map;for(const s of t.edges)l.set(s.id,s);return l}),o=R(()=>yi({nodes:t.nodes,edges:t.edges,groups:t.groups,nodeMetrics:t.nodeMetrics}).map(l=>{const s=n.value.get(l.id);return{...l,highlighted:t.selectedNodeId===s?.from||t.selectedNodeId===s?.to,hovered:t.hoveredNodeId===s?.from||t.hoveredNodeId===s?.to}}));function a(l){return l.kind==="model"?l.hovered?"stroke-purple-500 dark:stroke-purple-400":l.highlighted?"stroke-purple-400 dark:stroke-purple-500":"stroke-neutral-400/60 dark:stroke-neutral-500/50":l.toolKind==="subagent"?l.hovered?"stroke-emerald-500 dark:stroke-emerald-400":l.highlighted?"stroke-emerald-400 dark:stroke-emerald-500":"stroke-neutral-300 dark:stroke-neutral-700":l.sideId==="a"?l.hovered?"stroke-sky-500 dark:stroke-sky-400":l.highlighted?"stroke-sky-400 dark:stroke-sky-500":"stroke-neutral-300 dark:stroke-neutral-700":l.hovered?"stroke-amber-500 dark:stroke-amber-400":l.highlighted?"stroke-amber-400 dark:stroke-amber-500":"stroke-neutral-300 dark:stroke-neutral-700"}return(l,s)=>(h(),k("svg",ki,[(h(!0),k(Me,null,Ce(o.value,r=>(h(),k("path",{key:r.id,"data-edge-id":r.id,"data-edge-kind":r.kind,"data-edge-tool-kind":r.toolKind,d:r.d,class:le(a(r)),"stroke-width":r.hovered?2.25:r.highlighted?2:1.5,"stroke-dasharray":r.kind==="model"?"4 4":void 0,fill:"none"},null,10,wi))),128))]))}}),Mi={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ti(e,t){return h(),k("svg",Mi,[...t[0]||(t[0]=[m("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14"},null,-1)])])}const Si=it({name:"lucide-minus",render:Ti}),Ci={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function _i(e,t){return h(),k("svg",Ci,[...t[0]||(t[0]=[m("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3m8 0h3a2 2 0 0 0 2-2v-3"},null,-1)])])}const Ii=it({name:"lucide-maximize",render:_i}),Ei={class:"absolute bottom-4 left-4 z-10 flex items-center gap-1 rounded-lg border border-neutral-200 bg-white/90 p-1 shadow-sm backdrop-blur-sm dark:border-neutral-700 dark:bg-neutral-900/90"},Ni={class:"min-w-[3rem] text-center text-[11px] font-medium tabular-nums text-neutral-500 dark:text-neutral-400"},Ai=_e({__name:"CanvasControls",props:{scalePercent:{}},emits:["zoom-in","zoom-out","fit-view"],setup(e){return(t,n)=>(h(),k("div",Ei,[m("button",{class:"flex h-7 w-7 items-center justify-center rounded transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-800",title:"Zoom out",onClick:n[0]||(n[0]=o=>t.$emit("zoom-out"))},[Q(E(Si),{class:"h-3.5 w-3.5"})]),m("span",Ni,j(e.scalePercent)+"% ",1),m("button",{class:"flex h-7 w-7 items-center justify-center rounded transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-800",title:"Zoom in",onClick:n[1]||(n[1]=o=>t.$emit("zoom-in"))},[Q(E(ho),{class:"h-3.5 w-3.5"})]),n[3]||(n[3]=m("div",{class:"mx-0.5 h-4 w-px bg-neutral-200 dark:bg-neutral-700"},null,-1)),m("button",{class:"flex h-7 w-7 items-center justify-center rounded transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-800",title:"Fit to view",onClick:n[2]||(n[2]=o=>t.$emit("fit-view"))},[Q(E(Ii),{class:"h-3.5 w-3.5"})])]))}}),Xe=_e({__name:"EditRegion",props:{target:{},active:{type:Boolean},as:{},editData:{},positioned:{type:Boolean,default:!0}},emits:["open","hover-target"],setup(e,{emit:t}){const n=e,o=t;function a(r,i,u){o("open",{target:r,anchorEl:i.currentTarget,editData:u})}function l(r,i){i.key!=="Enter"&&i.key!==" "||(i.preventDefault(),a(r,i,editData))}const s=R(()=>["group/edit-region cursor-pointer focus-visible:outline-none",n.positioned?"relative":""]);return(r,i)=>(h(),ue(tt(e.as||"div"),{role:"button",tabindex:"0","data-edit-active":e.active||null,class:le(s.value),onClick:i[0]||(i[0]=Te(u=>a(e.target,u,e.editData),["stop"])),onKeydown:i[1]||(i[1]=u=>l(e.target,u)),onMouseenter:i[2]||(i[2]=u=>o("hover-target",e.target)),onMouseleave:i[3]||(i[3]=u=>o("hover-target",null))},{default:be(()=>[i[4]||(i[4]=m("div",{class:"composition-edit-region-overlay"},null,-1)),es(r.$slots,"default")]),_:3},40,["data-edit-active","class"]))}}),Pi={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Li(e,t){return h(),k("svg",Pi,[...t[0]||(t[0]=[m("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 21s-4-3-4-9s4-9 4-9m8 0s4 3 4 9s-4 9-4 9M15 9l-6 6m0-6l6 6"},null,-1)])])}const Zn=it({name:"lucide-variable",render:Li}),Ri={key:0,class:"mt-1.5 w-full border-collapse text-[11px]"},Oi={key:0,class:"ml-1 rounded bg-sky-100 px-1 py-px text-[9px] font-semibold uppercase tracking-wide text-sky-700 dark:bg-sky-950/50 dark:text-sky-300"},ha=_e({__name:"VariablesList",props:{variables:{},muted:{type:Boolean},flaggedNames:{default:()=>[]},flagLabel:{default:"env"}},setup(e){const t=e,n=R(()=>new Set(t.flaggedNames));return(o,a)=>(h(),k("div",null,[m("div",{class:le(["flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em]",t.muted?"opacity-50":"text-neutral-400 dark:text-neutral-500"])},[Q(E(Zn),{class:"h-3 w-3"}),a[0]||(a[0]=me(" Variables ",-1))],2),t.variables.length>0?(h(),k("table",Ri,[(h(!0),k(Me,null,Ce(t.variables,l=>(h(),k("tr",{key:l.name},[m("td",{class:le(["whitespace-nowrap pr-4 py-px font-mono",t.muted?"opacity-80":"text-neutral-800 dark:text-neutral-200"])},[m("span",null,j(l.name),1),n.value.has(l.name)?(h(),k("span",Oi,j(t.flagLabel),1)):W("",!0)],2),m("td",{class:le(["whitespace-nowrap py-px text-right",t.muted?"opacity-40":"text-neutral-400 dark:text-neutral-500"])},j(l.type)+j(l.required?" *":""),3)]))),128))])):(h(),k("div",{key:1,class:le(["mt-1.5 text-[11px] italic",t.muted?"opacity-40":"text-neutral-400 dark:text-neutral-600"])}," None ",2))]))}}),Di="ring-2 agents-ring-selected ring-offset-2 ring-offset-white shadow-md dark:ring-offset-neutral-900",Bi="ring-[3px] agents-ring-selected ring-offset-[6px] ring-offset-white shadow-lg dark:ring-offset-neutral-950";function lt(e,t){return e?Di:t?Bi:""}const Vi={class:"flex border-b border-neutral-200 dark:border-neutral-700"},Hi={class:"flex items-center justify-between gap-3 px-5 pt-3.5 pb-2"},Ui={key:0,class:"ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold tracking-wider"},zi={class:"flex items-center gap-3.5 px-5 pt-1 pb-3.5"},Fi={class:"min-w-0"},ji={class:"whitespace-nowrap text-[16px] font-semibold leading-tight"},Xi={class:"mt-0.5 whitespace-nowrap font-mono text-xs text-neutral-400 dark:text-neutral-500"},Ki={key:0,class:"px-5 pb-3"},Yi={key:0,class:"mb-2 flex flex-wrap gap-1"},qi={key:1,class:"max-w-[280px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Gi={class:"mt-1 max-w-[280px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Wi={class:"mt-auto grid grid-cols-[1fr_1px_1fr] border-t border-neutral-200 dark:border-neutral-700"},Qi={class:"flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.15em] text-sky-600 dark:text-sky-400"},Ji={key:0,class:"mt-0.5 whitespace-nowrap font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},Zi={key:1,class:"mt-0.5 text-[11px] text-neutral-400 dark:text-neutral-500"},ed={key:2,class:"mt-1.5 grid grid-cols-[auto_1fr] gap-x-3 text-[11px]"},td={class:"whitespace-nowrap py-[1px] text-neutral-400 dark:text-neutral-500"},nd=["title"],ad={class:"flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.15em] text-amber-600 dark:text-amber-400"},od={key:0,class:"mt-0.5 whitespace-nowrap font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},rd={key:1,class:"mt-0.5 text-[11px] text-neutral-400 dark:text-neutral-500"},sd={key:2,class:"mt-1.5 grid grid-cols-[auto_1fr] gap-x-3 text-[11px]"},ld={class:"whitespace-nowrap py-[1px] text-neutral-400 dark:text-neutral-500"},id=["title"],Ro=_e({__name:"AgentLockupCard",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{},borderClass:{default:"border-neutral-900 dark:border-neutral-300"},backgroundClass:{default:"bg-white dark:bg-neutral-950"},actionLabel:{default:null},kindLabel:{default:null},accentTextClass:{default:null}},emits:["select","action","edit-surface","hover-edit-target"],setup(e,{emit:t}){const n=e,o=t,{activeSurface:a}=Gt();function l(N){const T=a.value?.target;return!T||T.entityType!=="agent"||T.entityId!==n.data.name?!1:T.section===N}function s(N){if(l(N))return!0;const T=n.hoveredEditTarget;return!T||T.entityType!=="agent"||T.entityId!==n.data.name?!1:T.section===N}function r(N){return{entityType:"agent",entityId:n.data.name,section:N}}const i=R(()=>Kt(n.data.side_a_backing,n.data.side_b_backing)),u=R(()=>n.kindLabel?n.kindLabel:n.data._isSubagent?"Sub-agent":"Agent"),d=R(()=>n.accentTextClass?n.accentTextClass:n.data._isSubagent?"text-emerald-600 dark:text-emerald-400":"text-neutral-500 dark:text-neutral-400"),f=R(()=>hn("a",n.data.side_a_backing,n.data.side_a_label)),v=R(()=>hn("b",n.data.side_b_backing,n.data.side_b_label));function x(N){return N==="human"?oa:N==="handler"?mo:ot}const g=R(()=>x(n.data.side_a_backing)),c=R(()=>x(n.data.side_b_backing)),b=R(()=>n.data.side_a_backing==="prompt"),S=R(()=>n.data.side_b_backing==="prompt"),C=R(()=>n.data.side_a_backing==="handler"?n.data.side_a_handler||null:b.value?n.data.side_a_agent_prompt:null),_=R(()=>n.data.side_b_backing==="handler"?n.data.side_b_handler||null:S.value?n.data.side_b_agent_prompt:null),y=R(()=>w({stopOnResponse:n.data.side_a_stop_on_response,stopTool:n.data.side_a_stop_tool,maxSteps:n.data.side_a_max_steps,endConversationTool:n.data.side_a_session_stop_tool})),L=R(()=>w({stopOnResponse:n.data.side_b_stop_on_response,stopTool:n.data.side_b_stop_tool,maxSteps:n.data.side_b_max_steps,endConversationTool:n.data.side_b_session_stop_tool})),P=R(()=>n.data._variables||[]),D=R(()=>Object.keys(n.data.env||{}).filter(N=>N.trim().length>0)),Z=R(()=>{const N=new Set(P.value.map(T=>T.name));return D.value.filter(T=>N.has(T))}),q=R(()=>n.data.expose_as_tool&&n.data.tool_description?.trim()||null),Y=R(()=>n.data._isSubagent&&q.value?q.value:n.data.description||null),G=R(()=>!n.data._isSubagent&&!!q.value),B=R(()=>{const N=n.data.max_session_turns;return typeof N!="number"?null:`max ${N} session turn${N===1?"":"s"}`}),M=R(()=>{const N=[];return n.data.expose_as_tool&&!n.data._isSubagent&&N.push("tool"),B.value&&N.push(B.value),D.value.length>0&&N.push(`${D.value.length} env override${D.value.length===1?"":"s"}`),N}),I=R(()=>!!Y.value||G.value||M.value.length>0);function w(N){return[{key:"stop_on_response",label:"Stop on response",value:N.stopOnResponse?"On":"Off",active:N.stopOnResponse},{key:"stop_tool",label:"Stop tool",value:N.stopTool||"Off",active:!!N.stopTool},{key:"max_steps",label:"Max steps",value:U(N.maxSteps),active:N.maxSteps!==null&&N.maxSteps!==void 0},{key:"end_conversation",label:"End conversation tool",value:N.endConversationTool||"Off",active:!!N.endConversationTool}]}function U(N){return typeof N=="number"?String(N):"Unlimited"}return(N,T)=>(h(),k("div",{"data-canvas-node":"",class:le(["absolute flex flex-col rounded-xl border text-neutral-900 transition-shadow select-none dark:text-neutral-100",e.borderClass,e.backgroundClass,E(lt)(e.selected,e.hovered)]),style:{width:"max-content"}},[m("div",Vi,[Q(Xe,{class:"min-w-0 flex-1",target:r("identity"),active:s("identity"),onOpen:T[1]||(T[1]=A=>o("edit-surface",A)),onHoverTarget:T[2]||(T[2]=A=>o("hover-edit-target",A))},{default:be(()=>[m("div",Hi,[m("div",{class:le(["flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.2em]",d.value])},[Q(E(ot),{class:"h-3 w-3"}),m("span",null,j(u.value),1),i.value?(h(),k("span",Ui,j(i.value),1)):W("",!0)],2),e.actionLabel?(h(),k("button",{key:0,type:"button",class:"shrink-0 rounded-md border border-neutral-200 px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.16em] text-neutral-500 transition-colors hover:border-neutral-300 hover:text-neutral-800 dark:border-neutral-700 dark:text-neutral-400 dark:hover:border-neutral-500 dark:hover:text-neutral-100",onClick:T[0]||(T[0]=Te(A=>N.$emit("action"),["stop"]))},j(e.actionLabel),1)):W("",!0)]),m("div",zi,[Q(aa,{icon:e.data.icon,seed:e.data.name,class:"h-10 w-10 shrink-0 rounded-lg object-cover"},null,8,["icon","seed"]),m("div",Fi,[m("div",ji,j(e.data.title),1),m("div",Xi,j(e.data.name),1)])]),I.value?(h(),k("div",Ki,[M.value.length>0?(h(),k("div",Yi,[(h(!0),k(Me,null,Ce(M.value,A=>(h(),k("span",{key:A,class:"rounded-md bg-neutral-100 px-1.5 py-px font-mono text-[10px] lowercase tracking-wide text-neutral-500 dark:bg-neutral-900 dark:text-neutral-400"},j(A),1))),128))])):W("",!0),Y.value?(h(),k("p",qi,j(Y.value),1)):W("",!0),G.value?(h(),k("div",{key:2,class:le(Y.value?"mt-2":"")},[T[9]||(T[9]=m("div",{class:"text-[10px] font-bold uppercase tracking-[0.16em] text-neutral-400 dark:text-neutral-500"}," Tool use ",-1)),m("p",Gi,j(q.value),1)],2)):W("",!0)])):W("",!0)]),_:1},8,["target","active"]),Q(Xe,{"data-variables-section":"",class:"shrink-0 border-l border-neutral-200 px-4 py-3 dark:border-neutral-700",target:r("variables"),active:s("variables"),onOpen:T[3]||(T[3]=A=>o("edit-surface",A)),onHoverTarget:T[4]||(T[4]=A=>o("hover-edit-target",A))},{default:be(()=>[Q(ha,{variables:P.value,"flagged-names":Z.value,"flag-label":"env"},null,8,["variables","flagged-names"])]),_:1},8,["target","active"])]),m("div",Wi,[Q(Xe,{class:"px-3 py-2",target:r("side-a"),active:s("side-a"),onOpen:T[5]||(T[5]=A=>o("edit-surface",A)),onHoverTarget:T[6]||(T[6]=A=>o("hover-edit-target",A))},{default:be(()=>[m("div",Qi,[(h(),ue(tt(g.value),{class:"h-3 w-3"})),me(" "+j(f.value),1)]),C.value?(h(),k("div",Ji,j(C.value),1)):(h(),k("div",Zi,j(e.data.side_a_backing==="human"?"Human input":"No prompt"),1)),b.value?(h(),k("dl",ed,[(h(!0),k(Me,null,Ce(y.value,A=>(h(),k(Me,{key:A.key},[m("dt",td,j(A.label),1),m("dd",{class:le(["whitespace-nowrap py-[1px] text-right font-mono",A.active?"text-sky-600 dark:text-sky-400":"text-neutral-400 dark:text-neutral-600"]),title:A.value},j(A.value),11,nd)],64))),128))])):W("",!0)]),_:1},8,["target","active"]),T[10]||(T[10]=m("div",{class:"bg-neutral-200 dark:bg-neutral-700"},null,-1)),Q(Xe,{class:"px-3 py-2",target:r("side-b"),active:s("side-b"),onOpen:T[7]||(T[7]=A=>o("edit-surface",A)),onHoverTarget:T[8]||(T[8]=A=>o("hover-edit-target",A))},{default:be(()=>[m("div",ad,[(h(),ue(tt(c.value),{class:"h-3 w-3"})),me(" "+j(v.value),1)]),_.value?(h(),k("div",od,j(_.value),1)):(h(),k("div",rd,j(e.data.side_b_backing==="human"?"Human input":"No prompt"),1)),S.value&&e.data.side_b_agent_prompt?(h(),k("dl",sd,[(h(!0),k(Me,null,Ce(L.value,A=>(h(),k(Me,{key:A.key},[m("dt",ld,j(A.label),1),m("dd",{class:le(["whitespace-nowrap py-[1px] text-right font-mono",A.active?"text-amber-600 dark:text-amber-400":"text-neutral-400 dark:text-neutral-600"]),title:A.value},j(A.value),11,id)],64))),128))])):W("",!0)]),_:1},8,["target","active"])])],2))}}),dd=_e({__name:"AgentNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{}},emits:["select","edit-surface","hover-edit-target"],setup(e){return(t,n)=>(h(),ue(Ro,{data:e.data,selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,onSelect:n[0]||(n[0]=o=>t.$emit("select")),onEditSurface:n[1]||(n[1]=o=>t.$emit("edit-surface",o)),onHoverEditTarget:n[2]||(n[2]=o=>t.$emit("hover-edit-target",o))},null,8,["data","selected","hovered","hovered-edit-target"]))}}),ud={},cd={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"1em",height:"1em",viewBox:"0 0 128 128",fill:"none",style:{transform:"translateY(-0.1em)"}};function fd(e,t){return h(),k("svg",cd,[...t[0]||(t[0]=[m("rect",{width:"128",height:"128",rx:"6",fill:"#3178c6"},null,-1),m("path",{fill:"#fff","fill-rule":"evenodd","clip-rule":"evenodd",d:"m74.2622 99.468v14.026c2.2724 1.168 4.9598 2.045 8.0625 2.629 3.1027.585 6.3728.877 9.8105.877 3.3503 0 6.533-.321 9.5478-.964 3.016-.643 5.659-1.702 7.932-3.178 2.272-1.476 4.071-3.404 5.397-5.786 1.325-2.381 1.988-5.325 1.988-8.8313 0-2.5421-.379-4.7701-1.136-6.6841-.758-1.9139-1.85-3.6159-3.278-5.1062-1.427-1.4902-3.139-2.827-5.134-4.0104-1.996-1.1834-4.246-2.3011-6.752-3.353-1.8352-.7597-3.4812-1.4975-4.9378-2.2134-1.4567-.7159-2.6948-1.4464-3.7144-2.1915-1.0197-.7452-1.8063-1.5341-2.3598-2.3669-.5535-.8327-.8303-1.7751-.8303-2.827 0-.9643.2476-1.8336.7429-2.6079s1.1945-1.4391 2.0976-1.9943c.9031-.5551 2.0101-.9861 3.3211-1.2929 1.311-.3069 2.7676-.4603 4.3699-.4603 1.1658 0 2.3958.0877 3.6928.263 1.296.1753 2.6.4456 3.911.8109 1.311.3652 2.585.8254 3.824 1.3806 1.238.5552 2.381 1.198 3.43 1.9285v-13.1051c-2.127-.8182-4.45-1.4245-6.97-1.819s-5.411-.5917-8.6744-.5917c-3.3211 0-6.4674.3579-9.439 1.0738-2.9715.7159-5.5862 1.8336-7.844 3.353-2.2578 1.5195-4.0422 3.4553-5.3531 5.8075-1.311 2.3522-1.9665 5.1646-1.9665 8.4373 0 4.1785 1.2017 7.7433 3.6052 10.6945 2.4035 2.9513 6.0523 5.4496 10.9466 7.495 1.9228.7889 3.7145 1.5633 5.375 2.323 1.6606.7597 3.0954 1.5486 4.3044 2.3668s2.1628 1.7094 2.8618 2.6736c.7.9643 1.049 2.06 1.049 3.2873 0 .9062-.218 1.7462-.655 2.5202s-1.1 1.446-1.9885 2.016c-.8886.57-1.9956 1.016-3.3212 1.337-1.3255.321-2.8768.482-4.6539.482-3.0299 0-6.0305-.533-9.0021-1.6-2.9715-1.066-5.7245-2.666-8.2591-4.799zm-23.5596-34.9136h18.2974v-11.5544h-51v11.5544h18.2079v51.4456h14.4947z"},null,-1)])])}const qt=po(ud,[["render",fd]]),hd={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function md(e,t){return h(),k("svg",hd,[...t[0]||(t[0]=[m("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[m("path",{d:"m18 5l-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2"}),m("path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506zM8 18h1"})],-1)])])}const Oo=it({name:"lucide-file-pen-line",render:md}),pd={class:"relative"},vd={class:"flex items-start gap-1.5"},gd=["aria-label"],xd={key:1,class:"mt-0.5 inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center"},bd={class:"min-w-0 flex-1"},yd={class:"flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-1"},kd={key:0,class:"text-[12px] leading-none font-semibold text-rose-500 dark:text-rose-400","aria-label":"Required"},wd={key:1,class:"rounded-md bg-neutral-100 px-1.5 py-px font-mono text-[10px] text-neutral-500 dark:bg-neutral-900 dark:text-neutral-400"},$d={key:0,class:"mt-0.5 max-w-[32rem] break-words text-[10px] leading-relaxed text-neutral-400 dark:text-neutral-500"},Md={key:0},Td=_e({__name:"DataTreeRow",props:{node:{},depth:{},collapsed:{}},emits:["toggle"],setup(e,{emit:t}){const n=e,o=t,a=R(()=>(n.node.children?.length??0)>0),l=R(()=>a.value?!n.collapsed.has(n.node.id):!1),s=R(()=>({paddingLeft:`${n.depth*20}px`})),r=R(()=>n.depth===0);return(i,u)=>{const d=vt("DataTreeRow",!0);return h(),k("div",pd,[m("div",{style:Re(s.value),class:"py-1.5"},[m("div",vd,[a.value?(h(),k("button",{key:0,type:"button",class:"mt-0.5 inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded text-neutral-400 transition-colors hover:bg-neutral-100 hover:text-neutral-600 dark:text-neutral-500 dark:hover:bg-neutral-900 dark:hover:text-neutral-300","aria-label":`${l.value?"Collapse":"Expand"} ${e.node.label}`,onClick:u[0]||(u[0]=Te(f=>o("toggle",e.node.id),["stop"]))},[Q(E(ko),{class:le(["h-3 w-3 transition-transform",l.value?"rotate-90":""])},null,8,["class"])],8,gd)):(h(),k("span",xd,[...u[2]||(u[2]=[m("span",{class:"inline-block h-1.5 w-1.5 rounded-full bg-neutral-300 dark:bg-neutral-600"},null,-1)])])),m("div",bd,[m("div",yd,[m("span",{class:le(["truncate font-mono",r.value?"text-[12px] text-neutral-900 dark:text-neutral-100":"text-[11px] text-neutral-700 dark:text-neutral-300"])},j(e.node.label),3),e.node.required?(h(),k("span",kd," * ")):W("",!0),e.node.value?(h(),k("span",wd,j(e.node.value),1)):W("",!0)]),e.node.description?(h(),k("div",$d,j(e.node.description),1)):W("",!0)])])],4),a.value&&l.value?(h(),k("div",Md,[(h(!0),k(Me,null,Ce(e.node.children,f=>(h(),ue(d,{key:f.id,node:f,depth:e.depth+1,collapsed:e.collapsed,onToggle:u[1]||(u[1]=v=>o("toggle",v))},null,8,["node","depth","collapsed"]))),128))])):W("",!0),a.value&&l.value?(h(),k("div",{key:1,class:"pointer-events-none absolute bottom-0 w-px bg-neutral-200 dark:bg-neutral-800",style:Re({top:"22px",left:`${e.depth*20+7}px`})},null,4)):W("",!0)])}}}),Sd={key:0,class:"text-[11px] italic text-neutral-400 dark:text-neutral-600"},Cd={key:1},Do=_e({__name:"DataTreeView",props:{nodes:{},emptyLabel:{default:"No fields"}},setup(e){const t=e,n=H(new Set);function o(l,s){for(const r of l)s(r),r.children?.length&&o(r.children,s)}Ae(()=>t.nodes,l=>{const s=new Set;o(l,r=>{(r.children?.length??0)>0&&!r.defaultExpanded&&s.add(r.id)}),n.value=s},{immediate:!0,deep:!0});function a(l){const s=new Set(n.value);s.has(l)?s.delete(l):s.add(l),n.value=s}return(l,s)=>e.nodes.length===0?(h(),k("div",Sd,j(e.emptyLabel),1)):(h(),k("div",Cd,[(h(!0),k(Me,null,Ce(e.nodes,r=>(h(),ue(Td,{key:r.id,node:r,depth:0,collapsed:n.value,onToggle:a},null,8,["node","collapsed"]))),128))]))}});function jt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function oo(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":Array.isArray(e)?`[${e.length}]`:typeof e=="object"?"{…}":"—"}function _d(e){return e?Array.isArray(e.enum)&&e.enum.length>0?`enum(${e.enum.length})`:Array.isArray(e.type)&&e.type.length>0?e.type.join(" | "):typeof e.type=="string"&&e.type.length>0?e.type:Array.isArray(e.oneOf)&&e.oneOf.length>0?`oneOf(${e.oneOf.length})`:Array.isArray(e.anyOf)&&e.anyOf.length>0?`anyOf(${e.anyOf.length})`:Array.isArray(e.allOf)&&e.allOf.length>0?`allOf(${e.allOf.length})`:e.properties&&typeof e.properties=="object"?"object":e.items?"array":"const"in e?"const":"value":"—"}function St(e,t,n,o=!1){const a=[];if(t.properties&&typeof t.properties=="object"){const s=new Set(Array.isArray(t.required)?t.required:[]);a.push(...Object.entries(t.properties).map(([r,i])=>St(r,jt(i)?i:{},`${n}.properties.${r}`,s.has(r))))}if(t.items){const s=Array.isArray(t.items)?t.items:[t.items];a.push(...s.map((r,i)=>St(s.length===1?"items":`item ${i+1}`,jt(r)?r:{},`${n}.items.${i}`,!0)))}for(const[s,r]of[["oneOf",t.oneOf],["anyOf",t.anyOf],["allOf",t.allOf]])!Array.isArray(r)||r.length===0||a.push(...r.map((i,u)=>St(`${s} ${u+1}`,jt(i)?i:{},`${n}.${s}.${u}`,!0)));jt(t.additionalProperties)&&a.push(St("additional",t.additionalProperties,`${n}.additional`,!1));const l=[];if(typeof t.description=="string"&&t.description.trim()&&l.push(t.description.trim()),Array.isArray(t.enum)&&t.enum.length>0){const s=t.enum.slice(0,3).map(oo).join(", "),r=t.enum.length>3?", …":"";l.push(s+r)}else"const"in t&&l.push(oo(t.const));return{id:n,label:e,value:_d(t),description:l.join(" • ")||null,required:o,children:a.length>0?a:void 0,defaultExpanded:n.split(".").length<=3}}function ma(e){if(!e||typeof e!="object")return[];const t=e.properties&&typeof e.properties=="object"?e.properties:null;if(t){const n=new Set(Array.isArray(e.required)?e.required:[]);return Object.entries(t).map(([o,a])=>St(o,jt(a)?a:{},`schema.${o}`,n.has(o)))}return[St("value",e,"schema.value",!0)]}function Id(e){const t=e.reasoning?.effort;return t==="low"||t==="medium"||t==="high"?t:"off"}function Ed(e){const t=e.reasoning?.maxTokens;return typeof t=="number"?t.toLocaleString():"—"}function Bo(e,t){const n=Id(e),o=[{key:"tool",label:"Tool",rows:[{kind:"value",label:"Tool choice",value:e.tool_choice,active:!0},{kind:"toggle",label:"Parallel calls",enabled:e.parallel_tool_calls}]},{key:"context",label:"Context",rows:[{kind:"toggle",label:"Chat history",enabled:e.include_chat},{kind:"toggle",label:"Past tool calls",enabled:e.include_past_tools},{kind:"toggle",label:"Reasoning in history",enabled:e.include_reasoning}]},{key:"reasoning",label:"Reasoning",rows:[{kind:"value",label:"Effort",value:n,active:n!=="off"},{kind:"value",label:"Max tokens",value:Ed(e),active:typeof e.reasoning?.maxTokens=="number"},{kind:"toggle",label:"Exclude from response",enabled:e.reasoning?.exclude===!0}]}];return t&&o.push({key:"response",label:"Response",rows:[{kind:"toggle",label:"Chat history",enabled:t.include_text_response!==!1},{kind:"toggle",label:"Tool calls",enabled:t.include_tool_calls!==!1},{kind:"toggle",label:"Errors",enabled:t.include_errors!==!1}]}),o}function ro(e,t){if(!e)return null;const n=t[e];if(n)return n;for(const o of Object.values(t))if(o.name===e)return o;return null}async function Vo(e){const[t,n]=await Promise.all([e.toolsCatalog?Promise.resolve(e.toolsCatalog):Je("/tools"),e.models?Promise.resolve(e.models):Je("/models").then(o=>Object.fromEntries(o.models.map(a=>[a.id,a])))]);return{toolsCatalog:t,models:n}}async function Nd(e,t={}){const n=await at(e);if(!n)return null;try{const{toolsCatalog:o,models:a}=await Vo(t);return Uo(n,{toolsCatalog:o,models:a})}catch{return{prompt:n,nestedTools:[],model:null}}}async function Ho(e,t={}){if(e.length===0)return[];const n=await Vo(t).catch(()=>null);return(await Promise.all(e.map(async a=>[a,await at(a)]))).map(([a,l])=>l?n?[a,Uo(l,n)]:[a,{prompt:l,nestedTools:[],model:null}]:[a,null])}function Uo(e,t){const n=e.tools.map(a=>ws(a,t.toolsCatalog,t.models)),o=ro(e.model_id,t.models)||ro(e.model_name,t.models);return{prompt:e,nestedTools:n,model:o}}async function zo(e){try{return(await Je(`/agents/${encodeURIComponent(e)}`)).agent}catch{return null}}async function Ad(e,t={}){const[n,o,a]=await Promise.all([e.kind==="tool"?bo(e.name):Promise.resolve(null),e.kind==="prompt"?Nd(e.name,t):Promise.resolve(null),e.kind==="handoff"?zo(e.name):Promise.resolve(null)]);return{functionTool:n,promptTool:o,handoffAgent:a}}async function Pd(e,t){const[n,o,a]=await Promise.all([Promise.all(e.functionTools.map(async l=>[l,await bo(l)])),Ho(e.promptTools,t),Promise.all(e.handoffs.map(async l=>[l,await zo(l)]))]);return{functionTools:Object.fromEntries(n),promptTools:Object.fromEntries(o),handoffs:Object.fromEntries(a)}}const Ld={class:"flex"},Rd={class:"flex min-w-0 flex-1 flex-col"},Od={class:"flex items-start justify-between gap-4 px-5 py-3.5"},Dd={class:"min-w-0 flex-1"},Bd={key:0,class:"ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold tracking-wider"},Vd={class:"mt-3"},Hd={class:"whitespace-nowrap font-mono text-[14px] font-semibold text-neutral-900 dark:text-neutral-100"},Ud={key:0,class:"mt-1 max-w-[220px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},zd={class:"flex shrink-0 items-start gap-2"},Fd=["onKeydown"],jd={"data-model-anchor":"",class:"flex items-center gap-3 rounded-lg border border-neutral-100 bg-neutral-50/80 px-3 py-2 dark:border-neutral-800 dark:bg-neutral-900/30"},Xd={class:"flex items-start gap-2"},Kd=["src"],Yd={class:"leading-tight"},qd={class:"whitespace-nowrap text-[13px] font-semibold text-neutral-900 dark:text-neutral-100"},Gd={class:"whitespace-nowrap font-mono text-[10px] text-neutral-400 dark:text-neutral-500"},Wd={key:0,class:"group relative border-l border-neutral-200 pl-3 dark:border-neutral-800"},Qd={class:"grid shrink-0 grid-cols-2 gap-x-1.5 gap-y-1","aria-label":"Model capabilities"},Jd=["aria-label"],Zd={role:"tooltip",class:"pointer-events-none invisible absolute right-0 top-full z-50 mt-2 w-max rounded-md border border-neutral-200 bg-white px-3 py-2 text-left shadow-lg opacity-0 transition-opacity group-hover:visible group-hover:opacity-100 dark:border-neutral-700 dark:bg-neutral-900"},eu={class:"grid grid-cols-[auto_1fr] items-center gap-x-2 gap-y-1 text-[11px]"},tu={class:"flex items-center"},nu={class:"flex min-h-0 flex-1"},au={class:"text-[9px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},ou={class:"mt-1 space-y-[2px] text-[11px]"},ru={class:"whitespace-nowrap text-neutral-500 dark:text-neutral-400"},su={class:"flex min-w-0 flex-1 flex-col border-l border-neutral-200 dark:border-neutral-700"},lu={class:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},iu={class:"flex shrink-0 min-w-[12rem] max-w-64 flex-col border-l border-neutral-200 dark:border-neutral-700"},du={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},uu={key:0,class:"mt-1.5 space-y-1"},cu={class:"flex flex-wrap items-center gap-x-1.5 gap-y-0.5"},fu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},hu={key:0,class:"rounded bg-amber-100 px-1 py-px font-mono text-[9px] lowercase tracking-wide text-amber-700 dark:bg-amber-950/50 dark:text-amber-300"},mu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},pu={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-fuchsia-500 dark:text-fuchsia-400"},vu={key:0,class:"mt-1.5 space-y-1"},gu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},xu={key:0,class:"mt-1 flex items-center gap-1.5 text-[10px] text-neutral-400 dark:text-neutral-500"},bu=["src"],yu={class:"font-medium text-neutral-500 dark:text-neutral-400"},ku={key:1,class:"truncate"},wu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},$u={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-sky-500 dark:text-sky-400"},Mu={key:0,class:"mt-1.5 space-y-1"},Tu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},Su={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},Cu={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-emerald-500 dark:text-emerald-400"},_u={key:0,class:"mt-1.5 space-y-1"},Iu={class:"flex flex-wrap items-center gap-x-1.5 gap-y-0.5"},Eu={key:0,class:"rounded border border-dashed border-neutral-300 px-1 py-px font-mono text-[9px] lowercase tracking-wide text-neutral-400 dark:border-neutral-600 dark:text-neutral-500"},Nu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},Fo=_e({__name:"PromptCard",props:{prompt:{},tools:{},toolConfig:{},variables:{},variableEnvNames:{},label:{},modelName:{},modelProvider:{},modelActual:{},modelIconSrc:{},modelCapabilities:{},borderClass:{},accentTextClass:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{},refreshEpoch:{},subagentEditTarget:{}},emits:["select","edit-surface","hover-edit-target"],setup(e,{emit:t}){const n=e,o=t,a=R(()=>n.tools.filter(M=>M.kind==="tool"||M.kind==="provider"||M.kind==="mcp")),l=R(()=>n.tools.filter(M=>M.kind==="prompt")),s=R(()=>n.tools.filter(M=>M.kind==="subagent")),r=R(()=>n.tools.filter(M=>M.kind==="handoff")),i=R(()=>n.variables||sa(n.prompt)),u=R(()=>n.variableEnvNames||la(n.prompt)),d=R(()=>!!n.label),f=R(()=>n.toolConfig?"Sub-prompt":"Prompt"),v=R(()=>n.modelName||n.prompt.model_name);R(()=>n.modelProvider||n.prompt.model_provider);const x=R(()=>n.modelActual||n.prompt.model_id),g=R(()=>{const M=n.modelCapabilities||{};return[{key:"images",label:"Vision",enabled:M.supportsImages===!0},{key:"tools",label:"Tool Calls",enabled:M.supportsToolCalls===!0},{key:"stream",label:"Streaming",enabled:M.supportsStreaming===!0},{key:"json",label:"JSON",enabled:M.supportsJsonMode===!0}]}),c=R(()=>!!n.modelCapabilities&&Object.keys(n.modelCapabilities).length>0),b=R(()=>ma(n.prompt.required_schema)),S=H({}),C=R(()=>Bo(n.prompt,n.toolConfig));Ae(()=>[l.value.map(M=>M.name).join(""),n.refreshEpoch??0],async()=>{const M=l.value.map(w=>w.name);if(M.length===0){S.value={};return}const I=await Ho(M);S.value=Object.fromEntries(I)},{immediate:!0});function _(M){return S.value[M.name]?.model||M.resolvedModel||null}function y(M){const I=_(M);if(I)return Ue(`/api/providers/${encodeURIComponent(I.provider)}/icon?model=${encodeURIComponent(I.model)}`);const w=S.value[M.name];return w?.prompt?Ue(`/api/providers/${encodeURIComponent(w.prompt.model_provider)}/icon?model=${encodeURIComponent(w.prompt.model_id)}`):""}function L(M){const I=_(M);return I?I.name:S.value[M.name]?.prompt.model_name||M.model||null}function P(M){const I=_(M);return I?I.provider:S.value[M.name]?.prompt.model_provider||null}function D(M,I){return{entityType:"prompt",entityId:n.prompt.name,section:M,defaultToolTab:I}}const{activeSurface:Z}=Gt();function q(M,I){const w=Z.value?.target;return!(!w||w.entityType!=="prompt"||w.entityId!==n.prompt.name||w.section!==M||I!==void 0&&w.defaultToolTab!==I)}function Y(M,I){if(q(M,I))return!0;const w=n.hoveredEditTarget;return!(!w||w.entityType!=="prompt"||w.entityId!==n.prompt.name||w.section!==M||I!==void 0&&w.defaultToolTab!==I)}function G(){const M=n.subagentEditTarget;if(!M||M.entityType!=="agent")return!1;const I=w=>!!w&&w.entityType==="agent"&&w.entityId===M.entityId&&w.section===M.section;return I(Z.value?.target)||I(n.hoveredEditTarget)}function B(M){const I=M.currentTarget;I instanceof HTMLElement&&o("edit-surface",{target:D("prompt"),anchorEl:I})}return(M,I)=>(h(),k("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:I[18]||(I[18]=Te(w=>M.$emit("select"),["stop"])),onKeydown:[I[19]||(I[19]=Ve(Te(w=>M.$emit("select"),["prevent","stop"]),["enter"])),I[20]||(I[20]=Ve(Te(w=>M.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",e.borderClass,E(lt)(e.selected,e.hovered)])},[m("div",Ld,[m("div",Rd,[Q(Xe,{as:"header",class:"border-b border-neutral-200 dark:border-neutral-700",target:D("basic"),active:Y("basic"),onOpen:I[2]||(I[2]=w=>o("edit-surface",w)),onHoverTarget:I[3]||(I[3]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",Od,[m("div",Dd,[m("div",{class:le(["flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.2em]",e.accentTextClass])},[Q(E(gt),{class:"h-3 w-3"}),m("span",null,j(f.value),1),d.value?(h(),k("span",Bd,j(e.label),1)):W("",!0)],2),m("div",Vd,[m("div",Hd,j(e.prompt.name),1),e.prompt.tool_description?(h(),k("div",Ud,j(e.prompt.tool_description),1)):W("",!0)])]),m("div",zd,[m("button",{type:"button",class:le(["inline-flex h-8 w-8 items-center justify-center rounded-md border border-neutral-200 bg-white text-neutral-500 transition-colors hover:border-neutral-300 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-400 dark:hover:border-neutral-700 dark:hover:text-neutral-100",Y("prompt")?"border-neutral-900 text-neutral-900 dark:border-neutral-100 dark:text-neutral-100":""]),title:"Edit prompt text","aria-label":"Edit prompt text",onClick:Te(B,["stop"]),onKeydown:[Ve(Te(B,["prevent","stop"]),["enter"]),Ve(Te(B,["prevent","stop"]),["space"])],onMouseenter:I[0]||(I[0]=Te(w=>o("hover-edit-target",D("prompt")),["stop"])),onMouseleave:I[1]||(I[1]=Te(w=>o("hover-edit-target",null),["stop"]))},[Q(E(Oo),{class:"h-3.5 w-3.5"})],42,Fd),m("div",jd,[m("div",Xd,[e.modelIconSrc?(h(),k("img",{key:0,src:e.modelIconSrc,alt:"",class:"mt-[3px] h-4 w-4 shrink-0 rounded-sm"},null,8,Kd)):W("",!0),m("div",Yd,[m("div",qd,j(v.value),1),m("div",Gd,j(x.value),1)])]),c.value?(h(),k("div",Wd,[m("div",Qd,[(h(!0),k(Me,null,Ce(g.value,w=>(h(),k("span",{key:w.key,"aria-label":`${w.label}: ${w.enabled?"supported":"not supported"}`,class:le(["h-1.5 w-1.5 rounded-full",w.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,10,Jd))),128))]),m("div",Zd,[I[21]||(I[21]=m("div",{class:"mb-1.5 text-[9px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"}," Capabilities ",-1)),m("dl",eu,[(h(!0),k(Me,null,Ce(g.value,w=>(h(),k(Me,{key:w.key},[m("dt",tu,[m("span",{class:le(["h-1.5 w-1.5 rounded-full",w.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,2)]),m("dd",{class:le(["whitespace-nowrap",w.enabled?"text-neutral-800 dark:text-neutral-200":"text-neutral-400 dark:text-neutral-600"])},j(w.label),3)],64))),128))])])])):W("",!0)])])])]),_:1},8,["target","active"]),m("div",nu,[Q(Xe,{class:"shrink-0 px-5 py-3",target:D("behavior"),active:Y("behavior"),onOpen:I[4]||(I[4]=w=>o("edit-surface",w)),onHoverTarget:I[5]||(I[5]=w=>o("hover-edit-target",w))},{default:be(()=>[(h(!0),k(Me,null,Ce(C.value,(w,U)=>(h(),k("div",{key:w.key,class:le(["py-2",U>0?"border-t border-neutral-200 dark:border-neutral-700":""])},[m("div",au,j(w.label),1),m("dl",ou,[(h(!0),k(Me,null,Ce(w.rows,N=>(h(),k("div",{key:N.label,class:"flex items-baseline justify-between gap-x-6"},[m("dt",ru,j(N.label),1),N.kind==="toggle"?(h(),k("dd",{key:0,class:le(["whitespace-nowrap font-mono",N.enabled?"text-emerald-600 dark:text-emerald-400":"text-neutral-400 dark:text-neutral-600"])},j(N.enabled?"on":"off"),3)):(h(),k("dd",{key:1,class:le(["whitespace-nowrap font-mono",N.active?"text-neutral-800 dark:text-neutral-200":"text-neutral-400 dark:text-neutral-600"])},j(N.value),3))]))),128))])],2))),128))]),_:1},8,["target","active"]),m("div",su,[Q(Xe,{class:"flex-[1_1_auto] px-5 py-3",target:D("schema"),active:Y("schema"),onOpen:I[6]||(I[6]=w=>o("edit-surface",w)),onHoverTarget:I[7]||(I[7]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",lu,[Q(E(Mt),{class:"h-3 w-3"}),I[22]||(I[22]=me(" Input schema ",-1))]),Q(Do,{nodes:b.value,"empty-label":"None"},null,8,["nodes"])]),_:1},8,["target","active"]),Q(Xe,{"data-variables-section":"",class:"flex-[1_1_auto] border-t border-neutral-200 px-5 py-3 dark:border-neutral-700",target:D("variables"),active:Y("variables"),onOpen:I[8]||(I[8]=w=>o("edit-surface",w)),onHoverTarget:I[9]||(I[9]=w=>o("hover-edit-target",w))},{default:be(()=>[Q(ha,{variables:i.value,"flagged-names":u.value},null,8,["variables","flagged-names"])]),_:1},8,["target","active"])])])]),m("div",iu,[Q(Xe,{"data-tool-column":"function",class:"flex-[1_1_25%] px-4 py-3",target:D("tools","functions"),active:Y("tools","functions"),onOpen:I[10]||(I[10]=w=>o("edit-surface",w)),onHoverTarget:I[11]||(I[11]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",du,[Q(qt,{class:"h-3 w-3"}),I[23]||(I[23]=me(" Functions ",-1))]),a.value.length>0?(h(),k("div",uu,[(h(!0),k(Me,null,Ce(a.value,w=>(h(),k("div",{key:w.name,class:"text-[11px]"},[m("div",cu,[m("span",fu,j(w.displayName),1),w.config.immediate?(h(),k("span",hu," immediate ")):W("",!0)])]))),128))])):(h(),k("div",mu,"None"))]),_:1},8,["target","active"]),Q(Xe,{"data-tool-column":"prompt",class:"flex-[1_1_25%] border-t border-neutral-200 px-4 py-3 dark:border-neutral-700",target:D("tools","sub-prompts"),active:Y("tools","sub-prompts"),onOpen:I[12]||(I[12]=w=>o("edit-surface",w)),onHoverTarget:I[13]||(I[13]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",pu,[Q(E(gt),{class:"h-3 w-3"}),I[24]||(I[24]=me(" Sub-prompts ",-1))]),l.value.length>0?(h(),k("div",vu,[(h(!0),k(Me,null,Ce(l.value,w=>(h(),k("div",{key:w.name,class:"text-[11px]"},[m("div",gu,j(w.displayName),1),L(w)?(h(),k("div",xu,[y(w)?(h(),k("img",{key:0,src:y(w),alt:"",class:"h-3.5 w-3.5 shrink-0 rounded-sm"},null,8,bu)):W("",!0),m("span",yu,j(L(w)),1),P(w)?(h(),k("span",ku,j(P(w)),1)):W("",!0)])):W("",!0)]))),128))])):(h(),k("div",wu,"None"))]),_:1},8,["target","active"]),Q(Xe,{"data-tool-column":"handoff",class:"flex-[1_1_25%] border-t border-neutral-200 px-4 py-3 dark:border-neutral-700",target:D("tools","handoffs"),active:Y("tools","handoffs"),onOpen:I[14]||(I[14]=w=>o("edit-surface",w)),onHoverTarget:I[15]||(I[15]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",$u,[Q(E(ra),{class:"h-3 w-3"}),I[25]||(I[25]=me(" Handoffs ",-1))]),r.value.length>0?(h(),k("div",Mu,[(h(!0),k(Me,null,Ce(r.value,w=>(h(),k("div",{key:w.name,class:"text-[11px]"},[m("div",Tu,j(w.displayName),1)]))),128))])):(h(),k("div",Su,"None"))]),_:1},8,["target","active"]),e.subagentEditTarget?(h(),ue(Xe,{key:0,"data-tool-column":"subagent",class:"flex-[1_1_25%] border-t border-neutral-200 px-4 py-3 dark:border-neutral-700",target:e.subagentEditTarget,active:G(),onOpen:I[16]||(I[16]=w=>o("edit-surface",w)),onHoverTarget:I[17]||(I[17]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",Cu,[Q(E(ot),{class:"h-3 w-3"}),I[26]||(I[26]=me(" Sub-agents ",-1))]),s.value.length>0?(h(),k("div",_u,[(h(!0),k(Me,null,Ce(s.value,w=>(h(),k("div",{key:w.name,class:"text-[11px]"},[m("div",Iu,[m("span",{class:le(["font-mono font-medium",w.relationship?.hidden?"text-neutral-400 dark:text-neutral-600":"text-neutral-800 dark:text-neutral-200"])},j(w.displayName),3),w.relationship?.hidden?(h(),k("span",Eu,"hidden")):W("",!0)])]))),128))])):(h(),k("div",Nu,"None"))]),_:1},8,["target","active"])):W("",!0)])])],34))}}),Au={class:"flex items-center gap-2.5 px-5 pt-4 pb-3"},Pu={class:"text-[15px] font-semibold text-neutral-900 dark:text-neutral-100"},Lu={class:"flex items-center gap-2.5 px-5 pt-4 pb-3"},Ru={class:"text-[15px] font-semibold text-neutral-900 dark:text-neutral-100"},Ou={class:"border-t border-neutral-100 px-5 py-3 text-xs dark:border-neutral-800"},Du={key:0,class:"font-mono text-neutral-500 dark:text-neutral-400"},Bu={key:1,class:"text-neutral-400 dark:text-neutral-500"},Vu=_e({__name:"SidePromptNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{},refreshEpoch:{}},emits:["select","edit-surface","hover-edit-target"],setup(e){const t=e,n=R(()=>t.data.mode==="human"),o=R(()=>t.data.mode==="handler"),a=R(()=>({entityType:"agent",entityId:t.data.agentName,section:t.data.id==="a"?"side-a":"side-b"})),l=R(()=>{const i=t.data.model;return i?Ue(`/api/providers/${encodeURIComponent(i.provider)}/icon?model=${encodeURIComponent(i.model)}`):t.data.prompt?Ue(`/api/providers/${encodeURIComponent(t.data.prompt.model_provider)}/icon?model=${encodeURIComponent(t.data.prompt.model_id)}`):""}),s=R(()=>t.data.id==="a"?"border-sky-500 dark:border-sky-600":"border-amber-500 dark:border-amber-600"),r=R(()=>t.data.id==="a"?"text-sky-600 dark:text-sky-400":"text-amber-600 dark:text-amber-400");return(i,u)=>n.value?(h(),k("div",{key:0,"data-canvas-node":"",role:"button",tabindex:"0",onClick:u[0]||(u[0]=Te(d=>i.$emit("select"),["stop"])),onKeydown:[u[1]||(u[1]=Ve(Te(d=>i.$emit("select"),["prevent","stop"]),["enter"])),u[2]||(u[2]=Ve(Te(d=>i.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",s.value,E(lt)(e.selected,e.hovered)])},[m("div",Au,[Q(E(oa),{class:le(["h-5 w-5 shrink-0",r.value])},null,8,["class"]),m("span",Pu,j(e.data.label),1)]),u[9]||(u[9]=m("div",{class:"border-t border-neutral-100 px-5 py-3 text-xs text-neutral-400 dark:border-neutral-800 dark:text-neutral-500"}," Receives user messages and input. ",-1))],34)):o.value?(h(),k("div",{key:1,"data-canvas-node":"",role:"button",tabindex:"0",onClick:u[3]||(u[3]=Te(d=>i.$emit("select"),["stop"])),onKeydown:[u[4]||(u[4]=Ve(Te(d=>i.$emit("select"),["prevent","stop"]),["enter"])),u[5]||(u[5]=Ve(Te(d=>i.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",s.value,E(lt)(e.selected,e.hovered)])},[m("div",Lu,[Q(E(mo),{class:le(["h-5 w-5 shrink-0",r.value])},null,8,["class"]),m("span",Ru,j(e.data.label),1),m("span",{class:le(["ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold uppercase tracking-wider",r.value])},"Handler",2)]),m("div",Ou,[e.data.handlerName?(h(),k("span",Du,j(e.data.handlerName),1)):(h(),k("span",Bu,"No handler selected"))])],34)):e.data.prompt?(h(),ue(Fo,{key:2,prompt:e.data.prompt,tools:e.data.tools,variables:e.data.variables,"variable-env-names":e.data.variableEnvNames,label:e.data.label,"model-name":e.data.model?.name,"model-provider":e.data.model?.provider,"model-actual":e.data.model?.model,"model-icon-src":l.value,"model-capabilities":e.data.model?.capabilities,"border-class":s.value,"accent-text-class":r.value,selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,"subagent-edit-target":a.value,onSelect:u[6]||(u[6]=d=>i.$emit("select")),onEditSurface:u[7]||(u[7]=d=>i.$emit("edit-surface",d)),onHoverEditTarget:u[8]||(u[8]=d=>i.$emit("hover-edit-target",d))},null,8,["prompt","tools","variables","variable-env-names","label","model-name","model-provider","model-actual","model-icon-src","model-capabilities","border-class","accent-text-class","selected","hovered","hovered-edit-target","refresh-epoch","subagent-edit-target"])):W("",!0)}}),Hu={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Uu(e,t){return h(),k("svg",Hu,[...t[0]||(t[0]=[ts('<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M6 3v12"></path><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle><path d="M18 9a9 9 0 0 1-9 9"></path></g>',1)])])}const zu=it({name:"lucide-git-branch",render:Uu}),Fu={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ju(e,t){return h(),k("svg",Fu,[...t[0]||(t[0]=[m("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 22v-5M9 8V2m6 6V2m3 6v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"},null,-1)])])}const so=it({name:"lucide-plug",render:ju}),Xu={class:"border-b border-neutral-200 dark:border-neutral-700"},Ku={class:"flex items-center justify-between gap-3 px-4 pt-3 pb-1.5"},Yu={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},qu={key:0,class:"flex flex-wrap items-center gap-1"},Gu={class:"flex items-start justify-between gap-5 px-4 pt-1 pb-3"},Wu={class:"min-w-0 flex-1"},Qu={class:"truncate font-mono text-[13px] font-semibold text-neutral-900 dark:text-neutral-100"},Ju={key:0,class:"w-56 shrink-0 text-balance text-left text-[10.5px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Zu={key:0,class:"px-5 py-3"},ec={class:"min-w-[320px] max-w-[380px]"},tc={class:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},nc=_e({__name:"FunctionToolCard",props:{tool:{},detail:{},selected:{type:Boolean},hovered:{type:Boolean}},emits:["select"],setup(e){const t=e,n=R(()=>ma(t.detail.schema)),o=R(()=>t.detail.variables.length>0),a=R(()=>n.value.length>0),l=R(()=>{const s=[];return typeof t.tool.config.blocking=="boolean"&&s.push({label:t.tool.config.blocking?"blocking":"background",accent:!1}),t.tool.config.optional&&s.push({label:"optional",accent:!1}),t.tool.config.immediate&&s.push({label:"immediate",accent:!0}),s});return(s,r)=>(h(),k("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:r[0]||(r[0]=Te(i=>s.$emit("select"),["stop"])),onKeydown:[r[1]||(r[1]=Ve(Te(i=>s.$emit("select"),["prevent","stop"]),["enter"])),r[2]||(r[2]=Ve(Te(i=>s.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer overflow-hidden rounded-xl border border-neutral-300 bg-white transition-shadow select-none dark:border-neutral-700 dark:bg-neutral-950",E(lt)(e.selected,e.hovered)]),style:{width:"max-content"}},[m("header",Xu,[m("div",Ku,[m("div",Yu,[Q(qt,{class:"h-3 w-3"}),r[3]||(r[3]=m("span",null,"Function",-1))]),l.value.length>0?(h(),k("div",qu,[(h(!0),k(Me,null,Ce(l.value,i=>(h(),k("span",{key:i.label,class:le(["rounded-md px-1.5 py-px font-mono text-[10px] lowercase tracking-wide",i.accent?"bg-amber-100 text-amber-700 dark:bg-amber-950/50 dark:text-amber-300":"bg-neutral-100 text-neutral-500 dark:bg-neutral-900 dark:text-neutral-400"])},j(i.label),3))),128))])):W("",!0)]),m("div",Gu,[m("div",Wu,[m("div",Qu,j(e.tool.displayName),1)]),e.detail.description?(h(),k("p",Ju,j(e.detail.description),1)):W("",!0)])]),o.value||a.value?(h(),k("div",Zu,[m("div",ec,[o.value?(h(),ue(ha,{key:0,variables:e.detail.variables},null,8,["variables"])):W("",!0),a.value?(h(),k("div",{key:1,class:le([o.value?"mt-3 border-t border-neutral-200 pt-3 dark:border-neutral-700":""])},[m("div",tc,[Q(E(Mt),{class:"h-3 w-3"}),r[4]||(r[4]=me(" Args ",-1))]),Q(Do,{nodes:n.value,"empty-label":"No args"},null,8,["nodes"])],2)):W("",!0)])])):W("",!0)],34))}}),ac={class:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] opacity-60"},oc={class:"mt-1.5 truncate text-sm font-semibold text-neutral-900 dark:text-neutral-100"},rc={key:0,class:"mt-0.5 truncate text-[11px] text-neutral-500 dark:text-neutral-400"},sc=_e({__name:"ToolNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{},refreshEpoch:{}},emits:["select","edit-surface","hover-edit-target","view-agent","detail-loading"],setup(e,{emit:t}){const n=e,o=t,a={tool:{label:"Function",classes:"border-neutral-300 bg-white dark:border-neutral-700 dark:bg-neutral-950",icon:qt},prompt:{label:"Prompt Tool",classes:"border-fuchsia-300 bg-fuchsia-50/90 dark:border-fuchsia-700 dark:bg-fuchsia-950/30",icon:gt},subagent:{label:"Subagent",classes:"border-emerald-300 bg-emerald-50/90 dark:border-emerald-700 dark:bg-emerald-950/30",icon:zu},handoff:{label:"Handoff",classes:"border-sky-300 bg-sky-50/90 dark:border-sky-700 dark:bg-sky-950/30",icon:ra},provider:{label:"Provider",classes:"border-amber-300 bg-amber-50/90 dark:border-amber-700 dark:bg-amber-950/30",icon:so},mcp:{label:"MCP",classes:"border-violet-300 bg-violet-50/90 dark:border-violet-700 dark:bg-violet-950/30",icon:so},unknown:{label:"Tool",classes:"border-neutral-300 bg-white dark:border-neutral-700 dark:bg-neutral-950",icon:dn}},l=R(()=>a[n.data.kind]||a.unknown),s=R(()=>n.data.kind==="tool"),r=R(()=>n.data.kind==="prompt"),i=R(()=>n.data.kind==="handoff"),u=R(()=>{const L=n.data.description;return L?L.length>48?L.slice(0,45)+"...":L:""}),d=H(null),f=H(null),v=H([]),x=H(null),g=H(null),c=R(()=>n.data.kind==="tool"||n.data.kind==="prompt"||n.data.kind==="handoff");let b=0;Ae(()=>[n.data.name,n.refreshEpoch??0],async()=>{const L=++b;c.value&&o("detail-loading",!0);try{const P=await Ad(n.data);if(L!==b)return;f.value=P.functionTool,d.value=P.promptTool?.prompt||null,v.value=P.promptTool?.nestedTools||[],g.value=P.promptTool?.model||null,x.value=P.handoffAgent}finally{L===b&&c.value&&o("detail-loading",!1)}},{immediate:!0});const S=R(()=>g.value?Ue(`/api/providers/${encodeURIComponent(g.value.provider)}/icon?model=${encodeURIComponent(g.value.model)}`):d.value?Ue(`/api/providers/${encodeURIComponent(d.value.model_provider)}/icon?model=${encodeURIComponent(d.value.model_id)}`):""),C=R(()=>g.value?.name||d.value?.model_name),_=R(()=>g.value?.provider||d.value?.model_provider),y=R(()=>g.value?.model||d.value?.model_id||null);return(L,P)=>s.value&&f.value?(h(),ue(nc,{key:0,tool:e.data,detail:f.value,selected:e.selected,hovered:e.hovered,onSelect:P[0]||(P[0]=D=>o("select"))},null,8,["tool","detail","selected","hovered"])):r.value&&d.value?(h(),ue(Fo,{key:1,prompt:d.value,tools:v.value,"tool-config":e.data.config,variables:E(sa)(d.value),"variable-env-names":E(la)(d.value),"model-name":C.value,"model-provider":_.value,"model-actual":y.value,"model-icon-src":S.value,"model-capabilities":g.value?.capabilities,"border-class":"border-fuchsia-500 dark:border-fuchsia-600","accent-text-class":"text-fuchsia-600 dark:text-fuchsia-400",selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,onSelect:P[1]||(P[1]=D=>o("select")),onEditSurface:P[2]||(P[2]=D=>o("edit-surface",D)),onHoverEditTarget:P[3]||(P[3]=D=>o("hover-edit-target",D)),"refresh-epoch":e.refreshEpoch},null,8,["prompt","tools","tool-config","variables","variable-env-names","model-name","model-provider","model-actual","model-icon-src","model-capabilities","selected","hovered","hovered-edit-target","refresh-epoch"])):i.value&&x.value?(h(),ue(Ro,{key:2,data:x.value,selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,"border-class":"border-sky-400 dark:border-sky-500","background-class":"bg-sky-50/90 dark:bg-sky-950/30","kind-label":"Handoff","accent-text-class":"text-sky-600 dark:text-sky-400","action-label":"View agent",onSelect:P[4]||(P[4]=D=>o("select")),onAction:P[5]||(P[5]=D=>o("view-agent",x.value.name)),onEditSurface:P[6]||(P[6]=D=>o("edit-surface",D)),onHoverEditTarget:P[7]||(P[7]=D=>o("hover-edit-target",D))},null,8,["data","selected","hovered","hovered-edit-target"])):(h(),k("div",{key:3,"data-canvas-node":"",role:"button",tabindex:"0",onClick:P[8]||(P[8]=Te(D=>o("select"),["stop"])),onKeydown:[P[9]||(P[9]=Ve(Te(D=>o("select"),["prevent","stop"]),["enter"])),P[10]||(P[10]=Ve(Te(D=>o("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border px-4 py-3 transition-shadow select-none",l.value.classes,E(lt)(e.selected,e.hovered)])},[m("div",ac,[(h(),ue(tt(l.value.icon),{class:"h-3.5 w-3.5"})),me(" "+j(l.value.label),1)]),m("div",oc,j(e.data.displayName),1),u.value?(h(),k("div",rc,j(u.value),1)):W("",!0)],34))}}),lc={class:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},ic={class:"mt-1.5 truncate text-sm font-medium text-neutral-900 dark:text-neutral-100"},dc=_e({__name:"HookNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean}},emits:["select"],setup(e){return(t,n)=>(h(),k("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:n[0]||(n[0]=Te(o=>t.$emit("select"),["stop"])),onKeydown:[n[1]||(n[1]=Ve(Te(o=>t.$emit("select"),["prevent","stop"]),["enter"])),n[2]||(n[2]=Ve(Te(o=>t.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border px-4 py-3 transition-shadow select-none","border-neutral-200 bg-neutral-50/80 dark:border-neutral-800 dark:bg-neutral-900/80",E(lt)(e.selected,e.hovered)])},[m("div",lc,[Q(E(qn),{class:"h-3.5 w-3.5"}),n[3]||(n[3]=me(" Hook ",-1))]),m("div",ic,j(e.data.hook),1)],34))}}),uc={class:"flex items-center gap-1.5 whitespace-nowrap px-4 pt-3 pb-1.5 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},cc={key:0,class:"ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold tracking-wider"},fc={"data-model-anchor":"",class:"flex items-center gap-2 px-4 pt-0.5 pb-3"},hc=["src"],mc={class:"min-w-0"},pc={class:"truncate text-[14px] font-semibold text-neutral-900 dark:text-neutral-100"},vc={key:0,class:"truncate font-mono text-[10px] text-neutral-400 dark:text-neutral-500"},gc={key:1,class:"truncate text-[10px] text-neutral-400 dark:text-neutral-500"},xc={key:0},bc={key:1,class:"text-neutral-300 dark:text-neutral-600 mx-1"},yc={key:2},kc={key:0,class:"grid grid-cols-2 border-t border-neutral-200 dark:border-neutral-700"},wc={key:1,class:"grid grid-cols-2 border-t border-neutral-200 text-[10px] text-neutral-400 dark:border-neutral-700 dark:text-neutral-500"},$c={class:"text-[9px] uppercase leading-tight tracking-[0.14em]"},Mc={class:"mt-0.5 font-mono text-[11px] leading-tight text-neutral-600 dark:text-neutral-300"},Tc={key:2,class:"space-y-1 border-t border-neutral-200 px-4 py-2 text-[10px] text-neutral-400 dark:border-neutral-700 dark:text-neutral-500"},Sc={class:"uppercase tracking-[0.16em]"},Cc={class:"min-w-0 truncate font-mono text-right"},_c=_e({__name:"ModelNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{}},emits:["select","edit-surface","hover-edit-target"],setup(e,{emit:t}){const n=e,o=t,{activeSurface:a}=Gt(),l=R(()=>({entityType:"model",entityId:n.data.id})),s=R(()=>Xt(a.value?.target,l.value)||Xt(n.hoveredEditTarget,l.value)),r=R(()=>Ue(`/api/providers/${encodeURIComponent(n.data.provider)}/icon?model=${encodeURIComponent(n.data.model||"")}`)),i=R(()=>{const C=n.data.capabilities||{};return[{key:"images",label:"Vision",enabled:C.supportsImages===!0},{key:"tools",label:"Tool Calls",enabled:C.supportsToolCalls===!0},{key:"stream",label:"Streaming",enabled:C.supportsStreaming===!0},{key:"json",label:"JSON",enabled:C.supportsJsonMode===!0}]}),u=R(()=>n.data.providerTools||[]),d=R(()=>n.data.fallbacks||[]),f=R(()=>{const C=n.data.capabilities||{},_=[];return typeof C.maxContextTokens=="number"&&_.push({label:"Max context",value:C.maxContextTokens.toLocaleString()}),typeof C.maxOutputTokens=="number"&&_.push({label:"Max output",value:C.maxOutputTokens.toLocaleString()}),_}),v=C=>{if(C==null||Number.isNaN(C))return null;if(C===0)return"$0";const _=C>=1?C.toFixed(2):C.toFixed(4);return`$${parseFloat(_)}`},x=C=>{if(!C)return null;const _=v(C.min),y=v(C.max);return!_||!y?null:_===y?_:`${_}-${y}`},g=R(()=>{const C=n.data.pricing_range?.input;return C?x(C):v(n.data.input_price)}),c=R(()=>{const C=n.data.pricing_range?.output;return C?x(C):v(n.data.output_price)}),b=R(()=>!!(g.value||c.value)),S=R(()=>{const C=[];if(u.value.length>0){const _=u.value.slice(0,2).join(", "),y=u.value.length>2?", …":"";C.push({label:"Provider tools",value:_+y})}if(d.value.length>0){const _=d.value.slice(0,2).map(L=>L.name).join(", "),y=d.value.length>2?", …":"";C.push({label:"Fallbacks",value:_+y})}return C});return(C,_)=>(h(),ue(Xe,{"data-canvas-node":"","data-canvas-model-node":"",target:l.value,active:s.value,"edit-data":e.data,positioned:!1,class:le(["absolute overflow-hidden rounded-xl border border-neutral-300 bg-white transition-shadow select-none dark:border-neutral-700 dark:bg-neutral-950",E(lt)(e.selected,e.hovered)]),onOpen:_[1]||(_[1]=y=>o("edit-surface",y)),onHoverTarget:_[2]||(_[2]=y=>o("hover-edit-target",y))},{default:be(()=>[m("header",null,[m("div",uc,[Q(E(vo),{class:"h-3 w-3"}),_[3]||(_[3]=m("span",null,"Model",-1)),e.data.provider?(h(),k("span",cc,j(e.data.provider),1)):W("",!0)]),m("div",fc,[m("img",{src:r.value,alt:"",class:"h-5 w-5 shrink-0 rounded-sm",onError:_[0]||(_[0]=y=>y.target.style.visibility="hidden")},null,40,hc),m("div",mc,[m("div",pc,j(e.data.name),1),e.data.model&&e.data.model!==e.data.name?(h(),k("div",vc,j(e.data.model),1)):W("",!0),b.value?(h(),k("div",gc,[g.value?(h(),k("span",xc,[_[4]||(_[4]=m("span",{class:"text-neutral-300 dark:text-neutral-600"},"in",-1)),me(" "+j(g.value)+"/M ",1)])):W("",!0),g.value&&c.value?(h(),k("span",bc,"·")):W("",!0),c.value?(h(),k("span",yc,[_[5]||(_[5]=m("span",{class:"text-neutral-300 dark:text-neutral-600"},"out",-1)),me(" "+j(c.value)+"/M ",1)])):W("",!0)])):W("",!0)])])]),i.value.length>0?(h(),k("div",kc,[(h(!0),k(Me,null,Ce(i.value,(y,L)=>(h(),k("div",{key:y.key,class:le(["flex items-center gap-2 px-4 py-2",L%2===1?"border-l border-neutral-200 dark:border-neutral-700":"",L>=2?"border-t border-neutral-200 dark:border-neutral-700":""])},[m("span",{class:le(["h-1.5 w-1.5 shrink-0 rounded-full",y.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,2),m("span",{class:le(["text-[11px] leading-tight",y.enabled?"text-neutral-700 dark:text-neutral-300":"text-neutral-400 dark:text-neutral-500"])},j(y.label),3)],2))),128))])):W("",!0),f.value.length>0?(h(),k("div",wc,[(h(!0),k(Me,null,Ce(f.value,(y,L)=>(h(),k("div",{key:y.label,class:le(["px-4 py-2",L>0?"border-l border-neutral-200 dark:border-neutral-700":""])},[m("div",$c,j(y.label),1),m("div",Mc,j(y.value),1)],2))),128))])):W("",!0),S.value.length>0?(h(),k("div",Tc,[(h(!0),k(Me,null,Ce(S.value,y=>(h(),k("div",{key:y.label,class:"flex items-baseline justify-between gap-3"},[m("span",Sc,j(y.label),1),m("span",Cc,j(y.value),1)]))),128))])):W("",!0)]),_:1},8,["target","active","edit-data","class"]))}}),Ic={class:"relative flex-1 overflow-hidden bg-neutral-100/50 dark:bg-neutral-950/50"},Ec=["aria-label","onClick","onKeydown"],Nc={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},Ac=["id"],Pc=["fill"],Lc={class:"absolute -top-3 left-4 z-10 flex items-center gap-2 rounded bg-white px-2 py-0.5 dark:bg-neutral-900"},Rc={class:"text-[10px] font-semibold uppercase tracking-wider text-neutral-600 dark:text-neutral-300"},Oc={key:0,class:"inline-flex items-center rounded-full border border-dashed border-neutral-300 px-1.5 py-px text-[9px] font-medium text-neutral-400 dark:border-neutral-600 dark:text-neutral-500",title:"Hidden relationship: spawnable by runtime code, never shown to the model"},Dc={key:0,class:"absolute inset-0 z-10 flex items-center justify-center bg-neutral-100 dark:bg-neutral-950"},Bc={key:0,class:"absolute left-4 right-4 top-4 z-10 rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800 dark:border-amber-800 dark:bg-amber-950/80 dark:text-amber-100"},Vc={key:1,class:"absolute inset-0 flex flex-col items-center justify-center gap-3 text-neutral-400 dark:text-neutral-600"},Hc=_e({__name:"CompositionCanvas",props:{layout:{},selectedNodeId:{},hoveredNodeId:{},hoveredEditTarget:{},refreshingNodeId:{},refreshEpoch:{},loading:{type:Boolean},error:{},hasAgent:{type:Boolean}},emits:["select-node","view-agent","deselect","nodes-measured","hover-node","open-edit-surface"],setup(e,{emit:t}){const n=e,o=t,a=H(null),l=H(new Set);Ae(()=>n.layout.nodes.map(ae=>ae.id).join(","),ae=>{const J=new Set(ae?ae.split(","):[]);l.value=new Set([...l.value].filter(p=>J.has(p)))},{immediate:!0});function s(ae,J){const p=new Set(l.value);J?p.add(ae):p.delete(ae),l.value=p}const r=R(()=>l.value.size>0),i=H(!1),{state:u,isPanning:d,transformStyle:f,scalePercent:v,onWheel:x,onPointerDown:g,onPointerMove:c,onPointerUp:b,shouldHandleClick:S,zoomIn:C,zoomOut:_,fitToView:y,resetAutoFitLock:L,focusNode:P,setContentBounds:D,saveViewport:Z,restoreViewport:q}=Bl(a,{maxScale:1.2,panPadding:40});Ae(u,()=>us(),{deep:!0,flush:"post"}),La(ae=>{const J=a.value;J&&(J.addEventListener("wheel",x,{passive:!1}),ae(()=>J.removeEventListener("wheel",x)))}),ns(()=>{a.value?.removeEventListener("wheel",x)});const Y=Rn(n,"layout"),G=Rn(n,"loading"),B=Rn(n,"selectedNodeId"),{layoutStable:M,measurements:I,nodesWithMeasuredSizes:w,nodeMetrics:U,measureNode:N,measuredBounds:T}=Rl(Y,G,ae=>y(ae,{force:!1}),ae=>o("nodes-measured",ae),L);Ae(()=>n.loading,ae=>{ae&&(i.value=!1)}),Ae([M,r],([ae,J])=>{ae&&!J&&(i.value=!0)},{immediate:!0});const A=R(()=>Vl({hasAgent:n.hasAgent,hasError:!!n.error,loadingComposition:n.loading,layoutStable:M.value,loadingAsyncDetail:r.value,hasRevealedStableDiagram:i.value}));function X(ae,J){if(J instanceof HTMLElement){N(ae,J);return}if(!J||typeof J!="object"||!("$el"in J))return;const p=J.$el;p instanceof HTMLElement&&N(ae,p)}La(()=>{if(!n.hasAgent||n.layout.nodes.length===0){D(null);return}D(T())});function F(ae){if(ae.type==="agent"||ae.type==="side"||ae.type==="model")return!0;if(ae.type!=="tool")return!1;const J=ae.data.kind;return J==="prompt"||J==="handoff"}const pe=R(()=>{const ae=n.hoveredNodeId;if(!ae)return null;const J=n.layout.nodes.find($=>$.id===ae);if(!J||!F(J))return null;const p=new Set([ae]);for(const $ of n.layout.edges)$.from===ae&&p.add($.to),$.to===ae&&p.add($.from);return p});function se(ae){const J=pe.value;return J?J.has(ae)?{}:{opacity:"0.25",transition:"opacity 120ms ease-out"}:{}}function fe(ae){const J=pe.value;if(!J)return!0;const p=n.layout.groups.find($=>$.id===ae);if(!p)return!0;for(const $ of n.layout.nodes)if(J.has($.id)&&$.x>=p.x&&$.y>=p.y&&$.x+$.width<=p.x+p.width&&$.y+$.height<=p.y+p.height)return!0;return!1}const{handleCanvasClick:K,handleGroupClick:z,handleNodeSelect:te}=Ol({containerRef:a,layout:Y,selectedNodeId:B,layoutStable:M,measurements:I,viewportState:u,shouldHandleClick:S,focusNode:P,saveViewport:Z,restoreViewport:q,onSelectNode:ae=>o("select-node",ae),onDeselect:()=>o("deselect")});function ie(ae,J){o("open-edit-surface",{...J,node:ae})}function de(ae,J){o("hover-node",ae.id,J)}function ve(ae,J){ae.key!=="Enter"&&ae.key!==" "||(ae.preventDefault(),ae.stopPropagation(),z(ae,J))}return(ae,J)=>(h(),k("div",Ic,[m("div",{ref_key:"containerRef",ref:a,class:le(["absolute inset-0",E(d)?"cursor-grabbing":"cursor-grab"]),onPointerdown:J[6]||(J[6]=(...p)=>E(g)&&E(g)(...p)),onPointermove:J[7]||(J[7]=(...p)=>E(c)&&E(c)(...p)),onPointerup:J[8]||(J[8]=(...p)=>E(b)&&E(b)(...p)),onPointercancel:J[9]||(J[9]=(...p)=>E(b)&&E(b)(...p)),onClick:J[10]||(J[10]=(...p)=>E(K)&&E(K)(...p))},[Q(Ul),m("div",{class:"absolute origin-top-left will-change-transform",style:Re({...E(f),opacity:E(M)?1:0,transition:E(M)?"opacity 200ms ease-out":"none",pointerEvents:E(M)?"auto":"none"})},[(h(!0),k(Me,null,Ce(e.layout.groups,p=>(h(),k(Me,{key:p.id},[p.subagent?.multiInstance?(h(),k("div",{key:0,class:"absolute border border-neutral-200/40 bg-[#f3f3f3] dark:border-neutral-700/25 dark:bg-[#1a1a1a]",style:Re({left:`${p.x+6}px`,top:`${p.y+6}px`,width:`${p.width}px`,height:`${p.height}px`,borderRadius:"8px"})},null,4)):W("",!0),p.subagent?.multiInstance?(h(),k("div",{key:1,class:"absolute border border-neutral-200/50 bg-[#f5f5f5] dark:border-neutral-700/35 dark:bg-[#1c1c1c]",style:Re({left:`${p.x+3}px`,top:`${p.y+3}px`,width:`${p.width}px`,height:`${p.height}px`,borderRadius:"8px"})},null,4)):W("",!0),m("div",{"data-canvas-group":"",class:le(["absolute cursor-pointer select-none border border-neutral-200/60 bg-[#f7f7f7] transition-opacity duration-150 ease-out dark:border-neutral-700/50 dark:bg-[#1e1e1e]",p.subagent?.hidden?"border-dashed":""]),role:"button",tabindex:"0","aria-label":`Focus ${p.label}`,onClick:Te($=>E(z)($,p),["stop"]),onKeydown:$=>ve($,p),style:Re({left:`${p.x}px`,top:`${p.y}px`,width:`${p.width}px`,height:`${p.height}px`,borderRadius:"8px",opacity:fe(p.id)?1:.3})},[(h(),k("svg",Nc,[m("defs",null,[m("pattern",{id:"subgrid-"+p.id,x:"0",y:"0",width:"20",height:"20",patternUnits:"userSpaceOnUse"},[...J[12]||(J[12]=[m("circle",{cx:"10",cy:"10",r:"0.75",class:"fill-neutral-400/15 dark:fill-neutral-500/15"},null,-1)])],8,Ac)]),m("rect",{width:"100%",height:"100%",fill:`url(#subgrid-${p.id})`},null,8,Pc)])),m("div",Lc,[m("span",Rc,j(p.label),1),p.subagent?(h(),k(Me,{key:0},[m("span",{class:le(["inline-flex items-center rounded-full px-1.5 py-px text-[9px] font-medium",p.subagent.blocking?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-neutral-100 text-neutral-500 dark:bg-neutral-800 dark:text-neutral-400"])},j(p.subagent.blocking?"Blocking":"Background"),3),m("span",{class:le(["inline-flex items-center rounded-full px-1.5 py-px text-[9px] font-medium",p.subagent.multiInstance?"bg-sky-100 text-sky-700 dark:bg-sky-900/40 dark:text-sky-400":"bg-neutral-100 text-neutral-500 dark:bg-neutral-800 dark:text-neutral-400"])},j(p.subagent.multiInstance?"Multi":"Single"),3),p.subagent.hidden?(h(),k("span",Oc,"Hidden")):W("",!0)],64)):W("",!0)])],46,Ec)],64))),128)),e.layout.nodes.length>0?(h(),ue($i,{key:0,nodes:E(w),edges:e.layout.edges,groups:e.layout.groups,"node-metrics":E(U),"selected-node-id":e.selectedNodeId,"hovered-node-id":e.hoveredNodeId},null,8,["nodes","edges","groups","node-metrics","selected-node-id","hovered-node-id"])):W("",!0),(h(!0),k(Me,null,Ce(e.layout.nodes,p=>(h(),k(Me,{key:p.id},[p.type==="agent"?(h(),ue(dd,{key:0,ref_for:!0,ref:$=>X(p.id,$),"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,style:Re({left:`${p.x}px`,top:`${p.y}px`,width:"max-content",minWidth:`${p.width}px`,...se(p.id)}),onSelect:$=>E(te)(p),onEditSurface:$=>ie(p,$),onHoverEditTarget:$=>de(p,$),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[0]||(J[0]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","refresh-epoch","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):p.type==="side"?(h(),ue(Vu,{key:1,ref_for:!0,ref:$=>X(p.id,$),"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,"hovered-edit-target":e.hoveredEditTarget,style:Re({left:`${p.x}px`,top:`${p.y}px`,width:"max-content",minWidth:`${p.width}px`,...se(p.id)}),onSelect:$=>E(te)(p),onEditSurface:$=>ie(p,$),onHoverEditTarget:$=>de(p,$),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[1]||(J[1]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):p.type==="tool"?(h(),ue(sc,{key:2,ref_for:!0,ref:$=>X(p.id,$),"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,style:Re(p.data.kind==="tool"?{left:`${p.x}px`,top:`${p.y}px`,width:"max-content",minWidth:`${p.width}px`,...se(p.id)}:["prompt","handoff"].includes(p.data.kind)?{left:`${p.x}px`,top:`${p.y}px`,width:"max-content",minWidth:`${p.width}px`,...se(p.id)}:{left:`${p.x}px`,top:`${p.y}px`,width:`${p.width}px`,height:`${p.height}px`,...se(p.id)}),onSelect:$=>E(te)(p),onEditSurface:$=>ie(p,$),onHoverEditTarget:$=>de(p,$),onViewAgent:J[2]||(J[2]=$=>o("view-agent",$)),onDetailLoading:$=>s(p.id,$),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[3]||(J[3]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","refresh-epoch","style","onSelect","onEditSurface","onHoverEditTarget","onDetailLoading","onMouseenter"])):p.type==="hook"?(h(),ue(dc,{key:3,"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,style:Re({left:`${p.x}px`,top:`${p.y}px`,width:`${p.width}px`,height:`${p.height}px`,...se(p.id)}),onSelect:$=>E(te)(p),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[4]||(J[4]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","style","onSelect","onMouseenter"])):p.type==="model"?(h(),ue(_c,{key:4,ref_for:!0,ref:$=>X(p.id,$),"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,"hovered-edit-target":e.hoveredEditTarget,style:Re({left:`${p.x}px`,top:`${p.y}px`,width:`${p.width}px`,minHeight:`${p.height}px`,...se(p.id)}),onSelect:$=>E(te)(p),onEditSurface:$=>ie(p,$),onHoverEditTarget:$=>de(p,$),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[5]||(J[5]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):W("",!0),e.refreshingNodeId===p.id?(h(),k("div",{key:5,class:"absolute flex items-center justify-center rounded-xl bg-white/70 dark:bg-neutral-950/70",style:Re({left:`${p.x}px`,top:`${p.y}px`,width:`${E(I).get(p.id)?.w??p.width}px`,height:`${E(I).get(p.id)?.h??p.height}px`})},[...J[13]||(J[13]=[m("div",{class:"h-4 w-4 animate-spin rounded-full border-2 border-neutral-300 border-t-neutral-600 dark:border-neutral-600 dark:border-t-neutral-300"},null,-1)])],4)):W("",!0)],64))),128))],4)],34),Q(uo,{"leave-active-class":"transition-opacity duration-200 ease-out","leave-to-class":"opacity-0"},{default:be(()=>[A.value?(h(),k("div",Dc,[...J[14]||(J[14]=[m("div",{class:"flex items-center gap-2 rounded-full border border-neutral-300 bg-white/80 px-3 py-2 text-xs font-medium text-neutral-600 shadow-sm dark:border-neutral-700 dark:bg-neutral-900/80 dark:text-neutral-300"},[m("span",{class:"h-3.5 w-3.5 animate-spin rounded-full border-2 border-neutral-300 border-t-neutral-700 dark:border-neutral-600 dark:border-t-neutral-200"}),me(" Preparing diagram ")],-1)])])):W("",!0)]),_:1}),e.error?(h(),k("div",Bc,j(e.error),1)):W("",!0),!e.hasAgent&&!e.loading&&!e.error?(h(),k("div",Vc,[Q(E(go),{class:"h-12 w-12 opacity-40"}),J[15]||(J[15]=m("div",{class:"text-sm"},"Select an agent to view its composition",-1))])):W("",!0),e.hasAgent&&E(M)?(h(),ue(Ai,{key:2,"scale-percent":E(v),onZoomIn:E(C),onZoomOut:E(_),onFitView:J[11]||(J[11]=p=>E(y)(E(T)(),{force:!0}))},null,8,["scale-percent","onZoomIn","onZoomOut"])):W("",!0)]))}}),Uc=_e({__name:"InspectorPanel",props:{node:{},compositionSummary:{}},emits:["saved","close"],setup(e,{emit:t}){const n=e,o=t,a=H("inspect"),l=H(null),s=H(null),r=H(null),i=H(null),{saving:u,apiError:d,saveAgent:f,clearAgentError:v}=xo(),{saving:x,apiError:g,savePrompt:c,clearPromptError:b}=cs(),{saving:S,apiError:C,saveModel:_,clearModelError:y}=fs(),L=R(()=>u.value||x.value||S.value),P=R(()=>a.value==="edit-prompt"?g.value:a.value==="edit-model"?C.value:d.value);function D(B){return B?.id||B?.name||null}Ae(()=>n.node,B=>{if(v(),b(),y(),!B){a.value="inspect",l.value=null;return}if(B.type==="agent")l.value=B.value,a.value="edit-agent";else if(B.type==="side"){const M=B.value;M.prompt?(l.value=M.prompt,a.value="edit-prompt"):(a.value="inspect",l.value=null)}else B.type==="model"?(l.value=B.value,a.value="edit-model"):(a.value="inspect",l.value=null)});async function Z(B){(await f({mode:"edit",data:B,editingId:n.node?.type==="agent"?n.node.value.name:void 0,formNode:s.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}async function q(B){const M=D(l.value);(await c({mode:"edit",data:B,editingId:M,formNode:r.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}async function Y(B){const M=D(l.value);(await _({mode:"edit",data:B,editingId:M,formNode:i.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}function G(){a.value="inspect",l.value=null,v(),b(),y(),o("close")}return(B,M)=>(h(),k("div",null,[a.value==="edit-agent"?(h(),ue(yo,{key:0,ref_key:"agentModalRef",ref:s,"model-value":!0,"edit-agent":l.value,mode:"edit",saving:L.value,"api-error":P.value,onSave:Z,"onUpdate:modelValue":G},null,8,["edit-agent","saving","api-error"])):W("",!0),a.value==="edit-prompt"?(h(),ue(Cs,{key:1,ref_key:"promptModalRef",ref:r,"model-value":!0,"edit-prompt":l.value,mode:"edit",saving:L.value,onSave:q,"onUpdate:modelValue":G},null,8,["edit-prompt","saving"])):W("",!0),a.value==="edit-model"?(h(),ue(_s,{key:2,ref_key:"modelModalRef",ref:i,"model-value":!0,"edit-model":l.value,mode:"edit",saving:L.value,onSave:Y,"onUpdate:modelValue":G},null,8,["edit-model","saving"])):W("",!0)]))}}),zc={class:"relative"},Fc={key:1,class:"mt-[2px] inline-block h-3 w-3 shrink-0"},jc={class:"min-w-0 flex-1"},Xc={class:"flex min-w-0 items-start gap-2"},Kc={key:0,class:"mt-[1px] shrink-0 text-[11px] leading-none font-semibold text-rose-500 dark:text-rose-400","aria-label":"Required"},Yc=["onKeydown"],qc={key:2,class:"ml-auto shrink-0 truncate pl-2 text-[10px] text-neutral-400 dark:text-neutral-500",style:{"max-width":"35%"}},Gc={key:0,class:"mt-1 flex flex-wrap gap-1"},Wc={key:2,class:"mt-1 grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-[10.5px]"},Qc={class:"truncate text-neutral-400 dark:text-neutral-500"},Jc={key:0,class:"relative"},Zc=10,ef=_e({__name:"StructureTreeRow",props:{node:{},depth:{},collapsed:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},hoveredEditTarget:{},inheritedEditSurface:{},inheritedAnchorEl:{}},emits:["select","edit","hover","toggle"],setup(e,{emit:t}){const n={tool:qt,prompt:gt,subagent:ot,handoff:ra,provider:Mt,mcp:Mt,unknown:dn},o={agent:ot,side:ot,prompt:gt,model:vo,variables:Zn,variable:Zn,hooks:qn,hook:qn,tools:dn,tool:qt,subagent:ot,config:Da,section:Da,schema:Mt},a={tool:"text-neutral-600 dark:text-neutral-400",prompt:"text-fuchsia-600 dark:text-fuchsia-400",subagent:"text-emerald-600 dark:text-emerald-400",handoff:"text-sky-600 dark:text-sky-400",provider:"text-amber-600 dark:text-amber-400",mcp:"text-violet-600 dark:text-violet-400",unknown:"text-neutral-500 dark:text-neutral-400"},l={neutral:"bg-neutral-100 text-neutral-600 dark:bg-neutral-900 dark:text-neutral-400",sky:"bg-sky-100 text-sky-700 dark:bg-sky-950/50 dark:text-sky-300",amber:"bg-amber-100 text-amber-700 dark:bg-amber-950/50 dark:text-amber-300",emerald:"bg-emerald-100 text-emerald-700 dark:bg-emerald-950/50 dark:text-emerald-300",fuchsia:"bg-fuchsia-100 text-fuchsia-700 dark:bg-fuchsia-950/50 dark:text-fuchsia-300",violet:"bg-violet-100 text-violet-700 dark:bg-violet-950/50 dark:text-violet-300",rose:"bg-rose-100 text-rose-700 dark:bg-rose-950/50 dark:text-rose-300"},s={neutral:"text-neutral-700 dark:text-neutral-300",sky:"text-sky-600 dark:text-sky-400",amber:"text-amber-600 dark:text-amber-400",emerald:"text-emerald-600 dark:text-emerald-400",fuchsia:"text-fuchsia-600 dark:text-fuchsia-400",violet:"text-violet-600 dark:text-violet-400",rose:"text-rose-600 dark:text-rose-400"},r=e,i=t,{activeSurface:u}=Gt(),d=H(null),f=H(!1),v=R(()=>r.node.editSurface??r.inheritedEditSurface??null),x=R(()=>r.node.editSurface?d.value:r.inheritedAnchorEl??null),g=R(()=>{const K=r.node.editSurface;return K?.entityType!=="prompt"||r.node.kind!=="prompt"&&r.node.toolKind!=="prompt"?null:{entityType:"prompt",entityId:K.entityId,section:"prompt"}}),c=R(()=>!!r.node.children&&r.node.children.length>0),b=R(()=>c.value||r.node.collapsibleBody===!0),S=R(()=>!!r.node.isRoot),C=R(()=>S.value?!0:!r.collapsed.has(r.node.id)),_=R(()=>r.selectedCanvasNodeId===r.node.canvasNodeId);function y(K){if(!K)return!1;const z=[...r.node.children||[]];for(;z.length>0;){const te=z.pop();if(te.cardBacked===!0&&te.canvasNodeId===K)return!0;te.children?.length&&z.push(...te.children)}return!1}const L=R(()=>d.value&&u.value?.anchorEl===d.value?!0:!r.node.editSurface||r.node.anchorOnlyEditSurface?!1:Xt(r.node.editSurface,u.value?.target)?!0:u.value?!1:r.node.cardBacked===!0&&_.value&&!y(r.selectedCanvasNodeId)),P=R(()=>u.value||r.node.anchorOnlyEditSurface?!1:Xt(r.node.editSurface,r.hoveredEditTarget)?!0:r.hoveredEditTarget?!1:r.node.cardBacked===!0&&r.hoveredCanvasNodeId===r.node.canvasNodeId&&!y(r.hoveredCanvasNodeId??null)),D=R(()=>Xt(u.value?.target,g.value)),Z=R(()=>S.value?0:Math.max(0,r.depth-1)),q=R(()=>Z.value*Zc),Y=R(()=>{const K=r.node;return(K.kind==="tools"||K.kind==="tool")&&K.toolKind?n[K.toolKind]||dn:K.kind==="side"&&K.detail==="Human"?oa:o[K.kind]||Mt}),G=R(()=>{const K=r.node;return(K.kind==="agent"||K.kind==="subagent")&&!!(K.avatarSrc||K.avatarSeed)}),B=R(()=>{const K=r.node;return K.kind==="agent"?"text-neutral-700 dark:text-neutral-200":K.kind==="side"?K.id.endsWith("side-a")?"text-sky-600 dark:text-sky-400":"text-amber-600 dark:text-amber-400":K.kind==="prompt"&&K.tone?s[K.tone]:K.kind==="prompt"||K.kind==="model"?"text-neutral-500 dark:text-neutral-400":K.kind==="subagent"?"text-emerald-600 dark:text-emerald-400":K.kind==="hook"||K.kind==="hooks"?"text-neutral-500 dark:text-neutral-400":(K.kind==="tool"||K.kind==="tools")&&K.toolKind?a[K.toolKind]||"text-neutral-500":"text-neutral-500 dark:text-neutral-400"}),M=R(()=>{const K=r.node;return K.kind==="agent"||K.kind==="subagent"||K.kind==="tool"&&K.toolKind==="handoff"}),I=R(()=>{const K=["group relative flex items-start gap-1.5 px-2 cursor-pointer select-none transition-colors"];return K.push(M.value?"py-[6px] text-[12.5px]":"py-[4px]"),M.value&&K.push("relative z-[1] structure-row-agent-bg"),L.value?K.push("rounded-r-md structure-row-active"):P.value?K.push("rounded-md structure-row-hover"):M.value?K.push("rounded-md"):K.push("rounded-md agents-surface-hover"),r.node.virtual&&!_.value&&!L.value&&K.push("text-neutral-600 dark:text-neutral-400"),K.join(" ")}),w=R(()=>{const K=r.node,z=["truncate"],te=K.kind==="tool"&&K.toolKind==="handoff",ie=K.kind==="variable"||K.kind==="schema"&&K.hideIcon===!0||K.kind==="tool"&&!te;return K.cardBacked?z.push(ie?"font-semibold text-neutral-900 dark:text-neutral-50":"font-medium text-neutral-900 dark:text-neutral-50"):z.push("font-normal text-neutral-700 dark:text-neutral-300"),ie&&z.push("font-mono text-[11.5px]"),z.join(" ")});function U(K){return["rounded px-1.5 py-px text-[9px] font-semibold lowercase tracking-wide",K.mono?"font-mono":"",l[K.tone||"neutral"]].join(" ")}function N(K){return K.active===!1?"text-neutral-400 dark:text-neutral-600":s[K.tone||"neutral"]||s.neutral}function T(K){K.stopPropagation(),!S.value&&i("toggle",r.node.id)}function A(K){K.stopPropagation(),X()}function X(){if(f.value){f.value=!1;return}if(v.value&&x.value){i("edit",v.value,x.value,r.node.canvasNodeId,r.node.editData);return}i("select",r.node.canvasNodeId),!S.value&&b.value&&!C.value&&i("toggle",r.node.id)}function F(K){K.key!=="Enter"&&K.key!==" "||(K.preventDefault(),K.stopPropagation(),X())}function pe(K){K.button===0&&(!v.value||!x.value||(K.stopPropagation(),f.value=!0,i("edit",v.value,x.value,r.node.canvasNodeId,r.node.editData)))}function se(){i("hover",r.node.canvasNodeId,v.value)}function fe(K){K.stopPropagation();const z=g.value,te=K.currentTarget;!z||!(te instanceof HTMLElement)||i("edit",z,te,r.node.canvasNodeId,r.node.editData)}return(K,z)=>{const te=vt("StructureTreeRow",!0),ie=as("auto-animate");return h(),k("div",zc,[m("div",{class:"mx-1",style:Re({paddingLeft:`${q.value}px`})},[L.value?(h(),k("div",{key:0,class:le(["pointer-events-none absolute bottom-0 top-0 z-[2] w-px bg-accent-500"]),style:Re({left:`${q.value+5}px`})},null,4)):W("",!0),m("div",{ref_key:"rowRef",ref:d,class:le(I.value),role:"button",tabindex:"0",onClick:A,onKeydown:F,onPointerdown:pe,onMouseenter:se},[b.value&&!S.value?(h(),ue(E(ko),{key:0,class:le(["mt-[2px] h-3 w-3 shrink-0 text-neutral-400 transition-transform",C.value?"rotate-90":""]),onClick:T},null,8,["class"])):S.value?W("",!0):(h(),k("span",Fc)),G.value?(h(),ue(aa,{key:2,icon:e.node.avatarSrc,seed:e.node.avatarSeed??"",class:"mt-[1px] h-4 w-4 shrink-0 rounded object-cover"},null,8,["icon","seed"])):e.node.hideIcon?W("",!0):(h(),ue(tt(Y.value),{key:3,class:le(["mt-[1px] h-3.5 w-3.5 shrink-0",B.value])},null,8,["class"])),m("div",jc,[m("div",Xc,[m("span",{class:le(w.value)},j(e.node.label),3),e.node.required?(h(),k("span",Kc," * ")):W("",!0),g.value?(h(),ue(E(hs),{key:1,content:"Edit prompt text",position:"right",disabled:D.value},{default:be(()=>[m("button",{type:"button",class:le(["mt-[-2px] inline-flex h-5 w-5 shrink-0 cursor-pointer items-center justify-center rounded text-neutral-400 transition-colors hover:text-neutral-900 dark:text-neutral-500 dark:hover:text-neutral-100",D.value?"text-accent-700 dark:text-accent-300":""]),"aria-label":"Edit prompt text",onClick:fe,onPointerdown:z[0]||(z[0]=Te(()=>{},["stop"])),onKeydown:[Ve(Te(fe,["prevent","stop"]),["enter"]),Ve(Te(fe,["prevent","stop"]),["space"])],onMouseenter:z[1]||(z[1]=Te(de=>i("hover",e.node.canvasNodeId,g.value),["stop"])),onMouseleave:z[2]||(z[2]=Te(de=>i("hover",e.node.canvasNodeId,v.value),["stop"]))},[Q(E(Oo),{class:"h-3.5 w-3.5"})],42,Yc)]),_:1},8,["disabled"])):W("",!0),e.node.detail?(h(),k("span",qc,j(e.node.detail),1)):W("",!0)]),(!e.node.collapsibleBody||C.value)&&e.node.badges&&e.node.badges.length>0?(h(),k("div",Gc,[(h(!0),k(Me,null,Ce(e.node.badges,de=>(h(),k("span",{key:de.label,class:le(U(de))},j(de.label),3))),128))])):W("",!0),(!e.node.collapsibleBody||C.value)&&e.node.description?(h(),k("div",{key:1,class:le(["mt-1 text-[10.5px] leading-relaxed text-neutral-500 dark:text-neutral-400",e.node.virtual&&!_.value?"opacity-90":""])},j(e.node.description),3)):W("",!0),(!e.node.collapsibleBody||C.value)&&e.node.metaRows&&e.node.metaRows.length>0?(h(),k("dl",Wc,[(h(!0),k(Me,null,Ce(e.node.metaRows,de=>(h(),k(Me,{key:de.label},[m("dt",Qc,j(de.label),1),m("dd",{class:le(["truncate text-right",de.mono!==!1?"font-mono":"",N(de)])},j(de.value),3)],64))),128))])):W("",!0)])],34)],4),c.value?os((h(),k("div",Jc,[C.value?(h(!0),k(Me,{key:0},Ce(e.node.children,de=>(h(),ue(te,{key:de.id,node:de,depth:e.depth+1,collapsed:e.collapsed,"selected-canvas-node-id":e.selectedCanvasNodeId,"hovered-canvas-node-id":e.hoveredCanvasNodeId,"hovered-edit-target":e.hoveredEditTarget,"inherited-edit-surface":v.value,"inherited-anchor-el":x.value,onSelect:z[3]||(z[3]=ve=>i("select",ve)),onEdit:z[4]||(z[4]=(ve,ae,J,p)=>i("edit",ve,ae,J,p)),onHover:z[5]||(z[5]=(ve,ae)=>i("hover",ve,ae)),onToggle:z[6]||(z[6]=ve=>i("toggle",ve))},null,8,["node","depth","collapsed","selected-canvas-node-id","hovered-canvas-node-id","hovered-edit-target","inherited-edit-surface","inherited-anchor-el"]))),128)):W("",!0),C.value&&!S.value?(h(),k("div",{key:1,class:"pointer-events-none absolute bottom-0 top-0 w-px bg-neutral-200 dark:bg-neutral-800",style:Re({left:`${q.value+14}px`})},null,4)):W("",!0)])),[[ie,{duration:60,easing:"ease-out"}]]):W("",!0)])}}});function tf(e,t,n){let o=!1;function a(l){if(l.defaultCollapsed&&!n.has(l.id)&&(n.add(l.id),t.has(l.id)||(t.add(l.id),o=!0)),l.children)for(const s of l.children)a(s)}return a(e),o}const nf={class:"structure-tree flex h-full flex-col overflow-hidden border-r border-neutral-200 dark:border-neutral-800"},af={key:0,class:"px-3 py-4 text-xs text-neutral-400 dark:text-neutral-500"},of=_e({__name:"StructureTree",props:{root:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},hoveredEditTarget:{}},emits:["select","edit","hover"],setup(e,{emit:t}){const n=e,o=t,a=H(new Set),l=H(null),s=H(new Set);function r(d){return tf(d,a.value,s.value)}Ae(()=>n.root,d=>{d&&(d.id!==l.value&&(a.value=new Set,s.value=new Set,l.value=d.id),r(d)&&(a.value=new Set(a.value)))},{immediate:!0});function i(d){const f=new Set(a.value);f.has(d)?f.delete(d):f.add(d),a.value=f,s.value=new Set(s.value).add(d)}const u=R(()=>!!n.root);return(d,f)=>(h(),k("div",nf,[m("div",{class:"flex-1 overflow-y-auto py-1.5 text-[12px]",onMouseleave:f[3]||(f[3]=v=>o("hover",null,null))},[u.value?(h(),ue(ef,{key:1,node:e.root,depth:0,collapsed:a.value,"selected-canvas-node-id":e.selectedCanvasNodeId,"hovered-canvas-node-id":e.hoveredCanvasNodeId,"hovered-edit-target":e.hoveredEditTarget,onSelect:f[0]||(f[0]=v=>o("select",v)),onEdit:f[1]||(f[1]=(v,x,g,c)=>o("edit",v,x,g,c)),onHover:f[2]||(f[2]=(v,x)=>o("hover",v,x)),onToggle:i},null,8,["node","collapsed","selected-canvas-node-id","hovered-canvas-node-id","hovered-edit-target"])):(h(),k("div",af," Select an agent to view its structure. "))],32)]))}});function Ke(e,t,n){return{entityType:"prompt",entityId:e,section:t,defaultToolTab:n}}function Nt(e,t){return{entityType:"agent",entityId:e,section:t}}function rf(e){return{entityType:"model",entityId:e.id}}function sf(e){let t=0;function n(o){for(const a of o)t+=1,a.children?.length&&n(a.children)}return n(e),t}function jo(e,t,n){return e.map(o=>({id:`${n}${o.id}`,kind:"schema",label:o.label,detail:o.value||void 0,required:o.required,canvasNodeId:t,virtual:!0,hideIcon:!0,defaultCollapsed:(o.children?.length??0)>0?!o.defaultExpanded:void 0,children:o.children?.length?jo(o.children,t,`${n}${o.id}__`):void 0}))}function pa(e,t,n,o){const a=ma(e);return{id:`${n}schema`,kind:"schema",label:"Input schema",detail:a.length>0?`${sf(a)}`:"None",canvasNodeId:t,virtual:!0,editSurface:o,defaultCollapsed:a.length>0,children:a.length>0?jo(a,t,`${n}schema__`):void 0}}function Xo(e){const t=[];e.expose_as_tool&&t.push({label:"tool",tone:"neutral",mono:!0});const n=e.max_session_turns;typeof n=="number"&&t.push({label:`max ${n} session turn${n===1?"":"s"}`,tone:"neutral",mono:!0});const o=Object.keys(e.env||{}).filter(a=>a.trim().length>0);return o.length>0&&t.push({label:`${o.length} env override${o.length===1?"":"s"}`,tone:"sky",mono:!0}),t}function $n(e,t,n,o=[],a){const l=new Set(o);return{id:`${n}variables`,kind:"variables",label:"Variables",detail:e.length>0?`${e.length}`:"None",canvasNodeId:t,virtual:!0,editSurface:a,defaultCollapsed:e.length>0,children:e.length>0?e.map(s=>{const r=[];return s.required&&r.push({label:"required",tone:"rose",mono:!0}),s.scoped&&r.push({label:"scoped",tone:"violet",mono:!0}),l.has(s.name)&&r.push({label:"env",tone:"sky",mono:!0}),{id:`${n}variable-${s.name}`,kind:"variable",label:s.name,detail:s.type,badges:r.length>0?r:void 0,required:s.required,canvasNodeId:t,virtual:!0,hideIcon:!0}}):void 0}}function Ko(e,t,n){return e.length===0?null:{id:`${n}hooks`,kind:"hooks",label:"Hooks",detail:`${e.length}`,canvasNodeId:t,virtual:!0,children:e.map((o,a)=>({id:`${n}hook-${a}-${o.id}`,kind:"hook",label:o.hook,detail:o.id!==o.hook?o.id:void 0,canvasNodeId:t,virtual:!0,hideIcon:!0}))}}function $t(e){const t=[];typeof e.config.blocking=="boolean"&&t.push({label:e.config.blocking?"blocking":"background",tone:"neutral",mono:!0}),e.config.optional&&t.push({label:"optional",tone:"violet",mono:!0}),e.config.immediate&&t.push({label:"immediate",tone:"amber",mono:!0});const n=e.relationship;return n&&(t.push({label:n.maxInstances==null||n.maxInstances>1?"multi":"single",tone:"sky",mono:!0}),n.hidden&&t.push({label:"hidden",tone:"neutral",mono:!0})),t}function Yo(e,t,n,o,a){const l=Ke(o,"behavior"),s=Bo(e,a).map(r=>({id:`${n}${r.key==="tool"?"tooling":r.key}`,kind:"section",label:r.label,canvasNodeId:t,virtual:!0,hideIcon:!0,editSurface:l,metaRows:r.rows.map(lf)}));return{id:`${n}config`,kind:"config",label:"Prompt Config",canvasNodeId:t,virtual:!0,editSurface:l,defaultCollapsed:!0,children:s}}function lf(e){return e.kind==="toggle"?{label:e.label,value:e.enabled?"on":"off",active:e.enabled,tone:"emerald",mono:!0}:{label:e.label,value:e.value,active:e.active,mono:!0}}function qo(e,t,n,o,a){if(!e.model&&!e.modelName)return null;const l=[];if((e.model?.providerTools||[]).length>0){const i=e.model.providerTools.slice(0,2).join(", "),u=e.model.providerTools.length>2?", …":"";l.push({label:"Provider tools",value:i+u,active:!0,mono:!0})}const s=e.modelActual||e.model?.model||void 0,r=s&&s!==(e.modelName||e.model?.name||"Model")?s:void 0;return{id:`${o}model`,kind:"model",label:e.modelName||e.model?.name||"Model",detail:r,metaRows:l.length>0?l:void 0,canvasNodeId:e.model?Co(t,e.model.id):n,virtual:!e.model,cardBacked:!!e.model,editSurface:e.model?rf(e.model):a,editData:e.model||void 0}}function df(e,t,n,o){return{id:`${n}config`,kind:"config",label:"Side Config",canvasNodeId:t,virtual:!0,defaultCollapsed:!0,collapsibleBody:!0,editSurface:o,metaRows:[{label:"Stop on response",value:e.stopOnResponse?"On":"Off",active:e.stopOnResponse,tone:e.id==="a"?"sky":"amber",mono:!0},{label:"Stop tool",value:e.stopTool||"Off",active:!!e.stopTool,tone:e.id==="a"?"sky":"amber",mono:!0},{label:"Max steps",value:typeof e.maxSteps=="number"?String(e.maxSteps):"Unlimited",active:typeof e.maxSteps=="number",tone:e.id==="a"?"sky":"amber",mono:!0},{label:"End conversation tool",value:e.sessionStopTool||"Off",active:!!e.sessionStopTool,tone:e.id==="a"?"sky":"amber",mono:!0}]}}function uf(e,t,n,o){const a={};for(const r of e){const i=r.kind==="provider"||r.kind==="mcp"?"tool":r.kind;(a[i]||=[]).push(r)}const s=[{key:"tool",label:"Functions"},{key:"prompt",label:"Sub-prompts"},{key:"handoff",label:"Handoffs"}].map(({key:r,label:i})=>{const u=a[r]||[],d=r==="prompt"?"sub-prompts":r==="handoff"?"handoffs":"functions";return{id:`${n}group-${r}`,kind:"tools",toolKind:r,label:i,detail:`${u.length}`,canvasNodeId:t,virtual:!0,editSurface:Ke(o,"tools",d),children:u.length>0?u.map((f,v)=>({id:`${n}${r}-${v}-${f.name}`,kind:"tool",label:f.displayName||f.name,detail:f.kind==="prompt"&&(f.resolvedModel?.name||f.model)||void 0,badges:$t(f),canvasNodeId:t,virtual:!0,toolKind:f.kind,hideIcon:!0})):void 0}});return[{id:`${n}tools`,kind:"tools",label:"Tools",detail:`${e.length}`,canvasNodeId:t,virtual:!0,editSurface:Ke(o,"tools","functions"),anchorOnlyEditSurface:!0,children:s}]}function cf(e,t,n){const o=[],a=pa(e.schema,t,`${n}args__`);return a.label="Args",a.defaultCollapsed=(a.children?.length??0)>0?!0:void 0,(a.children?.length??0)>0&&o.push(a),e.variables.length>0&&o.push($n(e.variables,t,`${n}detail__`)),o}function ff(e,t,n,o,a){const l=[],s=t.prompt.name,r=Ke(s,"basic"),i=qo({model:t.model,modelName:t.model?.name||t.prompt.model_name,modelProvider:t.model?.provider||t.prompt.model_provider,modelActual:t.model?.model||t.prompt.model_id},o,n,`${a}prompt__`,r);i&&l.push(i),l.push(Yo(t.prompt,n,`${a}prompt__`,s,e.config)),l.push(pa(t.prompt.required_schema,n,`${a}prompt__`,Ke(s,"schema"))),l.push($n(sa(t.prompt),n,`${a}prompt__`,la(t.prompt),Ke(s,"variables"))),l.push(...uf(t.nestedTools,n,`${a}prompt__`,s));const u=Ko(t.prompt.hooks.map(d=>({id:d,hook:d})),n,`${a}prompt__`);return u&&l.push(u),l}function hf(e,t,n){return[{id:"a",backing:e.side_a_backing,label:hn("a",e.side_a_backing,e.side_a_label),promptName:e.side_a_agent_prompt,handlerName:e.side_a_handler||null,stopOnResponse:e.side_a_stop_on_response,stopTool:e.side_a_stop_tool,maxSteps:e.side_a_max_steps,sessionStopTool:e.side_a_session_stop_tool},{id:"b",backing:e.side_b_backing,label:hn("b",e.side_b_backing,e.side_b_label),promptName:e.side_b_agent_prompt,handlerName:e.side_b_handler||null,stopOnResponse:e.side_b_stop_on_response,stopTool:e.side_b_stop_tool,maxSteps:e.side_b_max_steps,sessionStopTool:e.side_b_session_stop_tool}].map(a=>({id:`${n}side-${a.id}`,kind:"side",label:a.label,detail:a.backing==="human"?"Human":a.backing==="handler"?a.handlerName||"Handler":a.promptName||"No prompt",canvasNodeId:t,virtual:!0,editSurface:Nt(e.name,a.id==="a"?"side-a":"side-b"),metaRows:a.backing==="prompt"&&a.promptName?[{label:"Stop on response",value:a.stopOnResponse?"On":"Off",active:a.stopOnResponse,tone:a.id==="a"?"sky":"amber",mono:!0},{label:"Stop tool",value:a.stopTool||"Off",active:!!a.stopTool,tone:a.id==="a"?"sky":"amber",mono:!0},{label:"Max steps",value:typeof a.maxSteps=="number"?String(a.maxSteps):"Unlimited",active:typeof a.maxSteps=="number",tone:a.id==="a"?"sky":"amber",mono:!0},{label:"End conversation tool",value:a.sessionStopTool||"Off",active:!!a.sessionStopTool,tone:a.id==="a"?"sky":"amber",mono:!0}]:void 0}))}function mf(e,t,n,o,a,l,s){if(!e.prompt)return null;const r=e.prompt.name,i=`${l}prompt__`,u=[],d=Ke(r,"basic"),f=Ke(r,"schema"),v=Ke(r,"variables"),x=Ke(r,"tools"),g=qo({model:e.model,modelName:e.model?.name||e.prompt.model_name,modelProvider:e.model?.provider||e.prompt.model_provider,modelActual:e.model?.model||e.prompt.model_id},o,a,i,d);g&&u.push(g),u.push(Yo(e.prompt,a,i,r)),u.push(pa(e.prompt.required_schema,a,i,f)),u.push($n(e.variables,a,i,e.variableEnvNames||[],v));const c=e.tools.filter(y=>y.kind!=="subagent"),b={};for(const y of c){const L=y.kind==="provider"||y.kind==="mcp"?"tool":y.kind;(b[L]||=[]).push(y)}const S=new Map;e.tools.forEach((y,L)=>S.set(y,L));const C=[{key:"tool",label:"Functions"},{key:"prompt",label:"Sub-prompts"},{key:"handoff",label:"Handoffs"}];u.push({id:`${i}tools`,kind:"tools",label:"Tools",detail:`${c.length}`,canvasNodeId:a,virtual:!0,editSurface:x,children:C.map(({key:y,label:L})=>{const P=b[y]||[],D=y==="prompt"?"sub-prompts":y==="handoff"?"handoffs":"functions";return{id:`${i}group-${y}`,kind:"tools",toolKind:y,label:L,detail:`${P.length}`,canvasNodeId:a,virtual:!0,editSurface:Ke(r,"tools",D),children:P.length>0?P.map(Z=>Go(i,n,o,e,Z,S.get(Z),r,t,s)):void 0}})});const _=Ko(e.hooks,a,i);return _&&u.push(_),{id:`${l}prompt`,kind:"prompt",tone:e.id==="a"?"sky":"amber",label:e.prompt.name,canvasNodeId:a,virtual:!0,cardBacked:!0,editSurface:d,children:u}}function Go(e,t,n,o,a,l,s,r,i){const d=a.kind==="subagent"||a.kind==="handoff"||a.kind==="prompt"?un(t,o.id,l):da(t,o.id),f=`${e}tool-${o.id}-${l}-${a.name}`,v=a.kind==="prompt"?"sub-prompts":a.kind==="handoff"?"handoffs":"functions",x=Ke(s,"tools",v);if(a.kind==="subagent"&&r[a.name]){const g=r[a.name],c=So(t,o.id,l,a.kind,a.name),b=$t(a);return{id:f,kind:"subagent",label:g.agent.title||a.displayName,detail:a.name,badges:b.length>0?b:void 0,canvasNodeId:pn(c),toolKind:a.kind,avatarSrc:g.agent.icon||void 0,avatarSeed:g.agent.name,cardBacked:!0,editSurface:Nt(o.agentName,o.id==="a"?"side-a":"side-b"),children:Wo(g.agent,g.sides,r,c,n,`${f}__`,i).children}}if(a.kind==="prompt"){const g=i.promptTools[a.name];return{id:f,kind:"tool",label:a.displayName||a.name,detail:g?.model?.name||g?.prompt.model_name||a.model||void 0,badges:$t(a),canvasNodeId:d,toolKind:a.kind,cardBacked:!0,editSurface:Ke(a.name,"basic"),children:g?ff(a,g,d,n,`${f}__`):void 0,hideIcon:!0}}if(a.kind==="handoff"){const g=i.handoffs[a.name];return{id:f,kind:"tool",label:g?.title||a.displayName||a.name,detail:g?.name||void 0,badges:g?Xo(g):$t(a),canvasNodeId:d,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,editSurface:x,children:g?hf(g,d,`${f}__`):void 0,hideIcon:!0}}if(a.kind==="tool"||a.kind==="provider"||a.kind==="mcp"){const g=i.functionTools[a.name];return{id:f,kind:"tool",label:a.displayName||a.name,badges:$t(a),canvasNodeId:d,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,editSurface:x,children:g?cf(g,d,`${f}__`):void 0,hideIcon:!0}}return{id:f,kind:"tool",label:a.displayName||a.name,badges:$t(a),canvasNodeId:d,toolKind:a.kind,hideIcon:!0,editSurface:x}}function lo(e,t,n,o,a,l,s){const r=e.tools.map((u,d)=>({tool:u,index:d})).filter(({tool:u})=>u.kind==="subagent");if(r.length===0)return null;const i=Nt(e.agentName,e.id==="a"?"side-a":"side-b");return{id:`${l}subagents`,kind:"tools",toolKind:"subagent",label:"Sub-agents",detail:`${r.length}`,canvasNodeId:a,virtual:!0,editSurface:i,children:r.map(({tool:u,index:d})=>Go(l,n,o,e,u,d,e.promptName||"",t,s))}}function pf(e,t,n,o,a,l,s){const r=da(o,t.id),i=`${l}side-${t.id}__`,u=Nt(e,t.id==="a"?"side-a":"side-b"),d=[];if(t.mode==="human")return{id:`${l}side-${t.id}`,kind:"side",label:t.label,detail:"Human",canvasNodeId:r,cardBacked:!0,editSurface:u,children:[]};if(t.mode==="handler"){const x=lo(t,n,o,a,r,i,s);return{id:`${l}side-${t.id}`,kind:"side",label:t.label,detail:t.handlerName||"Handler",canvasNodeId:r,cardBacked:!0,editSurface:u,children:x?[x]:[]}}d.push(df(t,r,i,u));const f=mf(t,n,o,a,r,i,s);f&&d.push(f);const v=lo(t,n,o,a,r,i,s);return v&&d.push(v),{id:`${l}side-${t.id}`,kind:"side",label:t.label,canvasNodeId:r,editSurface:u,children:d}}function Wo(e,t,n,o,a,l,s,r=!1){const i=pn(o),u=Nt(e.name,"variables"),d=[$n(e._variables||[],i,`${l}agent__`,Object.keys(e.env||{}),u),...t.map(f=>pf(e.name,f,n,o,a,l,s))];return{id:`${l}agent`,kind:"agent",label:e.title||e.name,detail:e.name,badges:Xo(e),canvasNodeId:i,avatarSrc:e.icon||void 0,avatarSeed:e.name,isRoot:r||void 0,cardBacked:!0,editSurface:Nt(e.name,"identity"),children:d}}function vf(e,t,n,o){const a=To(e.id||e.name),l=`${e.id||e.name}__`;return Wo(e,t,n,a,a,l,o,!0)}function gf(e,t){const n=new Set,o=new Set,a=new Set,l=new Set;function s(r){for(const i of r)for(const u of i.tools)if(u.kind==="tool"&&n.add(u.name),u.kind==="prompt"&&o.add(u.name),u.kind==="handoff"&&a.add(u.name),u.kind==="subagent"){const d=t[u.name];if(!d||l.has(d.agentName))continue;l.add(d.agentName),s(d.sides)}}return s(e),{functionTools:[...n].sort(),promptTools:[...o].sort(),handoffs:[...a].sort()}}function xf(e,t,n,o,a,l){const s=H({functionTools:{},promptTools:{},handoffs:{}});let r=0;return Ae(()=>e.value?{agentId:e.value.id||e.value.name,plan:gf(t.value,n.value),modelKeys:Object.keys(o.value),toolKeys:Object.keys(a.value),refreshEpoch:l?.value??0}:null,async i=>{const u=e.value;if(!i||!u){s.value={functionTools:{},promptTools:{},handoffs:{}};return}const d=++r,f=await Pd(i.plan,{toolsCatalog:a.value,models:o.value});d===r&&(s.value=f)},{immediate:!0}),R(()=>{const i=e.value;return i?vf(i,t.value,n.value,s.value):null})}const Qo=_e({__name:"ExtractCopyToggle",props:{value:{},disabled:{type:Boolean}},emits:["update:value"],setup(e,{emit:t}){const n=t,o=a=>{n("update:value",a)};return(a,l)=>{const s=vt("FormKit");return h(),ue(s,{type:"toggle",value:e.value,"on-value":"extract","off-value":"copy","on-value-label":"extract","off-value-label":"copy",disabled:e.disabled,classes:{outer:"$remove:mb-4",wrapper:"$remove:items-center flex-row-reverse justify-end items-center",inner:"h-5",track:"h-5 w-10 rounded-full",thumb:"h-4 w-4",valueLabel:"text-xs text-neutral-600 dark:text-neutral-400 mr-2 flex items-center font-normal"},onInput:o},null,8,["value","disabled"])}}}),bf={class:"font-mono text-sm"},yf={class:"flex items-center gap-2 py-1.5"},kf={class:"text-neutral-600 dark:text-neutral-400"},wf={class:"ml-auto"},Jo=_e({name:"TreeChildren",props:{children:{type:Array,required:!0},getSelection:{type:Function,required:!0},setSelection:{type:Function,required:!0},isShared:{type:Function,required:!0},getTypeColor:{type:Function,required:!0}},setup(e){return()=>e.children.length===0?null:Ne("div",{class:"ml-4"},e.children.map((t,n)=>Ne("div",{class:"relative",key:t.uid},[n<e.children.length-1?Ne("div",{class:"absolute left-0 top-0 bottom-0 border-l border-neutral-300 dark:border-neutral-700"}):Ne("div",{class:"absolute left-0 top-0 h-3 border-l border-neutral-300 dark:border-neutral-700"}),Ne("div",{class:"absolute left-0 top-3 w-4 border-t border-neutral-300 dark:border-neutral-700"}),Ne("div",{class:"pl-5"},[Ne("div",{class:"flex items-center gap-2 py-1.5"},[Ne("span",{class:"text-neutral-600 dark:text-neutral-400"},t.name),Ne(Et,{variant:e.getTypeColor(t.type),size:"sm"},()=>t.type),e.isShared(t)?Ne("span",{class:"text-xs text-amber-600 dark:text-amber-400",title:`Used by: ${t.sharedWith.join(", ")}`},`(used in ${t.sharedWith.length} other${t.sharedWith.length>1?"s":""})`):null,t.isDuplicate?null:Ne("div",{class:"ml-auto"},[Ne(Qo,{value:e.getSelection(t),disabled:e.isShared(t),"onUpdate:value":o=>e.setSelection(t,o),title:e.isShared(t)?"Cannot extract items shared with other agents":""})])]),t.children.length>0?Ne(Jo,{children:t.children,getSelection:e.getSelection,setSelection:e.setSelection,isShared:e.isShared,getTypeColor:e.getTypeColor}):null])])))}}),$f=_e({__name:"DependencyTree",props:{analysis:{},selections:{}},emits:["update:selection"],setup(e,{emit:t}){const n=e,o=t,a=R(()=>{const d=n.analysis,f=[];let v=0;const x=(_,y)=>{for(const L of _){const P=`${y}:${L.name}`;f.push({...L,type:y,uid:`${P}:${v++}`})}};x(d.constituents.agents,"agent"),x(d.constituents.prompts,"prompt"),x(d.constituents.tools,"tool"),x(d.constituents.models,"model"),x(d.constituents.hooks,"hook");const g=new Map,c=`agent:${d.agent}`;for(const _ of f){const y=_.parentKey||c;`${_.type}:${_.name}`===c&&!_.parentKey||(g.has(y)||g.set(y,[]),g.get(y).push(_))}const b=new Set,S=_=>{const y=`${_.type}:${_.name}`,L=b.has(y);b.add(y);const P=[],D=g.get(y)||[];for(const Z of D)P.push(S(Z));return{name:_.name,type:_.type,filePath:_.filePath,sharedWith:_.sharedWith,discoveredVia:_.discoveredVia,children:P,uid:_.uid,isDuplicate:L}},C=f.find(_=>_.type==="agent"&&_.name===d.agent&&!_.parentKey);return C?S(C):{name:d.agent,type:"agent",filePath:"",sharedWith:[],discoveredVia:"static",children:[],uid:"root",isDuplicate:!1}}),l=d=>`${d.type}:${d.name}`,s=d=>n.selections.get(l(d))||"extract",r=(d,f)=>{o("update:selection",l(d),f)},i=d=>d.sharedWith.length>0,u=d=>{switch(d){case"agent":return"accent";case"prompt":return"secondary";case"tool":return"success";case"model":return"warning";case"hook":return"default"}};return(d,f)=>(h(),k("div",bf,[m("div",yf,[m("span",kf,j(a.value.name),1),Q(E(Et),{variant:u(a.value.type),size:"sm"},{default:be(()=>[me(j(a.value.type),1)]),_:1},8,["variant"]),m("div",wf,[Q(Qo,{value:s(a.value),"onUpdate:value":f[0]||(f[0]=v=>r(a.value,v))},null,8,["value"])])]),(h(),ue(tt(E(Jo)),{children:a.value.children,"get-selection":s,"set-selection":r,"is-shared":i,"get-type-color":u},null,8,["children"]))]))}}),Mf={key:0,class:"flex items-center justify-center py-12"},Tf={key:1,class:"py-4"},Sf={key:2,class:"py-4 space-y-4"},Cf={class:"space-y-2"},_f={class:"text-sm opacity-80"},If={class:"text-sm opacity-80"},Ef={class:"space-y-4"},Nf={class:"grid grid-cols-2 gap-4"},Af={class:"col-span-2"},Pf={class:"col-span-2"},Lf={class:"col-span-2"},Rf={key:0,class:"mt-3 space-y-3"},Of={class:"flex gap-2 border-b border-neutral-200 dark:border-neutral-700"},Df={key:0},Bf=["innerHTML"],Vf={class:"space-y-4"},Hf={class:"list-disc list-inside space-y-1"},Uf={class:"border border-neutral-200 dark:border-neutral-700 rounded-lg p-4 bg-neutral-50 dark:bg-neutral-900/50"},zf={class:"flex justify-between"},Ff=_e({__name:"PackModal",props:{modelValue:{type:Boolean},agent:{}},emits:["update:modelValue","packed"],setup(e,{emit:t}){mn.setOptions({gfm:!0,breaks:!0});const n=[{value:"MIT",label:"MIT"},{value:"Apache-2.0",label:"Apache 2.0"},{value:"ISC",label:"ISC"},{value:"GPL-3.0",label:"GPL 3.0"},{value:"BSD-3-Clause",label:"BSD 3-Clause"},{value:"Unlicensed",label:"Unlicensed / Proprietary"}],o=e,a=t,l=R({get:()=>o.modelValue,set:N=>a("update:modelValue",N)}),s=H(null),r=H(!1),i=H(!1),u=H(null),d=H(null);let f=null;const v=H(""),x=H("1.0.0"),g=H("MIT"),c=H(""),b=H(null),S=H(""),C=H("edit"),_=H(!1),y=R(()=>S.value?mn(S.value):""),L=H(new Map);Ae(()=>o.modelValue,async N=>{N&&o.agent?await Promise.all([D(),Z()]):P()});const P=()=>{U(),s.value=null,u.value=null,d.value=null,L.value=new Map,v.value="",x.value="1.0.0",g.value="MIT",c.value="",S.value="",C.value="edit",_.value=!1,st(b)},D=async()=>{if(o.agent){r.value=!0,u.value=null;try{const N=await fetch(Ue(`/api/pack/${o.agent.id}/analyze`)),T=await N.json();if(!N.ok){u.value=T.error||"Failed to analyze agent";return}if(s.value=T,T.generatedReadme)S.value=T.generatedReadme;else{const A=q(o.agent?.id||"agent");S.value=Y(A,o.agent?.id||"agent",T.agentDescription)}B(T)}catch(N){u.value=N instanceof Error?N.message:"Failed to analyze agent"}finally{r.value=!1}}},Z=async()=>{if(o.agent)try{const N=await fetch(Ue(`/api/pack/${o.agent.id}/metadata`));if(N.ok){const T=await N.json();v.value=T.packageName,x.value=G(T.version),g.value=T.license||"MIT",c.value=T.licenseOwner||""}else v.value=q(o.agent.id),x.value="1.0.0",g.value="MIT",c.value=""}catch{v.value=q(o.agent?.id||"agent"),x.value="1.0.0",g.value="MIT",c.value=""}},q=N=>`standardagent-${N.toLowerCase().replace(/_/g,"-")}`,Y=(N,T,A)=>`# ${N}
|
|
1
|
+
import{r as H,c as R,Y as yn,X as ea,w as Ae,h as je,t as Qr,A as it,b as k,e as h,f as m,d as _e,o as ta,a as At,K as Te,j as Q,q as W,J as E,u as j,F as Me,l as Ce,m as le,s as me,z as ue,Z as uo,k as be,ac as Jr,ad as Zr,B as tt,g as es,O as vt,n as Re,P as Ve,V as ts,R as La,a3 as ns,U as Rn,ae as as,x as os,af as Ne,_ as na,ag as co,ah as fo,W as Ra,ai as rs,aj as ss,ak as Oa}from"./vue-DrmMqJdu.js";import{g as Kt,I as ot,h as ls,i as ho,j as aa,k as gt,m as is,n as ds,u as Gt,o as hn,p as oa,q as mo,t as po,v as Mt,w as ra,b as Ue,x as Xt,y as vo,z as go,A as us,B as xo,C as cs,D as fs,E as Da,F as hs,G as mt,H as He,_ as _t,e as st,f as It,J as ms,K as ps,L as vs,M as gs,N as On,O as xs,T as bs}from"./index-CdsRfG1j.js";import{f as Je,b as nt,a as at,s as ys,u as ks,c as ws,d as bo,g as sa,e as la,A as yo,T as $s,_ as Ba,r as Ms,h as Ts,C as Ss}from"./ThreadInspectorPane.vue_vue_type_script_setup_true_lang-BvsyovVV.js";import{I as Dn,_ as Et}from"./package-C9xVeY2o.js";import{I as Bn,a as Vn,b as Hn,c as ko}from"./chevron-right-ELLCloM8.js";import{I as dn,a as qn,P as Cs}from"./PromptModal-Bk5rLNB7.js";import{_ as _s}from"./ModelModal.vue_vue_type_script_setup_true_lang-DTd4Jp3K.js";import{e as mn}from"./vendor-c_uwtQ-S.js";import{_ as ia}from"./Modal.vue_vue_type_script_setup_true_lang-BLzEXJtn.js";import{_ as Is}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CYrgsA6b.js";import"./formkit-Cu5ivce0.js";import"./syntax-D68HCEYm.js";import"./monaco-DI2r3M8m.js";import"./timeAgo-Bi5TtiK2.js";import"./CopyButton.vue_vue_type_script_setup_true_lang-DFIJfKuD.js";import"./check-CBEOYQMQ.js";import"./copy-DwKJULdP.js";import"./JsonViewer-C6FsqOlJ.js";function Es(){const e=H([]),t=H({}),n=H({}),o=H({}),a=H(!0),l=H(null),s=H(""),r=R(()=>{const u=s.value.trim().toLowerCase();return u?e.value.filter(d=>d.name.toLowerCase().includes(u)||d.title.toLowerCase().includes(u)||Kt(d.side_a_backing,d.side_b_backing).toLowerCase().includes(u)):e.value});async function i(){a.value=!0,l.value=null;try{const[u,d,f,v]=await Promise.all([Je("/agents"),Je("/models"),Je("/tools"),Je("/hooks")]);e.value=(u.agents||[]).sort((x,g)=>x.name.localeCompare(g.name)),t.value=Object.fromEntries((d.models||[]).map(x=>[x.id,x])),n.value=f||{},o.value=Object.fromEntries((v.hooks||[]).map(x=>[x.id,x]))}catch{l.value="Unable to load composition data."}finally{a.value=!1}}return{agents:e,models:t,toolsCatalog:n,hooks:o,agentSearch:s,searchableAgents:r,loadingIndex:a,loadError:l,loadIndex:i}}function Ns(e){const t=yn(),n=ea(),o=H(null),a=H(null),l=H(null),s=H(null),r=H(null),i=H({}),u=H(!1),d=H(null);let f=0,v=0,x=0;function g(){return{models:e.models.value,toolsCatalog:e.toolsCatalog.value,hooks:e.hooks.value}}const c=R(()=>{const q=a.value;return q?[nt(q,"a",l.value,g()),nt(q,"b",s.value,g())]:[]}),b=R(()=>{const q=c.value;return{promptCount:q.filter(Y=>!!Y.prompt).length,toolCount:q.reduce((Y,G)=>Y+G.tools.length,0),outgoingCount:q.reduce((Y,G)=>Y+G.outgoingAgents.length,0),variableCount:q.reduce((Y,G)=>Y+G.variables.length,0)}});function S(q,Y){return q===f&&o.value===Y}async function C(q){const Y=++x;try{await n.replace({query:{...t.query,agent:q}})}catch{}finally{Y===x&&(x=0)}}function _(){return x>0}async function y(q,Y,G){const B=++v,M=new Map;for(const w of q)for(const U of w.outgoingAgents)U.kind==="subagent"&&M.set(U.name,U.relationship?.agent??U.name);if(M.size===0){B===v&&S(Y,G)&&(i.value={});return}const I={};await Promise.all([...M.entries()].map(async([w,U])=>{if(e.agents.value.find(T=>T.name===U&&!T.packed))try{const A=(await Je(`/agents/${encodeURIComponent(U)}`)).agent,[X,F]=await Promise.all([at(A.side_a_agent_prompt),at(A.side_b_agent_prompt)]);if(B!==v||!S(Y,G))return;I[w]={agentName:U,agent:A,sides:[nt(A,"a",X,g()),nt(A,"b",F,g())]}}catch{}})),B===v&&S(Y,G)&&(i.value=I)}async function L(q,Y=!0){const G=e.agents.value.find(M=>M.id===q||M.name===q);if(!G)return;const B=++f;if(o.value=G.id,r.value={type:"agent",value:G},i.value={},!ys(G)){a.value=null,l.value=null,s.value=null,d.value="Packed agents are not yet supported in the composition browser.",u.value=!1,Y&&C(G.id);return}u.value=!0,d.value=null,Y&&C(G.id);try{const M=await Je(`/agents/${encodeURIComponent(G.name)}`),[I,w]=await Promise.all([at(M.agent.side_a_agent_prompt),at(M.agent.side_b_agent_prompt)]);if(!S(B,G.id))return;a.value=M.agent,l.value=I,s.value=w,r.value={type:"agent",value:M.agent};const U=[nt(M.agent,"a",I,g()),nt(M.agent,"b",w,g())];y(U,B,G.id)}catch{if(!S(B,G.id))return;d.value="Unable to load the selected agent composition.",a.value=null,l.value=null,s.value=null}finally{S(B,G.id)&&(u.value=!1)}}function P(q){r.value=q}function D(){a.value?r.value={type:"agent",value:a.value}:r.value=null}async function Z(){const q=a.value,Y=o.value;if(!q||!Y)return!1;const G=++f;try{const B=await Je(`/agents/${encodeURIComponent(q.name)}`),[M,I]=await Promise.all([at(B.agent.side_a_agent_prompt),at(B.agent.side_b_agent_prompt)]);if(!S(G,Y))return!1;const w=(l.value?.tools?.length??0)+(s.value?.tools?.length??0),U=(M?.tools?.length??0)+(I?.tools?.length??0),N=(q.side_a_subagents?.length??0)+(q.side_b_subagents?.length??0),T=(B.agent.side_a_subagents?.length??0)+(B.agent.side_b_subagents?.length??0),X=B.agent.side_a_agent_prompt!==q.side_a_agent_prompt||B.agent.side_b_agent_prompt!==q.side_b_agent_prompt||w!==U||N!==T;a.value=B.agent,l.value=M,s.value=I;const F=[nt(B.agent,"a",M,g()),nt(B.agent,"b",I,g())];return y(F,G,Y),X}catch{return!0}}return{selectedAgentId:o,selectedAgentDetail:a,selectedNode:r,sideCompositions:c,subagentCompositions:i,compositionSummary:b,loadingComposition:u,compositionError:d,selectAgent:L,selectInspectorNode:P,deselectNode:D,refreshComposition:Z,isRouteSyncing:_}}function As(){const e=yn(),t=Es(),n=Ns({agents:t.agents,models:t.models,toolsCatalog:t.toolsCatalog,hooks:t.hooks}),o=R(()=>t.agents.value.find(s=>s.id===n.selectedAgentId.value)||null);async function a(){if(await t.loadIndex(),t.loadError.value)return;const s=typeof e.query.agent=="string"?e.query.agent:null,r=s?t.agents.value.find(i=>i.id===s)||t.agents.value.find(i=>i.name===s):null;if(r)await n.selectAgent(r.id,!1);else if(t.agents.value.length>0){const i=t.agents.value.find(u=>u.primary!==!1)??t.agents.value[0];await n.selectAgent(i.id,!1)}}async function l(){await t.loadIndex()}return{searchableAgents:t.searchableAgents,selectedAgentId:n.selectedAgentId,selectedAgentDetail:n.selectedAgentDetail,selectedAgentSummary:o,selectedNode:n.selectedNode,sideCompositions:n.sideCompositions,subagentCompositions:n.subagentCompositions,compositionSummary:n.compositionSummary,models:t.models,toolsCatalog:t.toolsCatalog,agentSearch:t.agentSearch,loadingIndex:t.loadingIndex,loadingComposition:n.loadingComposition,loadError:t.loadError,compositionError:n.compositionError,loadIndex:a,refreshIndex:l,selectAgent:n.selectAgent,selectInspectorNode:n.selectInspectorNode,deselectNode:n.deselectNode,refreshComposition:n.refreshComposition,isRouteSyncing:n.isRouteSyncing}}const Va="__";function wo(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function $o(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"item"}function Gn(e,t,n){const o=n===void 0?"":`-${n}`;return`${e}-${$o(t)}-${wo(t)}${o}`}function Mo(e,...t){return`${e}${t.join(Va)}${Va}`}function To(e){return Mo(Gn("agent",e))}function So(e,t,n,o,a){return Mo(e,Gn("side",t),Gn("tool",`${o}:${a}`,n))}const pn=e=>`${e}agent`,da=(e,t)=>`${e}side-${t}`,un=(e,t,n)=>`${e}tool-${t}-${n}`,Ps=e=>`${e}group`,Co=(e,t)=>`${e}model-${$o(t)}-${wo(t)}`,Ls=280,Rs=132,Ha=320,Os=72,Ds=200,Bs=72,Vs=360,Hs=220,Us=320,zs=240,Fs=280,js=132,Ua=64,ut=36,tn=56,wt=36,Un=52,Xs=64,cn=220,Ks=84,Ge=72,za=112,ct=28;function Ys(e,t,n){const o=[],a=[];if(e.modelUsages.length===0)return{modelNodes:o,modelEdges:a};const l=new Map,s=new Set;for(const c of e.modelUsages){const b=`${c.model.id}|${c.consumerNodeId}`;if(s.has(b))continue;s.add(b);const S=l.get(c.model.id);S?S.push(c):l.set(c.model.id,[c])}const r=new Map;for(const c of e.nodes)r.set(c.id,c);const i=e.width,u=0,d=[],f=e.groups.map(c=>({x:c.x,y:c.y,w:c.width,h:c.height}));function v(c,b){return b.x>=c.x&&b.y>=c.y&&b.x+b.w<=c.x+c.w&&b.y+b.h<=c.y+c.h}function x(c,b,S,C,_=16){const y=Math.min(b,S),L=Math.max(b,S);return C.some(P=>L>P.x-_&&y<P.x+P.w+_&&c>P.y-_&&c<P.y+P.h+_)}function g(c,b,S,C,_=16){const y=Math.min(b,S),L=Math.max(b,S);return C.some(P=>L>P.y-_&&y<P.y+P.h+_&&c>P.x-_&&c<P.x+P.w+_)}for(const[c,b]of l){const S=b.map(T=>({usage:T,node:r.get(T.consumerNodeId)})).filter(T=>!!T.node);if(S.length===0)continue;const C=S.map(T=>Gs(T.node,n)),_=S.map(T=>ft(T.node,n)),y=f.filter(T=>_.every(A=>v(T,A))),L=f.filter(T=>!y.includes(T)),P=b[0].model,D=Co(t,c),Z=n[D],q=Z?.w??cn,Y=Z?.h??Ks;let G=0,B=0,M;if(S.length===1){const T=S[0],A=ft(T.node,n),X=Fa(T.node),F=X||T.usage.sideId==="a"?"outboard-left":"outboard-right",pe=A.y+A.h/2-Y/2,se=F==="outboard-left"?A.x-Ge-q:A.x+A.w+Ge,fe=A.x+A.w/2-q/2,K=A.y+A.h+Ge,z=new Set(S.map(ne=>ne.node.id)),te=[...d,...e.nodes.filter(ne=>!z.has(ne.id)).map(ne=>ft(ne,n)),...L],ie=[se],de=[pe],ve=[fe],ae=[K];for(const ne of te)F==="outboard-left"?ie.push(ne.x-Ge-q):ie.push(ne.x+ne.w+Ge),de.push(ne.y-Y-ct),de.push(ne.y+ne.h+ct),ve.push(ne.x-q-ct),ve.push(ne.x+ne.w+ct),ae.push(ne.y-Y-ct),ae.push(ne.y+ne.h+ct);let J=se,p=pe,$=Number.POSITIVE_INFINITY,V=null;const oe=new Set,ce=[{mode:F,xs:ie,ys:de},{mode:"below-row",xs:ve,ys:ae}];for(const ne of ce)for(const re of ne.xs)for(const xe of ne.ys){const ke=`${ne.mode}:${Math.round(re)}:${Math.round(xe)}`;if(oe.has(ke)||(oe.add(ke),ne.mode==="outboard-left"&&re+q>A.x-8)||ne.mode==="outboard-right"&&re<A.x+A.w+8)continue;const ye=te.filter(ge=>zn({x:re,y:xe,w:q,h:Y},{x:ge.x,y:ge.y,w:ge.w,h:ge.h})).length,Se=ne.mode==="below-row"?g(A.x+A.w/2,A.y+A.h,xe,te):x(A.y+A.h/2,ne.mode==="outboard-left"?re+q:A.x+A.w,ne.mode==="outboard-left"?A.x:re,te),$e=ye*1e4+(Se?12e3:0)+Math.abs(re-se)/10+Math.abs(xe-(ne.mode==="below-row"?K:pe))+(ne.mode==="below-row"?10:0);if(X&&ne.mode!=="below-row"&&ye===0){const ge=(Se?1e3:0)+Math.abs(re-se)/10+Math.abs(xe-pe);(!V||ge<V.penalty)&&(V={x:re,y:xe,penalty:ge,mode:ne.mode})}$e<$&&($=$e,J=re,p=xe,M=ne.mode)}V&&(J=V.x,p=V.y,M=V.mode),M||(M=F),G=J,B=p}else{let T=1/0,A=-1/0,X=1/0,F=-1/0;for(const z of S){const te=ft(z.node,n);te.x<T&&(T=te.x),te.x+te.w>A&&(A=te.x+te.w),te.y<X&&(X=te.y),te.y+te.h>F&&(F=te.y+te.h)}const pe=A-T,se=F-X,fe=ja(C.map(z=>z.x)),K=ja(C.map(z=>z.y));if(pe>=se){const z=fe-q/2,te=new Set(S.map(V=>V.node.id)),ie=e.nodes.filter(V=>!te.has(V.id)).map(V=>ft(V,n)).filter(V=>V.y+V.h>F),de=L.filter(V=>V.y+V.h>F),ve=[...ie,...de],ae=[z];for(const V of ve)ae.push(V.x-Ge-q),ae.push(V.x+V.w+Ge);let J=z,p=1/0;const $=new Set;for(const V of ae){const oe=Math.round(V);if($.has(oe))continue;$.add(oe);const ce=ve.filter(xe=>zn({x:V,y:F+Ge,w:q,h:Y},{x:xe.x,y:xe.y,w:xe.w,h:xe.h})).length,ne=Math.abs(V-z)/1e3,re=ce+ne;re<p&&(p=re,J=V)}G=J,B=F+Ge,M="below-row"}else{const z=S.every(ve=>Fa(ve.node)),te=S.filter(ve=>ve.usage.sideId==="a").length,ie=S.length-te,de=!z&&ie>=te;G=de?Math.max(i,A)+za:Math.min(u,T)-za-q,B=K-Y/2,M=de?"sidebar-right":"sidebar-left"}}const I=Y+ct,w=8;let U=0;const N=[...d,...e.nodes.map(T=>{const A=ft(T,n);return{x:A.x,y:A.y,w:A.w,h:A.h}}),...L];for(;U<w&&N.some(T=>zn({x:G,y:B,w:q,h:Y},T));)B+=I,U++;d.push({x:G,y:B,w:q,h:Y}),o.push({id:D,type:"model",x:G,y:B,width:q,height:Y,placementMode:M,data:P});for(const T of S)a.push({id:`${T.node.id}-to-${D}`,from:T.node.id,to:D,sideId:T.usage.sideId,kind:"model"})}return{modelNodes:o,modelEdges:a}}function qs(e,t,n){if(t.length===0||e.length===0)return;const o=new Map;for(const i of n){const u=o.get(i.to);u?u.push(i.from):o.set(i.to,[i.from])}const a=new Map;for(const i of t)a.set(i.id,i);const l=12,s="group",r=[...e].sort((i,u)=>u.id.length-i.id.length);for(const i of r){const u=i.id.endsWith(s)?i.id.slice(0,i.id.length-s.length):i.id;for(const[d,f]of o){const v=a.get(d);if(!v||!f.every(S=>S.startsWith(u)))continue;const x=Math.min(i.x,v.x-l),g=Math.min(i.y,v.y-l),c=Math.max(i.x+i.width,v.x+v.width+l),b=Math.max(i.y+i.height,v.y+v.height+l);i.x=x,i.y=g,i.width=c-x,i.height=b-g}}for(const i of r){const u=i.id.endsWith(s)?i.id.slice(0,i.id.length-s.length):i.id;for(const d of e){if(d===i||!d.id.startsWith(u)||d.id.length<=i.id.length)continue;const f=Math.min(i.x,d.x),v=Math.min(i.y,d.y),x=Math.max(i.x+i.width,d.x+d.width),g=Math.max(i.y+i.height,d.y+d.height);i.x=f,i.y=v,i.width=x-f,i.height=g-v}}}function ft(e,t){const n=t[e.id];return{x:e.x,y:e.y,w:n?.w??e.width,h:n?.h??e.height}}function Gs(e,t){const n=ft(e,t);return{x:n.x+n.w/2,y:n.y+n.h/2}}function Fa(e){return e.type==="prompt"||e.type==="side"&&e.data.mode==="ai"||e.type==="tool"&&e.data.kind==="prompt"}function ja(e){if(e.length===0)return 0;let t=0;for(const n of e)t+=n;return t/e.length}function zn(e,t){return e.x<t.x+t.w&&e.x+e.w>t.x&&e.y<t.y+t.h&&e.y+e.h>t.y}function _o(e,t,n,o,a,l){const s=[],r=[],i=[],u=[];function d($){if(!$)return null;const V=l[$];if(V)return V;for(const oe of Object.values(l))if(oe.name===$)return oe;return null}const f=pn(o),v=a[f],x=v?.w??Ls,g=v?.h??Rs,c=0,b=g+Ua;function S($,V){const oe=a[V];if(oe)return oe;if($.mode!=="ai")return{w:Ha,h:Os};const ce=240,ne=$.variables.length*24,re=$.tools.length*32,xe=ce+Math.max(ne,re),ke=7,ye=$.tools.length>0;let Se=200;$.prompt&&(Se=Math.max(Se,$.prompt.name.length*ke+80));let $e=ye?160:0;if(ye)for(const we of $.tools)$e=Math.max($e,we.displayName.length*ke+40);return{w:Math.max(Ha,ye?Se+$e:Se),h:xe}}const C=t.filter($=>$.id==="a"),_=t.filter($=>$.id==="b");function y($){return $.map(V=>{const oe=V.tools.filter(ke=>ke.kind==="tool"||ke.kind==="subagent"||ke.kind==="handoff"||ke.kind==="prompt"),ce=[];for(let ke=0;ke<oe.length;ke++){const ye=oe[ke];if(ye.kind==="subagent"&&!!n[ye.name]){const $e=So(o,V.id,ke,ye.kind,ye.name),ge=n[ye.name],we=_o(ge.agent,ge.sides,n,$e,a,l),Oe=(cn+Ge+12)*2;ce.push({width:we.width+wt*2+Oe,height:we.height+Un+wt,isSubagent:!0,modelReserveLeft:Oe,modelReserveRight:0,subagentName:ye.name,subagentNodeId:pn($e),subagentGroupId:Ps($e),subTree:we})}else{const $e=un(o,V.id,ke),ge=a[$e];ce.push({width:ge?.w??(ye.kind==="tool"?Vs:ye.kind==="prompt"?Us:ye.kind==="handoff"?Fs:Ds),height:ge?.h??(ye.kind==="tool"?Hs:ye.kind==="prompt"?zs:ye.kind==="handoff"?js:Bs),isSubagent:!1})}}const ne=da(o,V.id),{w:re,h:xe}=S(V,ne);return{side:V,leaves:ce,sideH:xe,sideW:re,sideNodeId:ne,externalTools:oe}})}const L=y(C),P=y(_),D=new Map,Z=new Set;function q($,V,oe){if(!$)return;const ce=`${$.id}|${oe}`;if(Z.has(ce))return;Z.add(ce);const ne=D.get($.id);if(ne){V==="a"?ne.hasLeftConsumer=!0:ne.hasRightConsumer=!0;return}D.set($.id,{hasLeftConsumer:V==="a",hasRightConsumer:V==="b"})}for(const $ of[...L,...P]){q($.side.model,$.side.id,$.sideNodeId);for(let V=0;V<$.externalTools.length;V++){const oe=$.externalTools[V];oe.kind==="prompt"&&q(d(oe.model),$.side.id,un(o,$.side.id,V))}for(const V of $.leaves)if(!(!V.isSubagent||!V.subTree))for(const oe of V.subTree.modelUsages)q(oe.model,oe.sideId,oe.consumerNodeId)}function Y($){if(!$)return!1;const V=D.get($.id);return!!V?.hasRightConsumer&&!V?.hasLeftConsumer}function G($,V){if($.length===0)return{card:{minX:0,maxX:0},leaves:null,full:{minX:0,maxX:0}};let oe=0,ce=1/0,ne=-1/0,re=1/0,xe=-1/0;for(const ye of $){const{side:Se,leaves:$e,sideW:ge,externalTools:we}=ye,Oe=V==="left"?oe-ge:oe,De=V==="right"&&Y(Se.model)?cn+Ge:0;if(ce=Math.min(ce,Oe-De),ne=Math.max(ne,Oe+ge),we.length>0){const Ye=B(Oe,ge,we,$e);for(let ze=0;ze<$e.length;ze++){const xt=V==="right"&&we[ze]?.kind==="prompt"&&Y(d(we[ze]?.model))?cn+Ge:0,bt=Ye[ze];re=Math.min(re,bt.x-xt),xe=Math.max(xe,bt.x+$e[ze].width)}}oe+=(V==="left"?-1:1)*(ge+tn)}const ke=re!==1/0;return{card:{minX:ce,maxX:ne},leaves:ke?{minX:re,maxX:xe}:null,full:{minX:ke?Math.min(ce,re):ce,maxX:ke?Math.max(ne,xe):ne}}}function B($,V,oe,ce){const ne=new Array(ce.length),re=ce.map((ge,we)=>({index:we,leaf:ge,tool:oe[we]})),xe=re.filter(ge=>M(ge.tool)),ke=new Set(xe.map(ge=>ge.index)),ye=[];xe.length>0&&ye.push(I(xe,V*3));for(const ge of re)ke.has(ge.index)||ye.push(I([ge],Number.POSITIVE_INFINITY));ye.sort((ge,we)=>ge.firstIndex-we.firstIndex);const Se=ye.reduce((ge,we)=>ge+we.width,0)+Math.max(0,ye.length-1)*ut;let $e=$+V/2-Se/2;for(const ge of ye){for(const we of ge.positions)ne[we.index]={x:$e+we.x,yOffset:we.yOffset};$e+=ge.width+ut}return ne}function M($){return $?.kind==="tool"||$?.kind==="provider"||$?.kind==="mcp"}function I($,V){const oe=Math.max(...$.map($e=>$e.leaf.width),0),ce=Number.isFinite(V)?Math.max(V,oe):Number.POSITIVE_INFINITY,ne=[];let re=null;const xe=()=>{re&&re.items.length>0&&ne.push(re),re={items:[],width:0,height:0}};xe();for(const $e of $){re||xe();const ge=re.items.length===0?$e.leaf.width:re.width+ut+$e.leaf.width;re.items.length>0&&ge>ce&&xe(),re.items.push($e),re.width=re.items.length===1?$e.leaf.width:re.width+ut+$e.leaf.width,re.height=Math.max(re.height,$e.leaf.height)}re&&re.items.length>0&&ne.push(re);const ke=Math.max(...ne.map($e=>$e.width),0),ye=[];let Se=0;for(const $e of ne){let ge=(ke-$e.width)/2;for(const we of $e.items)ye.push({index:we.index,x:ge,yOffset:Se}),ge+=we.leaf.width+ut;Se+=$e.height+ut}return{firstIndex:Math.min(...$.map($e=>$e.index)),width:ke,height:ne.reduce(($e,ge)=>$e+ge.height,0)+Math.max(0,ne.length-1)*ut,positions:ye}}const w=G(L,"left"),U=G(P,"right"),N=w.card.maxX-U.card.minX+tn,T=w.leaves&&U.leaves?w.leaves.maxX-U.leaves.minX+tn:0,A=Math.max(Xs,N,T),X=Math.max(x/2,A/2-w.full.minX);let F=b;function pe($,V,oe,ce,ne,re,xe){const ke=un(o,V,xe);if(!ce.isSubagent||!ce.subTree){if(s.push({id:ke,type:"tool",x:ne,y:re,width:ce.width,height:ce.height,data:oe,sideId:V}),r.push({id:`${$}-to-${ke}`,from:$,to:ke,sideId:V,toolKind:oe.kind}),oe.kind==="prompt"){const we=d(oe.model);we&&u.push({consumerNodeId:ke,sideId:V,model:we})}F=Math.max(F,re+ce.height);return}const ye=ce.subTree,Se=ne+(ce.modelReserveLeft??0),$e=re+Un;for(const we of ye.nodes){const De=we.type==="agent"&&we.id===ce.subagentNodeId&&"type"in we.data?{...we.data,_isSubagent:!0}:we.data;s.push({...we,x:we.x+Se,y:we.y+$e,data:De})}for(const we of ye.edges)r.push(we);for(const we of ye.groups)i.push({...we,x:we.x+Se,y:we.y+$e});for(const we of ye.modelUsages)u.push(we);r.push({id:`${$}-to-${ce.subagentNodeId}`,from:$,to:ce.subagentNodeId,sideId:V,toolKind:oe.kind});const ge=oe.relationship;i.push({id:ce.subagentGroupId,label:n[ce.subagentName]?.agent.title||ce.subagentName,x:Se-wt,y:re,width:ye.width+wt*2,height:ye.height+Un+wt,sideId:V,subagent:{blocking:!!ge?.blocking,multiInstance:ge?.maxInstances==null||ge.maxInstances>1,immediate:!!ge?.immediate,hidden:!!ge?.hidden}}),F=Math.max(F,$e+ye.height+wt)}function se($,V){let oe=V==="left"?X-A/2:X+A/2;for(const ce of $){const{side:ne,leaves:re,sideH:xe,sideW:ke,sideNodeId:ye,externalTools:Se}=ce,$e=Se.filter(M).length,ge=$e>5?($e-5)*10:0,we=b+xe+Ua+ge,Oe=V==="left"?oe-ke:oe;if(s.push({id:ye,type:"side",x:Oe,y:b,width:ke,height:xe,data:ne,sideId:ne.id}),r.push({id:`${f}-to-${ye}`,from:f,to:ye,sideId:ne.id}),ne.model&&u.push({consumerNodeId:ye,sideId:ne.id,model:ne.model}),F=Math.max(F,b+xe),Se.length>0){const De=B(Oe,ke,Se,re);for(let Ye=0;Ye<Se.length;Ye++){const ze=De[Ye];pe(ye,ne.id,Se[Ye],re[Ye],ze.x,we+ze.yOffset,Ye)}}oe+=(V==="left"?-1:1)*(ke+tn)}}se(L,"left"),se(P,"right");const fe=new Set(Object.keys(e.env||{})),K=new Set,z=t.flatMap($=>$.variables).filter($=>fe.has($.name)).filter($=>K.has($.name)?!1:(K.add($.name),!0)),te=z.length>0?{...e,_variables:z}:e;s.push({id:f,type:"agent",x:X-x/2,y:c,width:x,height:g,data:te});let ie=1/0,de=1/0,ve=-1/0,ae=-1/0;for(const $ of s)ie=Math.min(ie,$.x),de=Math.min(de,$.y),ve=Math.max(ve,$.x+$.width),ae=Math.max(ae,$.y+$.height);for(const $ of i)ie=Math.min(ie,$.x),de=Math.min(de,$.y),ve=Math.max(ve,$.x+$.width),ae=Math.max(ae,$.y+$.height);const J=ve-ie,p=ae-de;for(const $ of s)$.x-=ie,$.y-=de;for(const $ of i)$.x-=ie,$.y-=de;return{nodes:s,edges:r,groups:i,modelUsages:u,width:J,height:p}}function Ws(e,t,n,o,a={}){if(!e||t.length===0)return{nodes:[],edges:[],groups:[],bounds:{x:0,y:0,width:0,height:0}};const l=To(e.id||e.name),s=_o(e,t,n,l,o,a),r=[...s.nodes],i=[...s.edges],u=[...s.groups],{modelNodes:d,modelEdges:f}=Ys(s,l,o);r.push(...d),i.push(...f),qs(u,d,f);let v=0,x=0,g=s.width,c=s.height;for(const b of d)b.x<v&&(v=b.x),b.y<x&&(x=b.y),b.x+b.width>g&&(g=b.x+b.width),b.y+b.height>c&&(c=b.y+b.height);for(const b of u)b.x<v&&(v=b.x),b.y<x&&(x=b.y),b.x+b.width>g&&(g=b.x+b.width),b.y+b.height>c&&(c=b.y+b.height);if(v<0||x<0){const b=-Math.min(v,0),S=-Math.min(x,0);for(const C of r)C.x+=b,C.y+=S;for(const C of u)C.x+=b,C.y+=S;g+=b,c+=S}return{nodes:r,edges:i,groups:u,bounds:{x:0,y:0,width:g,height:c}}}function Qs(e,t,n,o,a){return R(()=>Ws(e.value,t.value,n.value,o.value,a.value))}function Js(e){const{selectedAgentId:t,threadListPaneRef:n,messagesPaneRef:o,logsPaneRef:a}=e,l=yn(),s=ea(),r=()=>typeof l.query.thread=="string"?l.query.thread:null,i=z=>{s.replace({path:l.path,query:{...l.query,thread:z||void 0},hash:l.hash})},u=z=>{s.replace({path:l.path,query:{...l.query,inspector:z},hash:l.hash})},d=r(),f=H(d),v=H(null),x="__draft_new_thread__",g=H(!1);let c=!1;Ae(f,z=>{if(c||z===x)return;const te=r();z!==te&&i(z)}),Ae(()=>l.query.thread,z=>{if(c)return;const te=typeof z=="string"?z:null;if(te&&v.value&&!v.value.has(te)){c=!0,f.value=null,i(null),je(()=>{c=!1});return}te!==f.value&&(f.value=te)},{immediate:!0});const b=H(null),S=H(null),C=H(null),_=H(null),y=H(null),L=H(null),P=H(null),D=H(!1),Z=H(null),{thread:q}=ks(R(()=>f.value===x?null:f.value));let Y=!1;Ae(t,()=>{if(!Y){Y=!0;return}c=!0,f.value=null,b.value=null,S.value=null,C.value=null,_.value=null,y.value=null,L.value=null,P.value=null,je(()=>{c=!1})}),Ae(f,()=>{b.value=null,S.value=null,C.value=null,_.value=null,y.value=null});const G=z=>{L.value=z,P.value=z},B=z=>{const te=o.value,ie=a.value;if(!te||!ie)return null;if(te.hasWorkblockForLogId(z))return z;let de=z;const ve=10;for(let ae=0;ae<ve&&de;ae++){const J=ie.getLog(de);if(!J)break;const p=J.parent_log_id;if(!p)break;if(te.hasWorkblockForLogId(p))return p;de=p}return null};return{selectedThreadId:f,selectedThread:q,selectedMessageId:b,selectedLogId:S,selectedEffectId:C,selectedEffectRef:_,highlightedWorkblockLogId:y,hoveredLogId:L,hoveredWorkblockLogId:P,showThreadModal:D,editingThread:Z,draftThreadId:x,isCreatingThreadDraft:g,handleThreadSelect:z=>{f.value=z},handleThreadsLoaded:(z,te)=>{c=!1,v.value=te?new Set(te):null,f.value&&v.value&&!v.value.has(f.value)&&(f.value=null),z&&!f.value?f.value=z:!z&&!f.value&&r()&&i(null)},handleMessageClick:async(z,te,ie)=>{if(b.value=z,ie){C.value=ie.id??null,_.value=ie,S.value=null,y.value=null,u("effects"),await je(),a.value?.selectEffectByReference(ie);return}if(C.value=null,_.value=null,!te){S.value=null,y.value=null;return}const de=a.value;if(!de){S.value=te,y.value=te;return}const ve=!de.hasLog(te);if(ve&&de.setLoadingForLog(!0),S.value=te,y.value=te,ve&&!await de.loadUntilLogId(te)){de.setLoadingForLog(!1);return}await de.waitForLogRow(te)&&(de.scrollToLog(te),de.selectLogById(te))},handleMessageHover:G,handleLogClick:z=>{S.value=z,C.value=null,_.value=null,b.value=null;const te=o.value;if(!te){y.value=z;return}if(te.scrollToLogId(z)){y.value=z;return}const ie=B(z);ie&&ie!==z&&te.scrollToLogId(ie),y.value=ie??z},handleLogHover:z=>{if(L.value=z,!z){P.value=null;return}P.value=B(z)??z},handleLogsLoaded:z=>{z&&(S.value=z)},handleLogsDeleted:z=>{a.value?.removeLogsByIds(z)},handleThreadDeleted:z=>{f.value=null,b.value=null,S.value=null,C.value=null,_.value=null,y.value=null,L.value=null,P.value=null,n.value?.refetch()},handleEditThread:()=>{q.value&&(Z.value=q.value,D.value=!0)},handleCreateThread:()=>{Z.value=null,D.value=!1,g.value=!0,f.value=x},handleThreadCreated:z=>{g.value=!1,n.value?.refetch(),f.value=z,je(()=>o.value?.focusComposer())},handleCancelCreateThread:()=>{g.value=!1,f.value===x&&(f.value=null)},handleThreadUpdated:()=>{n.value?.refetch()}}}function Zs(e){return Array.from(new Set(e.map(t=>t.id))).sort()}function el(e){const t=H({}),n=H(!1),o=H(null),a=R(()=>Zs(Qr(e))),l=R(()=>a.value.join(""));let s=0;async function r(i={}){const u=++s,d=a.value;if(d.length===0){t.value={},o.value=null,n.value=!1;return}const f={...t.value},v=i.force?d:d.filter(x=>f[x]===void 0);if(v.length===0){o.value=null,n.value=!1;return}n.value=!0,o.value=null;try{const x=await Promise.all(v.map(async g=>{try{const c=await Je(`/threads?agent_id=${encodeURIComponent(g)}&limit=1`);return[g,c.total??0]}catch{return[g,0]}}));if(u!==s)return;for(const[g,c]of x)f[g]=c;t.value=f}catch{u===s&&(o.value="Unable to load thread counts.")}finally{u===s&&(n.value=!1)}}return Ae(l,()=>{r()},{immediate:!0}),{threadCounts:t,loadingThreadCounts:n,threadCountsError:o,refreshThreadCounts:()=>r({force:!0})}}const tl={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function nl(e,t){return h(),k("svg",tl,[...t[0]||(t[0]=[m("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[m("path",{d:"M12 22v-9m3.17-10.79a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.66 1.66 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z"}),m("path",{d:"M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13"}),m("path",{d:"M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.64 1.64 0 0 0 1.63 0z"})],-1)])])}const al=it({name:"lucide-package-open",render:nl}),ol={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function rl(e,t){return h(),k("svg",ol,[...t[0]||(t[0]=[m("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[m("circle",{cx:"12",cy:"12",r:"1"}),m("circle",{cx:"12",cy:"5",r:"1"}),m("circle",{cx:"12",cy:"19",r:"1"})],-1)])])}const sl=it({name:"lucide-ellipsis-vertical",render:rl}),ll={class:"px-4 py-3 border-b border-neutral-200 dark:border-neutral-800"},il={class:"flex items-center justify-between"},dl={class:"flex items-center gap-2"},ul={key:0,class:"text-xs font-mono text-neutral-500 dark:text-neutral-400"},cl={class:"flex items-center gap-2 border-b border-neutral-200 px-5 py-2.5 dark:border-neutral-800"},fl={class:"flex flex-1 items-center gap-2 rounded-lg border border-neutral-200 bg-white px-3 py-1.5 text-sm dark:border-neutral-800 dark:bg-neutral-900"},hl=["value"],ml={class:"flex shrink-0 overflow-hidden rounded-md border border-neutral-200 text-[11px] dark:border-neutral-700"},pl=["onClick"],vl={class:"grid grid-cols-[36px_1fr_72px_130px_1fr_32px] gap-x-4 border-b border-neutral-200 px-5 py-2 text-[11px] font-semibold text-neutral-400 dark:border-neutral-800 dark:text-neutral-500"},gl={key:0,class:"flex-1 px-5 py-5 text-sm text-neutral-500 dark:text-neutral-400"},xl={key:1,class:"flex-1 px-5 py-5 text-sm text-neutral-500 dark:text-neutral-400"},bl={key:2,class:"flex-1 overflow-y-auto"},yl=["data-agent-id","onClick"],kl={class:"flex items-center justify-center"},wl={class:"flex min-w-0 items-center gap-2"},$l=["onClick","aria-label"],Ml={key:0,class:"text-[11px] font-mono"},Tl={class:"min-w-0"},Sl={key:0,class:"relative flex items-center justify-center","data-agent-menu":""},Cl=["aria-label","aria-expanded","onClick"],_l={key:0,class:"absolute right-0 top-8 z-30 min-w-[160px] origin-top-right rounded-lg border border-neutral-200 bg-white py-1 shadow-lg dark:border-neutral-700 dark:bg-neutral-900"},Il=["onClick"],El=["onClick"],Nl=["onClick"],Al=["onClick"],Pl=["onClick"],Ll=_e({__name:"AgentBrowserPanel",props:{agents:{},selectedId:{},loading:{type:Boolean},search:{},typeFilter:{},sortBy:{},sortDir:{},threadCounts:{},readonly:{type:Boolean,default:!1}},emits:["update:search","update:typeFilter","sort","select","view-threads","add","edit","pack","unpack","delete","publish"],setup(e,{emit:t}){const n=H(null);function o(d){n.value=n.value===d?null:d}function a(){n.value=null}function l(d){const f=d.target;(!(f instanceof Element)||!f.closest("[data-agent-menu]"))&&a()}ta(()=>document.addEventListener("click",l)),At(()=>document.removeEventListener("click",l));const s=t,r=[{value:"primary",label:"Primary"},{value:"all",label:"All"},{value:"chat",label:"Chat"},{value:"autonomous",label:"Autonomous"},{value:"handler",label:"Handler"}];function i(d){return Kt(d.side_a_backing,d.side_b_backing)||"-"}function u(d,f){const v=f==="a"?d.side_a_backing:d.side_b_backing;return v==="human"?"Human":v==="handler"?(f==="a"?d.side_a_handler:d.side_b_handler)||"Handler":(f==="a"?d.side_a_agent_prompt:d.side_b_agent_prompt)||"-"}return(d,f)=>(h(),k("aside",{class:"flex h-full w-[90cqi] max-w-[780px] flex-col",onClick:f[5]||(f[5]=Te(()=>{},["stop"]))},[m("div",ll,[m("div",il,[m("div",dl,[Q(E(ot),{class:"h-[18px] w-[18px] shrink-0 opacity-60"}),f[6]||(f[6]=m("h2",{class:"text-base font-bold"},"Agents",-1)),!e.loading&&e.agents.length>0?(h(),k("span",ul," ("+j(e.agents.length)+") ",1)):W("",!0)])])]),m("div",cl,[m("label",fl,[Q(E(ls),{class:"h-4 w-4 shrink-0 text-neutral-400"}),m("input",{type:"text",placeholder:"Search agents...",value:e.search,onInput:f[0]||(f[0]=v=>d.$emit("update:search",v.target.value)),class:"w-full bg-transparent outline-none placeholder:text-neutral-400"},null,40,hl)]),m("div",ml,[(h(),k(Me,null,Ce(r,v=>m("button",{key:v.value,type:"button",class:le(["px-2.5 py-1.5 font-medium transition-colors",e.typeFilter===v.value?"bg-neutral-900 text-white dark:bg-neutral-100 dark:text-neutral-900":"text-neutral-500 hover:bg-neutral-100 dark:text-neutral-400 dark:hover:bg-neutral-800"]),onClick:x=>d.$emit("update:typeFilter",v.value)},j(v.label),11,pl)),64))]),e.readonly?W("",!0):(h(),k("button",{key:0,type:"button",class:"flex shrink-0 items-center gap-1 rounded-md bg-neutral-900 px-3 py-1.5 text-[11px] font-medium text-white transition-colors hover:bg-neutral-800 dark:bg-neutral-100 dark:text-neutral-900 dark:hover:bg-neutral-200",onClick:f[1]||(f[1]=v=>d.$emit("add"))},[Q(E(ho),{class:"h-3.5 w-3.5"}),f[7]||(f[7]=me(" New Agent ",-1))]))]),m("div",vl,[f[11]||(f[11]=m("div",null,null,-1)),m("button",{type:"button",class:"flex items-center gap-1 text-left",onClick:f[2]||(f[2]=v=>d.$emit("sort","title"))},[f[8]||(f[8]=me(" Title ",-1)),e.sortBy==="title"&&e.sortDir==="asc"?(h(),ue(E(Bn),{key:0,class:"h-3 w-3"})):e.sortBy==="title"&&e.sortDir==="desc"?(h(),ue(E(Vn),{key:1,class:"h-3 w-3"})):(h(),ue(E(Hn),{key:2,class:"h-3 w-3 opacity-40"}))]),m("button",{type:"button",class:"flex items-center gap-1 text-left",onClick:f[3]||(f[3]=v=>d.$emit("sort","threads"))},[f[9]||(f[9]=me(" Threads ",-1)),e.sortBy==="threads"&&e.sortDir==="asc"?(h(),ue(E(Bn),{key:0,class:"h-3 w-3"})):e.sortBy==="threads"&&e.sortDir==="desc"?(h(),ue(E(Vn),{key:1,class:"h-3 w-3"})):(h(),ue(E(Hn),{key:2,class:"h-3 w-3 opacity-40"}))]),m("button",{type:"button",class:"flex items-center gap-1 text-left",onClick:f[4]||(f[4]=v=>d.$emit("sort","shape"))},[f[10]||(f[10]=me(" Shape ",-1)),e.sortBy==="shape"&&e.sortDir==="asc"?(h(),ue(E(Bn),{key:0,class:"h-3 w-3"})):e.sortBy==="shape"&&e.sortDir==="desc"?(h(),ue(E(Vn),{key:1,class:"h-3 w-3"})):(h(),ue(E(Hn),{key:2,class:"h-3 w-3 opacity-40"}))]),f[12]||(f[12]=m("div",null,"Sides",-1)),f[13]||(f[13]=m("div",null,null,-1))]),e.loading?(h(),k("div",gl," Loading agents... ")):e.agents.length===0?(h(),k("div",xl," No agents match this search. ")):(h(),k("div",bl,[(h(!0),k(Me,null,Ce(e.agents,v=>(h(),k("div",{key:v.id,"data-agent-id":v.id,class:le(["grid w-full cursor-pointer grid-cols-[36px_1fr_72px_130px_1fr_32px] items-center gap-x-4 px-5 py-3 text-[13px] transition-colors",e.selectedId===v.id?"agents-surface-selected agents-border-selected":"agents-surface-hover"]),onClick:x=>d.$emit("select",v.id)},[m("div",kl,[Q(aa,{icon:v.icon,seed:v.id,class:"h-9 w-9 rounded-md object-cover"},null,8,["icon","seed"])]),m("div",wl,[v.packed?(h(),ue(E(Dn),{key:0,class:"h-4 w-4 shrink-0 text-blue-500",title:`Packed agent from ${v.packageId}`},null,8,["title"])):W("",!0),m("span",{class:le(["truncate font-medium",e.selectedId===v.id?"agents-text-selected":"text-neutral-900 dark:text-neutral-100"])},j(v.title),3)]),m("button",{type:"button",class:le(["flex items-center gap-1 rounded-md px-1.5 py-0.5 transition-colors",[e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500 hover:text-neutral-600 dark:hover:text-neutral-300",e.threadCounts[v.id]>0?"":"opacity-30"]]),onClick:Te(x=>s("view-threads",v.id),["stop"]),title:"View threads","aria-label":`View threads for ${v.title}`},[Q(E(gt),{class:"h-3.5 w-3.5"}),e.threadCounts[v.id]>0?(h(),k("span",Ml,j(e.threadCounts[v.id]),1)):W("",!0)],10,$l),m("div",{class:le(e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400")},j(i(v)),3),m("div",Tl,[m("div",{class:le(["truncate",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400"])},[m("span",{class:le(["text-[10px] font-semibold uppercase tracking-wider",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500"])},"A",2),me(" "+j(u(v,"a")),1)],2),m("div",{class:le(["truncate",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400"])},[m("span",{class:le(["text-[10px] font-semibold uppercase tracking-wider",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500"])},"B",2),me(" "+j(u(v,"b")),1)],2)]),e.readonly?W("",!0):(h(),k("div",Sl,[m("button",{type:"button",class:"rounded p-1 text-neutral-400 transition-colors hover:bg-neutral-100 hover:text-neutral-600 dark:hover:bg-neutral-800 dark:hover:text-neutral-300","aria-label":`Open actions for ${v.title}`,"aria-expanded":n.value===v.id,onClick:Te(x=>o(v.id),["stop"])},[Q(E(sl),{class:"h-4 w-4"})],8,Cl),Q(uo,{"enter-active-class":"transition-all duration-100 ease-out","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-75 ease-in","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:be(()=>[n.value===v.id?(h(),k("div",_l,[v.packed?W("",!0):(h(),k("button",{key:0,type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-neutral-700 transition-colors hover:bg-neutral-50 dark:text-neutral-200 dark:hover:bg-neutral-800",onClick:Te(x=>{d.$emit("edit",v),a()},["stop"])},[Q(E(is),{class:"h-4 w-4 text-neutral-400"}),f[14]||(f[14]=me(" Edit ",-1))],8,Il)),v.packed?W("",!0):(h(),k("button",{key:1,type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-neutral-700 transition-colors hover:bg-neutral-50 dark:text-neutral-200 dark:hover:bg-neutral-800",onClick:Te(x=>{d.$emit("pack",v),a()},["stop"])},[Q(E(Dn),{class:"h-4 w-4 text-neutral-400"}),f[15]||(f[15]=me(" Pack ",-1))],8,El)),v.packed?(h(),k("button",{key:2,type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-neutral-700 transition-colors hover:bg-neutral-50 dark:text-neutral-200 dark:hover:bg-neutral-800",onClick:Te(x=>{d.$emit("unpack",v),a()},["stop"])},[Q(E(al),{class:"h-4 w-4 text-neutral-400"}),f[16]||(f[16]=me(" Unpack ",-1))],8,Nl)):W("",!0),v.packed?(h(),k("button",{key:3,type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-neutral-700 transition-colors hover:bg-neutral-50 dark:text-neutral-200 dark:hover:bg-neutral-800",onClick:Te(x=>{d.$emit("publish",v),a()},["stop"])},[Q(E(Dn),{class:"h-4 w-4 text-neutral-400"}),f[17]||(f[17]=me(" Publish Package ",-1))],8,Al)):W("",!0),f[18]||(f[18]=m("div",{class:"my-1 border-t border-neutral-100 dark:border-neutral-800"},null,-1)),m("button",{type:"button",class:"flex w-full items-center gap-2.5 px-3 py-2 text-[13px] text-red-600 transition-colors hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/30",onClick:Te(x=>{d.$emit("delete",v),a()},["stop"])},[Q(E(ds),{class:"h-4 w-4"}),me(" "+j(v.packed?"Delete Package":"Delete"),1)],8,Pl)])):W("",!0)]),_:2},1024)]))],10,yl))),128))]))]))}});function Xa(e){return Math.round(e*1e3)/1e3}function Fn(e){return e?Object.entries(e).sort(([t],[n])=>t.localeCompare(n)).map(([t,n])=>`${t}:${n.left}:${n.width}`).join("|"):""}function jn(e,t){return Number.isFinite(e)?!Number.isFinite(t)||t<=0?Xa(e):Xa(e/t):e}function Rl(e,t,n,o,a){const l=H(!1),s=H(new Map);let r=null,i=null,u=null,d=null,f="",v="",x=null;const g=new Map;function c(){return e.value.nodes.filter(w=>w.type!=="hook").map(w=>w.id)}function b(){const w=c();return w.length>0&&w.every(U=>s.value.has(U))}function S(){return Array.from(s.value.entries()).sort(([w],[U])=>w.localeCompare(U)).map(([w,U])=>`${w}:${U.w}x${U.h}:${U.modelAnchorY??""}:${Fn(U.toolColumns)}`).join("|")}function C(){return new Set(e.value.nodes.map(w=>w.id))}function _(){r&&clearTimeout(r),i&&clearTimeout(i),u&&clearTimeout(u),r=null,i=null,u=null}function y(){return typeof ResizeObserver>"u"?null:x||(x=new ResizeObserver(w=>{for(const U of w)for(const[N,T]of g)if(T===U.target){M(N,T);break}}),x)}function L(w,U){const N=g.get(w);if(N===U)return;const T=y();N&&T?.unobserve(N),g.set(w,U),T?.observe(U)}function P(){const w=C();for(const[U,N]of g)w.has(U)||(x?.unobserve(N),g.delete(U),s.value.delete(U))}function D(){je(()=>{P();for(const[w,U]of g)M(w,U)})}function Z(){u&&clearTimeout(u),u=setTimeout(()=>{t.value||l.value||e.value.nodes.length===0||!b()||je(()=>{l.value=!0,n(G())})},800)}Ae(t,w=>{if(w){l.value=!1,s.value.clear(),v="",a?.(),_();return}e.value.nodes.length>0&&(D(),Z())}),Ae(()=>e.value.nodes.map(w=>w.id).join(","),w=>{w!==f&&(f=w,w&&(l.value=!1,v="",a?.(),_(),D(),Z()))});const q=R(()=>e.value.nodes.map(w=>{const U=s.value.get(w.id);return U?{...w,width:U.w,height:U.h}:w})),Y=R(()=>{const w={};for(const[U,N]of s.value)(N.modelAnchorY!==void 0||N.toolColumns)&&(w[U]={modelAnchorY:N.modelAnchorY,toolColumns:N.toolColumns});return w});function G(){const w=q.value,U=e.value.groups;if(w.length===0)return e.value.bounds;let N=1/0,T=1/0,A=-1/0,X=-1/0;for(const F of w)N=Math.min(N,F.x),T=Math.min(T,F.y),A=Math.max(A,F.x+F.width),X=Math.max(X,F.y+F.height);for(const F of U)N=Math.min(N,F.x),T=Math.min(T,F.y),A=Math.max(A,F.x+F.width),X=Math.max(X,F.y+F.height);return{x:N,y:T,width:A-N,height:X-T}}function B(){d&&cancelAnimationFrame(d),d=requestAnimationFrame(()=>{const w=S();w!==v&&(v=w,o(Object.fromEntries(s.value))),!(t.value||!b())&&(r&&clearTimeout(r),r=setTimeout(()=>{t.value||!b()||(u&&clearTimeout(u),u=null,l.value=!0,je(()=>{n(G()),i&&clearTimeout(i),i=setTimeout(()=>n(G()),220)}))},180))})}function M(w,U){je(()=>{const N=U.offsetWidth,T=U.offsetHeight;if(N<=0||T<=0)return;const A=U.getBoundingClientRect(),X=N>0&&A.width>0?A.width/N:1,F=T>0&&A.height>0?A.height/T:1;let pe;const se=U.querySelector("[data-model-anchor]");if(se&&A.height>0){const ie=se.getBoundingClientRect();ie.height>0&&(pe=jn(ie.top+ie.height/2-A.top,F))}let fe;const K=U.querySelectorAll("[data-tool-column]");if(K.length>0&&A.width>0){fe={};for(const ie of K){const de=ie.dataset.toolColumn;if(!de)continue;const ve=ie.getBoundingClientRect();fe[de]={left:jn(ve.left-A.left,X),width:jn(ve.width,X)}}}const z=s.value.get(w),te=z?.w!==N||z?.h!==T;if(!(z?.w===N&&z?.h===T&&z?.modelAnchorY===pe&&Fn(z?.toolColumns)===Fn(fe))){if(s.value.set(w,{w:N,h:T,modelAnchorY:pe,toolColumns:fe}),l.value&&!te){const ie=S();ie!==v&&(v=ie,o(Object.fromEntries(s.value)));return}B()}})}function I(w,U){L(w,U),M(w,U)}return At(()=>{r&&clearTimeout(r),i&&clearTimeout(i),u&&clearTimeout(u),d&&cancelAnimationFrame(d),x?.disconnect(),x=null,g.clear()}),{layoutStable:l,measurements:s,nodesWithMeasuredSizes:q,nodeMetrics:Y,measureNode:I,measuredBounds:G}}function Ol(e){const t=H(null);let n=0,o="",a=0,l="",s=null,r=null;function i(v){const x=e.measurements.value.get(v.id);return{x:v.x,y:v.y,width:x?.w??v.width,height:x?.h??v.height}}function u(v){if(!e.shouldHandleClick())return;const x=v.target;x instanceof Element&&(x.closest("[data-canvas-node]")||x.closest("[data-canvas-group]"))||(t.value=null,e.onDeselect())}function d(v,x){if(!e.shouldHandleClick())return;const g=v.target;if(g instanceof Element&&g.closest("[data-canvas-node]"))return;const c=Date.now(),b=c-n<350&&o===x.id;if(n=c,o=x.id,!b){e.focusNode(x);return}const S=e.containerRef.value;if(!S)return;const C=S.getBoundingClientRect(),_=40,y=(C.width-_*2)/x.width,L=(C.height-_*2)/x.height;e.focusNode(x,Math.min(y,L,1.5))}function f(v){if(!e.shouldHandleClick())return;e.selectedNodeId.value||e.saveViewport(),e.onSelectNode(v);const x=i(v);t.value=x;const g=Date.now(),c=g-a<350&&l===v.id;a=g,l=v.id,e.focusNode(x,c?1.2:void 0)}return Ae(e.selectedNodeId,(v,x)=>{if(!v){t.value=null,x&&e.restoreViewport();return}const g=e.layout.value.nodes.find(c=>c.id===v);g&&(t.value=i(g))}),ta(()=>{s=new ResizeObserver(()=>{r&&clearTimeout(r),r=setTimeout(()=>{const v=t.value,x=e.containerRef.value;if(!v||!x||!e.layoutStable.value)return;const g=x.getBoundingClientRect();let c=e.viewportState.value.scale;const b=60;if(v.width>0&&v.height>0){const S=(g.width-b*2)/v.width,C=(g.height-b*2)/v.height,_=Math.min(S,C);c>_&&_>.1&&(c=_)}e.focusNode(v,c)},320)}),e.containerRef.value&&s.observe(e.containerRef.value)}),At(()=>{s?.disconnect(),r&&clearTimeout(r)}),{handleCanvasClick:u,handleGroupClick:d,handleNodeSelect:f}}const nn=6,Dl=250;function Bl(e,t={}){const{minScale:n=.1,maxScale:o=2.5,padding:a=80,panPadding:l=a}=t,s=H({x:0,y:0,scale:1}),r=H(!1),i=H(!1),u={x:0,y:0,viewX:0,viewY:0},d={x:0,y:0,time:0};let f=null,v=!1,x=0,g=null,c=null,b=null;const S=150;function C(){i.value=!0,c&&clearTimeout(c),c=setTimeout(()=>{i.value=!1,c=null},S)}let _=null,y=!1,L=!1,P=null;function D(){y=!0,L=!0}function Z(){g&&clearTimeout(g),g=setTimeout(()=>{const{x:p,y:$,scale:V}=s.value,oe=Math.round(p/V)*V,ce=Math.round($/V)*V;(oe!==p||ce!==$)&&(s.value=M({x:oe,y:ce,scale:V}))},120)}const q=R(()=>{const{x:p,y:$,scale:V}=s.value;return i.value?{transform:`translate3d(${p}px, ${$}px, 0) scale(${V})`,transformOrigin:"0 0",willChange:"transform"}:{transform:`translate3d(${p/V}px, ${$/V}px, 0)`,zoom:V,transformOrigin:"0 0",willChange:"transform"}}),Y=R(()=>Math.round(s.value.scale*100));function G(p){return Math.min(o,Math.max(n,p))}function B(p,$,V){return Math.min(V,Math.max($,p))}function M(p){const $=G(p.scale),V=e.value,oe=P;if(!V||!oe||oe.width<=0||oe.height<=0)return{...p,scale:$};const ce=V.getBoundingClientRect();if(ce.width<=0||ce.height<=0)return{...p,scale:$};const ne=Math.max(0,l)/$,re=Math.max(0,l)/$,xe=(ce.width/2-p.x)/$,ke=(ce.height/2-p.y)/$,ye=B(xe,oe.x-ne,oe.x+oe.width+ne),Se=B(ke,oe.y-re,oe.y+oe.height+re);return{x:ce.width/2-ye*$,y:ce.height/2-Se*$,scale:$}}function I(p,$=!1){s.value=M(p),$&&Z()}function w(p,$,V){const oe=G(p),ce=s.value,ne=oe/ce.scale;I({x:$-($-s.value.x)*ne,y:V-(V-s.value.y)*ne,scale:oe},!0)}function U(p){const $=e.value;if($){if(p.ctrlKey||p.metaKey){p.preventDefault(),p.stopPropagation?.(),D(),C();const V=$.getBoundingClientRect(),oe=p.clientX-V.left,ce=p.clientY-V.top,ne=Math.min(Math.abs(p.deltaY),10)/10,xe=1+(p.deltaY>0?-1:1)*.03*ne;w(s.value.scale*xe,oe,ce);return}p.preventDefault(),p.stopPropagation?.(),D(),C(),I({...s.value,x:s.value.x-p.deltaX,y:s.value.y-p.deltaY},!0)}}function N(p){p.button!==0&&p.button!==1||(f=p.pointerId,r.value=!1,u.x=p.clientX,u.y=p.clientY,u.viewX=s.value.x,u.viewY=s.value.y,d.x=p.clientX,d.y=p.clientY,d.time=Date.now(),v=!1)}function T(p){if(f!==p.pointerId)return;const $=p.clientX-d.x,V=p.clientY-d.y,oe=$*$+V*V;!r.value&&oe>nn*nn&&(r.value=!0,v||(p.currentTarget.setPointerCapture(p.pointerId),v=!0)),r.value&&(C(),I({...s.value,x:u.viewX+(p.clientX-u.x),y:u.viewY+(p.clientY-u.y)}))}function A(p){if(f!==p.pointerId)return;const $=p.clientX-d.x,V=p.clientY-d.y,oe=$*$+V*V,ce=Date.now()-d.time<=Dl&&oe<=nn*nn;r.value&&D(),ce||(x=Date.now()+32),r.value=!1,f=null,v&&(p.currentTarget?.releasePointerCapture(p.pointerId),v=!1),Z()}function X(){return Date.now()>=x}function F(){const p=e.value;if(!p)return{cx:0,cy:0};const $=p.getBoundingClientRect();return{cx:$.width/2,cy:$.height/2}}function pe(){D(),C();const{cx:p,cy:$}=F();w(s.value.scale+.1,p,$)}function se(){D(),C();const{cx:p,cy:$}=F();w(s.value.scale-.1,p,$)}function fe(p,$={}){P=p.width>0&&p.height>0?{...p}:null;const V=e.value;if(!V||p.width===0||p.height===0||!$.force&&L)return;const oe=V.getBoundingClientRect(),ce=(oe.width-a*2)/p.width,ne=(oe.height-a*2)/p.height,re=G(Math.min(ce,ne,1));I({x:(oe.width-p.width*re)/2-p.x*re,y:(oe.height-p.height*re)/2-p.y*re,scale:re}),L=!1}function K(){L=!1}function z(){I({x:0,y:0,scale:1})}function te(p){P=p&&p.width>0&&p.height>0?{...p}:null,P&&(s.value=M(s.value))}function ie(){_={...s.value},y=!1}function de(){const p=_;_=null,!(!p||y)&&ve(p)}function ve(p,$){g&&(clearTimeout(g),g=null);const V={...s.value},oe=300,ce=performance.now();b&&cancelAnimationFrame(b);function ne(re){const xe=Math.min((re-ce)/oe,1),ke=1-Math.pow(1-xe,3);C(),s.value=M({x:V.x+(p.x-V.x)*ke,y:V.y+(p.y-V.y)*ke,scale:V.scale+(p.scale-V.scale)*ke}),xe<1?b=requestAnimationFrame(ne):(s.value=M($?$():p),b=null)}b=requestAnimationFrame(ne)}function ae(){g&&(clearTimeout(g),g=null),c&&(clearTimeout(c),c=null),b&&(cancelAnimationFrame(b),b=null),f=null,v=!1,r.value=!1,i.value=!1}Jr()&&Zr(ae);function J(p,$){const V=e.value;if(!V)return;const oe=G($??s.value.scale),ce=p.x+p.width/2,ne=p.y+p.height/2;function re(){const xe=V.getBoundingClientRect();return{x:xe.width/2-ce*oe,y:xe.height/2-ne*oe,scale:oe}}ve(re(),re)}return{state:s,isPanning:r,transformStyle:q,scalePercent:Y,onWheel:U,onPointerDown:N,onPointerMove:T,onPointerUp:A,shouldHandleClick:X,zoomIn:pe,zoomOut:se,fitToView:fe,resetAutoFitLock:K,focusNode:J,resetView:z,setContentBounds:te,saveViewport:ie,restoreViewport:de}}function Vl(e){return!e.hasAgent||e.hasError?!1:e.loadingComposition?!0:e.hasRevealedStableDiagram?!1:!e.layoutStable||e.loadingAsyncDetail}const Hl={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},Ul=_e({__name:"CanvasGrid",setup(e){return(t,n)=>(h(),k("svg",Hl,[...n[0]||(n[0]=[m("defs",null,[m("pattern",{id:"canvas-dot-grid",x:"0",y:"0",width:"24",height:"24",patternUnits:"userSpaceOnUse"},[m("circle",{cx:"12",cy:"12",r:"1",class:"fill-neutral-400/20 dark:fill-neutral-500/20"})])],-1),m("rect",{width:"100%",height:"100%",fill:"url(#canvas-dot-grid)"},null,-1)])]))}}),Le=8,Be=20,Ee=20,an=18,We=20,on=8,rt=8,zl=12,Pe=10,Fl=10,rn=16,sn=24,jl=38,Ka=44,Xl=12;function Ya(e,t,n){const o=n==="left"||n==="right"?e.height:e.width;if(t<=1)return[n==="left"||n==="right"?e.y+e.height/2:e.x+e.width/2];const a=Math.min(Be,o/(t+1)),l=n==="left"||n==="right"?e.y:e.x,s=l+a,i=(l+o-a-s)/(t-1);return Array.from({length:t},(u,d)=>s+d*i)}function Kl(e){const t=new Set,n=[];for(const o of e){const a=[o.kind??"structural",o.from,o.to,o.sideId,o.toolKind??""].join("|");t.has(a)||(t.add(a),n.push(o))}return n}function kn(e){return{id:e.id,x:e.x-an,y:e.y-an,width:e.width+an*2,height:e.height+an*2}}function Ft(e,t,n=t){return e.map(o=>({id:o.id,x:o.x-t,y:o.y-n,width:o.width+t*2,height:o.height+n*2}))}function vn(e,t,n){return t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height}function qa(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function fn(e,t,n){const o=qa(e),a=qa(t);return n.map(kn).filter(l=>vn(l,o.x,o.y)&&!vn(l,a.x,a.y))}function Yl(e,t,n){const o=Math.min(e.x,t.x),a=Math.max(e.x+e.width,t.x+t.width),l=Math.min(e.y,t.y),s=Math.max(e.y+e.height,t.y+t.height);return n.map(kn).filter(r=>!vn(r,e.x+e.width/2,e.y+e.height/2)&&!vn(r,t.x+t.width/2,t.y+t.height/2)&&r.x<=a+Ee&&r.x+r.width>=o-Ee&&r.y<=s+Ee&&r.y+r.height>=l-Ee)}function Tt(e,t,n){const o=[{x:e.x+e.width/2,y:e.y+e.height/2},{x:t.x+t.width/2,y:t.y+t.height/2}];return n.filter(a=>!o.some(l=>l.x>=a.x&&l.x<=a.x+a.width&&l.y>=a.y&&l.y<=a.y+a.height)).map(kn)}function Ze(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n);for(const r of o){if(a.has(r.id))continue;const i=r.x-Ee,u=r.x+r.width+Ee,d=r.y-Ee,f=r.y+r.height+Ee;if(e>=d&&e<=f&&s>=i&&l<=u)return r}return null}function Ct(e,t,n,o,a,l=Ee,s=Ee){const r=Math.min(t,n),i=Math.max(t,n);for(const u of o){if(a.has(u.id))continue;const d=u.x-l,f=u.x+u.width+l,v=u.y-s,x=u.y+u.height+s;if(e>=d&&e<=f&&i>=v&&r<=x)return u}return null}function Wn(e,t,n,o,a,l,s){const r=Math.min(o,a),i=Math.max(o,a);let u=e;for(let d=0;d<6;d++){const f=Ze(u,t,n,l,s);if(!f)return u;const v=f.y-Ee-We,x=f.y+f.height+Ee+We,g=Math.abs(v-u)<=Math.abs(x-u)?v:x;u=Math.max(r-200,Math.min(i+200,g))}return u}function gn(e,t,n,o,a,l,s,r,i){let u=r<0?Math.min(e,i-1):Math.max(e,i+1);for(let d=0;d<6;d++){const f=Ze(u,t,n,l,s);if(!f)return u;u=r<0?f.y-Ee-We:f.y+f.height+Ee+We}return u}function Io(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n);return Eo(e,ua(l,s,o,a))}function ua(e,t,n,o,a=Ee+We,l=Ee){const s=[];for(const i of n){if(o.has(i.id))continue;const u=i.y-l;i.y+i.height+l<e||u>t||s.push([i.x-a,i.x+i.width+a])}if(s.length===0)return s;s.sort((i,u)=>i[0]-u[0]);const r=[s[0]];for(let i=1;i<s.length;i++){const u=r[r.length-1],d=s[i];d[0]<=u[1]?u[1]=Math.max(u[1],d[1]):r.push(d)}return r}function Eo(e,t){if(t.length===0||!t.find(([s,r])=>e>=s&&e<=r))return e;const o=[t[0][0]-1,t[t.length-1][1]+1];for(let s=0;s<t.length-1;s++){const r=t[s][1]+1,i=t[s+1][0]-1;i>=r&&o.push((r+i)/2)}let a=o[0],l=Math.abs(a-e);for(const s of o){const r=Math.abs(s-e);r<l&&(a=s,l=r)}return a}function Yt(e,t,n,o,a,l,s,r=Ee+We,i=Ee){const u=ua(Math.min(t,n),Math.max(t,n),o,a,r,i);if(u.length===0)return e;let d=l<0?Math.min(e,s-1):Math.max(e,s+1);for(let f=0;f<u.length;f++){const v=u.find(([x,g])=>d>=x&&d<=g);if(!v)return d;d=l<0?v[0]-1:v[1]+1}return d}function Ga(e,t){return e<=1?[0]:Array.from({length:e},(n,o)=>o*t)}function No(e){if(e.length<=1)return[e];const t=[];return e.forEach((n,o)=>{const a=[...e.slice(0,o),...e.slice(o+1)];for(const l of No(a))t.push([n,...l])}),t}function ca(e,t){if(e.orientation===t.orientation)return!1;const n=e.orientation==="horizontal"?e:t,o=e.orientation==="vertical"?e:t,a=Math.min(n.x1,n.x2),l=Math.max(n.x1,n.x2),s=Math.min(o.y1,o.y2),r=Math.max(o.y1,o.y2);return o.x1>a&&o.x1<l&&n.y1>s&&n.y1<r}function ql(e,t,n,o,a,l){const s=[];return Math.abs(n-e)>=1&&s.push({orientation:"horizontal",x1:e,y1:t,x2:n,y2:t}),s.push({orientation:"vertical",x1:n,y1:t,x2:n,y2:o}),s.push({orientation:"horizontal",x1:n,y1:o,x2:a,y2:o}),s.push({orientation:"vertical",x1:a,y1:o,x2:a,y2:l}),s}function Gl(e,t,n,o,a){if(Math.abs(e-n)<1)return`M ${e} ${t} L ${n} ${o}`;const l=Math.min(Le,Math.abs(a-t)/2,Math.abs(o-a)/2,Math.abs(n-e)/2),s=n>e?1:-1,r=a>t?1:-1,i=o>a?1:-1;return[`M ${e} ${t}`,`L ${e} ${a-l*r}`,`Q ${e} ${a} ${e+l*s} ${a}`,`L ${n-l*s} ${a}`,`Q ${n} ${a} ${n} ${a+l*i}`,`L ${n} ${o}`].join(" ")}function Ao(e,t,n,o,a){return Math.abs(e-n)<1?[{orientation:"vertical",x1:e,y1:t,x2:n,y2:o}]:[{orientation:"vertical",x1:e,y1:t,x2:e,y2:a},{orientation:"horizontal",x1:e,y1:a,x2:n,y2:a},{orientation:"vertical",x1:n,y1:a,x2:n,y2:o}]}function wn(e,t,n){return{d:`M ${e} ${t} L ${n} ${t}`,segments:[{orientation:"horizontal",x1:e,y1:t,x2:n,y2:t}]}}function fa(e,t,n){return{d:`M ${e} ${t} L ${e} ${n}`,segments:[{orientation:"vertical",x1:e,y1:t,x2:e,y2:n}]}}function Wa(e,t,n,o){if(Math.abs(t-o)<1)return wn(e,t,n);if(Math.abs(e-n)<1)return fa(e,t,o);const a=n>e?1:-1,l=o>t?1:-1,s=Math.min(Le,Math.abs(n-e)/2,Math.abs(o-t)/2);return{d:[`M ${e} ${t}`,`L ${n-s*a} ${t}`,`Q ${n} ${t} ${n} ${t+s*l}`,`L ${n} ${o}`].join(" "),segments:[{orientation:"horizontal",x1:e,y1:t,x2:n,y2:t},{orientation:"vertical",x1:n,y1:t,x2:n,y2:o}]}}function Wl(e,t,n,o,a){if(Math.abs(t-a)<1)return wn(e,t,o);const l=n>e?1:-1,s=o>n?1:-1,r=a>t?1:-1,i=Math.min(Le,Math.abs(n-e)/2||Le,Math.abs(a-t)/2||Le,Math.abs(o-n)/2||Le);return Math.abs(n-e)<2?Qn(e,t,o,a):{d:[`M ${e} ${t}`,`L ${n-i*l} ${t}`,`Q ${n} ${t} ${n} ${t+i*r}`,`L ${n} ${a-i*r}`,`Q ${n} ${a} ${n+i*s} ${a}`,`L ${o} ${a}`].join(" "),segments:[{orientation:"horizontal",x1:e,y1:t,x2:n,y2:t},{orientation:"vertical",x1:n,y1:t,x2:n,y2:a},{orientation:"horizontal",x1:n,y1:a,x2:o,y2:a}]}}function Qn(e,t,n,o){if(Math.abs(e-n)<1)return fa(e,t,o);if(Math.abs(t-o)<1)return wn(e,t,n);const a=n>e?1:-1,l=o>t?1:-1,s=Math.min(Le,Math.abs(n-e)/2,Math.abs(o-t)/2);return{d:[`M ${e} ${t}`,`L ${e} ${o-s*l}`,`Q ${e} ${o} ${e+s*a} ${o}`,`L ${n} ${o}`].join(" "),segments:[{orientation:"vertical",x1:e,y1:t,x2:e,y2:o},{orientation:"horizontal",x1:e,y1:o,x2:n,y2:o}]}}function Ql(e,t,n,o,a,l,s){if(Math.abs(t-o)<1&&!Ze(t,e,n,a,l))return wn(e,t,n);if(Math.abs(e-n)<1&&!Ct(e,t,o,a,l))return fa(e,t,o);const r=!Ze(t,e,n,a,l)&&!Ct(n,t,o,a,l),i=!Ct(e,t,o,a,l)&&!Ze(o,e,n,a,l);return r&&i?s==="horizontal"?Wa(e,t,n,o):Qn(e,t,n,o):r?Wa(e,t,n,o):i?Qn(e,t,n,o):null}function Jl(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Po(e,t){if(e.orientation==="horizontal"){const a=Math.min(e.x1,e.x2),l=Math.max(e.x1,e.x2);return l-a<2?null:{id:t,x:a,y:e.y1-on,width:l-a,height:on*2}}const n=Math.min(e.y1,e.y2),o=Math.max(e.y1,e.y2);return o-n<2?null:{id:t,x:e.x1-on,y:n,width:on*2,height:o-n}}function Qa(e,t,n){return e.some((o,a)=>{const l=Po(o,`segment-${a}`);return l?t.some(s=>n.has(s.id)?!1:Jl(l,s)):!1})}function Zl(e){const t=[];for(const n of e)n.segments.forEach((o,a)=>{const l=Po(o,`edge:${n.id}:${a}`);l&&t.push(l)});return t}function Xn(e,t,n,o,a){const l=[...fn(e,t,n),...Yl(e,t,n)],s=Array.from(new Map(l.map(r=>[r.id,r])).values());return s.length===0?o:a?Math.max(o,...s.map(r=>r.y+r.height+Ee+We)):Math.min(o,...s.map(r=>r.y-Ee-We))}function pt(e,t){const n=t?.[e.id],o=e.type==="model"?jl:e.type==="side"||e.type==="prompt"||e.type==="tool"&&e.data.kind==="prompt"?Ka:e.height/2,a=n?.modelAnchorY??o;return e.y+Math.max(Be,Math.min(e.height-Be,a))}function xn(e,t,n,o,a,l){let s=l;const r=n<0?e.x:e.x+e.width;for(const i of o){if(a.has(i.id))continue;const u=i.y-Ee,d=i.y+i.height+Ee;if(!(t<u||t>d))if(n<0){const f=i.x+i.width+Ee;if(f>=r)continue;s=Math.min(s,r-f-1)}else{const f=i.x-Ee;if(f<=r)continue;s=Math.min(s,f-r-1)}}return Math.max(0,s)}function ei(e,t,n,o,a,l){const s=t.y,r=t.x,i=[];for(const d of[-1,1]){const f=xn(e,s,d,a,l,zl),v=r+d*Math.max(0,f);Ct(v,s,n,a,l,rt,rt)||i.push(v)}for(const d of[-1,1]){const f=xn(e,s,d,a,l,14);i.push(Yt(r+d*f,s,n,a,l,d,r,rt,rt))}return Array.from(new Set(i.map(d=>Math.round(d*1e3)/1e3))).reduce((d,f)=>{const v=Ze(n,d,o,a,l),x=Ze(n,f,o,a,l);return!!x!=!!v?x?d:f:Math.abs(f-r)<Math.abs(d-r)?f:d})}function ti(e,t,n,o,a,l,s,r){const i=t.x,u=t.y,d=o.x,f=o.y,v=Ql(i,u,d,f,s,r,"horizontal");if(v&&v.segments.length===1&&!Qa(v.segments,s,r))return v;const x=t.side==="left"?-1:1,c=xn(e,u,x,s,r,14),b=i+x*c,S=w=>!Ze(u,i,w,s,r),C=Yt(b,u,f,s,r,x,i);if((d-i)*x>=0&&Math.abs(C-i)>1&&Math.abs(C-d)>1&&S(C)&&!Ct(C,u,f,s,r)&&!Ze(f,C,d,s,r)){const w=Wl(i,u,C,d,f);if(!Qa(w.segments,s,r))return w}let y=Wn(a,b,d,u,f,s,r),L=Yt(b,u,y,s,r,x,i);S(L)||(L=S(b)?b:i),y=Wn(a,L,d,u,f,s,r);const P=Math.abs(L-i),D=o.side==="left"?n.x-(Be+24):n.x+n.width+Be+24,Z=l??Io(D,y,f,s,r),q=L>i?1:-1,Y=y>u?1:-1,G=Z>L?1:-1,B=f>y?1:-1,M=d>Z?1:-1,I=Math.min(Le,Math.abs(P)/2||Le,Math.abs(y-u)/2||Le,Math.abs(Z-L)/2||Le,Math.abs(f-y)/2||Le,Math.abs(d-Z)/2||Le);return P<2?{d:[`M ${i} ${u}`,`L ${i} ${y-I*Y}`,`Q ${i} ${y} ${i+I*G} ${y}`,`L ${Z-I*G} ${y}`,`Q ${Z} ${y} ${Z} ${y+I*B}`,`L ${Z} ${f-I*B}`,`Q ${Z} ${f} ${Z+I*M} ${f}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"vertical",x1:i,y1:u,x2:i,y2:y},{orientation:"horizontal",x1:i,y1:y,x2:Z,y2:y},{orientation:"vertical",x1:Z,y1:y,x2:Z,y2:f},{orientation:"horizontal",x1:Z,y1:f,x2:d,y2:f}]}:{d:[`M ${i} ${u}`,`L ${L-I*q} ${u}`,`Q ${L} ${u} ${L} ${u+I*Y}`,`L ${L} ${y-I*Y}`,`Q ${L} ${y} ${L+I*G} ${y}`,`L ${Z-I*G} ${y}`,`Q ${Z} ${y} ${Z} ${y+I*B}`,`L ${Z} ${f-I*B}`,`Q ${Z} ${f} ${Z+I*M} ${f}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"horizontal",x1:i,y1:u,x2:L,y2:u},{orientation:"vertical",x1:L,y1:u,x2:L,y2:y},{orientation:"horizontal",x1:L,y1:y,x2:Z,y2:y},{orientation:"vertical",x1:Z,y1:y,x2:Z,y2:f},{orientation:"horizontal",x1:Z,y1:f,x2:d,y2:f}]}}function ni(e,t,n,o,a,l,s,r){const i=t.x,u=t.y,d=n.x,f=n.y,v=t.side==="left"?-1:1,x=xn(e,u,v,s,r,14),g=i+v*x,c=a??Yt(g,u,o,l,r,v,i,rt,rt),b=a!==null?o:gn(o,c,d,u,f,s,r,f>=u?1:-1,u),S=Math.abs(c-i),C=c>i?1:-1,_=b>u?1:-1,y=d>c?1:-1,L=f>b?1:-1,P=Math.min(Le,Math.abs(S)/2||Le,Math.abs(b-u)/2||Le,Math.abs(d-c)/2||Le,Math.abs(f-b)/2||Le);return S<2?{d:[`M ${i} ${u}`,`L ${i} ${b-P*_}`,`Q ${i} ${b} ${i+P*y} ${b}`,`L ${d-P*y} ${b}`,`Q ${d} ${b} ${d} ${b+P*L}`,`L ${d} ${f}`].join(" "),segments:Ao(i,u,d,f,b)}:{d:[`M ${i} ${u}`,`L ${c-P*C} ${u}`,`Q ${c} ${u} ${c} ${u+P*_}`,`L ${c} ${b-P*_}`,`Q ${c} ${b} ${c+P*y} ${b}`,`L ${d-P*y} ${b}`,`Q ${d} ${b} ${d} ${b+P*L}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"horizontal",x1:i,y1:u,x2:c,y2:u},{orientation:"vertical",x1:c,y1:u,x2:c,y2:b},{orientation:"horizontal",x1:c,y1:b,x2:d,y2:b},{orientation:"vertical",x1:d,y1:b,x2:d,y2:f}]}}function ai(e){switch(e){case"outboard-left":case"sidebar-left":return"right";case"outboard-right":case"sidebar-right":return"left";case"below-row":return"top";default:return"left"}}function ht(e,t,n){if((n&&n.type==="model"?n.placementMode:void 0)==="below-row"){const r=e.x+e.width/2,u=(n?n.x+n.width/2:r)>=r?"right":"left";return{side:u,x:u==="right"?e.x+e.width:e.x,y:pt(e,t)}}if(n?.type==="model"&&oi(e))return{side:"left",x:e.x,y:pt(e,t)};const a=e.x+e.width/2,s=(n?n.x+n.width/2:a)>=a?"right":"left";return{side:s,x:s==="right"?e.x+e.width:e.x,y:pt(e,t)}}function oi(e){return e.type==="prompt"||e.type==="side"&&e.data.mode==="ai"||e.type==="tool"&&e.data.kind==="prompt"}const Qe=8,bn=6,ri=12,Ja=6;function qe(e){return e.x+e.width/2}function si(e){const t=[];for(const a of e){const l=t[t.length-1];l&&Math.abs(l.x-a.x)<1&&Math.abs(l.y-a.y)<1||t.push(a)}if(t.length===0)return"";if(t.length===1)return`M ${t[0].x} ${t[0].y}`;const n=[`M ${t[0].x} ${t[0].y}`];for(let a=1;a<t.length-1;a++){const l=t[a-1],s=t[a],r=t[a+1],i=Math.abs(s.x-l.x)+Math.abs(s.y-l.y),u=Math.abs(r.x-s.x)+Math.abs(r.y-s.y),d=Math.min(Le,i/2,u/2);if(d<1){n.push(`L ${s.x} ${s.y}`);continue}const f=Math.sign(s.x-l.x),v=Math.sign(s.y-l.y),x=Math.sign(r.x-s.x),g=Math.sign(r.y-s.y),c={x:s.x-f*d,y:s.y-v*d},b={x:s.x+x*d,y:s.y+g*d};n.push(`L ${c.x} ${c.y}`),n.push(`Q ${s.x} ${s.y} ${b.x} ${b.y}`)}const o=t[t.length-1];return n.push(`L ${o.x} ${o.y}`),n.join(" ")}function li(e){if(e.length===0)return"";const t=[{x:e[0].x1,y:e[0].y1},...e.map(n=>({x:n.x2,y:n.y2}))];return si(t)}function Za(e){return e.length===0?"":[{x:e[0].x1,y:e[0].y1},...e.map(n=>({x:n.x2,y:n.y2}))].map((n,o)=>`${o===0?"M":"L"} ${n.x} ${n.y}`).join(" ")}function ii(e){return e==="tool"||e==="provider"||e==="mcp"}function di(e){return Math.round(e/ri)}function Jn(e){const t=[];for(let n=1;n<e.length;n++){const o=e[n-1],a=e[n];if(!(Math.abs(o.x-a.x)<1&&Math.abs(o.y-a.y)<1)){if(Math.abs(o.y-a.y)<1){t.push({orientation:"horizontal",x1:o.x,y1:o.y,x2:a.x,y2:o.y});continue}if(Math.abs(o.x-a.x)>=1&&Math.abs(o.y-a.y)>=1){t.push({orientation:"vertical",x1:o.x,y1:o.y,x2:o.x,y2:a.y}),t.push({orientation:"horizontal",x1:o.x,y1:a.y,x2:a.x,y2:a.y});continue}t.push({orientation:"vertical",x1:o.x,y1:o.y,x2:o.x,y2:a.y})}}return t}function eo(e,t,n,o,a,l,s){const r=a.rowLaneY,i=Jn([{x:e,y:t},{x:e,y:r},{x:n,y:r},{x:n,y:o}]),u=ui(e,t,r,l,s),d=ci(r,e,n,l,s)??fi(r,e,n,l,s),f=u??d;if(!f)return{d:Za(i),segments:i};const v=n<e?-1:1,x=bn+Math.abs(a.aisleOffset),g=v<0?f.x-x:f.x+f.width+x,c=f.y+f.height+bn,b=a.rowIndex>0?c:Math.min(a.sourceLaneY,Math.max(r+Qe/2,c)),S=r>=t?Math.max(t+Qe,a.escapeLaneY):Math.min(t-Qe,b),C=Jn([{x:e,y:t},{x:e,y:S},{x:g,y:S},{x:g,y:r},{x:n,y:r},{x:n,y:o}]);return{d:Za(C),segments:C}}function Lo(e,t){if(e.orientation!==t.orientation)return 0;if(e.orientation==="horizontal"){if(Math.abs(e.y1-t.y1)>1)return 0;const s=Math.min(e.x1,e.x2),r=Math.max(e.x1,e.x2),i=Math.min(t.x1,t.x2),u=Math.max(t.x1,t.x2);return Math.max(0,Math.min(r,u)-Math.max(s,i))}if(Math.abs(e.x1-t.x1)>1)return 0;const n=Math.min(e.y1,e.y2),o=Math.max(e.y1,e.y2),a=Math.min(t.y1,t.y2),l=Math.max(t.y1,t.y2);return Math.max(0,Math.min(o,l)-Math.max(n,a))}function ui(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,u=Number.POSITIVE_INFINITY;for(const d of o)if(!a.has(d.id)&&e>d.x+1&&e<d.x+d.width-1&&Math.max(l,d.y+1)<Math.min(s,d.y+d.height-1)){const f=r>0?d.y:d.y+d.height,v=Math.abs(f-t);v<u&&(i=d,u=v)}return i}function ci(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,u=Number.POSITIVE_INFINITY;for(const d of o)if(!a.has(d.id)&&e>d.y+1&&e<d.y+d.height-1&&Math.max(l,d.x+1)<Math.min(s,d.x+d.width-1)){const f=r>0?d.x:d.x+d.width,v=Math.abs(f-t);v<u&&(i=d,u=v)}return i}function fi(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,u=Number.POSITIVE_INFINITY;for(const d of o)if(!(a.has(d.id)||!d.id.includes("__model-"))&&e>d.y-Qe*4&&e<d.y+d.height+1&&Math.max(l,d.x+1)<Math.min(s,d.x+d.width-1)){const f=r>0?d.x:d.x+d.width,v=Math.abs(f-t);v<u&&(i=d,u=v)}return i}function hi(e){let t=0;for(let n=0;n<e.length;n++)for(let o=n+1;o<e.length;o++)for(const a of e[n].segments)for(const l of e[o].segments)ca(a,l)&&(t+=1e4),t+=Lo(a,l)*25;return t}function to(e,t){let n=0;for(const o of t)for(const a of e)for(const l of o.segments)ca(a,l)&&(n+=1e5),n+=Lo(a,l)*1e3;return n}function mi(e,t,n){return e.some(o=>o.orientation==="horizontal"?!!Ze(o.y1,o.x1,o.x2,t,n):!!Ct(o.x1,o.y1,o.y2,t,n))}function pi(e,t,n,o,a,l,s,r){const i=Ao(e,t,n,o,a);if(!mi(i,s,r))return{d:Gl(e,t,n,o,a),segments:i};const u=Eo(n+l,ua(a,o,s,r,10,10)),d=gn(o-Math.min(Math.max((o-a)/4,Be),48),u,n,a,o,s,r,-1,o),f=Jn([{x:e,y:t},{x:e,y:a},{x:u,y:a},{x:u,y:d},{x:n,y:d},{x:n,y:o}]);return{d:li(f),segments:f}}function no(e,t,n,o){return[...n,...Tt(e,t,o)]}function vi(e,t,n,o){const a=new Map;for(const x of e)a.set(x.id,x);const l=new Map,s=new Map;for(const x of t){if(!a.has(x.from)||!a.has(x.to))continue;const g=l.get(x.from);g?g.push(x):l.set(x.from,[x]);const c=s.get(x.to);c?c.push(x):s.set(x.to,[x])}for(const[,x]of l)x.sort((g,c)=>{const b=a.get(g.to),S=a.get(c.to);return b.x+b.width/2-(S.x+S.width/2)});for(const[,x]of s)x.sort((g,c)=>{const b=a.get(g.from),S=a.get(c.from);return b.x+b.width/2-(S.x+S.width/2)});const r=new Map,i=new Map;for(const[x,g]of l){const c=a.get(x);if(c.type==="agent"){g.forEach(b=>{const S=b.sideId==="a"?c.x+c.width*.25:c.x+c.width*.75;r.set(b.id,S)});continue}if(c.type==="side"&&g.some(b=>b.toolKind)){const S=c.data.tools||[],C=[];S.some(D=>D.kind==="tool"||D.kind==="provider"||D.kind==="mcp")&&C.push("function"),S.some(D=>D.kind==="prompt")&&C.push("prompt"),S.some(D=>D.kind==="subagent")&&C.push("subagent"),S.some(D=>D.kind==="handoff")&&C.push("handoff");const _=C.length>0?.45:1,y=C.length>0?(1-_)/C.length:0,L=new Map;for(const D of g){if(!D.toolKind||C.length===0)continue;const Z=D.toolKind==="tool"||D.toolKind==="provider"||D.toolKind==="mcp"?"function":D.toolKind,q=L.get(Z);q?q.push(D):L.set(Z,[D])}for(const[D,Z]of L)Z.sort((q,Y)=>{const G=a.get(q.to),B=a.get(Y.to);if(D==="function"){const M=G.y-B.y;if(Math.abs(M)>1)return M}return qe(G)-qe(B)});const P=o?.[c.id]?.toolColumns;for(const[D,Z]of L){let q,Y;const G=P?.[D];if(G)q=c.x+G.left,Y=c.x+G.left+G.width;else{const w=C.indexOf(D);if(w<0)continue;q=c.x+c.width*(_+w*y),Y=c.x+c.width*(_+(w+1)*y)}const B=q+Be,M=Y-Be,I=Z.length;Z.forEach((w,U)=>{const N=I===1?(q+Y)/2:B+(M-B)*U/(I-1);r.set(w.id,N)})}g.forEach(D=>{if(r.has(D.id))return;if(D.toolKind&&C.length>0){const Y=D.toolKind==="tool"||D.toolKind==="provider"||D.toolKind==="mcp"?"function":D.toolKind,G=C.indexOf(Y);if(G>=0){const B=_+G*y+y/2;r.set(D.id,c.x+c.width*B);return}}const Z=a.get(D.to),q=Z.x+Z.width/2;r.set(D.id,Math.max(c.x+Be,Math.min(c.x+c.width-Be,q)))});continue}g.forEach(b=>{const S=a.get(b.to),C=S.x+S.width/2;r.set(b.id,Math.max(c.x+Be,Math.min(c.x+c.width-Be,C)))})}for(const[x,g]of s){const c=a.get(x),b=c.x+c.width/2;g.forEach(S=>i.set(S.id,b))}for(const[x,g]of l){const c=a.get(x);if(!c||g.length<=1)continue;const b=new Map;for(const S of g){const C=r.get(S.id);if(C===void 0)continue;const _=Math.round(C),y=b.get(_);y?y.push(S):b.set(_,[S])}for(const[S,C]of b){if(C.length<=1)continue;C.sort((y,L)=>{const P=a.get(y.to),D=a.get(L.to);return qe(P)-qe(D)});const _=r.get(C[0].id)??S;C.forEach((y,L)=>{const P=(L-(C.length-1)/2)*Qe;r.set(y.id,Math.max(c.x+Be,Math.min(c.x+c.width-Be,_+P)))})}}const u=Array.from(a.values()),d=new Map;for(const x of t){const g=a.get(x.from),c=a.get(x.to);if(!g||!c)continue;const b=d.get(x.from);b?b.push(x):d.set(x.from,[x])}for(const[,x]of d)x.sort((g,c)=>{const b=a.get(g.to),S=a.get(c.to),C=b.y-S.y;return Math.abs(C)>1?C:b.x+b.width/2-(S.x+S.width/2)});const f=new Map,v=new Map;for(const[x,g]of d){const c=a.get(x);if(!c||c.type!=="side")continue;const b=g.filter(U=>ii(U.toolKind)).filter(U=>!!a.get(U.to)).sort((U,N)=>{const T=a.get(U.to),A=a.get(N.to),X=T.y-A.y;return Math.abs(X)>1?X:T.x+T.width/2-(A.x+A.width/2)});if(b.length<=1)continue;const S=b.reduce((U,N)=>U+(r.get(N.id)??qe(c)),0)/b.length,_=b.reduce((U,N)=>U+qe(a.get(N.to)),0)/b.length<S,y=[],L=new Map;for(const U of b){const N=a.get(U.to),T=di(N.y),A=L.get(T);if(A)A.push(U);else{const X=[U];L.set(T,X),y.push(X)}}y.sort((U,N)=>a.get(U[0].to).y-a.get(N[0].to).y);const P=Math.min(...b.map(U=>a.get(U.to).y)),D=c.y+c.height+8,Z=Math.max(D,P-8),q=b.length<=1?0:(Z-D)/(b.length-1);v.set(c.id,Z),y.forEach(U=>{U.sort((N,T)=>{const A=a.get(N.to),X=a.get(T.to);return qe(A)-qe(X)})});const Y=[...b].sort((U,N)=>(r.get(U.id)??qe(c))-(r.get(N.id)??qe(c))),G=_,B=!_,M=[];for(const U of[G,!G])for(const N of[B,!B])for(const T of[!1,!0])M.push({sourceReversed:U,rowReversed:N,aisleReversed:T,preference:(U===G?0:2)+(N===B?0:1)});let I=new Map,w=Number.POSITIVE_INFINITY;for(const U of M){const N=new Map,T=new Map;Y.forEach((se,fe)=>{N.set(se.id,fe),T.set(se.id,U.sourceReversed?b.length-1-fe:fe)});const A=new Map,X=y[0]?.length??0;y.forEach((se,fe)=>{const K=Math.min(...se.map(ve=>a.get(ve.to).y)),z=Math.max(D,K-34),te=Math.max(z,K-10),ie=se.length<=1?0:(te-z)/(se.length-1),de=_?1:-1;se.forEach((ve,ae)=>{const J=T.get(ve.id)??ae,p=U.rowReversed?se.length-1-ae:ae,$=U.aisleReversed?b.length-1-(N.get(ve.id)??ae):N.get(ve.id)??ae,V=fe===0&&se.length>1?D+ae*q:D+J*q,oe=N.get(ve.id)??ae,ce=fe===0?Math.max(V,z+p*ie-Qe/2):Z-Qe+Math.max(0,oe-X)*2,ne=_?c.x+c.width+bn:c.x-bn,re=(_?1:-1)*$*Qe,xe=z+p*ie,ke=Math.min(K-4,Math.max(xe,V+Qe/2));A.set(ve.id,{rowIndex:fe,sourceLaneY:V,escapeLaneY:ce,rowLaneY:ke,aisleX:ne,aisleOffset:re,aisleDirection:de})})});const F=b.map(se=>{const fe=a.get(se.to),K=r.get(se.id)??qe(c),z=c.y+c.height,te=i.get(se.id)??qe(fe),ie=fe.y,de=new Set([c.id,fe.id]),ve=no(c,fe,u,n);return eo(K,z,te,ie,A.get(se.id),ve,de)}),pe=hi(F)+U.preference;pe<w&&(w=pe,I=A)}for(const[U,N]of I)f.set(U,N)}return t.map(x=>{const g=a.get(x.from),c=a.get(x.to);if(!g||!c)return null;const b=r.get(x.id)??g.x+g.width/2,S=g.y+g.height,C=i.get(x.id)??c.x+c.width/2,_=c.y,y=d.get(x.from)??[x],P=Math.max(0,y.findIndex(w=>w.id===x.id))-(y.length-1)/2,D=S+Math.min((_-S)/2,24)+P*Qe,q=v.get(x.from)&&g.type==="side"&&!f.has(x.id)?S:D,Y=[...u,...Tt(g,c,n)],G=new Set([g.id,c.id]),B=f.get(x.id),M=B?no(g,c,u,n):Y,I=B?eo(b,S,C,_,B,M,G):pi(b,S,C,_,Wn(q,b,C,S,_,Y,G),P*Qe,Y,G);return{id:x.id,d:I.d,sideId:x.sideId,kind:x.kind??"structural",toolKind:x.toolKind,sourceAnchor:{side:"bottom",x:b,y:S},targetAnchor:{side:"top",x:C,y:_},segments:I.segments}}).filter(x=>!!x)}function gi(e,t,n,o,a,l,s,r){if(e.length<=1)return t;const i=No(t);let u=t,d=Number.POSITIVE_INFINITY;for(const f of i){const v=e.map((g,c)=>{const b=a.get(g.from),S=ht(b,l,n);return ql(S.x,S.y,s.get(g.id)??S.x,r.get(g.id)??S.y,f[c],o)});let x=0;for(let g=0;g<v.length;g++)for(let c=g+1;c<v.length;c++)for(const b of v[g])for(const S of v[c])ca(b,S)&&(x+=1e3);x+=f.reduce((g,c,b)=>{const S=e[b];return g+Math.abs(c-(s.get(S.id)??c))},0),x<d&&(d=x,u=f)}return u}function xi(e,t,n){return{side:t,x:t==="right"?e.x+e.width:e.x,y:pt(e,n)}}function ln(e,t){let n=0;for(const o of e)for(const a of t){if(o.orientation==="horizontal"){const r=Math.min(o.x1,o.x2),i=Math.max(o.x1,o.x2);if(o.y1>=a.y&&o.y1<=a.y+a.height&&Math.max(r,a.x)<Math.min(i,a.x+a.width)){n++;break}continue}const l=Math.min(o.y1,o.y2),s=Math.max(o.y1,o.y2);if(o.x1>=a.x&&o.x1<=a.x+a.width&&Math.max(l,a.y)<Math.min(s,a.y+a.height)){n++;break}}return n}function ao(e){return e.reduce((t,n)=>t+Math.abs(n.x2-n.x1)+Math.abs(n.y2-n.y1),0)}function bi(e,t,n,o,a=[],l=[]){const s=new Map;for(const g of e)s.set(g.id,g);const r=Array.from(s.values()),i=new Map;for(const g of t){const c=s.get(g.to);if(!c||c.type!=="model")continue;const b=c.placementMode,S=`${c.id}|${b??"side"}`,C=i.get(S);C?C.push(g):i.set(S,[g])}const u=new Map,d=new Map,f=new Map,v=new Map;for(const[,g]of i){const c=s.get(g[0].to),b=c.placementMode,S=ai(b),C=[...g];if(S==="top"){C.sort((X,F)=>{const pe=s.get(X.from),se=s.get(F.from);return pe.x+pe.width/2-(se.x+se.width/2)});const y=c.x+c.width/2,L=C.filter(X=>{const F=s.get(X.from);return F.x+F.width/2<y}),P=C.filter(X=>{const F=s.get(X.from);return F.x+F.width/2>=y}),D=[...L].reverse(),Z=[...P],q=[...D,...Z],Y=Ya(c,q.length,"top"),G=q.every(X=>c.y>=ht(s.get(X.from),o,c).y),B=G?Math.max(...q.map(X=>{const F=s.get(X.from),pe=ht(F,o,c),se=F.y+F.height+Ee+We,fe=Xn(F,c,n,se,!0);return gn(fe,pe.x,c.x+c.width/2,pe.y,c.y,Ft([...r,...Tt(F,c,n),...fn(F,c,n)],rn,sn),new Set([F.id,c.id]),1,pe.y)})):Math.min(...q.map(X=>{const F=s.get(X.from),pe=ht(F,o,c),se=F.y-Ee-We,fe=Xn(F,c,n,se,!1);return gn(fe,pe.x,c.x+c.width/2,pe.y,c.y,Ft([...r,...Tt(F,c,n),...fn(F,c,n)],rn,sn),new Set([F.id,c.id]),-1,pe.y)})),M=Ga(q.length,Pe),I=M[M.length-1]??0,w=c.y-Fl,U=G?w-I:B,N=[{isLeftApproach:!0,edges:L,startIndex:0,assignOrder:(X,F)=>{const pe=s.get(X.from);return s.get(F.from).x-pe.x}},{isLeftApproach:!1,edges:P,startIndex:D.length,assignOrder:(X,F)=>{const pe=s.get(X.from),se=s.get(F.from);return pe.x-se.x}}];for(const X of N){const F=X.edges;if(F.length===0)continue;const pe=[...F].sort(X.assignOrder),se=[];for(const fe of pe){const K=s.get(fe.from),z=ht(K,o,c),te=f.get(fe.id)??U,ie=new Set([K.id,c.id]),de=Ft([...r,...Tt(K,c,n)],rn,sn);let ve=ei(K,z,te,c.x+c.width/2,de,ie);const ae=Math.min(z.y,te),J=Math.max(z.y,te);for(let p=0;p<6;p++){const $=se.find(oe=>Math.max(ae,oe.minY)<Math.min(J,oe.maxY)&&Math.abs(ve-oe.exitX)<Pe);if(!$)break;const V=$.exitX<=z.x?-1:1;ve=Yt($.exitX+V*Pe,z.y,te,de,ie,V,z.x,rt,rt)}v.set(fe.id,ve),se.push({exitX:ve,minY:ae,maxY:J})}}[...q].sort((X,F)=>{const pe=s.get(X.from),se=s.get(F.from),fe=pe.x+pe.width/2,K=se.x+se.width/2,z=fe<y,te=K<y,ie=v.get(X.id)??fe,de=v.get(F.id)??K;return z!==te?Math.abs(ie-y)-Math.abs(de-y):z?G?de-ie:ie-de:G?ie-de:de-ie}).forEach((X,F)=>f.set(X.id,G?U+M[F]:U-M[F]));const A=gi(q,Y,c,c.y,s,o,v,f);q.forEach((X,F)=>u.set(X.id,{side:"top",x:A[F],y:c.y}));continue}C.sort((y,L)=>{const P=s.get(y.from),D=s.get(L.from),Z=pt(P,o)-pt(D,o);return Z!==0?Z:P.x+P.width/2-(D.x+D.width/2)});const _=Ya(c,C.length,S);if(C.forEach((y,L)=>{const P=pt(c,o),D=C.length===1?ht(s.get(y.from),o,c).y:null;u.set(y.id,{side:S,x:S==="left"?c.x:c.x+c.width,y:C.length===1&&D!==null&&Math.abs(D-P)<=Xl?D:C.length===1?P:_[L]})}),C.length>1){const y=new Set([c.id,...C.map(G=>G.from)]),L=[...r,...n.filter(G=>![{x:c.x+c.width/2,y:c.y+c.height/2},...C.map(M=>{const I=s.get(M.from);return{x:I.x+I.width/2,y:I.y+I.height/2}})].some(M=>M.x>=G.x&&M.x<=G.x+G.width&&M.y>=G.y&&M.y<=G.y+G.height)).map(kn),...a],P=C.map(G=>u.get(G.id).y),D=S==="left"?c.x-(Be+24):c.x+c.width+Be+24,Z=Io(D,Math.min(...P),Math.max(...P),L,y),q=Ga(C.length,Pe),Y=S==="left"?-1:1;C.forEach((G,B)=>d.set(G.id,Z+Y*q[B]))}}const x=[];return t.map(g=>{if(g.from===g.to)return null;const c=s.get(g.from),b=s.get(g.to);if(!c||!b||b.type!=="model")return null;const S=ht(c,o,b),C=u.get(g.id);if(!C)return null;const y=[...Ft([...r,...Tt(c,b,n),...fn(c,b,n)],rn,sn),...a],L=new Set([c.id,b.id]),P=Ft(r.filter(N=>!L.has(N.id)),Ja,Ja),D=C.y>=S.y,Z=D?c.y+c.height+Ee+We:c.y-Ee-We,q=Xn(c,b,n,Z,D),Y=f.get(g.id)??q;let G=S,B=null;const M=S.side,w=[S,xi(c,M==="left"?"right":"left",o)],U=[Y,Y-Pe,Y-Pe*2,Y-Pe*4,Y-Pe*8,Y-Pe*16,Y-Pe*24,Y+Pe,Y+Pe*2,Y+Pe*4,Y+Pe*8,Y+Pe*16,Y+Pe*24];if(C.side==="top"){let N=Number.POSITIVE_INFINITY;const T=v.get(g.id)??null,A=T===null?[null]:[T,null];for(const X of w)for(const F of A)for(const pe of U){const se=ni(c,X,C,pe,F,y,y,L),fe=to(se.segments,[...l,...x])+ln(se.segments,P)*5e4+ln(se.segments,a)*1e4+ao(se.segments)*.01+Math.abs(pe-Y)*.2+(X.side===M?0:25)+(F===T?0:10);fe<N&&(N=fe,G=X,B=se)}}if(!B){let N=Number.POSITIVE_INFINITY;const T=d.get(g.id)??null,A=T===null?[null]:[T,null],X=D?1:-1,F=[Y,Y+X*Pe,Y+X*Pe*2,Y+X*Pe*4,Y+X*Pe*8,Y-X*Pe];for(const pe of w)for(const se of A)for(const fe of F){const K=ti(c,pe,b,C,fe,se,y,L),z=to(K.segments,[...l,...x])+ln(K.segments,P)*5e4+ln(K.segments,a)*1e4+ao(K.segments)*.01+Math.abs(fe-Y)*.2+(pe.side===M?0:25)+(se===T?0:10);z<N&&(N=z,G=pe,B=K)}}return x.push({d:B.d,segments:B.segments}),{id:g.id,d:B.d,sideId:g.sideId,kind:"model",toolKind:g.toolKind,sourceAnchor:G,targetAnchor:C,segments:B.segments}}).filter(g=>!!g)}function yi(e){const t=Kl(e.edges),n=t.filter(l=>l.kind!=="model"),o=t.filter(l=>l.kind==="model"),a=vi(e.nodes,n,e.groups,e.nodeMetrics);return[...a,...bi(e.nodes,o,e.groups,e.nodeMetrics,Zl(a),a)]}const ki={class:"pointer-events-none absolute left-0 top-0 overflow-visible",width:"1",height:"1"},wi=["data-edge-id","data-edge-kind","data-edge-tool-kind","d","stroke-width","stroke-dasharray"],$i=_e({__name:"CanvasEdges",props:{nodes:{},edges:{},groups:{},selectedNodeId:{},hoveredNodeId:{},nodeMetrics:{}},setup(e){const t=e,n=R(()=>{const l=new Map;for(const s of t.edges)l.set(s.id,s);return l}),o=R(()=>yi({nodes:t.nodes,edges:t.edges,groups:t.groups,nodeMetrics:t.nodeMetrics}).map(l=>{const s=n.value.get(l.id);return{...l,highlighted:t.selectedNodeId===s?.from||t.selectedNodeId===s?.to,hovered:t.hoveredNodeId===s?.from||t.hoveredNodeId===s?.to}}));function a(l){return l.kind==="model"?l.hovered?"stroke-purple-500 dark:stroke-purple-400":l.highlighted?"stroke-purple-400 dark:stroke-purple-500":"stroke-neutral-400/60 dark:stroke-neutral-500/50":l.toolKind==="subagent"?l.hovered?"stroke-emerald-500 dark:stroke-emerald-400":l.highlighted?"stroke-emerald-400 dark:stroke-emerald-500":"stroke-neutral-300 dark:stroke-neutral-700":l.sideId==="a"?l.hovered?"stroke-sky-500 dark:stroke-sky-400":l.highlighted?"stroke-sky-400 dark:stroke-sky-500":"stroke-neutral-300 dark:stroke-neutral-700":l.hovered?"stroke-amber-500 dark:stroke-amber-400":l.highlighted?"stroke-amber-400 dark:stroke-amber-500":"stroke-neutral-300 dark:stroke-neutral-700"}return(l,s)=>(h(),k("svg",ki,[(h(!0),k(Me,null,Ce(o.value,r=>(h(),k("path",{key:r.id,"data-edge-id":r.id,"data-edge-kind":r.kind,"data-edge-tool-kind":r.toolKind,d:r.d,class:le(a(r)),"stroke-width":r.hovered?2.25:r.highlighted?2:1.5,"stroke-dasharray":r.kind==="model"?"4 4":void 0,fill:"none"},null,10,wi))),128))]))}}),Mi={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ti(e,t){return h(),k("svg",Mi,[...t[0]||(t[0]=[m("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14"},null,-1)])])}const Si=it({name:"lucide-minus",render:Ti}),Ci={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function _i(e,t){return h(),k("svg",Ci,[...t[0]||(t[0]=[m("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3m8 0h3a2 2 0 0 0 2-2v-3"},null,-1)])])}const Ii=it({name:"lucide-maximize",render:_i}),Ei={class:"absolute bottom-4 left-4 z-10 flex items-center gap-1 rounded-lg border border-neutral-200 bg-white/90 p-1 shadow-sm backdrop-blur-sm dark:border-neutral-700 dark:bg-neutral-900/90"},Ni={class:"min-w-[3rem] text-center text-[11px] font-medium tabular-nums text-neutral-500 dark:text-neutral-400"},Ai=_e({__name:"CanvasControls",props:{scalePercent:{}},emits:["zoom-in","zoom-out","fit-view"],setup(e){return(t,n)=>(h(),k("div",Ei,[m("button",{class:"flex h-7 w-7 items-center justify-center rounded transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-800",title:"Zoom out",onClick:n[0]||(n[0]=o=>t.$emit("zoom-out"))},[Q(E(Si),{class:"h-3.5 w-3.5"})]),m("span",Ni,j(e.scalePercent)+"% ",1),m("button",{class:"flex h-7 w-7 items-center justify-center rounded transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-800",title:"Zoom in",onClick:n[1]||(n[1]=o=>t.$emit("zoom-in"))},[Q(E(ho),{class:"h-3.5 w-3.5"})]),n[3]||(n[3]=m("div",{class:"mx-0.5 h-4 w-px bg-neutral-200 dark:bg-neutral-700"},null,-1)),m("button",{class:"flex h-7 w-7 items-center justify-center rounded transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-800",title:"Fit to view",onClick:n[2]||(n[2]=o=>t.$emit("fit-view"))},[Q(E(Ii),{class:"h-3.5 w-3.5"})])]))}}),Xe=_e({__name:"EditRegion",props:{target:{},active:{type:Boolean},as:{},editData:{},positioned:{type:Boolean,default:!0}},emits:["open","hover-target"],setup(e,{emit:t}){const n=e,o=t;function a(r,i,u){o("open",{target:r,anchorEl:i.currentTarget,editData:u})}function l(r,i){i.key!=="Enter"&&i.key!==" "||(i.preventDefault(),a(r,i,editData))}const s=R(()=>["group/edit-region cursor-pointer focus-visible:outline-none",n.positioned?"relative":""]);return(r,i)=>(h(),ue(tt(e.as||"div"),{role:"button",tabindex:"0","data-edit-active":e.active||null,class:le(s.value),onClick:i[0]||(i[0]=Te(u=>a(e.target,u,e.editData),["stop"])),onKeydown:i[1]||(i[1]=u=>l(e.target,u)),onMouseenter:i[2]||(i[2]=u=>o("hover-target",e.target)),onMouseleave:i[3]||(i[3]=u=>o("hover-target",null))},{default:be(()=>[i[4]||(i[4]=m("div",{class:"composition-edit-region-overlay"},null,-1)),es(r.$slots,"default")]),_:3},40,["data-edit-active","class"]))}}),Pi={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Li(e,t){return h(),k("svg",Pi,[...t[0]||(t[0]=[m("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 21s-4-3-4-9s4-9 4-9m8 0s4 3 4 9s-4 9-4 9M15 9l-6 6m0-6l6 6"},null,-1)])])}const Zn=it({name:"lucide-variable",render:Li}),Ri={key:0,class:"mt-1.5 w-full border-collapse text-[11px]"},Oi={key:0,class:"ml-1 rounded bg-sky-100 px-1 py-px text-[9px] font-semibold uppercase tracking-wide text-sky-700 dark:bg-sky-950/50 dark:text-sky-300"},ha=_e({__name:"VariablesList",props:{variables:{},muted:{type:Boolean},flaggedNames:{default:()=>[]},flagLabel:{default:"env"}},setup(e){const t=e,n=R(()=>new Set(t.flaggedNames));return(o,a)=>(h(),k("div",null,[m("div",{class:le(["flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em]",t.muted?"opacity-50":"text-neutral-400 dark:text-neutral-500"])},[Q(E(Zn),{class:"h-3 w-3"}),a[0]||(a[0]=me(" Variables ",-1))],2),t.variables.length>0?(h(),k("table",Ri,[(h(!0),k(Me,null,Ce(t.variables,l=>(h(),k("tr",{key:l.name},[m("td",{class:le(["whitespace-nowrap pr-4 py-px font-mono",t.muted?"opacity-80":"text-neutral-800 dark:text-neutral-200"])},[m("span",null,j(l.name),1),n.value.has(l.name)?(h(),k("span",Oi,j(t.flagLabel),1)):W("",!0)],2),m("td",{class:le(["whitespace-nowrap py-px text-right",t.muted?"opacity-40":"text-neutral-400 dark:text-neutral-500"])},j(l.type)+j(l.required?" *":""),3)]))),128))])):(h(),k("div",{key:1,class:le(["mt-1.5 text-[11px] italic",t.muted?"opacity-40":"text-neutral-400 dark:text-neutral-600"])}," None ",2))]))}}),Di="ring-2 agents-ring-selected ring-offset-2 ring-offset-white shadow-md dark:ring-offset-neutral-900",Bi="ring-[3px] agents-ring-selected ring-offset-[6px] ring-offset-white shadow-lg dark:ring-offset-neutral-950";function lt(e,t){return e?Di:t?Bi:""}const Vi={class:"flex border-b border-neutral-200 dark:border-neutral-700"},Hi={class:"flex items-center justify-between gap-3 px-5 pt-3.5 pb-2"},Ui={key:0,class:"ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold tracking-wider"},zi={class:"flex items-center gap-3.5 px-5 pt-1 pb-3.5"},Fi={class:"min-w-0"},ji={class:"whitespace-nowrap text-[16px] font-semibold leading-tight"},Xi={class:"mt-0.5 whitespace-nowrap font-mono text-xs text-neutral-400 dark:text-neutral-500"},Ki={key:0,class:"px-5 pb-3"},Yi={key:0,class:"mb-2 flex flex-wrap gap-1"},qi={key:1,class:"max-w-[280px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Gi={class:"mt-1 max-w-[280px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Wi={class:"mt-auto grid grid-cols-[1fr_1px_1fr] border-t border-neutral-200 dark:border-neutral-700"},Qi={class:"flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.15em] text-sky-600 dark:text-sky-400"},Ji={key:0,class:"mt-0.5 whitespace-nowrap font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},Zi={key:1,class:"mt-0.5 text-[11px] text-neutral-400 dark:text-neutral-500"},ed={key:2,class:"mt-1.5 grid grid-cols-[auto_1fr] gap-x-3 text-[11px]"},td={class:"whitespace-nowrap py-[1px] text-neutral-400 dark:text-neutral-500"},nd=["title"],ad={class:"flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.15em] text-amber-600 dark:text-amber-400"},od={key:0,class:"mt-0.5 whitespace-nowrap font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},rd={key:1,class:"mt-0.5 text-[11px] text-neutral-400 dark:text-neutral-500"},sd={key:2,class:"mt-1.5 grid grid-cols-[auto_1fr] gap-x-3 text-[11px]"},ld={class:"whitespace-nowrap py-[1px] text-neutral-400 dark:text-neutral-500"},id=["title"],Ro=_e({__name:"AgentLockupCard",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{},borderClass:{default:"border-neutral-900 dark:border-neutral-300"},backgroundClass:{default:"bg-white dark:bg-neutral-950"},actionLabel:{default:null},kindLabel:{default:null},accentTextClass:{default:null}},emits:["select","action","edit-surface","hover-edit-target"],setup(e,{emit:t}){const n=e,o=t,{activeSurface:a}=Gt();function l(N){const T=a.value?.target;return!T||T.entityType!=="agent"||T.entityId!==n.data.name?!1:T.section===N}function s(N){if(l(N))return!0;const T=n.hoveredEditTarget;return!T||T.entityType!=="agent"||T.entityId!==n.data.name?!1:T.section===N}function r(N){return{entityType:"agent",entityId:n.data.name,section:N}}const i=R(()=>Kt(n.data.side_a_backing,n.data.side_b_backing)),u=R(()=>n.kindLabel?n.kindLabel:n.data._isSubagent?"Sub-agent":"Agent"),d=R(()=>n.accentTextClass?n.accentTextClass:n.data._isSubagent?"text-emerald-600 dark:text-emerald-400":"text-neutral-500 dark:text-neutral-400"),f=R(()=>hn("a",n.data.side_a_backing,n.data.side_a_label)),v=R(()=>hn("b",n.data.side_b_backing,n.data.side_b_label));function x(N){return N==="human"?oa:N==="handler"?mo:ot}const g=R(()=>x(n.data.side_a_backing)),c=R(()=>x(n.data.side_b_backing)),b=R(()=>n.data.side_a_backing==="prompt"),S=R(()=>n.data.side_b_backing==="prompt"),C=R(()=>n.data.side_a_backing==="handler"?n.data.side_a_handler||null:b.value?n.data.side_a_agent_prompt:null),_=R(()=>n.data.side_b_backing==="handler"?n.data.side_b_handler||null:S.value?n.data.side_b_agent_prompt:null),y=R(()=>w({stopOnResponse:n.data.side_a_stop_on_response,stopTool:n.data.side_a_stop_tool,maxSteps:n.data.side_a_max_steps,endConversationTool:n.data.side_a_session_stop_tool})),L=R(()=>w({stopOnResponse:n.data.side_b_stop_on_response,stopTool:n.data.side_b_stop_tool,maxSteps:n.data.side_b_max_steps,endConversationTool:n.data.side_b_session_stop_tool})),P=R(()=>n.data._variables||[]),D=R(()=>Object.keys(n.data.env||{}).filter(N=>N.trim().length>0)),Z=R(()=>{const N=new Set(P.value.map(T=>T.name));return D.value.filter(T=>N.has(T))}),q=R(()=>n.data.expose_as_tool&&n.data.tool_description?.trim()||null),Y=R(()=>n.data._isSubagent&&q.value?q.value:n.data.description||null),G=R(()=>!n.data._isSubagent&&!!q.value),B=R(()=>{const N=n.data.max_session_turns;return typeof N!="number"?null:`max ${N} session turn${N===1?"":"s"}`}),M=R(()=>{const N=[];return n.data.expose_as_tool&&!n.data._isSubagent&&N.push("tool"),B.value&&N.push(B.value),D.value.length>0&&N.push(`${D.value.length} env override${D.value.length===1?"":"s"}`),N}),I=R(()=>!!Y.value||G.value||M.value.length>0);function w(N){return[{key:"stop_on_response",label:"Stop on response",value:N.stopOnResponse?"On":"Off",active:N.stopOnResponse},{key:"stop_tool",label:"Stop tool",value:N.stopTool||"Off",active:!!N.stopTool},{key:"max_steps",label:"Max steps",value:U(N.maxSteps),active:N.maxSteps!==null&&N.maxSteps!==void 0},{key:"end_conversation",label:"End conversation tool",value:N.endConversationTool||"Off",active:!!N.endConversationTool}]}function U(N){return typeof N=="number"?String(N):"Unlimited"}return(N,T)=>(h(),k("div",{"data-canvas-node":"",class:le(["absolute flex flex-col rounded-xl border text-neutral-900 transition-shadow select-none dark:text-neutral-100",e.borderClass,e.backgroundClass,E(lt)(e.selected,e.hovered)]),style:{width:"max-content"}},[m("div",Vi,[Q(Xe,{class:"min-w-0 flex-1",target:r("identity"),active:s("identity"),onOpen:T[1]||(T[1]=A=>o("edit-surface",A)),onHoverTarget:T[2]||(T[2]=A=>o("hover-edit-target",A))},{default:be(()=>[m("div",Hi,[m("div",{class:le(["flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.2em]",d.value])},[Q(E(ot),{class:"h-3 w-3"}),m("span",null,j(u.value),1),i.value?(h(),k("span",Ui,j(i.value),1)):W("",!0)],2),e.actionLabel?(h(),k("button",{key:0,type:"button",class:"shrink-0 rounded-md border border-neutral-200 px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.16em] text-neutral-500 transition-colors hover:border-neutral-300 hover:text-neutral-800 dark:border-neutral-700 dark:text-neutral-400 dark:hover:border-neutral-500 dark:hover:text-neutral-100",onClick:T[0]||(T[0]=Te(A=>N.$emit("action"),["stop"]))},j(e.actionLabel),1)):W("",!0)]),m("div",zi,[Q(aa,{icon:e.data.icon,seed:e.data.name,class:"h-10 w-10 shrink-0 rounded-lg object-cover"},null,8,["icon","seed"]),m("div",Fi,[m("div",ji,j(e.data.title),1),m("div",Xi,j(e.data.name),1)])]),I.value?(h(),k("div",Ki,[M.value.length>0?(h(),k("div",Yi,[(h(!0),k(Me,null,Ce(M.value,A=>(h(),k("span",{key:A,class:"rounded-md bg-neutral-100 px-1.5 py-px font-mono text-[10px] lowercase tracking-wide text-neutral-500 dark:bg-neutral-900 dark:text-neutral-400"},j(A),1))),128))])):W("",!0),Y.value?(h(),k("p",qi,j(Y.value),1)):W("",!0),G.value?(h(),k("div",{key:2,class:le(Y.value?"mt-2":"")},[T[9]||(T[9]=m("div",{class:"text-[10px] font-bold uppercase tracking-[0.16em] text-neutral-400 dark:text-neutral-500"}," Tool use ",-1)),m("p",Gi,j(q.value),1)],2)):W("",!0)])):W("",!0)]),_:1},8,["target","active"]),Q(Xe,{"data-variables-section":"",class:"shrink-0 border-l border-neutral-200 px-4 py-3 dark:border-neutral-700",target:r("variables"),active:s("variables"),onOpen:T[3]||(T[3]=A=>o("edit-surface",A)),onHoverTarget:T[4]||(T[4]=A=>o("hover-edit-target",A))},{default:be(()=>[Q(ha,{variables:P.value,"flagged-names":Z.value,"flag-label":"env"},null,8,["variables","flagged-names"])]),_:1},8,["target","active"])]),m("div",Wi,[Q(Xe,{class:"px-3 py-2",target:r("side-a"),active:s("side-a"),onOpen:T[5]||(T[5]=A=>o("edit-surface",A)),onHoverTarget:T[6]||(T[6]=A=>o("hover-edit-target",A))},{default:be(()=>[m("div",Qi,[(h(),ue(tt(g.value),{class:"h-3 w-3"})),me(" "+j(f.value),1)]),C.value?(h(),k("div",Ji,j(C.value),1)):(h(),k("div",Zi,j(e.data.side_a_backing==="human"?"Human input":"No prompt"),1)),b.value?(h(),k("dl",ed,[(h(!0),k(Me,null,Ce(y.value,A=>(h(),k(Me,{key:A.key},[m("dt",td,j(A.label),1),m("dd",{class:le(["whitespace-nowrap py-[1px] text-right font-mono",A.active?"text-sky-600 dark:text-sky-400":"text-neutral-400 dark:text-neutral-600"]),title:A.value},j(A.value),11,nd)],64))),128))])):W("",!0)]),_:1},8,["target","active"]),T[10]||(T[10]=m("div",{class:"bg-neutral-200 dark:bg-neutral-700"},null,-1)),Q(Xe,{class:"px-3 py-2",target:r("side-b"),active:s("side-b"),onOpen:T[7]||(T[7]=A=>o("edit-surface",A)),onHoverTarget:T[8]||(T[8]=A=>o("hover-edit-target",A))},{default:be(()=>[m("div",ad,[(h(),ue(tt(c.value),{class:"h-3 w-3"})),me(" "+j(v.value),1)]),_.value?(h(),k("div",od,j(_.value),1)):(h(),k("div",rd,j(e.data.side_b_backing==="human"?"Human input":"No prompt"),1)),S.value&&e.data.side_b_agent_prompt?(h(),k("dl",sd,[(h(!0),k(Me,null,Ce(L.value,A=>(h(),k(Me,{key:A.key},[m("dt",ld,j(A.label),1),m("dd",{class:le(["whitespace-nowrap py-[1px] text-right font-mono",A.active?"text-amber-600 dark:text-amber-400":"text-neutral-400 dark:text-neutral-600"]),title:A.value},j(A.value),11,id)],64))),128))])):W("",!0)]),_:1},8,["target","active"])])],2))}}),dd=_e({__name:"AgentNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{}},emits:["select","edit-surface","hover-edit-target"],setup(e){return(t,n)=>(h(),ue(Ro,{data:e.data,selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,onSelect:n[0]||(n[0]=o=>t.$emit("select")),onEditSurface:n[1]||(n[1]=o=>t.$emit("edit-surface",o)),onHoverEditTarget:n[2]||(n[2]=o=>t.$emit("hover-edit-target",o))},null,8,["data","selected","hovered","hovered-edit-target"]))}}),ud={},cd={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"1em",height:"1em",viewBox:"0 0 128 128",fill:"none",style:{transform:"translateY(-0.1em)"}};function fd(e,t){return h(),k("svg",cd,[...t[0]||(t[0]=[m("rect",{width:"128",height:"128",rx:"6",fill:"#3178c6"},null,-1),m("path",{fill:"#fff","fill-rule":"evenodd","clip-rule":"evenodd",d:"m74.2622 99.468v14.026c2.2724 1.168 4.9598 2.045 8.0625 2.629 3.1027.585 6.3728.877 9.8105.877 3.3503 0 6.533-.321 9.5478-.964 3.016-.643 5.659-1.702 7.932-3.178 2.272-1.476 4.071-3.404 5.397-5.786 1.325-2.381 1.988-5.325 1.988-8.8313 0-2.5421-.379-4.7701-1.136-6.6841-.758-1.9139-1.85-3.6159-3.278-5.1062-1.427-1.4902-3.139-2.827-5.134-4.0104-1.996-1.1834-4.246-2.3011-6.752-3.353-1.8352-.7597-3.4812-1.4975-4.9378-2.2134-1.4567-.7159-2.6948-1.4464-3.7144-2.1915-1.0197-.7452-1.8063-1.5341-2.3598-2.3669-.5535-.8327-.8303-1.7751-.8303-2.827 0-.9643.2476-1.8336.7429-2.6079s1.1945-1.4391 2.0976-1.9943c.9031-.5551 2.0101-.9861 3.3211-1.2929 1.311-.3069 2.7676-.4603 4.3699-.4603 1.1658 0 2.3958.0877 3.6928.263 1.296.1753 2.6.4456 3.911.8109 1.311.3652 2.585.8254 3.824 1.3806 1.238.5552 2.381 1.198 3.43 1.9285v-13.1051c-2.127-.8182-4.45-1.4245-6.97-1.819s-5.411-.5917-8.6744-.5917c-3.3211 0-6.4674.3579-9.439 1.0738-2.9715.7159-5.5862 1.8336-7.844 3.353-2.2578 1.5195-4.0422 3.4553-5.3531 5.8075-1.311 2.3522-1.9665 5.1646-1.9665 8.4373 0 4.1785 1.2017 7.7433 3.6052 10.6945 2.4035 2.9513 6.0523 5.4496 10.9466 7.495 1.9228.7889 3.7145 1.5633 5.375 2.323 1.6606.7597 3.0954 1.5486 4.3044 2.3668s2.1628 1.7094 2.8618 2.6736c.7.9643 1.049 2.06 1.049 3.2873 0 .9062-.218 1.7462-.655 2.5202s-1.1 1.446-1.9885 2.016c-.8886.57-1.9956 1.016-3.3212 1.337-1.3255.321-2.8768.482-4.6539.482-3.0299 0-6.0305-.533-9.0021-1.6-2.9715-1.066-5.7245-2.666-8.2591-4.799zm-23.5596-34.9136h18.2974v-11.5544h-51v11.5544h18.2079v51.4456h14.4947z"},null,-1)])])}const qt=po(ud,[["render",fd]]),hd={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function md(e,t){return h(),k("svg",hd,[...t[0]||(t[0]=[m("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[m("path",{d:"m18 5l-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2"}),m("path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506zM8 18h1"})],-1)])])}const Oo=it({name:"lucide-file-pen-line",render:md}),pd={class:"relative"},vd={class:"flex items-start gap-1.5"},gd=["aria-label"],xd={key:1,class:"mt-0.5 inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center"},bd={class:"min-w-0 flex-1"},yd={class:"flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-1"},kd={key:0,class:"text-[12px] leading-none font-semibold text-rose-500 dark:text-rose-400","aria-label":"Required"},wd={key:1,class:"rounded-md bg-neutral-100 px-1.5 py-px font-mono text-[10px] text-neutral-500 dark:bg-neutral-900 dark:text-neutral-400"},$d={key:0,class:"mt-0.5 max-w-[32rem] break-words text-[10px] leading-relaxed text-neutral-400 dark:text-neutral-500"},Md={key:0},Td=_e({__name:"DataTreeRow",props:{node:{},depth:{},collapsed:{}},emits:["toggle"],setup(e,{emit:t}){const n=e,o=t,a=R(()=>(n.node.children?.length??0)>0),l=R(()=>a.value?!n.collapsed.has(n.node.id):!1),s=R(()=>({paddingLeft:`${n.depth*20}px`})),r=R(()=>n.depth===0);return(i,u)=>{const d=vt("DataTreeRow",!0);return h(),k("div",pd,[m("div",{style:Re(s.value),class:"py-1.5"},[m("div",vd,[a.value?(h(),k("button",{key:0,type:"button",class:"mt-0.5 inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded text-neutral-400 transition-colors hover:bg-neutral-100 hover:text-neutral-600 dark:text-neutral-500 dark:hover:bg-neutral-900 dark:hover:text-neutral-300","aria-label":`${l.value?"Collapse":"Expand"} ${e.node.label}`,onClick:u[0]||(u[0]=Te(f=>o("toggle",e.node.id),["stop"]))},[Q(E(ko),{class:le(["h-3 w-3 transition-transform",l.value?"rotate-90":""])},null,8,["class"])],8,gd)):(h(),k("span",xd,[...u[2]||(u[2]=[m("span",{class:"inline-block h-1.5 w-1.5 rounded-full bg-neutral-300 dark:bg-neutral-600"},null,-1)])])),m("div",bd,[m("div",yd,[m("span",{class:le(["truncate font-mono",r.value?"text-[12px] text-neutral-900 dark:text-neutral-100":"text-[11px] text-neutral-700 dark:text-neutral-300"])},j(e.node.label),3),e.node.required?(h(),k("span",kd," * ")):W("",!0),e.node.value?(h(),k("span",wd,j(e.node.value),1)):W("",!0)]),e.node.description?(h(),k("div",$d,j(e.node.description),1)):W("",!0)])])],4),a.value&&l.value?(h(),k("div",Md,[(h(!0),k(Me,null,Ce(e.node.children,f=>(h(),ue(d,{key:f.id,node:f,depth:e.depth+1,collapsed:e.collapsed,onToggle:u[1]||(u[1]=v=>o("toggle",v))},null,8,["node","depth","collapsed"]))),128))])):W("",!0),a.value&&l.value?(h(),k("div",{key:1,class:"pointer-events-none absolute bottom-0 w-px bg-neutral-200 dark:bg-neutral-800",style:Re({top:"22px",left:`${e.depth*20+7}px`})},null,4)):W("",!0)])}}}),Sd={key:0,class:"text-[11px] italic text-neutral-400 dark:text-neutral-600"},Cd={key:1},Do=_e({__name:"DataTreeView",props:{nodes:{},emptyLabel:{default:"No fields"}},setup(e){const t=e,n=H(new Set);function o(l,s){for(const r of l)s(r),r.children?.length&&o(r.children,s)}Ae(()=>t.nodes,l=>{const s=new Set;o(l,r=>{(r.children?.length??0)>0&&!r.defaultExpanded&&s.add(r.id)}),n.value=s},{immediate:!0,deep:!0});function a(l){const s=new Set(n.value);s.has(l)?s.delete(l):s.add(l),n.value=s}return(l,s)=>e.nodes.length===0?(h(),k("div",Sd,j(e.emptyLabel),1)):(h(),k("div",Cd,[(h(!0),k(Me,null,Ce(e.nodes,r=>(h(),ue(Td,{key:r.id,node:r,depth:0,collapsed:n.value,onToggle:a},null,8,["node","collapsed"]))),128))]))}});function jt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function oo(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":Array.isArray(e)?`[${e.length}]`:typeof e=="object"?"{…}":"—"}function _d(e){return e?Array.isArray(e.enum)&&e.enum.length>0?`enum(${e.enum.length})`:Array.isArray(e.type)&&e.type.length>0?e.type.join(" | "):typeof e.type=="string"&&e.type.length>0?e.type:Array.isArray(e.oneOf)&&e.oneOf.length>0?`oneOf(${e.oneOf.length})`:Array.isArray(e.anyOf)&&e.anyOf.length>0?`anyOf(${e.anyOf.length})`:Array.isArray(e.allOf)&&e.allOf.length>0?`allOf(${e.allOf.length})`:e.properties&&typeof e.properties=="object"?"object":e.items?"array":"const"in e?"const":"value":"—"}function St(e,t,n,o=!1){const a=[];if(t.properties&&typeof t.properties=="object"){const s=new Set(Array.isArray(t.required)?t.required:[]);a.push(...Object.entries(t.properties).map(([r,i])=>St(r,jt(i)?i:{},`${n}.properties.${r}`,s.has(r))))}if(t.items){const s=Array.isArray(t.items)?t.items:[t.items];a.push(...s.map((r,i)=>St(s.length===1?"items":`item ${i+1}`,jt(r)?r:{},`${n}.items.${i}`,!0)))}for(const[s,r]of[["oneOf",t.oneOf],["anyOf",t.anyOf],["allOf",t.allOf]])!Array.isArray(r)||r.length===0||a.push(...r.map((i,u)=>St(`${s} ${u+1}`,jt(i)?i:{},`${n}.${s}.${u}`,!0)));jt(t.additionalProperties)&&a.push(St("additional",t.additionalProperties,`${n}.additional`,!1));const l=[];if(typeof t.description=="string"&&t.description.trim()&&l.push(t.description.trim()),Array.isArray(t.enum)&&t.enum.length>0){const s=t.enum.slice(0,3).map(oo).join(", "),r=t.enum.length>3?", …":"";l.push(s+r)}else"const"in t&&l.push(oo(t.const));return{id:n,label:e,value:_d(t),description:l.join(" • ")||null,required:o,children:a.length>0?a:void 0,defaultExpanded:n.split(".").length<=3}}function ma(e){if(!e||typeof e!="object")return[];const t=e.properties&&typeof e.properties=="object"?e.properties:null;if(t){const n=new Set(Array.isArray(e.required)?e.required:[]);return Object.entries(t).map(([o,a])=>St(o,jt(a)?a:{},`schema.${o}`,n.has(o)))}return[St("value",e,"schema.value",!0)]}function Id(e){const t=e.reasoning?.effort;return t==="low"||t==="medium"||t==="high"?t:"off"}function Ed(e){const t=e.reasoning?.maxTokens;return typeof t=="number"?t.toLocaleString():"—"}function Bo(e,t){const n=Id(e),o=[{key:"tool",label:"Tool",rows:[{kind:"value",label:"Tool choice",value:e.tool_choice,active:!0},{kind:"toggle",label:"Parallel calls",enabled:e.parallel_tool_calls}]},{key:"context",label:"Context",rows:[{kind:"toggle",label:"Chat history",enabled:e.include_chat},{kind:"toggle",label:"Past tool calls",enabled:e.include_past_tools},{kind:"toggle",label:"Reasoning in history",enabled:e.include_reasoning}]},{key:"reasoning",label:"Reasoning",rows:[{kind:"value",label:"Effort",value:n,active:n!=="off"},{kind:"value",label:"Max tokens",value:Ed(e),active:typeof e.reasoning?.maxTokens=="number"},{kind:"toggle",label:"Exclude from response",enabled:e.reasoning?.exclude===!0}]}];return t&&o.push({key:"response",label:"Response",rows:[{kind:"toggle",label:"Chat history",enabled:t.include_text_response!==!1},{kind:"toggle",label:"Tool calls",enabled:t.include_tool_calls!==!1},{kind:"toggle",label:"Errors",enabled:t.include_errors!==!1}]}),o}function ro(e,t){if(!e)return null;const n=t[e];if(n)return n;for(const o of Object.values(t))if(o.name===e)return o;return null}async function Vo(e){const[t,n]=await Promise.all([e.toolsCatalog?Promise.resolve(e.toolsCatalog):Je("/tools"),e.models?Promise.resolve(e.models):Je("/models").then(o=>Object.fromEntries(o.models.map(a=>[a.id,a])))]);return{toolsCatalog:t,models:n}}async function Nd(e,t={}){const n=await at(e);if(!n)return null;try{const{toolsCatalog:o,models:a}=await Vo(t);return Uo(n,{toolsCatalog:o,models:a})}catch{return{prompt:n,nestedTools:[],model:null}}}async function Ho(e,t={}){if(e.length===0)return[];const n=await Vo(t).catch(()=>null);return(await Promise.all(e.map(async a=>[a,await at(a)]))).map(([a,l])=>l?n?[a,Uo(l,n)]:[a,{prompt:l,nestedTools:[],model:null}]:[a,null])}function Uo(e,t){const n=e.tools.map(a=>ws(a,t.toolsCatalog,t.models)),o=ro(e.model_id,t.models)||ro(e.model_name,t.models);return{prompt:e,nestedTools:n,model:o}}async function zo(e){try{return(await Je(`/agents/${encodeURIComponent(e)}`)).agent}catch{return null}}async function Ad(e,t={}){const[n,o,a]=await Promise.all([e.kind==="tool"?bo(e.name):Promise.resolve(null),e.kind==="prompt"?Nd(e.name,t):Promise.resolve(null),e.kind==="handoff"?zo(e.name):Promise.resolve(null)]);return{functionTool:n,promptTool:o,handoffAgent:a}}async function Pd(e,t){const[n,o,a]=await Promise.all([Promise.all(e.functionTools.map(async l=>[l,await bo(l)])),Ho(e.promptTools,t),Promise.all(e.handoffs.map(async l=>[l,await zo(l)]))]);return{functionTools:Object.fromEntries(n),promptTools:Object.fromEntries(o),handoffs:Object.fromEntries(a)}}const Ld={class:"flex"},Rd={class:"flex min-w-0 flex-1 flex-col"},Od={class:"flex items-start justify-between gap-4 px-5 py-3.5"},Dd={class:"min-w-0 flex-1"},Bd={key:0,class:"ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold tracking-wider"},Vd={class:"mt-3"},Hd={class:"whitespace-nowrap font-mono text-[14px] font-semibold text-neutral-900 dark:text-neutral-100"},Ud={key:0,class:"mt-1 max-w-[220px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},zd={class:"flex shrink-0 items-start gap-2"},Fd=["onKeydown"],jd={"data-model-anchor":"",class:"flex items-center gap-3 rounded-lg border border-neutral-100 bg-neutral-50/80 px-3 py-2 dark:border-neutral-800 dark:bg-neutral-900/30"},Xd={class:"flex items-start gap-2"},Kd=["src"],Yd={class:"leading-tight"},qd={class:"whitespace-nowrap text-[13px] font-semibold text-neutral-900 dark:text-neutral-100"},Gd={class:"whitespace-nowrap font-mono text-[10px] text-neutral-400 dark:text-neutral-500"},Wd={key:0,class:"group relative border-l border-neutral-200 pl-3 dark:border-neutral-800"},Qd={class:"grid shrink-0 grid-cols-2 gap-x-1.5 gap-y-1","aria-label":"Model capabilities"},Jd=["aria-label"],Zd={role:"tooltip",class:"pointer-events-none invisible absolute right-0 top-full z-50 mt-2 w-max rounded-md border border-neutral-200 bg-white px-3 py-2 text-left shadow-lg opacity-0 transition-opacity group-hover:visible group-hover:opacity-100 dark:border-neutral-700 dark:bg-neutral-900"},eu={class:"grid grid-cols-[auto_1fr] items-center gap-x-2 gap-y-1 text-[11px]"},tu={class:"flex items-center"},nu={class:"flex min-h-0 flex-1"},au={class:"text-[9px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},ou={class:"mt-1 space-y-[2px] text-[11px]"},ru={class:"whitespace-nowrap text-neutral-500 dark:text-neutral-400"},su={class:"flex min-w-0 flex-1 flex-col border-l border-neutral-200 dark:border-neutral-700"},lu={class:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},iu={class:"flex shrink-0 min-w-[12rem] max-w-64 flex-col border-l border-neutral-200 dark:border-neutral-700"},du={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},uu={key:0,class:"mt-1.5 space-y-1"},cu={class:"flex flex-wrap items-center gap-x-1.5 gap-y-0.5"},fu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},hu={key:0,class:"rounded bg-amber-100 px-1 py-px font-mono text-[9px] lowercase tracking-wide text-amber-700 dark:bg-amber-950/50 dark:text-amber-300"},mu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},pu={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-fuchsia-500 dark:text-fuchsia-400"},vu={key:0,class:"mt-1.5 space-y-1"},gu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},xu={key:0,class:"mt-1 flex items-center gap-1.5 text-[10px] text-neutral-400 dark:text-neutral-500"},bu=["src"],yu={class:"font-medium text-neutral-500 dark:text-neutral-400"},ku={key:1,class:"truncate"},wu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},$u={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-sky-500 dark:text-sky-400"},Mu={key:0,class:"mt-1.5 space-y-1"},Tu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},Su={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},Cu={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-emerald-500 dark:text-emerald-400"},_u={key:0,class:"mt-1.5 space-y-1"},Iu={class:"flex flex-wrap items-center gap-x-1.5 gap-y-0.5"},Eu={key:0,class:"rounded border border-dashed border-neutral-300 px-1 py-px font-mono text-[9px] lowercase tracking-wide text-neutral-400 dark:border-neutral-600 dark:text-neutral-500"},Nu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},Fo=_e({__name:"PromptCard",props:{prompt:{},tools:{},toolConfig:{},variables:{},variableEnvNames:{},label:{},modelName:{},modelProvider:{},modelActual:{},modelIconSrc:{},modelCapabilities:{},borderClass:{},accentTextClass:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{},refreshEpoch:{},subagentEditTarget:{}},emits:["select","edit-surface","hover-edit-target"],setup(e,{emit:t}){const n=e,o=t,a=R(()=>n.tools.filter(M=>M.kind==="tool"||M.kind==="provider"||M.kind==="mcp")),l=R(()=>n.tools.filter(M=>M.kind==="prompt")),s=R(()=>n.tools.filter(M=>M.kind==="subagent")),r=R(()=>n.tools.filter(M=>M.kind==="handoff")),i=R(()=>n.variables||sa(n.prompt)),u=R(()=>n.variableEnvNames||la(n.prompt)),d=R(()=>!!n.label),f=R(()=>n.toolConfig?"Sub-prompt":"Prompt"),v=R(()=>n.modelName||n.prompt.model_name);R(()=>n.modelProvider||n.prompt.model_provider);const x=R(()=>n.modelActual||n.prompt.model_id),g=R(()=>{const M=n.modelCapabilities||{};return[{key:"images",label:"Vision",enabled:M.supportsImages===!0},{key:"tools",label:"Tool Calls",enabled:M.supportsToolCalls===!0},{key:"stream",label:"Streaming",enabled:M.supportsStreaming===!0},{key:"json",label:"JSON",enabled:M.supportsJsonMode===!0}]}),c=R(()=>!!n.modelCapabilities&&Object.keys(n.modelCapabilities).length>0),b=R(()=>ma(n.prompt.required_schema)),S=H({}),C=R(()=>Bo(n.prompt,n.toolConfig));Ae(()=>[l.value.map(M=>M.name).join(""),n.refreshEpoch??0],async()=>{const M=l.value.map(w=>w.name);if(M.length===0){S.value={};return}const I=await Ho(M);S.value=Object.fromEntries(I)},{immediate:!0});function _(M){return S.value[M.name]?.model||M.resolvedModel||null}function y(M){const I=_(M);if(I)return Ue(`/api/providers/${encodeURIComponent(I.provider)}/icon?model=${encodeURIComponent(I.model)}`);const w=S.value[M.name];return w?.prompt?Ue(`/api/providers/${encodeURIComponent(w.prompt.model_provider)}/icon?model=${encodeURIComponent(w.prompt.model_id)}`):""}function L(M){const I=_(M);return I?I.name:S.value[M.name]?.prompt.model_name||M.model||null}function P(M){const I=_(M);return I?I.provider:S.value[M.name]?.prompt.model_provider||null}function D(M,I){return{entityType:"prompt",entityId:n.prompt.name,section:M,defaultToolTab:I}}const{activeSurface:Z}=Gt();function q(M,I){const w=Z.value?.target;return!(!w||w.entityType!=="prompt"||w.entityId!==n.prompt.name||w.section!==M||I!==void 0&&w.defaultToolTab!==I)}function Y(M,I){if(q(M,I))return!0;const w=n.hoveredEditTarget;return!(!w||w.entityType!=="prompt"||w.entityId!==n.prompt.name||w.section!==M||I!==void 0&&w.defaultToolTab!==I)}function G(){const M=n.subagentEditTarget;if(!M||M.entityType!=="agent")return!1;const I=w=>!!w&&w.entityType==="agent"&&w.entityId===M.entityId&&w.section===M.section;return I(Z.value?.target)||I(n.hoveredEditTarget)}function B(M){const I=M.currentTarget;I instanceof HTMLElement&&o("edit-surface",{target:D("prompt"),anchorEl:I})}return(M,I)=>(h(),k("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:I[18]||(I[18]=Te(w=>M.$emit("select"),["stop"])),onKeydown:[I[19]||(I[19]=Ve(Te(w=>M.$emit("select"),["prevent","stop"]),["enter"])),I[20]||(I[20]=Ve(Te(w=>M.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",e.borderClass,E(lt)(e.selected,e.hovered)])},[m("div",Ld,[m("div",Rd,[Q(Xe,{as:"header",class:"border-b border-neutral-200 dark:border-neutral-700",target:D("basic"),active:Y("basic"),onOpen:I[2]||(I[2]=w=>o("edit-surface",w)),onHoverTarget:I[3]||(I[3]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",Od,[m("div",Dd,[m("div",{class:le(["flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.2em]",e.accentTextClass])},[Q(E(gt),{class:"h-3 w-3"}),m("span",null,j(f.value),1),d.value?(h(),k("span",Bd,j(e.label),1)):W("",!0)],2),m("div",Vd,[m("div",Hd,j(e.prompt.name),1),e.prompt.tool_description?(h(),k("div",Ud,j(e.prompt.tool_description),1)):W("",!0)])]),m("div",zd,[m("button",{type:"button",class:le(["inline-flex h-8 w-8 items-center justify-center rounded-md border border-neutral-200 bg-white text-neutral-500 transition-colors hover:border-neutral-300 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-400 dark:hover:border-neutral-700 dark:hover:text-neutral-100",Y("prompt")?"border-neutral-900 text-neutral-900 dark:border-neutral-100 dark:text-neutral-100":""]),title:"Edit prompt text","aria-label":"Edit prompt text",onClick:Te(B,["stop"]),onKeydown:[Ve(Te(B,["prevent","stop"]),["enter"]),Ve(Te(B,["prevent","stop"]),["space"])],onMouseenter:I[0]||(I[0]=Te(w=>o("hover-edit-target",D("prompt")),["stop"])),onMouseleave:I[1]||(I[1]=Te(w=>o("hover-edit-target",null),["stop"]))},[Q(E(Oo),{class:"h-3.5 w-3.5"})],42,Fd),m("div",jd,[m("div",Xd,[e.modelIconSrc?(h(),k("img",{key:0,src:e.modelIconSrc,alt:"",class:"mt-[3px] h-4 w-4 shrink-0 rounded-sm"},null,8,Kd)):W("",!0),m("div",Yd,[m("div",qd,j(v.value),1),m("div",Gd,j(x.value),1)])]),c.value?(h(),k("div",Wd,[m("div",Qd,[(h(!0),k(Me,null,Ce(g.value,w=>(h(),k("span",{key:w.key,"aria-label":`${w.label}: ${w.enabled?"supported":"not supported"}`,class:le(["h-1.5 w-1.5 rounded-full",w.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,10,Jd))),128))]),m("div",Zd,[I[21]||(I[21]=m("div",{class:"mb-1.5 text-[9px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"}," Capabilities ",-1)),m("dl",eu,[(h(!0),k(Me,null,Ce(g.value,w=>(h(),k(Me,{key:w.key},[m("dt",tu,[m("span",{class:le(["h-1.5 w-1.5 rounded-full",w.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,2)]),m("dd",{class:le(["whitespace-nowrap",w.enabled?"text-neutral-800 dark:text-neutral-200":"text-neutral-400 dark:text-neutral-600"])},j(w.label),3)],64))),128))])])])):W("",!0)])])])]),_:1},8,["target","active"]),m("div",nu,[Q(Xe,{class:"shrink-0 px-5 py-3",target:D("behavior"),active:Y("behavior"),onOpen:I[4]||(I[4]=w=>o("edit-surface",w)),onHoverTarget:I[5]||(I[5]=w=>o("hover-edit-target",w))},{default:be(()=>[(h(!0),k(Me,null,Ce(C.value,(w,U)=>(h(),k("div",{key:w.key,class:le(["py-2",U>0?"border-t border-neutral-200 dark:border-neutral-700":""])},[m("div",au,j(w.label),1),m("dl",ou,[(h(!0),k(Me,null,Ce(w.rows,N=>(h(),k("div",{key:N.label,class:"flex items-baseline justify-between gap-x-6"},[m("dt",ru,j(N.label),1),N.kind==="toggle"?(h(),k("dd",{key:0,class:le(["whitespace-nowrap font-mono",N.enabled?"text-emerald-600 dark:text-emerald-400":"text-neutral-400 dark:text-neutral-600"])},j(N.enabled?"on":"off"),3)):(h(),k("dd",{key:1,class:le(["whitespace-nowrap font-mono",N.active?"text-neutral-800 dark:text-neutral-200":"text-neutral-400 dark:text-neutral-600"])},j(N.value),3))]))),128))])],2))),128))]),_:1},8,["target","active"]),m("div",su,[Q(Xe,{class:"flex-[1_1_auto] px-5 py-3",target:D("schema"),active:Y("schema"),onOpen:I[6]||(I[6]=w=>o("edit-surface",w)),onHoverTarget:I[7]||(I[7]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",lu,[Q(E(Mt),{class:"h-3 w-3"}),I[22]||(I[22]=me(" Input schema ",-1))]),Q(Do,{nodes:b.value,"empty-label":"None"},null,8,["nodes"])]),_:1},8,["target","active"]),Q(Xe,{"data-variables-section":"",class:"flex-[1_1_auto] border-t border-neutral-200 px-5 py-3 dark:border-neutral-700",target:D("variables"),active:Y("variables"),onOpen:I[8]||(I[8]=w=>o("edit-surface",w)),onHoverTarget:I[9]||(I[9]=w=>o("hover-edit-target",w))},{default:be(()=>[Q(ha,{variables:i.value,"flagged-names":u.value},null,8,["variables","flagged-names"])]),_:1},8,["target","active"])])])]),m("div",iu,[Q(Xe,{"data-tool-column":"function",class:"flex-[1_1_25%] px-4 py-3",target:D("tools","functions"),active:Y("tools","functions"),onOpen:I[10]||(I[10]=w=>o("edit-surface",w)),onHoverTarget:I[11]||(I[11]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",du,[Q(qt,{class:"h-3 w-3"}),I[23]||(I[23]=me(" Functions ",-1))]),a.value.length>0?(h(),k("div",uu,[(h(!0),k(Me,null,Ce(a.value,w=>(h(),k("div",{key:w.name,class:"text-[11px]"},[m("div",cu,[m("span",fu,j(w.displayName),1),w.config.immediate?(h(),k("span",hu," immediate ")):W("",!0)])]))),128))])):(h(),k("div",mu,"None"))]),_:1},8,["target","active"]),Q(Xe,{"data-tool-column":"prompt",class:"flex-[1_1_25%] border-t border-neutral-200 px-4 py-3 dark:border-neutral-700",target:D("tools","sub-prompts"),active:Y("tools","sub-prompts"),onOpen:I[12]||(I[12]=w=>o("edit-surface",w)),onHoverTarget:I[13]||(I[13]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",pu,[Q(E(gt),{class:"h-3 w-3"}),I[24]||(I[24]=me(" Sub-prompts ",-1))]),l.value.length>0?(h(),k("div",vu,[(h(!0),k(Me,null,Ce(l.value,w=>(h(),k("div",{key:w.name,class:"text-[11px]"},[m("div",gu,j(w.displayName),1),L(w)?(h(),k("div",xu,[y(w)?(h(),k("img",{key:0,src:y(w),alt:"",class:"h-3.5 w-3.5 shrink-0 rounded-sm"},null,8,bu)):W("",!0),m("span",yu,j(L(w)),1),P(w)?(h(),k("span",ku,j(P(w)),1)):W("",!0)])):W("",!0)]))),128))])):(h(),k("div",wu,"None"))]),_:1},8,["target","active"]),Q(Xe,{"data-tool-column":"handoff",class:"flex-[1_1_25%] border-t border-neutral-200 px-4 py-3 dark:border-neutral-700",target:D("tools","handoffs"),active:Y("tools","handoffs"),onOpen:I[14]||(I[14]=w=>o("edit-surface",w)),onHoverTarget:I[15]||(I[15]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",$u,[Q(E(ra),{class:"h-3 w-3"}),I[25]||(I[25]=me(" Handoffs ",-1))]),r.value.length>0?(h(),k("div",Mu,[(h(!0),k(Me,null,Ce(r.value,w=>(h(),k("div",{key:w.name,class:"text-[11px]"},[m("div",Tu,j(w.displayName),1)]))),128))])):(h(),k("div",Su,"None"))]),_:1},8,["target","active"]),e.subagentEditTarget?(h(),ue(Xe,{key:0,"data-tool-column":"subagent",class:"flex-[1_1_25%] border-t border-neutral-200 px-4 py-3 dark:border-neutral-700",target:e.subagentEditTarget,active:G(),onOpen:I[16]||(I[16]=w=>o("edit-surface",w)),onHoverTarget:I[17]||(I[17]=w=>o("hover-edit-target",w))},{default:be(()=>[m("div",Cu,[Q(E(ot),{class:"h-3 w-3"}),I[26]||(I[26]=me(" Sub-agents ",-1))]),s.value.length>0?(h(),k("div",_u,[(h(!0),k(Me,null,Ce(s.value,w=>(h(),k("div",{key:w.name,class:"text-[11px]"},[m("div",Iu,[m("span",{class:le(["font-mono font-medium",w.relationship?.hidden?"text-neutral-400 dark:text-neutral-600":"text-neutral-800 dark:text-neutral-200"])},j(w.displayName),3),w.relationship?.hidden?(h(),k("span",Eu,"hidden")):W("",!0)])]))),128))])):(h(),k("div",Nu,"None"))]),_:1},8,["target","active"])):W("",!0)])])],34))}}),Au={class:"flex items-center gap-2.5 px-5 pt-4 pb-3"},Pu={class:"text-[15px] font-semibold text-neutral-900 dark:text-neutral-100"},Lu={class:"flex items-center gap-2.5 px-5 pt-4 pb-3"},Ru={class:"text-[15px] font-semibold text-neutral-900 dark:text-neutral-100"},Ou={class:"border-t border-neutral-100 px-5 py-3 text-xs dark:border-neutral-800"},Du={key:0,class:"font-mono text-neutral-500 dark:text-neutral-400"},Bu={key:1,class:"text-neutral-400 dark:text-neutral-500"},Vu=_e({__name:"SidePromptNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{},refreshEpoch:{}},emits:["select","edit-surface","hover-edit-target"],setup(e){const t=e,n=R(()=>t.data.mode==="human"),o=R(()=>t.data.mode==="handler"),a=R(()=>({entityType:"agent",entityId:t.data.agentName,section:t.data.id==="a"?"side-a":"side-b"})),l=R(()=>{const i=t.data.model;return i?Ue(`/api/providers/${encodeURIComponent(i.provider)}/icon?model=${encodeURIComponent(i.model)}`):t.data.prompt?Ue(`/api/providers/${encodeURIComponent(t.data.prompt.model_provider)}/icon?model=${encodeURIComponent(t.data.prompt.model_id)}`):""}),s=R(()=>t.data.id==="a"?"border-sky-500 dark:border-sky-600":"border-amber-500 dark:border-amber-600"),r=R(()=>t.data.id==="a"?"text-sky-600 dark:text-sky-400":"text-amber-600 dark:text-amber-400");return(i,u)=>n.value?(h(),k("div",{key:0,"data-canvas-node":"",role:"button",tabindex:"0",onClick:u[0]||(u[0]=Te(d=>i.$emit("select"),["stop"])),onKeydown:[u[1]||(u[1]=Ve(Te(d=>i.$emit("select"),["prevent","stop"]),["enter"])),u[2]||(u[2]=Ve(Te(d=>i.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",s.value,E(lt)(e.selected,e.hovered)])},[m("div",Au,[Q(E(oa),{class:le(["h-5 w-5 shrink-0",r.value])},null,8,["class"]),m("span",Pu,j(e.data.label),1)]),u[9]||(u[9]=m("div",{class:"border-t border-neutral-100 px-5 py-3 text-xs text-neutral-400 dark:border-neutral-800 dark:text-neutral-500"}," Receives user messages and input. ",-1))],34)):o.value?(h(),k("div",{key:1,"data-canvas-node":"",role:"button",tabindex:"0",onClick:u[3]||(u[3]=Te(d=>i.$emit("select"),["stop"])),onKeydown:[u[4]||(u[4]=Ve(Te(d=>i.$emit("select"),["prevent","stop"]),["enter"])),u[5]||(u[5]=Ve(Te(d=>i.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",s.value,E(lt)(e.selected,e.hovered)])},[m("div",Lu,[Q(E(mo),{class:le(["h-5 w-5 shrink-0",r.value])},null,8,["class"]),m("span",Ru,j(e.data.label),1),m("span",{class:le(["ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold uppercase tracking-wider",r.value])},"Handler",2)]),m("div",Ou,[e.data.handlerName?(h(),k("span",Du,j(e.data.handlerName),1)):(h(),k("span",Bu,"No handler selected"))])],34)):e.data.prompt?(h(),ue(Fo,{key:2,prompt:e.data.prompt,tools:e.data.tools,variables:e.data.variables,"variable-env-names":e.data.variableEnvNames,label:e.data.label,"model-name":e.data.model?.name,"model-provider":e.data.model?.provider,"model-actual":e.data.model?.model,"model-icon-src":l.value,"model-capabilities":e.data.model?.capabilities,"border-class":s.value,"accent-text-class":r.value,selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,"subagent-edit-target":a.value,onSelect:u[6]||(u[6]=d=>i.$emit("select")),onEditSurface:u[7]||(u[7]=d=>i.$emit("edit-surface",d)),onHoverEditTarget:u[8]||(u[8]=d=>i.$emit("hover-edit-target",d))},null,8,["prompt","tools","variables","variable-env-names","label","model-name","model-provider","model-actual","model-icon-src","model-capabilities","border-class","accent-text-class","selected","hovered","hovered-edit-target","refresh-epoch","subagent-edit-target"])):W("",!0)}}),Hu={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Uu(e,t){return h(),k("svg",Hu,[...t[0]||(t[0]=[ts('<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M6 3v12"></path><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle><path d="M18 9a9 9 0 0 1-9 9"></path></g>',1)])])}const zu=it({name:"lucide-git-branch",render:Uu}),Fu={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ju(e,t){return h(),k("svg",Fu,[...t[0]||(t[0]=[m("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 22v-5M9 8V2m6 6V2m3 6v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"},null,-1)])])}const so=it({name:"lucide-plug",render:ju}),Xu={class:"border-b border-neutral-200 dark:border-neutral-700"},Ku={class:"flex items-center justify-between gap-3 px-4 pt-3 pb-1.5"},Yu={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},qu={key:0,class:"flex flex-wrap items-center gap-1"},Gu={class:"flex items-start justify-between gap-5 px-4 pt-1 pb-3"},Wu={class:"min-w-0 flex-1"},Qu={class:"truncate font-mono text-[13px] font-semibold text-neutral-900 dark:text-neutral-100"},Ju={key:0,class:"w-56 shrink-0 text-balance text-left text-[10.5px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Zu={key:0,class:"px-5 py-3"},ec={class:"min-w-[320px] max-w-[380px]"},tc={class:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},nc=_e({__name:"FunctionToolCard",props:{tool:{},detail:{},selected:{type:Boolean},hovered:{type:Boolean}},emits:["select"],setup(e){const t=e,n=R(()=>ma(t.detail.schema)),o=R(()=>t.detail.variables.length>0),a=R(()=>n.value.length>0),l=R(()=>{const s=[];return typeof t.tool.config.blocking=="boolean"&&s.push({label:t.tool.config.blocking?"blocking":"background",accent:!1}),t.tool.config.optional&&s.push({label:"optional",accent:!1}),t.tool.config.immediate&&s.push({label:"immediate",accent:!0}),s});return(s,r)=>(h(),k("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:r[0]||(r[0]=Te(i=>s.$emit("select"),["stop"])),onKeydown:[r[1]||(r[1]=Ve(Te(i=>s.$emit("select"),["prevent","stop"]),["enter"])),r[2]||(r[2]=Ve(Te(i=>s.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer overflow-hidden rounded-xl border border-neutral-300 bg-white transition-shadow select-none dark:border-neutral-700 dark:bg-neutral-950",E(lt)(e.selected,e.hovered)]),style:{width:"max-content"}},[m("header",Xu,[m("div",Ku,[m("div",Yu,[Q(qt,{class:"h-3 w-3"}),r[3]||(r[3]=m("span",null,"Function",-1))]),l.value.length>0?(h(),k("div",qu,[(h(!0),k(Me,null,Ce(l.value,i=>(h(),k("span",{key:i.label,class:le(["rounded-md px-1.5 py-px font-mono text-[10px] lowercase tracking-wide",i.accent?"bg-amber-100 text-amber-700 dark:bg-amber-950/50 dark:text-amber-300":"bg-neutral-100 text-neutral-500 dark:bg-neutral-900 dark:text-neutral-400"])},j(i.label),3))),128))])):W("",!0)]),m("div",Gu,[m("div",Wu,[m("div",Qu,j(e.tool.displayName),1)]),e.detail.description?(h(),k("p",Ju,j(e.detail.description),1)):W("",!0)])]),o.value||a.value?(h(),k("div",Zu,[m("div",ec,[o.value?(h(),ue(ha,{key:0,variables:e.detail.variables},null,8,["variables"])):W("",!0),a.value?(h(),k("div",{key:1,class:le([o.value?"mt-3 border-t border-neutral-200 pt-3 dark:border-neutral-700":""])},[m("div",tc,[Q(E(Mt),{class:"h-3 w-3"}),r[4]||(r[4]=me(" Args ",-1))]),Q(Do,{nodes:n.value,"empty-label":"No args"},null,8,["nodes"])],2)):W("",!0)])])):W("",!0)],34))}}),ac={class:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] opacity-60"},oc={class:"mt-1.5 truncate text-sm font-semibold text-neutral-900 dark:text-neutral-100"},rc={key:0,class:"mt-0.5 truncate text-[11px] text-neutral-500 dark:text-neutral-400"},sc=_e({__name:"ToolNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{},refreshEpoch:{}},emits:["select","edit-surface","hover-edit-target","view-agent","detail-loading"],setup(e,{emit:t}){const n=e,o=t,a={tool:{label:"Function",classes:"border-neutral-300 bg-white dark:border-neutral-700 dark:bg-neutral-950",icon:qt},prompt:{label:"Prompt Tool",classes:"border-fuchsia-300 bg-fuchsia-50/90 dark:border-fuchsia-700 dark:bg-fuchsia-950/30",icon:gt},subagent:{label:"Subagent",classes:"border-emerald-300 bg-emerald-50/90 dark:border-emerald-700 dark:bg-emerald-950/30",icon:zu},handoff:{label:"Handoff",classes:"border-sky-300 bg-sky-50/90 dark:border-sky-700 dark:bg-sky-950/30",icon:ra},provider:{label:"Provider",classes:"border-amber-300 bg-amber-50/90 dark:border-amber-700 dark:bg-amber-950/30",icon:so},mcp:{label:"MCP",classes:"border-violet-300 bg-violet-50/90 dark:border-violet-700 dark:bg-violet-950/30",icon:so},unknown:{label:"Tool",classes:"border-neutral-300 bg-white dark:border-neutral-700 dark:bg-neutral-950",icon:dn}},l=R(()=>a[n.data.kind]||a.unknown),s=R(()=>n.data.kind==="tool"),r=R(()=>n.data.kind==="prompt"),i=R(()=>n.data.kind==="handoff"),u=R(()=>{const L=n.data.description;return L?L.length>48?L.slice(0,45)+"...":L:""}),d=H(null),f=H(null),v=H([]),x=H(null),g=H(null),c=R(()=>n.data.kind==="tool"||n.data.kind==="prompt"||n.data.kind==="handoff");let b=0;Ae(()=>[n.data.name,n.refreshEpoch??0],async()=>{const L=++b;c.value&&o("detail-loading",!0);try{const P=await Ad(n.data);if(L!==b)return;f.value=P.functionTool,d.value=P.promptTool?.prompt||null,v.value=P.promptTool?.nestedTools||[],g.value=P.promptTool?.model||null,x.value=P.handoffAgent}finally{L===b&&c.value&&o("detail-loading",!1)}},{immediate:!0});const S=R(()=>g.value?Ue(`/api/providers/${encodeURIComponent(g.value.provider)}/icon?model=${encodeURIComponent(g.value.model)}`):d.value?Ue(`/api/providers/${encodeURIComponent(d.value.model_provider)}/icon?model=${encodeURIComponent(d.value.model_id)}`):""),C=R(()=>g.value?.name||d.value?.model_name),_=R(()=>g.value?.provider||d.value?.model_provider),y=R(()=>g.value?.model||d.value?.model_id||null);return(L,P)=>s.value&&f.value?(h(),ue(nc,{key:0,tool:e.data,detail:f.value,selected:e.selected,hovered:e.hovered,onSelect:P[0]||(P[0]=D=>o("select"))},null,8,["tool","detail","selected","hovered"])):r.value&&d.value?(h(),ue(Fo,{key:1,prompt:d.value,tools:v.value,"tool-config":e.data.config,variables:E(sa)(d.value),"variable-env-names":E(la)(d.value),"model-name":C.value,"model-provider":_.value,"model-actual":y.value,"model-icon-src":S.value,"model-capabilities":g.value?.capabilities,"border-class":"border-fuchsia-500 dark:border-fuchsia-600","accent-text-class":"text-fuchsia-600 dark:text-fuchsia-400",selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,onSelect:P[1]||(P[1]=D=>o("select")),onEditSurface:P[2]||(P[2]=D=>o("edit-surface",D)),onHoverEditTarget:P[3]||(P[3]=D=>o("hover-edit-target",D)),"refresh-epoch":e.refreshEpoch},null,8,["prompt","tools","tool-config","variables","variable-env-names","model-name","model-provider","model-actual","model-icon-src","model-capabilities","selected","hovered","hovered-edit-target","refresh-epoch"])):i.value&&x.value?(h(),ue(Ro,{key:2,data:x.value,selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,"border-class":"border-sky-400 dark:border-sky-500","background-class":"bg-sky-50/90 dark:bg-sky-950/30","kind-label":"Handoff","accent-text-class":"text-sky-600 dark:text-sky-400","action-label":"View agent",onSelect:P[4]||(P[4]=D=>o("select")),onAction:P[5]||(P[5]=D=>o("view-agent",x.value.name)),onEditSurface:P[6]||(P[6]=D=>o("edit-surface",D)),onHoverEditTarget:P[7]||(P[7]=D=>o("hover-edit-target",D))},null,8,["data","selected","hovered","hovered-edit-target"])):(h(),k("div",{key:3,"data-canvas-node":"",role:"button",tabindex:"0",onClick:P[8]||(P[8]=Te(D=>o("select"),["stop"])),onKeydown:[P[9]||(P[9]=Ve(Te(D=>o("select"),["prevent","stop"]),["enter"])),P[10]||(P[10]=Ve(Te(D=>o("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border px-4 py-3 transition-shadow select-none",l.value.classes,E(lt)(e.selected,e.hovered)])},[m("div",ac,[(h(),ue(tt(l.value.icon),{class:"h-3.5 w-3.5"})),me(" "+j(l.value.label),1)]),m("div",oc,j(e.data.displayName),1),u.value?(h(),k("div",rc,j(u.value),1)):W("",!0)],34))}}),lc={class:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},ic={class:"mt-1.5 truncate text-sm font-medium text-neutral-900 dark:text-neutral-100"},dc=_e({__name:"HookNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean}},emits:["select"],setup(e){return(t,n)=>(h(),k("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:n[0]||(n[0]=Te(o=>t.$emit("select"),["stop"])),onKeydown:[n[1]||(n[1]=Ve(Te(o=>t.$emit("select"),["prevent","stop"]),["enter"])),n[2]||(n[2]=Ve(Te(o=>t.$emit("select"),["prevent","stop"]),["space"]))],class:le(["absolute cursor-pointer rounded-xl border px-4 py-3 transition-shadow select-none","border-neutral-200 bg-neutral-50/80 dark:border-neutral-800 dark:bg-neutral-900/80",E(lt)(e.selected,e.hovered)])},[m("div",lc,[Q(E(qn),{class:"h-3.5 w-3.5"}),n[3]||(n[3]=me(" Hook ",-1))]),m("div",ic,j(e.data.hook),1)],34))}}),uc={class:"flex items-center gap-1.5 whitespace-nowrap px-4 pt-3 pb-1.5 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},cc={key:0,class:"ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold tracking-wider"},fc={"data-model-anchor":"",class:"flex items-center gap-2 px-4 pt-0.5 pb-3"},hc=["src"],mc={class:"min-w-0"},pc={class:"truncate text-[14px] font-semibold text-neutral-900 dark:text-neutral-100"},vc={key:0,class:"truncate font-mono text-[10px] text-neutral-400 dark:text-neutral-500"},gc={key:1,class:"truncate text-[10px] text-neutral-400 dark:text-neutral-500"},xc={key:0},bc={key:1,class:"text-neutral-300 dark:text-neutral-600 mx-1"},yc={key:2},kc={key:0,class:"grid grid-cols-2 border-t border-neutral-200 dark:border-neutral-700"},wc={key:1,class:"grid grid-cols-2 border-t border-neutral-200 text-[10px] text-neutral-400 dark:border-neutral-700 dark:text-neutral-500"},$c={class:"text-[9px] uppercase leading-tight tracking-[0.14em]"},Mc={class:"mt-0.5 font-mono text-[11px] leading-tight text-neutral-600 dark:text-neutral-300"},Tc={key:2,class:"space-y-1 border-t border-neutral-200 px-4 py-2 text-[10px] text-neutral-400 dark:border-neutral-700 dark:text-neutral-500"},Sc={class:"uppercase tracking-[0.16em]"},Cc={class:"min-w-0 truncate font-mono text-right"},_c=_e({__name:"ModelNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{}},emits:["select","edit-surface","hover-edit-target"],setup(e,{emit:t}){const n=e,o=t,{activeSurface:a}=Gt(),l=R(()=>({entityType:"model",entityId:n.data.id})),s=R(()=>Xt(a.value?.target,l.value)||Xt(n.hoveredEditTarget,l.value)),r=R(()=>Ue(`/api/providers/${encodeURIComponent(n.data.provider)}/icon?model=${encodeURIComponent(n.data.model||"")}`)),i=R(()=>{const C=n.data.capabilities||{};return[{key:"images",label:"Vision",enabled:C.supportsImages===!0},{key:"tools",label:"Tool Calls",enabled:C.supportsToolCalls===!0},{key:"stream",label:"Streaming",enabled:C.supportsStreaming===!0},{key:"json",label:"JSON",enabled:C.supportsJsonMode===!0}]}),u=R(()=>n.data.providerTools||[]),d=R(()=>n.data.fallbacks||[]),f=R(()=>{const C=n.data.capabilities||{},_=[];return typeof C.maxContextTokens=="number"&&_.push({label:"Max context",value:C.maxContextTokens.toLocaleString()}),typeof C.maxOutputTokens=="number"&&_.push({label:"Max output",value:C.maxOutputTokens.toLocaleString()}),_}),v=C=>{if(C==null||Number.isNaN(C))return null;if(C===0)return"$0";const _=C>=1?C.toFixed(2):C.toFixed(4);return`$${parseFloat(_)}`},x=C=>{if(!C)return null;const _=v(C.min),y=v(C.max);return!_||!y?null:_===y?_:`${_}-${y}`},g=R(()=>{const C=n.data.pricing_range?.input;return C?x(C):v(n.data.input_price)}),c=R(()=>{const C=n.data.pricing_range?.output;return C?x(C):v(n.data.output_price)}),b=R(()=>!!(g.value||c.value)),S=R(()=>{const C=[];if(u.value.length>0){const _=u.value.slice(0,2).join(", "),y=u.value.length>2?", …":"";C.push({label:"Provider tools",value:_+y})}if(d.value.length>0){const _=d.value.slice(0,2).map(L=>L.name).join(", "),y=d.value.length>2?", …":"";C.push({label:"Fallbacks",value:_+y})}return C});return(C,_)=>(h(),ue(Xe,{"data-canvas-node":"","data-canvas-model-node":"",target:l.value,active:s.value,"edit-data":e.data,positioned:!1,class:le(["absolute overflow-hidden rounded-xl border border-neutral-300 bg-white transition-shadow select-none dark:border-neutral-700 dark:bg-neutral-950",E(lt)(e.selected,e.hovered)]),onOpen:_[1]||(_[1]=y=>o("edit-surface",y)),onHoverTarget:_[2]||(_[2]=y=>o("hover-edit-target",y))},{default:be(()=>[m("header",null,[m("div",uc,[Q(E(vo),{class:"h-3 w-3"}),_[3]||(_[3]=m("span",null,"Model",-1)),e.data.provider?(h(),k("span",cc,j(e.data.provider),1)):W("",!0)]),m("div",fc,[m("img",{src:r.value,alt:"",class:"h-5 w-5 shrink-0 rounded-sm",onError:_[0]||(_[0]=y=>y.target.style.visibility="hidden")},null,40,hc),m("div",mc,[m("div",pc,j(e.data.name),1),e.data.model&&e.data.model!==e.data.name?(h(),k("div",vc,j(e.data.model),1)):W("",!0),b.value?(h(),k("div",gc,[g.value?(h(),k("span",xc,[_[4]||(_[4]=m("span",{class:"text-neutral-300 dark:text-neutral-600"},"in",-1)),me(" "+j(g.value)+"/M ",1)])):W("",!0),g.value&&c.value?(h(),k("span",bc,"·")):W("",!0),c.value?(h(),k("span",yc,[_[5]||(_[5]=m("span",{class:"text-neutral-300 dark:text-neutral-600"},"out",-1)),me(" "+j(c.value)+"/M ",1)])):W("",!0)])):W("",!0)])])]),i.value.length>0?(h(),k("div",kc,[(h(!0),k(Me,null,Ce(i.value,(y,L)=>(h(),k("div",{key:y.key,class:le(["flex items-center gap-2 px-4 py-2",L%2===1?"border-l border-neutral-200 dark:border-neutral-700":"",L>=2?"border-t border-neutral-200 dark:border-neutral-700":""])},[m("span",{class:le(["h-1.5 w-1.5 shrink-0 rounded-full",y.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,2),m("span",{class:le(["text-[11px] leading-tight",y.enabled?"text-neutral-700 dark:text-neutral-300":"text-neutral-400 dark:text-neutral-500"])},j(y.label),3)],2))),128))])):W("",!0),f.value.length>0?(h(),k("div",wc,[(h(!0),k(Me,null,Ce(f.value,(y,L)=>(h(),k("div",{key:y.label,class:le(["px-4 py-2",L>0?"border-l border-neutral-200 dark:border-neutral-700":""])},[m("div",$c,j(y.label),1),m("div",Mc,j(y.value),1)],2))),128))])):W("",!0),S.value.length>0?(h(),k("div",Tc,[(h(!0),k(Me,null,Ce(S.value,y=>(h(),k("div",{key:y.label,class:"flex items-baseline justify-between gap-3"},[m("span",Sc,j(y.label),1),m("span",Cc,j(y.value),1)]))),128))])):W("",!0)]),_:1},8,["target","active","edit-data","class"]))}}),Ic={class:"relative flex-1 overflow-hidden bg-neutral-100/50 dark:bg-neutral-950/50"},Ec=["aria-label","onClick","onKeydown"],Nc={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},Ac=["id"],Pc=["fill"],Lc={class:"absolute -top-3 left-4 z-10 flex items-center gap-2 rounded bg-white px-2 py-0.5 dark:bg-neutral-900"},Rc={class:"text-[10px] font-semibold uppercase tracking-wider text-neutral-600 dark:text-neutral-300"},Oc={key:0,class:"inline-flex items-center rounded-full border border-dashed border-neutral-300 px-1.5 py-px text-[9px] font-medium text-neutral-400 dark:border-neutral-600 dark:text-neutral-500",title:"Hidden relationship: spawnable by runtime code, never shown to the model"},Dc={key:0,class:"absolute inset-0 z-10 flex items-center justify-center bg-neutral-100 dark:bg-neutral-950"},Bc={key:0,class:"absolute left-4 right-4 top-4 z-10 rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800 dark:border-amber-800 dark:bg-amber-950/80 dark:text-amber-100"},Vc={key:1,class:"absolute inset-0 flex flex-col items-center justify-center gap-3 text-neutral-400 dark:text-neutral-600"},Hc=_e({__name:"CompositionCanvas",props:{layout:{},selectedNodeId:{},hoveredNodeId:{},hoveredEditTarget:{},refreshingNodeId:{},refreshEpoch:{},loading:{type:Boolean},error:{},hasAgent:{type:Boolean}},emits:["select-node","view-agent","deselect","nodes-measured","hover-node","open-edit-surface"],setup(e,{emit:t}){const n=e,o=t,a=H(null),l=H(new Set);Ae(()=>n.layout.nodes.map(ae=>ae.id).join(","),ae=>{const J=new Set(ae?ae.split(","):[]);l.value=new Set([...l.value].filter(p=>J.has(p)))},{immediate:!0});function s(ae,J){const p=new Set(l.value);J?p.add(ae):p.delete(ae),l.value=p}const r=R(()=>l.value.size>0),i=H(!1),{state:u,isPanning:d,transformStyle:f,scalePercent:v,onWheel:x,onPointerDown:g,onPointerMove:c,onPointerUp:b,shouldHandleClick:S,zoomIn:C,zoomOut:_,fitToView:y,resetAutoFitLock:L,focusNode:P,setContentBounds:D,saveViewport:Z,restoreViewport:q}=Bl(a,{maxScale:1.2,panPadding:40});Ae(u,()=>us(),{deep:!0,flush:"post"}),La(ae=>{const J=a.value;J&&(J.addEventListener("wheel",x,{passive:!1}),ae(()=>J.removeEventListener("wheel",x)))}),ns(()=>{a.value?.removeEventListener("wheel",x)});const Y=Rn(n,"layout"),G=Rn(n,"loading"),B=Rn(n,"selectedNodeId"),{layoutStable:M,measurements:I,nodesWithMeasuredSizes:w,nodeMetrics:U,measureNode:N,measuredBounds:T}=Rl(Y,G,ae=>y(ae,{force:!1}),ae=>o("nodes-measured",ae),L);Ae(()=>n.loading,ae=>{ae&&(i.value=!1)}),Ae([M,r],([ae,J])=>{ae&&!J&&(i.value=!0)},{immediate:!0});const A=R(()=>Vl({hasAgent:n.hasAgent,hasError:!!n.error,loadingComposition:n.loading,layoutStable:M.value,loadingAsyncDetail:r.value,hasRevealedStableDiagram:i.value}));function X(ae,J){if(J instanceof HTMLElement){N(ae,J);return}if(!J||typeof J!="object"||!("$el"in J))return;const p=J.$el;p instanceof HTMLElement&&N(ae,p)}La(()=>{if(!n.hasAgent||n.layout.nodes.length===0){D(null);return}D(T())});function F(ae){if(ae.type==="agent"||ae.type==="side"||ae.type==="model")return!0;if(ae.type!=="tool")return!1;const J=ae.data.kind;return J==="prompt"||J==="handoff"}const pe=R(()=>{const ae=n.hoveredNodeId;if(!ae)return null;const J=n.layout.nodes.find($=>$.id===ae);if(!J||!F(J))return null;const p=new Set([ae]);for(const $ of n.layout.edges)$.from===ae&&p.add($.to),$.to===ae&&p.add($.from);return p});function se(ae){const J=pe.value;return J?J.has(ae)?{}:{opacity:"0.25",transition:"opacity 120ms ease-out"}:{}}function fe(ae){const J=pe.value;if(!J)return!0;const p=n.layout.groups.find($=>$.id===ae);if(!p)return!0;for(const $ of n.layout.nodes)if(J.has($.id)&&$.x>=p.x&&$.y>=p.y&&$.x+$.width<=p.x+p.width&&$.y+$.height<=p.y+p.height)return!0;return!1}const{handleCanvasClick:K,handleGroupClick:z,handleNodeSelect:te}=Ol({containerRef:a,layout:Y,selectedNodeId:B,layoutStable:M,measurements:I,viewportState:u,shouldHandleClick:S,focusNode:P,saveViewport:Z,restoreViewport:q,onSelectNode:ae=>o("select-node",ae),onDeselect:()=>o("deselect")});function ie(ae,J){o("open-edit-surface",{...J,node:ae})}function de(ae,J){o("hover-node",ae.id,J)}function ve(ae,J){ae.key!=="Enter"&&ae.key!==" "||(ae.preventDefault(),ae.stopPropagation(),z(ae,J))}return(ae,J)=>(h(),k("div",Ic,[m("div",{ref_key:"containerRef",ref:a,class:le(["absolute inset-0",E(d)?"cursor-grabbing":"cursor-grab"]),onPointerdown:J[6]||(J[6]=(...p)=>E(g)&&E(g)(...p)),onPointermove:J[7]||(J[7]=(...p)=>E(c)&&E(c)(...p)),onPointerup:J[8]||(J[8]=(...p)=>E(b)&&E(b)(...p)),onPointercancel:J[9]||(J[9]=(...p)=>E(b)&&E(b)(...p)),onClick:J[10]||(J[10]=(...p)=>E(K)&&E(K)(...p))},[Q(Ul),m("div",{class:"absolute origin-top-left will-change-transform",style:Re({...E(f),opacity:E(M)?1:0,transition:E(M)?"opacity 200ms ease-out":"none",pointerEvents:E(M)?"auto":"none"})},[(h(!0),k(Me,null,Ce(e.layout.groups,p=>(h(),k(Me,{key:p.id},[p.subagent?.multiInstance?(h(),k("div",{key:0,class:"absolute border border-neutral-200/40 bg-[#f3f3f3] dark:border-neutral-700/25 dark:bg-[#1a1a1a]",style:Re({left:`${p.x+6}px`,top:`${p.y+6}px`,width:`${p.width}px`,height:`${p.height}px`,borderRadius:"8px"})},null,4)):W("",!0),p.subagent?.multiInstance?(h(),k("div",{key:1,class:"absolute border border-neutral-200/50 bg-[#f5f5f5] dark:border-neutral-700/35 dark:bg-[#1c1c1c]",style:Re({left:`${p.x+3}px`,top:`${p.y+3}px`,width:`${p.width}px`,height:`${p.height}px`,borderRadius:"8px"})},null,4)):W("",!0),m("div",{"data-canvas-group":"",class:le(["absolute cursor-pointer select-none border border-neutral-200/60 bg-[#f7f7f7] transition-opacity duration-150 ease-out dark:border-neutral-700/50 dark:bg-[#1e1e1e]",p.subagent?.hidden?"border-dashed":""]),role:"button",tabindex:"0","aria-label":`Focus ${p.label}`,onClick:Te($=>E(z)($,p),["stop"]),onKeydown:$=>ve($,p),style:Re({left:`${p.x}px`,top:`${p.y}px`,width:`${p.width}px`,height:`${p.height}px`,borderRadius:"8px",opacity:fe(p.id)?1:.3})},[(h(),k("svg",Nc,[m("defs",null,[m("pattern",{id:"subgrid-"+p.id,x:"0",y:"0",width:"20",height:"20",patternUnits:"userSpaceOnUse"},[...J[12]||(J[12]=[m("circle",{cx:"10",cy:"10",r:"0.75",class:"fill-neutral-400/15 dark:fill-neutral-500/15"},null,-1)])],8,Ac)]),m("rect",{width:"100%",height:"100%",fill:`url(#subgrid-${p.id})`},null,8,Pc)])),m("div",Lc,[m("span",Rc,j(p.label),1),p.subagent?(h(),k(Me,{key:0},[m("span",{class:le(["inline-flex items-center rounded-full px-1.5 py-px text-[9px] font-medium",p.subagent.blocking?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-neutral-100 text-neutral-500 dark:bg-neutral-800 dark:text-neutral-400"])},j(p.subagent.blocking?"Blocking":"Background"),3),m("span",{class:le(["inline-flex items-center rounded-full px-1.5 py-px text-[9px] font-medium",p.subagent.multiInstance?"bg-sky-100 text-sky-700 dark:bg-sky-900/40 dark:text-sky-400":"bg-neutral-100 text-neutral-500 dark:bg-neutral-800 dark:text-neutral-400"])},j(p.subagent.multiInstance?"Multi":"Single"),3),p.subagent.hidden?(h(),k("span",Oc,"Hidden")):W("",!0)],64)):W("",!0)])],46,Ec)],64))),128)),e.layout.nodes.length>0?(h(),ue($i,{key:0,nodes:E(w),edges:e.layout.edges,groups:e.layout.groups,"node-metrics":E(U),"selected-node-id":e.selectedNodeId,"hovered-node-id":e.hoveredNodeId},null,8,["nodes","edges","groups","node-metrics","selected-node-id","hovered-node-id"])):W("",!0),(h(!0),k(Me,null,Ce(e.layout.nodes,p=>(h(),k(Me,{key:p.id},[p.type==="agent"?(h(),ue(dd,{key:0,ref_for:!0,ref:$=>X(p.id,$),"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,style:Re({left:`${p.x}px`,top:`${p.y}px`,width:"max-content",minWidth:`${p.width}px`,...se(p.id)}),onSelect:$=>E(te)(p),onEditSurface:$=>ie(p,$),onHoverEditTarget:$=>de(p,$),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[0]||(J[0]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","refresh-epoch","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):p.type==="side"?(h(),ue(Vu,{key:1,ref_for:!0,ref:$=>X(p.id,$),"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,"hovered-edit-target":e.hoveredEditTarget,style:Re({left:`${p.x}px`,top:`${p.y}px`,width:"max-content",minWidth:`${p.width}px`,...se(p.id)}),onSelect:$=>E(te)(p),onEditSurface:$=>ie(p,$),onHoverEditTarget:$=>de(p,$),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[1]||(J[1]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):p.type==="tool"?(h(),ue(sc,{key:2,ref_for:!0,ref:$=>X(p.id,$),"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,style:Re(p.data.kind==="tool"?{left:`${p.x}px`,top:`${p.y}px`,width:"max-content",minWidth:`${p.width}px`,...se(p.id)}:["prompt","handoff"].includes(p.data.kind)?{left:`${p.x}px`,top:`${p.y}px`,width:"max-content",minWidth:`${p.width}px`,...se(p.id)}:{left:`${p.x}px`,top:`${p.y}px`,width:`${p.width}px`,height:`${p.height}px`,...se(p.id)}),onSelect:$=>E(te)(p),onEditSurface:$=>ie(p,$),onHoverEditTarget:$=>de(p,$),onViewAgent:J[2]||(J[2]=$=>o("view-agent",$)),onDetailLoading:$=>s(p.id,$),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[3]||(J[3]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","refresh-epoch","style","onSelect","onEditSurface","onHoverEditTarget","onDetailLoading","onMouseenter"])):p.type==="hook"?(h(),ue(dc,{key:3,"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,style:Re({left:`${p.x}px`,top:`${p.y}px`,width:`${p.width}px`,height:`${p.height}px`,...se(p.id)}),onSelect:$=>E(te)(p),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[4]||(J[4]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","style","onSelect","onMouseenter"])):p.type==="model"?(h(),ue(_c,{key:4,ref_for:!0,ref:$=>X(p.id,$),"data-canvas-node-id":p.id,data:p.data,selected:e.selectedNodeId===p.id,hovered:e.hoveredNodeId===p.id,"hovered-edit-target":e.hoveredEditTarget,style:Re({left:`${p.x}px`,top:`${p.y}px`,width:`${p.width}px`,minHeight:`${p.height}px`,...se(p.id)}),onSelect:$=>E(te)(p),onEditSurface:$=>ie(p,$),onHoverEditTarget:$=>de(p,$),onMouseenter:$=>o("hover-node",p.id),onMouseleave:J[5]||(J[5]=$=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):W("",!0),e.refreshingNodeId===p.id?(h(),k("div",{key:5,class:"absolute flex items-center justify-center rounded-xl bg-white/70 dark:bg-neutral-950/70",style:Re({left:`${p.x}px`,top:`${p.y}px`,width:`${E(I).get(p.id)?.w??p.width}px`,height:`${E(I).get(p.id)?.h??p.height}px`})},[...J[13]||(J[13]=[m("div",{class:"h-4 w-4 animate-spin rounded-full border-2 border-neutral-300 border-t-neutral-600 dark:border-neutral-600 dark:border-t-neutral-300"},null,-1)])],4)):W("",!0)],64))),128))],4)],34),Q(uo,{"leave-active-class":"transition-opacity duration-200 ease-out","leave-to-class":"opacity-0"},{default:be(()=>[A.value?(h(),k("div",Dc,[...J[14]||(J[14]=[m("div",{class:"flex items-center gap-2 rounded-full border border-neutral-300 bg-white/80 px-3 py-2 text-xs font-medium text-neutral-600 shadow-sm dark:border-neutral-700 dark:bg-neutral-900/80 dark:text-neutral-300"},[m("span",{class:"h-3.5 w-3.5 animate-spin rounded-full border-2 border-neutral-300 border-t-neutral-700 dark:border-neutral-600 dark:border-t-neutral-200"}),me(" Preparing diagram ")],-1)])])):W("",!0)]),_:1}),e.error?(h(),k("div",Bc,j(e.error),1)):W("",!0),!e.hasAgent&&!e.loading&&!e.error?(h(),k("div",Vc,[Q(E(go),{class:"h-12 w-12 opacity-40"}),J[15]||(J[15]=m("div",{class:"text-sm"},"Select an agent to view its composition",-1))])):W("",!0),e.hasAgent&&E(M)?(h(),ue(Ai,{key:2,"scale-percent":E(v),onZoomIn:E(C),onZoomOut:E(_),onFitView:J[11]||(J[11]=p=>E(y)(E(T)(),{force:!0}))},null,8,["scale-percent","onZoomIn","onZoomOut"])):W("",!0)]))}}),Uc=_e({__name:"InspectorPanel",props:{node:{},compositionSummary:{}},emits:["saved","close"],setup(e,{emit:t}){const n=e,o=t,a=H("inspect"),l=H(null),s=H(null),r=H(null),i=H(null),{saving:u,apiError:d,saveAgent:f,clearAgentError:v}=xo(),{saving:x,apiError:g,savePrompt:c,clearPromptError:b}=cs(),{saving:S,apiError:C,saveModel:_,clearModelError:y}=fs(),L=R(()=>u.value||x.value||S.value),P=R(()=>a.value==="edit-prompt"?g.value:a.value==="edit-model"?C.value:d.value);function D(B){return B?.id||B?.name||null}Ae(()=>n.node,B=>{if(v(),b(),y(),!B){a.value="inspect",l.value=null;return}if(B.type==="agent")l.value=B.value,a.value="edit-agent";else if(B.type==="side"){const M=B.value;M.prompt?(l.value=M.prompt,a.value="edit-prompt"):(a.value="inspect",l.value=null)}else B.type==="model"?(l.value=B.value,a.value="edit-model"):(a.value="inspect",l.value=null)});async function Z(B){(await f({mode:"edit",data:B,editingId:n.node?.type==="agent"?n.node.value.name:void 0,formNode:s.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}async function q(B){const M=D(l.value);(await c({mode:"edit",data:B,editingId:M,formNode:r.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}async function Y(B){const M=D(l.value);(await _({mode:"edit",data:B,editingId:M,formNode:i.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}function G(){a.value="inspect",l.value=null,v(),b(),y(),o("close")}return(B,M)=>(h(),k("div",null,[a.value==="edit-agent"?(h(),ue(yo,{key:0,ref_key:"agentModalRef",ref:s,"model-value":!0,"edit-agent":l.value,mode:"edit",saving:L.value,"api-error":P.value,onSave:Z,"onUpdate:modelValue":G},null,8,["edit-agent","saving","api-error"])):W("",!0),a.value==="edit-prompt"?(h(),ue(Cs,{key:1,ref_key:"promptModalRef",ref:r,"model-value":!0,"edit-prompt":l.value,mode:"edit",saving:L.value,onSave:q,"onUpdate:modelValue":G},null,8,["edit-prompt","saving"])):W("",!0),a.value==="edit-model"?(h(),ue(_s,{key:2,ref_key:"modelModalRef",ref:i,"model-value":!0,"edit-model":l.value,mode:"edit",saving:L.value,onSave:Y,"onUpdate:modelValue":G},null,8,["edit-model","saving"])):W("",!0)]))}}),zc={class:"relative"},Fc={key:1,class:"mt-[2px] inline-block h-3 w-3 shrink-0"},jc={class:"min-w-0 flex-1"},Xc={class:"flex min-w-0 items-start gap-2"},Kc={key:0,class:"mt-[1px] shrink-0 text-[11px] leading-none font-semibold text-rose-500 dark:text-rose-400","aria-label":"Required"},Yc=["onKeydown"],qc={key:2,class:"ml-auto shrink-0 truncate pl-2 text-[10px] text-neutral-400 dark:text-neutral-500",style:{"max-width":"35%"}},Gc={key:0,class:"mt-1 flex flex-wrap gap-1"},Wc={key:2,class:"mt-1 grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-[10.5px]"},Qc={class:"truncate text-neutral-400 dark:text-neutral-500"},Jc={key:0,class:"relative"},Zc=10,ef=_e({__name:"StructureTreeRow",props:{node:{},depth:{},collapsed:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},hoveredEditTarget:{},inheritedEditSurface:{},inheritedAnchorEl:{}},emits:["select","edit","hover","toggle"],setup(e,{emit:t}){const n={tool:qt,prompt:gt,subagent:ot,handoff:ra,provider:Mt,mcp:Mt,unknown:dn},o={agent:ot,side:ot,prompt:gt,model:vo,variables:Zn,variable:Zn,hooks:qn,hook:qn,tools:dn,tool:qt,subagent:ot,config:Da,section:Da,schema:Mt},a={tool:"text-neutral-600 dark:text-neutral-400",prompt:"text-fuchsia-600 dark:text-fuchsia-400",subagent:"text-emerald-600 dark:text-emerald-400",handoff:"text-sky-600 dark:text-sky-400",provider:"text-amber-600 dark:text-amber-400",mcp:"text-violet-600 dark:text-violet-400",unknown:"text-neutral-500 dark:text-neutral-400"},l={neutral:"bg-neutral-100 text-neutral-600 dark:bg-neutral-900 dark:text-neutral-400",sky:"bg-sky-100 text-sky-700 dark:bg-sky-950/50 dark:text-sky-300",amber:"bg-amber-100 text-amber-700 dark:bg-amber-950/50 dark:text-amber-300",emerald:"bg-emerald-100 text-emerald-700 dark:bg-emerald-950/50 dark:text-emerald-300",fuchsia:"bg-fuchsia-100 text-fuchsia-700 dark:bg-fuchsia-950/50 dark:text-fuchsia-300",violet:"bg-violet-100 text-violet-700 dark:bg-violet-950/50 dark:text-violet-300",rose:"bg-rose-100 text-rose-700 dark:bg-rose-950/50 dark:text-rose-300"},s={neutral:"text-neutral-700 dark:text-neutral-300",sky:"text-sky-600 dark:text-sky-400",amber:"text-amber-600 dark:text-amber-400",emerald:"text-emerald-600 dark:text-emerald-400",fuchsia:"text-fuchsia-600 dark:text-fuchsia-400",violet:"text-violet-600 dark:text-violet-400",rose:"text-rose-600 dark:text-rose-400"},r=e,i=t,{activeSurface:u}=Gt(),d=H(null),f=H(!1),v=R(()=>r.node.editSurface??r.inheritedEditSurface??null),x=R(()=>r.node.editSurface?d.value:r.inheritedAnchorEl??null),g=R(()=>{const K=r.node.editSurface;return K?.entityType!=="prompt"||r.node.kind!=="prompt"&&r.node.toolKind!=="prompt"?null:{entityType:"prompt",entityId:K.entityId,section:"prompt"}}),c=R(()=>!!r.node.children&&r.node.children.length>0),b=R(()=>c.value||r.node.collapsibleBody===!0),S=R(()=>!!r.node.isRoot),C=R(()=>S.value?!0:!r.collapsed.has(r.node.id)),_=R(()=>r.selectedCanvasNodeId===r.node.canvasNodeId);function y(K){if(!K)return!1;const z=[...r.node.children||[]];for(;z.length>0;){const te=z.pop();if(te.cardBacked===!0&&te.canvasNodeId===K)return!0;te.children?.length&&z.push(...te.children)}return!1}const L=R(()=>d.value&&u.value?.anchorEl===d.value?!0:!r.node.editSurface||r.node.anchorOnlyEditSurface?!1:Xt(r.node.editSurface,u.value?.target)?!0:u.value?!1:r.node.cardBacked===!0&&_.value&&!y(r.selectedCanvasNodeId)),P=R(()=>u.value||r.node.anchorOnlyEditSurface?!1:Xt(r.node.editSurface,r.hoveredEditTarget)?!0:r.hoveredEditTarget?!1:r.node.cardBacked===!0&&r.hoveredCanvasNodeId===r.node.canvasNodeId&&!y(r.hoveredCanvasNodeId??null)),D=R(()=>Xt(u.value?.target,g.value)),Z=R(()=>S.value?0:Math.max(0,r.depth-1)),q=R(()=>Z.value*Zc),Y=R(()=>{const K=r.node;return(K.kind==="tools"||K.kind==="tool")&&K.toolKind?n[K.toolKind]||dn:K.kind==="side"&&K.detail==="Human"?oa:o[K.kind]||Mt}),G=R(()=>{const K=r.node;return(K.kind==="agent"||K.kind==="subagent")&&!!(K.avatarSrc||K.avatarSeed)}),B=R(()=>{const K=r.node;return K.kind==="agent"?"text-neutral-700 dark:text-neutral-200":K.kind==="side"?K.id.endsWith("side-a")?"text-sky-600 dark:text-sky-400":"text-amber-600 dark:text-amber-400":K.kind==="prompt"&&K.tone?s[K.tone]:K.kind==="prompt"||K.kind==="model"?"text-neutral-500 dark:text-neutral-400":K.kind==="subagent"?"text-emerald-600 dark:text-emerald-400":K.kind==="hook"||K.kind==="hooks"?"text-neutral-500 dark:text-neutral-400":(K.kind==="tool"||K.kind==="tools")&&K.toolKind?a[K.toolKind]||"text-neutral-500":"text-neutral-500 dark:text-neutral-400"}),M=R(()=>{const K=r.node;return K.kind==="agent"||K.kind==="subagent"||K.kind==="tool"&&K.toolKind==="handoff"}),I=R(()=>{const K=["group relative flex items-start gap-1.5 px-2 cursor-pointer select-none transition-colors"];return K.push(M.value?"py-[6px] text-[12.5px]":"py-[4px]"),M.value&&K.push("relative z-[1] structure-row-agent-bg"),L.value?K.push("rounded-r-md structure-row-active"):P.value?K.push("rounded-md structure-row-hover"):M.value?K.push("rounded-md"):K.push("rounded-md agents-surface-hover"),r.node.virtual&&!_.value&&!L.value&&K.push("text-neutral-600 dark:text-neutral-400"),K.join(" ")}),w=R(()=>{const K=r.node,z=["truncate"],te=K.kind==="tool"&&K.toolKind==="handoff",ie=K.kind==="variable"||K.kind==="schema"&&K.hideIcon===!0||K.kind==="tool"&&!te;return K.cardBacked?z.push(ie?"font-semibold text-neutral-900 dark:text-neutral-50":"font-medium text-neutral-900 dark:text-neutral-50"):z.push("font-normal text-neutral-700 dark:text-neutral-300"),ie&&z.push("font-mono text-[11.5px]"),z.join(" ")});function U(K){return["rounded px-1.5 py-px text-[9px] font-semibold lowercase tracking-wide",K.mono?"font-mono":"",l[K.tone||"neutral"]].join(" ")}function N(K){return K.active===!1?"text-neutral-400 dark:text-neutral-600":s[K.tone||"neutral"]||s.neutral}function T(K){K.stopPropagation(),!S.value&&i("toggle",r.node.id)}function A(K){K.stopPropagation(),X()}function X(){if(f.value){f.value=!1;return}if(v.value&&x.value){i("edit",v.value,x.value,r.node.canvasNodeId,r.node.editData);return}i("select",r.node.canvasNodeId),!S.value&&b.value&&!C.value&&i("toggle",r.node.id)}function F(K){K.key!=="Enter"&&K.key!==" "||(K.preventDefault(),K.stopPropagation(),X())}function pe(K){K.button===0&&(!v.value||!x.value||(K.stopPropagation(),f.value=!0,i("edit",v.value,x.value,r.node.canvasNodeId,r.node.editData)))}function se(){i("hover",r.node.canvasNodeId,v.value)}function fe(K){K.stopPropagation();const z=g.value,te=K.currentTarget;!z||!(te instanceof HTMLElement)||i("edit",z,te,r.node.canvasNodeId,r.node.editData)}return(K,z)=>{const te=vt("StructureTreeRow",!0),ie=as("auto-animate");return h(),k("div",zc,[m("div",{class:"mx-1",style:Re({paddingLeft:`${q.value}px`})},[L.value?(h(),k("div",{key:0,class:le(["pointer-events-none absolute bottom-0 top-0 z-[2] w-px bg-accent-500"]),style:Re({left:`${q.value+5}px`})},null,4)):W("",!0),m("div",{ref_key:"rowRef",ref:d,class:le(I.value),role:"button",tabindex:"0",onClick:A,onKeydown:F,onPointerdown:pe,onMouseenter:se},[b.value&&!S.value?(h(),ue(E(ko),{key:0,class:le(["mt-[2px] h-3 w-3 shrink-0 text-neutral-400 transition-transform",C.value?"rotate-90":""]),onClick:T},null,8,["class"])):S.value?W("",!0):(h(),k("span",Fc)),G.value?(h(),ue(aa,{key:2,icon:e.node.avatarSrc,seed:e.node.avatarSeed??"",class:"mt-[1px] h-4 w-4 shrink-0 rounded object-cover"},null,8,["icon","seed"])):e.node.hideIcon?W("",!0):(h(),ue(tt(Y.value),{key:3,class:le(["mt-[1px] h-3.5 w-3.5 shrink-0",B.value])},null,8,["class"])),m("div",jc,[m("div",Xc,[m("span",{class:le(w.value)},j(e.node.label),3),e.node.required?(h(),k("span",Kc," * ")):W("",!0),g.value?(h(),ue(E(hs),{key:1,content:"Edit prompt text",position:"right",disabled:D.value},{default:be(()=>[m("button",{type:"button",class:le(["mt-[-2px] inline-flex h-5 w-5 shrink-0 cursor-pointer items-center justify-center rounded text-neutral-400 transition-colors hover:text-neutral-900 dark:text-neutral-500 dark:hover:text-neutral-100",D.value?"text-accent-700 dark:text-accent-300":""]),"aria-label":"Edit prompt text",onClick:fe,onPointerdown:z[0]||(z[0]=Te(()=>{},["stop"])),onKeydown:[Ve(Te(fe,["prevent","stop"]),["enter"]),Ve(Te(fe,["prevent","stop"]),["space"])],onMouseenter:z[1]||(z[1]=Te(de=>i("hover",e.node.canvasNodeId,g.value),["stop"])),onMouseleave:z[2]||(z[2]=Te(de=>i("hover",e.node.canvasNodeId,v.value),["stop"]))},[Q(E(Oo),{class:"h-3.5 w-3.5"})],42,Yc)]),_:1},8,["disabled"])):W("",!0),e.node.detail?(h(),k("span",qc,j(e.node.detail),1)):W("",!0)]),(!e.node.collapsibleBody||C.value)&&e.node.badges&&e.node.badges.length>0?(h(),k("div",Gc,[(h(!0),k(Me,null,Ce(e.node.badges,de=>(h(),k("span",{key:de.label,class:le(U(de))},j(de.label),3))),128))])):W("",!0),(!e.node.collapsibleBody||C.value)&&e.node.description?(h(),k("div",{key:1,class:le(["mt-1 text-[10.5px] leading-relaxed text-neutral-500 dark:text-neutral-400",e.node.virtual&&!_.value?"opacity-90":""])},j(e.node.description),3)):W("",!0),(!e.node.collapsibleBody||C.value)&&e.node.metaRows&&e.node.metaRows.length>0?(h(),k("dl",Wc,[(h(!0),k(Me,null,Ce(e.node.metaRows,de=>(h(),k(Me,{key:de.label},[m("dt",Qc,j(de.label),1),m("dd",{class:le(["truncate text-right",de.mono!==!1?"font-mono":"",N(de)])},j(de.value),3)],64))),128))])):W("",!0)])],34)],4),c.value?os((h(),k("div",Jc,[C.value?(h(!0),k(Me,{key:0},Ce(e.node.children,de=>(h(),ue(te,{key:de.id,node:de,depth:e.depth+1,collapsed:e.collapsed,"selected-canvas-node-id":e.selectedCanvasNodeId,"hovered-canvas-node-id":e.hoveredCanvasNodeId,"hovered-edit-target":e.hoveredEditTarget,"inherited-edit-surface":v.value,"inherited-anchor-el":x.value,onSelect:z[3]||(z[3]=ve=>i("select",ve)),onEdit:z[4]||(z[4]=(ve,ae,J,p)=>i("edit",ve,ae,J,p)),onHover:z[5]||(z[5]=(ve,ae)=>i("hover",ve,ae)),onToggle:z[6]||(z[6]=ve=>i("toggle",ve))},null,8,["node","depth","collapsed","selected-canvas-node-id","hovered-canvas-node-id","hovered-edit-target","inherited-edit-surface","inherited-anchor-el"]))),128)):W("",!0),C.value&&!S.value?(h(),k("div",{key:1,class:"pointer-events-none absolute bottom-0 top-0 w-px bg-neutral-200 dark:bg-neutral-800",style:Re({left:`${q.value+14}px`})},null,4)):W("",!0)])),[[ie,{duration:60,easing:"ease-out"}]]):W("",!0)])}}});function tf(e,t,n){let o=!1;function a(l){if(l.defaultCollapsed&&!n.has(l.id)&&(n.add(l.id),t.has(l.id)||(t.add(l.id),o=!0)),l.children)for(const s of l.children)a(s)}return a(e),o}const nf={class:"structure-tree flex h-full flex-col overflow-hidden border-r border-neutral-200 dark:border-neutral-800"},af={key:0,class:"px-3 py-4 text-xs text-neutral-400 dark:text-neutral-500"},of=_e({__name:"StructureTree",props:{root:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},hoveredEditTarget:{}},emits:["select","edit","hover"],setup(e,{emit:t}){const n=e,o=t,a=H(new Set),l=H(null),s=H(new Set);function r(d){return tf(d,a.value,s.value)}Ae(()=>n.root,d=>{d&&(d.id!==l.value&&(a.value=new Set,s.value=new Set,l.value=d.id),r(d)&&(a.value=new Set(a.value)))},{immediate:!0});function i(d){const f=new Set(a.value);f.has(d)?f.delete(d):f.add(d),a.value=f,s.value=new Set(s.value).add(d)}const u=R(()=>!!n.root);return(d,f)=>(h(),k("div",nf,[m("div",{class:"flex-1 overflow-y-auto py-1.5 text-[12px]",onMouseleave:f[3]||(f[3]=v=>o("hover",null,null))},[u.value?(h(),ue(ef,{key:1,node:e.root,depth:0,collapsed:a.value,"selected-canvas-node-id":e.selectedCanvasNodeId,"hovered-canvas-node-id":e.hoveredCanvasNodeId,"hovered-edit-target":e.hoveredEditTarget,onSelect:f[0]||(f[0]=v=>o("select",v)),onEdit:f[1]||(f[1]=(v,x,g,c)=>o("edit",v,x,g,c)),onHover:f[2]||(f[2]=(v,x)=>o("hover",v,x)),onToggle:i},null,8,["node","collapsed","selected-canvas-node-id","hovered-canvas-node-id","hovered-edit-target"])):(h(),k("div",af," Select an agent to view its structure. "))],32)]))}});function Ke(e,t,n){return{entityType:"prompt",entityId:e,section:t,defaultToolTab:n}}function Nt(e,t){return{entityType:"agent",entityId:e,section:t}}function rf(e){return{entityType:"model",entityId:e.id}}function sf(e){let t=0;function n(o){for(const a of o)t+=1,a.children?.length&&n(a.children)}return n(e),t}function jo(e,t,n){return e.map(o=>({id:`${n}${o.id}`,kind:"schema",label:o.label,detail:o.value||void 0,required:o.required,canvasNodeId:t,virtual:!0,hideIcon:!0,defaultCollapsed:(o.children?.length??0)>0?!o.defaultExpanded:void 0,children:o.children?.length?jo(o.children,t,`${n}${o.id}__`):void 0}))}function pa(e,t,n,o){const a=ma(e);return{id:`${n}schema`,kind:"schema",label:"Input schema",detail:a.length>0?`${sf(a)}`:"None",canvasNodeId:t,virtual:!0,editSurface:o,defaultCollapsed:a.length>0,children:a.length>0?jo(a,t,`${n}schema__`):void 0}}function Xo(e){const t=[];e.expose_as_tool&&t.push({label:"tool",tone:"neutral",mono:!0});const n=e.max_session_turns;typeof n=="number"&&t.push({label:`max ${n} session turn${n===1?"":"s"}`,tone:"neutral",mono:!0});const o=Object.keys(e.env||{}).filter(a=>a.trim().length>0);return o.length>0&&t.push({label:`${o.length} env override${o.length===1?"":"s"}`,tone:"sky",mono:!0}),t}function $n(e,t,n,o=[],a){const l=new Set(o);return{id:`${n}variables`,kind:"variables",label:"Variables",detail:e.length>0?`${e.length}`:"None",canvasNodeId:t,virtual:!0,editSurface:a,defaultCollapsed:e.length>0,children:e.length>0?e.map(s=>{const r=[];return s.required&&r.push({label:"required",tone:"rose",mono:!0}),s.scoped&&r.push({label:"scoped",tone:"violet",mono:!0}),l.has(s.name)&&r.push({label:"env",tone:"sky",mono:!0}),{id:`${n}variable-${s.name}`,kind:"variable",label:s.name,detail:s.type,badges:r.length>0?r:void 0,required:s.required,canvasNodeId:t,virtual:!0,hideIcon:!0}}):void 0}}function Ko(e,t,n){return e.length===0?null:{id:`${n}hooks`,kind:"hooks",label:"Hooks",detail:`${e.length}`,canvasNodeId:t,virtual:!0,children:e.map((o,a)=>({id:`${n}hook-${a}-${o.id}`,kind:"hook",label:o.hook,detail:o.id!==o.hook?o.id:void 0,canvasNodeId:t,virtual:!0,hideIcon:!0}))}}function $t(e){const t=[];typeof e.config.blocking=="boolean"&&t.push({label:e.config.blocking?"blocking":"background",tone:"neutral",mono:!0}),e.config.optional&&t.push({label:"optional",tone:"violet",mono:!0}),e.config.immediate&&t.push({label:"immediate",tone:"amber",mono:!0});const n=e.relationship;return n&&(t.push({label:n.maxInstances==null||n.maxInstances>1?"multi":"single",tone:"sky",mono:!0}),n.hidden&&t.push({label:"hidden",tone:"neutral",mono:!0})),t}function Yo(e,t,n,o,a){const l=Ke(o,"behavior"),s=Bo(e,a).map(r=>({id:`${n}${r.key==="tool"?"tooling":r.key}`,kind:"section",label:r.label,canvasNodeId:t,virtual:!0,hideIcon:!0,editSurface:l,metaRows:r.rows.map(lf)}));return{id:`${n}config`,kind:"config",label:"Prompt Config",canvasNodeId:t,virtual:!0,editSurface:l,defaultCollapsed:!0,children:s}}function lf(e){return e.kind==="toggle"?{label:e.label,value:e.enabled?"on":"off",active:e.enabled,tone:"emerald",mono:!0}:{label:e.label,value:e.value,active:e.active,mono:!0}}function qo(e,t,n,o,a){if(!e.model&&!e.modelName)return null;const l=[];if((e.model?.providerTools||[]).length>0){const i=e.model.providerTools.slice(0,2).join(", "),u=e.model.providerTools.length>2?", …":"";l.push({label:"Provider tools",value:i+u,active:!0,mono:!0})}const s=e.modelActual||e.model?.model||void 0,r=s&&s!==(e.modelName||e.model?.name||"Model")?s:void 0;return{id:`${o}model`,kind:"model",label:e.modelName||e.model?.name||"Model",detail:r,metaRows:l.length>0?l:void 0,canvasNodeId:e.model?Co(t,e.model.id):n,virtual:!e.model,cardBacked:!!e.model,editSurface:e.model?rf(e.model):a,editData:e.model||void 0}}function df(e,t,n,o){return{id:`${n}config`,kind:"config",label:"Side Config",canvasNodeId:t,virtual:!0,defaultCollapsed:!0,collapsibleBody:!0,editSurface:o,metaRows:[{label:"Stop on response",value:e.stopOnResponse?"On":"Off",active:e.stopOnResponse,tone:e.id==="a"?"sky":"amber",mono:!0},{label:"Stop tool",value:e.stopTool||"Off",active:!!e.stopTool,tone:e.id==="a"?"sky":"amber",mono:!0},{label:"Max steps",value:typeof e.maxSteps=="number"?String(e.maxSteps):"Unlimited",active:typeof e.maxSteps=="number",tone:e.id==="a"?"sky":"amber",mono:!0},{label:"End conversation tool",value:e.sessionStopTool||"Off",active:!!e.sessionStopTool,tone:e.id==="a"?"sky":"amber",mono:!0}]}}function uf(e,t,n,o){const a={};for(const r of e){const i=r.kind==="provider"||r.kind==="mcp"?"tool":r.kind;(a[i]||=[]).push(r)}const s=[{key:"tool",label:"Functions"},{key:"prompt",label:"Sub-prompts"},{key:"handoff",label:"Handoffs"}].map(({key:r,label:i})=>{const u=a[r]||[],d=r==="prompt"?"sub-prompts":r==="handoff"?"handoffs":"functions";return{id:`${n}group-${r}`,kind:"tools",toolKind:r,label:i,detail:`${u.length}`,canvasNodeId:t,virtual:!0,editSurface:Ke(o,"tools",d),children:u.length>0?u.map((f,v)=>({id:`${n}${r}-${v}-${f.name}`,kind:"tool",label:f.displayName||f.name,detail:f.kind==="prompt"&&(f.resolvedModel?.name||f.model)||void 0,badges:$t(f),canvasNodeId:t,virtual:!0,toolKind:f.kind,hideIcon:!0})):void 0}});return[{id:`${n}tools`,kind:"tools",label:"Tools",detail:`${e.length}`,canvasNodeId:t,virtual:!0,editSurface:Ke(o,"tools","functions"),anchorOnlyEditSurface:!0,children:s}]}function cf(e,t,n){const o=[],a=pa(e.schema,t,`${n}args__`);return a.label="Args",a.defaultCollapsed=(a.children?.length??0)>0?!0:void 0,(a.children?.length??0)>0&&o.push(a),e.variables.length>0&&o.push($n(e.variables,t,`${n}detail__`)),o}function ff(e,t,n,o,a){const l=[],s=t.prompt.name,r=Ke(s,"basic"),i=qo({model:t.model,modelName:t.model?.name||t.prompt.model_name,modelProvider:t.model?.provider||t.prompt.model_provider,modelActual:t.model?.model||t.prompt.model_id},o,n,`${a}prompt__`,r);i&&l.push(i),l.push(Yo(t.prompt,n,`${a}prompt__`,s,e.config)),l.push(pa(t.prompt.required_schema,n,`${a}prompt__`,Ke(s,"schema"))),l.push($n(sa(t.prompt),n,`${a}prompt__`,la(t.prompt),Ke(s,"variables"))),l.push(...uf(t.nestedTools,n,`${a}prompt__`,s));const u=Ko(t.prompt.hooks.map(d=>({id:d,hook:d})),n,`${a}prompt__`);return u&&l.push(u),l}function hf(e,t,n){return[{id:"a",backing:e.side_a_backing,label:hn("a",e.side_a_backing,e.side_a_label),promptName:e.side_a_agent_prompt,handlerName:e.side_a_handler||null,stopOnResponse:e.side_a_stop_on_response,stopTool:e.side_a_stop_tool,maxSteps:e.side_a_max_steps,sessionStopTool:e.side_a_session_stop_tool},{id:"b",backing:e.side_b_backing,label:hn("b",e.side_b_backing,e.side_b_label),promptName:e.side_b_agent_prompt,handlerName:e.side_b_handler||null,stopOnResponse:e.side_b_stop_on_response,stopTool:e.side_b_stop_tool,maxSteps:e.side_b_max_steps,sessionStopTool:e.side_b_session_stop_tool}].map(a=>({id:`${n}side-${a.id}`,kind:"side",label:a.label,detail:a.backing==="human"?"Human":a.backing==="handler"?a.handlerName||"Handler":a.promptName||"No prompt",canvasNodeId:t,virtual:!0,editSurface:Nt(e.name,a.id==="a"?"side-a":"side-b"),metaRows:a.backing==="prompt"&&a.promptName?[{label:"Stop on response",value:a.stopOnResponse?"On":"Off",active:a.stopOnResponse,tone:a.id==="a"?"sky":"amber",mono:!0},{label:"Stop tool",value:a.stopTool||"Off",active:!!a.stopTool,tone:a.id==="a"?"sky":"amber",mono:!0},{label:"Max steps",value:typeof a.maxSteps=="number"?String(a.maxSteps):"Unlimited",active:typeof a.maxSteps=="number",tone:a.id==="a"?"sky":"amber",mono:!0},{label:"End conversation tool",value:a.sessionStopTool||"Off",active:!!a.sessionStopTool,tone:a.id==="a"?"sky":"amber",mono:!0}]:void 0}))}function mf(e,t,n,o,a,l,s){if(!e.prompt)return null;const r=e.prompt.name,i=`${l}prompt__`,u=[],d=Ke(r,"basic"),f=Ke(r,"schema"),v=Ke(r,"variables"),x=Ke(r,"tools"),g=qo({model:e.model,modelName:e.model?.name||e.prompt.model_name,modelProvider:e.model?.provider||e.prompt.model_provider,modelActual:e.model?.model||e.prompt.model_id},o,a,i,d);g&&u.push(g),u.push(Yo(e.prompt,a,i,r)),u.push(pa(e.prompt.required_schema,a,i,f)),u.push($n(e.variables,a,i,e.variableEnvNames||[],v));const c=e.tools.filter(y=>y.kind!=="subagent"),b={};for(const y of c){const L=y.kind==="provider"||y.kind==="mcp"?"tool":y.kind;(b[L]||=[]).push(y)}const S=new Map;e.tools.forEach((y,L)=>S.set(y,L));const C=[{key:"tool",label:"Functions"},{key:"prompt",label:"Sub-prompts"},{key:"handoff",label:"Handoffs"}];u.push({id:`${i}tools`,kind:"tools",label:"Tools",detail:`${c.length}`,canvasNodeId:a,virtual:!0,editSurface:x,children:C.map(({key:y,label:L})=>{const P=b[y]||[],D=y==="prompt"?"sub-prompts":y==="handoff"?"handoffs":"functions";return{id:`${i}group-${y}`,kind:"tools",toolKind:y,label:L,detail:`${P.length}`,canvasNodeId:a,virtual:!0,editSurface:Ke(r,"tools",D),children:P.length>0?P.map(Z=>Go(i,n,o,e,Z,S.get(Z),r,t,s)):void 0}})});const _=Ko(e.hooks,a,i);return _&&u.push(_),{id:`${l}prompt`,kind:"prompt",tone:e.id==="a"?"sky":"amber",label:e.prompt.name,canvasNodeId:a,virtual:!0,cardBacked:!0,editSurface:d,children:u}}function Go(e,t,n,o,a,l,s,r,i){const d=a.kind==="subagent"||a.kind==="handoff"||a.kind==="prompt"?un(t,o.id,l):da(t,o.id),f=`${e}tool-${o.id}-${l}-${a.name}`,v=a.kind==="prompt"?"sub-prompts":a.kind==="handoff"?"handoffs":"functions",x=Ke(s,"tools",v);if(a.kind==="subagent"&&r[a.name]){const g=r[a.name],c=So(t,o.id,l,a.kind,a.name),b=$t(a);return{id:f,kind:"subagent",label:g.agent.title||a.displayName,detail:a.name,badges:b.length>0?b:void 0,canvasNodeId:pn(c),toolKind:a.kind,avatarSrc:g.agent.icon||void 0,avatarSeed:g.agent.name,cardBacked:!0,editSurface:Nt(o.agentName,o.id==="a"?"side-a":"side-b"),children:Wo(g.agent,g.sides,r,c,n,`${f}__`,i).children}}if(a.kind==="prompt"){const g=i.promptTools[a.name];return{id:f,kind:"tool",label:a.displayName||a.name,detail:g?.model?.name||g?.prompt.model_name||a.model||void 0,badges:$t(a),canvasNodeId:d,toolKind:a.kind,cardBacked:!0,editSurface:Ke(a.name,"basic"),children:g?ff(a,g,d,n,`${f}__`):void 0,hideIcon:!0}}if(a.kind==="handoff"){const g=i.handoffs[a.name];return{id:f,kind:"tool",label:g?.title||a.displayName||a.name,detail:g?.name||void 0,badges:g?Xo(g):$t(a),canvasNodeId:d,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,editSurface:x,children:g?hf(g,d,`${f}__`):void 0,hideIcon:!0}}if(a.kind==="tool"||a.kind==="provider"||a.kind==="mcp"){const g=i.functionTools[a.name];return{id:f,kind:"tool",label:a.displayName||a.name,badges:$t(a),canvasNodeId:d,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,editSurface:x,children:g?cf(g,d,`${f}__`):void 0,hideIcon:!0}}return{id:f,kind:"tool",label:a.displayName||a.name,badges:$t(a),canvasNodeId:d,toolKind:a.kind,hideIcon:!0,editSurface:x}}function lo(e,t,n,o,a,l,s){const r=e.tools.map((u,d)=>({tool:u,index:d})).filter(({tool:u})=>u.kind==="subagent");if(r.length===0)return null;const i=Nt(e.agentName,e.id==="a"?"side-a":"side-b");return{id:`${l}subagents`,kind:"tools",toolKind:"subagent",label:"Sub-agents",detail:`${r.length}`,canvasNodeId:a,virtual:!0,editSurface:i,children:r.map(({tool:u,index:d})=>Go(l,n,o,e,u,d,e.promptName||"",t,s))}}function pf(e,t,n,o,a,l,s){const r=da(o,t.id),i=`${l}side-${t.id}__`,u=Nt(e,t.id==="a"?"side-a":"side-b"),d=[];if(t.mode==="human")return{id:`${l}side-${t.id}`,kind:"side",label:t.label,detail:"Human",canvasNodeId:r,cardBacked:!0,editSurface:u,children:[]};if(t.mode==="handler"){const x=lo(t,n,o,a,r,i,s);return{id:`${l}side-${t.id}`,kind:"side",label:t.label,detail:t.handlerName||"Handler",canvasNodeId:r,cardBacked:!0,editSurface:u,children:x?[x]:[]}}d.push(df(t,r,i,u));const f=mf(t,n,o,a,r,i,s);f&&d.push(f);const v=lo(t,n,o,a,r,i,s);return v&&d.push(v),{id:`${l}side-${t.id}`,kind:"side",label:t.label,canvasNodeId:r,editSurface:u,children:d}}function Wo(e,t,n,o,a,l,s,r=!1){const i=pn(o),u=Nt(e.name,"variables"),d=[$n(e._variables||[],i,`${l}agent__`,Object.keys(e.env||{}),u),...t.map(f=>pf(e.name,f,n,o,a,l,s))];return{id:`${l}agent`,kind:"agent",label:e.title||e.name,detail:e.name,badges:Xo(e),canvasNodeId:i,avatarSrc:e.icon||void 0,avatarSeed:e.name,isRoot:r||void 0,cardBacked:!0,editSurface:Nt(e.name,"identity"),children:d}}function vf(e,t,n,o){const a=To(e.id||e.name),l=`${e.id||e.name}__`;return Wo(e,t,n,a,a,l,o,!0)}function gf(e,t){const n=new Set,o=new Set,a=new Set,l=new Set;function s(r){for(const i of r)for(const u of i.tools)if(u.kind==="tool"&&n.add(u.name),u.kind==="prompt"&&o.add(u.name),u.kind==="handoff"&&a.add(u.name),u.kind==="subagent"){const d=t[u.name];if(!d||l.has(d.agentName))continue;l.add(d.agentName),s(d.sides)}}return s(e),{functionTools:[...n].sort(),promptTools:[...o].sort(),handoffs:[...a].sort()}}function xf(e,t,n,o,a,l){const s=H({functionTools:{},promptTools:{},handoffs:{}});let r=0;return Ae(()=>e.value?{agentId:e.value.id||e.value.name,plan:gf(t.value,n.value),modelKeys:Object.keys(o.value),toolKeys:Object.keys(a.value),refreshEpoch:l?.value??0}:null,async i=>{const u=e.value;if(!i||!u){s.value={functionTools:{},promptTools:{},handoffs:{}};return}const d=++r,f=await Pd(i.plan,{toolsCatalog:a.value,models:o.value});d===r&&(s.value=f)},{immediate:!0}),R(()=>{const i=e.value;return i?vf(i,t.value,n.value,s.value):null})}const Qo=_e({__name:"ExtractCopyToggle",props:{value:{},disabled:{type:Boolean}},emits:["update:value"],setup(e,{emit:t}){const n=t,o=a=>{n("update:value",a)};return(a,l)=>{const s=vt("FormKit");return h(),ue(s,{type:"toggle",value:e.value,"on-value":"extract","off-value":"copy","on-value-label":"extract","off-value-label":"copy",disabled:e.disabled,classes:{outer:"$remove:mb-4",wrapper:"$remove:items-center flex-row-reverse justify-end items-center",inner:"h-5",track:"h-5 w-10 rounded-full",thumb:"h-4 w-4",valueLabel:"text-xs text-neutral-600 dark:text-neutral-400 mr-2 flex items-center font-normal"},onInput:o},null,8,["value","disabled"])}}}),bf={class:"font-mono text-sm"},yf={class:"flex items-center gap-2 py-1.5"},kf={class:"text-neutral-600 dark:text-neutral-400"},wf={class:"ml-auto"},Jo=_e({name:"TreeChildren",props:{children:{type:Array,required:!0},getSelection:{type:Function,required:!0},setSelection:{type:Function,required:!0},isShared:{type:Function,required:!0},getTypeColor:{type:Function,required:!0}},setup(e){return()=>e.children.length===0?null:Ne("div",{class:"ml-4"},e.children.map((t,n)=>Ne("div",{class:"relative",key:t.uid},[n<e.children.length-1?Ne("div",{class:"absolute left-0 top-0 bottom-0 border-l border-neutral-300 dark:border-neutral-700"}):Ne("div",{class:"absolute left-0 top-0 h-3 border-l border-neutral-300 dark:border-neutral-700"}),Ne("div",{class:"absolute left-0 top-3 w-4 border-t border-neutral-300 dark:border-neutral-700"}),Ne("div",{class:"pl-5"},[Ne("div",{class:"flex items-center gap-2 py-1.5"},[Ne("span",{class:"text-neutral-600 dark:text-neutral-400"},t.name),Ne(Et,{variant:e.getTypeColor(t.type),size:"sm"},()=>t.type),e.isShared(t)?Ne("span",{class:"text-xs text-amber-600 dark:text-amber-400",title:`Used by: ${t.sharedWith.join(", ")}`},`(used in ${t.sharedWith.length} other${t.sharedWith.length>1?"s":""})`):null,t.isDuplicate?null:Ne("div",{class:"ml-auto"},[Ne(Qo,{value:e.getSelection(t),disabled:e.isShared(t),"onUpdate:value":o=>e.setSelection(t,o),title:e.isShared(t)?"Cannot extract items shared with other agents":""})])]),t.children.length>0?Ne(Jo,{children:t.children,getSelection:e.getSelection,setSelection:e.setSelection,isShared:e.isShared,getTypeColor:e.getTypeColor}):null])])))}}),$f=_e({__name:"DependencyTree",props:{analysis:{},selections:{}},emits:["update:selection"],setup(e,{emit:t}){const n=e,o=t,a=R(()=>{const d=n.analysis,f=[];let v=0;const x=(_,y)=>{for(const L of _){const P=`${y}:${L.name}`;f.push({...L,type:y,uid:`${P}:${v++}`})}};x(d.constituents.agents,"agent"),x(d.constituents.prompts,"prompt"),x(d.constituents.tools,"tool"),x(d.constituents.models,"model"),x(d.constituents.hooks,"hook");const g=new Map,c=`agent:${d.agent}`;for(const _ of f){const y=_.parentKey||c;`${_.type}:${_.name}`===c&&!_.parentKey||(g.has(y)||g.set(y,[]),g.get(y).push(_))}const b=new Set,S=_=>{const y=`${_.type}:${_.name}`,L=b.has(y);b.add(y);const P=[],D=g.get(y)||[];for(const Z of D)P.push(S(Z));return{name:_.name,type:_.type,filePath:_.filePath,sharedWith:_.sharedWith,discoveredVia:_.discoveredVia,children:P,uid:_.uid,isDuplicate:L}},C=f.find(_=>_.type==="agent"&&_.name===d.agent&&!_.parentKey);return C?S(C):{name:d.agent,type:"agent",filePath:"",sharedWith:[],discoveredVia:"static",children:[],uid:"root",isDuplicate:!1}}),l=d=>`${d.type}:${d.name}`,s=d=>n.selections.get(l(d))||"extract",r=(d,f)=>{o("update:selection",l(d),f)},i=d=>d.sharedWith.length>0,u=d=>{switch(d){case"agent":return"accent";case"prompt":return"secondary";case"tool":return"success";case"model":return"warning";case"hook":return"default"}};return(d,f)=>(h(),k("div",bf,[m("div",yf,[m("span",kf,j(a.value.name),1),Q(E(Et),{variant:u(a.value.type),size:"sm"},{default:be(()=>[me(j(a.value.type),1)]),_:1},8,["variant"]),m("div",wf,[Q(Qo,{value:s(a.value),"onUpdate:value":f[0]||(f[0]=v=>r(a.value,v))},null,8,["value"])])]),(h(),ue(tt(E(Jo)),{children:a.value.children,"get-selection":s,"set-selection":r,"is-shared":i,"get-type-color":u},null,8,["children"]))]))}}),Mf={key:0,class:"flex items-center justify-center py-12"},Tf={key:1,class:"py-4"},Sf={key:2,class:"py-4 space-y-4"},Cf={class:"space-y-2"},_f={class:"text-sm opacity-80"},If={class:"text-sm opacity-80"},Ef={class:"space-y-4"},Nf={class:"grid grid-cols-2 gap-4"},Af={class:"col-span-2"},Pf={class:"col-span-2"},Lf={class:"col-span-2"},Rf={key:0,class:"mt-3 space-y-3"},Of={class:"flex gap-2 border-b border-neutral-200 dark:border-neutral-700"},Df={key:0},Bf=["innerHTML"],Vf={class:"space-y-4"},Hf={class:"list-disc list-inside space-y-1"},Uf={class:"border border-neutral-200 dark:border-neutral-700 rounded-lg p-4 bg-neutral-50 dark:bg-neutral-900/50"},zf={class:"flex justify-between"},Ff=_e({__name:"PackModal",props:{modelValue:{type:Boolean},agent:{}},emits:["update:modelValue","packed"],setup(e,{emit:t}){mn.setOptions({gfm:!0,breaks:!0});const n=[{value:"MIT",label:"MIT"},{value:"Apache-2.0",label:"Apache 2.0"},{value:"ISC",label:"ISC"},{value:"GPL-3.0",label:"GPL 3.0"},{value:"BSD-3-Clause",label:"BSD 3-Clause"},{value:"Unlicensed",label:"Unlicensed / Proprietary"}],o=e,a=t,l=R({get:()=>o.modelValue,set:N=>a("update:modelValue",N)}),s=H(null),r=H(!1),i=H(!1),u=H(null),d=H(null);let f=null;const v=H(""),x=H("1.0.0"),g=H("MIT"),c=H(""),b=H(null),S=H(""),C=H("edit"),_=H(!1),y=R(()=>S.value?mn(S.value):""),L=H(new Map);Ae(()=>o.modelValue,async N=>{N&&o.agent?await Promise.all([D(),Z()]):P()});const P=()=>{U(),s.value=null,u.value=null,d.value=null,L.value=new Map,v.value="",x.value="1.0.0",g.value="MIT",c.value="",S.value="",C.value="edit",_.value=!1,st(b)},D=async()=>{if(o.agent){r.value=!0,u.value=null;try{const N=await fetch(Ue(`/api/pack/${o.agent.id}/analyze`)),T=await N.json();if(!N.ok){u.value=T.error||"Failed to analyze agent";return}if(s.value=T,T.generatedReadme)S.value=T.generatedReadme;else{const A=q(o.agent?.id||"agent");S.value=Y(A,o.agent?.id||"agent",T.agentDescription)}B(T)}catch(N){u.value=N instanceof Error?N.message:"Failed to analyze agent"}finally{r.value=!1}}},Z=async()=>{if(o.agent)try{const N=await fetch(Ue(`/api/pack/${o.agent.id}/metadata`));if(N.ok){const T=await N.json();v.value=T.packageName,x.value=G(T.version),g.value=T.license||"MIT",c.value=T.licenseOwner||""}else v.value=q(o.agent.id),x.value="1.0.0",g.value="MIT",c.value=""}catch{v.value=q(o.agent?.id||"agent"),x.value="1.0.0",g.value="MIT",c.value=""}},q=N=>`standardagent-${N.toLowerCase().replace(/_/g,"-")}`,Y=(N,T,A)=>`# ${N}
|
|
2
2
|
|
|
3
3
|
${A||"A Standard Agent package."}
|
|
4
4
|
|